Models are not right or wrong; they are more or less useful.

Hasonló dokumentumok
Szoftvertechnológia 8. előadás. Szoftverrendszerek tervezése. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Szoftvertechnológia 8. előadás. Szoftverrendszerek tervezése Giachetta Roberto

Models are not right or wrong; they are more or less useful.

Programozási technológia II 3. előadás. Objektumorientált tervezés Giachetta Roberto

Programozási technológia 2.

Programozási technológia II 2. előadás. Specifikáció és követelménymenedzsment

Programozási technológia 2.

Szoftvertechnológia 2. előadás. Specifikáció és követelménymenedzsment. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Szoftvertechnológia 2. előadás. Every big computing disaster has come from taking too many ideas and putting them in one place.

3. Beadandó feladat dokumentáció

Szoftvertechnológia 1. előadás. A szoftverfejlesztési folyamat. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

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

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

Szoftvertechnológia 8. gyakorlat. Tervezés. Tervezés A szoftver életciklus

S01-7 Komponens alapú szoftverfejlesztés 1

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

In short, software is eating the world.

Szoftvertechnológia 1. előadás. A szoftverfejlesztési folyamat Giachetta Roberto groberto@inf.elte.hu

01. gyakorlat - Projektalapítás

Szoftvertechnológia 2. gyakorlat. Projektdefiníció és elemzés Giachetta Roberto

UML (Unified Modelling Language)

Név: Neptun kód: Pontszám:

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

Programozási technológia

Programfejlesztési Modellek

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.

Telepítési Kézikönyv

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET)

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

30 MB INFORMATIKAI PROJEKTELLENŐR

Zimbra levelező rendszer

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté

Verifikáció és validáció Általános bevezető

Előzmények

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté

Személyügyi nyilvántartás szoftver

2. Beadandó feladat dokumentáció

HecPoll a vezérlő rendszer

BarAck.Net. Internetes csomagkezel. Felhasználói kézikönyv V 1.0. (2011. július 20.)

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

Gyakorlati vizsgatevékenység A

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (ASP.NET)

Könyvtári címkéző munkahely

Földmérési és Távérzékelési Intézet

Szakdolgozati, TDK témajavaslatok

GalyaTető Grand Hotal nyilvántartási rendszer

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Hardver és szoftver követelmények

Vonalkód olvasó rendszer. Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1]

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

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

ELTE, Informatikai Kar december 12.

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

ALKALMAZÁS KERETRENDSZER

Informatikai projektellenőr szerepe/feladatai Informatika / Az informatika térhódítása Függőség az információtól / informatikától Információs

Információtartalom vázlata

Gyakorlati vizsgatevékenység B

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

A Java EE 5 plattform

SABLONOZÓ KERETRENDSZER

Programozási technológia 1.

Bevezetés az informatikába

Webes alkalmazások fejlesztése

Számítógépes munkakörnyezet II. Szoftver

Object Orgy PROJEKTTERV 1 (9) Adattípusok menedzselése Palatinus Endre

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Kalumet Számlázó. Termék leírás

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Web:

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

INFORMATIKAI ALAPISMERETEK

WEB2GRID: Desktop Grid a Web 2.0 szolgálatában

Készítette: Enisz Krisztián, Lugossy Balázs, Speiser Ferenc, Ughy Gergely

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

A dokumentáció felépítése

DW 9. előadás DW tervezése, DW-projekt

CabMap hálózat-dokumentáló rendszer

IV.4. FELHŐ ALAPÚ BIZTONSÁGOS ADATTÁROLÁSI MÓDSZER ÉS TESZTKÖRNYEZET KIDOLGOZÁSA

Intelligens közlekedési rendszerek (ITS)

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

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

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

Szerepjáték Project Story of my life

S01-8 Komponens alapú szoftverfejlesztés 2

A számítógépes feladatok a várt megoldáshoz egyértelmű utalásokat tartalmazzanak.

az MTA SZTAKI elearning osztályának adaptív tartalom megoldása Fazekas László Dr. Simonics István Wagner Balázs

