Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.1 Programmering og systemudvikling Lektion 7 Design - part 2.

Lignende præsentationer


Præsentationer af emnet: "Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.1 Programmering og systemudvikling Lektion 7 Design - part 2."— Præsentationens transcript:

1 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.1 Programmering og systemudvikling Lektion 7 Design - part 2

2 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.2 Indhold è Design Hvordan strukturerer vi systemet? Eksempel på udvikling af løn-system Java som genstandsområde

3 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.3 Opdeling i delsystemer è Skal hver klasse realiseres i sin.java fil? I et lille skole system giver det ~50 filer I et virkeligt system giver det ~2-500 filer –Svært at holde styr på –Svært at bruge som arbejdsenhed når der skal uddeles ”kodeansvar” è Er dette et design- eller projektledelses problem? Begge

4 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.4 Moduler è Moduler skal danne baggrund for hvad der måles på - ikke individuelle klasser è Modul er en release enhed è Modul er en genbrugsenhed è I et modul er klasser tæt bundne med løst koblede til andre moduler è Moduler i java understøttes af packages

5 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.5 Moduler è Klasserne i et modul skal være tæt bundne è At være tæt bundet i et modul betyder 1 De skal være lukkede overfor de samme ændringer og immune over de samme andre ændringer 2 De skal genbruges sammen 3 De skal have en fælles funktionalitet eller politik Det er en prioriteret rækkefølge

6 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.6 Afhængighed è Forskellige typer af afhængighed Arv (En klasse fra modul A arver fra modul B) Instantiering (en klasse fra modul B skal instantieres i modul A) Kald (En operation i modul A kalder en operation i modul B) Association (En klasse i modul A er associeret til en klasse i modul B) Aggregering (En klasse i modul A indeholder en forekomst fra modul B)

7 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.7 Afhængighed è Afhængighed: Et modul A afhænger af modul B hvis en eller flere klasse i modul A det ikke kan oversættes og aftestes uden tilgang til mindst en klasse fra modul B è UML Package è Kan bruges til at lave releaseplan testplan projektplan

8 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.8 Afhængighed è Afhængige vs. afhænger Afhængige af klassen FÅ MANGE Afhænger af andre FÅ MANGE Normal moduler Stabil Ustabil Der er mange der afhænger  svært at ændre afhænger af få  få grunde til at ændre Der er få der afhænger  let at ændre afhænger af mange  mange grunde til at ændre

9 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.9 The main sequence è Stabilitet vs. generalitet Generalitet, abstrakhed Lav Høj Stabilitet (Placering på forrige slide) Stabil Ustabil The main sequence Arkitektur/ Overordnet struktur Implementations detaljer

10 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.10 Traditionel software è DFD har den modsatte egenskab: Jo mere detaljeret en boble jo flere afhænger af den è Ændringer i nedre lag propagerer opad Generalitet, abstrakhed Lav Høj Stabilitet Stabil Ustabil The main sequence Arkitektur/ Overordnet struktur Implementations detaljer

11 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.11 Hvorfor omvendt ved OO?? è interface klasser Interfaces til begreber Implementations detaljer gemmes længere nede Mulighed for at genbruge procedurelle abstraktioner

12 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.12 Hvad er det vi beskriver i Analysen è Det er en implementationsovervejelse om ting skal realiseres som attributter eller operationer Egenskaber Interfaces skal beskrive HVAD men ikke HVORDAN

13 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.13 Eksempel è Hvad betyder denne klasse? public interface Ansat { public String getNavn(); public String getAdresse(); public double beregnLøn(); }

14 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.14 System public class Firma {public Firma(){ansatte = new java.util.HashSet();} public void addAnsat(Ansat m) {ansatte.add(m);} public double samletLøn() { double sum = 0.0; java.util.Iterator e = ansatte.iterator(); while (e.hasNext()) sum+= ((Ansat)(e.next())).beregnLøn(); return sum; } private java.util.Set ansatte; }

15 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.15 Simpel implementation public class AnsatImpl implements Ansat {public AnsatImpl(String navn, String adresse, double timeløn) { this.navn = navn; this.adresse= adresse; this.timeløn = timeløn; timeAntal = 37; } public String getNavn() {return navn;} public String getAdresse() {return adresse;} public double beregnLøn() {return timeløn*timeAntal;} private double timeløn; private String adresse; private String navn; protected int timeAntal; }

16 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.16 Alternativ implementation

17 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.17 Et eksempel system

18 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.18 Et kasseterminalsystem

19 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.19 Et system

20 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.20 Klassemodellen è Begreber i problemområdet Vare Forretning Salg Betaling Produkt katalog Produkt specifikation Kassemedarbejder Kunde Leder Transaktion Varekode

21 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.21 Første scenarie è Efter at use case’ene er blevet beskrevet beskrives scenarier og de prioriteres: 1Kontant køb uden problemer 2Køb uden problemer 3Vare findes ikke 4Returnering af vare hvor bonen findes 5...

22 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.22 Kontant køb uden problemer è Der kan kun betales kontant è Ingen vedligehold af varelager è Ingen adgangskontrol è Der er ingen kontrol af kassebeholdningen è Ingen stregkodelæser è Det er en enkeltstående forretning

23 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.23 Klassemodel

24 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.24 System sekvensdiagram

25 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.25 Funktionslaget

26 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.26 Design af use casen “Køb varer”

27 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.27 Java som problemområde

28 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.28 Java som problemområde è Lad os betragte progremmeringssproget Java som genstandsområdetmområdet Hvilke begreber er der ? Hvilken funktionalitet er der ?

29 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.29 Begreber è Nogle begreber i programmeringssproget Java: Klasse attribut operation package private/public/protected package arv implementere type...

30 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.30 Beskriv begreberne è Klasse her et navn har en synlighed indeholder attributter indeholder operationer tilhører en package arver eventuelt fra en anden klasse implementerer eventuelt et eller flere interface

31 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.31 I.e. Der er en klasse for Klasse

32 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.32 Metamodel

33 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.33 Metamodellen er direkte understøttet i Java è Beskrivelse: è Java doc Java doc public final class Class extends ObjectObject implements SerializableSerializable Instances of the class Class represent classes and interfaces in a running Java application. Every array also belongs to a class that is reflected as a Class object that is shared by all arrays with the same element type and number of dimensions. The primitive Java types (boolean, byte, char, short, int, long, float, and double), and the keyword void are also represented as Class objects.

34 Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.34 Hvad kan dette så bruges til? è Værktøjer CASE tools GUI værktøjer è Grænseflade generering


Download ppt "Objektorienteret analyse og design Ó Bennedsen 2001 Design - part 2 7.1 Programmering og systemudvikling Lektion 7 Design - part 2."

Lignende præsentationer


Annoncer fra Google