ComputerBooks kezdő oldala  
Üdvözöljük a 
ComputerBooks  weboldalán!
  ComputerBooks

  Kiadványaink  


Tematikus lista


Mesekönyvek


        Akciók        


Kedvezmények


      Keresés      


Megrendelés


Elérhetőségek




Telefon: 375-1564, 375-3591
E-mail: info@computerbooks.hu


Dr. Kondorosi Károly - Dr. László Zoltán - Dr. Szirmay-Kalos László:
Objektum-orientált szoftverfejlesztés
C és C++ nyelven
lemezmelléklet - a könyvhöz lemezmelléklet tartozik
Megjelenés: 1997, utolsó kiadás: 2004
427
oldal,                  2616.- Ft
ISBN: 963 618 108 X

 

A könyv előszava A könyv tartalomjegyzéke Vissza a listához


A könyv előszava


A szoftverfejlesztés folyamata a programozás történetének mintegy fél évszázada alatt jelentős átalakulásokon esett át - néhány kiválasztott guru mágikus ténykedését a szoftver ipari előállítása váltotta fel. Az "ipari" termeléshez szigorú technológiai előírásokra, hatékony termelőeszközökre és a hajdani guruk helyett mind a technológiát, mind pedig az eszközöket jól ismerő, fegyelmezett szakembergárdára van szükség. A szoftverfejlesztés során a szabványos technológiai előírásokat az ún. fejlesztési módszertanok fogalmazzák meg, az eszközöket pedig a CASE rendszerek és a programozási nyelvek jelentik. A módszertanok alkalmazása során megértjük a megoldandó problémát és körvonalazzuk a számítógépes megvalósítás mikéntjét. Napjainkban számos módszertan vetélkedik egymással, amelyek közül az alkalmazási területek jelentős részénél az ún. objektum-orientált megközelítés került vezető pozícióba. Ennek oka talán az, hogy a többi módszerrel szemben az objektum-orientált elvek nem a számítástechnika elvont fogalmait kívánják ráerőltetni az életre, hanem megfordítva az élet természetes és számítástechnika mentes működését hangsúlyozzák a feladatok megoldása során.

Az objektum-orientált szemlélettel megragadott feladatok programjait olyan programozási nyelveken érdemes implementálni, amelyek maguk is segítik az objektum-orientált gondolkozást, különben a programfejlesztés utolsó fázisában, az implementáció során esetleg elveszítenénk az objektum-orientált megközelítés számos előnyét. Számos objektum-orientált programozási nyelv létezik, melyek közül messze a C++ nyelv a legelterjedtebb.

Ezen könyv az objektum-orientált szoftverfejlesztés fázisait kívánja bemutatni, a megoldandó probléma megértésétől kezdve a megoldás menetének körvonalazásán át egészen az implementáció részletes kidolgozásáig. A fejlesztés különböző fázisait igen színvonalas idegen nyelvű munkák tárgyalták ezen könyv megjelenése előtt is. A könyvek egy része az analízis és tervezés lépéseit ismerteti, míg más művek a C++ nyelv szintaktikáját és szemantikáját mutatják be. A mi könyvünk főleg abban kíván újat adni, hogy a szoftvertechnológiai lépéseket és a C++ nyelv ismertetését összekapcsolja, lehetőséget teremtve arra, hogy a gyakorló programfejlesztő számára egy egységes kép alakuljon ki. Ezzel reményeink szerint elkerülhető lesz az a - oktatói tapasztalataink alapján elég gyakori - hiba, hogy a fejlesztő külön-külön remekül kezeli az objektum-orientált analízis és tervezés lépéseit és jól ismeri a C++ nyelvet is, de C++ programját mégsem az elkészült tervekre építi, így az analízis és tervezés hamar felesleges és értelmetlennek látszó teherré válik számára. A könyvben ismertetett objektum-orientált analízis és tervezés döntő részben a ma legelterjedtebb OMT (Object Modelling Technique) módszertanra épül, amelyet kiegészítettünk és összekapcsoltuk az implementációval.

Terjedelmi korlátok miatt a könyv nem törekedhet teljességre az implementációs eszköz, a C++ nyelv bemutatásánál. Egyrészt ismertnek tekinti a C++ nyelvnek az összes C nyelvtől örökölt konstrukcióját, másrészt pedig nem tárgyal néhány C++ újdonságot (például a kivételek (exception) kezelése).

