OOS Object geOrienteerd Software-ontwerp 1 Organisatie OOS Proces van software-ontwikkeling Requirements Inleiding Analyse & Ontwerp
Proces van Software ontwikkeling
Watervalmodel
Iteratief proces
Interactief Een systeem voor klanten Domeindeskundige Communicatie mbv standaardtaal (UML) Use case (diagram) Klassendiagram (statisch) Sequentiediagram Klassendiagram (dynamisch) Toestanddiagram … Bij het eerste punt kan uitgewijd worden over het punt dat automatiseerders al te vaak zelf weten wat handig is. Voorbeelden te over, bijvoorbeeld uit bekende Microsoft interfaces. Het tweede punt heb ik opgenomen als link naar UML. Dat dit een belangrijke rol speelt in de communicatie met klanten.
Incrementele software ontwikkeling Incrementeel Iteratief Interactief Hier aankondigen waarover de instructie gaat
Requirements
Use-case Template: name actor(s) preconditions normal flow (alles gaat goed) results (alles gaat goed) alternate flow
Mediatheek ‘De Uitleen’ Uitlening van boeken, audio-cd’s, cd-rom’s, videocassettes, video en dvd’s. Er zijn allerlei categoriën voor de diverse uitleenbare media. Klanten kunnen lenen, reserveren, afgeschreven items kopen. Bij te laat terugbezorgen is boete verschuldigd. Van klanten worden naam, adres en telefoonnummer bijgehouden.
Use case (voorbeeld) name actors pre normal flow results alternate Registreer klant actors Baliemedewerker pre normal flow Medewerker voert klantgegevens in Systeem toont klanten met hetzelfde adres Medewerker bevestigt registratie Systeem toont klantnummer results Klant is geregistreerd met klantnummer alternate Klant was al geregistreerd [3] Medewerker annuleert registratie
Use case (voorbeeld 2) name Leen uit actors Baliemedewerker pre Klant is bekend normal flow Medewerker voert klantnummer in Systeem toont klantgegevens Medewerker voert item-nummers in Systeem toont gegevens uit te lenen items Medewerker bevestigt uitlening results Uitlening van deze items is voor deze klant geregistreerd alternate Klant bezit items waarvan de uitleentermijn is verstreken [2] uitlening wordt door systeem geweigerd. Klant wil te veel items lenen [3] ga terug naar [3]
voorbeeld 2: verbeterde versie name Leen uit actors Baliemedewerker pre normal flow Medewerker voert klantnummer in Systeem toont klantgegevens Medewerker voert item-nummers in Systeem toont gegevens uit te lenen items Medewerker bevestigt uitlening results Uitlening van deze items is voor deze klant geregistreerd alternate Klant bezit items waarvan de uitleentermijn is verstreken [2] uitlening wordt door systeem geweigerd. Klant wil te veel items lenen [3] ga terug naar [3] Klantnr bestaat niet [2] ga terug naar [1]
Use Case Diagram
OO Analyse en ontwerp
Object: 2 dimensies object creatie gedrag (inspectie, wijziging) (opruiming) gedrag object toestand eigenschappen statische constraints
Klassendiagram Bouwtekening Eigenschappen van objecten (statisch) Associaties Attributen Gedrag van objecten (dynamisch) Methoden Constructoren Restricties (statische)
Statisch klassendiagram (voorbeeld) naam : Text adres : Text Bedrijf 1 ◄vindt plaats bij 0..* Student Praktijk periode afk : Text Docent 1 0..3 0..* 0..1 id : Integer naam : Text doet wordt begeleid door start : Date Hierbij een korte toelichting op de betekenis en rol van dit diagram. Afstuderen nr : Integer Stage is voorzitter bij 1 0..* datum : Date Voordracht ◄i.v.m.
Klassendiagram Conceptueel perspectief Specificatie perspectief communicatie analist/ontwerper communicatie met domeindeskundige? Specificatie perspectief Implementatie perspectief communicatie ontwerper/programmeur welke keuze in programmacode
Associatie Relatie associatienaam Uiteinden: rolnaam multipliciteit
Attribuut verschil met associatie: conceptueel nivo specificatieniveau geen verschil minder details specificatieniveau eenrichting implementatieniveau: zichtbaarheid suggestie voor opslag van data
Domeinmodel binnen totaal systeem GUI Legacy Domeinmodel Netwerk Persistentie
deze week keuze casus bestudeer: UML distilled opstellen use cases Hoofdstukken over Klassendiagram en Use Cases opstellen use cases eerste aanzet klassendiagram (domein)
volgende week Together Werken met CRC Gedrag Navigatie Generalisatie Compositie