Témakörök Struktúrált fejlesztés
Szoftvertechnológia elıadás
Structured Analysis (SA)
A struktúrált elemzés módszertanát Tom Demarco 1979-ben foglalta össze 20 éves fejlıdési folyamat eredménye Adat- és vezérlésáramlást és tartalmat ír le Az elemzés során funkcionalitás és viselkedés szerint partícionáljuk a rendszert
Hátrányok (SA)
Tervezésre nagyon jól használható, de a követelmények feltárására és az implementációs fázis leírására majdhogynem alkalmatlan
Structured Analysis/Stuctured Design (SA/SD) Jackson Structured Programming (JSP) Jackson System Development (JSD) Data Structured Systems Development (DSSD)
Elınyök (SA)
Népszerő és könnyen érthetı Alkalmazható kis és nagy projektek esetében is Kiterjesztése (Ward és Mellor) beágyazott rendszerek elemzésére is alkalmas CASE eszközök is alkalmazzák
Alapfogalmak (SA)
Az elemzés eszköze az adatfolyam diagram (Data Flow Diagram – DFD)
Külsı egyed
Folyamat
Adatáramlás
Adattároló
A rendszer számára szolgáltat információt vagy a rendszer által elıállított információt használja Információ-transzformációt hajt végre Az információáramlás iránya (diszkrét) Tetszıleges tároló
1
Példa (beléptetı rendszer)
Elemzés folyamata
Folyamatos finomítás (különbözı szintekhez tartozó DFD-k elkészítése) A kezdeti (0. szintő) DFD egyetlen folyamatot tartalmaz, amit a további szinteken bontunk részekre
A DFD kiegészíthetı
Kijelzı eredmény
Konzol
minta
Ellenırzı
eredmény tárolt minta
Zár
Login adatok
Structured Design (SD)
A DFD kiterjesztése
A struktúrált tervezés módszertanát Larry Constantine és Edward Yourdon dolgozta ki (1979-ben publikálták) Jól alkalmazható, mert a problémák jelentıs hányada leírható információáramlásokkal Szintén DFD-ket használ
sütési idı
be/ki
Sütési idık
Lámpa
sütési idı
Hımérı
hımérséklet
pontos idı Óra
A rendszer tervezése során fontos az idıben állandó adatfolyam és a vezérlési információk áramlásának modellezése is Folyamatos adatfolyam Állandó adatáramlást reprezentál Folyamatvezérlı Az adat-transzformációs folyamatokat vezérli (aktivál/deaktivál) Vezérlési adat tároló Valamilyen puffertároló (általában a stack) Vezérlési adatfolyam Vezérlési információk áramlását mutatja Üzenet (Aktiváló/Indító/Megállító/Trigger) A folyamatvezérlık ezekkel vezérlik a folyamatokat
Jackson Structured Programming (JSP)
Példa (sütı) Konzol
Adatszótárral (Data Dictionary – DD) A rendszerben tárolt és mozgó adatok részletes leírása A folyamat szöveges leírásával (Process Specification – PSPEC) A folyamat lépései beszélt nyelven vagy matematikai formulákkal leírva
főtés Sütés
Sütı
sütési adatok
Kijelzı
Michael A. Jackson publikálta 1975-ben A bemenı és kimenı adatfolyamokra fókuszál A problémát hierarchikusan bontja részeire Az elemi utasításokat (adatokat) szekvencia, szelekció és iteráció segítségével építi komplex egységekké Bár már eljárt felette az idı, még mindig sok helyen használják (CASE-eszközök)
2
Példa (fizetési statisztika készítése)
A módszer A bemenı adatok leírása (Data Structure Diagram – DSD) A kimenı adatok leírása (DSD) Az input és output adatok közötti összefüggések meghatározása Adat-transzformációs algoritmusok leírása A diagramok összefésülése egyetlen programszerkezetbe (Program Structure Diagram – PSD) A program leírása pszeudokóddal
1. 2. 3. 4. 5.
6.
Példa (fizetési statisztika készítése)
Összegzés
Fizetési adat
Név
Beosztás
Nyomtatás
* Fizetési adat feldolgozás
Beosztás_2 … Programszerkezet
Beosztás_n
Szabályok
*
Statisztika
Fizetés
Bemenı adatok szerkezete
Beosztás_1
Fizetési stat.
*
Beosztás
Átlag fizetés
Kimenı adatok szerkezete
Jackson System Development (JSD)
Listázás
Elıkészítés
Fizetési lista
A valós világot kell modelleznünk a rendszer struktúrájának leírása helyett Egy idızített világ modellje is idızített kell legyen (események sorozata) A rendszer implementációja a specifikáció lépésenkénti transzformációja hatékony folyamatok halmazává
Michael A. Jackson és John Cameron publikálta (1983-ban) A JSP technikáira épít A módszer középpontjában az események állnak A módszer a kezdeti lépések során rendszer környezetére fókuszál (eltér a többi rendszertervezési módszertıl)
Lépések (eredeti) 1. 2. 3. 4. 5. 6.
Egyed/tevékenység lépés Kezdeti modell lépés Interaktív funkciós lépés Információs funkciós lépés Rendszeridızítéses lépés Rendszerimplementációs lépés
3
Fázisok (átdolgozott) Modellezı fázis (Analysis)
1.
1.
3.
2.
A valós világ szimulációja
Az egyedek és tevékenységek tulajdonságainak meghatározása Egyed-struktúra diagramok készłtése (JSP-szerinti struktúra diagram) Fontos a felhasználók és a fejlesztık közötti kommunikáció Megszorítások megfogalmazása a tevékenységek sorrendjéhez Struktúra diagram készítése
Implementációs fázis
A folyamatok szinkronizációja, megszorítások
Lsd. Irodalom
Egy idıpillanatban történik meg A rendszeren kívül történik Nem dekomponálható rész-tevékenységekké
Egyed-struktúra lépés
A rendszer fı funkciójának megfelelı mőveletek
Példa (Student Loan System)
Tevékenységet végez vagy valamilyen tevékenységet végeznek vele A valós világban is létezik Egyedi
Az egyedek által végzett tevékenységek és azok idıbeli sorrendjének meghatározása
Rendszeridızítéses lépés
Kezdeti modell lépés Funkciós lépés
A rendszer egyedeinek meghatározása (minden olyan objektum, amely fontos a rendszer számára)
Implementációs lépés
Folyamatok és a közöttük végbemenı kommunikáció leírása (System Specification Diagram – SSD, más néven Network Diagram) A rendszer feladatának meghatározása Minden egyed folyamatként vagy programként jelenik meg a diagramon (ezek tartják naprakészen az egyedeket) A külsı programokat késıbb adjuk a diagramhoz (ezek állítják elı a bemeneti adatokat és számítják ki a kimeneti adatokat) A diagrammot kiegészítjük az adatok és a folyamatok közötti kapcsolatok leírásával
2.
Kezdeti modell lépés Funkciós lépés Rendszeridızítéses lépés
Hálózati fázis
Egyed/tevékenység lépés
Egyed/tevékenység lépés Egyed-struktúra lépés
Implementációs fázis (Realisation)
3.
1.
Hálózati fázis (Design)
2.
Modellezı fázis
A hálózati modell transzformációja szoftverrendszerré A transzformációt a rendszerimplementációs diagram (System Implementation Diagram) írja le Az implementáció fı problémája az optimalizáció (folyamatok számának csökkentése)
Példa (Könyvtár) Modellezı fázis
Egyedek:
Tag (Kölcsönzı személy) Könyv
Tevékenységek:
Vásárlás – a könyvtár vásárol egy könyvet Katalogizálás – a könyvtár katalogizál egy könyvet Belépés – egy új tag beiratkozása a könyvtárba Kilépés – tagsági viszony megszüntetése Kivitel – egy tag egy könyvet kölcsönöz Visszahozatal – egy tag visszahoz egy kölcsönzött könyvet Eladás – a könyvtár elad egy könyvet
4
Példa (Könyvtár) Tulajdonságok
Tag
Példa (Könyvtár) Egyed-struktúra diagram (Tag)
TagAzonosító Név Lakcím
Könyv
TagAzonosító Név Lakcím Dátum
KönyvAzonosító Szerzı Cím ISBN
Kilépés TagAzonosító Dátum
KönyvAzonosító Dátum
Visszahozatal KönyvAzonosító Dátum TagAzonosító
Katalogizálás
KönyvAzonosító Csoport
Tagság
Kilépés
Tevékenységek
KönyvAzonosító Dátum TagAzonosító
Vásárlás
Belépés
Kivitel
Egyed
Tag
Belépés
Kölcsönzés
*
Eladás KönyvAzonosító Dátum Ár
Kivitel
Visszahozatal
Más
Sorrend
Példa (Könyvtár) Hálózati fázis (SSD) T
Tag
Data Structured Systems Development (DSSD) K
Könyv Többszörös multiplicitás
Tag adatok SV
Állapot lekérdezés
Könyv adatok
SV
Kivitel
Kö
Kölcsönzési adatok
Warnier-Orr diagram
Hierarchia A legalapvetıbb szerkezet, az adatok/folyamatok felépítését mutatja
A lépések egymás utáni végrehajtása (folyamat) Rekord jellegő konstrukció (adat)
Ismétlés
Warnier-Orr diagram (kiegészítés)
Ciklus (folyamat) Szekvenciális adathalmaz, pl. fájl (adat)
Alternáció
Konkurencia Akkor használjuk, amikor egy szekvencia esetén nem lényeges a sorrendiség
Szekvencia
Jean-Dominique Warnier és Keneth Orr publikálta Másnéven Warnier-Orr módszer A módszer fıként az output adatokra fókuszál Adatszerkezetek és folyamatok leírására egyaránt alkalmas diagram
Rekúrzió Az adat/folyamat tartalmazza önmaga valamely korábbi változatát
Elágazás (folyamat) Variáns rekord (adat)
5
Példa (adat)
Példa (folyamat) Ellenırzés
Fejléc Név Lakcím
Megrendelés feldolgozás
(0, 1)
Vásárló adatok
Adatok
Vásárló rekord
(1, N)
Elérhetıség
(1, N)
Megrendelt termék ellenırzése
Termék raktáron?
Rögzítés
Megrendelés nyomtatás
Telefon (0, 1) Hitelkártya
Irodalom
http://www.engin.umd.umich.edu/CIS/course.des/cis375/lec2/ week/wk8/wk8.html Structured Analysis & Structured Design
Data Structured Systems Development / Warnier-Orr diagram
http://www.wikipedia.org/ http://varatek.com/warnierorr.html
Jackson Structured Programming
Szoftver tervezés és technológia tantárgy anyaga http://www.informatics.bangor.ac.uk/~dewi/modules/rts/YSM_slid es.pdf
Irodalom
Szoftver tervezés és technológia tantárgy anyaga http://www.wikipedia.org
Jackson System Development
http://www.wikipedia.org
http://cisx2.uma.maine.edu/NickTemp/JSP&JSDLec/JSDT utorialStudentLoanAbbrev.htm
6