Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.



Hasonló dokumentumok
Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

A SZOFTVERTECHNOLÓGIA ALAPJAI

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

Objektum orientált alapelvek

A TANTÁRGY ADATLAPJA

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

Ismeretanyag Záróvizsgára való felkészüléshez



Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

A TANTÁRGY ADATLAPJA

Book Template Title. Author Last Name, Author First Name

Szoftver-technológia II. Modulok és OOP. Irodalom

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

Bevezetés a kvantum-informatikába és kommunikációba 2015/2016 tavasz

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést



Cloud computing. Cloud computing. Dr. Bakonyi Péter.

IT biztonság és szerepe az információbiztonság területén

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Cloud computing Dr. Bakonyi Péter.

SZAKKÉPZÉSI KERETTANTERV a(z) MOBILALKALMAZÁS FEJLESZTŐ SZAKKÉPESÍTÉS-RÁÉPÜLÉSHEZ

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench)

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Operációs rendszerek. A Windows NT felépítése

A TANTÁRGY ADATLAPJA

WebSphere Adapters. 6. változat 2. alváltozat. WebSphere Adapter for SAP Software felhasználói kézikönyv 6. változat 2. kiadás

ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS. Általános ismertető és Accountability Patterns

Modellalkotás UML-ben

Mérnök informatikus (BSc) alapszak levelező tagozat (BIL) / BSc in Engineering Information Technology (Part Time)

Summer of LabVIEW The Sunny Side of System Design

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN

SDN a különböző gyártói megközelítések tükrében

Könnyen bevezethető ITIL alapú megoldások a Novell ZENworks segítségével. Hargitai Zsolt Sales Support Manager Novell Hungary

Osztott Objektumarchitektúrák

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

A.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll:

KOGGM614 JÁRMŰIPARI KUTATÁS ÉS FEJLESZTÉS FOLYAMATA


SZAKMAI BESZÁMOLÓ EVK SZAKKOLLÉGIUM. BESZÁMOLÓ: A 2014/2015 A Pallas Athéné Domus Scientiae Alapítvány pályázatára 2014/2015-ÖS TANÉV

JAVA webes alkalmazások

Osztályozó vizsga. Angol nyelv. 10., 11., 12. évfolyam

.NET Microsoft.Net Framework

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák


Komponens modellek. 3. Előadás (első fele)

Információ-architektúra

Osztott alkalmazások fejlesztési technológiái Áttekintés

Szoftveripar és üzleti modellek



Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

SZET GYAK1: Követelmények ellenőrzése




A ROBOTIKA ALKALMAZÁSÁNAK LEHETŐSÉGEI A HAD- ÉS BIZTONSÁGTECHNIKAI MÉRNÖK KÉPZÉSBEN


IT biztonsági szintek és biztonsági kategorizálási minta

A TÉRINFORMATIKA OKTATÁSA ÉS ALKALMAZÁSI LEHETÕSÉGEI



Előzmények

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Az M2M szabványosítási helyzete


A T-Systems felhő koncepciója Frigó József

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT

Komponens alapú fejlesztés



Széchenyi István Egyetem

Közösség, projektek, IDE

Catalyst 6500 Hogyan tovább?

AZ OBJEKTUM-ORIENTÁLT TERVEZÉSI ALAPELVEK KRITIKAI VIZSGÁLATA

EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA

Bánsághi Anna 1 of 67

Applying a Real-time CORBA ORB for Avionics Mission Computing

Szoftver újrafelhasználás

Kinek szól a könyv? Hogyan épül fel a könyv? Megjelenés előtti szoftver A hálózati kézikönyv tartalma A könyv támogatása Kérdések és megjegyzések

UML (Unified Modelling Language)

Objektum Orientált Szoftverfejlesztés (jegyzet)

Mezőgazdasági betakarítási folyamatok szimulációja

7. rész: A specifikációtól az implementációig az EJB rétegben

ACO burkolható fedlapok. ACO műszaki katalógus ACO Burkolható fedlapok UNIFACE PAVING SOLID

MVC. Model View Controller












Átírás:

