„Szoftvertechnológia - Videójegyzet” változatai közötti eltérés

Harapeti (vitalap | szerkesztései)
minek mindent nagy kezdőbetűvel írni?
User15734 (vitalap | szerkesztései)
 
(14 közbenső módosítás, amit 3 másik szerkesztő végzett, nincs mutatva)
266. sor: 266. sor:
** RequirementSpecification: Követelmények technikai része
** RequirementSpecification: Követelmények technikai része
** Preliminary user's manual: felhasználói dokumentumok, felületek!
** Preliminary user's manual: felhasználói dokumentumok, felületek!
** Verifikációs terv (előzetes változata): hogyan fogunk ellenőrizni? Mi a feltétele, hogy átadjuk? Hogyan ellenőrizzük a terméket? SSR
** Verifikációs terv (előzetes változata): hogyan fogunk ellenőrizni? Mi a feltétele, hogy átadjuk? Hogyan ellenőrizzük a terméket? SRR
* Architekturális tervezés: milyen elemekből épül? Azok hogyan kapcsolódnak? Nagy komponensek leírása, PDR
* Architekturális tervezés: milyen elemekből épül? Azok hogyan kapcsolódnak? Nagy komponensek leírása, PDR
* Részletes tervezés: megmondjuk a programozónak, mit csináljon → munka lebontása elemi lépésekre, melyek kiadhatók, ellenőrizhetők: WBS.
* Részletes tervezés: megmondjuk a programozónak, mit csináljon → munka lebontása elemi lépésekre, melyek kiadhatók, ellenőrizhetők: WBS.
1 223. sor: 1 223. sor:
* Mérete
* Mérete
* Kapcsolás ideje, mikor jön létre
* Kapcsolás ideje, mikor jön létre
*
* pl. 16perc
* pl. 16perc
* Mit kommunikálunk?
* Mit kommunikálunk?
** Adat: leggyengébb, Ismerjük a paramétereket, primitív paraméterek (pl. int)
** Adat: leggyengébb, Ismerjük a paramétereket, primitív paraméterek (pl. int)
** Stamp csatolás: Összetett adatot adunk át (pl. rekord, struktúra). Ugyanazt a szerkezetet kell
** Stamp csatolás: Összetett adatot adunk át (pl. rekord, struktúra). Ugyanazt a szerkezetet kell ismerni a két félnek → függenek egy harmadiktól
ismerni a két félnek → függenek egy harmadiktól
** Kontrol: vezérlést adunk át, pl. EOF, a másik modul működését befolyásoljuk, vagyis kívülről vezéreljük
** Kontrol: Vezérlést adunk át, pl. EOF, a másik modul működését befolyásoljuk, vagyis kívülről vezéreljül
** KözösAdatok: pl. globális adatok → kinek a kezében van?
** KözösAdatok: pl. globális adatok → kinek a kezében van?
** Tartalmi jellegű: Egyik programrészből (pl. modul) a másik programrész kódját adatkezelem.
** Tartalmi jellegű: Egyik programrészből (pl. modul) a másik programrész kódját adatkezelem.
1 235. sor: 1 233. sor:
** Minél több adatot adunk át (paraméter), annál nagyobb valószínűséggel lesz baj.
** Minél több adatot adunk át (paraméter), annál nagyobb valószínűséggel lesz baj.
** Legjobb: 1 paraméter.
** Legjobb: 1 paraméter.
-
* Mikor jön létre
* Mikor jön létre
** Program írásakor
** Program írásakor
1 337. sor: 1 334. sor:


==== 00:18:54 ====
==== 00:18:54 ====
===== 33, BlackBoard =====
 
