 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur.

Slides:



Advertisements
Lignende præsentationer
Test First Development
Advertisements

Elmasri kap , Databaser Kvalitetsattributter og arkitektur Sikkerhed Transaktioner.
SummIT05 Kvaliteter i software Kvalitet på højt niveau –Lektor Klaus Marius Hansen ISIS Katrinebjerg Aarhus Universitet CISS-projekter relateret.
Lavet af: Paw Petersen Design Design Class Diagram (DCD)
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Tietgen Skolen Kvalitet og kvalitetssikring Review Test.
10.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Komponenter Oversigt, principper og teknikker Kapitel 10.
Oversigt, principper og teknikker
Introduktion til arkitektur design Arkitektur design handler om at få en forståelse for, hvordan et system skal organiseres og designe den overordnede.
Multi-vejs hobe med ekstra bytes Foredrag: Claus Jensen Projektmedlemmer: Jyrki Katajainen, Fabio Vitale, Claus Jensen.
Reliable Architecture Ved Henrik Bærbak Christensen Reflective Architectures Emne: reflective architecture overview 11 december 2009.
OOA&D Et Crash-kursus.
09.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Kriterier Oversigt, principper og teknikker Kapitel 9.
17.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementering Principper, teknikker og vurdering Kapitel 17.
Fundamentale datastrukturer
Aalborg University – Department of Production Introduction to Industry Foundation Classes (IFC) Kaj A. Jørgensen Aalborg Universitet, Institut for Produktion.
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,
Forretning og Ledelse – Lektion 7
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
Usability ITU, forår 2008 Usability ITU Forår 2008 ’Teori 2’ 3. kursusgang, 14. februar 2008.
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.
DIEB12.1 Kursusgang 12 Feedback fra en usability-evaluering Oversigt: Sidste kursusgang Opgaver Feedback Are Usability Reports Any Good? Alternativer til.
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”
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.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens.
 Jens Bennedsen 2002Objektorienteret systemudvikling Interaktionsdiagrammer Hvordan beskrives objektinteraktion? Sekvensdiagrammer Collaborationsdiagrammer.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen, 2003Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2002Objektorienteret systemudvikling Ideér til klasser Analysemønstre.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Indledende Programmering Uge 6 - Efterår 2006
Dagens gang Komponenter Projektetablering Opgave i komponenter til næste gang.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
 Jens Bennedsen 2001Multimedie programmering MVC Et mønster for grænseflader.
 Jens Bennedsen 2002Objektorienteret systemudvikling Modelleringsperspektiver Hvad betyder en klassemodel egentlig?
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2002Objektorienteret systemudvikling1.1 Objektorienteret design Persistens - introduktion.
 Jens Bennedsen 2001Multimedie programmering14.1 Lingo Inside LingoLand.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
Tutankhamons Grav Et modellerings eksempel
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
Hvad er en inkrementel og iterativ process?
Definition Kriterier Design og evaluering
DOMS IT-stormøde 16 november 2009 Kåre Fiedler Christiansen.
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
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,
Abstraktioner.
Dorte, Ida, Janne, Nikolaj, Alexander og Erla
Sikkerhed.
Kvalitative metoder, forår kursusgang
DB analyse og modellering
Compositional Design Principles “SemiCiv”
Software Testing Software testing.
Kursusgang 12 Feedback fra en usability-evaluering Oversigt:
Præsentationens transcript:

 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur

 Jens Bennedsen 2002Objektorienteret systemudvikling 3 lags arkitektur Grænseflade- komponent Funktions- komponent Model- komponent >

 Jens Bennedsen 2002Objektorienteret systemudvikling Hvad er arkitektur? OOA&D: –”Arkitekturen kan udtrykkes som en overordnet strukturering af dele, der modsvarer kriterier for systemets design…Arkitekturen sætter på afgørende vis vilkårene for resten af designet. En uklar arkitektur vil føre til meget spildt arbejde i resten ”

 Jens Bennedsen 2002Objektorienteret systemudvikling Hvad er arkitektur? UML 1.3: –Architecture is the organizational structure of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems. Perry and Wolf –Software Architecture = { Elements, Form, Rationale } HvadHvordan Hvorfor

 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur (2) Shaw and Garlan –Software architecture [is a level of design that] involves the description of elements from which systems are built, interactions among those elements, patterns that guide their composition, and constraints on these patterns. Kruchten –Software architecture deals with the design and implementation of the high-level structure of software. Architecture deals with abstraction, decomposition, composition, style, and aesthetics.

 Jens Bennedsen 2002Objektorienteret systemudvikling Practioner’s definitions The following definitions are samples from software architects and senior software engineers: –Software architecture is :  an overall view of the solution to a problem  the high-level design of modular components and how they interact  a foundation that one can build on to solve a problem (e.g., rules, policies, attributes, etc.)  an efficient method to meet a fixed set of well-defined attributes

 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur og krav. spec. Software arkitektur er den overordnede struktur af et software system. Vigtige egenskaber er bl.a:  Det er på et så højt abstraktionsniveau, at systemet kan ses som et hele.  Strukturen skal understøtte den funktionalitet der er krævet af systemet. Det vil sige, at den dynamisk opførsel af systemet skal tages med i betragtning når arkitekturen.  Arkitekturen skal passe til kvalitetskravene til systemet (også kendt som non-funktionelle krav). Disse krav inkluderer sandsynligvis performance, sikkerhed og krav om at det skal passe med det nuværende system samt krav om fleksibilitet og udvidbarhed i forbindelse med fremtidige krav til en rimelig pris. Disse krav kan konflikte og afvejninger mellem alternativer er en essentiel del af arkitektur design.  På arkitektur niveauet er alle implentationsdetaljer skjult.

 Jens Bennedsen 2002Objektorienteret systemudvikling Kriterier

 Jens Bennedsen 2002Objektorienteret systemudvikling Kriterier (2)

 Jens Bennedsen 2002Objektorienteret systemudvikling 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

 Jens Bennedsen 2002Objektorienteret systemudvikling 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

 Jens Bennedsen 2002Objektorienteret systemudvikling 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

 Jens Bennedsen 2002Objektorienteret systemudvikling 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)

 Jens Bennedsen 2002Objektorienteret systemudvikling 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

 Jens Bennedsen 2002Objektorienteret systemudvikling 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

 Jens Bennedsen 2002Objektorienteret systemudvikling 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

 Jens Bennedsen 2002Objektorienteret systemudvikling 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

 Jens Bennedsen 2002Objektorienteret systemudvikling Hvorfor omvendt ved OO?? interface klasser –Interfaces til begreber –Implementations detaljer gemmes længere nede –Mulighed for at genbruge procedurelle abstraktioner