 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.

Slides:



Advertisements
Lignende præsentationer
Relationsarbejde på Vejrup skole
Advertisements

Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Dagens program  Emne: Tim Berners-Lees WWW koncept og deraf følgende innovationer Forbered hver for sig Præsenter og diskutér i grupper Fremlæggelse med.
KPLL minisymposium 2012 HbA1c udført i almen praksis til diagnostik? Peter Felding.
Etiske & metodiske problemer i online research - kort diskussionsoplæg.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Tekst starter uden punktopstilling For at få punkt- opstilling på teksten, brug forøg indrykning For at få venstre- stillet tekst uden punktopstilling,
Magtteori I 7. September 2005.
Magtteori II 14. September Én-dimensionel magt Aktøradfærd Aktuel magtudøvelse Politisk beslutningsproces Observerbar interessekonflikt = konflikt.
For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen. vælg ”Indsæt” > ”Sidehoved / Sidefod”. Indføj ”Sted og dato” i feltet for dato og ”Enhedens.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 6 Design - part 1.
Agenda 1.Informationer 1.Excel i fb.m. projekt 2 2.Reserver tid til projekt 2 3.Øvelse: a / b = c 2.Opsamling fra sidst 3.Estimation (konfidensintervaller)
For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”. Indføj ”Sted og dato” i feltet for dato og ”Enhedens.
Stil og smag John Paulin Hansen WEB 1, ITU, marts 2000.
Sociology and social media af: Mads, Emil, Caspar og Jos.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Simulation og computerspil Selv-referentialitet og computerspil Bo Kampmann Walther
Electric power is electric particles moving through metal, semiconductor or graphite and special fluids (electrolysis). Some kind of gas are able to conduct.
Billeder. grænser. leg. eksamen specialeafhandling 24. juni 2005 it-universitetet stabilitet. mobilitet.
Ung i centrum Historical ”natural recovery” issues: 1.Does ”natural recovery” exist? 2.How common is ” natural recovery”?
CORBA/e CORBA and Embedded Systems OOMI 27. November 2006.
Institut for Sprog, Kultur og Æstetik Engelsk, semester, Tekstanalyse og -historie Jens Kirk Session One: "An Introduction to the Analysis,
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester 6, kursusgang Databaser (1) Kjeld Svidt
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Unified Modeling Language
3. time Her beskæftiger vi os med John F. Sowas forklaring af erfaringsviden. John F. Sowa.
DB analyse og modellering Jesper Tørresø DAB1 F Februar 2008.
Sted og dato (Indsæt --> Diasnummer) Dias 1 Navn på enhed (Indsæt --> Diasnummer) Davenport et al. (2000) Vs Adelman et. Al (2002) Possible states for.
Supervisor’s toolbox Enhedens navn Sted og dato Dias 1 Approaches / styles Meta-communication Perspectives Caps Themes and progression Feedback and Assessment.
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 4.
DIEB10.1 Kursusgang 10 Oversigt: Sidste kursusgang Eksempler på løsning af opgaven Arkitektur for brugergrænsefladen og for systemet Dokumentation af designet.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen 2002Objektorienteret systemudvikling Interaktionsdiagrammer Hvordan beskrives objektinteraktion? Sekvensdiagrammer Collaborationsdiagrammer.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
 Jens Bennedsen 2002Objektorienteret systemudvikling1.1 Objektorienteret design Persistens - introduktion.
