GRASP General Responsibility Assignment SP GRASP er et hjelpemiddel for å lære om OD GRASP er retningslinjer for å fordele og tildele ansvar mellom klasser.

Slides:



Advertisements
Liknende presentasjoner
Objektorientert systemutvikling og UML  OOSU er den mest anvendte metoden på både store og små prosjekter  UML er det mest anvendte beskrivelsesspråk.
Advertisements

Del 3 : Patterns (Kap 16 – kap 20, Craig Larman) Arne Maus Inst. for informatikk, UiO.
Memento Object Behavioral Design Pattern. Lagre og hente tilstander • Et system inneholder ofte mekanismer som trenger gjenbruk av tilstander • Memento.
Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet viser hvem som har kontrollen til enhver tid Det spesifiserer nøyaktig.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
Mediator i prosjektet easyhtml Mediator. Widgets og signaler  Systemet inneholder mange signalgivere  Mange til mange er erstattet med en til mange.
Mekaniske bekjempelsesmidler
Lage e-post med bilde som vedlegg
Organisering av arbeid Samarbeid Klient Tjenesteyter.
Introduksjon til objektorientert programmering i PHP
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Objektorientert systemutvikling og UML
IMT OOSU 28.sept Dagens tema : forts. DESIGN PATTERNS ObjektOrientert Design = Bevissthet i tildeling/fordeling av ansvar til softwareklasser for.
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Gruppe 6 Gunnar Henrik Mathias Morten Ronny Svein Ivar.
Chain of Responsibility GoF mønster Operasjonelt (behavioral)
Motivasjonsgrupper Diabeteskonferansen 2010
Objektorientert programmering Objektorientert systemutvikling
Objektorientert programmering i PHP del 2
Variasjoner i subklasser.  Prinsippskissen er meget enkel  En abstrakt klasse har en konkret metode og en abstrakt metode  Hver subklasse realiserer.
Mønstre og tekniske applikasjoner
IS-102 Klassedefinisjoner
Java Server Faces (JSF) en introduksjon Frode Eika Sandnes.
Aksess kontroll None shall pass.
Gruppe 9 Design evaluering og validering.
Objektorientert utforming In 140 Forelesning Nr 13 Sommerville kap 12 – del 2.
OOSU PATTERNS (mønstre) Hva er et Pattern – opprinnelsen Mal for en Patternbeskrivelse Typer Pattern vi anvender innen systemutvikling Noen eksempler.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Læring og tenkning Systemutvikling er læring Gjensidig respekt og samarbeid Følge en konkret oppskrift Velge blant flere oppskrifter Nå målet uten oppskrift,
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator.
En kort innføring i Design Patterns
GoF GoF er fire systemutviklere, Gang of Four GoF fikk utgitt boken Design Patterns høsten 1994 Boken Design Patterns er en klassiker Design Patterns beskriver.
Domeneklasser En applikasjon kan ha domenesvake og domenesterke klasser.
Mediator Mediator i prosjektet easyhtml. Widgets og signaler Systemet inneholder mange signalgivere Mange til mange er erstattet med en til mange Hvert.
Strukturerende elementer i UML
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Kirsten Ribu HiO Ansvarsdrevet design og bruk av design-mønstre Kirsten Ribu.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Objektorientert programmering
Java & OO.
Programmering i ActionScript - hva er det, og hvordan undervise?
Implementering av caching ved hjelp av Spring Christian Vestøl
Brukermedvirkning i boligsosialt arbeid
Information Expert GRASP Grunnleggende prinsipp i programdesign.
Verktøy i faget ”Objektorientert systemutvikling og UML” Eclipse Together Architect for Eclipse
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Fra Mitose til Happy-meal Innføring i “Prototype Patterns” og “Builder Patterns” Gruppe 2 Carl-Erik Herheim Leendert Wienhofen Olav Dæhli Thomas Julsen.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
Objektorientert utforming
Objektorientert utforming In 140 Sommerville kap. 12.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
INF H131 Reset Circuits Steve Kilts, Advanced FPGA Design, Chapter 10.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Ekstra mange tips til Oblig 3! 12. mars 2007 Are Magnus Bruaset og Arild Waaler Inst. for informatikk, UiO.
Handling Churn in a DHT Andreas Wigmostad Bjerkhaug.
Objektorientert design
Kjente brukersteder med høye rabatter Fordelsguide i høy kvalitet, med kort og lommeguide Lang gyldighet på alle fordelene (1. november 2010)
1 Ansvarsdrevet design og bruk av design-mønstre Utforming av klassediagrammer
Ny utsendingsmetode for Lærebedriftsundersøkelsen 2015.
Økonomiske systemer En markedsøkonomi er en økonomi der bedriftene bestemmer hva de vil produsere, produksjonen selges til forbrukerne, og forbrukerne.
Arv Gjenbruk. Begreper Super Overriding – Samme signatur Polymorfi – «en ting kan bety mange ting»
Revisjonsutvalget Temalunsj 12. februar PwC Bakgrunn EU vedtok den 16. april 2014 en ny forordning og endringer i direktivet om revisjon og revisorer.
Personlig forhold til leverandør
Praktisk bridge Spill 6.
IS-102 Interaksjon med objekter
Finn fram på finn.no Søk på finn.no på internett
Objektorientert programmering i Java
Utskrift av presentasjonen:

