OBJEKTUMORIENTÁLT PROGRAM KOVÁCS DÁVID
Előzmények A strukturált programozást felváltja az objektumorientált programozás, hiszen a strukturált programozás már nem képes a megváltozott igényeknek megfelelő szoftver megalkotására. Szoftverkrízis: A szoftverfejlesztés válsága, amely az 1960-as évek végén robbant ki: Hagyományos módszer Minőségi szoftver Megoldás: Objektumorientált tervezési szemlélet elterjedése Modellkészítés
Objektumorientáltság Az objektumorientáltság egy szemléletmód, amelynek alapján több rendszerfejlesztési módszertant is kidolgoztak és publikáltak. Az objektumok általános használatához definiálni kell az objektum környezetét (osztályát), ez lényegében egy sablonként használható több azonos típusú objektum egyidejű használatához.
Objektumorientált program Az objektumorientált programozás (angolul object-oriented programming, röviden OOP) egy programozási módszertan. Ellentétben a korábbi programozási módszertanokkal, nem a műveletek megalkotása áll a középpontban, hanem az egymással kapcsolatban álló programegységek hierarchiájának megtervezése. Az objektumorientált gondolkodásmód lényegében a valós világ lemodellezésén alapul. Az Objektumorientált program tehát egymással kommunikáló programok összessége, amelyben minden objektumnak megvan a jól meghatározott feladata.
Néhány fogalom Osztály (class): Az osztály egy felhasználói típus, amelynek alapján példányok (objektumok) hozhatók létre. Az osztály alapvetően adat és metódus (művelet) definíciókat tartalmaz. Objektum (példány): Információt (adatokat) tárol, és kérésre műveleteket végez. Van állapota.
Minőségi szoftver Helyesség Hibatűrés Védje ki a felhasználó hibáit Karbantarthatóság Könnyű módosítás Bővíthetőség Új igény szerint Újrafelhasználhatóság Kompatibilitás Operációs rendszerrel Felhasználó-barátság Könnyen kezelhető Hordozhatóság Gépről-Gépre Hatékonyság Célirányos feladatmegoldás Ellenőrizhetőség Integritás Sérthetetlenség Szabványosság
Vízesés-Modell Legrégebbi modell – Termékfejlesztésre koncentrál, az első példányig dolgozik, modellez.
FOLYAMAT
Jellemzői Üzenet/Kérelem Felelősség Bezárás, információ elrejtése Polimorfizmus (többalakúság) Osztályozás Osztály számossága Öröklődés Késői kötés
Objektumorientált rendszerfejlesztés lépései Analízis Tervezés Kódolás Tesztelés
Analízis Egy szoftver fejlesztésének korai fázisaiban a megvalósítandó rendszer feladatait szeretnénk feltérképezni: a funkcionális és egyéb jellegű követelményeket. Más szóval, a kérdés ilyenkor az, hogy a rendszernek mit kellene tennie.
Tervezés A meglévő modell alapján a szoftver konkrét (megvalósításához) vezető utat tervezzük meg. Ilyenkor arra keressük a választ, hogy a meghatározott specifikációt hogyan valósítsa meg a rendszer.
Objektumorientált rendszerfejlesztés módszerei OMT – 1991 (Object Modelling Technique = Objektum Modellezési Technika) Booch – 1991 (Grady Booch – amerikai szoftverfejlesztő) OOSE – 1992 (Object-Oriented Software Engineering = Objektum Orientált Szoftver Fejlesztés) UML – 1997. (Unifited Modelling Language = Egységesített Modellező Nyelv).
Objektumorientált nyelvek osztályozása Tiszta objektumorientált nyelvek SmallTalk – 1972 Eiffel – 1988 Hibrid nyelvek C++ - 1989 Java – 1986 Pascal – 1986 CLOS – 1988 Objektum alapú nyelvek Amelyekben létezik az objektum fogalma, de nem objektumorientáltak
Objektumorientált vizuális fejlesztőeszközök C++ SmallTalk Object Pascal
CASE eszközök CASE = számítógéppel támogatott szoftver-fejlesztés)
OO fejlesztési lépések Analízis Követelmény-feltárás Követelmény-elemzés Feladatspecifikáció
Osztályhierarchia-diagram Objektum-diagram Állapot-diagram Tervezés Osztálydiagram Osztályleírás (osztály neve, feladatleírás, objektumok száma, kapcsolatok, adatok) Osztályhierarchia-diagram Objektum-diagram Állapot-diagram Együttműködési diagram Használati eset diagram Szekvencia-diagram Programterv
Objektumok tesztelése Osztályok tesztelése Egységteszt Rendszerteszt Kódolás Implementálás Forráskód Tesztelés Objektumok tesztelése Osztályok tesztelése Egységteszt Rendszerteszt Dokumentálás Folyamatosan, a fejlesztés minden fázisában.
Az élelmiszerbolt OO-terve Osztálydiagram Használatieset-diagram, forgatókönyv Együttműködési diagram Szekvencia diagram Állapotdiagram Aktivitásdiagram Komponensdiagram Telepítési diagram
A rendszernek követni kell az objektumorientált rendszerek tervezésének egyik legismertebb formáját az Adatok-vezérlő-nézet (Modell-Controller-View) tervezési mintát. Ennek alapja, hogy a modell réteg csak adatokat tárol, a vezérlő rétegben lévő osztályok tartalmazzák a művelet/lekérdezést megvalósító osztályokat, míg a nézet réteg csak a megjelenítésért felel. A NÉZET KÖZVETLENÜL NEM FÉR HOZZÁ A MODELLBEN LÉVŐ ELEMEKHEZ.
Használati-eset (Use-case) diagram
Szekvencia-Diagram
KÖSZÖNÖM A FIGYELMET!