Szoftvertechnológia 8. előadás. Szoftverrendszerek tervezése. 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.



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

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

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 II 2. előadás. Specifikáció és követelménymenedzsment

Programozási technológia 2.

Programozási technológia 2.

3. Beadandó feladat dokumentáció

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.

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

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

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

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

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

01. gyakorlat - Projektalapítás

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

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

S01-7 Komponens alapú szoftverfejlesztés 1

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

In short, software is eating the world.

UML (Unified Modelling Language)

Programozási technológia

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

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

ELTE, Informatikai Kar december 12.

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

Zimbra levelező rendszer

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

Telepítési Kézikönyv

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

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

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

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

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

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

Programfejlesztési Modellek

Előzmények

Gyakorlati vizsgatevékenység A

Személyügyi nyilvántartás szoftver

Szakdolgozati, TDK témajavaslatok

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

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

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

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

Példa webáruház kialakítás rendszerdokumentáció

30 MB INFORMATIKAI PROJEKTELLENŐR

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

Microsoft SQL Server telepítése

INFORMATIKAI ALAPISMERETEK

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

2. Beadandó feladat dokumentáció

Gyakorlati vizsgatevékenység B

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

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

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

GalyaTető Grand Hotal nyilvántartási rendszer

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

Hardver és szoftver követelmények

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

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

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

Egyetemi könyvtári nyilvántartó rendszer

Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)

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

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

Szerepjáték Project Story of my life

Egyetemi könyvtári nyilvántartó rendszer

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

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

Bevezetés az informatikába

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

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

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

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

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

Junior Java Képzés. Tematika

Enterprise extended Output Management. exom - Greendoc Systems Kft. 1

Információtartalom vázlata

Tamagocsi Projektterv

Gyakorlati vizsgatevékenység B

A rendszert négy komponensből építjük fel, amelyek a következők:

Az adatbázisrendszerek világa

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

ALKALMAZÁS KERETRENDSZER

Webes alkalmazások fejlesztése

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

Az SQL*Plus használata

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

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

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

alkalmazásfejlesztő környezete

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

Vectory telepítési útmutató

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

A Java EE 5 plattform

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Szoftvertechnológia 8. előadás Szoftverrendszerek tervezése 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Models are not right or wrong; they are more or less useful. (Martin Fowler)

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 álkotta szoftvereket nevezzük szoftverrendszernek (software system) a rendszerben jelen lévő programokat nevezzük a rendszer komponenseinek (component) ELTE IK, Szoftvertechnológia 8:3

Komponensek 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ő felületen (interface) keresztül teremti meg szolgáltathat olyan funkcionalitást, amelyet más komponensek használnak fel, ehhez tartozik egy szolgáltatott felület (provided interface) felhasználhat más komponenseket, amelyek funkcionalitását egy elvárt felületen (required interface) keresztül érhetik el ELTE IK, Szoftvertechnológia 8:4

Komponensek 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) asztali alkalmazás mobil alkalmazás weblap webszolgáltatás adatbázis ELTE IK, Szoftvertechnológia 8:5

Komponensek Egy program is felbontható komponensekre, amennyiben egyes részeit újrafelhasználhatóvá szeretnénk tenni Egy program komponensei lehetnek: végrehajtható állomány (executable), amely biztosítja a belépési pontot az alkalmazásba 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:6

Komponensdiagram A szoftverrendszer komponenseit UML komponensdiagram (component diagram) segítségével ábrázolhatjuk ismerteti a rendszer komponenseit, a szolgáltatott/elvárt felületeket é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. felület külön megjeleníthető) ELTE IK, Szoftvertechnológia 8:7

Komponensdiagram Pl.: asztali alkalmazás mobil alkalmazás webszolgáltatás weblap SQL adatbázis ELTE IK, Szoftvertechnológia 8:8

Telepítési diagram 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> ELTE IK, Szoftvertechnológia 8:9

Telepítési diagram 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:10