ANALYSE AF WEBADFÆRD - OAW OAW – LEKTIONSGANG 4. ANALYSE AF WEBADFÆRD - OAW SUMMARY, LECTURE 3 (Extended) Common Log File Format Host, Ident, Authuser,
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Hvad er en inkrementel og iterativ process?
Learning assessment - For students with mental and behavioral disorders Anders Dræby Sørensen Head of Counselling, Aarhus University Ditte Hessellund Counsellor,
Learning assessment - For students with mental and behavioral disorders Anders Dræby Sørensen Head of Counselling, Aarhus University Ditte Hessellund Counsellor,
HUMANISTIC PSYCHOTHERAPIES Anders Dræby Sørensen, Anders Dræby Sørensen,
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
Underoverskrift 17 pkt bold hvid Maks. 2 linjer med respekt for evt logo Indsæt billede >Klik på billedikonet og indsæt billede Efter indsættelse >Højreklik.
For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”. Indføj ”Sted og dato” i feltet for dato og ”Enhedens.
For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”. Indføj ”Sted og dato” i feltet for dato og ”Enhedens.
Introduktion til glasfibre og kompositter
Drug/Device Combination Products IFF erfagruppemøde
Buy Doxycycline Online Us
Dorte, Ida, Janne, Nikolaj, Alexander og Erla
Completing secondary education
Kvalitative metoder, forår kursusgang
Dansk HL7 CDA profil til deling af aftaler Data i en aftale
Incidence, risk and resilience for suicide attempts among children and youth born in and living in Denmark in 2007 By MSc. Erik Christiansen.
DB analyse og modellering
Oplæg på seminar omkring bosætning i landdistrikterne
Satser Medium range: Similar living costs
Compositional Design Principles “SemiCiv”
Software Testing Software testing.
Denitrification in the root zone
MaaS i Europe Rasmus Lindholm.
why this period? why not the same as for the international strategy
Resuscitation with an AED
AIDA Reinsurance Working Party Meeting
Thesis Critique Københavns Universitet er én institution – men det er langt fra en ensartet institution. De mange forskningsområder og forskellige uddannelser.
Smart Data Tool (SDT) In Sales
WiseFlow En introduktion i anvendelsen af Wiseflow
Præsentationens transcript:

 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler

 Jens Bennedsen 2002Objektorienteret systemudvikling Objektorienteret design Der er mange mulige aktiviteter og artifakter i analyse og design, og en masse principper og guidelines. Hvis vi skulle vælge én ting blandt alle dem der er diskuteret - ”en øde ø egenskab” - hvad skal det så være? Hvorfor? Fordi det er den eneste aktivitet der SKAL udføres og den har den mest vidtrækkende effekt på rubusthed, vedligeholdbarhed og genbrug. Craig Larman, 1998 Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design The most single important ability in object- oriented analysis and design is to skillfully assign responsibilities to software components.

 Jens Bennedsen 2002Objektorienteret systemudviklingInteraktion.3 Kontrakt En beskrivelse af en klasse kan opfattes som en kontrakt: Udlejning start(nr) end duration number Anvender Kan anvende egenskaberne men ikke andet Implementør Kan opfylde egenskaberne men ikke andet

 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP Patterns (Larman) What are the GRASP patterns? –The GRASP patterns describe fundamental principles of assigning responsibilities to objects, expressed as patterns –Patterns are named problem/solution pairs that codify good advice and principles The patterns –Expert –Creator –Low coupling –High cohesion –Controller –Polymorphism –Pure Fabrication –Indirection –Protected variations

 Jens Bennedsen 2002Objektorienteret systemudvikling Goals Two types of patterns High Cohesion Low Coupling Information Expert CreatorControler Polymorphism

 Jens Bennedsen 2002Objektorienteret systemudvikling Expert Which class is responsible for performing an operation? Expert Pattern –Assign a responsibility to the class or classes that have the information required to carry out the responsibility! Where to place the pris() operation?

 Jens Bennedsen 2002Objektorienteret systemudvikling Creator Who is responsible for creating an object? Creator pattern –Determine which class should create instances of a class based on the relationship between the potential creator classes and the class to be created B is responsible for creating A if: –Instances of B composes or aggregates inst. of A –Instances of B contains inst. of A –Instances of B records inst. of A –Instances of B directly uses inst. of A –Instances of B have the data that is passed to constructors of A

 Jens Bennedsen 2002Objektorienteret systemudvikling Controller Who handles a system event? –A special class (normally not a ”domain class”) –Facade controller A small system Gets easy low cohesive (blured controller) –Use case controller A larger system More cohesive

 Jens Bennedsen 2002Objektorienteret systemudvikling Low coupling Coupling –Dependencies between one class and other classes’ properties We shall strive for low coupling –Minimize the dependency of other classes properties Why? –To minimize rippling when modifying classes so that changes only have local consequences.

 Jens Bennedsen 2002Objektorienteret systemudvikling What does coupling look like?

 Jens Bennedsen 2002Objektorienteret systemudvikling High cohesion The inner relatedness within the properties of a class Strive for uniqueness within a class –Maximize the uniqueness of a class’ responsibility –Maximize the mutual connection between the properties within a class Strive for a high degree of cohesion!

 Jens Bennedsen 2002Objektorienteret systemudvikling On coupling and cohesion If –a class is so highly coupled or lacking in cohesion as to make a design brittle or difficult to modify... Then –apply other appropriate GRASP patterns to reassign the class’s responsibilities.

 Jens Bennedsen 2002Objektorienteret systemudvikling Polymorphism Avoid if-statements –When alternate behaviours are selected based on the type of an object, use a polymorphic method call to select the behaviour rather that using if statements to test on the type