Félévi követelmények Bemutatkozás és követelmények

Hasonló dokumentumok
Szoftvertermékek csoportjai. A szoftver. Bemutatkozás és követelmények

Félévi követelmények. Gyakorlatvezetők

A folyamat közös fázisai. A szoftverfolyamat modelljei. A vízesésmodell fázis: követelmények elemzése és meghozása

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Szoftverfejlesztési modellek

Bevezetés a programozásba

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Szoftverfejlesztés. (MSc) Miskolci Egyetem Általános Informatikai Tanszék MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR

KÉSZÍTETTE: DR. MILEFF PÉTER

Bevezetés Mi a szoftver? Általános termékek: Mi a szoftvertervezés?

Szoftverfejlesztés. Created by XMLmind XSL-FO Converter.

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

Software engineering (Software techológia) Bevezetés, alapfogalmak. Történelem 1. Történelem as évek Megoldandó problémák: Fejlesztő: Eszköz:

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

Szoftvermenedzsment 4. fejezet A szoftverfolyamat

Szoftverfejlesztési folyamatok és szoftver minőségbiztosítás

Verifikáció és validáció Általános bevezető

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Szoftvertechnológia ellenőrző kérdések 2005

Verziókövető rendszerek használata a szoftverfejlesztésben

01. gyakorlat - Projektalapítás

Szoftver újrafelhasználás

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Programfejlesztési Modellek

S01-7 Komponens alapú szoftverfejlesztés 1

Üzletmenet folytonosság menedzsment [BCM]

Információs rendszerek Információsrendszer-fejlesztés

Információtartalom vázlata

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Szoftver-technológia I.

A fejlesztési szabványok szerepe a szoftverellenőrzésben

Szoftvertechnológia 12. előadás. Szoftverfejlesztési módszerek és modellek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Szoftverminőségbiztosítás

4. A szoftvergyártás folyamata

Szoftvertechnológia 2008/2009. tanév 2. félév 1. óra. Szoftvertechnológia

1. Bevezetés a szoftvertechnológiába

Projectvezetők képességei

MIÉRT KELL TESZTELNI?

Járműinformatika A járműinformatikai fejlesztés

Intelligens eszközök fejlesztése az ipari automatizálásban Evosoft Hungary kft., Evosoft Hungary Kft.

cím: 6725 Szeged Bokor u. 18. telefon: Innomedio Kft Scrum módszertan 1.0 Verzió Érvényes: április 1-től

Software project management Áttekintés

Tesztelés az XP-ben Tesztelés az XP-ben. A tesztelés kulcsjellemzői:

IRÁNYTŰ A SZABÁLYTENGERBEN

IT Szolgáltatás Menedzsment az oktatási szektorban - 90 nap alatt költséghatékonyan

Szoftverspecifikáció fázis: Követelmény specifikáció. 2. fázis: Követelmények feltárása és elemzése

2. A szoftver mint termék llításának folyamata, a szoftver életciklus modelljei

Ami a vízesésen túl van

30 MB INFORMATIKAI PROJEKTELLENŐR

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Név: Neptun kód: Pontszám:

Web-programozó Web-programozó

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Szoftverminőségbiztosítás

MINISZTERELNÖKI HIVATAL. Szóbeli vizsgatevékenység

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

A szoftver minősége az elmúlt 15 év alatt szignifikánsan megnőtt. Oka:

A szoftverfejlesztés eszközei

Informatikai projektellenőr szerepe/feladatai Informatika / Az informatika térhódítása Függőség az információtól / informatikától Információs

Szoftvertechnológia 2012/2013. tanév 1. félév. Szoftvertechnológia

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

A TANTÁRGY ADATLAPJA

A folyamatszemlélet, a dokumentált információ és a kockázatértékelés integrálásának gyakorlati bemutatása (A szabályozás evolúciója)

A CMMI alapú szoftverfejlesztési folyamat

TOGAF elemei a gyakorlatban

TERMÉK FEJLESZTÉS PANDUR BÉLA

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Programozás alapjai Bevezetés

Univerzális munkafolyamat szimulátor

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

A SZOFTVERFEJLESZTÉSI FOLYAMAT MINŐSÉGÜGYI VIZSGÁLATA; A CMM (CAPABILITY MATURITY MODEL)

Bánsághi Anna 1 of 49

Történet John Little (1970) (Management Science cikk)

Adatbázis rendszerek. dr. Siki Zoltán

Nagy bonyolultságú rendszerek fejlesztőeszközei