Telepítési diagram Pl.: ELTE IK, Szoftvertechnológia 8:11

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 adat tervezé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 ELTE IK, Szoftvertechnológia 8:12

1. esettanulmány 1. esettanulmány: 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 rendeléseket kell kezelnünk, amelyben tetszőleges tétel szerepelhet, illetve a rendelés tartozhat egy törzsvásárlóhoz lehetőségünk van utólagosan lekérdezni a függőben lévő rendeléseket, valamint napi, havi és törzsvásárolói számra összesített nettó/bruttó fogyasztást ELTE IK, Szoftvertechnológia 8:13

1. esettanulmány Tervezés (telepítés): 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 ELTE IK, Szoftvertechnológia 8:14

1. esettanulmány Tervezés (adatformátum): 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 ELTE IK, Szoftvertechnológia 8:15

1. esettanulmány Tervezés (adatformátum): 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:16

2. esettanulmány 2. esettanulmány: Készítsünk egy Memory kártyajátékot, amelyben két játékos küzd egymás ellen. A játékmezőn kártyapárok találhatóak, és a játékosok feladata ezek megtalálása. a játékban választhatunk kártyacsomagot, a játékosok megadhatják neveiket, valamint a játék méretét (kártyák száma) a játékosok felváltva lépnek, minden lépésben felfordíthatnak két kártyát, amennyiben egyeznek, úgy felfordítva maradnak és a játékos ismét léphet, különben 1 másodperc múlva visszafordulnak a játékot az nyeri, aki több kártyapárt talált ELTE IK, Szoftvertechnológia 8:17

2. esettanulmány Tervezés (telepítés): 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 ELTE IK, Szoftvertechnológia 8:18

2. esettanulmány Tervezés (adatformátum): 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 ELTE IK, Szoftvertechnológia 8:19

3. esettanulmány 3. esettanulmány: 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 találhatóak 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 felhasználók egy webes felületen keresztül foglalhatnak apartmanokat (adataik, valamint a foglalás időpontja megadásával), amelyeket városok szerint böngészhetnek a munkatársak egy grafikus felületű alkalmazásban szerkeszthetik az apartmanok adatait, képeit ELTE IK, Szoftvertechnológia 8:20

3. esettanulmány Használati esetek: adminisztrációs felület apartmanok listázása «precedes» bejelentkezés webes felület «precedes» apartman keresés apartman szerkesztése «include» apartman képeinek feltöltése «precedes» adminisztrátor felhasználó «precedes» «invokes» «include» «include» apartman foglalása apartman adatainak megadása/módosítása «include» új apartman felvitele «invokes» «extend» adatbázis foglalás ütközésének ellenőrzése apartmanok lekérdezése apartmanok tárolása ELTE IK, Szoftvertechnológia 5:21

3. esettanulmány 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 ELTE IK, Szoftvertechnológia 8:22

3. esettanulmány Tervezés (komponensek, telepítés): a két alkalmazás közös adatokat használ, amelyeket relációs adatbázisban tárolunk, ehhez MSSQL-t használunk 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 ELTE IK, Szoftvertechnológia 8:23

3. esettanulmány Tervezés (komponensek): «.NET desktop application» TravelAgencyAdmin REST «ASP.NET webservi... TravelAgencyService «ASP.NET webpag... TravelAgencyWeb SQL «MSSQL database» TravelAgencyDatabase SQL ELTE IK, Szoftvertechnológia 8:24

3. esettanulmány Tervezés (telepítés): ELTE IK, Szoftvertechnológia 8:25

3. esettanulmány Tervezés (adatformátum): 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 vane; ügyfelek (customer): azonosító, név; ELTE IK, Szoftvertechnológia 8:26

3. esettanulmány Tervezés (adatformátum): ELTE IK, Szoftvertechnológia 8:27

A rendszerterv 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) ELTE IK, Szoftvertechnológia 8:28

A rendszerterv A rendszerterv 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. adat tervezés (adatformátumok leírása) ELTE IK, Szoftvertechnológia 8:29

A rendszerterv A rendszerterv 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:30