Einführung

Point of the course: Giving an idea of how to model properly, not actually teaching you how to do everything.

  • Software: Is the program/code and everything surrounding it, aka internal strukture of the machine, other softwares that it communicates with, and hardware.
  • UML: Modelling language for software, see blueprints.
  • Modelling: Simplification and abstraction of a program code.
  • Design pattern: generalized ideas and solutions to specific types of problems.
  • Software engineering: Producing and maintaining software.

Developing software: Waterfall model vs Iterative and Incremental Developement.

Notes

DURING THE EXAM: You will be asked to translate UML to Java Code. Do not write out the complete code, just write a skeleton to show you understand what the diagram is about.
See Skript 2.2.7 for an example of this.

Aggregation/Komposition

Aggregation Komposition
Muss etwas haben Muss etwas haben
Kann ausgetauscht werden Kann ausgetauscht werden
??? container wird Zerstört ⇒ teile werden zerstört
(Hut für garbage collection)

Diagramme

  • Klassendiagramm
  • Objektdiagramm
  • Sequenzdiagramm
  • Kommunikationsdiagramm
  • Aktivitätsdiagramm
  • Zustandsdiagramm

Object oriented analysis (Design Model)

  1. Use Case Analysis
    1. Aktoren finden
    2. Use Cases finden
    3. Use Case Diagramm zeichnen
    4. Use Cases beschreiben
  2. Static Model Creation
    1. Identify classes
      1. Nomen finden
      2. Mist löschen
      3. Fehlendes hinzufügen
    2. Identify associations
      1. Assoziationen finden
      2. Mist löschen (z.B. Redundanzen)
      3. Fehlendes hinzufügen
      4. Miltiplizitäten und Rollen hinzufügen
    3. Identify attributes
      • Keine Typen
      • Keine Objekte, statdessen Assiziationen
    4. Identify inheritance
      • Auch Klassen abstrakt machen
    5. Restructure the model
  3. Modelling of Interactions
    • Sequenzdiagramm pro Primerszenario/Sekunderzenarien
  4. Creation of State and Activity Diagrams
    • Nur für „interesante“ Klassen
    1. Primary scenario.Klassen lebenslinie → State machine (do/…Acritity() (active state), stable state))
    2. secondary scenarios einbauen
    3. Aktivitätsdiagramme für jede do-activity zeichnen
    4. Restructure the model

Software Engineering

  1. Object Design (from design model)
    1. Add operation
      • From sequenz diagram
      • From state diagram
        • transitionen
        • do-Activities
      • Constructors
      • Setters/Getters
    2. Add directions
    3. Access rights (Attribute private!)
    4. Mehrfach vererbung auflösen
      • Interfaces
      • Proxy
    5. Klassen (libs) wiederverwenden
      • Delegation
      • Vererbung
  2. Implemnetierung von state diagrams (erweitern der object desgign)
    • Prozedural (alle States in einer Funktion)
    • Fallunterscheidung
      • Funktion pro Event
      • Funktion pro do-Activities und Event
      • Stabile zustände in enum
    • State object (siehe entwurfsmuster (objekt an state machine übergeben!))
    • State machine
      • Klassen
        • Kontext
        • State
        • Transition
        • Activity (abstrkt)
        • Konkrete aktivities
      • State kann pro event eine transition haben
      • Transition hat eine activity
      • Transition kann pro return wert der Activity einen next state haben
  3. System design
    • Hohe Koherenz & Geringer zusammenhang (Model/View-TRennung ⇒ Observer)
    • Paketdiagramme zeichnen
    • Komponentendiagramme zeichnen
    • Layer Architektur (z.B. 3 Stufig für GUI + Services)
    • Facade pattern
  4. GUI
users/skruppy/ext/uni/3/swtec.txt · Zuletzt geändert: 2013/02/12 02:42 von 138.246.85.137