* pl. Adatbáziskezelő rendszerek
==== 00:20:54 ====
* Középen egy nagy adatbázis (oszlop-sorok)
===== 33. BlackBoard =====
* megfelel a hagyományos adatbáziskezelő rendszereknek
* Középen egy nagy adatbázis (oszlop-sorok) (repository (shared data))
* Hozzá csatlakoznak processzek
* Hozzá csatlakoznak processzek
* → Nagy közös adatszerkezetek, amin egymástól független processzek dolgoznak
* → Nagy közös adatszerkezetek, amin egymástól független processzek dolgoznak
* Tranzakciók
* Tranzakciók
[[File:Szofttech_Vizsga_Software_Architectures_Patterns_Blackboard_(repository_(shared_data)).png|400px]]
==== 00:22:34 ====
* Előnye:
* Előnye:
** Felelősségek nagyon jól el vannak különítve
** Felelősségek nagyon jól el vannak különítve
1 348. sor: 1 352. sor:
** Nehéz tesztelni, pl. átírok valamit a központi adatbázisban, megnézzük, a többi kis rész működik-e továbbra is…
** Nehéz tesztelni, pl. átírok valamit a központi adatbázisban, megnézzük, a többi kis rész működik-e továbbra is…
** Nem épp hatékony, magas overhead, ráadásul gyorsan változik
** Nem épp hatékony, magas overhead, ráadásul gyorsan változik
==== 00:20:54 ====
 
===== 34, Interpreter, 30p körül =====
==== 00:28:12 ====
 
===== 34. Interpreter, 30p körül =====
* Egy egyszerű kis virtuális gép (pl. állapotgép, tábla)
* Egy egyszerű kis virtuális gép (pl. állapotgép, tábla)
* Fogom az eventet, ez, és az aktuális állapot alapján becímzünk a táblába, a táblából kiolvasom az értéket, és átteszem a következő állapotra, parancskódra egy switch, majd megyek az elejére
* Fogom az eventet, ez, és az aktuális állapot alapján becímzünk a táblába, a táblából kiolvasom az értéket, és átteszem a következő állapotra, parancskódra egy switch, majd megyek az elejére
1 356. sor: 1 362. sor:
[[File:Szofttech_Vizsga_Interpreter_architekturális_minta.png|400px]]
[[File:Szofttech_Vizsga_Interpreter_architekturális_minta.png|400px]]


==== 00:22:34 ====
==== 00:40:48 ====
 
===== 35, ObjektumOrientált =====
===== 35, ObjektumOrientált =====
* Absztrakt adatszerkezetet implementálunk, amik (az osztályok) egymás metódusait hívják meg.
* Absztrakt adatszerkezetet implementálunk, amik (az osztályok) egymás metódusait hívják meg.


==== 00:18:12 ====
==== 00:43:02 ====
 
===== 36, Event Based, implicit invocation, 43p. =====
===== 36, Event Based, implicit invocation, 43p. =====
* „Előfizetői” minta
* „Előfizetői” minta
* Van egy eseményforrás, ahova beregisztrálnak azok az elemek, akik ezekben érdekeltek, és ha
* Van egy eseményforrás, ahova beregisztrálnak azok az elemek, akik ezekben érdekeltek, és ha változik történik, értesülnek
változik történik, értesülnek
* Sok overhead és nehézség, de használjuk, pl. ablakkezelő
* Sok overhead és nehézség, de használjuk, pl. ablakkezelő
* Előny: objektum interfész, sok event
* Előny: objektum interfész, sok event
1 372. sor: 1 379. sor:
** Korrektség bizonyítása szinte reménytelen (kik kapták meg, milyen sorrendben → ezt igazolni)
** Korrektség bizonyítása szinte reménytelen (kik kapták meg, milyen sorrendben → ezt igazolni)


==== 00:40:48 ====
==== 00:49:31 ====
 
===== 37, Layered, Rétegelt szerkezet =====
===== 37, Layered, Rétegelt szerkezet =====
* Vízszintesen, a hívások között definiál szinteket
* Vízszintesen, a hívások között definiál szinteket
1 380. sor: 1 388. sor:
* Hátrány: nem minden rendszernél használható, teljesítmény szempontjából probléma lehet a funkciók szétválasztása
* Hátrány: nem minden rendszernél használható, teljesítmény szempontjából probléma lehet a funkciók szétválasztása


==== 00:43:02 ====
[[File:Szofttech_Vizsga_Layered_architecture_pattern.png|400px]]
==== 00:49:31 ====
 
