Object Oriented Design

Page 1

2011 Object Oriented Design 990X1

RG van Voorthuizen 995279926 LOI Hogeschool 5-9-2011


990X1 RG van Voorthuizen 995279926

)


990X1 RG van Voorthuizen 995279926

1a

Het gebruikte platform kan een variation point zijn, omdat te verwachten valt dat dit in de toekomst zal veranderen. Bij een Java-applicatie zal dit echter opgevangen worden door de JVM die daar verantwoordelijk voor is. Andere variation point is de gebruikersinterface. De gegevens die gepresenteerd worden zullen hetzelfde blijven, maar de wijze van presenteren zal veranderen. 1b De software zou zodanig opgebouwd moeten worden dat de logica los staat van de presentatie, waardoor slechts het gedeelte van de software verantwoordelijk voor de presentatie aangepast hoeft te worden. Bijvoorbeeld door de software nu al op te bouwen met een adapter voor een lokaal te draaien applicatie, waardoor later slechts een web-adapter geschreven hoeft te worden. 1c “Design for Change�

2 Quality Attribute Availability

Performance

Scalability

Modifiability Portability

Invloed op systeem- of softwarearchitectuur In de systeemarchitectuur componenten redundant uitvoeren om hardwareuitval op te vangen. Back-ups en schaduwomgevingen gebruiken. Monitoring op de performance van de systeemarchitectuur, zodat bijv. capaciteit tijdig uitgebreid kan worden. De systeembeveiliging tegen misbruik (hackers) raakt ook dit attribuut. De performance van softwarearchitectuur volgt uit de werking van algoritmen, resources alleen gebruiken wanneer dit nodig is; Technieken als caching en database-normalisatie gebruiken. ) Systeemarchitectuur dient berekend te zijn op system load; ook hier speelt monitoring een belangrijke rol om de performance van de hardware te beheren; Technieken als RAID gebruiken. Trade-off met andere attributen, zoals Portability. Systeemarchitectuur dient rekening te houden met groei, bijv. door servers met overcapaciteit in te zetten of met mogelijkheid tot directe uitbreiding. Virtuele servers kunnen scalability vergroten (bijv. PaaS of IaaS) Software modulair en layered opbouwen. Zo hoeft er zo min mogelijk aangepast te worden in de software. Abstractie van de applicatie-logica en de systeem interfaces. Er kan ook besloten worden bepaalde systeembibliotheken te bundelen met de software, zodat deze bij elke installatie aanwezig zijn. Als de systeemarchitectuur niet wijzigt, komt dat de portability uiteraard ook ten goede.


990X1 RG van Voorthuizen 995279926

3 Stelling Iteratief & incrementeel ontwikkelen verhoogt meteen de efficiĂŤntie

Een watervalproject brengt minder risico’s met zich, omdat eerst de eisen (requirements) goed worden vastgelegd.

Een iteratief & incrementeel ontwikkelproces kan beter omgaan met veranderingen in de eisen (requirements) Bij een agile-ontwikkelproces vertelt de teammanager de teamleden bij elke iteratie precies wat ze moeten doen.

Bij een agile-ontwikkelproces wordt er zo min mogelijk gedocumenteerd.

Waar/Onwaar Waar, want als er een oplevering niet geaccepteerd wordt, hoeft slechts 1 iteratie opnieuw doorlopen te worden, ipv het gehele project. Onwaar. Het blijkt in de praktijk erg lastig om van tevoren de requirements goed vast te leggen, waardoor deze kunnen wijzigen of pas duidelijk worden, tijdens het project. Deze werkwijze brengt daardoor juist een risico met zich mee. Waar, want bij veranderde requirements, hoeft men niet het gehele ontwikkeltraject opnieuw te doorlopen. Onwaar, het is bij agile-ontwikkelproces juist de ontwikkelaar die verantwoordelijkheid dient te nemen en zelf mee moet denken over het werk dat volgt uit de verschillende iteraties en hoeveel tijd hij daarmee kwijt denkt en blijkt te zijn. Onwaar, agile softwareontwikkeling geeft prioriteit aan werkende software boven ) documentatie, maar dat betekent niet dat er zo min mogelijk gedocumenteerd moet worden.

4 Het hangt er vanaf, als ik Afb. 15 uit hoofdstuk 2 aan moet houden, zie ik dat Cirkel de Methode setRadius() kent, wat voor een Elips niet zou kunnen (want de straal is niet te bepalen), waardoor een Elips niet een subklasse van klasse Cirkel zou kunnen zijn. Zonder die methode zou klasse Elips wel kunnen worden afgeleid van klasse Cirkel, omdat overige eigenschappen gelijk zijn. Elips zou in dat geval een subklasse van Cirkel kunnen zijn en Cirkel een superklasse van Elips. Maar als ik uitga van het model in Afb. 15: Klasse Elips is niet af te leiden uit klasse Cirkel noch vice versa, omdat het allebei specialisaties zijn van de klasse Shape. Beide klassen erven attributen en operaties van de superklasse Shape en allebei kunnen ze hier attributen en operaties aan toevoegen. Ze hebben weliswaar overeenkomsten, vanwege dezelfde superklasse, maar het valt niet uit de subklasse af te leiden om welke gegevens dat precies gaat. Net zo goed als dat een Hond niet af te leiden is van een Kat, ondanks dat ze bepaalde eigenschappen delen.


5a. Design Class Diagram


990X1 RG van Voorthuizen 995279926

5b. Use Case Realization


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.