Klassen OOA: statischesysteemstructuur Twee compartimenten: Naam van de klasse Attributen Naam van de klasse: zelfstandig naamwoord met hoofdletter. Attributen: kleine letter bijv. rekeningEigenaar datatype en eventuele constraints
3.
Constraints bij klassenBij attributen {> 0 and <=100} bereik van een geheel getal {geregistreerd, in behandeling, afgewerkt} mogelijke waarden Klasseninvarianten als aparte tekst {Self.noOfStudents > 50 implies (not (self.room = 3317))} als het aantal ingeschreven voor de module groter is dan 50, kan het lokaal niet 3317 zijn (bijvoorbeeld omdat dit lokaal maximaal 50 studenten kan bevatten. Als "note" Via enumeratieklasse OOA: statische systeemstructuur
Klassendiagrammen op alleniveaus Analyseniveau: domeinmodel. Ontwerpniveau: operatie toevoegen, associaties implementeren, klassen toevoeven (control classes, boundary classes). Implementatieniveau: weerspiegeling van de code. OOA: statische systeemstructuur
8.
Analyseniveau Algemene datatypes.Geen operaties. Geen richting van de associaties. Geen verwijssleutels. Geen afgeleide associaties. Enkel domeinklassen. OOA: statische systeemstructuur
9.
Objecten en klassenidentificeren Probleem analyseren en domeinobjecten identificeren.. Datagerichte aanpak op basis van tekstanalyse. Alternatief: verantwoordelijkheidgestuurde aanpak met CRC-kaarten ==> wij niet OOA: statische systeemstructuur
10.
Tekstanalyse Alle zelfstandigenaamwoorden zijn kandidaat-klassen. Schrap daarna de kandidaten die niet geschikt zijn en controleer op synoniemen en homoniemen. OOA: statische systeemstructuur
11.
Argumenten om kandidatente schrappen: redundant vaag een event (gebeurtenis) of een operatie metataal buiten het kader van het systeem een attribuut Informatiedrager subject OOA: statische systeemstructuur
12.
Voorbeeldoefening "In eenbedrijf kunnen klanten per fax of per e-mail orders plaatsen. Die worden in de verkoopafdeling door een verkoopmedewerkster in het systeem ingevoerd. Klanten kunnen hun orders later eventueel meermaals wijzigen en ze eventueel schrappen. Per order kunnen verschillende producten worden besteld. Voorbeelden van producten zijn boeken, cd's en videocassettes. Van een order kan de leveringsdatum gewijzigd worden. Van bestelde producten kan de bestelde hoeveelheid verhoogd of verlaagd worden." OOA: statische systeemstructuur
Bestaansafhankelijkheid ( existencedependency) Een object A is bestaansafhankelijk van B: Als het leven van A ingebed is in dat van B. Bij zijn ontstaan is A afhankelijk van B. A blijft heel zijn leven afhankelijk van B. OOA: statische systeemstructuur
OOA: statische systeemstructuurKlant “Karel de Grote” Order 987 Order 564 Order 123 Levenslijn van de objecten Order is bestaansafhankelijk van Klant
18.
Eis van bestaansafhankelijkheidElke associatie moet een bestaansafhankelijkheidsrelatie voorstellen. OOA: statische systeemstructuur Anders: relatie verzelfstandigen tot een klasse.
Generalisatie In eencontext waarin een lid van een meer algemene class wordt verwacht , kan een object van een gespecialiseerde class worden gesubstitueerd voor een object van de meer algemene class, maar het omgekeerde is niet mogelijk. Abstracte klassen geen objecten van die klasse. OOA: statische systeemstructuur