KÉPZÉSI PROGRAM. GAZDASÁGI INFORMATIKUS OKJ azonosító: Szolnok

SZAKDOLGOZAT. Czuper László. Debrecen 2008.

Programtervezés. Dr. Iványi Péter

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK A TESZT FEJLESZTÉSI FOLYAMATA A TESZTTERVEZÉSI TECHNIKÁK KATEGÓRIÁI

Intelligens partner rendszer virtuális kórházi osztály megvalósításához

A fejlesztés módszertana

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

Különbségek másterületektől:

Bevezetés a programozásba előadás: Alapvető programtervezési elvek

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Vállalati válságkezelés

DIPLOMAMUNKA. Tarcsa Bálint Dávid. Debrecen

Objektum orientált software fejlesztés (Bevezetés)

Európai Közösségek Vízügyi, energiaipari, szállítási és távközlési ágazatok Szerződés odaítélése

A projektvezetési eszköz implementációja hazai építő-, szerelőipari vállalkozásoknál

Tartalom A projektmenedzser teendői Projekttervezés Projekt ütemezés Kockázatkezelés

Szoftverminőségbiztosítás

1. 1. Mi a szoftver? Sorolja fel azokat a termékeket, amelyek a szoftverhez tartoznak.

Feladataink, kötelességeink, önkéntes és szabadidős tevékenységeink elvégzése, a közösségi életformák gyakorlása döntések sorozatából tevődik össze.

Értékesítések (összes, geográfiai -, ügyfelenkénti-, termékenkénti megoszlás)

Átírás:

Félévi követelmények Dr. Mileff Péter Féléves feladat: egy objektum orientált alkalmazás szoftverspecifikációját és tervét kell elkészíteni. Csoportos munka: 5-7 fős csoportok alakítása. Minden csoporthoz egy gyakorlatvezetőt rendelünk Leadási fázisok bemutatása: Prezentáció a közös gyakorlatokon (5 perc) H1,H2,H3,H4,H5 időpontok Folyamatos konzultáció a gyakorlatvezetőkkel Zárás: Aláírás + kollokvium (írásbeli és szóbeli) 3 Bemutatkozás és követelmények Dr. Mileff Péter Helyileg: A/1-303. szoba. Fizika Tanszék Konzultációs idő: Kedd 9 11 mileff@iit.uni-miskolc.hu Követelmények: Vezetett gyakorlat nincs. Konzultációs jellegű. Jelenléti ív nincs. Zárthelyi dolgozat nincs. Féléves feladat van. Zárás: Féléves feladatra kapott jegy. Jegyzet: http://www.iit.uni-miskolc.hu/~mileff/ 2 4 1

60-as évek Megoldandó problémák: egyedi problémákra kis programok Fejlesztő: Speciális tudású személy (kutató) Eszköz: assembler, memória térkép Módszer: nincs 70-es évek Az első úgynevezett magas szintű programozási nyelvek (Algol, Fortran, Cobol) kialakulása, A programozói munka szakmává válása a csoportmunka igényének megjelenése A legelső rendszeres programozási módszerek strukturált, majd moduláris programozás kidolgozása. Ráébredtek, hogy hatékonyabb programozási eszközök szükségesek a szoftverek fejlesztésére valamilyen módszeres megközelítést kell kifejleszteni Szoftvertechnológiáról innentől beszélhetünk 5 7 A szoftver krízis 60-as évek vége. zuhanó hardware árak növekvő hardware teljesítmény növekvő igény a software-ekre software költségeinek ugrásszerű növekedése a software minősége nem megfelelő A szoftver A szoftver szót sokan egyenlőnek tekintik a számítógépes programokkal. Nincs egyértelmű definíciója. Több ennél: hozzájuk kapcsolódó dokumentációk, konfigurációs adatok. Ezek elengedhetetlenek ahhoz, hogy ezek a programok helyesen működjenek. 6 8 2

Szoftvertermékek csoportjai Általános termék: egyedülálló rendszerek, egy fejlesztő szervezet készíti, és adja el. Dobozos szoftverek. Pl.: adatbázis-kezelők, szövegszerkesztők. Egyedi igényekre szabott (rendelésre készített) termékek Egyéni megrendelők megbízásai alapján készülnek speciális megrendelői igények alapján. Pl.: az elektromos eszközök vezérlőrendszerei, a forgalomirányító és ellenőrző rendszerek A határ gyakran összemosódik. 9 IEEE 1983 Szoftvertechnológia A szoftvertechnológia olyan technológiai és vezetési alapelvek összessége, amelyek lehetővé teszik a programok termékszerű gyártását és karbantartását a költség- és határidő korlátok betartásával. 11 Boehm 1976 Szoftvertechnológia A szoftvertechnológia tudományos ismeretek gyakorlati alkalmazása számítógépes programok előállításához, a fejlesztéshez, a használathoz és karbantartáshoz szükséges dokumentációk tervezésében és előállításában. 10 12 3

