Lehrveranstaltungshandbuch Software Engineering Automatisierungstechnik
Verantwortlich: Prof.Dr.Kreiser
Lehrveranstaltung
Befriedigt Modul (MID)
Organisation
Version |
erstellt |
2016-10-03 |
VID |
1 |
gültig ab |
WS 2012/13 |
gültig bis |
|
|
|
Bezeichnung |
Lang |
Software Engineering Automatisierungstechnik |
LVID |
F07_SEA |
LVPID (Prüfungsnummer) |
|
|
Semesterplan (SWS) |
Vorlesung |
2 |
Übung (ganzer Kurs) |
2 |
Übung (geteilter Kurs) |
|
Praktikum |
1 |
Projekt |
|
Seminar |
|
Tutorium (freiwillig) |
|
|
|
Präsenzzeiten |
Vorlesung |
30 |
Übung (ganzer Kurs) |
30 |
Übung (geteilter Kurs) |
|
Praktikum |
15 |
Projekt |
|
Seminar |
|
Tutorium (freiwillig) |
|
|
|
max. Teilnehmerzahl |
Übung (ganzer Kurs) |
|
Übung (geteilter Kurs) |
|
Praktikum |
18 |
Projekt |
|
Seminar |
|
|
Gesamtaufwand: 180
Unterrichtssprache
- Deutsch, 70%
- Englisch, 30%
Niveau
Notwendige Voraussetzungen
- grundlegende Kenntnisse zur Verhaltensmodellierung (z.B. State Charts, Petrinetze)
- grundlegende Programmierkenntnisse
Literatur
- I. Sommerville: Software Engineering (Addison-Wesley / Pearson Studium)
- H. Balzert et.al.: Lehrbuch der Softwaretechnik (Spektrum Akademischer Verlag)
- Basiskonzepte und Req.Eng.
- Softwaremanagement
- G.E. Thaller: Software- und Systementwicklung (Heise Verlag)
- Bernd Oestereich: Analyse und Design mit UML 2.3 (Oldenbourg)
- Gamma et.al.: Design Patterns, (Addison-Wesley)
- OMG Unified Modeling Language Spec., www.omg.org/uml
- K. Beck: eXtreme Programming (Addison-Wesley Professional)
- Ken Schwaber: Agiles Projektmanagement mit Scrum (Microsoft Press)
- H.D. Litke: Projektmanagement (Hanser)
Dozenten
Wissenschaftliche Mitarbeiter
Zeugnistext
Software Engineering für die Automatisierungstechnik
Kompetenznachweis
Form |
sMP |
Regelfall (bei großer Prüfungszahl: sK) |
Intervall: 2/Jahr
Lehrveranstaltungselemente
Vorlesung / Übung
Lernziele
Lerninhalte (Kenntnisse)
- Begriffe
- Softwaresystem
- Softwareprodukt
- Softwarequalität
- Komplexität
- objektorientiertes Modellieren mit UML
- Domänenmodell
- Struktur
- Verhalten
- Schnittstellen
- Softwarearchitekturmodell
- Implementierungsmodell
- Modelltransformationen
- Modellierungswerkzeuge
- Vorgehensmodelle
- lineare
- evolutionäre
- Spiralmodell
- eXtreme Programming
- Scrum
- Timebox
- Qualitätsmanagement
- Anforderungsanalyse
- Requirements Engineering
- Design-Input-Requirements (Lastenheft)
- Gesetze, Normen und organisatorische Vorgaben
- Produktrisikoanalyse
- Entwurf
- Designprinzipien
- Machbarkeitsstudien
- Systemspezifikation (Pflichtenheft)
- Softwarespezifikationen
- Implementierung
- Programmiersprachenwahl
- Programmierrichtlinien
- Entwicklung in verteilten Teams
- Entwicklertest
- Systemintegration
- Inbetriebnahme
- Werkzeuge
- Verifikation & Validierung
- Formalisierte Softwaretests
- dynamische Tests
- statische Tests
- Feldevaluation
- Betriebsbegleitung
- Managementaufgaben
- Dokumentmanagement
- Konfigurationsmanagement
- Versionsmanagement
- Buildmanagement
- Testmanagement
- Änderungsmanagement
Fertigkeiten
- Technische Softwaresysteme analysieren
- Systemanforderungen methodisch ermitteln, konsolidieren und priorisieren
- formalisierte Anforderungsspezifikation entwerfen
- Technische Softwaresysteme modellieren
- Notationen der Unified Modeling Language zur Modellierung einfacher Softwaresysteme nutzen
- Strukturnotationen
- Klassendiagramm
- Paketdiagramm
- Komponentendiagramm
- Verteilungsdiagramm
- Verhaltens- und Schnittstellennotationen
- Anwendungsfalldiagramm
- Aktivitätsdiagramm und Aktionskonzept
- Zustandsautomat und Protokollautomat
- Sequenzdiagramm
- Modellierungsebenen benennen und abgrenzen
- Systemmodell (Kundensicht)
- Entitätenmodell
- Schnittstellenmodell
- Verhaltensmodell
- Softwaremodell (Entwicklersicht)
- Technische Klassenmodelle
- Detaillierte Verhaltensmodelle
- Designprinzipien
- grundlegende Softwarearchitekturen
- Kontext, Grenzen, Aufgaben, Verhalten und Strukturen einfacher Softwaresysteme aus Texten ableiten
- technische Textabschnitte vollständig erfassen
- implizite Angaben erkennen und verstehen
- Inkonsistenzen erkennen und auflösen
- fehlende Angaben erkennen und ableiten bzw. erfragen
- Softwaresysteme mit UML2-Notationen modellieren
- einfache Systemmodelle iterativ entwerfen
- Entitätenmodell entwerfen
- Kontext- und Anwendungsfallmodell aus Kundensicht entwerfen
- Anwendungsfälle detaillieren
- Standardszenario und wesentliche Alternativszenarien beschreiben
- als Aktivitätsdiagramm verfeineren
- einfache Softwaremodelle iterativ entwerfen
- Refactoring und Detaillierung des Entitätenmodells aus Entwicklersicht
- Verhaltensmodelle aus Entwicklersicht detaillieren
- strukturbasiertes Verhalten als State Chart modellieren
- Aktivitäten bis zur Aktionsebene verfeinern
- Zusammenhang zwischen Aktionen und Klassenmethoden herstellen
- Professionelles UML2-Entwurfswerkzeug bedienen
- Modelle verifizieren
- Bewertungskriterien definieren
- Einhalten von Modellierungsvorgaben und Designprinzipien
- Vollständigkeit bzw. unnötige Komplexität
- Qualität im Hinblick auf spezifische Kundenvorgaben
- …
- Testfälle definieren
- Modellreviews durchführen und dokumentieren
- Selbst
- mit Peer
- in der Gruppe
- Modellfehler entdecken und benennen
- Modelle anhand der Bewertungen korrigieren und optimieren
- Technische Softwaresysteme entwerfen
- Produktrisiken ermitteln, Milderungsmaßnahmen definieren und im Entwurf berücksichtigen
- Designprinzipien zum Erreichen definierter Qualitätsziele benennen, erläutern und anwenden
- problemgerechte System- und Softwarearchitektur auswählen und anwenden
- Methoden zur Softwareentwicklung in verteilten Teams erläutern und exemplarisch anwenden
- Methoden zur Softwareprüfung in verteilten Teams erläutern und exemplarisch anwenden
- Technische Softwaresysteme qualitätsgesteuert entwickeln
- Vorgehensmodelle beschreiben, gegenüberstellen und exemplarisch anwenden
- Informationen aus internationalen Standards zur Softwareentwicklung gewinnen (Deutsch/Englisch)
Begleitmaterial
- elektronische Vortragsfolien zur Vorlesung
- elektronische Übungsaufgabensammlung
- professionelles Entwicklungswerkzeug für Unified Modeling Language (UML2)
Besondere Voraussetzungen
Besondere Literatur
Besonderer Kompetenznachweis
Form |
bÜA |
Präsenzübung und Selbstlernaufgaben |
Beitrag zum LV-Ergebnis |
bÜA |
unbenotet |
Intervall: 1/Jahr
Praktikum
Lernziele
Fertigkeiten
- Größere technische Softwaresysteme analysieren
- umfangreiche technische Texte erfassen und verstehen, insbesondere englischsprachige Texte
- umfangreiche Systemanforderungen auswerten und anordnen
- Größere technische Softwaresysteme modellieren
- Modellierungsebenen abgrenzen
- Systemmodell (Kundensicht)
- Softwaremodell (Entwicklersicht)
- Modellnotationen systematisch zur Systembeschreibung nutzen
- Schnittstellen-, Verhaltens- und Strukturmodelle in UML2-Notationen iterativ herleiten
- Professionelles UML2-Entwurfswerkzeug zielgerichtet einsetzen
- Modelle verifizieren und bewerten, Modellfehler korrigieren und Modelle optimieren
- Größere technische Softwaresysteme entwerfen
- Designprinzipien zum Erreichen definierter Qualitätsziele auswählen und anwenden
- problemgerechte System- und Softwarearchitektur auswählen und anwenden
- Softwareentwicklung und Softwareprüfung in verteilten Teams durchführen
- Quellcode erstellen und prüfen
- gegebenen Quellcode analysieren
- objektorientierte Programmiersprache (C++) beherrschen
- Größere technische Softwaresysteme qualitätsgesteuert entwickeln
- evolutionäres Vorgehensmodell anwenden
- Informationen aus internationalen Standards zur Softwareentwicklung gewinnen (Deutsch/Englisch)
- Arbeitsergebnisse des Teams in englischer Sprache kompakt und zielgruppengerecht präsentieren
Handlungskompetenz demonstrieren
- Realweltsysteme modellieren
- Dekomposition
- Systemgrenzen erkennen bzw. definieren und korrekt nutzen
- Systemschnittstellen erkennen bzw. definieren und korrekt nutzen
- Systemstrukturen erkennen bzw. definieren und korrekt darstellen
- Systemfunktionen erkennen bzw. definieren und korrekt darstellen
- Komposition
- Struktur- und Verhaltensmodelle erstellen
- Modelle integrieren
- Teilmodelle und Gesamtmodell verifizieren und bewerten
- komplexe Aufgaben arbeitsteilig im Team bewältigen
- einfache Projekte planen und steuern
- Absprachen und Termine einhalten
- Reviews planen und durchführen
- Modelltransformationen anwenden
- Modellelemente aus gegebenem C++ Quellcode zurückführen
- Modelle durch manuelle Quellcodeanalyse vervollständigen und verifizieren
- Systemerweiterungen und Lösungsmodifikationen auf Basis einer aktuellen Spezifikation modellieren
- Quellcode aus neuem Modell generieren und generierten Quellcode manuell vervollständigen
- Implementierung im Debugger und durch systematische Tests auf dem Zielsystem verifizieren
Begleitmaterial
Besondere Voraussetzungen
- grundlegende objektorientierte Programmierkenntnisse (C/C++)
Besondere Literatur
Besonderer Kompetenznachweis
Form |
bSZ |
1 Präsenztermin (4h) |
bPA |
2 Präsenztermine je 4h je Projektgruppe |
sMB |
20min Ergebnispräsentation zu bPA |
Beitrag zum LV-Ergebnis |
bSZ |
Testat |
bPA |
Testat |
sMB |
zu bPA |
Intervall: 1/Jahr
Das Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborations-Plattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich Foswiki?
Feedback senden