Software Engineering



Hasonló dokumentumok
Project Management

Software Engineering

SW process Feladatok. SW process Feladatok

Szervezeti formák bemutatása

EPER E-KATA integráció

Minőségbiztosítás a Méliusz Könyvtárban május 9. Dr. Csontosné Skara Ilona skara.ilona@meliusz.hu

TANTÁRGYI ÚTMUTATÓ. Pénzügyi-számviteli informatika 2. tanulmányokhoz

Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

Marketing I. X. előadás. Beszerzési magatartás és ipari marketing. Dr. Bíró-Szigeti Szilvia egyetemi adjunktus BME-MVT

VÁLTOZIK AZ ISO 9001-ES SZABVÁNY. KINEK JÓ EZ?

Füzesabony Város Polgármesteri Hivatalának szervezetfejlesztése (ÁROP-1.A.2/A )

Adatok ábrázolása, adattípusok. Összefoglalás

Programozás. A programkészítés lépései. Program = egy feladat megoldására szolgáló, a számítógép számára értelmezhető utasítássorozat.

Vállalkozásfinanszírozás

ITIL alapú szolgáltatás menedzsement megvalósítása a KELER Zrt-ben

Programozás alapjai Bevezetés

Vektoros elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

Korszerű geodéziai adatfeldolgozás Kulcsár Attila

KÖZLEKEDÉSI ALAPISMERETEK (KÖZLEKEDÉS - ÜZEMVITEL, KÖZLEKEDÉS-TECHNIKA) KÖZLEKEDÉSI ALAPISMERETEK ÉRETTSÉGI VIZSGA II.

Gazdálkodási modul. Gazdaságtudományi ismeretek II.

A tételsor a 21/2007. (V.21.) SZMM rendeletben foglalt szakképesítés szakmai és vizsgakövetelménye alapján készült.

Az éves statisztikai összegezés. Statisztikai összegezés az éves közbeszerzésekről a Kbt. IV. és VI. fejezete szerinti ajánlatkérők vonatkozásában

3. HÉT: CRM RENDSZEREK A GYAKORLATBAN FUNKCIONALITÁSOK

Az informatika oktatás téveszméi

Digitális technika (VIMIAA01) Laboratórium 1

Ahol az ERP véget ér hasznos kiegészítők

Bevezetés a lágy számítás módszereibe

Typotex Kiadó. Térinformatika. Detrekői Ákos jogutóda, Szabó György

ingatlan-gazdaságtani előadások projekt menedzsment módszerek

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

MEZŐGAZDASÁGI ALAPISMERETEK ÉRETTSÉGI VIZSGA II. A VIZSGA LEÍRÁSA

Az éves statisztikai összegezés STATISZTIKAI ÖSSZEGEZÉS AZ ÉVES KÖZBESZERZÉSEKRŐL A KLASSZIKUS AJÁNLATKÉRŐK VONATKOZÁSÁBAN

A TÁMOP KIEMELT PROJEKT KERETÉBEN KIALAKÍTOTT INFORMATIKAI RENDSZER

Junior Szoftvertesztelő mérnök

Dr. Schuster György február 21. Real-time operációs rendszerek RTOS

The Unified Software Development Process

A TŰZVÉDELMI TERVEZÉS FOLYAMATA. Dr. Takács Lajos Gábor okl. építészmérnök BME Építészmérnöki Kar Épületszerkezettani Tanszék

Egy SLA kialakításának gyakorlata fókuszban a nehézségek megoldása. Előadó: Oroszi Norbert. KÜRT Rt. Információ Menedzsment KÜRT Rt.

Javítóvizsga témakörei matematika tantárgyból

Az éves statisztikai összegezés STATISZTIKAI ÖSSZEGEZÉS AZ ÉVES KÖZBESZERZÉSEKRŐL A KLASSZIKUS AJÁNLATKÉRŐK VONATKOZÁSÁBAN

Tartalom. Újrafelhasználás alapú tervezés. Újrafelhasználás alapú tervezés Komponens alapú fejlesztés. Példák. Szoftvertechnológia előadás

Dinamikus geometriai programok

A szerzõrõl... xi Bevezetés... xiii

Meta vezérelt bank adattárház bevezetése és működtetése

felsőfokú szakképzések szakirányú továbbképzések informatikai alapszakok informatikai mesterszakok informatikai doktori iskola

HÁLÓZATSEMLEGESSÉG - EGYSÉGES INTERNET SZOLGÁLTATÁS-LEÍRÓ TÁBLÁZAT

Webes adatbázis-kezelés MySQL és PHP használatával

Egységes fejlesztési katasztert támogató informatikai modul, önkormányzati projektmenedzserek lehetőségei

Az MSZ EN ISO 19011:2012 szabvány változásai. Támpontok az auditorok értékeléséhez Előadó: Turi Tibor, az MSZT/MCS 901 szakértője