A szoftverfolyamat Tevékenységek és eredmények sora, amelyek egy szoftvertermék előállításához vezetnek Komplex, és nagyban függ az emberi tevékenységektől: Ezért nem igazán automatizálható CASE (számítógéppel segített szoftvertervezés) eszközökkel. Nincs ideális, minden számára megfelelő folyamat. A szoftver fejlesztés minden szervezetnél más! Cél:úgy kell kialakítani, hogy kiaknázzák a szervezeten belül az emberek képességeit és a fejlesztő rendszer jellegzetességeit. Kiegészítő munkafolyamatok Projekt menedzsment Verzió kezelés / verzió követés Erőforrás management Minőségbiztosítás Terméktámogatás Projekt értékelés, fejlesztési folyamat továbbfejlesztése 13 15 A folyamat közös fázisai Szoftverspecifikáció: a szoftver funkcióit, illetve annak megszorításait definiálni kell. Szoftvertervezés és implementáció:a specifikációnak megfelelő szoftvert elő kell állítani. Szoftvervalidáció: a szoftvert validálni kell, hogy biztosítsuk, azt fejlesztettük, amit az ügyfél kíván. Szoftverevolúció: a szoftvert úgy kell kialakítani, hogy megfeleljen a megrendelő kívánsága szerint történő változtatásoknak. 14 A szoftverfolyamat modelljei A szoftverfolyamat absztrakt reprezentációja: speciális perspektívából reprezentál egy folyamatot Részleges információk a folyamatról, mert általánosak. Ismertebb modellek: Vízesésmodell:Ez a folyamat alapvető tevékenységeit a folyamat különálló fázisainak tekinti. Evolúciós vagy iteratív fejlesztés:összefésüli a specifikáció, a fejlesztés és a validáció tevékenységeit. Komponens alapú fejlesztés: nagy mennyiségű újrafelhasználható komponensek létezésén alapszik. A gyakorlatban keveredhetnek egymással. 16 4

Egyszerű programfejlesztési modell A kis programok létrehozásának a modellje Általában egyszemélyes programfejlesztésnél használjuk Oka: a megoldandó feladat könnyen áttekinthető és modellezhető, a probléma azonnal megfogalmazható egy adott programozási nyelven A futási eredményeket a feladattal vetjük egybe A javításokat közvetlenül a programozási nyelvű leírásban, a programkódban hajtjuk végre. 17 19 Egyszerű programfejlesztési modell A vízesésmodell A szoftverfejlesztés folyamatának első publikált modellje, más tervezői modellekből származik. 18 20 5

1 fázis: követelmények elemzése és meghozása A rendszer felhasználóival való konzultáció alapján kialakul a: rendszer szolgáltatásai, specifikáció megszorításai, célja. Ezek részletes kifejtése szolgáltatja rendszer specifikációját. 3 fázis: implementáció és egységteszt Ebben a szakaszban megvalósul a szoftverterv (annak részei) programok, illetve programegységek (komponensek) halmazaként. Az egységteszt azt ellenőrzi, hogy minden egység megfelel-e a specifikációjának. 21 23 2 fázis: rendszer - és szoftvertervezés A tervezési folyamatban szétválasztódik a hardver és szoftverkövetelmény. A rendszer átfogó architektúráját itt kell kialakítani. Milyen modell? Milyen alrendszerek, azok kapcsolata. Szoftverrendszer-absztrakciók és a köztük lévő kapcsolatok tervezése és leírása. 4 fázis: integráció és rendszerteszt A különálló programegységek, programok integrálása. Teljes rendszerként való tesztelése. Cél: annak megállapítása, hogy a rendszer megfelel-e a követelményeknek. A tesztelés után a szoftverrendszer átadható az ügyfélnek. 22 24 6