Ajánljuk ezt a könyvet mind a diákoknak, mind pedig a gyakorló rendszertervezőknek, programfejlesztőknek és programozóknak, ha már jártasságot szereztek a C programozási nyelvben. Reményeink szerint ezen könyv segítségével a kezdő C++ programozók megtanulhatják a nyelvet és az objektum-orientált fejlesztés módszertanát, de haszonnal forgathatják a könyvet a C++ nyelvet már jól ismerők is.

A könyv a Budapesti Műszaki Egyetem Műszaki Informatika és Villamosmérnöki karain a szerzők által előadott "Objektum-orientált programozás", "Szoftver technológia", "Objektum-orientált szoftverfejlesztés" tárgyak anyagára és a B. Braun fejlesztőintézetnél tartott tanfolyam anyagára épül. Hálásak vagyunk hallgatóinknak és a B. Braun fejlesztőinek, akik az előadásokon feltett kérdéseikkel, megjegyzéseikkel sokat segítettek a könyv szerkezetének és tárgyalásmódjának finomításában. Végül hálával tartozunk a B. Braun fejlesztőintézet épületében működő felvonónak, amely a harmadik mintafeladatot ihlette.

Vissza a lap tetejére


A könyv tartalomjegyzéke

Elôszó

Bevezetés a szoftverfejlesztésbe


Szoftver-technológiák
A fejlesztés elvi alapjai
A szoftverfejlesztés alapproblémái
Uraljuk a bonyolultságot!
A leírás szigorúsága
A fejlesztés folyamata
A szoftver életciklusa
Termékek életciklusa
A szoftver életciklusának jellegzetességei
A vízesésmodell
Az inkrementális fejlesztési modell és a prototípus
Spirálmodellek
Az újrafelhasználhatóság
Minôségbiztosítás a szoftverfejlesztésben

Az objektum-orientáltság fogalma


Út az objektumig
A kezdetektôl az absztrakt adatstruktúrákig
Strukturált programozás
Moduláris programozás
Absztrakt adatszerkezetek
Funkcionális kontra adatorientált tervezés
funkcionális megoldás
adatszerkezet-orientált megoldás
Irány az objektum!
Az objektum fogalma
Az objektum
Az objektum felelôssége
Az objektum viselkedése
Üzenetek
Események
Metódusok
Állapot
Polimorfizmus
Osztályok és példányok
Az objektumok típusai
Az objektum-változó

Modellezés objektumokkal


A modellek áttekintése
Objektummodell
Dinamikus modell
Funkcionális modell
Az objektummodell
Attribútumok
A relációk és a láncolás
Bináris relációk és jelölésük
Többes relációk és jelölésük
Az asszociáció, mint osztály
Szerepek
Normalizálás
Öröklés
Az öröklés alapfogalmai
Az öröklés veszélyei
Többszörös öröklés
Komponens-reláció
Metaosztály
Dinamikus modellek
Események és állapotok
Az esemény
Kommunikációs modell
Az állapot
Az állapotdiagram
Műveletek (operációk)
Az állapotgép fogalmának kiterjesztése
Beágyazott állapotmodellek
Az állapotátmenet-tábla
A funkcionális modell
Adatfolyam-ábra
Az adatszótár
Folyamat-specifikációk
A modellek kapcsolata

Fejlesztési módszer


Analízis
A feladatdefiníció
Objektum modellezés
Az objektumok és az osztályok azonosítása
Az asszociációk azonosítása
Az attribútumok azonosítása
Az öröklési hierarchia létrehozása
Az objektum modellezés termékei
Dinamikus modellezés
Forgatókönyvek összeállítása
Kommunikációs diagramok felvétele
Állapotmodellek készítése
Eseményfolyam-diagram készítése
Funkcionális modellezés
Objektum orientált tervezés
Architektúrális tervezés
Alrendszerek, modulok kialakítása
Többprocesszoros és multiprogramozott rendszerek igényei
Vezérlési és ütemezési szerkezet kialakítása
Fizikai adatszerkezetek implementációja
Határállapotok megvalósítása
Külsô interfész tervezése
Objektumtervezés

