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

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

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

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

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

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

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

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

Szoftvermenedzsment 4. fejezet A szoftverfolyamat

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

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

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

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

Szoftver újrafelhasználás

01. gyakorlat - Projektalapítás

Programfejlesztési Modellek

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

Információtartalom vázlata

Üzletmenet folytonosság menedzsment [BCM]

S01-7 Komponens alapú szoftverfejlesztés 1

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

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

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

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

Projectvezetők képességei

4. A szoftvergyártás folyamata

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

Szoftver-technológia I.

Szoftverminőségbiztosítás

MIÉRT KELL TESZTELNI?

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

1. Bevezetés a szoftvertechnológiába

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

Software project management Áttekintés

30 MB INFORMATIKAI PROJEKTELLENŐR

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

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

Web-programozó Web-programozó

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

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

Szoftverminőségbiztosítás

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

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

Ami a vízesésen túl van

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

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

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

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

Univerzális munkafolyamat szimulátor

A szoftverfejlesztés eszközei

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

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

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 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)

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

A CMMI alapú szoftverfejlesztési folyamat

Szoftverminőségbiztosítás

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet

TOGAF elemei a gyakorlatban

Programozási Technológia előadás bevezetés. Előadó: Lengyel Zsolt

TERMÉK FEJLESZTÉS PANDUR BÉLA

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

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

Programozás alapjai Bevezetés

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

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

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

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

SW-project management

Szoftverminőségbiztosítás

Bánsághi Anna 1 of 49

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

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

Szoftverminőségbiztosítás

Adatbázis rendszerek. dr. Siki Zoltán

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

Bevezetés. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Szendrei Rudolf. Bevezetés. Szoftvertechnológia

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

SZAKDOLGOZAT. Czuper László. Debrecen 2008.

S01-8 Komponens alapú szoftverfejlesztés 2

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

A fejlesztés módszertana

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

DW 9. előadás DW tervezése, DW-projekt

Gazdasági informatika alapjai

Szoftverminőségbiztosítás

Hálózati szolgáltatások biztosításának felügyeleti elemei

Átírás:

Dr. Mileff Péter Bemutatkozás és követelmények Dr. Mileff Péter Helyileg: A/1-303. szoba. Fizika Tanszék Konzultációs idő: Szerda 10 12 mileff@iit.uni-miskolc.hu Követelmények: Vezetett gyakorlat nincs. Kötelező, 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. Anyagok: http://www.iit.uni-miskolc.hu/~mileff/ 2 Félévi követelmények Féléves feladat: egy objektum orientált alkalmazás szoftverspecifikációját és tervét kell elkészíteni. Csoportos munka: 5 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, HETI konzultáció a gyakorlatvezetőkkel Zárás: A feladatra kapott jegy! Gyakorlatvezetők Mileff Péter A/1 303 szoba mileff@iit.uni-miskolc.hu Krizsán Zoltán A/1 336 szoba krizsan@iit.uni-miskolc.hu Elek Tibor A/3 9 szoba elek@iit.uni-miskolc.hu Kecskeméti Gábor A/1 336 szoba kecskemeti@iit.uni-miskolc.hu Anyagok: http://www.iit.uni-miskolc.hu/~mileff/szoftvert.html 3 4 1

Csoportok kialakítása: Név, tankör, NEPTUN kód Egyedi csoportnév 1. feladat Egyedi feladat kigondolása: Kellő mennyiségű munka 5 embernek Pl. szimpla webshop nem elegendő! Email küldése az előadónak. Tartalma: A levél tárgya fontos! Formája: SWTECH=csapatnév A nem ilyen formájú leveleket a címzett nem kapja meg! A levél tartalma: feladat rövid megfogalmazása. Határidő: 1 hét péntek! 5 6 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 A szoftver krízis 60-as évek vége. zuhanó hardware árak növekvő hardware teljesítmény növekvő igény a szoftverekre software költségeinek ugrásszerű növekedése a software minősége nem megfelelő 7 8 2

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 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. 9 10 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. Szoftvertechnológia Boehm 1976 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. 11 12 3

Szoftvertechnológia IEEE 1983 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. 13 14 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. 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. 15 16 4

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 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. 17 18 Egyszerű programfejlesztési modell Megoldandó feladat programozás Program az adott programozási nyelven fordítás javítás Program gépi kódban tesztelés futtatás Eredmény 19 20 5

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. A vízesésmodell A szoftverfejlesztés folyamatának első publikált modellje, más tervezői modellekből származik. 21 22 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. 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. 23 24 6

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. 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. 25 26 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. Á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. 27 28 7

Evolúciós fejlesztés Alapötlete: 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. 29 30 Evolúciós modell 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. 31 32 8

Áttekintés Előnye: hatékonyabb a 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) 33 34 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. 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. 35 36 9

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. 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. 37 38 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. Á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. 39 40 10

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. 41 42 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. 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é. 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é. 43 44 11

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. A fejlesztési modell Ha egy inkremens elkészült, a rendszer bizonyos funkcióit akár be is üzemeltethetik. Cél: tapasztalat szerzés a rendszerrel kapcsolatban. 45 46 Á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. 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. 47 48 12

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. A szoftverfolyamatot 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. 49 50 A spirális modell 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. 51 52 13

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. Á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. 53 54 55 14