Témakörök Struktúrált fejlesztés Szoftvertechnológia előadás Structured Analysis/Stuctured Design (SA/SD) Jackson Structured Programming (JSP) Jackson System Development e e (JSD) Data Structured Systems Development (DSSD) 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 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 e e elemzésére e e is alkalmas CASE eszközök is alkalmazzák 1
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 Alapfogalmak (SA) Az elemzés eszköze az adatfolyam diagram (Data Flow Diagram DFD) Külső egyed A rendszer számára szolgáltat információt vagy a rendszer által előállított információt használja Folyamat Információ-transzformációt hajt végre Adatáramlás Az információáramlás iránya (diszkrét) Adattároló Tetszőleges tároló Példa (beléptető rendszer) Elemzés folyamata eredmény Kijelző 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 Konzol minta Ellenőrző tárolt minta Login adatok eredmény Zár A DFD kiegészíthető 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 2
Structured Design (SD) 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 A DFD kiterjesztése A rendszer tervezése során fontos az időben állandó adatfolyam és a vezérlési információk ió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 Példa (sütő) Jackson Structured Programming (JSP) Konzol Hőmérő Óra sütési idő hőmérséklet pontos idő Sütési idők be/ki Lámpa sütési idő fűtés Sütés Sütő sütési adatok Kijelző Michael A Jackson publikálta 1975-ben 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) 3
A módszer 1. A bemenő adatok leírása (Data Structure Diagram DSD) 2. A kimenő adatok leírása (DSD) 3. Az input és output adatok közötti összefüggések meghatározása 4. Adat-transzformációs algoritmusok leírása 5. A diagramok összefésülése egyetlen programszerkezetbe (Program Structure Diagram PSD) 6. A program leírása pszeudokóddal Példa (fizetési statisztika készítése) Fizetési lista Fizetési adat * Bemenő adatok szerkezete Fizetési stat. Statisztika Név Beosztás Fizetés Beosztás Átlag fizetés Kimenő adatok szerkezete * Példa (fizetési statisztika készítése) Előkészítés Listázás Összegzés * Fizetési i adat feldolgozás Programszerkezet Nyomtatás Beosztás_1 Beosztás_2 Beosztás_n Jackson System Development (JSD) Michael A Jackson és John Cameron 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) 4
Szabályok 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á Lépések (eredeti) 1. Egyed/tevékenység lépés 2. Kezdeti modell lépés 3. Interaktív funkciós lépés 4. Információs funkciós lépés 5. Rendszeridőzítéses lépés 6. Rendszerimplementációs lépés A továbbfejlesztés során a lépéseket fázisokká összevonták. Fázisok (átdolgozott) 1. Modellező fázis (Analysis) Egyed/tevékenység lépés Egyed-struktúra lépés 2. Hálózati fázis (Design) Kezdeti modell lépés Funkciós lépés Rendszeridőzítéses lépés 3. Implementációs fázis (Realisation) Implementációs lépés Modellező fázis 1. Egyed/tevékenység lépés A rendszer egyedeinek meghatározása (minden olyan objektum, amely fontos a rendszer számára) 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 Egy időpillanatban történik meg A rendszeren kívül történik Nem dekomponálható rész-tevékenységekké 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ó 5
2. Egyed-struktúra lépés Megszorítások megfogalmazása a tevékenységek sorrendjéhez Struktúra diagram készítése Egyed-Struktúra Diagram (Entity Structure Diagram ESD) Ábrázolja az egyes egyedek által időrendben db végrehajtott tt tevékenységeket é k t Ismerős a JSP-ből Entity Entity Entity Action Action Action Action Action * Szekvencia Szelekció Iteráció Hálózati fázis 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 1. Kezdeti modell lépés A valós világ szimulációja 2. Funkciós lépés A rendszer fő funkciójának megfelelő műveletek 3. Rendszeridőzítéses lépés A folyamatok szinkronizációja, megszorítások Hálózat Diagram (Network Diagram ND) A folyamatok közötti interakciókat ábrázolja Process Process Process Process a rendszer egyik funkcióját reprezentálja D SV Process Process DataStream State Vector 6
Implementációs 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 (Student Loan System) Lsd. Irodalom 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 Példa (Könyvtár) Tulajdonságok Tag TagAzonosító Név Lakcím Könyv Szerző Cím ISBN Vásárlás Katalogizálás Csoport 7
Belépés TagAzonosító Név Lakcím Kilépés TagAzonosító Kivitel TagAzonosító Visszahozatal TagAzonosító Példa (Könyvtár) Egyed-struktúra diagram (Tag) Tag Belépés Tagság Kilépés Kölcsönzés * Egyed Tevékenységek Eladás Ár Kivitel Visszahozatal Sorrend Más Példa (Könyvtár) Hálózati fázis (SSD) Data Structured Systems Development (DSSD) T Tag adatok Tag SV Többszörös multiplicitás Állapot lekérdezés Kivitel Könyv SV Kö K Könyv adatok Kölcsönzési adatok 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 8
Warnier-Orr diagram Hierarchia Al legalapvetőbb l szerkezet, az adatok/folyamatok t k felépítését mutatja Szekvencia A lépések egymás utáni végrehajtása (folyamat) Rekord jellegű konstrukció (adat) Ismétlés Ciklus (folyamat) Szekvenciális adathalmaz, pl. fájl (adat) Alternáció Elágazás (folyamat) Variáns rekord (adat) Warnier-Orr diagram (kiegészítés) Konkurencia Akkor használjuk, amikor egy szekvencia esetén nem lényeges a sorrendiség Rekúrzió Az adat/folyamat tartalmazza önmaga valamely korábbi változatát Példa (adat) Példa (folyamat) Fejléc Ellenőrzés Vásárlói adatok Adatok Vásárló rekord (1, N) Név Elérhetőség Hitelkártya Lakcím (0, 1) Telefon (0, 1) Megrendelés feldolgozás Megrendelt termék ellenőrzése (1, N) Megrendelé s nyomtatás Termék raktáron? Rögzítés 9
Irodalom Irodalom http://www.engin.umd.umich.edu/cis/course.des/cis375/lec2/ week/wk8/wk8.html Structured Analysis & Structured Design Szoftver tervezés és technológia tantárgy anyaga http://www.informatics.bangor.ac.uk/~dewi/modules/rts/ysm_slid es.pdf Jackson Structured Programming Szoftver tervezés és technológia tantárgy anyaga http://www.wikipedia.orgwikipedia Jackson System Development http://www.wikipedia.org http://cisx2.uma.maine.edu/nicktemp/jsp&jsdlec/jsdt utorialstudentloanabbrev.htm Data Structured Systems Development / Data Structured Systems Development / Warnier-Orr diagram http://www.wikipedia.org/ http://varatek.com/warnierorr.html 10