Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.1 Programmering og systemudvikling Lektion 1 Oversigt Forskellige.

Slides:



Advertisements
Lignende præsentationer
Notation Oversigt Kapitel 18.
Advertisements

Teknisk implementering
06.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Brug Oversigt, principper og teknikker Kapitel 6.
Systemvalg Oversigt og teknikker Kapitel 2.
Softwarekonstruktion
Krav og usecases Larman kap. 5 og 6 (del1) Larman kap del1
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Larman, 2. udgave kap. 11 Grundlæggende Systemudvikling zHvad er systemudvikling ? zHvad er UML ? zHvad er analyse og design ? zHvad er UP ?
07.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Funktioner Oversigt, principper og teknikker Kapitel 7.
12.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Modelkomponent Oversigt, principper og teknikker Kapitel 12.
Objektorienteret programmering
Oversigt, principper og teknikker
13.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Funktionskomponent Oversigt, principper og teknikker Kapitel 13.
05.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Adfærd Oversigt, principper og teknikker Kapitel 5.
Forelæsning 3.1 Collections Javas for-each løkke
09.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Kriterier Oversigt, principper og teknikker Kapitel 9.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
Lektion 7 Læsestof: Kopier fra Caranno
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
Generelt om abstraktion og modellering Tietgen Skolen.
Forretning og Ledelse – Lektion 7
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester 6, kursusgang Databaser (1) Kjeld Svidt
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 11.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Interview service in Statistics Denmark Structure and Surveys.
Forelæsning 7.1 – repetition
Unified Modeling Language
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.
Slides for: Software requirements - Styles and techniques Soren Lauesen 6. Quality requirements January 2007 © 2002, Pearson Education retains the copyright.
Project Management Managing The Progress of Projects.
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”
Trinvis forfinelse vha. STREAM Systematisk, gradvis udvikling af programmer.
Systemudvikling – Fra idé til kode.  Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering5A.1 OOP – Model før funktioner Funktionsorienteret versus objektorienteret systemudvikling.
 Jens Bennedsen 2002Objektorienteret systemudvikling Interaktionsdiagrammer Hvordan beskrives objektinteraktion? Sekvensdiagrammer Collaborationsdiagrammer.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
 Jens Bennedsen 2002Objektorienteret systemudvikling Modelleringsperspektiver Hvad betyder en klassemodel egentlig?
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
 Astrid Lumbye 2002Objektorienteret systemudvikling Begreber i systemudviklingsprocessen Udviklingsmodel Metode Beskrivelsesteknik Værktøj.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2002Objektorienteret systemudvikling1.1 Objektorienteret design Persistens - introduktion.