Adatmodellezés. 1. Fogalmi modell

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Szoftvertechnológia 8. előadás Models are not right or wrong; they are more or less useful. (Martin Fowler) Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A szoftverrendszer Szoftvernek nevezzük a program(ok), dokumentáció(k), konfiguráció(k), valamint adatok együttese mivel a megoldandó feladatok összetettek lehetnek, a megoldást nem feltétlenül egy program, hanem több program tudja megadni a végrehajtás során ezek a programok egymással kommunikálnak (adatot cserélnek) Egymással kommunikáló programok alkotta szoftvereket nevezzük szoftverrendszernek (software system) a rendszerben jelen lévő programokat nevezzük a rendszer komponenseinek (component) A szoftver komponens egy adott funkcionalitásért felelő, fizikailag elkülönülő része a rendszernek önállóan (újra)felhasználható, telepíthető belső működése rejtett, a kapcsolatot megfelelő interfészen (interface) keresztül teremti meg szolgáltathat olyan funkcionalitást, amelyet más komponensek használnak fel, ehhez tartozik egy szolgáltatott interfész (provided interface) felhasználhat más komponenseket, amelyek funkcionalitását egy elvárt interfész (required interface) keresztül érhetik el ELTE IK, Szoftvertechnológia 8:3 ELTE IK, Szoftvertechnológia 8:4 Egy szoftverrendszerben számos komponens található, pl. mobil alkalmazás, asztali alkalmazás, weblap (biztosítják a kapcsolatot a felhasználóval) webszolgáltatás (gondoskodik az adatok továbbításáról) adatbázis (gondoskodik az adatok megfelelő tárolásáról) Egy alkalmazás is felbontható komponensekre, amennyiben egyes részeit újrafelhasználhatóvá szeretnénk tenni Egy alkalmazás komponensei lehetnek: végrehajtható állomány (executable), amely biztosítja a belépési pontot az alkalmazásba asztali alkalmazás mobil alkalmazás weblap webszolgáltatás adatbázis programkönyvtár (library), amely adott funkcionalitások gyűjteménye (nem végrehajtható), objektumorientált környezetben osztályok gyűjteménye (class library) végrehajtható állomány programkönyvtár programkönyvtár ELTE IK, Szoftvertechnológia 8:5 ELTE IK, Szoftvertechnológia 8:6 1

Komponensdiagram A szoftverrendszer komponenseit UML komponensdiagram (component diagram) segítségével ábrázolhatjuk Komponensdiagram Pl.: ismerteti a rendszer komponenseit, a szolgáltatott/elvárt interfészeket és a közöttük fennálló kapcsolatokat (connector) <szolgáltatott felület> <elvárt felület> <komponens> <kapcsolat> <komponens> a komponens diagramnak osztálydiagram elemeket is elhelyezhetünk (pl. interfész külön megjeleníthető) ELTE IK, Szoftvertechnológia 8:7 ELTE IK, Szoftvertechnológia 8:8 A szoftverrendszerek komponensei akár különböző hardver eszközökre is kihelyezhetőek, amelyeken interakcióba lépnek a környezetükkel (más szoftverekkel) A szoftverrendszert kihelyezési és környezeti szempontból az UML telepítési diagram (deployment diagram) ábrázolja ismerteti azon csomópontokat (node), amelyekre az egyes alkotóelemei (artifact) találhatóak <csomópont> <alkotóelem> <csomópont> <alkotóelem> A rendszer alkotóeleme lehet bármilyen, fizikailag elkülönülő tartozéka a szoftvernek pl. mobil alkalmazás, weblap, kódfájl, adatfájl, adatbázis, konfigurációs fájl a komponenseket jelölhetjük komponensként A rendszer csomópontja lehet: egy hardver eszköz (device), amelyen futtatjuk a szoftvert pl. mobiltelefon, szerver gép egy végrehajtási környezet (execution environment), amely biztosítja szoftverek futtatását, pl. webszerver, virtuális gép, adatbázis-kezelő ELTE IK, Szoftvertechnológia 8:9 ELTE IK, Szoftvertechnológia 8:10 Pl.: Adatformátumok A szoftverrendszer tervezése (system design) mellett foglalkoznunk kell a rendszer által kezelt adatok kezelésének módjával, formátumának meghatározásával, ez az adattervezés (data design) minden, a szoftver (vagy komponensei) számára bemenetként, vagy kimenetként szolgáló adat formátumát, felépítését meg kell adnunk (pl. adatfájl, adatbázis, konfigurációs fájl, felhasználó által letölthető adatok) összetett adatok esetén támaszkodhatunk létező formátumokra (pl. CSV, XML, JSON), vagy létrehozhatunk egyedi formátumot az adattervezés is megfelelő modellekkel rendelkezik (pl. adatbázisok tervezhetőek egyed-kapcsolati modellel, vagy UML adatmodellel) ELTE IK, Szoftvertechnológia 8:11 ELTE IK, Szoftvertechnológia 8:12 2