Munkaerőpiaci szervező, elemző Munkaerőpiaci szervező, elemző Személyügyi gazdálkodó és fejlesztő

A pedagógus-előmeneteli rendszer informatikai támogató rendszerének fejlesztése Fűrész Edit Budapest, október 27.

Óravázlat. A szakmai karrierépítés feltételei és lehetőségei. Milyen vagyok én? Én és te. heterogén csoportmunka

6. SZÁMÚ FÜGGELÉK: AZ E.ON ENERGIASZOLGÁLTATÓ KFT. ÁLTAL E.ON KLUB KATEGÓRIÁBA SOROLT ÜGYFELEKNEK NYÚJTOTT ÁRAK, SZOLGÁLTATÁSOK

Az éves statisztikai összegezés. Statisztikai összegezés az éves közbeszerzésekrıl a Kbt. IV. és VI. fejezete szerinti ajánlatkérık vonatkozásában

2. HÉT: CRM RENDSZEREK A GYAKORLATBAN FUNKCIONALITÁSOK

Programozás I gyakorlat

Fejlesztı neve: LÉNÁRT ANETT. Tanóra / modul címe: CÉGES REKLÁMBANNER KÉSZÍTÉSE PROJEKTMÓDSZERREL

AZ ÖNÉRTÉKELÉS SZEREPE ÉS FOLYAMATA AZ INTÉZMÉNYFEJLESZTÉSBEN M&S Consulting Kft.

Közszolgálati egyéni teljesítményértékelés

Sikeres E-DETAILING KAMPÁNY receptje. GYÓGYKOMM KONFERENCIA Budapest, február 25. BALOGH JUDIT, PharmaPromo Kft.

Szállodai innováció, fejlesztés, felújítás hét alapérve Versenyképesség fenntartása

Többfelhasználós adatbázis környezetek, tranzakciók, internetes megoldások

A környezettan tantárgy intelligencia fejlesztő lehetőségei

MOBIL CROWDSENSING ÉS BIG DATA TÁVKÖZLÉSI ÉS MÉDIAINFORMATIKAI TANSZÉK BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

Elektronikus öltözőszekrényzárak

Minta. A középszintű szóbeli vizsga értékelési útmutatója

Tel.: (06) ; Fax: (06) SZERVEZETFEJLESZTÉS EREDMÉNYTERMÉKEK ÚTMUTATÓJA

Pénzmosás és fellépés a terrorizmus ellen (változó szabályok) Dr. Király Júlia MNB Budapest, november 12.

Tantárgyi program. 9. A tantárgy hallgatásának előfeltétele, előképzettségi szint: 10. A tantárgy tartalma:

Festetics Kristóf ÁMK Pókaszepetk Óvoda iskola átmenet segítő mikro-csoport

KOMPLEX TERVEZÉS TERVEZÉSI SZAKIRÁNY TARTÓSZERKEZETI FELADATRÉSZ 1. félév

CAD-CAM

VÁLTOZÁSOK ÉS EREDMÉNYESSÉG: A DÉLUTÁNIG TARTÓ ISKOLA BEVEZETÉSÉNEK INTÉZMÉNYI TAPASZTALATAI

Tantárgyi program 2014/2015. tanév, 1. félév

A kamarák szerepe a vállalkozások innovatív működésének elősegítésében

Fábián Zoltán Hálózatok elmélet

Gyakorlatok. VITMMA09 Okos város MSc mellékspecializáció

MÁRKAPOZÍCIONÁLÁS TARTALOMMAL. DUDÁS KRISZTINA Marketingigazgató

A szakképzési rendszer átalakulása a szakképzési fejlesztések mentén

TANTÁRGYI ÚTMUTATÓ. Logisztika. tanulmányokhoz

Autóipari beágyazott rendszerek. Fedélzeti elektromos rendszer

Felsőoktatási és Ipari Együttműködés új lehetőségei

Beszámoló: a kompetenciamérés eredményének javítását célzó intézkedési tervben foglaltak megvalósításáról. Őcsény, november 20.

Vasúti menetrendek optimalizálása

DIGITÁLIS GAZDASÁGFEJLESZTÉS

Szerb középszintű szóbeli vizsga értékelési útmutató

Kérjük, hogy mielőtt elkezdené használni a Csavarhat webáruházat, gondosan olvassa végig ezt a segédletet.

Az MPM hálótechnika (I. előadás)

Alapszintű tesztelői tanfolyam Boda Béla CTO, Neuron Software

Tájékoztató a szerződés módosításáról_munkaruházati termékek szállítása (5. rész)

Mágneses szuszceptibilitás vizsgálata

Minőségmenedzsment a szerb élelmiszeripari vállalkozásoknál

Tájhasználati változások közösségi értékelése az ökoszisztéma szolgáltatások tükrében

AZ EURÓPAI UNIÓ TANÁCSA. Brüsszel, július 19. (19.07) (OR. en) 13081/11 AVIATION 193