Objektumok valósidejű rendszerekben


A valósidejű rendszerek jellemzôi
Meghatározás, osztályozás
Egyéb jellemzô tulajdonságok
Közkeletű félreértések és vitapontok
Időkövetelmények
Az idôkövetelmények megadása
Az idôkövetelmények típusai
A fejlesztés problémái
Valósidejű feladatokra ajánlott módszertanok

Objektum-orientált programozás C++ nyelven


A C++ nyelv kialakulása
A C++ programozási nyelv nem objektum-orientált újdonságai
A struktúra és rokonai neve típusértékű
Konstansok és makrok
Függvények
Referencia típus
Dinamikus memóriakezelés operátorokkal
Változó-definíció, mint utasítás
A C++ objektum orientált megközelítése
OOP nyelvek, C ð C++ átmenet
OOP programozás C-ben és C++-ban
Az osztályok nyelvi megvalósítása (C++ð C fordító)
Konstruktor és destruktor
A védelem szelektív enyhítése - a barát (friend) mechanizmus
Operátorok átdefiniálása (operator overloading)
Operátor-átdefiniálás tagfüggvénnyel
Operátor-átdefiniálás globális függvénnyel
Konverziós operátorok átdefiniálása
Szabványos I/O
Dinamikus adatszerkezeteket tartalmazó osztályok
Dinamikusan nyújtózkodó sztring osztály
A másoló konstruktor meghívásának szabályai
Egy rejtvény
Tanulságok
Elsô mintafeladat: Telefonközponti hívásátirányító rendszer
Öröklődés
Egyszerű öröklôdés
Az egyszerű öröklôdés implementációja (nincs virtuális függvény)
Az egyszerű öröklôdés implementációja (van virtuális függvény)
Többszörös öröklôdés (Multiple inheritence)
A konstruktor láthatatlan feladatai
A destruktor láthatatlan feladatai
Mutatók típuskonverziója öröklôdés esetén
Az öröklôdés alkalmazásai
Generikus adatszerkezetek
Generikus szerkezetek megvalósítása elôfordítóval (preprocesszor)
Generikus szerkezetek megvalósítása sablonnal (template)

Objektumok tervezése és implementációja


Az objektum, a dinamikus és a funkcionális modellek kombinálása
Az objektum modell elemzése
A funkcionális modell elemzése
A dinamikus modell elemzése
Osztályok egyedi vizsgálata
Az üzenet-algoritmusok és az implementációs adatstruktúrák kiválasztása
Áttekinthetőség és módosíthatóság
A komplexitás
Az adatstruktúrák kiválasztása, az osztálykönyvtárak felhasználása
Robusztusság
Saját debugger és profiler
Asszociációk tervezése
Láthatóság biztosítása
Nem objektum-orientált környezethez, illetve nyelvekhez történô illesztés
Ütemezési szerkezet kialakítása
Belsô, nem-preemptív ütemezô alkalmazása.
Preemptív ütemezô az operációs rendszer szintjén
Kommunikáció üzenettel
Signal hívás
Közös memória felhasználása
Implementáció többprocesszoros, elosztott rendszerekben
Saját preemptív ütemezô
Optimalizáció
A deklarációs sorrend megállapítása
Modulok kialakítása

Mintafeladatok


Második mintafeladat: Irodai hierarchia nyilvántartása
Informális specifikáció
Az objektum-modell
A dinamikus modell
Forgatókönyvek és kommunikációs modellek
Eseményfolyam-diagram
Állapottér modellek
A funkcionális modell
Objektumtervezés
Az osztályok definiálása
Az attribútumok és a belsô szerkezet pontosítása és kiegészítése
A felelôsség kialakítása - üzenetek és események
A láthatóság tervezése
Implementáció
Harmadik mintafeladat: Lift szimulátor
Informális specifikáció
Az objektum-modell
A dinamikus modell
Állapottér-modellek
A funkcionális modell
Objektumtervezés
Asszociáció tervezés
Láthatóság
A konkurens viselkedés tervezése
Nem preemptív üzemezô
Preemptív üzemezô

A lemezmelléklet tartalma

Irodalomjegyzék

Tárgymutató

Vissza a lap tetejére


created by jmkate  
©2001-2005 ComputerBooks