Utvecklingsmetoder. Introduktion till OCTOPUS och UML … Hello

January 8, 2018 | Author: Anonymous | Category: Engineering & Technology, Datavetenskap, Java Programming
Share Embed Donate


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

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF