13.10.2013 Views

Kapittel 8: Praktiske metoder ved bruk av diagrammer

Kapittel 8: Praktiske metoder ved bruk av diagrammer

Kapittel 8: Praktiske metoder ved bruk av diagrammer

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Forelesningsnotat<br />

<strong>Kapittel</strong> 8<br />

Practical Diagramming Methods<br />

<strong>Praktiske</strong> diagram-<strong>metoder</strong><br />

• Strukturerte dataflyt diagram<br />

UML diagram<br />

Utvidelser og variasjoner<br />

1<br />

2<br />

1


<strong>Praktiske</strong> diagram-<strong>metoder</strong><br />

Metoder som støttes <strong>av</strong> de fleste CASE-tools:<br />

Strukturerte (dataflyt) <strong>metoder</strong><br />

Yourdon<br />

Specification and Description Language (SDL)<br />

Objektorienterte <strong>metoder</strong><br />

Unified Modelling Language (UML)<br />

Strukturerte dataflyt-diagram – Context diagram<br />

Viser sammenhandling mellom et system og dets miljø<br />

Innhold<br />

En sentral sirkel som representerer systemet<br />

Eksterne enheter som systemet jobber mot<br />

Dataflyt inn til og ut fra systemet<br />

External<br />

item 1<br />

External<br />

item 2<br />

Data 1 in<br />

Data 2 in<br />

The system<br />

software<br />

(a) Basic context diagram<br />

Data 3 out<br />

Data 4 out<br />

External<br />

item 3<br />

External<br />

item 4<br />

3<br />

4<br />

2


Strukturerte dataflyt-diagram – Entity relationship diagram<br />

Oversikt over fysiske deler i systemet og samhandling mellom disse<br />

Begrenset nytte i sanntidssystemer, bedre egnet for database design<br />

Control<br />

panel<br />

Flight deck<br />

temperature<br />

sensor<br />

Relationship Entity<br />

Diagram symbols<br />

Control<br />

data<br />

Cockpit<br />

temp.<br />

Control<br />

Controller Motor<br />

signals<br />

Monitoring<br />

signals<br />

Shaft<br />

position<br />

Position<br />

sensor<br />

Strukturerte dataflyt-diagram – State transition diagrams<br />

Viser overgang mellom forskjellige tilstander i systemet<br />

Innhold<br />

Nåværende og neste tilstand<br />

Hendelser som medfører tilstandstransisjon<br />

Konsekvenser <strong>av</strong> tilstandstransisjon<br />

State<br />

1<br />

Event 1<br />

Response 1<br />

Event 2<br />

Response 2<br />

State<br />

2<br />

5<br />

6<br />

3


Strukturerte dataflyt-diagram – Sanntids dataflytdiagram<br />

Viser dataflyten mellom de forskjellige prosesser i systemet<br />

Hver prosess (data tranformasjon, DT) representeres med sirkel<br />

Sier ingenting om tidspunkt for utførelse<br />

Antar at en DT utføres når alle data er tilgjengelig<br />

Alle DT’er kan kjøres samtidig<br />

Data 1<br />

Data 2<br />

DT 1<br />

DT 2<br />

Data A<br />

Data B<br />

Data C<br />

DT 3<br />

Data D<br />

DT 4<br />

Data 3<br />

Strukturerte dataflyt diagram – Message sequence diagram<br />

Beskriver tidsforløp for transaksjon <strong>av</strong> meldinger i systemet<br />

T 0<br />

T 1<br />

T 2<br />

T 3<br />

T 4<br />

Processing<br />

Send message<br />

Processing<br />

Message arrival<br />

Task 1 Task 2<br />

Processing<br />

Message arrival<br />

Send ack<br />

Processing<br />

7<br />

8<br />

4


Structure charts<br />

Beskriver hele koblingen mellom spesifikasjon og kildekode<br />

Jackson<br />

Yourdon<br />

Program description language - Structured text<br />

Viser strukturen på kildekode<br />

Like <strong>metoder</strong>, men forskjellig notasjon<br />

Structure charts – grunnleggende struktur<br />

Top level<br />

2nd level<br />

3rd level<br />

4th level<br />

Measure<br />

engine<br />

parameters<br />

Read<br />

Pr,N 1 ,P 3 and<br />

Fa 10 times<br />

node<br />

Run gas turbine control system<br />

(fuel control section)<br />

Compute<br />

required<br />

fuelling<br />

Calculate<br />

fuel<br />

schedules<br />

root<br />

Compare<br />

required engine<br />

fuelling with<br />

schedules<br />

Branch<br />

