Utvecklingsmetoder. Introduktion till OCTOPUS och UML … Hello
Short Description
Download Utvecklingsmetoder. Introduktion till OCTOPUS och UML … Hello...
Description
Objektorienterad Realtidsprogrammering 2000
Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion
previous
next
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Utvecklingsmetoder ... • Problem Svårt att utveckla system
kostnad
– Svårt att utveckla system – 80% underhåll – Vi vill ha formalism fast enkel och användbar – Kommunikation mellan inblandade – Många anser att kostnaden för krav design test förändring av ett system ökar implemproduktion analys exponentiellt över tiden. entation Fast inte säkert sant med dagens metoder.
• 70-talet Strukturerad programmering
– Flödesdiagram – Strukturerad programmering – Top-down, bottom-up och middle-out
• Flera objektorienterade metoder blev populära på 80-talet och dominerar idag Flera metoder previous
– OMT, ObjectOry, Booch, Shlaer-Mellor, Coad-Yourdon – ... next
2
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
… UML ... • Unified Modeling Language UML – 90-talet – Förening av tre dominerande metoder
UML är de facto standard
• Booch • OMT • Objectory
– ”Standard”, OMG (Object Management Group) med fler än 600 intressenter – Mer notation än metod (än så länge)
– Ej (för) stringent = användbart • Det finns möjligheter till vissa egna utvidgningar, bla via så kallade stereotyper previous
next
3
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Design och utveckling • Vilken typ av projekt kan vara avgörande för hur man går tillväga – Programmera i det lilla Få utvecklare
• kod skapas av en eller få programmerare. En enskild person kan ha överblick och vara insatt i alla delar av projektet. • huvudproblem (mjukvara): designa och utveckla algoritmer
– Programmera i det stora Många utvecklare
previous
next
• mjukvaran tas fram av ett stort team. Vissa personer kan specificera eller designa andra kan koda vissa komponenter, slutintegration/applikationen görs kanske av en tredje grupp, osv. Ingen person har möjlighet att sätta sig in alla delar av projektet.
4
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Utvecklingsprocess typiskt tillvägangångsätt Krav
• Kravanalys - beskriv och validera vad systemet skall göra
Analys
• Analys - identifiera systemets struktur så att systemet är enkelt att modifiera om kraven förändras
Design
• Design - beskriv hur systemet skall realiseras
Implementation
Test previous
• Implementation - implementera systemet och utför enhetstester • Testning - verifiera systemet next
5
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Proceduren • Hitta potentiella aktörer – Namnge och gör kortfattad beskrivning av varje aktör – Begränsa systemet
• Sammanställ gloslista (så att vi kan enas om vokabulär) • För varje aktör: Hitta nödvändiga användningsfall – Namnge och gör kortfattad beskrivning av varje användningsfall
• Granska aktörer och användningsfall och iterera – Missade aktörer eller användningsfall? Duplikat?
• Identifiera gemensamma delar, strukturera modellen, iterera • Beskriv varje användningsfall • Granska beskrivningarna och iterera – Missad eller felaktig funktionalitet?
• Granska, validera och godkänn modellen previous
next
6
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Vad är (objektorienterad) analys? • Den tidiga fasen i systemutvecklingen då en abstrakt modell av systemet skapas, utan att gå in på detaljer i den tekniska implementationen • En modell av centrala objekt och relationer mellan objekten • Analysen utförs utan hänsyn till tekniska lösningar eller begränsningar • Syftet är att skapa en förståelse för den verksamhet systemet skall hantera • Används som grund för att i en designfas konstruera systemet i
detalj och välja teknisk lösning previous
next
7
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Analys: vanliga aktiviteter • Insamla underlag – kravspecifikationer, önskemål, beskrivningar av verksamheten eller befintligt system, intervjuver. Problemdomän definieras
• Definiera användningsfall – dvs hur systemet kommer användas
• Sök objektkandidater – tex mha CRC-kort eller annan brainstormingliknande teknik
• Klassificera objekt – klassnamn, ansvarsområde och eventuellt karaktäristiska attribut och metoder
• Relationer mellan objekt – mha klass- och objektdiagram
• Slutdokumentation av analysfasen – skrivbordstest där olika användningsfall gås igenom, relationer mellan klasser och objekt testas. Valda namn på klasser värderas. Dokumenteras mha grafiska diagram med kompletterande text.
previous
next
8
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Perspektiv • Konceptuellt – I detta perspektiv ritar man diagram över koncept i domänen. Dessa koncept avbildas ofta på klasser som implementerar dem, men ofta är så inte fallet. – En konceptuell modell ritas med liten eller ingen hänsyn till den mjukvara som skall användas vid implementationen
• Specifikations – I detta perspektiv tittar vi i första hand på gränssnitten för mjukvaran, inte implementationen. Vi tittar snarare på typer än klasser
• Implementations – I detta perspektiv har vi verkligen klasser och implementationen görs tydlig
previous
next
9
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Processen • bestäm strategi och mål med projektet • kalkylera kostnader
Påbörjande
konstruera systemet i en serie av iterationer
Utformande
• samla detaljerade krav och gör analys och design på en hög nivå för att konstruera en grundarkitektur och planera konstruktionen. • analysera risker (krav, teknik, skicklighet och politiska)
previous
next
Konstruktion
Överföring
testa, prestandaoptimera, träna användare
10
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Vattenfallsmodellen Traditionell idealiserad modell av utvecklingsprocessen Analys Design Implementation
Testning Underhåll
previous
next
11
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Boehms spiralmodell
previous
next
12
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Utvecklingsprocessen, olika konfigurationer Implementation
Kravanalys
Design
Implementation
Testning
Kravanalys Analys
previous
next
Design
Implementation
Testning
13
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Nyare (kontroversiell?) metod för systemutveckling • eXtreme Programming (XP), av Kent Beck, inne och hett • Tillvägagångsätt (12 grundpelare) • Planeringsspel
planera snabbt förutsättningarna för nästa release; prioritera, teknikkrav
• Små releaser
släpp nya versioner ofta
• Metafor
hitta en enkel bra metafor
• Enkel design
gör designen så enkel som möjligt
• Testa
next
två programmerare per maskin
• Kollektivt ägande av koden
alla äger och kan ändra i koden
• Kontinuerlig integration
integrera och bygg systemet flera gånger per dag
• 40-timmarsvecka
jobba som regel inte mer än 40 timmar per vecka
testa koden kontinuerligt. Måste lyckas innan utvecklingen går vidare
• Inkludera en "kund" i teamet
strukturera om ofta; ta bort onödig kod, förenkla osv
• Följ kodstandard
• Omstrukturera ("refactoring")
previous
• Parprogrammering
inkludera en "riktig användare" på full tid vilket förenklar kommunikation
14
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
UML (en kort introducerande översikt) • Unified Modeling Language • UML är de facto standard – används i bla • utvecklingsmetoder • designmönster
• Massor av litteratur – se tex "standardverken" av Booch, Rumbaugh och Jacobson • börja förslagsvis med "The Unified Modeling Language User's Guide"
previous
next
15
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Vi bryter ner systemet och ser på det på olika sätt Användningsfallsdiagram: Uppdatera konto
Sätt gränser
Chefsförhandlare
Analysera risker Prisförhandla
Handlare
aktör
previous
next
«uses» «uses»
Värdera
Slut avtal
«extends»
användningsfall
Redovisningssystem
Försäljare
Gränserna överskridna
16
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Klassdiagram (Enheter och relationer) multiplicitet
association
klassnamn Person name : String address : String
Company * employee
employer
name : String address : String
attribut
rollnamn
previous
next
17
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
...Klassdiagram (med arv, dvs bla specialiseringar och generaliseringar) *
Shape position : Point operationer
bounds() :Rectangle draw() : void extent() : Point
return new Rectangle(position, extent());
arv
Shape1
Shape2
extent : Point
extent : Point
draw() : void
draw() : void
metod/pseudokod
previous
next
ComposedShape
bounds() :Rectangle draw() : void
parts
aggregat
b = new Rectangle(); for all p in parts do b = b.merge(p.bounds()); return b;
18
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Sekvensdiagram (samarbete mellan delar)
previous
next
19
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Tillståndsdiagram:
previous
next
20
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Aktivitetsdiagram (beskriver parallella förlopp) Exempel: "Person::ordna dryck" [inget kaffe]
Hitta dryck
[kaffe hittat]
Kaffe i filtret
Häll i vatten
[ingen cola] [cola hittad]
Hämta koppar
Filtret i bryggaren
Hämta cola
Slå på bryggaren ^kaffepanna.slåPå
Brygg
slå av lampan Häll upp kaffe
previous
next
Drick 21
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Samarbetsdiagram
previous
next
22
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Hello world-exempel Javakod för en applet import java.awt.Graphics; class Hello extends java.applet.Applet { public void paint(Graphics g) { g.drawString(”Hallå!”, 10, 10); } }
previous
next
23
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
… Hello klassdiagram ... Hello paint()
previous
next
g.drawString(”Hallå!”, 10, 10);
24
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
… Hello ...
Applet
Hello paint()
previous
next
Graphics
25
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
… Hello ... Object Component
ImageObserver Container Panel Applet Hello
previous
next
26
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
… Hello paketering ...
java
Hello
applet awt lang
previous
next
27
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
… Hello sekvensdiagram ... :Thread
:Toolkit
:ComponentPeer
target:Hello
run run
callbackLoop
handleExpose
previous
next
paint
28
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
… Hello komponenter Hello.java
Hello.class Hello.html --------------------
previous
next
--------------------
Hello.jpg --------------------
29
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
OCTOPUS-metoden en översikt • Objektorienterad • Hanterar viktiga problem i realtidssystem som – – – – –
parallellitet synkronisering kommunikation avbrottshantering ASICs (Application-Specific Integrated Circuit), kundanpassad hårdvara på chip – hårdvarugränssnitt – responstider
• I huvudsak för icke hårda realtidssystem • Utgår från OMT och Fusion previous
next
30
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Olika faser, en översikt • Faser – systemkravfas • struktur via kontextdiagram • funktionalitet och dynamiskt beteende mha användingsfallsdiagram och användningsfall • kan kompletteras med scenarier
– systemarkitekturfas • systemstruktur via delsystemdiagram
– delsystem analysfas • görs för varje delsystem
– delsystem designfas – delsystem implementationsfas previous
next
31
Utvecklingsmetoder. Introduktion till OCTOPUS och UML
Utvecklingsprocessen: mjukvarusystem Systemkravsfas
Användningsfall och kontextdiagram
Systemarkitektur
Delssystem och gränssnitt
Delsystem
Delsystem
analys
analys
Delsystem
Delsystem
design
design
Delsystem
Delsystem
implementation
implementation
Delsystem program
previous
next
Delsystem program Systemprogram
Hårdvaruwrapper
Wrapper program
32
View more...
Comments