Feladat: Készítsük el Marika néni kávézójának eladási nyilvántartását végigkövető programot. a kávézóban 3 féle étel (hamburger, ufó, palacsinta), illetve 3 féle ital (tea, narancslé, kóla) közül lehet választani az ételek ezen belül különfélék lehetnek, amelyre egyenként lehet árat szabni, és elnevezni, az italok árai rögzítettek a program kezelje a rendeléseket, amelyekben tetszőleges tételek szerepelhetnek, illetve a rendelés kapcsolódhat egy törzsvásárlóhoz A program egy komponensben valósul meg, egy személyi számítógépen fog futni a program közvetlenül az operációs rendszeren fut, nincs külön igénye a végrehajtási környezetre a program az adatokat egy fájlban (coffeshop.dat) szöveges formában fogja tárolni biztosítsunk lehetőséget a függőben lévő rendeléseket lekérdezésére, valamint napi, havi és törzsvásárolói számra összesített nettó/bruttó fogyasztási statisztikák követésére ELTE IK, Szoftvertechnológia 8:13 ELTE IK, Szoftvertechnológia 8:14 A fájlban rendelések következnek egymás után, minden rendelésnél adott az azonosító, a dátum, a törzsvásárolói kártya száma (vagy 0, amennyiben nincs) és a tételek száma a rendelés utána felsoroljuk a tételeket, minden tételnél megadjuk a típust (ehhez elég egy karakter) amennyiben a tétel egy étel, akkor rögzítjük a pontos nevet, illetve a bruttó árat CSV formátumnak megfelelően a fájlban a tartalmi elemeket (rendelés, tétel) sortörés választja el, a soron belül a tartalmat pontosvessző segítségével választjuk el a fájl szerkezetének sémája: <rendelés azonosító>;<dátum>;<törzsv. szám>; <tételek száma> <típus: h/u/p/t/n/k>;<étel neve>;<étel ára> <típus: h/u/p/t/n/k>;<étel neve>;<étel ára> <rendelés azonosító>;<dátum>;<törzsv. szám>; <tételek száma> pl.: 184601;2015-11-11;73;2 h;béke;800 t ELTE IK, Szoftvertechnológia 8:15 ELTE IK, Szoftvertechnológia 8:16 Feladat: Készítsünk egy Memory kártyajátékot, amelyben két játékos küzd egymás ellen, és a cél kártyapárok megtalálása a játéktáblán. a játékosok felváltva lépnek, minden lépésben felfordíthatnak két kártyát amennyiben a kártyák egyeznek, úgy felfordítva maradnak és a játékos ismét léphet, különben visszafordulnak, és a másik játékos következik A program egy komponensben valósul meg, egy személyi számítógépen fog futni, és igényli a QT keretrendszer meglétét A program a kártyacsomagok képeit külön tárolja a játékot az nyeri, aki több kártyapárt talált meg lehessen a játékosok neveit megadni, kártyacsomagot választani, valamint a kártyák számát (a játéktábla méretét) szabályozni ELTE IK, Szoftvertechnológia 8:17 ELTE IK, Szoftvertechnológia 8:18 3