Compute and send<br />

out actual fuel<br />

command<br />

A<br />

Output<br />

calculated fuel<br />

command<br />

Set fuel output<br />

on result of<br />

comparison<br />

Do either A<br />

or B<br />

B<br />

output fuel<br />

schedule limit<br />

9<br />

10<br />

5


Yourdon structure charts – syntaks og notasjon<br />

B<br />

Pressure<br />

Fuel<br />

flow<br />

A<br />

Modules<br />

Speed<br />

Normal<br />

Control couple<br />

Data couple<br />

Yourdon structure charts – syntaks og notasjon<br />

Output<br />

calculated fuel<br />

command<br />

SELECTION ITERATION<br />

Set fuel output<br />

Output fuel<br />

schedule limit<br />

Measure engine<br />

parameters<br />

C<br />

A<br />

B C<br />

D E<br />

Common modules<br />

Do<br />

FFT<br />

Library<br />

modules<br />

11<br />

12<br />

6


Yourdon structure charts – eksempel<br />

Pr<br />

Get<br />

Pr<br />

Pr<br />

N1<br />

P3Fa<br />

N1<br />

Measure<br />

engine<br />

parameters<br />

Get<br />

N1<br />

P3<br />

Get<br />

P3<br />

Fa<br />

Get<br />

Fa<br />

Run gas turbine control system<br />

(fuel control section)<br />

P3 Fa<br />

LL HL Fr<br />

Compute fuel<br />

schedules<br />

Low limit (LL)<br />

High limit (HL)<br />

HL LL Fr L H<br />

Compare required<br />

engine fuelling<br />

with schedules<br />

N1<br />

Compute and<br />

send out actual<br />

output fuel<br />

command<br />

Output<br />

calculated fuel<br />

command<br />

Nr<br />

HL LL<br />

Fc<br />

Fr<br />

Set fuel output on<br />

result of<br />

comparison<br />

Compute<br />

required<br />

fueling<br />

Fc LL HL<br />

Strukturerte dataflyt diagram – SDL process diagram<br />

SDL – Specification and Description Language<br />

Opprinnelig laget for telekommunikasjonssystem<br />

Output fuel<br />

schedule limit<br />

Viser både dynamikk og dataprosessering mellom aktiviteter<br />

Signaler (meldinger) mellom aktiviteter<br />

Tilstandsendringer som følge <strong>av</strong> meldinger<br />

Kombinasjon <strong>av</strong> state transition og message sequence<br />

13<br />

14<br />

7


Strukturerte dataflyt diagram – Event response list<br />

Liste som viser hvordan enheter reagerer på eksterne hendelser<br />

Enheter kan være funksjoner i kode, aktiviteter, nettverksnoder<br />

eller komplette systemer<br />

Innhold<br />

Kilde<br />

Input hendelse<br />

Prosessering <strong>av</strong> input<br />

Output respons<br />

Destinasjon <strong>av</strong> output<br />

UML diagram<br />

UML – Unified Modelling Language<br />

Benyttes for objektorientert (OO) design<br />

De facto standard for industri<br />

15<br />

16<br />

8


UML – Use case diagram<br />

Består <strong>av</strong> aktører, use cases og use case beskrivelser<br />

Viser hvordan og hvorfor et system benyttes<br />

Hvert system har egen modell, der aktører beskriver <strong>bruk</strong>ere (roller)<br />

N<strong>av</strong>igator<br />

Pilot<br />

UML – Use case diagram<br />

Air data system<br />

Set airfield<br />

altitude<br />

Aktører<br />

Beskriver ikke spesifikke <strong>bruk</strong>ere, men deres roller<br />

Direkte aktører påvirker selve programvaren (tastatur, display)<br />

Indirekte aktører påvirker gjennom systemenheter (<strong>bruk</strong>ere)<br />

N<strong>av</strong>igator<br />

Air data system<br />

Set airfield<br />

altitude<br />

Keypad<br />

Display<br />

Air data system<br />

Set airfield<br />

altitude<br />

17<br />

18<br />

9


Use case diagram – Use case beskrivelser<br />

Initial view<br />

N<strong>av</strong>igatør legger<br />

inn nye data for<br />

flyplass høyde.<br />

Dette vises på<br />

pilotens display<br />

Use case diagram – Scenario<br />

Expanded view<br />

1. N<strong>av</strong>igatør legger inn<br />

høyde data<br />

2. Systemet sjekker data<br />

3. Nye verdier presenteres<br />

for n<strong>av</strong>igatør<br />

4. N<strong>av</strong>igatør bekrefter data<br />

5. Nye verdier presenteres<br />