Útszelepek Pneumatikus működtetés 579, 589 sorozat. Katalógus füzetek

Bank: minden tranzakciónál. Egyetemek: regisztráci. Emberi erőforr. források: alkalmazottak adatainak rögzr

IKT FEJLESZTŐ MŰHELY KONTAKTUS Dél-dunántúli Regionális Közoktatási Hálózat Koordinációs Központ

Egy heti edzés leírása (5. sz. melléklet)

Képzés leírása. Képzés megnevezése: DFMEA - PFMEA Jelentkezés

A Justh Zsigmond Városi Könyvtár panaszkezelési szabályzata

Átírás:

Software Engineering Software Engineering Software Engineering értelmezése Az a folyamat, mely eredményekénk létrehozunk egy adott feladatot megvalósító szoftver rendszert. Tevékenységek, technológia, módszerek, eszközök Számítógép alapú rendszert hozunk létre 1

Engineering Mérnöki munka rendszerek létrehozására (~ fejlesztés) Építő mérnök Gépész mérnök Villamos mérnök Szoftver mérnök Modellezés általános eszköz leendő rendszer leírása, specifikációja, terve Modellezés Általános mérnöki tevékenység Modellezés: A valóság adott szempont szerinti tömör leírása. Az elemzési szempont alapján számunkra fontos információt kiemeljük, általánosítunk. Segít a valóság (működésének, felépítésének, stb.) megértésében, elemzésében. 2

Engineering System Engineering ( rendszer ) Business process engineering (üzleti folyamat ) vállalat működésének, üzleti folyamatainak tervezése, szervezése modellezzük az üzlet működését, környezetét információ feldolgozás lesz a középpontban nem koncentrál kizárólag a rendszerben használandó szoftverre Product engineering (termék ) termék tervezése modellezzük a terméket, annak használatát Software Engineering (szoftver ) szoftver alkalmazásokat, eszközöket ad a SE által definiált feladatok megoldására a szoftver rendszer (alkalmazás) létrehozására koncentrál Software Engineering Lépések definíciója, technikai tartalma 3

Szoftver fejlesztés lépések (Üzleti modellezés, Termék modellezés) Követelmény (feldolgozás, elemzés.) Elemzés Tervezés Implementáció Tesztelés Telepítés (Karbantartás, követés, továbbfejlesztés) Szoftver fejlesztés lépései Fejlesztési tevékenységek szoftver előállítása érdekében tett műveletek (pl. modellezés, kódolás, tervezés stb.) Fejlesztési termékek: fejlesztési lépések eredményei pl. modellek, kód, dokumentáció stb. 4

Fejlesztés lépéseinek sorrendje Vízesés modell szerint Fejlesztés lépéseinek sorrendje Iteratív fejlesztési modell szerint 5

Fejlesztési termékek előállítása a fejlesztés során Iteratív fejlesztés: Az iterációk során egyre több termék áll elő, és a termékek érettsége egyre nő. 1. System Engineering 6

System Engineering SYSTEM ENGINEERING Product Engineering Business Process Engineering Requirement Engineering (Business) Information System Planning Business Area Analysis Üzleti modellezés (Termék modellezés) Requirement Engineering (Software) System Component Engineering Business System Design Construction & Integration Software Engineering Követelmény (elemzés) Elemzés Tervezés Implementáció Tesztelés Üzembe helyezés System Engineering (SysEng) Általános értelemben vett rendszer fejlesztés System Engineering lehet Business Process Engineering ha vállalat (működésének) (át)szervezésével foglalkozunk Pl.: számlázási rendszer, Product Engineering ha egy termék előállítása a cél pl.: mobil telefon, repülőgép vezérlő rsz. 7

Számítógépes rendszerek Olyan rendszer, mely elemei információt feldolgozva dolgoznak egy előre definiált cél megvalósítása érdekében. Részei: szoftver hardver emberek (felhasználók, operátorok) dokumentáció (rendszer leírása) eljárások (a rendszer használatának lépései ) 1.1. Business Process Engineering (BPE) Üzleti folyamatok leírása, elemzése, tervezése 8

Business Process Engineering SYSTEM ENGINEERING Product Engineering Business Process Engineering Requirement Engineering (Business) Information System Planning Business Area Analysis Üzleti modellezés (Termék modellezés) Requirement Engineering (Software) System Component Engineering Business System Design Construction & Integration Software Engineering Követelmény (elemzés) Elemzés Tervezés Implementáció Tesztelés Üzembe helyezés Business Process Engineering (BPE) Célja: Olyan felépítés (architektúrák) definiálása az üzleti tevékenység számára, mely lehetővé teszi az információ hatékony felhasználását és ezáltal az üzlet hatékonyabb működését. Miért van rá szükség? nagy szervezetek (vállalatok) összetett információ feldolgozási lépések szükséges a szervezet működését leírni modellezni (megérteni), optimalizálni az adott cél érdekében megfelelő számítógépes (szoftver) rendszert készíteni a működés támogatására 9