==== 00:51:20 ====
==== 00:51:20 ====
==== 00:53:00 ====
==== 00:53:00 ====
==== 00:54:14 ====
==== 00:55:11 ====
==== 00:55:33 ====
===== 38-44, Kliens-Szerver, 54p =====
===== 38-44, Kliens-Szerver, 54p =====
* Ált. 3 réteg:
* Ált. 3 réteg:
1 394. sor: 1 400. sor:
* Sokszor 2 fizikai rétegen helyezzük el.
* Sokszor 2 fizikai rétegen helyezzük el.


==== EA14/00:59:13 == EA15/00:00:40 ====
 
[[File:Szofttech_Vizsga_Software_Architectures_Patterns_Client-server_logical_tiers.png|400px]]
 
==== 00:54:14 ====
==== 00:55:11 ====
==== 00:55:33 ====
 
==== 00:59:12 (EA14/00:59:12 == EA15/00:00:40) ====
===== 45, SOA: Service Oriented Architecture =====
===== 45, SOA: Service Oriented Architecture =====
* pl. Argep.hu, brókerek (kigyűjti az infókat, és ajánlatot mutat)
* pl. Argep.hu, brókerek (kigyűjti az infókat, és ajánlatot mutat)
1 400. sor: 1 413. sor:
* WSDL: Webes szolgáltatások leírása
* WSDL: Webes szolgáltatások leírása
* SOAP: XML-es kommunikáció web szolgáltatások eléréséhez
* SOAP: XML-es kommunikáció web szolgáltatások eléréséhez
* UDDI: „yellowpages”, szakmák szerint milyen szolgáltatások hol vannak
* UDDI: „yellow pages”, szakmák szerint milyen szolgáltatások hol vannak
 
[[File:Szofttech_Vizsga_Software_Architectures_Patterns_SOA.png|400px]]
 
