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

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

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

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

A szoftverfejlesztés eszközei

Software project management Áttekintés

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

Szoftver technológia ProgMat -

A szoftverfejlesztés eszközei

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Szoftver-technológia I.

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

Szoftver újrafelhasználás

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

Bevezetés a programozásba

Programozás alapjai Bevezetés

A követelm. vetelmény. analízis fázis. Az analízis fázis célja. fázis feladata

Programfejlesztési Modellek

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

Software project management Áttekintés

A CMMI alapú szoftverfejlesztési folyamat

01. gyakorlat - Projektalapítás

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

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

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

Java I. A Java programozási nyelv

Objektumorientált paradigma és a programfejlesztés

IRÁNYTŰ A SZABÁLYTENGERBEN

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

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

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

UML (Unified Modelling Language)

Objektum orientált programozás Bevezetés

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

4. A szoftvergyártás folyamata

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

30 MB INFORMATIKAI PROJEKTELLENŐR

S01-7 Komponens alapú szoftverfejlesztés 1

Információtartalom vázlata

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

Szoftverminőségbiztosítás

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

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

Autóipari beágyazott rendszerek Dr. Balogh, András

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

CCS Hungary, 2000 szeptember. Handling rendszer technikai specifikáció

Életciklus modellek a rendszer és szoftverrendszer-fejlesztésben. SDLC System Development Life Cycle Software Development Life Cycle

KÖVETKEZŐ GENERÁCIÓS NAGYVÁLLALATI TARTALOMKEZELŐ MEGOLDÁSOK Stratis Kft. / Autonomy üzleti reggeli / Mezei Ferenc üzletág-igazgató

Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):

AZ INTEGRÁLT NYOMONKÖVETŐ RENDSZER BEMUTATÁSA (TÁMOP B) Kern Zoltán Közoktatási szakértő

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

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

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

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

II. rész: a rendszer felülvizsgálati stratégia kidolgozását támogató funkciói. Tóth László, Lenkeyné Biró Gyöngyvér, Kuczogi László

A CMMI alapú szoftverfejlesztési si folyamat

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Objektumorientált paradigma és programfejlesztés Bevezető

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

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

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

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

Internetes alkalmazásfejlesztő képzés tematika oktatott modulok

Szoftverfejlesztő képzés tematika oktatott modulok

E-learning tananyagfejlesztő képzés tematika oktatott modulok

Komponens alapú fejlesztés

TERMÉKFEJLESZTÉS (BMEGEGE MNTF)

iphone és Android két jó barát...

Tartalommenedzser képzés tematika oktatott modulok

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Vezetői információs rendszerek

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

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

Tartalom. Szoftverfejlesztési. Szoftver = Termék. módszertan. la Rational XDE CASE eszköz. Az előállításához technológiára van szükség

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

(Teszt)automatizálás. Bevezető

Információ-architektúra

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

Java programozási nyelv

TESZTMENEDZSMENT TESZTELŐ SZERVEZET TESZTTERVEZÉS ÉS BECSLÉS

S S A D M ELEMZÉSI ÉS TERVEZÉSI MÓDSZERTAN. Structured Systems Analysis and Design Method

Üzletmenet-folytonosság és katasztrófa helyzet kezelés (Honnan indultunk, miért változtunk, hova tartunk?)

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

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

Designer képzés tematika oktatott modulok

Orvostechnikai eszköz tesztelése DSS Unit test. Taliga Miklós BME-IIT

The Unified Software Development Process. Történet. Feltételek. Rational Unified Process. Krizsán Zoltán Ficsor Lajos

Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben. Ráth István

Üzleti folyamatok rugalmasabb IT támogatása. Nick Gábor András szeptember 10.

Informatikai alkalmazásfejlesztő Információrendszer-elemző és - tervező

Aktualitások a minőségirányításban

Adatbázis rendszerek. dr. Siki Zoltán

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

Szoftvermenedzsment 4. fejezet A szoftverfolyamat

A Gazdasági - Műszaki Főigazgatóság feladatai az intézményirányítás fejlesztésében

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

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Átírás:

