Komponentenschnittstellen (1) Kundenstamm Projekt- verwaltung Kunde auswählen Projekt eines Kunden auswählen Zeitnachweis erfassen Projekt auswählen {or} Beleg erstellen Ende
Schnittstelle Nutzer und Anbieter
Komponentenschnittstellen (2) Projektverwaltung ProjektVonKundeAuswählen() ProjektAuswählen() ZeitnachweisErfassen() . . . Schnittstellen- klasse <interface> ProjektVerhalten ProjektVonKundeAuswählen (Kunde) : Projekt ProjektAuswählen() : Projekt ZeitnachweisErfassen(Mitarbeiter, Zeitnachw.) . . .
Komponenten im Klassendiagramm Angestellter FreierMA Projektverwaltung arbeitet mit Projekt Mitarbeiter 1..* 0..* * Person 1 Auftraggeber beauftragt Personal- wesen Kundenstamm
Softwaretechnische Klassen Klassen, die Hardware-Ressourcen repräsentieren Abstrakte Klassen Interfaces Controller / View Klassen (MVC) Behälterklassen (Container) Hilfsklassen GUI-Klassen
Container-Klassen 1 0..* Analysemodell 1 1 Designmodell <singleton> Personal- stamm Mitarbeiter Analysemodell Mitarbeiter 1 1 <singleton> Personal- stamm Hashtable Designmodell
Entwurfsmuster Erzeugermuster Strukturmuster Verhaltensmuster Fabrikmethode, Erbauer, Abstrakte Fabrik, Prototyp, Singleton Strukturmuster Adapter, Brücke, Dekorierer, Fassade, Fliegengewicht, Kompositum, Proxy Verhaltensmuster Interpreter, Schablonenmethode, Befehl, Beobachter, Besucher, Iterator, Memento, Strategie, Vermittler, Zustand, Zuständigkeitskette
Entwurfsmuster: Kompositum JAVA AWT-Komponenten Component paint () setSize () setBackground () setVisible () * < besteht aus 0..1 Container add (Component) remove (Component) paint () setLayout () Button Label TextCmp.
Entwurfsmuster: Strategie JAVA AWT Layout-Manager Container LayoutManager add (Component) remove (Component) paint () setLayout () hat > 1 layoutContainer () Strategie BoderLayout GridLayout GridBagLayout
Entwurfsmuster: Fassade (1) Arten von Anschriften Anschriftenart Auslandsanschrift Inlandsanschrift Freitext PLZ Ort Postfachanschrift Straßenanschrift Postfach Straße HausNr
Entwurfsmuster: Fassade (2) Arten von Anschriften 1 AnschriftBasis AnschriftFassade Auslandsanschrift Inlandsanschrift Postfachanschrift Straßenanschrift
Sequenzdiagramm Szenario: Zeitnachweis erfassen <Vorgangsstrg.> :VgZeitnachw. <Vorgangsstrg.> :VgPersonal <Vorgangsstrg.> :VgProjekt Mitarbeiter erfasse () wähleMitarb.() wähleProjekt () :Zeitnachw new () addZeitn.() beleg
Operationen spezifizieren Klasse: VgProjekt <Vorgangsstrg.> :VgProjekt <Vorgangsstrg.> VgProjekt wähleProjekt () : Projekt addZeitnachweis (Zeitnachweis) . . . wähleProjekt () addZeitnachweis()
Attribute spezifizieren Klasse: VgProjekt <Vorgangsstrg.> VgProjekt ProjektListe : Hashtable<Projekt, int> = leer ZeitnListe : List<Zeitnachweis> = leer wähleProjekt () : Projekt addZeitnachweis (Zeitnachweis) . . .