* UDDI (Universal Description, Discovery and Integration)
** enables discovery of WSDL
** is accessed using SOAP
* WSDL ([http://www.w3.org/TR/wsdl Web Services Description Language])
** describes WS
** binds to SOAP
* SOAP ([http://www.w3.org/TR/soap/ Simple Object Access Protocol])
** enables communication between WS
* WS (Web Services)


==== EA14/01:07:05 == EA15/00:02:03 ====
==== EA14/01:07:05 == EA15/00:02:03 ====
1 413. sor: 1 438. sor:
===== 47, =====
===== 47, =====
* SOAP: Simple Object Access Protocol
* SOAP: Simple Object Access Protocol
** Üzenetformátum, RPC-t takar el (RemotePr…C, távoli eljáráshívás)
** Üzenetformátum, RPC-t takar el (Remote Procedure Call, távoli eljáráshívás)
** Különböző Node-okat definiál
** Különböző Node-okat definiál
*** Sender: küld egy üzenetet
*** Sender: küld egy üzenetet
*** Receiver: vesz
*** Receiver: vesz
*** Intermediary: közbenső elem
*** Intermediary: közbenső elem
** Header,Body → Strukturúlt
** Header, Body → Strukturált


* UDDI: UniversalDescription, Discovery and Integration 1:12p
* UDDI: UniversalDescription, Discovery and Integration 1:12p
** Aranyoldalak szerű könyv
** Aranyoldalak-szerű könyv
** Előfizethető
** Előfizethető


==== EA14/01:12:58 == EA15/00:03:46 ====
==== 01:12:58 (EA14/01:12:58 == EA15/00:03:46) ====
===== 48, SOE, Service Oriented Enterprise: Szolgáltatásmérnökség (2013: 24. dia) =====
===== 48, SOE, Service Oriented Enterprise: Szolgáltatásmérnökség (2013: 24. dia) =====
* Szolgáltatási rendszer
* Szolgáltatási rendszer
1 435. sor: 1 460. sor:


===== 2013: 21. dia, SOA - Service Oriented Architecture =====
===== 2013: 21. dia, SOA - Service Oriented Architecture =====
===== SOE – Service Oriented Enterprise =====


* BPEL: Üzleti folyamat leíró nyelv
* BPEL (Business Process Execution Language): Üzleti folyamat leíró nyelv
** Dokumentum flow jelleg, mikor-milyen lépések (amik esetleg újabb szolgáltatások igénybevételét jelentik), melyek mögött emberi tevékenység járhat
** Dokumentum flow jelleg, mikor-milyen lépések (amik esetleg újabb szolgáltatások igénybevételét jelentik), melyek mögött emberi tevékenység járhat
* Végrehejtásra két mód:
* Végrehejtásra két mód:
** Orchestration: zenekar vezénylése, egy process ami leírja a folyamatot, tartozik hozzá egy végrehajtógép, ami a process elemeit végrehajtja
** '''Orchestration''': zenekar vezénylése, egy process ami leírja a folyamatot, tartozik hozzá egy végrehajtógép, ami a process elemeit végrehajtja (''orkesztráció (orchestration) – egy központ ismeri a teljes folyamatot, az kér szolgáltatást az együttműködőktől, akik csak a saját dolgukat végzik.'')
** Choreography: ha elkezdődik a folyamat (pl. érkezik megrendelés), továbbítjuk az első állomásra, ahol az előírt tevékenységet végrehajtják. Majd, hogy hova kell továbbküldeni (szolgáltatást kérni), azt tudja az első állomás.
** '''Choreography''': ha elkezdődik a folyamat (pl. érkezik megrendelés), továbbítjuk az első állomásra, ahol az előírt tevékenységet végrehajtják. Majd, hogy hova kell továbbküldeni (szolgáltatást kérni), azt tudja az első állomás.
Nincs központi rész
Nincs központi rész (''koreográfia (choreography) – a folyamat nincs központosítva, minden résztvevő a dolgát elvégezve az általa ismert következő résztvevő(ke)t aktivizálja.'')
* BPEL4WS: BPEL web service-ekhez.
* BPEL4WS: BPEL web service-ekhez.
* WS-*: WebService Szabványok, ajánlások
* WS-*: WebService Szabványok, ajánlások
1 449. sor: 1 475. sor:
* WS-Policy: összefogja a különböző szabványok szerinti leírásokat
* WS-Policy: összefogja a különböző szabványok szerinti leírásokat
* WS-Coord: Hosszú távú tranzakcióknál használatos
* WS-Coord: Hosszú távú tranzakcióknál használatos
[[File:Szofttech_Vizsga_Software_Architectures_Patterns_SOE.png|400px]]


==== 00:15:56 - 00:22:36 ====
==== 00:15:56 - 00:22:36 ====
1 686. sor: 1 714. sor:
futárok, (→ ezek objektumok)
futárok, (→ ezek objektumok)
* Típus: azon objektumtípusok, melyek kielégítik az interfészt
* Típus: azon objektumtípusok, melyek kielégítik az interfészt
* Kielégíti a Liskov féle helyettesítési elvet: ha az A interfész B-ből származik, akkor egy olyan
* Kielégíti a Liskov féle helyettesítési elvet: ha az A interfész B-ből származik, akkor egy olyan objektum, ami támogatja A interfészt, akkor azt bárhol lehet használni olyan helyen, ahol B-nek van deklarálva. Vagyis: B szupertípus, A származtatott típus. A kompatibilis B. A az egy B. Pl. 18. dia
objektum, ami támogatja A interfészt, akkor azt bárhol lehet használni olyan helyen, ahol B-nek
van deklarálva. Vagyis: B szupertípus, A származtatott típus. A kompatibilis B. A az egy B. Pl. 18. dia


==== 01:08:35 ====
==== 01:08:35 ====
1 696. sor: 1 722. sor:
szolgáltatáskéréssel elérhető (vagyis egy szolgáltatás meghív egy operációt)
szolgáltatáskéréssel elérhető (vagyis egy szolgáltatás meghív egy operációt)
** Általános szignatúrása:
** Általános szignatúrása:
oneway (!= void), Visszatérési érték , Identifier (neve, pl. SetX), Paraméterek (5, 6, stb),
oneway (!= void), Visszatérési érték, Identifier (neve, pl. SetX), Paraméterek (5, 6, stb),
Exception (milyen kivételt dobhat), Contexek
Exception (milyen kivételt dobhat), Contexek


2 089. sor: 2 115. sor:
* Ha az interfész attribútumokat deklarál, abból még nem következik, hogy azok attribútumként lesznek elérhetők (hanem pl. műveleteken keresztül)
* Ha az interfész attribútumokat deklarál, abból még nem következik, hogy azok attribútumként lesznek elérhetők (hanem pl. műveleteken keresztül)
* Példák 29p.
* Példák 29p.
** UML 1.? Szaggatott vonal, nagy (üres) nyíllíl: interfész implementálása
** UML 1: Szaggatott vonal, nagy (üres) nyíllal: interfész implementálása
** UML 2: Szaggatott vonal, normál nyíl, ráírva, hogy „realize”
*** http://i.imgur.com/0LfMGKt.png
** UML 2: Szaggatott vonal, normál nyíl, ráírva, hogy <code>«realize»</code>
*** A régi használatát várják el
*** A régi használatát várják el
** Nyalóka: vonal, végén karika: ugyanaz, mint ez előzők
** Nyalóka: vonal, végén karika: ugyanaz, mint ez előzők
*** Elvárt interfész: Mit várok el; Miközben szolgáltatást végzek kell valaki, aki egy interfészt megvalósít. Jel: Nyalóka, túloldalon félkörrel bevonva
*** Elvárt interfész: Mit várok el; Miközben szolgáltatást végzek kell valaki, aki egy interfészt megvalósít. Jel: Nyalóka, túloldalon félkörrel bevonva
http://i.imgur.com/oQtZpSM.png


==== 00:34:46 ====
==== 00:34:46 ====
2 922. sor: 2 951. sor:
==== 00:24:10 ====
==== 00:24:10 ====
===== 12, Testing, tesztelés – működés közben vizsgáljuk a programot =====
===== 12, Testing, tesztelés – működés közben vizsgáljuk a programot =====
* Konformancia vezérelt tesztelés: előírásoknak meg kell, hogy feleljen, a tesztekkel ezt igazolom
* Szoftvertesztelésben két megközelítés:
* Hibadetektálás: pl. lefagy a program, mert hibásan lett felvéve változó, mert valaki rosszul értelmezte a feladatot → hibasorrend
** Konformancia-vezérelt tesztelés: a szoftverünk valamilyen szabályoknak, előírásoknak meg kell, hogy feleljen, a tesztekkel az a célom, hogy ezt a megfelelőséget igazoljam (pozitív éle van)
** error: valamilyen '''emberi''' tevékenység hiánya, tévedés
** Hibadetektálás: a szoftvertesztelés nem más, mint a szoftver futtatása hibakeresés céljából (negatív éle van). Pl. lefagy a program, mert hibásan lett felvéve változó, mert valaki rosszul értelmezte a feladatot → hibasorrend. Hibákra definíciók (nincs egységes terminológia egyébként):
** fault (bug): nem az van a '''kódban''', aminek lennie kéne, kódhiba (debuggolás)
*** '''error''': valamilyen '''emberi''' tevékenység, annak hiánya, tévedés, elhanyagolás; emberhez köthető, valamit elront, és így ebből keletkezik egy bug
** failure: kívülről '''látható''' (pl. lefagy, rossz eredményt ad), jelenség
*** '''fault (bug)''': a program kódjában keletkezik egy hiba; nem az van a '''kódban''', aminek lennie kéne, vagy épp kihagytam valamit belőle; tehát '''kódbeli hiba''' (debuggolás során ezeket akarjuk megtalálni benne) (pl. ilyenek, mint hogy egy <code>*</code>-ot lehagytunk valahonnan, egy változó rossz értéket kapott, <code>==</code> helyett <code>=</code> áll a kifejezésben, stb.), ez pedig egy failure-t okoz
*** '''failure''': amit kívülről '''láthatunk''' (pl. lefagy a szoftver, rossz eredményt ad), '''jelenség, amiben testet ölt a hiba'''; én ezekkel a hibákkal szembesülök, ehhez a failure-höz kell nekem majd megtalálnom a bugot, hogy a kódban ez mi miatt történt, vagy továbbmehetek, és rájöhetek, hogy tévedés történt, tehát error (pl. specifikációt félreértette, vagy hasonló), így deríthetem ki a hibát


==== 00:29:08 ====
==== 00:29:08 ====