Lehrveranstaltungshandbuch Software Engineering Automatisierungstechnik


Verantwortlich: Prof.Dr.Kreiser

Lehrveranstaltung

Befriedigt Modul (MID)

Organisation

Version
erstellt 2012-03-05
VID 1
gültig ab WS 2012/13
gültig bis
Bezeichnung
Lang Software Engineering Automatisierungstechnik
LVID F07_SEA_Kreiser
LVPID (Prüfungsnummer)

Semesterplan (SWS)
Vorlesung 2
Übung (ganzer Kurs) 2
Übung (geteilter Kurs)
Praktikum 1
Projekt
Seminar
Tutorium (freiwillig) 2
Präsenzzeiten
Vorlesung 30
Übung (ganzer Kurs) 30
Übung (geteilter Kurs)
Praktikum 15
Projekt
Seminar
Tutorium (freiwillig) 30
max. Teilnehmerzahl
Übung (ganzer Kurs)
Übung (geteilter Kurs)
Praktikum 18
Projekt
Seminar

Gesamtaufwand: 180

Unterrichtssprache

  • Deutsch, 70%
  • Englisch, 30%

Niveau

  • Bachelor

Notwendige Voraussetzungen

  • grundlegende Kenntnisse zur Verhaltensmodellierung (z.B. State Charts, Petrinetze)
  • grundlegende Kenntnisse in Projektmanagement

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

  • Prof.Dr.Kreiser

Wissenschaftliche Mitarbeiter

  • Dipl.-Ing. Kellersohn

Zeugnistext

Software Engineering für die Automatisierungstechnik

Kompetenznachweis

Form
sMP Regelfall (bei großer Prüfungszahl: sK)

Aufwand [h]
sMP 10

Intervall: 3/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
      • Phasenmodell
      • V-Modell
    • evolutionäre
      • Spiralmodell
      • eXtreme Programming
      • Scrum
      • Timebox
    • Qualitätsmanagement
      • SOPs
  • Anforderungsanalyse
    • Requirements Engineering
    • Design-Input-Requirements (Lastenheft)
    • Gesetze, Normen und organisatorische Vorgaben
  • Produktrisikoanalyse
    • FMEA
    • FTA
  • 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

  • keine

Besondere Literatur

  • keine

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

  • keine

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

Diese Seite läuft auf FoswikiDas Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborations-Plattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich Foswiki? Feedback senden