5 fázis: Működtetés és karbantartás Általában a szoftver életciklusának leghosszabb fázisa. Beletartozik: A később kiderült hibák javítása. A rendszeregységek implementációjának továbbfejlesztése. Új követelmények léphetnek fel, így szükséges lehet a rendszer szolgáltatásainak továbbfejlesztése. 25 27 Áttekintés A fázisok eredménye egy dokumentum. Egy fázis csak akkor indulhat, ha az előző befejeződött. A folyamat nem egyszerű lineáris modell! hanem a fejlesztési tevékenységek iterációjának sorozata. Az iterációk költségesek, így gyakran befagyasztják őket. A problémák megoldása később, vagy soha. Hátránya: a szoftver nem azt csinálja, amit elvárnak tőle. Csak akkor használható jól, ha már előre jól ismerjük a követelményeket. Alapötlete: Evolúciós fejlesztés a fejlesztőcsapat kifejleszt egy kezdeti implementációt, majd azt a felhasználókkal véleményezteti, végül sok-sok verzión keresztül addig finomítani, amíg a megfelelő rendszert el nem érjük. Előnye: A megközelítési mód sokkal jobban érvényesíti a tevékenységek közötti párhuzamosságot és a gyors visszacsatolásokat. 26 28 7

Evolúciós modell Áttekintés Előnye: hatékonyabba vízesésmodellnél, ha olyan rendszert kell fejleszteni, amely közvetlenül megfelel az ügyfél kívánságainak. a rendszerspecifikáció inkrementálisan fejleszthető. Hátránya a vezetőség szemszögéből: A folyamat nem látható: a menedzsereknek szüksége van a részeredményekre. (Fejlődés mérése) A rendszerek gyakran szegényesen strukturáltak: A folyamatos változtatások lerontják a rendszer struktúráját. Rövid élettartalmú, kis és közepes rendszerek esetén célszerű alkalmazni. (~500000 programsor) 29 31 A két típusa 1.Feltáró fejlesztés: Cél: a megrendelővel együtt tárjuk fel a követelményeket, és alakítsuk ki a végleges rendszert. A fejlesztés a rendszer már ismert részeivel kezdődik. A végleges rendszer úgy alakul ki, hogy egyre több, az ügyfél által kért tulajdonságot társítunk a már meglévőkhöz. 2. Eldobható prototípus készítés: Cél:a lehető legjobban megértsük az ügyfél követelményeit, amelyekre alapozva pontosan definiáljuk azokat. A prototípusnak pedig azon részekre kell koncentrálni, amelyek kevésbé érthetők. 30 32 8

Komponens alapú fejlesztés Alapgondolata az újrafelhasználható komponensekből való építkezés. A szoftverfolyamatokban megtalálhatók a komponensek újrafelhasználása: Korábbi kód átdolgozása, felhasználása, általánosítása. Követelménymódosítás A követelmények elemzése a megtalált komponensek információi alapján. Módosítás az elérhető komponenseknek megfelelően. Ahol a módosítás nem lehetséges, ott újra el kell végezni a komponenselemzést alternatív megoldást kell keresni, vagy új komponens kifejlesztésének indítványozása. 33 35 Komponenselemzés A követelményspecifikáció alapján komponensek keresése, hogy melyek implementálják azokat. Mely kódok használhatók újra fel? Általában nincs egzakt illeszkedés, a felhasznált komponens a funkciók csak egy részét nyújtja. Rendszertervezés újrafelhasználással Ez a szakasz felelős a rendszer szerkezetének tervezéséért: Számba kell venni: hogy milyen komponenseket akarnak újrafelhasználni, melyeket kifejleszteni, vagy beszerezni, egy logikus, áttekinthető szerkezetet kialakítani, hogy azok működhessenek. Ha nincs elérhető újrafelhasználható komponens: új szoftverek is kifejleszthetők, vagy megvásárolhatók. 34 36 9

Fejlesztés és integráció 1. A nem megvásárolt komponenseket ki kell fejleszteni és a rendszerbe integrálni. Tervezés szükséges. 2. Az átalakítandó komponenseken a szükséges módosításokat elvégezni. Módosítás, általánosítás, stb. A rendszer-integráció ebben a modellben sokkal inkább a fejlesztési folyamat része, mint különálló tevékenység. 37 39 Áttekintés Előny: csökkenti a kifejlesztendő szoftverek számát Ezzel csökkenti a költségeket, és a kockázati tényezőket. A rendszer így gyorsabban leszállítható sok esetben. Hátrány: a követelményeknél elkerülhetetlenek a kompromisszumok. Következménye: a rendszer nem felel meg a felhasználó valódi kívánságainak. 38 Folyamat - iteráció A szoftverfolyamat nem egy egyszerű folyamat: a folyamattevékenységek rendszeresen ismétlődő folyamata. a rendszert mindig átdolgozzuk az igényelt változások szerint. Két legismertebb modell a támogatására: Inkrementális fejlesztés: a szoftverspecifikáció, a tervezés, az implementálás, kis inkrementációs lépésekre van felosztva. Spirális fejlesztés: a rendszer fejlesztése egy belülről kifelé tartó spirálvonalat követ Az iteratív folyamat lényege:a specifikáció a szoftverrel összekapcsolva készül. 40 10