GRASP General Responsibility Assignment SP GRASP er et hjelpemiddel for å lære om OD GRASP er retningslinjer for å fordele og tildele ansvar mellom klasser GRASP fører til sunne, enkle systemer med lav teknologisk risiko

High Cohesion Metoder med en oppgave Objekter med få og enkle tilstander Klasser med høy konsentrasjon om ett ansvarsområde Applikasjonslag med konsentrasjon om ett område Bidrar til enkel API Høy grad av abstraksjon og enkel gjenbruk Bidrar til lav kobling

Low coupling Kobling vises som assosiasjoner mellom klasser Lav kobling vises som få assosiasjoner

Controller og Indirection Controller oversetter brukerimpulser til systemoperasjoner Indirection unngår direkte kobling mellom behov og tilbyder. Se JDBCtrainer java[13] Se

Creator Gir råd om hvem som kan lage instanser Er i slekt med LoD (Law of Demeter) A kan konstruere B dersom A aggregerer, inneholder eller bruker instanser av B A kan konstruere B dersom A har nødvendig informasjon for konstruksjonen av B

Law of Demeter En metode skal ha begrenset kunnskap om en objektmodell Et objekts metode kan sende meldinger til seg selv Et objekts metode kan sende meldinger til sine parametre Et objekts metode kan sende meldinger til objekter det selv instansierer

Meldinger fra et objekt Et objekt kan sende meldinger til seg selv Et objekt kan sende meldinger til sine parametre Et objekt kan sende meldinger til objekter det selv instansierer Et objekt kan sende meldinger til sine egne komponentobjekter

Praktiske følger av LoD Et objekt kan instansiere assosierte objekter i private metoder Et objekt kan sende meldinger til andre objekter i private metoder ”A public method M of Class C shold invoke only its own public and private methods, and those of its superclasses” Annen praksis øker den teknologiske risikoen

Praktisk problem og LoD Snakk bare med de nærmeste

Praktisk design med LoD La en venn ordne problemet

Generelt kart over LoD Klassen Ansvar har bare noen få nære Venn-er

Information Expert Tildeling av ansvar til den som har den relevante informasjonen Hvem tar ansvaret for å oppdage vinnermønsteret?

Praktisk bruk av Information Expert Spillebrett samler inn kunnskap fra sine ”venner” og tar ansvaret Salg samler inn kunnskap fra sine venner for å rapportere endelig pris

Layers, 3-tier GRASP Forretningssystemer er lagdelte

Layers, n-tier Systemets størrelse krever av og til flere lag Klikk for detaljerKlikk

Praktisk lagdeling Figuren viser en lagdeling av et kinosystem