for pilot<br />

Spesiell rekkefølge <strong>av</strong> hendelser og aksjoner<br />

Beskriver spesialtilfeller som kan oppstå i programmet<br />

Normal kjøring <strong>av</strong> systemet<br />

Feil som kan håndteres <strong>av</strong> data med nye aksjoner<br />

Feil som ikke kan håndteres<br />

Worst-case scenario er viktigere enn happy-day scenario<br />

19<br />

20<br />

10


Use case diagram – Scenario<br />

Happy-day scenario: Alt fungerer som forventet<br />

Scenario 1 - Normal kjøring<br />

Start<br />

1. N<strong>av</strong>igatør legger inn høyde data<br />

2. Systemet sjekker data<br />

3. Nye verdier presenteres for n<strong>av</strong>igatør<br />

4. N<strong>av</strong>igatør bekrefter data<br />

5. Nye verdier presenteres for pilot<br />

Slutt<br />

Use case diagram – Scenario<br />

Worst-case scenario: Feil i innleste data<br />

Scenario 2 - Invalide data<br />

Start<br />

1. N<strong>av</strong>igatør legger inn høyde data<br />

2. Systemet sjekker data<br />

2.1 System <strong>av</strong>viser data<br />

2.2 System ber om nye data<br />

2.3 Gå til 1<br />

3. Nye verdier presenteres for n<strong>av</strong>igatør<br />

4. N<strong>av</strong>igatør bekrefter data<br />

5. Nye verdier presenteres for pilot<br />

Slutt<br />

21<br />

22<br />

11


Use case diagram - nivå<br />

Benytter ”include” og ”extend” for å oppnå flere nivå i systemet<br />

Set airfield<br />

altitude<br />

Set autopilot<br />

mode<br />

<br />

<br />

UML – Deployment diagram<br />

Check alarm<br />

status<br />

Validate data<br />

range<br />

<br />

Modellerer fysiske aspekter (arkitektur) <strong>ved</strong> et system<br />

Set alarm<br />

limits<br />

Node: fysisk objekt som representerer en ”prosesserende” ressurs.<br />

Inkluderer både dataenheter, menneskelige og mekaniske ressurser<br />

Lift node 1 Lift node 2<br />

Landing<br />

node 1<br />

Lift network<br />

Landing<br />

node 2<br />

Radio<br />

comms<br />

network<br />

Landing<br />

node 3<br />

Landing network<br />

Landing<br />

node 4<br />

23<br />

24<br />

12


UML – Package diagram<br />

Package: ”Beholder” for andre enheter<br />

Objekter, klasser, sub-packages<br />

Oxygen plant<br />

(a) Package<br />

symbol<br />

UML – Package diagram<br />

Oxygen plant<br />

Pressure<br />

controller<br />

Temperature<br />

controller<br />

Alarm and<br />

protection<br />

(b) Package containing packages<br />

Dependencies: Avhengighet mellom packages<br />

Import – data<strong>av</strong>hengighet<br />

Aksess – tillatelse for tilgang<br />

25<br />

26<br />

13


UML – Class diagram<br />

Viser klasser i et system og sammenhengen mellom disse<br />

Klasser beskrives <strong>av</strong> n<strong>av</strong>n, attributter og synlige funksjoner<br />

SpeedSensor<br />

WheelSpeed<br />

Accelleration<br />

GetWheelSpeed()<br />

GetAccelleration()<br />

UML – Class diagram<br />

N<strong>av</strong>n<br />

Attributter<br />

Funksjoner<br />

Assosiasjoner mellom klasser beskrives med piler<br />

N<strong>av</strong>n på assosiasjon beskriver assosiasjonens natur<br />

Nummerering viser hvor mange instanser som opprettes<br />

Nummerering notasjon: minimum .. maksimum<br />

0 .. 2: Minimum ingen, maksimum 2 instanser<br />

1 .. 3: Minimum 1, maksimum 3 instanser<br />

n: Nøyaktig n instanser<br />

2 .. *: Minimum 2, maksimum ubegrenset<br />

27<br />

28<br />

14


UML – Class diagram<br />

SystemManager<br />

WheelSpeeds<br />

ServoPositions<br />

UML – Class diagram<br />

manages<br />

1 4<br />

manages<br />

1 4<br />

Arv: Superklasser arves <strong>av</strong> sub-klasser<br />

Piler viser arverekkefølgen<br />

Sensor<br />

SpeedSensor<br />

WheelSpeed<br />

GetWheelSpeed()<br />

ServoUnit<br />

ServoPosition<br />

SetServoPosition()<br />

