Analysis and Modeling of Software
In diesem Bolg habe ich jetzt schon einiges über die Vorgehensweisen bei der Erstellung von Software gesprochen. Dieser Post soll eine Art Zusammenfassung darstellen in der die wichtigsten Punkte noch einmal aufgegriffen und kurz erklärt werden.
Für Neueinsteiger empfiehlt sich zum besseren Verständnis die kompletten Beiträge zu den einzelnen Themen durch zu lesen.
Live Cycles
Bei Live Cycles (SDLC) handelt es sich im Softwareengeneering um den gesamten Entwicklungsprozess einer Software, von der Idee des Ingenieurs über das schreiben des Quellcodes, testen der Funktion, bis hin zur Auslieferung des fertigen Produkts an den Kunden und die Instandhaltung dieser.
Folgendes Bild zeigt die verschiedenen Phasen eines Live cycle und den ungefähren Ablauf. Jedoch können diese variieren und ist nicht genau festgelegt, es handelt sich lediglich um eine Art Unterstützung.

Die Darstellung kann auch auch abweichen. Es gibt folgende Live Cycle Modelle:
- Waterfalll Model
- V-Shaped Model
- Evolutionary Prototyping Model
- Spiral Method
- Agile Development
Wenn du mehr zu Thema SDLC wissen willst klicke einfach auf folgenden Link
Link zum Post: https://pythonbasiccourse.home.blog/2019/08/23/was-sind-live-cycles-in-software-engeneering/
Unified Software Process
Bei einem Unified Software Process handelt es sich um ein sog. Prozess-Framework. Das ist eine Art Programmgerüst, an dem man sich orientieren kann jedoch selber noch kein vollständiges, arbeitsfähiges Programm darstellt. Es ist lediglich als Unterstützung gedacht.
Ein solcher USP besteht immer aus vier grundlegenden Entwicklungsphasen
- Inception (Beginn)
- Elaboration (Ausarbeitung)
- Construction (Erstellung)
- Transition (Übergang)
Es gibt einige UPs, die von verschiedenen Firmen entwickelt und vertrieben werden. Am bekanntesten ist wohl der RUP. Mehr Informationen zu dieser speziellen Art von UP findest du zum Beispiel auf Wikipedia.
https://de.m.wikipedia.org/wiki/Rational_Unified_Process
Link zum Blogpost: https://pythonbasiccourse.home.blog/2019/09/04/was-versteht-man-unter-unified-software-process-mastery-02/
Use Cases
Mit Use Cases oder auch einfach Anwendungsfällen meint man im Softwareengeneering die von außen beobachtbaren Funktionen eines Anwendungssystems bzw. die Funktionen die dem Anwender vom System zur Verfügung gestellt werden.
Solche Anwendungsfälle werden häufig durch Anwendungsfalldiagramme dargestellt. Es dient zum besseren Verständnis des Programms sodass zum Beispiel die Auftraggeber des Projekts dieses auch verstehen und eigene Ideen sinnvoll mit einbringen können.
In folgendem Bild ist ein Anwendungsfalldiagramm eines Restaurants dargestellt, das die Vorgänge in diesem vereinfacht darstellt.

Use Cases unterliegen bestimmten Vorgaben die sie als solche definieren:
- Bei jedem Use Case muss mindestens ein Anwender beteiligt sein
- Für jeden Use Case gibt es einen Auslöser
- Und jeder Use Case hat ein Ergebnis, das für den Anwender relevant iswt und von „geschäftlichen Wert“
Für ausführlichere Informationen besuche doch bitte meinen Blogpost zu Use Cases
Link zum Blogpost: https://pythonbasiccourse.home.blog/2019/09/06/100/
Modeling Languages And TOOLs
Eine Modeling Language ist im Allgemeinen eine künstliche Sprache, die erfunden wurde um gewisse Zusammenhänge, Informationen oder Wissen eines Systems strukturiert auszudrücken. Dabei beruht das Vorgehen immer auf gewissen Regeln, die dazu dienen die Beudeutung der einzelnen Komponenten für die Struktur zu interpretieren.
Es gibt zwei Darstellungsmöglichkeiten für solch eine Modeling Language
- Grafische Modeling Languages sind meist als eine Art Diagramm aufgebaut, ein bekanntes Beispiel hierfür wären die Klassendiagramme von UML.
- Textbasierte Modeling Languages verwenden hingegen standardisierte Ausdrücke denen feste Funktionen zugeordnet werden. Ein bekanntes Beispiel, das beide Darstellungen unterstützt ist EXPRESS.
Es gibt jedoch auch noch viele andere speziellere Arten von Modeling Languages. Einige Beispiele hierfür sind:
- Algebraic
- Object-oriented
- Information and knowledge modeling
- Framework-specific
- Domain-specific
- Discipline-Specific
Link zum Wikipedia-Eintrag mit genaueren Erklärungen zum Thema: https://en.wikipedia.org/wiki/Modeling_language
Link zum Blockpost für weitere Informationen: https://pythonbasiccourse.home.blog/2019/09/18/modeling-languages-and-tools-mastery-04/
Eigene Reflexion zum bisherigen Semester
Zu Beginn meines Auslandssemesters hier in Mexiko war ich mir nicht sicher wie meine beiden Kurse Analysis and Modeling of Software und Problem-solving with Software wohl ablaufen würden. Unser Dozent sagte uns von Anfang an „those courses are different“ und er hatte recht.
In diesem Kursen schreiben wir all unsere Aufgaben in einen Online-Blog, wie diesen und bekommen so unsere Noten. Es ist eine ganz andere Art zu lernen.
Um einen guten Post schreiben zu können muss man sich erst einmal intensiv mit den Themen auseinander setzten und um dann auch einen Text in eigenen Worten schreiben zu können muss man auch wirklich verstehen um was es geht. Auf diese Weise ist es viel leichter am Ball zu bleiben und man hat auch einen besseren Überblick darüber, was man weis und was nicht.
Für mich persönlich funktioniert diese Art des Lernens sehr gut und tatsächlich macht es auch, da wir mit der Gestaltung unseres Blogs, der Posts und deren Inhalten sehr frei sind. Da man sehr Kreativ sein kann bleibt die Motivation hoch.
Alles in Allem kann ich sagen dass ich die letzten Themen sehr gut verstanden habe. Das Konzept einen Blog zu schreiben und so durch Recherche sich den Stoff selber anzueignen empfinde ich als sehr positiv.
Für das nächste drittel des Semesters möchte ich auf jeden Fall versuchen meine Posts weiter zu verbessern und sie untereinander zu verlinken um eine bessere Navigation zu gewährleisten. Ich hoffe auch weiterhin ein besseres Verständnis für die Grundgedanken hinter dem Programmieren zu erlangen, das ich dann auf Sprachen wie Python, C++ oder andere übertragen kann.
Coverbild: https://pixabay.com/de/photos/frau-programmieren-programmierung-3597101



Ein Kommentar zu “Reflection 1”