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 (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 elemzésére is alkalmas CASE eszközök is alkalmazzák 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ó 1
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 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 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 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 sütési idı be/ki Lámpa 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
A módszer Példa (fizetési statisztika készítése) 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 Fizetési lista Fizetési adat * Név Beosztás Fizetés Bemenı adatok szerkezete Beosztás Fizetési stat. Statisztika Kimenı adatok szerkezete * Átlag fizetés Példa (fizetési statisztika készítése) Elıkészítés Listázás Összegzés * Fizetési 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 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) 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 3
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ó 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 Hálózati fázis Implementációs 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 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) Példa (Könyvtár) Modellezı fázis Lsd. Irodalom 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 Példa (Könyvtár) Egyed-struktúra diagram (Tag) Tag TagAzonosító Név Lakcím Könyv KönyvAzonosító Szerzı Cím ISBN Vásárlás KönyvAzonosító Dátum Katalogizálás KönyvAzonosító Csoport Belépés TagAzonosító Név Lakcím Dátum Kilépés TagAzonosító Dátum Kivitel KönyvAzonosító Dátum TagAzonosító Visszahozatal KönyvAzonosító Dátum TagAzonosító Eladás KönyvAzonosító Dátum Ár Belépés Kivitel Tag Tagság Kölcsönzés * Visszahozatal Kilépés Más Egyed Tevékenységek Sorrend 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ölcsönzési adatok K Könyv 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 Warnier-Orr diagram Hierarchia A legalapvetıbb szerkezet, az adatok/folyamatok 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 5
Példa (adat) Példa (folyamat) Fejléc Ellenırzés Vásárló adatok Adatok Vásárló rekord (1, N) Név Elérhetıség 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 Hitelkártya 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.org Jackson System Development http://www.wikipedia.org http://cisx2.uma.maine.edu/nicktemp/jsp&jsdlec/jsdt utorialstudentloanabbrev.htm Data Structured Systems Development / Warnier-Orr diagram http://www.wikipedia.org/ http://varatek.com/warnierorr.html 6