BPE során megvalósítandó feladatok Leírni, analizálni és megtervezni az üzleti folyamatokat Szempontok: adat felépítés (architektúra) üzleti folyamatok által kezelt (feldolgozott) adatok, köztük levő kapcsolatok applikációs felépítés (architektúra) adatok feldolgozásának folyamata adatokat feldolgozó elemek működése szoftverek, emberek technológiai felépítés (architektúra) szoftver, hardver elemek, melyek az adatok tárolását és az applikációk működését támogatják Adat felépítés (architektúra) Példa Adatok, amelyeket a szervezet működtetéséhez kezelni kell. Ügyfél név cím, kontakt információ korábbi vásárlások utolsó vásárlás Termék Kapcsolatok leírása a tárolt adatok között. 10

Applikációs felépítés (architektúra) Példa Bejövő számlákat a pénzügyes feldolgozza, a törzsadatokat beviszi a számlanyilvántartó rendszerbe, a számlákat archiválja. A számlaadatok alapján a számlanyilvántartó rendszer banki utalást állít össze. Az utalást az üzletvezető engedélyezi és indítja. Technológiai felépítés (architektúra) Példa A vállalatnál egy ProLiant ML350-es szerveren (tároló: 162 GB, RAID 2, ) fut egy testreszabott ERP rendszer (Infosys), a banki rendszerrel közvetlen VPN kapcsolat van, fizikai közeg: SDSL, 2 Gbit/s, 11

BPE lépései (szintjei) I. Information Strategy Planning (ISP) Információs (információ kezelési) stratégia tervezés üzleti területek (domain-ek) meghatározása (pl. gyártás, marketing, pénzügyek stb.) Business Area Analysis (BAA) Üzleti terület elemzése Adott területen szükséges adatok és funkciók definiálása, valamint az együttműködés más területekkel. Eredményeként meghatározható, milyen (információs rendszer) számítógépes rendszer alkalmazható az adott területen. BPE lépései (szintjei) II. Business System Design (BSD) Üzleti rendszerek tervezése Software engineering Követelmények részletes és pontos meghatározása az alkalmazandó (információrendszer) számítógépes rendszer számára. Construction and Integration (C&I) Megvalósítás és integrálás Alkalmazás megvalósítása, integrálása az adott környezetbe. 12

1.2. Product Engineering Product Engineering SYSTEM ENGINEERING Product Engineering Business Process Enegineering Requirement Engineering (Business) Information System Planning Business Area Analysis Üzleti modellezés (Termék modellezés) Requirement Engineering (Software) System Component Engineering Business System Design Construction & Integration Software Engineering Követelmény (elemzés) Elemzés Tervezés Implementáció Tesztelés Üzembe helyezés 13

Product Engineering Célja olyan működő termék létrehozása, mely kielégíti a felhasználó követelményeit. Cél a rendszer architektúrájának, felépítésének meghatározása (megtervezése) Felépítés (architektúra) a következő szempontokból: szoftver hardver adatok (adatbázis) emberek (felhasználók, operátorok) Product Engineering lépései Requirement Engineering Követelmény (tervezés) Rendszerre vonatkozó követelmények meghatározása: funkció, viselkedés, teljesítmény, tervezési, interfész megkötések stb. System Component Engineering Komponens tervezés Software engineering analízis, tervezés, megvalósítás, integrálás Hardver tervezés Emberi erőforrás tervezés 14

1.3. Requirement Engineering Követelmény (meghatározás, specifikálás, elemzés ) Requirement Engineering (RE) A System Engineering lépések eredménye (kimenete): megvalósítandó rendszer specifikációja Kérdés: a specifikáció tényleg olyan rendszert ír le, ami kielégíti a felhasználó igényeit? Megoldás: Requirement Engineering definiál olyan lépések sorozatát, ami ezt biztosítja. 15

Requirement Engineering (RE) A RE-ről beszélhetünk: a System Engineering részeként, és a Software Engineering részeként. A System Enginereing részeként a RE nem csak a szoftver rendszerre vonatkozó követelményekkel foglalkozik. A RE lépései, a megvalósítandó feladatok hasonlóak mind a két esetben, a módszerek nem feltétlenül. Requirement Engineering lépései Követelmények kiderítése, összegyűjtése Követelmények elemzése és egyeztetése Követelmény specifikáció készítése Rendszer modellezés Követelmények validálása Követelmények kezelése, követése 16

Követelmények kiderítése, összegyűjtése Feladatok: Megoldandó probléma határának meghatározása (scope) Követelmények értelmezése (understanding) értelmezni, milyen lehetőségei lesznek a rendszernek, triviális és félreérthető követelmények elhagyása, ellenőrizhető követelmények definiálása Változó követelmények kezelése (volatility) ha a követelmények változnak ezt kezelni kell Követelmények elemzése és egyeztetése kategorizálás, követelmény típusok definiálása funkcionális kezelt adatokra vonatkozó viselkedésre vonatkozó felhasználói felületre vonatkozó kimenetekre vonatkozó követelmények közötti összefüggések meghatározása: konzisztencia, prioritások, különböző forrásból származó (stakeholder) követelmények összehangolása követelményekhez kapcsolódó (megvalósításhoz) kockázatok tisztázása 17

