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



Hasonló dokumentumok
Objektumorientált paradigma és a programfejlesztés

UML (Unified Modelling Language)

Objektumorientált paradigma és programfejlesztés Bevezető

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:

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

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

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

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

01. gyakorlat - Projektalapítás

OOP. Alapelvek Elek Tibor

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

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

Előzmények

Programfejlesztési Modellek

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

Komponens alapú programozás Bevezetés

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

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Szoftver technológia ProgMat -

S01-7 Komponens alapú szoftverfejlesztés 1

Osztálytervezés és implementációs ajánlások

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

Osztálytervezés és implementációs ajánlások

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

Objektumorientáció, objektumorientált szemlélet

A SZOFTVERTECHNOLÓGIA ALAPJAI

Software Engineering Szoftver fejlesztés

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

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Bánsághi Anna 1 of 67

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

S01-8 Komponens alapú szoftverfejlesztés 2

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

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

Parametrikus tervezés

ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS. Általános ismertető és Accountability Patterns

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

Software Engineering

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Szoftver-technológia II. Modulok és OOP. Irodalom

SSADM OO nézőpontból. Molnár Bálint Egyetemi docens, Corvinus egyetem

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

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

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

Szoftver újrafelhasználás

Nyugat-magyarországi Egyetem Geoinformatikai Kara. Dr. Szepesné Stiftinger Mária. Rendszertervezés 3. RSZ3 modul. A rendszerfejlesztés tényezői

Objektum orientált alapelvek

Komponens alapú fejlesztés

Programozási technológia

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

Adatstruktúrák, algoritmusok, objektumok

2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Adatbázis rendszerek. dr. Siki Zoltán

Projectvezetők képességei

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Szoftverminőségbiztosítás

Osztott alkalmazások fejlesztési technológiái Áttekintés

Már megismert fogalmak áttekintése

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Ismeretanyag Záróvizsgára való felkészüléshez

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Objektumorientált felbontás

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

A szoftverfejlesztés eszközei

DEBRECENI EGYETEM INFORMATIKAI KAR. Az UML gyakorlati alkalmazásának bemutatása az AutoWorld rendszer tervezésén keresztül

NC program ellenorzo szimulátor fejlesztése objektumorientált módszerrel

4. A szoftvergyártás folyamata

ny Tornabajnokság g eredmény nyilvántart ntartó rendszere A megoldandó feladat Követelmény analízis 1. Ficsor Lajos Általános Informatikai Tanszék

Programozás alapjai Bevezetés

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

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

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

Szoftvertechnológia szakirány

A szoftverfolyamat és s a tesztelés

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

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

Információtartalom vázlata

Szoftver-technológia I.

3D-s számítógépes geometria és alakzatrekonstrukció

3D számítógépes geometria és alakzatrekonstrukció

Tételek: Kidolgozott és összefésült tételek színe

A Java EE 5 plattform

14. Objektum-orientált tervezés

S0-02 Típusmodellek (Programozás elmélet)

Termék modell. Definíció:

Metamodellezés. Simon Balázs BME IIT, 2011.

Bevezetés a párhuzamos programozási koncepciókba

Rendszer-modellezés, modellezési technikák

A szoftverfejlesztés eszközei

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

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

OMT esettanulmány. ny Tornabajnokság g eredmény nyilvántart. ntartó rendszere

TERMÉKTERVEZÉS PANDUR BÉLA TERMÉKTERVEZÉS

7. rész: A specifikációtól az implementációig az EJB rétegben

Programozási technológia 1.

Objektum-orientált programozás

Átírás:

Objektum orientált software fejlesztés (Bevezetés) Lajos Miskolci Egyetem Általános Informatikai Tanszék Út az objektum orientált szemléletig 1. Klasszikus módszerek: program = adatszerkezetek + algoritmusok Alapkérdés: mi legyen a strukturálás alapja? 1. Processz alapú módszerek (top-down) A struktúrálás alapja a függvény. Példa: strukturált analízis és tervezés SADT Lajos Objektum orientált software fejlesztés OOSE / 2 Út az objektum orientált szemléletig 2. Hiányosságai: nem veszi figyelembe a software "fejlődő" természetét feltételezi, hogy van "top" (eseményvezérelt rendszer?) háttérbe szorul a program adatszerkezete nem "termel" újrafelhasználható elemeket. Jó a kis-közepes rendszerek esetén illetve a tervezés tanulása során. Lajos Objektum orientált software fejlesztés OOSE / 3