I o p o DAIMI, AU, Oktober 1999Introducerende objektorienteret programmering6C.1 OOP – Hvorfor nu det? Funktionsorienteret versus objektorienteret systemudvikling.
Et Audio/ Video Framework Et framework for en audio/video applikation baseret på lokale og kilder tilgængelige på 1394 via AV/C protokollen.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Hvad er en inkrementel og iterativ process?
Eksamen Praktisk prøve.
FISA – BATIBOUW Mia, Michelle, Pernille & Sofie CASE.
DOMS IT-stormøde 16 november 2009 Kåre Fiedler Christiansen.
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Dorte, Ida, Janne, Nikolaj, Alexander og Erla
DB analyse og modellering
Compositional Design Principles “SemiCiv”
Software Testing Software testing.
MaaS i Europe Rasmus Lindholm.
Præsentationens transcript:

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.1 Programmering og systemudvikling Lektion 1 Oversigt Forskellige metoder Perspektiver

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.2 Underviser è Jens Bennedsen Underviser til dagligt på datamatiker- uddannelsen datalog (færdig i 1988) 1½ år i ”virkeligheden” +15 års erfaring i OO Undervist hos: –ÅK, LEC, DDB, CCI, Systematic

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.3 Lektion 1 è Introduktion til objektorieneteret analyse og design  En kort gennemgang af de enkelte dele af undervisningsrækken. Den historiske udvikling ridses op.  De enkelte fremherskende metoder (OMT, OOSE, OOA&D, UP) beskrives.

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.4 Lektion 2 è Hvordan defineres hvad systemet skal handle om? Systemdefinition Rigebilleder BATOFF Eksperimenter Eksempler på beskrivelser

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.5 Lektion 3 è Anvendelsesområdet –Brugsmønstre  Funktioner  hvad er det, hvad bruges de til.  Supermarkedsprincippet  objekt- og listebilleder, Specialbehovsbilleder.  Anvendelse af klassemodellen som basis for en prototype og sammenhængen mellem klassemodel og - grænseflade.

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.6 Lektion 4 è Klassemodellering  Klassemodellering som teknik til beskrivelse af den statiske struktur af virkeligheden og det endelige system.  Klassemodellens forskellige roller igennem systemudviklingsforløbet.  Kvalitetskriterier ved klassemodeller.  Typiske mønstre i forbindelse med modellering af problemområdet

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.7 Lektion 5 è Dynamik  Teknikker til beskrivelse af begreber med et interessant dynamisk forløb.  Sammenhæng mellem den dynamiske model og klassemodellen.  Anvendelse af den dynamiske model gennem systemudviklingsforløbet.  Hvorledes realiseres systemets funktionalitet (udtrykt i termer af brugsmønstre) ved hjælp af samarbejdende objekter.  Sekvens diagrammer — hvad anvendes de til og hvornår?

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.8 Lektion 6  Design Hvad er design? Aktiviteter Arkitektur design GRASP patterns

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.9 Lektion 7 è Design Design af de enkelte lag –Model laget –Funktionslaget –(grænseflade laget)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.10 Lektion 8 è Design møstre Hvad er det? Udvalgte mønstre Mønster sprog

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.11 Syn Grænseflade Interaktion Livsforløb Funktionalitet Arkitektur Begreber

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.12 Klasser è Begreber og deres sammenhæng Klasser Struktur –associering –aggregering –specialisering Notation –UML

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.13 Statisk struktur è   è   è  1 * Statisk Struktur

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.14 Funktionelle syn è Brugsmønstre è Et brugsmønster er et afsluttet brugssenarie è definerer grænsefladen mellem omverdenen og systemet è definerer funktionaliteten af systemet è afgrænser egenskaber i klassemodellen

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.15 Brugsmønstere - Afgrænsning Aktør Brugsmønster

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.16 Brugsmønster - eksempel

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.17 Dynamiske syn è Livsforløbet af et objekt è De (overordnede) tilstande der er for et objekt è Overgange mellem tilstandene Hændelser Betingelser è Mønster af hændelser der fastlægger de lovlige hændelsesforløb for ALLE objekter af en klasse

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.18 Tilstandsdiagram - eksempel

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.19 Samarbejde è Systemet skal laves som en samling samarbejdende objekter è Funktionaliteten skal placeres på klasserne Beskrivelse af objekt interaktion Fastlæggelse af interface –navn på operation –parametre på operationen

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.20 Sekvensdiagram - eksempel

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.21 Supermarkedsgrænseflade

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.22 analyse Fokus Test Impl. Krav spec Design

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.23 ”Round trip gestalt design” è OO udvikling er iterativt Hovedbevægelsesretning è OO muliggør udvidelser lettere end traditionel udvikling è OO muliggør abstraktioner på flere niveauer design-mønstre

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.24 “De fire skyer” Analyse Realiserede begreber Teknisk “virkelighed” Problem specifikke begreber Vision/ idé Design Realisering Genstandsområde Modelsystem

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.25 Edb systemet i en kontekst ProblemområdetAnvendelsesmområdet Den del af omgivelserne der administreres, overvåges eller styres vha et edb-system En organisation der administrerer, overvåger eller styrer problemområdet Objektsystem

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.26 Eksempel - kassesystem i bank è Anvendelsesområdet privat kundedelen af en afdeling i en bank è  Konti, transaktioner, indsættelser, hævninger,...

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.27 Objektsystemet è ”De kommende brugere opfattelse af det som edb systemet i fremtiden skal bruges til at administrere, overvåge eller styre”

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.28 ? Hvad er ? è Hvad er anvendelses- og problemområdet for et system til at holde rede på patienter hos en tandlæge automatisk for foretage fremkaldelse og kopiering af film automatisk at sikre den rette mængde gødning spredes på en mark

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.29 Proces Class Odder {... };

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.30 OO Analyse vs. trad. analyse Hvor er ole odder?

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.31 Design è Mål: System af interagerende objekter è Fra flere syn til et syn è Teknikken inddrages Odder Navn køn...

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.32 Design versus Analyse è Applikationen è Abstraktioner è Formalisering è Intern grænseflade è  è  è   è 

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.33 This is an object-oriented system. If we change anything, the users object.

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.34 Modeling è Programs reflect reality in a natural way è Objects, object attributes, classes, etc. are good means for building physical models of concepts and phenomena from the application domain è A physical model is more stable than a model based upon the desired functionality of a system (Jackson, 1983) è Rich conceptual framework for organizing knowledge about the problem domain classification: generalization, specialization, clustering composition: part/whole, reference composition, localization

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.35 Object-oriented perspective è The world is not object-oriented è Object-orientation is a perspective on the world è A perspective is the means used by people to organize knowledge within some domain

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.36 Examples of perspectives Procedural Programming Functional Programming Constraint-Oriented (Logic) Programming Object-Oriented Programming

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.37 Benefits of object-oriented programming è Conceptual Framework for Object-Oriented Programming è Unifying analysis, design and implementation è Better systems user interfaces, internal quality (design) open and extensible systems è Reuse? Yes, in the long term! è No silver bullet!

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.38 Function-Oriented vs. Object-Oriented

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.39 Showboat A/S Von Petersen Knudsen Exbert

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.40 The case è Showboat A/S hire out boats by the minute è von Petersen runs the company from his office downtown (administrative and representative duties, etc.) è Knudsen runs the company at the marina (servicing customers, maintaining boats, etc.) è Exbert is a freelance software engineer

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.41 Requirements è While doing his strategic planning, von Petersen desperately needs a decision support system that provides the necessary information. The number of hiring outs and the hiring time seems to be what is needed. è von Petersen requests a system that can deliver a daily report with information about the number of sessions (hiring outs) on the day the average duration of each session è von Petersen invite tenders for the system; Exbert wins.

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.42 Development (function-oriented) è Exbert is bright and smart programmer. Focusing on the functional requirements he realizes that all he needs is a state space with two variables: n, the number of finished sessions; and totalTime, the sum of the duration of all finished sessions. è It’s easy to maintain n: each time a session ends, n is incremented by one. è Maintaining totalTime requires a little calculation...

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.43 The calculation and the program totalTime = (e1 - s1) + (e2 - s2) + … + (en - sn) = e1 + e2 + … + en - s1 - s2 - … - sn beginSession:totalTime = totalTime - currentTime endSession:totalTime = totalTime + currentTime ; n++ ; Now, all that is needed is a little polish on the user interface...

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.44 Exbert’s final system beginSession: totalTime = totalTime - currentTime ; endSession: totalTime = totalTime + currentTime ; n++ ;

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.45 Two months later... è von Petersen became very happy about the system, but after a short while he wanted more. è von Petersen called Exbert and asked for the following fairly innocent additions to the daily report: the duration of the longest session of the day the most busy hour of the day a report at the middle of the day the maximim number of concurrently ongoing sessions è :-(

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.46 An object-oriented perspective è Exbert’s system is developed solely by focusing on the functional requirements for the system. è There are no representation at all in the system of the concepts and phenomena in the problem domain, and therefore it is impossible to meet new requirements. è What is needed is a model that represents the relevant concepts and phenomena from the problem domain (relevant with respect to the functional requirements!). è We will make such a model, and it shall be the foundation of the system.

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.47 The central concept: a Session è Look at the functional requirements to identify relevant concepts: the number of sessions (hiring outs) on the day the average duration of each session è Both are they expressed in terms of the concept of a session; nothing else seems to be relevant for the moment. è For a session we want to measure its duration, and since the duration of a session is the difference between the stopTime and the startTime of that session, we need to identify these.

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.48 Session, a formal description in UML We model a Session as a class:

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.49 Session, an implementation in Java class Session { private int nr; private Time startTime, stopTime; public void start() { Time current= new Time(); startTime= current; } public void stop() { Time current= new Time(); stopTime= current; } public Time duration() { return stopTime.subtract(startTime); }

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.50 System functions in UML and Java Functions int n; Time totalTime; Bag current; beginSession (int nr) endSession (int nr) doDailyReport () We also model the system functions as a class: class Functions { private static int n; private static Time totalTime= Time(0); private static Bag current= new Bag(); public static void beginSession(int nr) { Session s= new Session(nr); s.start() current.insert(s); }...

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.51 System functions, cont’d class Functions {... public static void endSession(int nr) { Session s; s= current.lookup(nr); current.remove(nr); s.stop(); n++; totalTime= totalTime.add(s.duration()); } public static void doDailyReport() { Time avgTime; if ( n!=0 ) avgTime= totalTime.divide(n); else avgTime= new Time(0); Interface.printDailyReport(n, avgTime); }

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.52 The class Time Time int h, m, s; set (int h, int m, int s) add (Time t) subtract (Time t) divide (int n) Time could be a general class in a library (not domain-specific): class Time { private int h, m, s; public Time() { Date now= new Date(); h= now.getHours(); m= now.getMinutes(); s= now.getSeconds(); } public void set( int h, int m, int s) { this.h= h; this.m= m; this.s= s; }...

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.53 The class Time, cont’d class Time {... public Time add(Time t) { int h, m, s; s= this.s + t.s; m= this.m + t.m + s/60; s= s % 60; h= this.h + t.h + m/60; m= m % 60; Time res= new Time(0); res.set(h, m, s); return res; } public Time subtract(Time t) {... } public Time divide(int n) {... } }

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.54 The container class Bag Bag Session items []; isEmpty () insert (Session s) lookup (int key) remove (int key) Bag too could be a general class in a library: class Bag { private Sessions items []; private int l; public Bag() { items= new Session [100]; l= 0; } public boolean isEmpty() { return l==0; }...

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.55 The container class Bag, cont’d class Bag {... public void insert(Session s) { items[l]= s; l++; } public Session lookup(int key) { // pre: (E j: 0 <= j < l: items[j].nr() == key int i; for (i= 0; items[i].nr() != key; i++); return items[i]; } public void remove(int key) {... } }

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.56 Why Time when we have Date ? è There can be several reasons The Date interface does not follow our naming convensions The Date interface does not fulfil our needs … è We make an adaptor class A class that makes another class act the way we want

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.57 Historie 1967 PrincipperMetoderSprog Simula SmallTalk SmallTalk-80 C++ Industriel bevidstgørrelse OOCOBOL Lagdeling (Dijkstra) Information hiding (Parnas) Patterns Jackson Coad/Yourdon Rumbaugh Booch Jacobson Mathiassen UML Java UP

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.58 Metoder è Ivar Jacobson Object-Oriented Software Engineering è James Rumbaugh et al. Object-oriented modeling and design è Lars Mathiassen et al. Objektorienteret analyse & design è Rational Rational Unified Process

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.59 OMT è Object-oriented modeling technique è 1. Generations metode skabt af James Rumbaugh m.fl. è Den hidtil mest udbredte metode Forholder sig til DB Ret trin/opskrift orienteret Består af en række (kendte) notationer/syn –Klassediagram, tilstandsmaskine, DFD, event trace diagrammer

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.60 OMT (Workflows) è Der er overordnet fire faser Object Analysis Phase System Design Phase Object Design Phase Implementation Phase

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.61 OMT Analyse Lav en krav spec. Lav en objektmodel –Objekt Model = objekt model diagram + data dictionary Lav en dynamisk model: –Dynamisk Model = tilstands diagrammer + globalt event flow diagram Lav en funktionel model: –Functionel Model =data flow diagrammer + constraints. Verificer, iterer, og forfin disse tre modeller: En beskrivelse af strukturen af klasserne i systemet inkl. Associationer, attributter og operationer. En beskrivelse af de aspekter af systemet der omhandler tid, sekvens og interaktion. En beskrivelse af de dele af systemet der transformerer værdier vha. funktioner, begrænsninger og funktionelle afhængigheder.

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.62 OMT Design è 1: System Design System Design Document = Strukturen for den basale arkitektur samt overordnede strategi beslutninger. è 2: Objekt Design Design Document = Detailed Object Model + Detailed Dynamic Model + Detailed Functional model Den første del af design hvor beslutninger om den overordnede struktur for systemet træffes. ”In this stage, we shift away from the real-world orientation of the analysis model towards the computer orientation required for a parctical implementation.”

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.63 OMT (overordnet)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.64 OMT (fra mit sysnpunkt) è Fremgangsmåde: Vandfald Ingen bruger involvering Begreberne ”popper” op Ikke så megen hjælp i hvordan man får delene til at ”spille sammen” Ikke så megen fokus på arkitektur Fokus på A, D og I Ingen fokus på kravstyring, projektstyring, kvalitetssikring

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.65 OOSE è Object-oriented software engineering è 1. Generations metode udviklet af Ivar Jacobson m.fl. è Udgangspunkt fra Erikson - telefon systemer è En noget anvendt metode ”Opfandt” use-cases Ikke så opskrift orienteret Bruger egen udviklet notation

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.66 OOSE (workflow) Krav Req. model Design model Anal. model Requirements analysis Robustness analysis Impl Design Test Impl. model

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.67 OOSE (requirements analysis)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.68 OOSE (Robustness analysis)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.69 OOSE (Construction)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.70 OOSE (Test)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.71 OOSE (principper) è Use case er gennemgående class …OK Fail DOMAMDMIMTM Kan udtrykkes af Struktureret af Reali- seret af Implemen- teret af Testet i

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.72 OOSE è Fremgangsmåde: Iterativ Inkrementel (påstås) UC+DCM (3 lags) CM 3-lags arkitektur Bruger involvering Ikke fokus på projektstyring, kvalitetssikring interaktionsdiagram

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.73 UP è (Rational) Unified Process è De tre amigoers fælles værk è 2. Generations metode è De fire hjørnestene Use-case dreven Arkitektur centreret Iterativ Inkrementel è Systemudviklingens microsoft Systemudviklingens microsoft

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.74 Workflovs Project Management Environment Requirements Implementation Test Design Preliminary Iteration(s) Iter. #1 Phases Process Workflows Iterations Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Analysis ElaborationTransition Inception Construction En iteration i elaboration

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.75 Workflow og fase è Workflow Noget det skal gøres (vha. nogle retningslinier) Opdelt i aktiviteter, der er opdelt i subaktiviteter, der er... è Fase Overordnet tilstand af systemet Afgrænset af milepæle Der skal (typisk) laves noget af alle worksflows i hver fase (iteration)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.76 Requirements capture

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.77 Analysis

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.78 Design

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.79 Implementation

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.80 Modeller OK Fail Anal. model Design model Deployment model Impl. model Test model Specificeret af Realiseret af Distri- bueret af Implemen- teret af Testet i Use case model

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.81 OOA&D è Objekt orienteret analyse og design (”Ålborg metoden”) è Skabt af (vores egen) Lars Mathiassen m.fl. è I Danmark udbredt til undervisning har ikke hørt om industrielle anvendelser Noget kogebogsagtig

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.82 OOA&D principper è Objekter som samlende bregeb è En åben metode è En situationsbestem strategi è Genbrug forbilleder, mønstre og komponenter è Et godt design har ingen væsentlige svagheder è En kortfattet dokumentation

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.83 OOA&D (workflows) Analyse af problemområdet Design af arkitektur Design af komponenter Analyse af anvendelses- området Model Krav til brug Spec. Af kompo. Spec af arkitektur

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.84 OOA&D (analyse af problemområde)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.85 OOA&D (analyse af anvendelsesområde)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.86 OOA&D (design af arkitektur)

Objektorienteret analyse og design Ó Bennedsen 2001 Programmering og systemudvikling 1.87 OOA&D (design af komponenter)