Prosessmodellering Strukturert design med dataflytdiagrammer (DFD) Gurholt & Hasle Kapittel 10 Kirsten Ribu Høgskolen i Oslo 1
Perspektiver på modellering De strukturerte metodene SA/SD sammen med datamodellering var lenge den mest brukte måten å modellere datasystemer på. Objektorienterte språk vokste fram med Simula67, og senere Smalltalk, C++, Java. På slutten av 80-tallet dukket de første variantene av objektorienterte modelleringsmetoder fram, OOA/OOD. UML er mye brukt i dag sammen med OO progrmmering Dataflytdiagrammer modellerer dataflyt, filer, prosesser og dataelementer 2
Et dataflytdiagram 3
Prosessmodellering med DFD Det finnes to sett av diagramsymboler for DFD, hvert sett inneholder 4 symboler 4
Diagrammene - historikk Det sentrale verktøyet ved design av data-flyt er dataflyt-diagrammet (DFD) Dets historie går tilbake til Paris i 1920, hvor en rasjonaliseringsekspert skulle beskrive dokumentflyten mellom de ulike arbeidsbord i et stort kontorrom. Den utgave av dataflyt-diagrammet som beskrives her er utviklet av Tom demarco. Den andre hovedvarianten av DFD er utviklet av Chris Gane og Trish Sarson. Det som skiller de to metodene er stort sett den grafiske notasjonen. Tankegangen og prinsippene er de samme. 5
Symbolene Prosess. Beskriver en behandling eller transformering av data Dataflyt. Beskriver data som flyter til eller fra en prosess. Data-lager. Beskriver et sted hvor data lagres over lengre tid. For eks en fil, arkiv, databasetabell, etc. Ekstern entitet. Kilder eller mottaker av data som befinner seg utenfor det systemet som beskrives. 6
Prosesser og lagre Prosesser viser hva systemet kan gjøre. En prosess beskriver en system-funksjon. DeMarco bruker av og til ordet boble om en prosess. Derfor forekommer også begrepet boblediagram. Prosessen har et unikt navn og et nummer (identifikasjon). Datalager er oppbevaringsplass for data. Prosesser kan hente data fra datalager (lese) og legge data på lageret (skrive). Datalageret har et unikt navn. Datalager er passive elementer i diagrammet. 7
Dataflyt Dataflyt beskriver de dataelementer som behandles i systemet. Pil-retningen viser hvilken vei dataene flyter, og pilene må gis et unikt og beskrivende navn. Dataflyt kan forekomme mellom prosesser mellom prosess og datalager mellom prosess og ekstern entitet. 8
Ekstern entitet Ekstern entitet representerer kilde eller mottaker av data som ligger utenfor systemet. Den eksterne entiteten er utenfor det vi ønsker å modellere. I en bedriftsmodell kan det være kunder eller leverandører Det kan også være andre avdelinger i en bedrift dersom disse ligger utenfor systemet 9
Eksempel: Nivå 1 The first level DFD shows the main processes within the system. Each of these processes can be broken into further processes until you reach pseudocode. 10
MERK! Dataflyt-diagrammet viser ikke rekkefølge av det som skjer, heller ikke betingelser for at noe kan utføres. (Jfr use case modellen). Et DFD er en modell av dataflyten, og ingenting annet. Alt som vises på dataflytdiagrammet kan i prinsippet skje parallelt. En vanlig nybegynnerfeil når man skal tegne et DFD er å forveksle data-flyt med kontroll-flyt. Et dataflytdiagram hvor hele systemet beskrives som en prosess (øverste nivå) kalles et kontekst-diagram. 11
Prosessmodellering (1) En prosess (funksjon) er arbeidet eller hendelsene som utføres på data på en slik måte at de endres, lagres eller distribueres Når en prosess modelleres spiller det ingen rolle om prosessen utføres manuelt eller av en datamaskin En prosess manipulerer, lagrer og distribuerer data mellom et system og omgivelsene samt mellom komponenter innen et system Et datalager kan inneholde data om kunder, studenter eller leverandørfakturaer 12
Eksempel informasjonsflyt internt hva brukeren gjør, ikke hvordan eller tekniske detaljer (jfr use case) Kommunikasjonsmiddel kan brukes overfor kunden 13
Prosessmodellering (2) En dataflyt kan best forstås som data i bevegelse fra en plass i systemet til en annen en dataflyt kan representere data om en kundes ordre eller lønnsslippen til en ansatt kan også representere resultatet av en forespørsel til en database, innholdet i en rapport eller data i et datafelt på et skjermbilde en dataflyt kan være sammensatt av mange individuelle datadeler som genereres på samme tid og flyttes samtidig til et felles bestemmelsessted 14
Prosessmodellering (3) En datakilde (source) eller et databestemmelsessted (sink) er opprinnelsen og/eller bestemmelsesstedet for data kalles også eksterne entiteter fordi de ligger utenfor systemet og definerer dermed grensene for systemet data kommer alltid inn fra en eller flere kilder systemet må produsere informasjon til ett eller flere bestemmelsessted 15
These diagrams show a group of related sets: Context Diagram: This is the highest level and represents the overall system and its interaction with its environment Level 0 Diagram: This shows the major subsystems and their interactions Level x Diagram: Shows the processes that make up each of the major subsystems Level x.y Diagram: Shows detail of the above diagrams 16
Nivåer (1) 17
Nivåer (2) 18
Diagrammer Kontekstdiagram: En oversikt over systemet som viser grenser, eksterne entiteter som samhandler med systemet og hovedinformasjonen som flyter mellom de eksterne entitetene og systemet 19
Kontekstdiagram 20
Kontekstdiagram notasjon 2 Kontekstdiagram for et ordresystem 21
Nivå-0-diagram: Et dataflytdiagram som representerer systemets hovedprosesser, dataflyt, datalagre og eksterne entiteter på et høyt detaljeringsnivå 22
Et dataflytdiagram nivå 0 Notasjon 2 23
Nivå 0 eksempel Nivå-0-diagram for et ordresystem 24
Dekomponering (1) En prosess kan deles opp i flere sub-prosesser. Dette angis i dataflytdiagrammet ved nummereringsregler. Dersom prosess 3 deles i 2 sub-prosesser, vil disse få numrene 3.1 og 3.2. Hvis prosess 3.2 igjen deles opp i 4 sub-prosesser, vil disse nummereres som henholdsvis 3.2.1, 3.2.2, 3.2.3 og 3.2.4. Vi beveger oss mot stadig lavere detaljeringsnivå. På øverste nivå (nivå 0) har vi kontekstdiagrammet. På neste nivå vil prosessene nummereres fra 1 og oppover. Nivået under der vil ha 2 komponenter i prosessnummeret (1.1, 1.2,..) osv. 25
Dekomponering (2) Funksjonell dekomponering En iterativ prosess der beskrivelsen av et system brytes ned slik at hvert nivå blir mer detaljert enn det foregående Nivå-n-diagram Et dataflytdiagram som er resultatet av n dekomponeringer av en prosess i et nivå-0-diagram viser ikke eksterne entiteter (datakilder/databestemmelsessteder) Hver prosess skal dekomponeres inntil de består av enkeltstående funksjoner Hvert nivå-n-diagram skal lages på atskilte sider 26
Dekomponering - eksempel Nivå-1-diagram som viser dekomponering av prosess 1.0 fra ordresystemet 27
Dekomponering i flere nivå (Kilde: I.T. Hawryszkiewycz: Introduction to Systems Analysis and Design, Prentice Hall, 1994). 28
Tommelfingerregler 1. COMPUTE SALES TAX The processes should be numbered in order to conveniently reference them in the DFD. A process is named or described with a single word, phrase, or simple sentence. The process name should describe what the process does. A good name will generally consist of a verb-object phrase such as COMPUTE TAX RATE. 29
Flyten CUSTOMER INQUIRY The flow is represented graphically by an arrow into or out of a process (Figure 2). The flow is used to describe the movement of chunks, or packets of information from one part of the system to another part. The flows represent data in motion. CUSTOMER INQUIRY The flows show direction: an arrowhead at either end of the flow or possibly at both ends indicates whether data is moving into or out of a process or both. 30
Input og output Ordre PROCESS ORDER Input flyt GENERATE INVOICE REPORT Faktura Output flyt 31
Eksempel ORDER DETAILS ORDER ORDER 1. ENTER ORDERS ORDERS 2. RESPOND TO INQUIRY INQUIRY ACKNOWLEDGMENT RESPONS E A flow from a store is normally interpreted as a read or an access to information in a data store. The data store is not changed when a packet of information moves from the store along the flow. A flow to a store is normally described as a write, an update, or possibly 32 a delete. The data store is changed as a result of the flow entering the store.
Typisk DFD for et lite system ORDRE Fakturaer Kunder 33
Viktig: Konsistens Det må være konsistens mellom nivåene Data må ikke forsvinne på veien 34
35
36
37
38
39
Neste gang Etikk i Cyberspace Lover og regler 40