Grundlagen der Softwaretechnik

 

Vorlesung Grundlagen der Softwaretechnik (INJE03)
0401003/004, SS 2008

Whitepage Icon Prof. Dr. Jürgen Ebert

Modulbeschreibung - Aktuelles - Gliederung - Literatur und Links - Übungsaufgaben - Leistungsnachweis - Termine

Aktuelles

  • (17.06.08) Das achte Themenblatt ist abrufbar.
     
  • (10.06.08) Die Übungsgruppen C und D (Do 08:30) werden ab sofort wegen geringer Beteiligung im Raum B 013 zusammengelegt.
     
  • (23.04.08) Auf der ToolsPage finden Sie Informationen zu UML-Tools.
     
  • (22.04.08) Die Klausur findet am 21.07.2008, 10:00-12:00 statt. Anmeldung ab sofort bis einschließlich 14.07.2008, 20:00.
     

 

Zielgruppe

Dieses Modul ist eine Pflichtveranstaltung für folgenden Studiengänge

  • Bachelor Informatik, 2. Jahr
  • Bachelor Computervisualistik, 2. Jahr
  • Bachelor Informationsmanagement, 2. Jahr
  • Bachelor Lehramt an Gymnasien oder Realschulen, 2. Jahr

Sie wird in den Diplomstudiengängen noch als Softwaretechnik 1 anerkannt. Allerdings gibt es nur 6 statt bisher 9 Leistungspunkte, da sie insgesamt nur vierstündig (statt sechsstündig) ist.


 

Gliederung mit Stichworten und Beilagen

Die Inhalte der Moduls "Objektorientierte Programmierung und Modellierung" (INJE01) werden vorausgesetzt.

Diese Veranstaltung soll die Studierenden in die Lage versetzen, die Sprachen und Methoden der Softwaretechnik in den verschiedenen Phasen der Software-Entwicklung und -Wartung anwenden zu können. Dabei wird UML als Notation verwendet.

Überblick

Teil 1: Grundlagen

§ 1 Grundbegriffe (Beilagen)

Begriffsnetz

§ 1.1 Softwaretechnik

Softwaretechnik - Softwaresystem -
programmiersprachen-, anwendungsbereichs- plattform-unabhängig -
Software Crisis - Standish-Chaos-Studie -
Ingenieurwissenschaft - Anforderung, Modell, Lösung, Prüfung -
Gesellschaften: ACM, IEEE, GI -
Mailinglist seworld -
Tagungen: ICSE: International Conference on Software Engineering, ESEC: European Software Engineering Conference, SE: Software Engineering Konferenz

§ 1.2 Betrachtungsrahmen der Vorlesung

Erstellung - Nutzung - Weiterentwicklung -
Erstellung für den Markt oder für einen Auftraggeber -
kommerziell - technisch - mobil -
Projekt - Produkt -
Betrachtungsrahmen der Vorlesung

§ 2 Eigenschaften (Beilagen)

§ 2.1 Grundlagen

Qualität - Umfang - Kosten - Zeit - Teufelsquadrat

§ 2.2 Qualitätseigenschaften

Zuverlässigkeit - Korrektheit - Robustheit - Ausfallsicherheit -
Wartbarkeit - Validierbarkeit - Flexibilität - Verständlichkeit -
Portabilität - Benutzungsfreundlichkeit - Effizienz -
Bedeutung von Metriken

§ 3 Prinzipien, Methoden, Werkzeuge (Beilagen)

§ 3.1 Grundlagen

Prinzip - Methode - Werkzeug

§ 3.2 Grundprinzipien

Analogieprinzip - Vollständigkeitsprinzip - Nachweisbarkeitsprinzip - Prinzip der Überraschungsminimierung - Zerlegungsprinzip - Abstraktionsprinzip - Lokalitätsprinzip - Prinzip der Trennung der Belange - Abkapselungsprinzip - innerer Zusammenhang - Kopplung

§ 4 Lebenslauf und Aktivitäten (Beilagen)

§ 4.1 Software-Lebenslauf

logisches Modell vs. Vorgehensmodell - Rahmen (vom Problem zum Produkt) - Lebenslauf - Phasenaktivitäten - Problemstellung, Studie, Anforderungsdefinition, Architektur, Bausteinspezifikation, System - Aufwandsverteilung (1/3:2/3) - Übergreifende Aktivitäten -

§ 4.2 Aktivitäten

analysieren, definieren, entwerfen, spezifizieren, implementieren, integrieren, installieren, betreiben, warten - leiten, Qualität sichern, dokumentieren

Teil 2: Sprachen

§ 5 Sprachen und Modelle

§ 5.1 Grundlagen

Methode - Artefakt - Beispiele für Artefakte - Attribute von Artefakten - Dokumente - formal, informal, halbformal - textuell, visuell, hybrid

§ 5.2 UML

Sichten - Datenstruktursicht, Datenflusssicht, Kontrollflusssicht, Zustandssicht - UML (Historie) - OMG - Literatur: [RuHaQu05], [HiKaKa05] , [Stoe05] - Quick Reference