Inkrementális fejlesztés Egy köztes megközelítés a vízesésmodell és az evolúciós fejlesztési modellek között. A vízesésmodell előnye: egyszerűen menedzselhető, mert külön választja az egyes fázisokat. Hátrány: robosztus rendszerek jöhetnek létre, amik esetleg alkalmatlanok a változtatásokra. Az evolúciós megközelítés: megengedettek a követelményekkel és tervezésekkel kapcsolatos döntések elhagyása. Gyengén strukturált és nehezen megérthető rendszerekhez vezethetnek. 41 Inkrementális fejlesztés lépései 3.Az inkremensek által előállítandó szolgáltatások követelményeit részletesen definiálni kell. 4. Az inkremensek kifejlesztése. Sor kerülhet további követelmények elemzésére, de az adott lépés követelményei nem módosíthatók. 5.Az elkészült új inkremensek integrálása a már kész inkremensekkel. A rendszerfunkciók köre így egyre bővül. Ha egy inkremenselkészült, a rendszer bizonyos funkcióit akár be is üzemeltethetik. Cél: tapasztalat szerzés a rendszerrel kapcsolatban. 43 Inkrementális fejlesztés lépései 1. A megrendelő meghatározza: nagy körvonalakban a rendszer által nyújtandó szolgáltatásokat, mely szolgáltatások fontosabbak, melyek kevésbé. A fejlesztési modell 2.A követelmények inkremensekben való megfogalmazása és hozzárendelése: függ a szolgáltatás prioritásától, a magasabb prioritású szolgáltatásokat hamarabb kell biztosítani a megrendelő felé. 42 44 11

Áttekintés Előnyök: A megrendelőnek nem kell megvárnia míg a teljes rendszer elkészül, a szoftver már menet közben használhatóvá válik. A megrendelők használhatják a korábbi inkremenseket mint prototípusokat, ami által tapasztalatokat szerezhetnek. Kisebb a kockázata annak, hogy a teljes projekt kudarcba fullad. A magasabb prioritású inkremenseket szállítjuk le hamarabb, ezért mindig a legfontosabb szolgáltatások lesznek többet tesztelve. kisebb a hiba esélye a rendszer legfontosabb részeiben. 45 47 Hátrányok: Áttekintés Az inkremenseknek megfelelően kis méretűeknek kell lenni. minden inkrementációs lépésnek szolgáltatni kell valami rendszerfunkciót. nehézkessé válhat a megrendelő követelményeit megfelelő méretű inkrementációs lépésekre bontani. Spirális fejlesztés Boehm javasolta először már 1988-ban azóta széles körben elterjedt az irodalomban és a gyakorlatban. Aszoftverfolyamatot nem tevékenységek és közöttük található esetleg visszalépések sorozataként tekinti, hanem inkább egy spirálként reprezentálja. A spirál minden egyes körben a szoftverfolyamat egy-egy fázisát reprezentálja. 46 48 12

A spirális modell A spirál négy szektora 3. Fejlesztés és validálás: a kiértékelés után egy fejlesztési modellt kell választani a problémának megfelelően. Pl. evolúciós, vízesés, stb modellek. Tervezés, fejlesztés, tesztelés, validálás. 4. Tervezés:a folyamat azon fázisa, ahol dönteni kell, hogy folytatódjon-e egy következő ciklussal, vagy sem. Folytatás esetén vázolni kell a következő fázist. Fejlesztési terv, integrációs tesztterv. 49 51 A spirál négy szektora 1. Célok kijelölése:az adott projektfázis által kitűzött célok meghatározása A folyamat megszorításainak azonosítása, A kapcsolódó menedzselési terv vázolása. A projekt kockázati tényezőinek felismerése, és stratégiák tervezése. 2. Kockázat becslése:minden kockázati tényező esetén részletes elemzésre kerül sor. Lépéseket kell tenni a kockázat csökkentése, megszűntetése érdekében. Áttekintés Miben más a spirális fejlesztési modell az egyéb szoftverfolyamat-modelltől? A modell explicite számol a kockázati tényezőkkel, amelyek problémákat okozhatnak a projektben. Pl.: a határidő-és költségtúllépések. 50 52 13

53 14