Lavet af: Paw Petersen 15-12-2003 Design Design Class Diagram (DCD)

Slides:



Advertisements
Lignende præsentationer
Hvordan programmerer man?? STREAM - en model. Programmører arbejder ofte i teams Hver programmør arbejder på sin del af en større helhed.
Advertisements

Mapning af klasser til relationer
Velkommen til Softwarekonstruktion
07 – Kort om OO Introduktion.
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Object-Orienteret Programmering og Design. 2 Nordjyllands Erhvervakademi – 2009 Indhold “Classes, objects and object-oriented programming (OOP) play a.
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Hvordan man skriver koden.
Tietgen Skolen Trick med facadeklasse og serialisering ”Trick” – model ”samles” til eet overordnet objekt Alle klasser i model skal have attriutten [Serializable]
Programklasser for bladhus Den efterfølgende beskrivelse er ikke komplet. Der er ikke taget afsæt i use cases, sekvensdiagrammer og operationsbeskrivelser.
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
Klasser Modeller.
Objektorienteret programmering
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Arrays ● Arrangere erklærede ens datatyper ● Giver mulighed for indeksering med tal ● Valgfri størrelse ved oprettelse ● Er integreret i sproget/compileren.
Grundlæggende elementer i UML
Forelæsning 3.1 Collections Javas for-each løkke
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Items 4, 14, 24, 34, 44, 54 Orange gruppe Liv, Jonas, Thorkil, Søren S og Martin D.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Objekter og klasser Rasmus D. Lehrmann DM
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
E/R-diagrammering 7. Semester.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
Unified Modeling Language
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
DIEB10.1 Kursusgang 10 Oversigt: Sidste kursusgang Eksempler på løsning af opgaven Arkitektur for brugergrænsefladen og for systemet Dokumentation af designet.
Objektorienteret programmering – UML2Java.  Jens Bennedsen 2001Multimedie programmering8.2 Indhold Klasser og associering til enkelt objekt –Programmering.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Objecter Introduktion Webintegrator HF1 PHP Object orienteret.
Abstraktioner.
Klasser og objekter (Afsnit i manualen).
Præsentationens transcript:

Lavet af: Paw Petersen Design Design Class Diagram (DCD)

Hvornår laver man Design Class Diagrammer (DCD) ? Når man har lavet interactiondiagrammer fra sine Use – Case realizations, er det muligt at identificere specifikationerne til Software Classes og give dem metoder. Normalt kører DCDs parallelt med interactionsdiagrammerne. Man laver lidt interaction diagrammering og så lidt Design Class og så lidt interaction og udvider DCD.

Navn Structure Attributter Behavior (Operations) En Class Opbygning

Hvad viser DCD ? Specifikationerne for software klasser i applikationen. Klasser, associeringer og attributter. Metoder. Attribut type information. Navigation.Afhængighed.

Forskellen på Domain Model og Design Model Classes RegisterSale date isComplete:Boolean time Register... endSale() enterItem(...) makePayment(...) Sale date isComplete:Boolean time makeLineItem(...) Captures Domain Model Design Model

Ved at gennemgå sit interactiondiagram, kan man finde de klasser man skal bruge I DCD. Man finder også sine metoder den Vej. Husk ! Det er ikke nødvendigvis alle klasser Der overførers fra Domain Modellen. Ved at gennemgå sit interactiondiagram, kan man finde de klasser man skal bruge I DCD. Man finder også sine metoder den Vej. Husk ! Det er ikke nødvendigvis alle klasser Der overførers fra Domain Modellen. Identificere Software klasser Og illustrer dem.

:Register:Sale Sale... makeLineItem(...) 2: makeLineItem(spec, qty)  Tilføj Metode Navne Collaboration Class Angiv metode navne udfra Interactiondiagrammer oversættelse af create messages Beskrivelse af accessing metoder Oversættelse af messages til multiobjekter Sprog-afhængigt syntaks

Create og Accessing Metode Create: Bliver omskrevet til at oprette ” new ” funktionen, Efterfulgt af et ” constructor ” call. Accessing Metoder: Her navngives accessor metoderne, såsom get – metoderne og mutator metoderne, såsom set – metoderne.

Multiobjekter En message til et multiobjekt bliver oversat som, en message til collection- objektet selv. Denne find(id) metode hører ikke til ProductSpecification.

Language – Dependent Syntax Det anbefales at man vedbliver med at bruge UML’s notationsform og venter med at ændre til Java-kode når koden skal genereres

Tilføje yderligere type information. Det er op til en selv, hvor meget man vil gøre yderligere ud af at tilføje Type information, men man bør dog tænke på hvem andre der skal læse ens DCD. Følgende tages i betragtning: Hvis den bliver lavet i et CASE TOOL, som automatisk generere kode, bør det alt sammen være med. Hvis den laves for at Softwareudviklere kan læse dem, bør man udelade noget af det som ikke har nogen større betydning.

Associeringer og Navigation Der sættes navigationspile på associeringerne. Den normale oversættelse af en associering med navigationspile er attribut visibility, fra sender til modtager. Normalt oversættes det til at, en class har en attribut som referere til en instans i modtager Classen. Associeringer bliver valgt ud fra ” Need to Know ” kriterier. A sends a message to B A creates an instance B A needs to maintain a connection to B

Tilføj afhængighedsforhold UML viser med en stiplet linie, når et element har kendskab til et andet element. Dette er nyttigt til at se ikke – attribut visibility imellem classes. D.v.s parameter, global og local visibility.

Tilhørsforhold som viser non – attribut visibility. local parameter

Notation SampleClass classAttribute +publicAttribute -privateAttribute attributeWithVisibilityUnspecified attribute1:type burgers:List og VeggieBurgers attribute2:type = initial value finalConstantAttribute:int = 5 {frozen} /derivedAttribute classMethod() + > SampleClass(int) methodWithVisibilityUnspecified methodReturnsSomething():Foo abstractMethod() abstractMethod2() { abstract } // alternate +publicMethod() -privateMethod() #protectedMethod() ~packageVisibleMethod() finalMethod() methodWithoutSideEffects() {query} synchronizedMethod() {guarded} method1WithParms(in parm1:String, inout parm2:int) methodWithParmsAndReturn(parm1: String):Foo methodWithParmsButUnspecified(…):Foo methodWithParmsAndReturnBothUnspecified()

Sammenspil Use – Case ModelDomain Model Design Model OOP JAVA