Professional Documents
Culture Documents
Malaguti F12
Malaguti F12
Szoftvertechnológia
Dr. Szendrői Etelka
Rendszer és Szoftvertechnológia Tanszék
szendroi.etelka@mik.pte.hu
Iroda: B215
Követelmény
A tárgy vizsgával zárul.
Aláírás feltétele:
Az órák minimum 50%-nak látogatása
Kiadott házifeladatok elkészítése határidőre
Az első házi feladat 40%, a második 60% súllyal számít
bele a félévi munka értékelésébe, amely súlyozott átlag
el kell hogy érje a 40%-ot az aláírás megszerzéséhez.
Vizsga:
írásbeli, a vizsga akkor érvényes, ha legalább 40% -ot
elérte a teljesítés.
A végső jegybe a félévi munka 20%-os, a vizsga 80%-os
súllyal számít bele.
1
2024. 02. 16.
Ajánlott irodalom
Ian Sommerville: Szoftver rendszerek fejlesztése, Panem –
Prentice-Hall, Budapest, 2007.
Roger S. Pressman: Software Engineering, a Practical
Approach, Seventh Edition, McGraw-Hill Book Company,
USA, 2010.
Kondorosi Károly, László Zoltán, Szirmay-Kalos László:
Objektum-orientált szoftverfejlesztés, Computer Books
Kiadói Kft, Budapest, 1997.
Végh Cs. : Alkalmazásfejlesztés a Unified Modeling Language
szabványos jelöléseivel. Logos 2000,
Raffai Mária Információrendszerek fejlesztése és
menedzselése, Novadat Kiadó, Budapest, (2003)
Szoftvertechnológia
• MINDEN fejlett ország gazdasága szoftverfüggő
• Egyre több rendszert szoftver irányít
• A fejlett országok nemzeti jövedelmük jelentős
részét szoftverre költik
• A szoftvertechnológia a professzionális
szoftvergyártás elméleti módszereivel és
eszközeivel foglalkozik
2
2024. 02. 16.
Szoftvertechnológia
A klasszikus definició (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.
Szoftvertechnológia
Magyarul:
Tudományos ismeretek gyakorlati
alkalmazása számítógépes programok és a
fejlesztésükhöz, használatukhoz es
karbantartásukhoz szükséges dokumentációk
tervezésében és előállításában.
3
2024. 02. 16.
Szoftvertechnológia
A hivatalos definició (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.
Szoftvertechnológia
Magyarul:
Technológiai es 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.
4
2024. 02. 16.
A bonyolultság kezelése
A vállalati, állami környezetben a technika fejlődése
során egyre bonyolultabb folyamatokat kellett
végrehajtani.
Az emberi munka sok hiba forrása volt.
Felmerült az igény a munka automatizálására.
Szoftvertechnológia kialakulása
Számítástechnika fejlődése
Hardver
Szoftver
Szoftver krízis (1967 NATO-konferencia: szoftverválság)
Elavult módszerek
Együttműködés hiánya
Határidőcsúszás (over time)
Drágább a tervezettnél (over budget)
Rejtett hibák (Therac-25 eset)
10
10
5
2024. 02. 16.
Szoftverkrízis okai
11
11
12
12
6
2024. 02. 16.
13
14
7
2024. 02. 16.
Ariane 5
15
16
16
8
2024. 02. 16.
17
17
A szoftvertechnológia szerepe
18
9
2024. 02. 16.
19
19
Szoftvertechnológia tárgya:
Nagyméretű programrendszerek előállítása
Miért kell technológia?
A bonyolultság miatt az ösztönös megközelítés elérte a
lehetőségek határát
A csapatmunka, és a hosszabb távú karbantarthatóság
bizonyos szabályok betartását igényli.
Szoftverkrízis
Csökkenő mértékben, de még jelen van. Ma már a sikertelen
projektek száma 50% alatt van.
Nagyméretű programrendszerek jellemzői:
Nagy bonyolultságú rendszer
Csapatmunkában (teammunka) készül
Hosszú élettartamú
20
10
2024. 02. 16.
21
A szoftver ára
A számítógépes rendszerek árában általában dominál a
szoftver költsége. Egy munkaállomáson (PC-n) futó
programok ára jóval magasabb, mint a hardver költsége.
A szoftver fenntartása többe kerül, mint a kifejlesztése.
Hosszú életciklusú rendszerek esetén a fenntartási
költségek a fejlesztési költség többszörösére rúgnak.
A szoftvertechnológia egyik célja a költséghatékony
szoftverfejlesztés.
22
22
11
2024. 02. 16.
Mi a szoftver?
Számítógépes programok és a hozzá kapcsolódó
dokumentációk (pl. követelmények, tervezési modellek
és felhasználói kézikönyvek)
Szoftver termékek készülhetnek egy meghatározott
vevő, vagy egy széles piac számára:
Általános – felhasználók széles rétege számára fejlesztett és általuk
használt szoftver. Pl. Excel, Word
Egyedi (custom) – egy megrendelő egyedi igényei szerint készült
23
24
24
12
2024. 02. 16.
25
26
26
13
2024. 02. 16.
A szoftvertechnológia
technológiai rétegei
tools
methods
process model
.
a “quality” focus
Software Engineering
27
Szoftvertechnológiai eszközök
28
28
14
2024. 02. 16.
!!! Platformok,
futtató környezetek
29
29
30
30
15
2024. 02. 16.
A szoftverfejlesztési projekt
• Projekt:
– Egyetlen, azaz megismételhetetlen, egyedi
eredményre irányul
– Több különböző tevékenységet végző
résztvevő közreműködésével
– Határidőre befejeződik
31
31
A szoftverfejlesztési project
menedzselése
Három alapvető követelmény jellemezi a projekteket:
• Időkorlát
• Költségkorlát
• Minőség
32
16
2024. 02. 16.
A projekt jellemzői
• Projekt hierarchia: a resztvevő emberek szerepe és
alá-fölérendeltsége
• Projekt terv: a megvalósítás egy előre eltervezett
munkafolyamat ill. költségvetés szerint zajlik.
• Dokumentumok: a lényeges eredmények,
események, előírások dokumentumokban kerülnek
rögzítésre. A dokumentumok lehetnek szabad
szöveges jegyzetek, rögzített formátumú szövegek,
modellek, diagramok, táblázatok, stb.
• Átadás: a szoftver (egy vagy több lépésben) végül
átadásra kerül egy projekten kívüli fogadónak, és
ezzel a projekt,betöltve hivatását, szükségszerűen
lezárul
33
33
A projekt tervezése
• A terv részei
– Szoftverfejlesztési terv
• A vezér-dokumentum
– Ütemterv (tevékenységek, mérföldkövek
dátuma)
• Ütemezés és erőforrás diagram
– Minőségi terv
• Benne: tesztelési terv (validációs terv)
– Kockázatkezelési terv
– Konfiguráció-kezelési terv
34
34
17
2024. 02. 16.
A projekt ütemezése
• Tevékenységek, mérföldkövek, részeredmények
ütemezése (bázis terv)
– Logikus sorrendben
– Határidőre
– Az emberek és más erőforrások rendelkezésre állása
szerint
– Lehetőleg az erőforrások egyenletes terhelésével
• Mindig van eltérés, de legyen minél kisebb
– A projekt tervet menet közben is alakítani, pontosítani
lehet és kell
35
35
Projektütemezési diagrammok
36
36
18
2024. 02. 16.
GANTT Diagram
• Időtengelyen ábrázol
• A tevékenységeket időarányos sávok
jelzik
– Megjelölhetők az erőforrások és résztvevők
• Mérföldkövek, részeredmények: kis
rombusz
• Jelezhetők a függőségek
• Időkritikus feladatok láncolata
37
37
38
38
19
2024. 02. 16.
39
39
40
40
20
2024. 02. 16.
• (Ajánlati szakasz)
– Rendszerint a projekt előtt
• Specifikáció 20%
• Tervezés 25%
• Implementáció 25%
• Validáció és integráció 30%
• (Karbantartás, evolúció)
– Rendszerint a projekt után
41
41
• Egyszerűbb mert:
– Mérsékelt anyag es eszközfelhasználás, ill.
logisztika
– A resztvevők tudása jórészt konvertálható
– Költségek zömét a fix munkabér teszi ki
• Bonyolultabb, mert
– Az egyes fázisok munkaigénye nehezen
becsülhető
– A szoftverfejlesztőknek érzékeny személyisége
42
42
21
2024. 02. 16.
43
43
Életciklus
• Az életciklus (angolul: Software Development Life
Cycle – SDLC)) a szoftverrel egyidős fogalom, a
szoftver életének állomásait írja le az igény
megszületésétől az átadásig.
• A megrendelők előbb vagy utóbb felmerülő új
ötletei a szoftver továbbfejlesztését teszik
szükségessé. Tehát egy szoftver soha sincs kész,
ciklikusan meg-megújul. Ezt nevezzük
életciklusnak.
• Az életciklus lépéseit a módszertanok határozzák
meg.
44
44
22
2024. 02. 16.
Szoftverfejlesztési életciklus
Szoftver használatba vétele
Szoftverfejlesztés folyamata
Szoftver
Megrendelő
Változáskezelés,
Visszacsatolás a
követés
megrendelőhöz
45
45
Szoftverfejlesztés életciklusa
• A szoftverfejlesztés életciklusa
a szoftver létrehozásán,
Igényfelmérés
fejlesztésén túl magába foglalja (követelmény
leírás)
– az előmunkálatokat: követelmény
elemzés
Átadás, követés Elemzés
– Utómunkálatokat: ellenőrzés,
betanítás, változások követése
Megvalósítás Tervezés
https://youtu.be/mH-Nc5kvyQQ
46
46
23
2024. 02. 16.
47
47
48
24
2024. 02. 16.
Iteratív szoftvergyártás
• A rendszerkövetelmények MINDEN projekt során
változnak, így az iteratív megközelítés (korábban
elvégzett munkafázisok átdolgozása) minden
nagyobb rendszer fejlesztésének része.
• Az iteratív megközelítés valamennyi alapvető
módszerhez alkalmazható.
• Két kapcsolódó megközelítés:
– Inkrementális teljesítés (fejlesztés)
– Spirális fejlesztés
49
49
Process Flow
50
25
2024. 02. 16.
Process flow
51
A Vízesés modell
The Waterfall Model
52
26
2024. 02. 16.
Vízesés modell
előnyei és hátrányai
•Rendkívül világos a •Nehéz a javítás, a korrekció,
tevékenységek egy munkafázisnak be kell
struktúrája fejeződni mielőtt a következő
•egyszerű a megvalósítás elkezdődik
•a módszer feltételezi az
•biztos alapot nyújt a
igények pontos
tervezési fázisok
megfogalmazását
feladatainak egységes
szemléletű •csak a tervezési ciklus végén
végrehajtásához van működőképes program
•hosszú a fejlesztés átfutási
ideje
53
53
A V modell (IBM)
54
27
2024. 02. 16.
Inkrementális fejlesztés
• A rendszert nem egy részletben szállítjuk, hanem a
fejlesztés és átadás részekre van bontva. Minden
újabb átadott részegység a rendszer újabb
funkcionalitását valósítja meg.
• A felhasználói igényeknek megfelelő prioritási
sorrendben szállítunk, a legfontosabb funkciókkal
kezdve.
• Amint egy részegység fejlesztése elkezdődött, annak
követelményeit „befagyasztjuk”. Későbbi
részegységek követelményei még változhatnak.
55
55
56
56
28
2024. 02. 16.
57
Evolúciós fejlesztés
• Kísérletező fejlesztés
– Cél: a megrendelővel együtt egy kezdeti durva
specifikációból a végleges rendszert kialakítani. A biztos
követelményekből kiindulva a megrendelő igényei
szerint újabb funkciókkal bővíthető a rendszer.
• Eldobható prototípus
– Cél: a homályos követelmények tisztázása. A legkevésbé
kiforrott követelményekből indul, hogy tisztázza a valós
igényeket.
58
58
29
2024. 02. 16.
Evolúciós fejlesztés
• Problémák
– A fejlesztés nem átlátható;
– A rendszerek gyakran rosszul strukturáltak;
– Speciális felkészültségre lehet szükség (pl. rapid
prototyping nyelvek).
• Alkalmazhatóság
– Kis- és középméretű interaktív rendszerek;
– Nagy rendszerek részegységei (pl. felhasználói felület);
– Rövid élettartamú rendszerek.
59
59
Construction
of prototype
60
30
2024. 02. 16.
• Spirális fejlesztés
– A gyártási folyamat sokkal inkább egy spirállal
jellemezhető, mint tevékenységek
(visszalépéses) sorozataként.
– A spirál minden hurka a gyártási folyamat egy
fázisát jelképezi.
– Nincsenek fix hurkok (pl. specifikáció, vagy
tervezés). A hurkokat az igényeknek
megfelelően alakítjuk ki.
– A kockázatkezelés explicit módon megjelenik a
gyártási folyamatban.
61
61
Vízesés és
prototípus
kombinációja
Forrás: Ian Sommerville: Software Engineering, 7th edition. Chapter 4 © Ian Sommerville 2004 62
62
31
2024. 02. 16.
Komponens-alapú szoftverfejlesztés
63
63
64
64
32
2024. 02. 16.
Time
Inception (Előkészítés) : Megérteni, mit építünk
– Vízió, magas szintű követelmények, üzleti esetek
– Nem részletes követelmény-leírás
65
65
C
O
N
T
E
N
T
S
T
R
U
C
T
U
R
E
TIME
66
66
33
2024. 02. 16.
Munkafolyamatok Fázisok
• Igényfelmérés • Előkészítés
Requirements Inception
• Elemzés • Kidolgozás
Analysis Elaboration
• Tervezés • Építés
Design Construction
• Megvalósítás • Átadás
Implementation Transition
• Tesztelés
Test
67
67
Az előkészítés fázisban
• Elsősorban mit valósít meg a rendszer?
• Kik a főbb felhasználók (aktorok) ?
• Milyen tevékenységeket végeznek a főbb
felhasználók?
• Milyen szerkezetű rendszer felel meg a
feladatoknak?
• Mi a terv és milyen költségekkel jár a termék
kifejlesztése?
Elkészül egy elképzelés a végtermékről és egy üzleti esettanulmány.
68
68
34
2024. 02. 16.
A kidolgozás fázisában
• A használati esetek részletes specifikálása
• A rendszer szerkezetének megtervezése
• A szerkezet és a rendszer közötti kapcsolatok
• A megvalósítás modell tartalmazza a
komponenseket, amelyek a szerkezet
végrehajthatóságát biztosítják
69
69
Kulcselemek
• A használati esetek szöveg alapú módszer a
komplex folyamatok leírására, dokumentálására
• A használati esetek részletesen leírják a
követelményspecifikációban megadott
követelményeket
• A rendszerfejlesztők együtt készítik a
felhasználókkal
• A rendszerfejlesztők később adat- és
folyamatmodelleket készítenek a használati esetek
alapján
70
70
35
2024. 02. 16.
Köszönöm a figyelmet!
71
71
36