Követelmény specifikációkészítése követelmények rögzítése valamilyen formalizált módon konzisztens és érthető leírása a követelményeknek különböző formában lehetséges: szöveges (template alapján), grafikus, matematikai modell, prototípus, stb a specifikáció kötelező része a rendszer bemeneteinek és kimeneteinek definiálása Eredmény: Rendszer Specifikáció alapja minden további mérnöki munkának (szoftver, hardver, emberi erőforrás, stb.) Rendszer modellezés a teljes rendszer leképzése egy modellben pl.: ház tervrajza az egyes követelményekben leírt tulajdonságok egy modellben történő leírása követelmények közötti kapcsolat átlátható reprezentálása Szabványos technika (pl.): bemenet feldolgozás, kimenet feldolgozás, felhasználói interfész, irányító mag, szerviz 18

Követelmények validálása Követelmény halmaz teljes-e, ellentmondás mentes-e, hiba mentes-e? Technikák: review szimuláció Általános, követelményekre vonatkozó kérdések: érthető, jól definiált a követelmény? tesztelhető? forrása ismert? sért-e valamilyen szakterületi követelményt? Követelmények változásának kezelése, követése Követelmények változhatnak a rendszer élete során. Változásokat követni kell. Összefüggések követelmények és a rendszer különböző részei között: rendszer funkciók és követelmények interfészek és követelmények részrendszerek és követelmények 19

2. Elemzés (Követelmény elemzés) Software requiremet engineering Elemzés Software Engineering keretében végzett Requirement Engineering Szigorúan a létrehozandó szoftver rendszerre vonatkozó követelményekkel foglalkozik Elemzés ~ Software requiremet engineering 20

Követelmény elemzés szerepe a szoftver fejlesztésben System Engineering (SysEng) Követelmény elemzés Szoftver tervezés A (SE során specifikált) követelményekből a megvalósítandó rendszerre vonatkozó részletes követelmények meghatározása Interaktív: felhasználó + elemző Követelmény elemzés: MIT kell csinálni!! NEM HOGYAN kell csinálni!! Elemzés kapcsolata a szoftver rendszer fejlesztés lépéseihez System Engineering Szoftver követelmény elemzés Szoftver tervezés 21

Követelmény elemzés általános lépései probléma azonosítása követelmények összegyűjtése rendszer határainak tisztázása kiértékelés és szintézis konzisztencia modellezés specifikáció készítés review (értékelő áttekintés) 2.1. Követelmények kiderítése, összegyűjtése szoftver fejlesztéskor 22

Követelmények kiderítése, összegyűjtése interaktív rész beszélgetés, interjú, workshop, cél: kideríteni a részvényeseket akik húznak hasznot a rendszerből (felhasználók, megrendelő, stb.) igények: funkció, kimenet, teljesítmény, megfelelő embert kérdeztünk, van-e aki jobban tudja definiálni Technikák követelmények gyűjtésére Facilitated Application Specification Technique (FAST) Felhasználókat és sw fejlesztőket egy oldalra gyűjtöm formalizált lépések a követelmények definiálására a két oldal összehangolásával Quality Function Deployment módszer arra, hogy a felhasználói követelményeket a megvalósítandó rendszerre vonatkozó követelményekké fordítsuk át 23

Facilitated Application Specification Technique (FAST) Megkönnyített Alkalmazás Specifikáció Készítő Módszer Probléma: Fejlesztők és a megrendelők nehezen értik meg egymást. Megoldás: megbeszélés szervezése szabályok felállítása a résztvevők számára napirend készítése vezető (facilitator) kiválasztása követelmény definiáló módszer kiválasztása tábla, elektronikus, formaliznmus Cél, hogy közösen definiáljanak követelményeket, elemezzenek különböző megoldási lehetőségeket Quality Function Deployment Funkciók kategorizálása A követelmények három kategóriába sorolása: felhasználó által közvetlenül definiált követelmények elvárt (ipmlicit) követelmények, melyeket nem feltétlenül definiálja a felhasználó, mert természetesnek veszi izgalmas követelmények a közvetlenül definiált követelmények feletti követelmények, ami igazán elégedetté teszi a felhasználót 24

Quality Function Deployment Funkciókra vonatkozó követelmények kategorizálása Feldolgozott információkra vonatkozó követelmények kategorizálása adatok és események, melyek a rendszer felhasznál, ill. előállít A rendszer által végrehajtott feladatokra vonatkozó követelmények kategorizálása viselkedéssel kapcsolatos követelmények Érték elemzés felsorolt és kategórizált követelmények relatív összehasonlítása Technika funkcionális követelmények összegyűjtésére: Use case-ek aktor rendszerrel kapcsolatba kerülő felhasználó v. rendszer valamit akar a rendszertől: input, output szerepkört definiál! use-case rendszer használata adott cél érdekében rendszer használatakor történő események leírása forgatókönyv, aktivitás diagram 25