Tervezési minták Irodalom Steven R. Schach: Object Oriented & Classical Software Engineering, McGRAW-HILL, 6th edition, 2005, chapter 8. E. Gamma, R. Helm, R. Johnson, J. Vlissides:Design patterns: Elements of reusable object-oriented software, Addison-Wesley, 1995 2

A szoftver újra felhasználás két alaptípusa Opportunista (esetleges) újra felhasználás el!ször a termék kerül kifejlesztésre, majd a komponensek bekerülnek az újra felhasználási adatbázisba Szisztematikus (szándékos) újra felh. újra felhasználható komponensek létrehozása, majd a szoftver kifejlesztése 3 Miért kell? Termék gyorsabb piacra kerülése A létrehozott kód mindössze 15%-a új, eredeti 4

Az újra felhasználhatóság ára újra felhasználható elemek létrehozási költsége az elem újra felhasználásának költsége az újra felhasználási folyamat kialakításának és m"ködtetésének költsége 5 Tanulság Számtalan tanulmány szerint a szoftverfejleszt! szervezetekben alacsony az újra felhasználás foka nehéz jól, hatékonyan, széleskör"en újra felhasználható szoftver komponenseket el!állítani 6

Struktúrált kód újra felhasználása Megfelel! modul kohézió esetén, a kód csak ugyanolyan adatokon, adatszerkezeteken használható fel újra 7 OOP újra felhasználhatóság Az objektumok, mivel biztosítják a logikai kohéziót, újra felhasználhatók 8

Újra felhasználási lehet!ségek tervezési elemek újra felhasználása implementálási elemek újra felhasználása 9 Tervezési újra felhasználás Opportunista újra felhasználás adott alkalmazási területhez kötöd! szoftverek fejlesztése esetén 10

Újra felhasználási lehet!ségek közvetlen kód, elemek library-k, toolkitek, (függvény könyvtárak, osztály könyvtárak) alkalmazás keretrendszerek (application framework) tervezési minták (design pattern) 11 Library, toolkit Újra felhasználható rutinok Változó vezérlési logika Vezérlési (alkalmazás) logika könyvtári rutinok (osztályok) 12

Library példák Java Swing Symantec THINK library 13 Alakmazás keretrendszerek Részben rögzített, de testreszabható alkalmazás logika, alkalmazás specifikus modulokkal kitöltve Alkalmazás keretrendszer specifikus rutinok (osztályok) 14

Alkalmazás keretrendszerek Komponensek integrált halmaza, melyek együttm"ködve egy újra felhasználható architektúrát eredményeznek, lehet!vé teszik azonos jelleg" alkalmazások létrehozását 15 Alkalmazás keretrendszerek (folyt.) Gyorsabb fejlesztés mint a toolkitek esetén a terv (architektúra) nagyobb része kerül újra felhasználásra általában a m"ködési logika létrehozása nehezebb, mint egyegy m"veleté 16

7. Known uses and related patterns Vanderbilt University OO Patterns 12 OO Patterns Alkalmazás keretrendszerek (folyt.) Libraries vs. Frameworks Class Libraries vs. Frameworks vs. Patterns Libraries Definition Class libraries Douglas C. Schmidt Self-contained, pluggable ADTs Problem, solut Frameworks Reusable, Framework semi-complete applications Patterns Class Libraries vs. Frameworks Vanderbilt University Problem, solution, context Definition Class libraries Self-contained Frameworks Reusable, sem applications Patterns 17 Vanderbilt University 14 Komponensek integrálása a keretrendszerekbe Komponensek lazán csatoltak callback interfész Függetlenül fejlesztett komponensek csatlakozathatók Általános (generikus) keretrendszer objektumok és alkalmazás specifikus objektumok 18

Keretrendszer példa MacApp Framework 19 Tervezési minták A tervezési minták egy adott területen korábban sikeres megoldások szerkezetét, m"ködését (invariáns értékeit) írják le Mintában leírt szerkezet, újra felhasználáskor a konkrét osztályokat meg kell adni 20