Speed Height Attitude<br />

Digital Analogue E-M Gyro Laser Gyro<br />

29<br />

30<br />

15


UML – Class diagram<br />

Aggregation: Gruppering <strong>av</strong> objekter som samarbeider i en enhet<br />

GeneratingSet<br />

1 1<br />

1<br />

PowerUnit GeneratingUnit<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

StarterMotor FuelValve Engine Generator ControlUnit<br />

UML – Object collaboration diagram<br />

Viser objekter i et system og deres samhandling<br />

Kobling mellom objekter indikeres med linker<br />

Meldinger indikeres med n<strong>av</strong>n<br />

Pil angir retning på signaler<br />

Nummerering angir rekkefølge<br />

HallController : BeltController<br />

2: Start<br />

3: Stop<br />

1: Start<br />

4: Stop<br />

InputConveyorBelt : ConveyorBelt<br />

OutputConveyorBelt : ConveyorBelt<br />

31<br />

32<br />

16


UML - Statecharts<br />

State transition diagram: Viser tilstander og overganger mellom disse<br />

Overgang <strong>av</strong>henger <strong>av</strong> event (E) og guard (G)<br />

Dersom E skjer, følger tilstandsovergang dersom G er sann<br />

State 1<br />

State 2<br />

UML - Statecharts<br />

Event<br />

E [G] / A<br />

Condition (guard)<br />

Action<br />

Tilstands<strong>diagrammer</strong> kan innholde nivå – fjerner kompleksitet<br />

En tilstand kan ha flere undertilstander<br />

Top level<br />

Standby<br />

Starting<br />

Running<br />

Starting state<br />

Checking<br />

interlocks<br />

Priming<br />

fuel system<br />

Accelerate<br />

Ignite fuel<br />

33<br />

34<br />

17


UML - Statecharts<br />

Sammenløpende tilstander<br />

Signaler kan påvirke flere komponenter samtidig - synkronisering<br />

Off<br />

UML notasjon<br />

Fuel/air valve<br />

Isolate<br />

On<br />

Air feed<br />

Fuel<br />

IPN feed<br />

IPN pump<br />

Stopped<br />

On Off<br />

Running<br />

Definerer aksjoner som atomiske og ikke-<strong>av</strong>brytbare<br />

Basert på Mealy og Moore<br />

35<br />

36<br />

18


UML – sequence diagram<br />

Viser samhandling mellom objekter over tid<br />

Når og hvor meldinger sendes, samt tidsforløp<br />

Tilsvarer strukturerte message sequence-diagram, men<br />

Skiller mellom concurrent og sekvensielle operasjoner<br />

Benytter forskjellige piler for forskjellige meldingstyper<br />

T 0<br />

T 1<br />

UML – Activity diagram<br />

Kombinasjon <strong>av</strong> flytskjema og<br />

tilstandsmaskiner<br />

Flat flow of control<br />

Viser sekvensielle og sammenløpende<br />

aktiviteter i systemet, samt signalisering<br />

mellom aktiviteter<br />

Nested flow of control<br />

Procedure return (optional)<br />

Time elapses during messaging<br />

37<br />

38<br />

19


UML – Component diagram<br />

Viser struktur i kode og system<br />

Komponenter i programvare<br />

Avhengigheter og grensesnitt<br />

Pil indikerer <strong>av</strong>hengighet<br />

Sirkel indikerer grensesnitt<br />

Utvidelser og variasjoner<br />

PID<br />

controller<br />

Control law<br />

algorithms<br />

System configuration diagram<br />

Oversikt over fysiske komponenter i systemet<br />

System architecture diagram<br />

Oversikt over koblinger mellom funksjonelle enheter i systemet<br />

Effektivt i distribuerte system med buss-koblinger<br />

System scope diagram<br />

Utvidet context diagram for å vise <strong>bruk</strong>ere i systemet<br />

Node architecture diagram<br />

Viser node-elementer som foretar utregning og kommunikasjon<br />

Benyttes bare <strong>ved</strong> komplekse noder<br />

39<br />

40<br />

20


Utvidelser og variasjoner<br />

Processor architecture diagram<br />

Detaljert oversikt over maskinvare i hver prosessorenhet<br />

Tasking diagram<br />

Viser aktivitet struktur og kommunikasjonskomponenter<br />

Benyttes i multitasking systemer<br />

Memory map diagram<br />

Viser oversikt over plassering <strong>av</strong> programvare i minne<br />

Unngår minnekonflikter med fysiske komponenter<br />

Komponenter i programvare plasseres i rett minne<br />

41<br />

21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!