2.2. Elemzési alapelvek, módszerek, technikák (gy) Elemzési alapelvek, módszerek technikák (gy) Elemzéskor használt alapelvek: le kell írni, ill. megérteni a probléma megoldásához szükséges információ szerkezetét (information domain) definiálni kell a szoftver által megvalósítandó funkciókat (functional domain) definiálni kell a szoftver viselkedését (külső eseményekre adott válaszok) (behavioral domain) a szoftvert leíró modelleket (információ, funkció, viselkedés) strukturálni kell az elemzés menete során a alapvető tulajdonságoktól kell a megvalósítási részletek 26

Information domain (gy) Információs domén sw alkalmazás ~ adat feldolgozás, konverzió bemenet kimenet adat + vezérlő információ Information domain tartalma (nézetek) rendszer által kezelt adattartalmak és azok kapcsolata információ áramlás leírása a rendszerben információ struktúrája (adat elemek és vezérlő elemek kapcsolata, felépítése stb.) Modellezés (gy) funkciót leíró modell (functional domain) viselkedést leíró modell (behavioral domain) 27

Részekre bontás (gy) komplex probléma egyszerűbb rész problémákra horizontális partíciónálás vertikális partíciónálás Alapvető és implementációs nézet (gy) A szoftver követelmények lényegi, alapvető nézete (~logikai nézet): nem a megvalósítás (implementáció) érdekli megvalósítandó funkciók és a feldolgozandó adatok leírása A szoftverkövetelmények implementációs nézete (~fizikai nézet) a végleges implementáció érdekli megvalósítandó funkciók és a feldolgozandó adatok tényleges megvalósításának leírása gyakran csak tervezéskor kézül el, de néha korábban kell (pl. ) 28

2.3. Prototípus készítés Prototípus készítés prototípus készítési megközelítések eldobandó prototípus továbbfejlesztendő prototípus módszerek és eszközök negyedik generációs technikák (4GT) DB lekérdezés, interfész, grafikus felület stb újrahasználható szoftver komponensek formális specifikáció + prototípus generáló környezet: szöveges specifikáció automatikus kódgenerálás követelmények finomítása 29

2.4. Szoftver specifikáció Szoftver specifikáció alapelvek, általános szabályok a specifikáció készítésre vonatkozóan: funkció és az implementáció szétválasztása rendszer viselkedésének (funkció, adatkonverzió) leírása külső események hatására Eredmény általában szöveg és modell, ami lehet elektronikus, ill. írott formában. 30

Szoftver specifikáció eredménye Szoftver Követelmény Specifikáció Software Requirement Specification (SRS) SRS kötelező részei: Bevezető probléma definiálása Információ leírása ( információs domain ) rendszer által kezelt információk, adatok, köztük levő kapcsolatok leírása Funkció leírása ( functional domain ) rendszer által megvalósítandó műveletek a kezelt adatokon Viselkedés leírása ( behavioral domain ) a végrehajtott funkciók időbeni végrehajtási sorrendje Rendszer (v. funkció) validációjának lehetséges módja (fontos a teszteléshez!!) 2.4. Review 31

Review SRS teljes, konzisztens, pontos??? általában manuálisan nehéz!! prototípus működtetés modell szimuláció megrendelővel jóváhagyatni a szerződés alapja J 3. Elemzés módszerei 32

Elemzés Elemzés (teljes fejlesztés) megvalósítási alternatívái strukturált fejlesztés procedurális program objektum orientált objektum orientált rendszer fejlesztése Strukturált elemzés során készített modell szerkezete Data Object Description/ Adat elemek leírása Entitás- Relációs diagram Adatszótár Adatfolyam diagram Process Specification/ Folyamatok leírása Control Specification/ Vezérlés leírása Állapotátmenet diagram Cathye 33

Strukturált elemzés eszközei Adat könyvtár (dictionary) Rendszer által kezelt adatok leírása Entitás relációs diagram (entity relationship diagram) Adat objektumok és az adatelemek egymáshoz való viszonyának leírása Adat folyam diagram (dataflow) Adat transzformáció és adat mozgatás, valamint az adat manipuláló funkciók leírása Állapot átmeneti diagram (state transition diagram) Vezérlés leírása Strukturált elemzés GYAKORLATON! ER diagram Adat folyam diagram Állapot átmenet diagram 34

4. Tervezés Tervezés Cél: tervezési modell készítése Software Design Specification Tervezési modell direkt módon megvalósítható rendszer elemek leírása Tervezés fázisai (Belady) divergálás alternatívák konvergálás választás kreatív folyamat!! döntések! Alternatívák: Strukturált tervezés Objektum orientált tervezés 35

