1 / 22

Design

Design. Design af klasser og associeringer Design af interaktion Obligatorisk opgave. Fra analyse til design. UC realisering analyse Sekvensdiagram : AddCourse. UC realisering analyse Kollaborationsdiagram: AddCourse. Course. RegistrationManager. courses. no. addCourse().

haven
Download Presentation

Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design Design af klasser og associeringer Design af interaktion Obligatorisk opgave

  2. Fra analyse til design Softwarekonstruktion 7

  3. UC realisering analyse Sekvensdiagram: AddCourse Softwarekonstruktion 7

  4. UC realisering analyseKollaborationsdiagram: AddCourse Softwarekonstruktion 7

  5. Course RegistrationManager courses no addCourse() description deleteCourse() 0..* 0..* 1 1 findCourse() 0..* 0..* 1 1 registration students 0..* 0..* Student no 0..* 0..* name adress e-mail Analyseklassediagram for AddCourse og DeleteCourse Softwarekonstruktion 7

  6. Eksempel: Designklasser Softwarekonstruktion 7

  7. RegistrationManager RegistrationManager addCourse() courses : ArrayList() deleteCourse() students : ArrayList() findCourse() addCourse(name : string) : Course 1 1 deleteCourse(name : String) : Course 1 1 findCourse(name : String) : Course 1 1 1 1 students 0..* 0..* courses 0..* 0..* {students}* {courses}* 0..* 0..* Student 0..* 0..* Student Course no Course no : int registration registration name no name : String no : int adress description adress : String description : String 0..* 0..* 0..* 0..* 0..* 0..* 0..* 0..* e-mail e-mail : String Eksempel: Analyse klassediagram -> Design klassediagram • Analyse klassediagram • Design klassediagram Softwarekonstruktion 7

  8. UML notation for design klasse diagram Softwarekonstruktion 7

  9. Associeringer • Overvej associeringer og aggregeringer. Er en associering en aggregering? • For mange til mange associeringer skal overvejes om der er data på associeringen. Dette designes ved en ny associeringsklasse • Fastlæg synlighed og navigeringsretning. • Synlighed er et objekts evne til at ”se” eller have reference til et andet objekt • For at et afsender objekt A kan sende en besked til et modtager objekt B, skal A have synlighed til B Softwarekonstruktion 7

  10. Eksempel på design af 1-mange associeringer Softwarekonstruktion 7

  11. Eks. (1) på design af mange til mange associering med attributter Softwarekonstruktion 7

  12. Eks. (2) på design af mange til mange associering med attributter Softwarekonstruktion 7

  13. Interface • Adskiller specifikationen af funktionaliteten fra implementering • Definerer en kontrakt som består af • Operationernes signatur (navn, type af parameter og returtype) • Betydningen af operationerne (som beskrivelse) • Overvejes typisk i forbindelse med design af subsystemer, som er emnet næste gang Softwarekonstruktion 7

  14. Softwarekonstruktion 7

  15. Høj binding • Høj binding udtrykkes ved, at en klasses ansvar er tæt sammenhængende og kan beskrives kort og klar • En klasse med navnet nyttige metoder har sandsynligvismeget lav binding • En klasse fra en domænemodel har typisk høj binding, da klassen har et klart ansvar, f.eks. kunde, ordre, vare osv. • Princip: • Tilstræb høj binding. Tilskriv ansvar sådan at binding forbliver høj Softwarekonstruktion 7

  16. Lav kobling • Kobling er et mål for, hvor tæt to klasser eller komponenter er forbundne • To klasser/komponenter har høj kobling, hvis ændring i den ene kræver ændring i den anden • Koblingen er høj mellem klasser der har mange forbindelser til andre klasser • Princip • Tilstræb lav kobling. Tilskriv ansvar så kobling i systemet forbliver lav Softwarekonstruktion 7

  17. System ProcesssaleHandler HandleReturnsHandler endsale() endsale() enterItem() enterReturnItem() enterItem() makenewSale() makeNewReturn() makeNewSale() makepayment() mekePayment() .....() enterReturnItem() makeNewReturn() Valg af manager klasser? Konsekvens af valg af én manager klasse per use case Konsekvens af valg af én manager klasse Problem: Lav binding mellem metoderne Softwarekonstruktion 7

  18. Design af use case realisering • Omfatter beslutninger omkring samarbejdet mellem designobjekter og designklasser i realiseringen af en use case • Går fra et ”hvad” til et ”hvordan” perspektiv • Kan blive meget detaljeret og kompleks • Begræns til at fokusere på hvad der er strategisk vigtigt – overlad resten af detaljerne til implementeringen • Omfatter typisk aspekter omkring arkitektur, persistens og samtidighed Softwarekonstruktion 7

  19. Arkitektur beslutninger • Et systems arkitektur er den overordnede struktur i et system, bestående af komponenter, deres egenskaber og forbindelser mellem disse • Fokus på blackbox komponenter dvs at detaljer omkring algoritmer, datastrukturer og programmeringssprog er skjult • Beskriver opførslen og interaktionen mellem komponenter • Arkitekturbeslutninger har indflydelse på designet af et system Softwarekonstruktion 7

  20. Lagdelt arkitektur Softwarekonstruktion 7

  21. Lagdelt arkitektur og designklasser • Grænsefladeklasser der håndterer interaktionen mellem aktøren og grænsefladen • Managerklasser der får ansvaret for at danne ”limen” mellem grænseflade- og domæneklasserne (medtages i et selvstændigt lag – eller i modellaget). Her fra styres use case afviklingen. • Modelklasser der findes ud fra domæne modellen af problemområdet. De modelklasser der understøtter use cases medtages • DBklasser der indpakker sql’en til databasen Softwarekonstruktion 7

  22. Sekvensdiagram: AddCourseTilføjelse af UI og DB klasser Softwarekonstruktion 7

More Related