Út az objektum orientált szemléletig 3. 2. Adat alapú tervezési módszerek A struktúra alapja az adatszerkezet. Példa: Jackson módszer, SSADM Sajátosságai: rugalmasabb, inkább biztosít újrafelhasználható elemeket jobban segíti a program módosítását. Lajos Objektum orientált software fejlesztés OOSE / 4 Út az objektum orientált szemléletig 4. 3. Hibrid módszerek Példa: strukturált programozás (Dijsktra) Megpróbálja párhuzamosan finomítani az adatés függvénystruktúrát. Hátrány: ez is top-down módszer. Lajos Objektum orientált software fejlesztés OOSE / 5 Objektum orientált fejlesztés alapelve 1 Az adatalapú fejlesztési módszerekből nőtt ki. Program: egymással kommunikáló objektumok halmaza. Struktúra: az osztályok közötti reláció Viselkedés: az objektumok közötti üzenetváltások Lajos Objektum orientált software fejlesztés OOSE / 6

Objektum orientált fejlesztés alapelve 2 A programkészítés folyamatát modellkészítésnek tekintjük. Bertrand Meyer-től származó definíció: Software rendszerek felépítése absztrakt adattípusok implementációinak strukturált együtteséből. Lajos Objektum orientált software fejlesztés OOSE / 7 Az OO modell előnyei áttekinthetőség nem kell informatikusnak lennie az olvasónak, így alkalmas a megrendelővel történő egyeztetésre könnyen módosítható, átstrukturálható, kiegészíthető az elvi modell könnyen transzformálható implementációs modellé Lajos Objektum orientált software fejlesztés OOSE / 8 Az OO szemlélet absztrakciós eszköz Az objektum: egyediséggel rendelkező diszkrét entitás jellemzői: attribútumok, műveletek attribútum együttes: objektum állapot, ennek időbeli változása az objektum viselkedése műveletek(operations): implementálva módszernek (method) hívjuk Lajos Objektum orientált software fejlesztés OOSE / 9

OO absztrakció (folytatás) objektumok közötti interakciók: (message passing, event generating) üzenet(message), esemény (event) (lehet szintén objektum!) csak biztosított interface-en keresztül történhet. a műveletek valósítják meg Lajos Objektum orientált software fejlesztés OOSE / 10 OO absztrakció (folytatás) Példányosítás Általánosítás és pontosítás Kifizetés kifiz dátuma végösszeg Kp kifizetés kiad biz. Átutalásos kfizetés pénzf. jelzõszám Lajos Objektum orientált software fejlesztés OOSE / 11 Polimorfizmus OO absztrakció (folytatás) Alakzat forgatás() Kör forgatás() Elipszis forgatás() Téglalap forgatás() Lajos Objektum orientált software fejlesztés OOSE / 12

OO absztrakció (folytatás) Absztrakt osztály (csak interfészt specifikál) Paraméterezett osztály (osztályok mintája) Lajos Objektum orientált software fejlesztés OOSE / 13 OO szemlélet absztrakciós eszközei Lajos Objektum orientált software fejlesztés OOSE / 14 Objektum orientált technológiák programnyelvek (OOP) software tervezés (OOD) software specifikáció (OOA) software követelmény analízis (OORA) adatbázisok (OODBMS) interaktív felhasználói felületek (GUI) osztott rendszerek (CORBA, DCOM, RMI) Lajos Objektum orientált software fejlesztés OOSE / 15

OORA Formális módszerekkel a legkevésbé ellátott terület. A legutóbbi időkre tehető a próbálkozás ilyen módszerek kidolgozására. Lajos Objektum orientált software fejlesztés OOSE / 16 OOA 1. A rendszer megkívánt viselkedésének leírása. Felfedezzük a problématér (domain) lényeges osztályait, illetve objektumait és kapcsolataikat, a követelmény analízis felhasználásával. Pl. egy repülőgépes helyfoglaló rendszerben ilyenek lesznek Járat, Jegy, Utas, Légitársaság, Operátor stb Lajos Objektum orientált software fejlesztés OOSE / 17 OOA 2. Osztály (vagy objektum) lehet: esemény (helyfoglalás) szerep (utas) szervezeti egység (légitársaság) (al)rendszer (repülőgép) process (járat, azaz repülés egyik helyről a másikra) hely (célállomás) eljárás, függvény Lajos Objektum orientált software fejlesztés OOSE / 18

OOD 1. Feladata megtalálni és kiválasztani a megoldási tér osztályait és objektumait, azok viszonyait és együttműködésük módját A megoldási tér osztályai problématér osztályainak a leképezései a megoldás céljából a tervező által létrehozott osztályok Lajos Objektum orientált software fejlesztés OOSE / 19 OOD 2. Az analízis és a tervezési fázis nem válik el élesen az OOSD-ben! A fejlesztés az inkrementális életciklus modellt (fejlesztési stratégiát) használja, és iteratív jellegű. Egy lépés (iteráció), amely egyre részletesebb absztrakciós szinten ciklikusan ismétlődik: Lajos Objektum orientált software fejlesztés OOSE / 20 Start OOD 3. Stop Objektumok (és osztályaik) azonosítása Az osztályok, kapcsolatok és operációk implementálása Statikus struktúra kialakítása (Osztályok és kapcsolataik definiálása) Modell értékelése Dinamikus struktúra kialakítása (Processek és operációk definiálása) Lajos Objektum orientált software fejlesztés OOSE / 21

