„Csupasz objektumok” változatai közötti eltérés

A Wikipédiából, a szabad enciklopédiából
[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
→‎Példa: Kritika
Kapcsolata más módszerekkel
3. sor: 3. sor:
A csupasz objektumokat három alapelv definiálja:
A csupasz objektumokat három alapelv definiálja:
*Az üzleti logikát és az adatokat ugyanazok az objektumok tartalmazzák, az egységbe zárásnak megfelelően.
*Az üzleti logikát és az adatokat ugyanazok az objektumok tartalmazzák, az egységbe zárásnak megfelelően.
*A felhasználói interfész közvetlenül reprezentálja az adat objektumokat úgy, hogy a felhasználói aktivitás objektumok létrehozására és megtalálására korlátozódjon. Ez az objektumorientált felhasználói felület speciális értelmezése.
*A felhasználói interfész közvetlenül reprezentálja a tartományobjektumokat úgy, hogy a felhasználói aktivitás objektumok létrehozására és megtalálására korlátozódjon. Ez az objektumorientált felhasználói felület speciális értelmezése.
*A felhasználói felületet nem kell kézzel megírni, hanem csak generálni. Ez magában foglalja a forráskód generálását is. Ennek aktualizálása reflexióval támogatható.
*A felhasználói felületet nem kell kézzel megírni, hanem csak generálni. Ez magában foglalja a forráskód generálását is. Ennek aktualizálása reflexióval támogatható.


A mintát először Richard Pawson írta le PhD értekezésáében, ami magában foglalta a különféle előzmények elemzését és az insiprációt a minta létrehozásához, például írt a [[Morphic]] felhasználói interfészről is.
A mintát először Richard Pawson írta le PhD értekezésében, ami magában foglalta a különféle előzmények elemzését és az insiprációt a minta létrehozásához, például írt a [[Morphic]] felhasználói interfészről is.<ref name="pawson">{{cite thesis |degree=Ph.D. |last=Pawson |first=Richard |date=June 2004 |title=Naked objects |url=http://downloads.nakedobjects.net/resources/Pawson%20thesis.pdf |publisher=[[Trinity College, Dublin|Trinity College]], [[University of Dublin]]}}</ref>


A csupasz objektumokat gyakran szembeállítják a [[modell-nézet-vezérlő]] mintával. Azonban Pawson dolgozatának kiadott változatához Trygve Reenskaug, a modell-nézet-vezérlő minta megalkotója írt előszót, ami azt sugallja, hogy a csupasz objektumok közelebb állnak a modell-nézet-vezérlő mintához, mint ahogy azt a minta mai formája alapján gondolhatnánk.
A csupasz objektumokat gyakran szembeállítják a [[modell-nézet-vezérlő]] mintával. Azonban Pawson dolgozatának kiadott változatához Trygve Reenskaug, a modell-nézet-vezérlő minta megalkotója írt előszót, ami azt sugallja, hogy a csupasz objektumok közelebb állnak a modell-nézet-vezérlő mintához, mint ahogy azt a minta mai formája alapján gondolhatnánk.
15. sor: 15. sor:
*Nagyobb agilitás, ami arra utal, hogy a program rugalmasan igazítható az aktuális üzleti körülményekhez. Ez részben abból adadódik, hogy kevesebb réteget kell karban és szinkronban, naprakészen tartani. A megkövetelt 1:1 reprezentáció a felhasználói és az adatmodell között jobb minőségű objektummodellezéshez vezet, ami javítja az agilitást.
*Nagyobb agilitás, ami arra utal, hogy a program rugalmasan igazítható az aktuális üzleti körülményekhez. Ez részben abból adadódik, hogy kevesebb réteget kell karban és szinkronban, naprakészen tartani. A megkövetelt 1:1 reprezentáció a felhasználói és az adatmodell között jobb minőségű objektummodellezéshez vezet, ami javítja az agilitást.
*A felhasználói felület jobb képességnyújtása, ami az objektumorientált felhasználói felületnek (OOUI) tulajdonítható. A csupasz objektumok csak lehetővé teszik, hogy ez könnyebben jöjjön létre.
*A felhasználói felület jobb képességnyújtása, ami az objektumorientált felhasználói felületnek (OOUI) tulajdonítható. A csupasz objektumok csak lehetővé teszik, hogy ez könnyebben jöjjön létre.
*Könnyebb követelményelemzés, mivel a fejlesztők közös nyelvet beszélnek a felhasználóval, így ezen a nyelven egyszerűbben megbeszélhetik a követelményeket, mivel nincsenek máés reprezentációk, amikről a felhasználó nem tud. A gyorsabb fejlesztési ciklussal együtt valós időben létrehozható a prototípus is.
*Könnyebb követelményelemzés, mivel a fejlesztők közös nyelvet beszélnek a felhasználóval, így ezen a nyelven egyszerűbben megbeszélhetik a követelményeket, mivel nincsenek más reprezentációk, amikről a felhasználó nem tud. A gyorsabb fejlesztési ciklussal együtt valós időben létrehozható a prototípus is.
==Korlátai==
==Korlátai==
Az automatikusan generált objektumorientált felhasználói felület megfelel az önálló alkalmazásokhoz, de [[Beágyazott rendszer|beágyazott alkalmazásokhoz]] célszerűtlen.
Az automatikusan generált objektumorientált felhasználói felület megfelel az önálló alkalmazásokhoz, de [[Beágyazott rendszer|beágyazott alkalmazásokhoz]] célszerűtlen.
47. sor: 47. sor:


A mellette és az ellene szóló érvek az objektumorientált programozásból és a tartományvezérelt tervezésből származnak. A kritériumok nem korlátozódnak a csupasz objektumokra, de mivel itt a három együtt szerepel, emiatt ezekre nagyobb figyelem jut.
A mellette és az ellene szóló érvek az objektumorientált programozásból és a tartományvezérelt tervezésből származnak. A kritériumok nem korlátozódnak a csupasz objektumokra, de mivel itt a három együtt szerepel, emiatt ezekre nagyobb figyelem jut.
==Kapcsolata más módszerekkel==
Objektumtár mechanizmusok: Az objektum-relációs leképezések, objektum adatbázisok, és az objektumperzisztencia azzal foglalkozik, hogy ne kelljen külön adathozzáférési réteget írni a tartományobjektumok alá. Potenciális kiegészítői és partnerei a csupasz objektumoknak.

Agilis szoftverfejlesztés: A csupasz objektumok fejleszthetők agilis módon, különösen a finomszemcsés iteratív fejlesztéssel. A DSP programja egyben az egyik legnagyobb agilis fejlesztésű program volt globálisan.<ref name="PawsonWade2003">{{cite conference |last1=Pawson |first1=Richard |last2=Wade |first2=Vincent |title=Agile Development Using Naked Objects |series=[[Lecture Notes in Computer Science|LNCS]] |volume=2675 |conference=XP'03 |booktitle=Extreme Programming and Agile Processes in Software Engineering |year=2003 |pages=97–103 |issn=0302-9743 |doi=10.1007/3-540-44870-5_13}}
</ref>





A lap 2017. szeptember 8., 20:52-kori változata

A csupasz objektumok egy architekturális minta a szoftverfejlesztésben. Lényege, hogy a felhasználói felület szerkezete tükrözze az adat objektumok rendszerét.

Definíciója

A csupasz objektumokat három alapelv definiálja:

  • Az üzleti logikát és az adatokat ugyanazok az objektumok tartalmazzák, az egységbe zárásnak megfelelően.
  • A felhasználói interfész közvetlenül reprezentálja a tartományobjektumokat úgy, hogy a felhasználói aktivitás objektumok létrehozására és megtalálására korlátozódjon. Ez az objektumorientált felhasználói felület speciális értelmezése.
  • A felhasználói felületet nem kell kézzel megírni, hanem csak generálni. Ez magában foglalja a forráskód generálását is. Ennek aktualizálása reflexióval támogatható.

A mintát először Richard Pawson írta le PhD értekezésében, ami magában foglalta a különféle előzmények elemzését és az insiprációt a minta létrehozásához, például írt a Morphic felhasználói interfészről is.[1]

A csupasz objektumokat gyakran szembeállítják a modell-nézet-vezérlő mintával. Azonban Pawson dolgozatának kiadott változatához Trygve Reenskaug, a modell-nézet-vezérlő minta megalkotója írt előszót, ami azt sugallja, hogy a csupasz objektumok közelebb állnak a modell-nézet-vezérlő mintához, mint ahogy azt a minta mai formája alapján gondolhatnánk.

Előnyei

Pawson dolgozatában a minta négy fő előnyét említi:

  • Gyorsabb fejlesztési ciklus, mivel kevesebb réteget kell fejleszteni. Egy konvenciálisabb stílus legalább három réteget használ. Objektumadatbázis vagy objektum-relációs leképezés (ORM) használata esetén minden generálható az adat rétegből, ez azonban már nem terkinthető a minta részének. A tézis tartalmaz egy esettanulmányt is, amiben ugyanazt az alkalmazást fejlesztették hagyományos négy réteges rendszerben és csupasz objektumokkal.
  • Nagyobb agilitás, ami arra utal, hogy a program rugalmasan igazítható az aktuális üzleti körülményekhez. Ez részben abból adadódik, hogy kevesebb réteget kell karban és szinkronban, naprakészen tartani. A megkövetelt 1:1 reprezentáció a felhasználói és az adatmodell között jobb minőségű objektummodellezéshez vezet, ami javítja az agilitást.
  • A felhasználói felület jobb képességnyújtása, ami az objektumorientált felhasználói felületnek (OOUI) tulajdonítható. A csupasz objektumok csak lehetővé teszik, hogy ez könnyebben jöjjön létre.
  • Könnyebb követelményelemzés, mivel a fejlesztők közös nyelvet beszélnek a felhasználóval, így ezen a nyelven egyszerűbben megbeszélhetik a követelményeket, mivel nincsenek más reprezentációk, amikről a felhasználó nem tud. A gyorsabb fejlesztési ciklussal együtt valós időben létrehozható a prototípus is.

Korlátai

Az automatikusan generált objektumorientált felhasználói felület megfelel az önálló alkalmazásokhoz, de beágyazott alkalmazásokhoz célszerűtlen.

Keretrendszerek

A mintát több keretrendszer is implementálja:

Példa

Írországban a Department of Employment Affairs and Social Protection (DSP) a csupasz objektumokkal alkotott magának egy programot a családi pótlék kezelésére. A fejlesztést a Service Delivery Modernisation (SDM) keretében végezték,[2] és 2002 novemberében készültek el. Ez volt a csupasz objektumok első széles körben ismert alkalmazása. Pawson dolgozatában leírja a fejlesztés tapasztalatait és a felhasználók reakcióit.[1] A későbbi tapasztalatokat a QCon London 2011 prezentációja összegezte.[3]

Az egyik legfontosabb tapasztalatként azt nevezte meg, hogy a csupasz objektumok erősen támogatták az újrafelhasználást. Egy tartományobjektum, például a Customer máshol is felhasználható volt különösebb változtatások nélkül. Kormányzati szinten fontos az újrafelhasználhatóság, mert vele megtakarítás érhető el. Általában régebbi programok szolgáltatásait hasznosítják újra, de az objektumoké is szóba jöhet.

Az architektúrát a Fujitsu alakította ki a kormányzati szerv számára.[4] Továbbfejlesztése a Naked Objects Framework, amit további fejlesztések alapjául szánnak.[5]

Kritika

A kritika többnyire három területre összpontosít:

  • Az üzleti metódusok beépítése a tartomány objektumokba.
  • Az objektum interfészek alkalmassága.
  • Az általános felhasználói interfészek.

A mellette és az ellene szóló érvek az objektumorientált programozásból és a tartományvezérelt tervezésből származnak. A kritériumok nem korlátozódnak a csupasz objektumokra, de mivel itt a három együtt szerepel, emiatt ezekre nagyobb figyelem jut.

Kapcsolata más módszerekkel

Objektumtár mechanizmusok: Az objektum-relációs leképezések, objektum adatbázisok, és az objektumperzisztencia azzal foglalkozik, hogy ne kelljen külön adathozzáférési réteget írni a tartományobjektumok alá. Potenciális kiegészítői és partnerei a csupasz objektumoknak.

Agilis szoftverfejlesztés: A csupasz objektumok fejleszthetők agilis módon, különösen a finomszemcsés iteratív fejlesztéssel. A DSP programja egyben az egyik legnagyobb agilis fejlesztésű program volt globálisan.[6]

  1. a b Pawson, Richard (June 2004), Naked objects, Trinity College, University of Dublin, <http://downloads.nakedobjects.net/resources/Pawson%20thesis.pdf>
  2. Department of Social and Family Affairs - Guide to the Functions & Records of the Department, DSFA website - Freedom Of Information
  3. Case Study: Large-scale Pure OO at the Irish Government QCon London 2011
  4. Fujitsu, Case Study: The Department of Social and Family Affairs Fujitsu website
  5. Department of Social & Family Affairs, The ongoing development of the Department's Service Delivery Modernisation programme, 2007, e-tenders website
  6. (2003) „Agile Development Using Naked Objects”. XP'03 Extreme Programming and Agile Processes in Software Engineering 2675: 97–103. doi:10.1007/3-540-44870-5_13.