AZUBIT Nadine | Bachelor of Science - Wirtschaftsinformatik | Neckarsulm

Was macht man in.. Software Engineering?

Heute geht es um einen Teil des Moduls „Grundlegende Methoden der Wirtschaftsinformatik“, auf den ich sehr gespannt war: Software Engineering oder auch Systemanalyse und –entwurf.

Die Einheit Software Engineering befasst sich ganz allgemein betrachtet mit der Softwareentwicklung. Dazu gehören die Komponenten Analyse, Planung, Design sowie Programmierung und das abschließende Testing.
Nach den ersten Einblicken in die Grundlagen der Thematik, also zum Beispiel die Definition des Software Engineering (= „Jede Aktivität, bei der es um die Erstellung oder Veränderung von Software geht, soweit mit der Software Ziele verfolgt werden, die über die Software selbst hinausgehen.“), ging es in die einzelnen Komponenten über. Wir lernten die Merkmale von Analyse und Design, wobei wir übergreifend auf das Thema „Objektorientierte Analyse und Design (OOA/D)“ eingingen. Hierbei lernten wir die schrittweise Softwareentwicklung und die Schritte von der Realität zum Software-Objekt. Das sah zum Beispiel so aus:

SE_Neu_1

Ein weiteres Thema war u.a. die UML – Unified Modeling Language.
Diese visuelle Modellierungssprache kann als Skizze, Bauplan oder Programmiersprache eingesetzt werden. In den Vorlesungen nutzten wir sie am häufigsten zu Konzeptions- bzw. Spezifikationszwecken der Analyse oder des Designs. Nachdem dies erste Einführungen waren, ging es an die „ernsteren“ Themen. In einem gesamten Entwicklungsprozess würden wir noch sehr weit vorne am Anfang stehen, weshalb es für uns in die Welt der Use-Cases ging. Diese sind textuelle Ablaufbeschreibungen und vereinen die UML und objektorientierte Sprache in sich. Zu jedem Use-Case gehören auch bestimmte Akteure. Hier lernten wir die primären, sekundären und tertiären Akteure kennen sowie die Stakeholder (= Interessensgruppe(n)). Die schriftlich definierten Cases können schließlich als Use-Case Diagramm dargestellt werden. Das würde folgendermaßen aussehen:

SoftwareEngineering2
Nach dieser Art von Diagrammen lernten wir auch weitere grundlegende Diagramme und Komponenten der Softwareentwicklung kennen:  Das Aktivitätsdiagramm, konzeptionelle Klassen, Konzepte allgemein, Assoziationen, Attribute, Methoden oder auch das „FURPS+ Modell“ (=Functional, Usability, Reliability, Performance, Supportability, Sonstiges).

Den Schlusspunkt bildete die visuelle Modellierung. Ein großer und wichtiger Teil davon waren Sequenzdiagramme, welche aus Klassen, synchronen (vollständiger Pfeil) und rückführenden (gestrichelter Pfeil) Nachrichten bestehen.
Hier ein Beispiel dazu:

SE_Neu_2

Auf den ersten Blick mag es für so manchen Nicht-Informatiker sehr befremdlich erscheinen. Es kam auch mir zu Beginn etwas spanisch vor und dennoch habe ich alles sehr gut hinbekommen.

Ich hoffe die Beispiele konnten euch einen guten, kleinen Überblick bieten. Bei Fragen – wie immer – einfach sehr gerne bei mir melden.

Grüße Nadine

3 Kommentare

Hallo Nadine und Stefan,

die verschiedenen Vorgehensmodelle werden im 4. Semester in der Vorlesung Projektmanagement im Detail betrachtet. Sowohl klassische wie das Wasserfallmodell aber auch die agilen wie eben Scrumming oder XP.

Grüße
Simon

Hallo Stefan,

deine angesprochenen Themen haben wir im vergangenen Semester z.T. nur am Rande angerissen, also quasi nur ein bisschen darüber gesprochen. Die Themen aus meinem Beitrag waren „nur“ Basics für das 2. Semester, sodass wir nun gut in das 3. starten konnten.
Aktuell bearbeiten wir eine Fallstudie in Gruppen, für die wir das Wissen aus Semester 2 anwenden müssen und neu Erlerntes ebenso hinzufügen.
In den ersten drei Wochen des neuen Semesters wurden wir bereits über agile Projektmethoden sowie Requirements Engineering informiert.

Viele Grüße
Nadine

Hallo Nadine,

habt ihr in Software-Engineering auch schon über Entwicklungsprozesse gesprochen? Die Methoden, die du zeigst, werden ja eher in „klassischen“ Entwicklungsprozessen verwendet, wie z.B. Wasserfall oder V-Modell. Dort gibt es ausgedehnte Entwurfsphasen.

Mich würde interessieren, ob euch auch schon die „modernen“ Ansätze der agilen Softwareentwicklung nähergebracht wurden, also z.B. Scrum oder Extreme Programming (XP). Insbesondere beim testgetriebenen Entwickeln aus XP verzichtet man eher auf lange Entwurfsphasen und das Design ergibt sich beim Programmieren. Das entspricht in vielen Projekten eher der Praxis, da man im Vorfeld meist gar nicht so genau planen kann, wie es für die Klassen- oder gar die Sequenzdiagramme der UML notwendig wäre.

Ich persönlich benutze die UML-Diagramme daher eher für (nachträgliche) Dokumentationszwecke und nicht für die Modellierung vorab.

Viele Grüße!
Stefan

Hier ist Platz für deinen Kommentar.