Kártyacsomagok megvalósítása: minden kártyacsomagnak van egy neve, valahány lapja, illetve egy hátoldala, ezeket képfájlban, PNG formátumban tároljuk a kártyacsomagokat könyvtáranként helyezzük el, minden könyvtárban található egy szöveges fájl (name.txt), amely tartalmazza a csomag nevét a hátlapot egy fájlban (back.png) tároljuk, ez sosem változik az előlapok fájljait sorszámozzuk (<sorszám>.png), és feltételezzük, hogy minden fájl más képet tartalmaz Feladat: Készítsük el egy utazási ügynökség apartmanokkal foglalkozó rendszerét. az apartmanok épületekben találhatóak, amelyek városokban helyezkednek el az épületek különböző adatokkal (leírás, szolgáltatások, pontos hely, tengerpart távolság, ), valamint képekkel rendelkeznek a vendégek számára biztosítsunk egy webes felületet, amelyen keresztül apartmanokat kereshetnek, foglalhatnak a munkatársak számára biztosítsunk egy alkalmazást, amelyben szerkeszthetik az apartmanok adatait, képeit, valamint kezelhetik a foglalásokat ELTE IK, Szoftvertechnológia 8:19 ELTE IK, Szoftvertechnológia 8:20 Tervezés (komponensek, telepítés): A rendszerben található egy webes, valamint egy adminisztrációs kliens, amelyet külön alkalmazások valósítanak meg A webes kliens egy weblap, amelyet egy webszerverrel futtatunk, és ASP.NET keretrendszer segítségével valósítjuk meg Az adminisztrációs kliens egy asztali alkalmazás, amelyet.net keretrendszerben valósítunk meg, ezért a.net virtuális gépe (CLR) futtatja Tervezés (komponensek, telepítés): A weblap és az adatbázis egy közös szerveren helyezkedik el, így a weblap közvetlenül hozzáfér az adatbázishoz Az asztali alkalmazás más számítógépen fog futni, ezért biztonsági okokból nem férhet hozzá közvetlenül az adatbázishoz, a hozzáféréshez közbeiktatunk egy webszolgáltatást A webszolgáltatást egy webszerverrel futtatjuk, és ASP.NET WebAPI keretrendszer segítségével valósítjuk meg A két alkalmazás közös adatokat használ, amelyeket relációs adatbázisban tárolunk, ehhez MSSQL-t használunk ELTE IK, Szoftvertechnológia 8:21 ELTE IK, Szoftvertechnológia 8:22 Tervezés (komponensek): ELTE IK, Szoftvertechnológia 8:23 ELTE IK, Szoftvertechnológia 8:24 4

Az adatbázisban a következő séma szerint tároljuk az adatokat: városok (city): azonosító, városnév; épületek (building): azonosító, név, város azonosító, utca, tengerpart távolság, tengerpart-típus (számként), jellemzők (binárisan összeillesztve), megjegyzés; apartmanok (appartment): azonosító, épület azonosító, szám, ágyak száma, pótágyak száma, felújítás alatt van-e; ügyfelek (customer): azonosító, név; ELTE IK, Szoftvertechnológia 8:25 ELTE IK, Szoftvertechnológia 8:26 A tervezés eredménye a szoftver rendszerterve (software design description, SDD), amely tartalmazza: a program statikus szerkezetét, azaz a programegységek feladatát, részletes leírását és a köztük lévő relációkat a program dinamikus szerkezetét, azaz a program eseményeinek kiváltódását és hatásait, a programegységek állapotainak változását, az üzenetküldések megvalósítását a tárolt, kezelt, és eredményül adott adatok formáját, leírását a programok belső és külső interfészeinek leírását ajánlásokat az implementáció számára (stratégia, függőségek, programozási nyelv, tesztelési módszerek) felépítése: 1. előszó (célközönség, dokumentum-történet) 2. bevezetés (szoftver célja, helye, szükségessége, előnyei, fejlesztési módszertan) 3. fogalomtár (technikai áttekintés) 4. rendszer architektúra (magas szintű áttekintés, UML csomag-, komponens-, állapotdiagram) architektúrális minták funkcionális megfeleltetés 5. adattervezés (adattárolás, formátumok leírása) ELTE IK, Szoftvertechnológia 8:27 ELTE IK, Szoftvertechnológia 8:28 felépítése: 6. rendszer tervezés (alacsony szintű áttekintés) statikus terv (UML osztály-, objektumdiagram) dinamikus terv (UML állapot-, szekvencia- és aktivációs diagram) interfész leírás felhasznált algoritmusok és minták 7. felhasználói felület (áttekintés, felületi terv) 8. implementációs ajánlások 9. függelék (pl. adatbázis terv, becsült hardver szükségletek) 10. tárgymutató ELTE IK, Szoftvertechnológia 8:29 5