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

  • Bachelor

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

  • Prof.Dr.Kreiser

Wissenschaftliche Mitarbeiter

  • Dipl.-Ing. Al Ghouz

Zeugnistext

Software Engineering für die Automatisierungstechnik

Kompetenznachweis

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

Aufwand [h]
sMP 10

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
      • 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