Kapittel 8: Praktiske metoder ved bruk av diagrammer
Kapittel 8: Praktiske metoder ved bruk av diagrammer
Kapittel 8: Praktiske metoder ved bruk av diagrammer
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