add section about "Variantenbewertung"

This commit is contained in:
Andreas Zweili 2018-12-16 21:51:22 +01:00
parent ae2ffe27ad
commit 6e1f8ae3be
3 changed files with 145 additions and 3 deletions

View File

@ -131,4 +131,51 @@
month = {Oct},
note = {[Online; accessed 12. Dec. 2018]},
url = {https://www.apache.org/licenses/LICENSE-2.0}
}
@misc{python,
author = {{Python Software Foundation}},
title = {{History and License {\ifmmode---\else\textemdash\fi} Python 3.7.2rc1 documentation}},
year = {2018},
month = {Dec},
note = {[Online; accessed 16. Dec. 2018]},
url = {https://docs.python.org/3/license.html}
}
@misc{mit,
title = {{MIT License}},
year = {2018},
month = {Dec},
note = {[Online; accessed 16. Dec. 2018]},
url = {https://mit-license.org}
}
@misc{cpp17,
title = {{ISO/IEC 14882:2017}},
journal = {ISO},
year = {2018},
month = {Dec},
note = {[Online; accessed 16. Dec. 2018]},
url = {https://www.iso.org/standard/68564.html}
}
@misc{cpp98,
title = {{ISO/IEC 14882:1998}},
journal = {ISO},
year = {2018},
month = {Dec},
note = {[Online; accessed 16. Dec. 2018]},
url = {https://www.iso.org/standard/25845.html}
}
@misc{csharp,
title = {{dotnet/coreclr}},
journal = {GitHub},
year = {2018},
month = {Dec},
note = {[Online; accessed 16. Dec. 2018]},
url = {https://github.com/dotnet/coreclr/blob/master/LICENSE.TXT}
}
@misc{roslyn,
title = {{dotnet/roslyn}},
journal = {GitHub},
year = {2018},
month = {Dec},
note = {[Online; accessed 16. Dec. 2018]},
url = {https://github.com/dotnet/roslyn/blob/master/License.txt}
}

View File

@ -74,4 +74,14 @@
freie Software. Die aktuellste Version ist GPLv3},
first={GNU Public License (GPL)},
text={GPL}
}
\newglossaryentry{ide}
{
name={Integrated Development Environment (IDE)},
description={Ein Integrated Development Environment, zu Deutsch integrierte
Entwicklungsumgebung, ist eine Software welche Programmierer beim
erstellen von Software helfen soll in dem es ihn bei häufig
wiederkehrenden Aufgaben unterstützt.},
first={Integrated Development Environment (IDE)},
text={IDE}
}

View File

@ -206,11 +206,96 @@ PLACEHOLDER
** TODO Varianten
PLACEHOLDER
Da Borg eine JSON API zur Verfügung stellt bieten sich diverse Möglichkeiten um
das Programm anzubinden. Da das Ziel ist, das Programm normalen Nutzern
zugänglicher zu machen, bietet sich ein normales Desktop Programm am ehesten
an. Desktop Programme werden von allen Computer Usern täglich genutzt und sind
somit etwas was sie kennen.
*** TODO Ergebnis
Daraus ergeben sich weitere Möglichkeiten für das Projekt.
PLACEHOLDER
*** Backend
Fürs Backend bieten sich folgende Sprachen an.
- C#
- C++
- Python
*C#*
C# ist eine von Microsoft entwickelte Programmiersprache sowie mit .NET auch
ein Framework. Zudem ist es die Programmierspache welche an der IBZ
hauptsächlich gelehrt wird. Dadurch sind die Kenntnisse der Sprache und ihrer
Anwendung bereits relativ gross. Insbesondere Aufgrund der grossen
kommerziellen Nutzung in Windows hat C# eine relative grosse Verbreitung.
C# ist eine stark typisierte Sprache, heisst man muss bei Objekten den
Datentyp bereits beim erstellen definieren. Desweiteren ist C# eine kompilierte
Sprache und setzt stark auf objekt-orientierte Programmierung.
C# wird dabei hauptsächlich mit der gls:ide Microsoft Visual Studio. Eine sehr
umfangreiche und komlexe Software. Visual Studio ist dabei nur für Windows und
OS X erhältlich. Es ist auch möglich C# Projekte ausserhalb von Visual Studio
zu erstellen ist jedoch nicht sehr einfach.
C# ist zu Teilen freie Software. Die Common Language Runtime welche für das
Ausführen von Software zuständig ist, ist unter der MIT Lizenz lizenziert
footcite:csharp der aktuelle Compiler Roslyn ist unter der Apache Lizenz
verfügbar footcite:roslyn.
*C++*
C++ ist eine stark typisierte und kompilierte Programmiersprache. Sie ist seit
1998 Teil des ISO Standards footcite:cpp98. ISO/IEC 14882:2017 footcite:cpp17
ist zur Zeit die aktuellste Variante. Die Sprache existiert seit ca. 33 Jahren
und hat eine weitreichende Verbreitung gefunden. C++ ist auf allen
Betriebssystemen gut unterstützt.
C++ kompiliert direkt zu Maschinensprache und ist dadurch sehr performant. C++
ist im Vergleich zu modernen Sprachen jedoch relativ komplex und bietet diverse
Stolpersteine für Programmierer.
Da C++ auch heute noch zu den meistgenutzten Sprachen gehört gibt es
entsprechend viele Ressourcen dazu und Beispiel Projekte von denen man ableiten
kann. Auch hilfreiche Libraries gibts es sehr viele welche den Programmierer
unterstützen können.
*Python*
Python ist eine dynamisch typisierte und interpretierte Sprache. Dies bedeutet
das man bei Variabeln nicht explizit den Typ angeben muss und die Programme zur
Laufzeit für den Computer übersetzt werden. Interpretierte Sprachen haben den
Vorteil das man mit ihnen in der Regel sehr schnell und unkompliziert
entwickeln kann, dies jedoch auf Kosten der Performance.
Python unterstützt mehrere Programmierungsparadigmen wie etwa
objekt-orientiert, funktionale oder Prozedurale Paradigmen. Der Python
Interpreter ist für eine Vielzahl an Betriebssystemen erhältlich, inklusive
Windows, OS X und Linux. Nahezu jedes Desktop Linux System kommt mit Python vor
installiert.
Bei der Entwicklung von Python wurde sehr grossen Wert auf die Lesbarkeit der
Sprache gelegt. Dies mit dem Hintergedanken das eine Programmierspache viel
häufiger gelesen als effektiv geschrieben wird.
Python ist freie Software unter der Python Software Foundation License
footcite:python und wird durch die Python Software Foundation in einem
Community basierten Modell entwickelt.
*** FrontEnd
Fürs Frontend sind folgende Projekte interessant:
- Qt
- Gtk
- Electron
*** TODO Bewertung
Die Bewertungspunkte setzen sich einerseits aus den Projektzielen anderseits
aus für das Projekt sinnvollen Punkten zusammen. Dadurch ergeben sich dann die
Punkte welche in der nachfolgenden Tabelle aufgenommen wurden. Die möglichen
Varianten wurden dann bewertet und die Variante mit der höchsten Bewertung
wurde für das Projekt ausgewählt.
** TODO Vorkenntnisse