Tervezési minták (folyt.) Probléma és a megoldás lényegének leírása tervezési szótár (pattern language) azonosított minták struktúrált invariáns értékek formális dokumentáció Tervezési alapelvek, keretrendszerek Tervezési ajánlások Konkrét megvalósított rendszerek Pattern language Tervezési minták 21 Minta leírása Név, cél Probléma és kontextus Szerkezet absztrakt leírása A használat pozitív és negatív következményei Implementációs irányelvek, kód példa Ismert felhasználások, kapcsolódó más minták 22

ice s Douglas C. Schmidt Graphical Notation OO Patterns ay be many rs server may react tly to the same ion ject should be as led as possible observers llow observers to ge independently of ubject 8 2. Each observer may react differently to the same notification 3. The subject should be as decoupled as possible from the observers Tervezési minta i.e., allow observers to change independently of Observer pattern Cél: egy objektum állapotának Douglas C. Schmidt megváltozása több másik objektumot Structure érdekel of the Observer Pattern the subject (pl.) bilt University 8 Vanderbilt University tterns Douglas C. Schmidt Intent Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. Vanderbilt University 9 bilt University 10 OO Patterns Vanderbilt University 23 object changes st its dependents are notified and updat automatically. Collaboration in the Observer Pattern Douglas control flow and data flo Variations Push architectures com Pull architectures sepa control flow from data flo Douglas C. Schmidt 10 OO Patterns Douglas C. Schmidt Collaboration in the Observer Pattern Tervezési minták Variations Push architectures combine control flow and data flow (folyt.) Pull architectures separate control flow from data flow OO Patterns Tervezési minta vs. alk. Strategy Protocol Handler Comparing Patterns and Frameworks keretrendszer Vanderbilt University 11 Protocol Filter Reactor/Proactor I/O Strategy Framework Asynchronous Completion Token Adapter Protocol Pipeline Framework Streams State Singleton Cached Virtual Filesystem Acceptor Tilde ~ Expander /home/... Event Dispatcher Concurrency Strategy Framework Service Configurator Strategy Active Object Douglas C. Schmidt Patterns and frameworks are highly synergistic Együtt léteznek Minták i.e., - neither absztrakt isleírások Keretrendszerek - konkrét subordinate nyelvi megvalósítások Patterns can be A keretrendszerekben sok characterized as more minta jelenik meg abstract descriptions of frameworks, which are implemented in a particular language In general, sophisticated frameworks embody dozens of patterns and patterns are often used to document frameworks 24

Minták használata Kisebb változtatásokkal el!forduló, ismétl!d! problémák megoldása Sok, bonyolultan kapcsolódó lépésb!l álló megoldást kívánó problémák Inkább belátást, megértést követel! helyzetek (probléma struktúrálás) 25 Mit!l jó egy minta? Megold valamilyen problémát hasznos Valamilyen meghatározott kontextusban érvényes világosan kiderül hol használható Ismétl!dik újra felhasználható Tanít valamit rávezet a probléma megoldására Jó neve van 26

A minták használatához szükséges megközelítésmód Interfészek és implementáció elkülönítése Közös (állandó, stabil) és változó részek elkülönítése Helyettesíthet!ség, változtathatóság megvalósítása 27 Minták használatának el!nyei Szoftver architektúrák kiterjedt újra felhasználása rendszerek hatékony dokumentálása Szakért!i tudás rögzítése, elérhet!vé tétele Fejleszt!i kommunikáció támogatása Áttérés támogatása OOP-ra 28

Minták használatának hátrányai Tervezési minták nem vezetnek közvetlen kód újra felhasználáshoz Minták félrevezet!en egyszer"nek t"nhetnek Túl sok alkalmazandó minta megjelenése Minták automatizált teszteléssel nem validálhatók Minták alkalmazása emberi munka igényes 29 Hatékony minta alkalmazás Ne tervezzünk újra mindent mintának Támogassuk a minták kifejlesztését A minták kifejlesztésébe vonjuk be a domén szakért!ket és alkalmazás fejleszt!ket Világosan dokumentáljuk a minták alkalmazásának korlátait 30

Újra felhasználással adódó szoftver architektúra Könyvtárak Alkalmazás keretrendszer Tervezési minták 31