OOD 4. A folyamat akkor ér véget, ha nem szükséges további absztrakciós szint a felfedezett osztályok és objektumok már létező (újrahasznosítható) software komponensek kombinációival implementálhatók Lajos Objektum orientált software fejlesztés OOSE / 22 OOD 5. Lehetséges absztrakciós szintek: problématér réteg (ez mindig van!) felhasználói interface réteg file-rendszer réteg processz management réteg adatbáziskezelő réteg eszköz interface réteg stb. Lajos Objektum orientált software fejlesztés OOSE / 23 A modellalkotás alapproblémái A fejlesztés alapvető problémái: A fejlesztendő rendszer komplex, tehát a modellje is az. Biztosítani (és ellenőrizni) kell, hogy a modell valóban a megoldandó feladatot reprezentálja. Megoldási lehetőségek: Inkrementális és iteratív fejlesztés Modell nézetek Lajos Objektum orientált software fejlesztés OOSE / 24

Inkrementum, iteráció Nem egyszerre építjük fel a teljes modellt (inkrementális életciklus modell) Ha szükséges, még az inkrementumok felépítését is részekre (iterációkra) osztjuk. Előnyök: Egyszerre viszonylag egyszerű feladatot kell megoldani Gyakori részeredmény, amely ellenőrizhető Lajos Objektum orientált software fejlesztés OOSE / 25 Nézetrendszer 1. Nem egy modellt készítünk el, hanem a rendszer különböző nézőpontú modelljeit Előnyök A rendszer egyszerűbben átlátható, ha egyszerre csak egy adott nézőpontból kell vizsgálni. A különböző nézőpontból készített modellek összevethetők, és a modell helyességének ellenőrzésére használhatók fel. Lajos Objektum orientált software fejlesztés OOSE / 26 Nézetrendszer 2. Nézőpontok: Problématér Használati nézet Megoldási tér Strukturális, statikus nézet Dinamikus nézet Implementációs nézet Környezeti nézet Lajos Objektum orientált software fejlesztés OOSE / 27

Használati nézet A rendszer a felhasználó nézőpontjából Ezt a modellt a követelmény analízis és a specifikációs fázis állítja elő Ez tekinthető a problématér modelljének Lajos Objektum orientált software fejlesztés OOSE / 28 Strukturális, statikus nézet A rendszer egységei és azok kapcsolata A megoldási tér osztályai, objektumai Lajos Objektum orientált software fejlesztés OOSE / 29 Dinamikus nézet A rendszer egyes részeinek (objektumainak) viselkedése a működés során. A részek lehetséges állapotai Milyen események következtében megy egyik állapotból a másikba Az üzenetküldések sorozata (időben) Egy adott állapotban végrehajtandó tevékenységsor Lajos Objektum orientált software fejlesztés OOSE / 30

Implementációs nézet A megoldáshoz szükséges szoftver elemek, és azok kapcsolatai Lajos Objektum orientált software fejlesztés OOSE / 31 Környezeti nézet A rendszer működéséhez szükséges hardware és software erőforrások, és ezek kapcsolatai Lajos Objektum orientált software fejlesztés OOSE / 32 Objektum orientált módszerek 1. A módszerek részei: lépések (fázisok) leírása (feladatok és eredményeik) jelölésrendszer fejlesztési vezérelvek (pl. hogyan azonosíthatjuk az objektumokat?) Lajos Objektum orientált software fejlesztés OOSE / 33

Objektum orientált módszerek 2. eszközök (CASE rendszer, vagy alacsonyabb szintű segédeszközök) pragmatizmusok, heurisztikus elvek (a gyakorlati alkalmazások összegyűjtött tapasztalatai). Lajos Objektum orientált software fejlesztés OOSE / 34 Imertebb fejlesztési módszertanok 1. OMT (Object Modelling Technique, Rumbaugh, 1991, majd 1993) OOD (Object Oriented Design, Booch, 1991, majd 1993) OOA (Object Oriented Analysis, Coad & Yourdon, 1991) OOSD (Object-Oriented Structured Design, Wasserman, 1990) Lajos Objektum orientált software fejlesztés OOSE / 35 Imertebb fejlesztési módszertanok 2. HOOD (Hierachical Object Oriented Design, 1989) Responsibility -Driven Design, Wirfs & Buck, 1990 OOSE (Object Oriented Software Engineering, Jacobson, 1992) RUP (Rational Unified Process) (UML + fejlesztési folyamat ajánlás, 1998-1999) Lajos Objektum orientált software fejlesztés OOSE / 36