Arkitektur, lagdeling og pakker

Slides:



Advertisements
Lignende præsentationer

Advertisements

Læreridentitet og professionalisme
Hvordan får du downloadet, installeret og konfigureret GSAK
Velkommen til informationsmødet Et par nye adressebegreber
Teststrategi Engrosmodellen
Et fagligt løft af folkeskolen
Hvordan programmerer man?? STREAM - en model. Programmører arbejder ofte i teams Hver programmør arbejder på sin del af en større helhed.
Notation Oversigt Kapitel 18.
Arkitektur - data.
Kom i gang med GSAK Hvordan får du downloadet, installeret og konfigureret GSAK Af ProsperoDK (aka. René Boe) Teknik-event i det mørke Jylland IV - 16/
GSAK Makroer Hvordan får du downloadet, installeret og konfigureret GSAK Af ProsperoDK (aka. René Boe) Teknik-event i det mørke Jylland IV - 16/
Iterativ udvikling og UP
Begreber og Redskaber 6. Afprøvning Formål: •Ekstern afprøvning (Funktionstest). •Hvordan dokumenterer man afprøvning i en rapport. •Hvordan konstuerer.
UP som framework UP på 1. semester Planlægning efter UP Input til UP
Teststrategi Engrosmodellen
Krav og usecases Larman kap. 5 og 6 (del1) Larman kap del1
Tele- og dataudbud 6 kommuner i Midt- og Vestjylland
Udvikling – del II.
Mobile Atlas Creator (MOBAC) Prepare online maps for your mobile device Af ProsperoDK (aka. René Boe) Teknik-event i det mørke Jylland V - 12/ –
Folkeskolereformen – på Bakkeskolen
WOC2006 foranalyse workshop del 1
Session 11: Introduktion til Systemudvikling
Tietgen Skolen Kvalitet og kvalitetssikring Review Test.
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 Del 2 af 2: Proces- og funktionsdiagrammering Aalborg Universitet, d. 9. oktober 2006.
03.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Klasser Oversigt, principper og teknikker Kapitel 3.
10.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Komponenter Oversigt, principper og teknikker Kapitel 10.
Klasser Modeller.
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
07.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Funktioner Oversigt, principper og teknikker Kapitel 7.
Indledende Programmering Uge 5 - Efterår 2006 Om at udvikle korrekte og pålidelige programmer Susanne Lindros.
12.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Modelkomponent Oversigt, principper og teknikker Kapitel 12.
Softwarekonstruktion
11.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Processer Oversigt, principper og teknikker Kapitel 11.
Opfølgning på obligatorisk opgave 1 ONK1. Ingeniørhøjskolen i Århus Slide 2 Overordnet Flere gode opgaver De samme fejl går igen.. Alle der har afleveret.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Oversigt, principper og teknikker
13.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Funktionskomponent Oversigt, principper og teknikker Kapitel 13.
Introduktion til arkitektur design Arkitektur design handler om at få en forståelse for, hvordan et system skal organiseres og designe den overordnede.
Powerpoint Jeopardy Data flow diagrammer Entity relationship diagrammer State diagrammerSammenhænge mellem systemmodeller
Studie rapport opbygning
Dagens gang Sidste uges opgaver Design af grænseflader
05.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Adfærd Oversigt, principper og teknikker Kapitel 5.
9. december Optimering af produktionsprocesser Ledelsessystemer som et nyttigt værktøj i optimeringsprocesserne Konsulent Christian.
v. Birgit Kjærside Storm
09.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Kriterier Oversigt, principper og teknikker Kapitel 9.
Introduktion og behovsafdækning Fokus på problemer med medicin og medicinhåndtering i hverdagen Forslag til løsninger Fastlæggelse af læringsbehov.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
Serviceorienteret arkitektur SOA. SOA bygger på Der findes en serviceleverandør, som udstiller en formåen til at udføre en veldefineret og afgrænset aktivitet,
Design II oktober 2009 gtj SAD design II.
Eksempel på realisering af domænemodel
Struktureret ProgramUdvikling MM 5
Use Case Modellering. En form for requirements engeneering – dvs. fastlæggelse af systemkrav.
Gruppe D/4 Tema Design.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design interaktionselementer Analysedokumentet.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Situationsbestemt metodevalg
Indledende Programmering Uge 6 - Efterår 2006
Dagens gang Komponenter Projektetablering Opgave i komponenter til næste gang.
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
Uffes Udlejningsservice.  A. Lumbye, 2004 & E. Ernst 2005Introducerende objektorienteret programmeringmodellering Uffes Udlejningsservice Uffe Ellehammer.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Forretningsmodellering 2. Modul Foråret 2008 Nord LBP.
Dokumentation.
Dokumentation.
Replanlægning GD1 Test & Implementering torsdag d. 18. september 2014
INTRODUKTION TIL SKOLELEDERE
Præsentationens transcript:

