Informatikai rendszerek tervezése és menedzsmentje (ediţia a II-a, revizuită).*
curs universitar în lb. maghiară
A történelem folyamán az ember mindig megteremtette azokat a kommunikációs eszközöket és viszonyokat, amelyekre fejlettsége adott szintjén szüksége volt. Az állati létből való kiemelkedésének bizonyítékaként „kidolgozta” az információkódolás legbonyolultabb módját, a beszédet, s rendre felfedezte a szervezetén kívüli, exoszomatikus információtárolás egyre tökéletesebb eszközeit: a rajzot, az írást, a nyomtatást, a mágneses buborékot és a digitális videolemezt. Az emberi civilizáció fejlődését előmozdító nagy találmányok vagy az energia átalakításával, vagy az információátvitellel kapcsolatosak.
A társadalmi haladás és az információátvitel (kommunikáció) fejlődése a történelem folyamán mindig szorosan összefüggött egymással. Hogy csak néhány példát említsünk, a könyvnyomtatás feltalálása hozta létre a polgári átalakulás, a polgári forradalmak leghatásosabb eszközét, a röplapot, az újságot. A polgári forradalom Franciaországában a hatalom centralizálásának lehetőségét Chappe optikai távírója teremtette meg. Az Egyesült Államok egységbe kovácsolásának fontos eszköze volt Morse távírója.
Miért kellett mégis évezredeknek eltelniük, amíg az ember eljutott magának az információnak a felfe¬dezéséhez? Az ok elsősorban abban rejlik, hogy a fejlődés alacsonyabb szintjein azokban az időkben, amikor az emberiség sokkal kevesebb információt termelt és használt fel, az információcsere és feldolgozás eszközei és módszerei természeti adottságként jelentkeztek, s a különböző társadalmi célok megvalósításának segédeszközeiként mintegy egybemosódtak más, könnyebben megragadható emberi cselekvésekkel. Az információs kapcsolatokat elfedték a kézzelfoghatóbbak: az ember és természet, az ember és munkaeszköz, az ember és ember alá és fölérendeltségi kapcsolatai.
A társadalom a huszadik században jutott el a fejlettségének és a bonyolultságának arra a fokára, amelyen az információs kapcsolatok a társadalom „tudatalattijából” a felszínre törtek. Megnőtt és megváltozott az információ szerepe, robbanásszerűen megnőtt az információ termelése és felhasználása, s nyilván ennek következményeként fejlődésnek indult az információtovábbítás, a hírközlés technikája. A föld felszínén, a tengerek mélyén kígyózó, világrészeket összekötő telefon¬ és távíróvezetékek, a szikratávíró, majd a rádió ésszerű, gazdaságos kihasználásának igénye napirendre tűzte a hírátvitellel kapcsolatos jelenségek alaposabb tanulmányozását, a műszaki alkalmazások elméleti megalapozását. S azt se felejtsük el, hogy a negyvenes évek elején a világ több pontján kezdetét vette a számítógépek intenzív fejlesztése.
Cuprins
INFORMÁCIÓ- ÉS RENDSZERELMÉLET
1.1. Az információ felfedezése
1.2. A shannoni információelmélet
1.3. Rendszerek és struktúrák
1.3.1. A rendszerelmélet
1.3.1.1. Elméleti irányzat
1.3.1.2. A szemléleti irányzat
1.3.1.3. Alkalmazástechnikai irányzatok
1.3.2. A rendszer fogalma és jellemzői
1.3.3. Rendszerek működése
cuprins complet...
1.3.4. Rendszerek leírása, modellezése, kiépítése
1.4. Folyamatok
1.4.1. A folyamat modellje
1.4.2. Folyamatok eredményessége
1.4.3. Folyamatok leírása
1.5. A szervezés fogalma, fejlődése, fajtái
1.6. Számítógépes rendszerek
1.7. Vállalatirányítási informatikai rendszerek
1.7.1. ERP rendszerek
1.7.2. Vezetői Információs rendszer
1.7.3. Adattárházak
1.7.4. BSC (Balanced Scorecard - stratégiai döntéstámogató rendszer)
1.7.5. CRM (Customer Relationship Management - ügyfélkapcsolatok kezelése)
1.7.6. SCM (Supply Chain Management - ellátási, beszállítói lánc kezelése)
1.7.7. Workflow rendszerek
1.7.8. Termelésütemező rendszerek
1.7.9. Vállalati eszközmenedzsment (EAM - Enterprise Asset Management)
A RENDSZERFEJLESZTÉS LÉPÉSEI
2.1. A szoftverrendszerek bonyolultságáról
2.1.1. A megoldandó feladat bonyolultsága
2.1.2. A fejlesztési folyamat kézben tartásának nehézségei
2.1.3. A szoftvereszközök kínálta rugalmasság
2.1.4. A diszkrét rendszerek viselkedésének leírásából fakadó nehézségek
2.2. A programozástól a rendszerfejlesztésig
2.3. Életciklus modellek
2.3.1. Vízesés modell
2.3.2. A prototípus modell
2.3.3. Spirális modell
2.3.4. A V modell
2.3.5. Iteratív és inkrementális fejlesztési modellek
2.3.6. Fejlesztés újrafelhasználással
2.4. Elemzés
2.4.1. A követelmények elemzése
2.4.1.1. A feladat azonosítása
2.4.1.2. Kiértékelés és szintézis
2.4.1.3. A modellezés
2.4.1.4. Specifikáció
2.4.1.5. Felülvizsgálat
2.5. Tervezés
2.5.1. A tervezés lépései
2.5.2. Osztott rendszerarchitektúrák
2.5.3. Kliens-szerver architektúrák
2.5.4. Osztott objektumarchitektúrák
2.5.5. Valósidejű rendszer tervezése
2.5.6. Felhasználói felület tervezés
2.5.6.1. A felhasználótól a program felé irányuló kommunikáció
2.5.6.2. A felület működése és a belső alkalmazáslogika szétválasztása
2.5.6.3. Változó és nem változó adatok megjelenítése
2.5.6.4. A valóság tükrözése
2.5.6.5. Szövegek alkalmazása
2.5.6.6. Színek alkalmazása
2.5.6.7. Grafika alkalmazása
2.5.6.8. Kijelzések, figyelmeztetések
2.5.6.9. Ablakok, ablakrendszerek kialakítása
2.5.6.10. A felületek ellenőrzése, értékelése
2.5.6.11. Példák jó és rossz felhasználói felületekre
2.5.6.12. A grafikus felhasználói felületek előnyei
2.5.7. Tervezés újrafelhasználása
2.5.7.1. Komponens alapú fejlesztés
2.5.7.2. Újrafelhasználható komponensek fejlesztése
2.5.8. Funkciómeghatározás
2.5.8.1. I/O szerkezetek meghatározása (Jackson-módszer)
2.5.8.2. Relációs adatelemzés
2.5.8.3. Egyed-esemény modellezés
2.5.8.4. Egyedtörténeti diagram (ETD)
2.5.8.5. Eseményhatás diagram (EHD)
2.6. Implementáció
2.6.1. Feladatosztályok
2.6.2. Eseményvezérelt rendszerek
2.6.2.1. Konkurens- és valós idejű ütemezők
2.6.3. Deklaratív rendszerek
2.6.3.1. Problémák és problématerek
2.6.4. Procedurális programozás
2.6.4.1. A procedurális programozási nyelvekről
2.6.5. Deklaratív fejlesztőeszközök
2.6.5.1. Deklaratív programozási nyelvek
2.6.6. 4GL fejlesztőeszközök
2.6.6.1. Kezelői felület
2.6.6.2. Kommunikációs felület
2.6.6.3. Alkalmazáslogika
2.7. Verifikáció és validáció
2.7.1. Szoftverátvizsgálás
2.7.1.1. Kód átvizsgálás (Code review, inspection)
2.7.1.2. Kód auditálás
2.7.2. Szoftvertesztelés
2.7.2.1. Black-box tesztelés
2.7.2.2. Grey-box tesztelés
2.7.2.3. White-box tesztelés
2.7.2.4. Útvonal-tesztelés
2.7.2.5. Rendszertesztelés
2.7.2.6. Objektumorientált tesztelés
2.7.3. Tesztelési eszközrendszerek
2.7.4. A tesztelés helye a folyamatban
2.7.5. Debugging
2.7.6. Verifikáció és validáció tervezés
2.7.7. Verifikáció és validáció modell
2.8. Projektmenedzsment
2.8.1. Az emberek menedzselése
2.8.2. Szoftver költségeinek becslése
2.8.3. Minőség-ellenőrzés és- biztosítás
2.8.4. Konfiguráció menedzsment
2.8.4.1. Konfiguráció menedzsment tervezés
2.8.5. Változtatás vezérlés
2.8.5.1. Rendszerépítés
2.8.6. Verzió és Release menedzsment
2.8.6.1. Verzió elnevezés
2.8.6.2. Verzió és release készítés
2.8.7. Konfiguráció menedzsment eszközök
2.8.7.1. SCCS
2.8.7.2. MAKE
2.8.8. Ellenminták a projektmenedzsmentben (AntiPatterns)
2.9. Minőségkezelés
2.9.1. Minőségbiztosítás
2.9.2. A szoftverminőség
2.9.3. Minőségtervezés
2.9.4. Minőség-ellenőrzés
2.9.4.1. Szoftvermérés, metrikák
2.9.4.2. Minőségi jellemzők mérése
2.9.4.3. Mérési modellek
2.9.4.4. Mérési folyamat
2.9.5. Szoftvertermékekre vonatkozó szabványok
2.9.5.1. Szoftvertermék-minőség szabvány, avagy ISO 9126
2.10. Szoftverelolúció
2.11. Szoftverkarbantartás
2.11.1. Karbantartási költségek
2.12. Szoftver újratervezés
2.12.1. Visszatervezés
OBJEKTUMORIENTÁLT RENDSZERFEJLESZTÉS
3.1. Az objektumorientált paradigma
3.1.1. Dekompozíció és absztrakció
3.1.1.1. Algoritmikus dekompozíció
3.1.1.2. Objektumorientált dekompozíció
3.1.2. Az objektumorientáltság fogalma
3.1.2.1. Az osztály fogalma
3.1.2.2. Az objektum fogalma
3.1.3. Absztrakt adattípusok és objektumok
3.1.4. Az objektumok jellemzői
3.1.4.1. Belső állapot
3.1.4.2. Viselkedés
3.1.4.3. Azonosság
3.1.4.4. Élettartam
3.1.5. Az objektumok közötti kapcsolatok
3.1.5.1. Kapcsolatok
3.1.5.2. Összetétel
3.1.6. Az osztályok jellemzői
3.1.6.1. Felület
3.1.6.2. Implementáció
3.1.7. Osztályok és objektumok közötti relációk
3.1.7.1. Asszociáció vagy társítás
3.1.7.2. Kizárólagos vagy kapcsolat
3.1.7.3. Aggregáció
3.1.7.4. Kompozíció
3.1.7.5. Öröklődés (specializáció és általánosítás)
3.1.8. Az interfész fogalma
3.1.9. Függőség osztályok között
3.1.10. Sablonok
3.1.11. Metaosztály
3.2. A modellezés
3.2.1. A szoftverfejlesztés fejlődése
3.2.2. A modellezés szükségessége
3.2.3. Formalizálás szerepe
3.3. Módszertanok
3.3.1. Szabványosítás
3.3.2. Az OMT
3.3.3. Rational Unified Process
3.3.3.1. A RUP statikus szerkezete
3.3.3.2. A RUP dinamikus szerkezete
3.3.4. A RUP folyamat ábrázolása
3.3.4.1. Folyamatkomponensek és modellek
3.3.4.2. Követelményrögzítés
3.3.4.3. Elemzés és tervezés
3.3.4.4. Implementáció
3.3.4.5. Ellenőrzés
3.3.5. A „Q” modellező módszer
3.3.6. A folyamat: Objectory
3.4. A sikerháromszög
3.4.1. UML, mint jelölésrendszer
3.4.2. Fejlesztési folyamatok
3.4.3. Fejlesztő és modellező eszközök
3.5. Az UML nyelv
3.5.1. Modell, nézet és diagram
3.5.2. Az UML nézetei
3.5.3. Elemek és relációk
3.5.4. Diagramok
3.5.5. Az UML modelljei
3.5.6. Általános kiterjeszthetőségi mechanizmusok
3.5.6.1. Sztereotípiák (Stereotypes)
3.5.6.2. Elemek tulajdonságai
3.5.6.3. Kényszer (Constraint)
3.5.6.4. Megjegyzés (Comment)
3.5.7. A használati eset diagram
3.5.7.1. Alapfogalmak
3.5.7.2. A use case-ek kivonatának megszerkesztése
3.5.7.3. A use case leírás magyarázata
3.5.7.4. A use case diagram relációi
3.5.7.5. A használati eset modell
3.5.7.6. A használati eset dokumentációja
3.5.7.7. A használati eset megvalósítása
3.5.8. Csomagdiagram
3.5.8.1. Alrendszerek
3.5.8.2. Modellek
3.5.9. Az osztálydiagram
3.5.9.1. A névszakasz
3.5.9.2. A listaszakaszok
3.5.9.3. Utility osztály
3.5.9.4. Entity osztály
3.5.9.5. Bondary osztály
3.5.9.6. Control osztály
3.5.9.7. Az interfész
3.5.9.8. Parametrizált osztályok
3.5.9.9. Relációk
3.5.9.10. Absztrakt osztályok és felületek
3.5.9.11. Kvalifikált társítás
3.5.9.12. Az osztályok azonosítása
3.5.9.13. Osztályspecifikáció
3.5.10. Belső struktura diagram
3.5.11. Az objektumdiagram
3.5.12. Kölcsönhatás vagy interakció diagramok
3.5.12.1. Szekvenciadiagram
3.5.12.2. Együttműködési diagram
3.5.12.3. Időzítésdiagram
3.5.12.4. Áttekinthető együttműködési diagram
3.5.13. Állapotdiagram
3.5.13.1. Események
3.5.13.2. Az állapotok általánosítása
3.5.13.3. A history
3.5.13.4. Konkurencia modellezése
3.5.13.5. Kapcsolat a forráskóddal
3.5.14. Aktivitásdiagram
3.5.14.1. Objektum-folyam
3.5.14.2. Döntések
3.5.14.3. Szignál küldése és fogadása
3.5.14.4. Szinkronizáció, konkurencia
3.5.14.5. Sávok
3.5.14.6. Állapot- vagy aktivitásdiagram?
3.5.15. Komponensdiagram
3.5.15.1. Komponensek
3.5.16. Telepítési diagram
3.5.16.1. Csomópontok
3.5.16.2. Csomópontok közötti kapcsolatok
3.5.16.3. Komponensek
3.5.17. A dokumentáció eszközei
3.5.17.1. Jegyzet
3.5.17.2. Dokumentáció
3.5.17.3. Szöveg
3.5.18. Az OCL
3.5.19. Címke-érték (tagged value)
3.5.20. Profileok
3.5.21. Vizuális tervezés
3.5.22. Kockázat-vezérelt fejlesztés
3.5.23. Komponens alapú fejlesztés
3.5.24. Keretszerkezetek (Framework)
3.6. Modelvezérelt rendszerfejlesztés (MDA)
3.6.1. A MDA szabvány
3.6.2. A MDA architektúrája
3.6.3. Automatizált fejlesztési folyamat
3.6.4. MDA-szolgáltatások
3.6.5. A MDA előnyei
3.7. Az UML2 architektúrája
3.7.1. Infrastructure
3.7.2. Superstructure
3.7.3. Diagram Interchange Model
3.8. Tervezési minták
3.8.1. Tervezési minták az objektumorientált szoftverfejlesztésben
3.8.2. Tervezési minták felismerése
3.9. Aspektus-orientált és intencionális programozás
3.9.1. Az objektumorientált programozáson túl
3.9.2. Aspektus-orientált programozás
3.9.3. Intencionális programozás
RENDSZERFEJLESZTÉS A CASE ESZKÖZÖKKEL
4.1. CASE eszközök
4.2. A CASE folyamat
4.3. Módszerek
4.4. Tervezés
4.5. Kapcsolat
4.5.1. A CASE és a 4GL kapcsolta
4.6. UML a CASE eszközökben
4.6.1. A fejlesztési körutazás (round trip engineering)
4.7. Enterprise Architect CASE eszköz
4.7.1. Új modell létrehozása
4.7.1.1. Általános beállítások (General)
4.7.1.2. Diagram beállítások (Diagram)
4.7.1.3. Objektum beállítások (Objects)
4.7.1.4. Színek (Standard és Collaboration Colors)
4.7.1.5. UML eszköztár (UML Element Toolbox)
4.7.1.6. Nyelvek, kódgenerálás (Generation)
4.7.2. A modellelem tár
4.7.3. Diagramok készítése
4.7.4. Dokumentáció generálása
4.7.5. Kódgenerálás
4.7.6. Kód visszafejtése
4.8. Rendszerfejlesztés az Enterprise Architect-el
4.8.1. Az Internet-brokeringről
4.8.2. Az interneten működő brókercégek fajtái
4.8.2.1. Az Internet-only szolgáltatás előnyei
4.8.2.2. Az Internet-only szolgáltatás hátrányai
4.8.2.3. A hagyományos brókercégek Internet-brokering üzletágainak előnyei
4.8.2.4. A hagyományos brókercégek Internet-brokering üzletágainak hátrányai
4.8.3. Az ügyfelek elemzése
4.8.4. Biztonság
4.8.5. A rendszer célja
4.8.6. A használati esetek modellezése
4.8.7. Az osztályok feltárása
4.8.7.1. A böngésző
4.8.7.2. A honlap
4.8.7.3. A webserver
4.8.7.4. Az adatbázis
4.8.7.5. A kliens-szerver applikáció
4.8.8. Szekvenciadiagram
4.8.9. Dinamikus viselkedés
4.8.10. Telepítési diagram
4.8.11. Komponens diagram
4.8.12. A kliens-szerver alkalmazás
4.8.13. A kliens program
4.8.13.1. A szerver program
Produse legate