Tervezés fejlődése 70-es évek eleje: modularitás, top-down tervezés 70-es évek közepe: strukturált programozás, módszertanok 70-es évek vége: adatfolyam diagram, adat modellek használata a tervezésben 80-as évek: funkció adat szerkezet 90-es évek: objektum orientált szoftver fejlesztés 90-es évek vége: szoftver architektúra, minták (pattern) használata Strukturált tervezés fázisai Architektúra kialakítása: Adat tervezés adat könyvtár, ER adat struktúrák Architektúra tervezés strukturális felépítése a rendszernek minták, specifikáció, részek Részletes tervezés: Interfész tervezés belső és külső kommunikáció Komponens tervezés architektúra terv elemei implementálható program elemek, procedúrák, függvények stb. 36

Komponens tervezés Interfész tervezés Architektúra tervezés Adat tervezés Strukturált tervezés menete tipikusan iteratív folyamat absztrakt reprezentáció konkrét reprezentáció tervezési modell teljes reprezentációja a szoftvernek különböző nézetek: adat, funkció, viselkedés 37

Strukturált tervezés és a minőség Tervezés minősége alapvetően befolyásolja a végtermék minőségét terv célja: felhasználói követelmények szoftver rendszer Általános szempontok a terv minősítésére (McGlaughlin): Az összes követelményt lefedi? Érthető, egyértelmű? (fejlesztők, karbantartók) Tartalmazza a szoftvert minden szempontból történő leírását: adat, funkció, viselkedés? minőségi kritériumrumok a tervvel szemben: architektúra tiszta leírása strukturált, moduláris leírás elkülöníthető leírása az adat, architektúra, interfész és komponens 4.3. Szoftver architektúra 38

Szoftver architektúra rendszer általános felépítése, struktúrája a rendszert felépítő komponensek egymáshoz való viszonya (hierarchiája, szervezése) az architektúra leírásban szereplő komponensek mérete nem meghatározott komponensek együttműködésének módja komponensek kapcsolatai A szoftver architektúra leírás koncepcionális leírás Szoftver architektúra leírás részei, nézetei strukturális modell/nézet: rendszer felépítése framework modell/nézet: Absztrakt: milyen általános működési megoldásokat, tervezési mintákat használunk a rendszerünkben. dinamikus modell/nézet: Rendszer időbeli viselkedésének leírása: a rendszer hogyan változik külső hatásokra. funkcionális modell/nézet: A rendszer által megvalósított funkciók (bemeneti, ill. kimeneti adatok közötti kapcsolat). folyamat modell/nézet: A rendszer által támogatott, ill. megvalósított üzleti vagy technológiai folyamat leírása. architektúra leírása: különböző Arhitectural Description Language (Architektúra Leíró Nyelvek) segítségével 39

Strukturális modell Két szempontból beszélhetünk a szoftver rendszer struktúrájáról: Vezérlési elemek struktúrája, hierarchiája Adat elemek struktúrája, hierarchiája Struktúra: Vezérlési hierarchia modulok aktiválási sorrendje, alternatívái fa szerkezetű ábrázolás Jackson diagram meghatározható a vezérlés bonyolultsága definiálható a modulok láthatósága, kapcsolata 40

Architektúra meghatározása vezérlés alapján Horizontális bontás bontás egy-egy külső funkció alapján könnyű tesztelni, kevés mellékhatás változtatáskor, bővíthető Vertikális bontás vezérlő és munkavégző modulok változás általában a munkavégző modulokban karbantarthatóbb (kevesebb mellékhatás) Struktúra: Adat elemek hierarchiája, struktúrája alap adattípusok adatszerkezetek: vektorok több dimenziós tömbök láncolt listák hierarchikus adatszerkezetek 41

4.4. Általános elvek hatékony struktúra, ill. hierarchia tervezéséhez Információ rejtés modularitás gyakorlati haszna modulok önálló egységek önállóan lehessen őket tervezni megvalósítani belső működés, szerkezet rejtett a külvilág elöl adatszerkezetek vezérlés 42

Modulok tervezése Funkcionális függetlenség: kohézió (összetartozás) csatolás Kohézió együttműködés mértéke egy vagy több feladat (funkció) megvalósításában esetleges, logikai, állandó, procedurális Csatolás interfész bonyolultsága alapján hívási paramétereken keresztül vezérlő adatszerkezeteken keresztül globális adatszerkezeteken keresztül környezeti elemeken (eszközökön) keresztül 4.5. Szoftver architektúra tervezés 43