§ 5.3 Modellierung

Modell - Abstraktion - Elisionsprinzip - Bedeutung von Modellen - modell-getriebene Entwicklung

 

§ 6 Objekt-Beziehungs-Beschreibungen (Beilagen)

§ 6.1 Grundlagen

Identität vs. Gleichheit - Objekt-Notation in UML

§ 6.2 UML Klassendiagramme

Klassen, Attribute, Assoziationen, Rollen, Operationen - Assoziation, Aggregation, Komposition - I-S-M-Dimensionen - Generalisierungsbeziehungen

§ 6.3 Techniken

(In den Übungen)

§ 6.4 Formalisierung

Syntax und Semantik von Diagrammsprachen - Metamodelle - UML-Superstructure - 4-Schichten-Sicht der UML - ontologische und syntaktische Instanzen

§ 7 Kontrollfluss-Beschreibungen (Beilagen)

§ 7.1 UML-Aktivitätsdiagramme

Aktion - Kontrollfluss-Kante - Bedingungen - Kontroll-Elemente - parallele Abläufe - Verfeinerte Aktivitäten - Skizzen zur Semantik (Tokenflüsse)

§ 8 Datenflussbeschreibungen

Beispiel - Datenfluss - Objektknoten - Datenflusskante - Tokenspiel - Bezug zum Klassendiagramm - Zustandsannotationen - Eingabe-/Ausgabeobjekte - Beschreibung vs. Anwendung (Beispiel) - Pins - Verfeinerung (Balancierung) -
Historische Datenflussdialekte (Yourdon-DeMarco, Gane-Sarson, SADT, DIN66001)

§ 9 Zustands-Übergangs-Beschreibungen

§ 9.1 Grundlagen

Reaktive Systeme - Beispiele -
Zustandsautomat - Zustand, Ereignis, Bedingung, Aktion - Bezug zu endlichen Automaten - Vergleich von Kontrollfluss und Zustands-Übergangsbeschreibungen

§ 9.2 Einfache Zustandsautomaten

Übersicht - Zustand - Feinstruktur - entry/do/exit-Aktion - Terminationsanforderungen - Ablauf eines Zustands - (entry,do,exit) - Transition - Trigger, Bedingung, Aktion - - Ablauf einer Transition - Kontrollelemente (Start, Ende, Kreuzung, Entscheidung)

§ 9.3 Zusammengesetzte Zustände

Zustandsexplosion - StateCharts - Hierarchie - Orthogonalität - zusammengesetzter Zustand (xor-Zustand, xor-Blob) - Zustandsverfeinerung - Ausblenden - Betreten und Verlassen - Regionen - and-Zustand, and-Blob - Parallelität - Ablauf - syntaktischer vs. semantischer Zustandsbegriff - Ablauf eines and-Zustands - history state

Teil 3: Methoden

§ 10 Analyse und Anforderungsdefinition

§10.1 Grundlagen

Analysieren - Definieren - Aufgaben - hohe Bedeutung der Anforderungen - - Literatur: [Rupp01] - Probleme der frühen Phasen - Sprachwelten des Herstellers und des Auftragsgebers - Regeln

§ 10.2 Anforderungslisten und Glossar

Anforderung - Anforderungsliste - Sammlung, Gruppierung, Nummerierung - Nummerung (Dewey-Numbering) - Anforderungen an Anforderungen - Betrachtung einer Vision - Verbindlichkeit von Anforderungen - Anforderungen an Anforderungslisten - funktionale Anforderungen - Beispiel aus [Rupp01] - nicht-funktionale Anforderungen - Beispiele aus [Rupp01]bezogen auf Technik, Benutzungsschnittstelle, Qualität der Funktionen und des Produkts, rechtliche Rahmenbedingungen - Herleitung einer ersten Architektur eines ersten Informationsmodells - Beispiel einer Anforderungsdefinition

§ 10.3 Erhebung von Anforderungen

(A) Stakeholder identifizieren - Stakeholder - Beispiele -
(B) Gespräche führen - Interviews - Fragenliste - Vorbereitung - Protokolle: Gesprächsnotiz, Vermerk, Ergebnisprotokoll, Verlaufsprotokoll - Empfehlung: Ergebnisprotokoll - Inhalte eines Ergebnisprotokolls -
(C) Dokumente analysieren - Dokumentenanalyse - Beispiele - Verwendung für Glossar und Domänenmodell -
(D) Abläufe erheben - Ablauferhebung - Vorgang, Ablauf, Geschäftsprozess -
(E) Kreative Techniken verwenden - Mindmapping - Brainstorming - Metaplan
(F) Szenarien und Anwendungsfälle feststellen

§ 10.4 Feststellen der Anwendungsfälle

Anwendungsfall - Szenario - Schema, Instanz -

§ 10.5 Pflichtenheft

Artefakte der Anforderungsdefinition - Pflichtenheft - Zweck des Pflichtenheftes - Beispielgliederung

§ 11 Architektur entwerfen

§ 11.1 Grundlagen