Arkitektur, lagdeling og pakker Lektion 8 Arkitektur, lagdeling og pakker

Arkitektoniske view’s i UP (afspejles bl. a Arkitektoniske view’s i UP (afspejles bl.a. Rational Rose’s mappestruktur) 03-04-2017 Softwarekonstruktion 8

Logical view: Lagdeling/pakker - analyse 03-04-2017 Softwarekonstruktion 8

Arkitektonisk analyse Hvilke pakker ? Se fx på tætte strukturer i analysemodellen (arv og aggregeringer) Associering er den løseste forbindelse Se derefter på use cases ! 03-04-2017 Softwarekonstruktion 8

Eks. 1: Lagdelt arkitektur Use case realisering indenfor en lagdelt arkitektur med grænsefladelag, managerlag, modellag og DBlag: Grænsefladeklasser der håndterer interaktionen mellem aktøren og grænsefladen Managerklasser der får ansvaret for at danne ”limen” mellem grænseflade- og domæneklasserne (medtages i et selvstændigt lag – eller i modellaget). Her fra styres use case afviklingen. Modelklasser der findes ud fra domæne modellen af problemområdet. De modelklasser der understøtter use cases medtages DBklasser der indpakker sql’en til databasen 03-04-2017 Softwarekonstruktion 8

Afprøvning af arkitektur Lav interaktionsdiagrammet til den arkitekturbærende use case Placer objekterne i de lag de hører til (der skal være objekter i alle lag) Udarbejd koden Afprøv! (baseline for elaboration) 03-04-2017 Softwarekonstruktion 8

Eks. 2: Arkitektur med lag og pakker 03-04-2017 Softwarekonstruktion 8

Eks 2 fortsat: Interaktion mellem lag/pakker 03-04-2017 Softwarekonstruktion 8

Design af subsystemer og interfaces I design bliver Analyse pakker til design subsystemer Analyse klasser til designklasser og interfaces (jvf forrige lektion) Design af subsystemer handler om at dele systemet op i så uafhængige dele som muligt Der tages udgangspunkt i analysens pakker, som er designet ud fra principper om lav kobling og høj binding og Som suppleres med interfaces, der er en separat specifikation (kontrakt), der adskiller funktionalitet fra dets implementering 03-04-2017 Softwarekonstruktion 8

Facade pattern Hvordan opfyldes krav om et fælles ens interface til helt forskelligartede implementeringer? Ved en ”front-end” eller facade der pakker subsystemet ind. Facade objektet repræsenterer et ens interface og er ansvarlig for samarbejdet til subsystemets komponenter 03-04-2017 Softwarekonstruktion 8

Anvendelse af facade Facade mønstret simplificerer tilgangen til en samling af relaterede objekter ved at lave et objekt som alle objekter udefra bruger til at kommunikere med samlingen af objekter Vil typisk kunne anvendes mellem de forskellige lag i den lagdelte arkitektur Managerlaget er fx en facade, hvis acces sker gennem et objekt fx et ManagerInterface 03-04-2017 Softwarekonstruktion 8

Eks. 3. Interfaces og subsystemer - Design 03-04-2017 Softwarekonstruktion 8

Tilstandsdiagrammer

Tilstandsdiagrammer Tilstandsdiagrammer kan bl.a. bruges til modellere dynamiske aspekter i et system Er et objekts historie, livsforløb eller adfærdsmønster – eller systemtilstande i en use case. Tilstand (state): En tilstand eller situation i et objekts livsforløb, hvor visse betingelser er opfyldt, udfører noget aktivitet eller der ventes på nogle hændelser Hændelse (event): En øjeblikkelig begivenhed i tid og rum, som involverer en/flere objekter Tilstandsovergang (transition): Bevægelsen fra en tilstand til en anden som svar på en hændelse 03-04-2017 Softwarekonstruktion 8

Basis notation (State diagrams i Rose) Eksempel Reservation 03-04-2017 Softwarekonstruktion 8

Notation udvidet med handlinger og aktiviteter Tilstand Hændelse 03-04-2017 Softwarekonstruktion 8

Samlingspunkter 03-04-2017 Softwarekonstruktion 8

Beslutningspunkter 03-04-2017 Softwarekonstruktion 8

Call’s 03-04-2017 Softwarekonstruktion 8

Signaler 03-04-2017 Softwarekonstruktion 8

Anvendelse af tilstandsdiagrammer i analysen Tilstandsdiagrammer over objekters livsforløb kan bruges til vurdering af: Hvad skal der skal gemmes om livsforløbet? Hvordan opdateres? Livsforløb kan gemmes som kombinationer af: Strukturer Klasser Attributter, eksempelvis statusattribut Livsforløb opdateres gemmen use cases For hver tilstand i tilstandsdiagrammet stilles følgende spørgsmål: Skal tilstandes gemmes? Kan tilstandene registreres i domænemodellen? Er der defineret en use case til opdatering af tilstanden? Især dynamiske klasser er interessante, fx ”aftale” klasser!!! 03-04-2017 Softwarekonstruktion 8

Øvelse 1: Lav tilstandsdiagrammer for Nør Halne bibliotek Følgende hændelser er fundet vedr. objekter i klassen: Reservation Reserveret (dato) Annulleret (dato) Besked sendt (dato, frist) Afhentningsfrist overskredet (dato) Udlånt (dato) Følgende hændelser er fundet vedr. objekter i klassen: Udlån Udlånt (dato, frist) Afleveret (dato) Afleveringsfrist overskredet (dato) Rykker sendt (dato, frist) Afleveret (dato, bøde) Erstatning(dato, beløb) 03-04-2017 Softwarekonstruktion 8

Øvelse 2: Hvad skal registereres. Hvordan Øvelse 2: Hvad skal registereres? Hvordan? (se domænemodellen næste slide) Tilstandsdiagram for Reservation Tilstandsdiagram for Udlån 03-04-2017 Softwarekonstruktion 8

1. version af domæne model 03-04-2017 Softwarekonstruktion 8

Løsning: Justeret domænemodel Værdimængde: reserveret, hjemkommet, afhentet, annulleret Værdimængde: udlånt, hjemkaldt, afleveret 03-04-2017 Softwarekonstruktion 8

Opgave 1: Arkitektur for ”Camplet” Kom med forslag til en overordnet arkitektur Overvej opdeling af manager lag og model lag i logiske pakker Overvej interfaces og subsystemer 03-04-2017 Softwarekonstruktion 8

Opgave 2: Tilstandsdiagrammer for Camplet” Overvej vigtige hændelser på jeres aftaleklasse(r) Lav et tilstandsdiagram for aftaleklassen(erne) For hver tilstand i tilstandsdiagrammet stilles følgende spørgsmål: Skal tilstandes gemmes? Kan tilstandene registreres i domænemodellen? Er der defineret en use case til opdatering af tilstanden? Juster jeres domænemodel og use case diagram 03-04-2017 Softwarekonstruktion 8

Kvalitetssikring Test Review

Om test Test udføres altid i henhold til specifikationer. En test kan aldrig påvise korrekthed - kun tilstedeværelse af fejl! En succesfuld test finder fejl!!! Udvikleren skal ikke teste sig selv. Et system er færdigtestet, når hyppigheden af fejl er reduceret til et forretningsmæssigt acceptabelt niveau!! 03-04-2017 Softwarekonstruktion 8

Testmodel En samling af Omfatter typer af test: test-cases test-procedurer eksekverbare komponenter, som tester Omfatter typer af test: modultest eller unit-test (klasseniveau) integrationstest systemtest 03-04-2017 Softwarekonstruktion 8

Modultest (unit-test) Alle en klasses metoder skal testes Black-box test ud fra specifikation (pre- og post-betingelser) White-box test ud fra kendskab til intern struktur: test grænsetilfælde og normaltilfælde 03-04-2017 Softwarekonstruktion 8

Integrations- og systemtest Integrationstest skal finde fejl i måden moduler spiller sammen på og udføres efter hvert build. (Design by Contract er vigtigt.) Systemtest skal finde fejl i systemet som helhed og udføres i slutningen af hvert gennemløb af implementations processen 03-04-2017 Softwarekonstruktion 8

Test cases Test cases findes ud fra use case modellen Hver test case tester et scenarium for en use case En test case skal specificere input, forventet output og evt. betingelser for testen Husk også belastningstest!!! 03-04-2017 Softwarekonstruktion 8

Test procedurer og komponenter Test procedurer specificerer, hvordan en test gennemføres kan være manuelle eller - bedre - automatiske Test komponenter - eller drivere automatisering af test procedurer Tilstræb design af test procedurer og - komponenter, så der er så meget genbrug som muligt 03-04-2017 Softwarekonstruktion 8

Nyt syn på test/XP - eXtreme Programming (Kent Beck) unit-test skrives før unit i en rytme, der siger: ”skriv en test - skriv unitten - test den - skriv den næste test...” dette har angiveligt følgende fordele: unit-test bliver faktisk udført! det giver en programmør tilfredshed at skrive en test, skrive noget kode og så se sin kode bestå testen klassedesign bliver mere klart: man tvinges til at være helt præcis vedr. interface (metode-signaturer, specifikationer mv.) programverifikation bliver bedre dokumenteret større lyst til at ændre eksisterende kode (refactoring), da test- driverne er klare og lige til at køre. 03-04-2017 Softwarekonstruktion 8