Szoftver architektúra tervezés rendszer általános működésére, felépítésére vonatkozó legfontosabb (korai) döntések követelményeket kielégítő rendszer megvalósítása alternatívák számbavétele cél a megvalósítás rizikójának csökkentése érthető méretű leírás: kommunikáció Szoftver architektúra tervezés fontossága Azonosítani a fontos komponenseket, áttekintést adni a rendszerről A fejlesztés korai fázisában meghatározni a rendszer fő jellemzőit Robusztus rendszer kialakítása robusztus: jól tűri a változásokat, rugalmasan fejleszthető a meglévő rendszer változtatása nélkül Újrafelhasználható rendszer komponensek készítése 44

Tipikus architektúrák, elterjedt architektúra modellek Tipikus architektúrák, elterjedt architektúra modellek Adat központú architektúra Adatfolyam (data flow) Call and return architektúra Kliens-szerver architektúra Rétegszerkezet 45

Tipikus architektúrák, elterjedt architektúra modellek Rétegszerkezet felhasználói felület alkalmazás réteg az adott alkalmazásra jellemző működés megvalósítása szolgáltatás réteg alapfunkciók, melyek ritkán változnak üzleti logika, adatbázis kezelés logikája mag/core operációs rendszer, adattárolás, stb. Adat központú architektúra Adat tároló központban megosztott adatok + kliensek, akik az adatokat felhasználják 46

Adat központú architektúra kliens komponens kliens komponens kliens komponens kliens komponens adatbázis (repository) kliens komponens kliens komponens kliens komponens kliens komponens Adatfolyam (data flow) lehet pipe vagy batch jelelgű komponensek, amelyek az adatokat sorban feldolgozzák 47

Adatfolyam (data flow) típusú feldolgozás modul modul modul modul modul modul Call and return architektúra program alprogram remote procedure call (kliensszerver) 48

Call and return architektúra modul1 modul2 modul3 modul4 modul5 modul6 modul7 modul8 Kliens-szerver architektúra Kliens-szerver működés: Modulok: szolgáltatások nyújtása és használata. Szolgáltatások igénybevétele kommunikációs csatornán keresztül. 49

Kliens-szerver működés 1. kérés kliens kliens kliens kliens 3. válasz szerver 2. szolgáltatás Rétegszerkezet felhasználói felület alkalmazás réteg az adott alkalmazásra jellemző működés megvalósítása szolgáltatás réteg alapfunkciók, melyek ritkán változnak üzleti logika, adatbázis kezelés logikája mag/core operációs rendszer, adattárolás, stb. 50

Rétegszerkezet felhasználói felület rejtett adatok alkalmazás réteg szolgáltatás réteg interfészek core (mag) 4.6. Interfész tervezés 51

Interfész tervezés Interfész felhasználói interfész kapcsolat a külvilággal felhasználók egyéb szoftver rendszerek komponensek közötti interfész modulok egymás közötti kommunikációja komponens tervezéssel összehangolt Felhasználói interfész tervezés A rendszer végső használhatósága szempontjából fontos Forgatókönyvek készítése (pl. use caseek alapján) Interfészt megvalósító elemek és általuk végrehajtott műveletek definiálása Szempontok a tervezéshez Felhasználó modellje : kezdő, haladó, tapasztalt 52

Felhasználói interfész tervezés folyamata Négy lépés: Felhasználó, feladat és környezet analízise és modellezése Interfész tervezése Interfész implementálása Interfész validálása Tipikusan iteratív folyamat!! Általános módszer: prototípus készítés Interfész tervezés iteratív folyamata Felhasználó, feladat és környezet analízise és modellezése Interfész tervezése Interfész validálása Interfész implementálása 53

4.7. Komponens tervezés Komponens tervezés Architektúra és interfész terv Komponens tervezés Működő szoftver Eredmény: részletes leírása a komponenseknek a megvalósítás részletei grafikus v. szöveges leírása a megvalósítandó kódnak 54

Strukturált tervezés fázisai (volt) Architektúra kialakítása: Adat tervezés adat könyvtár, ER Architektúra tervezés adat struktúrák strukturális felépítése a rendszernek minták, specifikáció, részek Részletes tervezés: Interfész tervezés belső és külső kommunikáció Komponens tervezés architektúra terv elemei implementálható program elemek, procedúrák, függvények stb. Komponens tervezés módszerei procedural design döntések a részletekig használható modellek folyamat vezérlési gráf (control flow graph) vezérlési szerkezet dobozos jelölés (box notation) -struktogram vezérlési szerkezet hierarcikusan Nassi Schneider diagram döntési táblák szabályok rögzítése feltételek (pl. bemenetek) hatások (műveletek) Program Design Language szimbolikus program kód 55

Komponens tervezési modellek: folyamat vezérlési gráf folyamat vezérlési gráf Contrrol Flow Graph begin 1: mid= (low + high) / 2; 2: if (x == list(mid)) then 3: found = 1; 4: if (x > list(mid)) then 5: low = mid+1; 6: if (x < list(mid)) then 7: high = mid; 3 5 7 1 2 4 6 end 56

Komponens tervezési modellek: Nassi Schneider diagram box notation Nassi Schneider diagram Jackson ábra 57