Zerlegungsprinzip - top down vs. bottom up - hybrides Vorgehen - 7 +/- 2 - Architektur - Bausteine (components) - Beziehungen (connectors) - Granularität - Architektursicht (viewpoint) - Metamodell - Entwicklungszustände

§ 11.2 Architekturstile

Architektursicht - Architekturstruktur - Pipe-Filter-Stil - Client-Server-Stil - n-tier-Stil -Repository-Stil - Empfehlung: Struktursicht/Benutzungssicht/Datenflussicht - Standardnotation - eigene Notation mit Legende

§ 11.3 Entwerfen

strukturierte Analyse - Skizze - objekt-orientierter Entwurf - Skizze -

wird fortgesetzt

 

Literatur und Links

Literatur

  • [Chen76] P.P. Chen. The Entity-Relationship-Model - Toward a Unified View of Data. ACM Transactions on Database Systems 1(1976, 1), 9-36
  • [Har87] D. Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8:231–274, 1987.
  • [HiKaKa05] Martin Hitz, Gerti Kappel, Elisabeth Kapsammer, and Werner Retschitzegger. UML @ Work. dpunkt, Heidelberg, 2005.
  • [Rupp01] Chris Rupp. Requirements-Engineering und -Management. Hanser, München, 2001.
  • [RuHaQu05] Chris Rupp, Jürgen Hahn, Stefan Queins, Mario Jeckle, and Barbara Zengler. UML 2 glasklar. Hanser, München, 2005.
  • [Sommerville2007SE] Ian Sommerville. Software Engineering, 8th Edition. Pearson Studium, München, 2007.
  • [Stoe05] Harald Störrle. UML 2 erfolgreich einsetzen. Addison-Wesley, München, 2005.

Mailinglisten

URLs

 

Übungsaufgaben

  1. Themenblatt UML-Klassendiagramm (bis 29.04.2008, 10:00)

    Dieses erste Blatt ist hier noch einmal außerhalb des SVN-Repositories verfügbar. Alle weiteren gibt es nur noch im SVN.

  2. Themenblatt Metamodel (bis 06.05.2008, 10:00)
  3. Themenblatt Aktivitätsdiagramm (bis 20.05.2008, 10:00)
  4. Themenblatt Datenflussbeschreibung (bis 27.05.2008, 10:00)
  5. Themenblatt Zustandsübergangsdiagramm (bis 03.06.2008, 10:00)
  6. Themenblatt Anforderungsdefinition (bis 10.06.2008, 10:00)
  7. Themenblatt Anwendungsfälle (bis 17.06.2008, 10:00)
  8. Themenblatt Architektur (bis 24.06.2008, 10:00)

 

Bedingungen für den Leistungsnachweis

Einen Leistungsnachweis (6 LP) in Grundlagen der Softwaretechnik erhält, wer die Zulassungsvoraussetzungen für die Abschlussklausur erfüllt und die Klausur besteht.

Zugelassen wird, wer...

  • 50% aller Punkte in den Übungsaufgaben erreicht
  • UND mindestens 8 der 10 Themenblätter erfolgreich bearbeitet.

Anmeldepflicht

Für die Klausur und die Nachklausur gilt eine Anmeldepflicht. Wer sich nicht firstgerecht anmeldet, kann nicht an der Klausur teilnehmen. Wer sich angemeldet hat, aber nicht erscheint, gilt als durchgefallen.

Für die Übungen und die Arbeitsgruppen zur Bearbeitung der Übungsaufgaben (Achtung: 2 Anmeldungen erforderlich!) gilt ebenfalls Anmeldepflicht. Wenn die Frist versäumt wird, werden bis zu 2 Aufgabenblätter als nicht bearbeitet gewertet.

Anerkennung alter Zulassungen

Eine im SS 07 erworbene Klausurzulassung in Softwaretechnik 1 oder eine im WS 06/07 erworbene Klausurzulassung in Softwaretechnik für Information Management gilt weiterhin. Ältere Zulassungen werden nicht mehr anerkannt. Wir machen allerdings darauf aufmerksam, dass die Inhalte der Vorlesung und der Übung, und damit auch die Klausurfragen, von denen im SS07 abweichen können.

 

Anmeldefristen

Für die Übungen, die Arbeitsgruppen zur Bearbeitung der Aufgaben und die Klausuren ist eine Anmeldung erforderlich.

Wer sich nicht rechtzeitig anmeldet, kann nicht teilnehmen!

AnmeldungTerminAnmeldefristLink
Übungen-Fr, 11.04.2008, 20:00Anmeldefrist abgelaufen
Arbeitsgruppen-Fr, 11.04.2008, 20:00Anmeldefrist abgelaufen
KlausurMo, 21.07.2008, 10:00s.t.Mo, 14.07.2008, 20:00zur Anmeldung
Nachklausurt.b.a.t.b.a. 

 

Termine

Vorlesung:

Übungen:

Klausur:

  • Mo, 21.07.2008, 10:00 s.t. - 12:00 s.t., Raum D 028

Nachklausur:

  • t.b.a.

 


requirements033x.pdf

design020.pdf

design019.pdf