Software engineering (Software techológia) Bevezetés, alapfogalmak Utolsó módosítás: 2006. 02. 16. SWENGBEV / 1 Történelem 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 Software engineering (Bevezetés) SWENGBEV / 2 Történelem 2. a software krízis (1960. é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ő. Software engineering (Bevezetés) SWENGBEV / 3

Történelem 3. 70-es évek Megoldandó problémák: Visszatérő problémák Nagy, monolitikus programok Nincs (vagy korlátozott) interaktivitás Fejlesztő: speciális szaktudású szakember esetleg informális csoportok Software engineering (Bevezetés) SWENGBEV / 4 Történelem 4. 70-es évek (folyt) Eszköz: editor compiler linker, kezdetleges debugger első generációs. majd strukturált programnyelvek célnyelvek (pl. report generator) egyedi adatkezelés Módszer: algoritmusok, adatszerkezetek kutatása strukturált, majd moduláris programozás Software engineering (Bevezetés) SWENGBEV / 5 Történelem 5. 80-es évek Megoldandó problémák: nagyméretű, folyamatosan működő, nagy megbízhatóságot követelő programok Egyre bonyolultabbá váló felhasználói felületek Nagy mennyiségű adatok, tranzakció szemléletű feldolgozás Adatok tárolási és feldolgozási struktúrája elválik Hálózat megjelenése Software engineering (Bevezetés) SWENGBEV / 6

Történelem 6. Fejlesztő: csoportmunka igénye szakmán belüli specializálódás Management problémák megjelenése Eszköz: fejlesztői környezetek korai CASE (Computer Aided Software Engineering) rendszerek adatbázis kezelő rendszerek Módszer: kezdeti módszertanok - dekompozíció Software engineering (Bevezetés) SWENGBEV / 7 Történelem 7. 90-es évektől Megoldandó problémák: hálózat és internet széles körűvé válása elosztott rendszerek igénye információk változatos megjelenési formája fejlesztési ciklus idejének rövidülése (üzleti nyomás a folyamatos továbbfejlesztésre) nyílt, hordozható sőt platform független megoldások igénye minőségbiztosítás igénye Fejlesztő: csoportmunka, sokszor térben elosztva Software engineering (Bevezetés) SWENGBEV / 8 Történelem 8. Eszköz: integrált, csoportmunkát támogató fejlesztő környezetek szélessávú CASE rendszerek keretrendszerek software management támogatása Módszer: Objektum orientált technológia Szabványok (X, Corba, DCOM, Java RMI) Komponens alapú programozás kutatások további technológiai fejlesztésekre Software engineering (Bevezetés) SWENGBEV / 9

Mi a software? TERMÉK, azaz Hasznosnak kell lennie (szolgáltatások) Elvárt minőségűnek kell lennie Előállításának költsége és határideje van Általában fizetnek érte a használói (ára van) Marketing szempontok is befolyásolják a technikai szempontok mellett Sokszor divatkövetőnek kell lennie DE Speciális tulajdonságai vannak Általában hosszú élettartamú Software engineering (Bevezetés) SWENGBEV / 10 A software speciális tulajdonságai nem anyagi jellegű másolat = eredeti használat miatt nem igényel karbantartást nincs sorozatgyártás tükröznie kell a valóságot Software engineering (Bevezetés) SWENGBEV / 11 A software speciális tulajdonságai (folytatás) komplexitása nagyobb a legtöbb műszaki terméknél viselkedése nem folytonos hibák előzetes jelek nélkül alkalmazkodás a külső környezethez Software engineering (Bevezetés) SWENGBEV / 12

A software engineering definíciói 1. Ha termék, előállítási ("gyártási") folyamat kell Egy előállítási folyamat szabályait technológiának nevezzük. A software technológia egy egyszerű definíciója: Eszközök és módszerek a szoftver termékszerű előállítására Software engineering (Bevezetés) SWENGBEV / 13 A software engineering definíciói 2. A klasszikus definíció (Boehm, 1976): The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them. Software engineering (Bevezetés) SWENGBEV / 14 A software engineering definíciói 2. Magyarul: Tudományos ismeretek gyakorlati alkalmazása számítógépes programok és a fejlesztésükhöz, használatukhoz és karbantartásukhoz szükséges dokumentációk tervezésében és előállításában. Software engineering (Bevezetés) SWENGBEV / 15

A software engineering definíciói 3. A hivatalos definíció (IEEE, 1983): The technological and managerial discipline concerned with systematic production and maintenance of software products that are develop and modified on time and within cost estimated. Software engineering (Bevezetés) SWENGBEV / 16 A software engineering definíciói 4. Magyarul: Technológiai és vezetési alapelvek, amelyek lehetővé teszik programok termékszerű gyártását és karbantartását a költség- és határidő korlátok betartásával. Software engineering (Bevezetés) SWENGBEV / 17 A szoftver fejlesztés fázisai 1. 1.Követelmény analízis Mit is kellene csinálni? Mikorra, és mennyiért? Kikkel? 2.Specifikáció Mit kell csinálni? Software engineering (Bevezetés) SWENGBEV / 18

A szoftver fejlesztés fázisai 2. 3.Tervezés Hogyan kell megcsinálni? 4.Implementáció Na, akkor csináljuk!! 5.Installáció és tesztelés Mit műveltünk? Software engineering (Bevezetés) SWENGBEV / 19 A szoftver fejlesztés fázisai 3. 6. Karbantartás Ha elszúrtad, javítsd is ki! Aki elszúrta, azóta már főnök - TE javítsd ki! Ha pedig a rendszer hibátlan(nak látszik) - Az Úr (a felhasználó) szava : igazából nem is ez kellene, hanem... azt pedig nem úgy értettem, hanem... ha már ezt tudja, tudhatná azt is, hogy... újabban ezt már nem is így kell csinálni, hanem... Azaz: esmétlés onnan, hogy... Software engineering (Bevezetés) SWENGBEV / 20 Kiegész 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 Software engineering (Bevezetés) SWENGBEV / 21

Software életciklus modellek Az egyes fejlesztési fázisok viszonya egymáshoz Software engineering (Bevezetés) SWENGBEV / 22 Klasszikus ("waterfall waterfall") 1. Boehm, 1976 Analízis Specifikáció Tervezés Implem. Tesztelés Használat Software engineering (Bevezetés) SWENGBEV / 23 Klasszikus ("waterfall waterfall") 2. Jellemzői: technikai problémának tekinti a fejlesztést nem foglalkozik a kommunikációs problémákkal visszacsatolás túl későn (a teljes rendszer elkészülte utáni tesztelés után) lehetséges hol a helye a karbantartásnak? Software engineering (Bevezetés) SWENGBEV / 24

Gyors prototípus (rapid prototyping) 1. Analízis Specifikáció ^ Tervezés Implem. V Tesztelés Prototípus > Használat Software engineering (Bevezetés) SWENGBEV / 25 Gyors prototípus (rapid prototyping) 2. Jellemzői: segíti a fejlesztő és a felhasználó kommunikációját főleg kisebb csoportoknál vált be Software engineering (Bevezetés) SWENGBEV / 26 Inkrementális (vagy evolúciós) 1. Analízis Specifikáció Tervezés Specifikáció Tesztelés Implem. Tesztelés Tervezés Implem. Specifikáció Tervezés Implem. Tesztelés Használat Software engineering (Bevezetés) SWENGBEV / 27

Inkrementális 2. Jellemzői: az eredeti célhoz egyre közelebb álló rendszerek sorozata minden rendszer átmegy legalább a tervezés - implementálás - tesztelés fázisokon csökkenthető a fejlesztés kockázata az objektum orientált fejlesztési módszertanok általában ezt ajánlják szokás iterációs modellnek is nevezni Software engineering (Bevezetés) SWENGBEV / 28 Újrafelhasználás 1. Analízis Specifikáció Tervezés Kész elemek Implem. Kész elemek Kész elemek Tesztelés Használat Software engineering (Bevezetés) SWENGBEV / 29 Újrafelhasználás 2. Jellemzői: ez alulról felfelé építkező modell (bottom - up) gyors módszer, ha van elég "építőanyag" a hatékonyság a szükséges helyeken utólag javítható Software engineering (Bevezetés) SWENGBEV / 30

Újrafelhasználás 3. Újrafelhasználható elemek Implementáció algoritmusok függvény könyvtárak osztály és objektum könyvtárak software komponensek korábban fejlesztett, hasonló rendszerek Software engineering (Bevezetés) SWENGBEV / 31 Újrafelhasználás 4. Tervezés tervezési minták (design patterns) bevált architekturális megoldások Analízis, specifikáció leginkább az előző fejlesztések tapasztalatai Software engineering (Bevezetés) SWENGBEV / 32 Very High Level Languages 1. Analízis Specifikáció Fejlesztõeszköz Tervezés és implementáció Tesztelés Használat Software engineering (Bevezetés) SWENGBEV / 33

Very High Level Languages 2. (nem-procedurális nyelvek, alkalmazásgenerátorok) Jellemzői: a fejlesztőeszköz számára le kell írni, hogy MIT csináljon - a többi az eszköz dolga általában jól körülhatárolt területekre (pl. FOCUS, Oracle, Magic - AB alk.) esetleg hatékonysági problémák Software engineering (Bevezetés) SWENGBEV / 34 Spirál-modell (Boehm( Boehm,, 1988) 1. Célok kitűzése, Célok, megoldási Alternatívák kiértékelése, keértékelése, alternatívák alternatívák kidolgozása kockázat elemzés, prototípus kockázat elemzés készítés A következő Új ciklus iteráció megtervezése és elindítása, vagy a befejezés eldöntése (Prototípus) A prototípus elemzése, gyártás, tesztelése tesztelés Software engineering (Bevezetés) SWENGBEV / 35 Spirál-modell (Boehm( Boehm,, 1988) 2. Jellemzői: A fejlesztés iterációs lépések sorozata Az egyes iterációkban kitűzött célok folyamatosan fejlődnek Valamennyi fázis ciklikusan ismétlődik Minden (rész)megoldást ki kell értékelni Elemezni kell az adott megoldás kockázatát Ha a kockázat kisebb, mint a várható haszon, újabb ciklus kezdődhet Újdonság: kockázat kezelés Software engineering (Bevezetés) SWENGBEV / 36

Eszközkészlet Módszer (Methodology) Technika (Technique) Eszköz (Tool) Software engineering (Bevezetés) SWENGBEV / 37 Eszközkészlet Módszer Technika Technika Technika Eszköz Módszer Technika Technika Technika Software engineering (Bevezetés) SWENGBEV / 38 Módszerek és a software engineering Módszer (methodology): tudás (tapasztalat) + ajánlott technikák A jó módszer jellemzői: hatékony racionális: tudományos alapok, amelyeket a gyakorlat igazol konzisztens az egyes fázisokban Software engineering (Bevezetés) SWENGBEV / 39

A jó módszer jellemzői: (folytatás) teljes: minden fázisra ajánl megoldást ismételhető: személytől független, jól definiált, megtanulható automatizálható (és automatizált) Software engineering (Bevezetés) SWENGBEV / 40 Technikák Az egyes részfolyamatok segítésére. Célja: információk rögzítése (egyértelműség!) kapcsolatok rögzítése ellentmondások kiszűrése. Leggyakrabban grafikus. Software engineering (Bevezetés) SWENGBEV / 41 Eszközök Programok, amelyek támogatnak módszer(eke)t technikákat dokumentáció készítést. Jellemzője az integráltság szintje és a támogatott fázisok száma. Software engineering (Bevezetés) SWENGBEV / 42

A dekompozíció Alapprobléma: a software komplexitása Megoldás reménye: részek összege < az egész Dekompozíció: a teljes software módszeres részekre bontása. Egy módszer meghatározza a dekompozíció elveit. Software engineering (Bevezetés) SWENGBEV / 43 Dekompozíció funkcionális szemléletben Program = adatszerkezetek + algoritmusok Dekompozíció alapja: adat vagy process Dekompozíció módja: felülről lefelé (top - down) alulról felfelé (bottom - up) Modulok között kommunikáció szükséges => belső interface Software engineering (Bevezetés) SWENGBEV / 44 Dekompozíció funkcionális szemléletben (folytatás) Dualitás elve: Modul Processz alapú (Algoritmus) Adat alapú (adatszerkezet) Interface Adatszerkezet Algoritmus Több lépés szükséges => absztrakciós szintek! Software engineering (Bevezetés) SWENGBEV / 45

Dekompozíció objektum orientált szemléletben Program = együttműködő objektumok halmaza Struktúra: osztályok/objektumok közötti kapcsolatok Működés: üzenetváltás A modulok egysége az osztály. Software engineering (Bevezetés) SWENGBEV / 46 Vizsgált módszertanok 1. A tárgy során két módszertanra fogunk hivatkozni Mindkettő objektum orientált szemléletű. OMT (Object Modelling Technique) Viszonylag korai, ezért jól áttekinthető Jól definiált eljárásokat javasol Komplex rendszerek fejlesztésére nem elég hatékony Software engineering (Bevezetés) SWENGBEV / 47 Vizsgált módszertanok 2. RUP (Rational Unified Process) Keretrendszer, a mai modern fejlesztése feladatokra tulajdonságainak figyelembe vételével Testre szabással tehető alkalmassá a fejlesztés jellege és a projekt nagysága szerint egy adott feladatra Jól definiált munkafolyamatok Számos dokumentációs sablon Software engineering (Bevezetés) SWENGBEV / 48