„Komponensalapú szoftverfejlesztés” változatai közötti eltérés

A Wikipédiából, a szabad enciklopédiából
[nem ellenőrzött változat][nem ellenőrzött változat]
Ha már Google-translate-et használsz, lagelább olvasd el, hogy mit is másoltál ide.
a Vépi átnevezte a(z) Komponens-alapú szoftverfejlesztés lapot a következő névre: Komponensalapú szoftverfejlesztés: helyesírás
(Nincs különbség)

A lap 2021. június 12., 07:52-kori változata

Példa UML 2.0-ban kifejezett két összetevőre. A pénztár komponens, amely elősegíti az ügyfél rendelését, megköveteli, hogy a kártyafeldolgozó komponens terhelje az ügyfél hitel- vagy betéti kártyáját (az utóbbi által biztosított funkció).

A komponens-alapú szoftverfejlesztés (CBSE ), más néven komponens-alapú fejlesztés (CBD) a szoftvertervezés egyik ága, amely hangsúlyozza az adott szoftverrendszerben elérhető széles körű funkcionalitással kapcsolatos aggályok elkülönítését . Ez egy újrafelhasználáson alapuló megközelítés a lazán összekapcsolt független komponensek rendszerbe történő meghatározásához, megvalósításához és komponálásához. Ennek a gyakorlatnak az a célja, hogy egyformán széles körű előnyöket érjen el rövid és hosszú távon mind a szoftver, mind a szoftvert támogató szervezetek számára.

A szoftvertervezéssel foglalkozó szakemberek az alkotóelemeket a szolgáltatás-orientáció kiinduló platformjának tekintik. Az alkatrészek ezt a szerepet töltik be például a webszolgáltatásokban, újabban pedig a szolgáltatás-orientált architektúrákban (SOA), amelyek során a webszolgáltatás egy alkotórészt átalakít szolgáltatássá, és ezt követően további jellemzőket örökít meg egy átlagos komponenshez képest.

Az alkatrészek előállíthatnak vagy felhasználhatnak eseményeket, és felhasználhatók eseményvezérelt architektúrákhoz (EDA).

Komponensek karakterisztikája és definíciója

Egy egyedi szoftverkomponens egy szoftvercsomag, egy webszolgáltatás, egy webes erőforrás vagy egy modul, amely a kapcsolódó funkciók (vagy adatok) halmazát foglalja magában.

Az összes rendszerfolyamat különálló komponensekbe van foglalva, így az egyes összetevők belsejében lévő összes adat és funkció szemantikailag kapcsolatban áll egymással (akárcsak az osztályok tartalmával). Ezen elv miatt gyakran mondják, hogy az alkatrészek modulárisak és összetartók.

A rendszer egészére kiterjedő koordinációt illetően az komponensek interfészeken keresztül kommunikálnak egymással. Amikor egy komponens szolgáltatásokat kínál a rendszer többi részének, felvesz egy biztosított interfészt, amely meghatározza azokat a szolgáltatásokat, amelyeket a többi komponens használhat, és hogy hogyan tudják ezt megtenni. Ez az interfész a komponens aláírásának tekinthető - az ügyfélnek nem kell tudnia a komponens belső működéséről (megvalósításról) annak használatához. Ebből az elvből kiindulva nevezzük a komponenseket beágyazottaknak. A cikk UML-illusztrációi a komponens külső széléhez rögzített nyalóka-szimbólummal jelölt interfészeket ábrázolják.

Ha azonban egy összetevőnek egy másik összetevőt kell használnia a működéséhez, felvesz egy használt interfészt, amely meghatározza a számára szükséges szolgáltatásokat. A cikk UML-ábráin a használt interfészeket egy nyitott foglalat szimbólum képviseli, amely az alkatrész külső széléhez van rögzítve.

Egyszerű példa több szoftverkomponensre - az UML 2.0-ban képviselt elméleti üdülési foglalási rendszerben.

Az összetevők másik fontos tulajdonsága, hogy helyettesíthetők, így egy alkatrész helyettesíthet egy másikat (tervezési vagy futási időben), ha az utód komponens megfelel az eredeti komponens követelményeinek (az interfészeken keresztül kifejezve). Következésképpen az alkatrészek cserélhetők egy frissített verzióval vagy egy alternatívával anélkül, hogy megszakítanák a rendszert, amelyben az alkatrész működik.

A komponenseket helyettesítő mérnökökre vonatkozó bevett szabályként a B komponens azonnal helyettesítheti az A komponenst, ha a B komponens legalább azt biztosítja, amit az A komponens biztosított, és nem használ többet, mint amit az A komponenst használt.

A szoftverkomponensek gyakran objektumok (nem osztályok) vagy objektumgyűjtemények formájában ( objektum-orientált programozásból ), valamilyen bináris vagy szöveges formában, ragaszkodva valamilyen interfészleíró nyelvhez (IDL) jelennek meg, így az más komponensektől függetlenül létezhet egy számítógépben . Más szavakkal, egy komponens a forráskód megváltoztatása nélkül működik. Bár a komponens forráskódjának viselkedése megváltozhat az alkalmazás bővíthetősége alapján, amelyet az írója biztosít.

Amikor egy komponenst elérni vagy megosztani akarnak futtatási kontextusok közt vagy hálózati linkeken, gyakran olyan technikákat alkalmaznak, mint például a sorosítás vagy a rendezés, hogy az összetevőt a rendeltetési helyre juttassák.

Az újrafelhasználhatóság fontos jellemzője egy kiváló minőségű szoftverkomponensnek. A programozóknak úgy kell megtervezniük és megvalósítaniuk a szoftver-összetevőket, hogy sok különféle program újra felhasználhassa őket. Továbbá figyelembe kell venni az alkatrész-alapú használhatóság tesztelését, amikor a szoftver-komponensek közvetlenül kölcsönhatásba lépnek a felhasználókkal.

Jelentős erőfeszítésre és tudatosságra van szükség egy olyan szoftverkomponens megírásához, amely hatékonyan újrafelhasználható. A komponensnek a következőknek kell lennie:

  • teljesen dokumentált
  • alaposan tesztelt
    • robusztus - átfogó input-érvényesség ellenőrzéssel
    • képes a megfelelő hibaüzenetek vagy kódok visszaadására
  • annak a tudatában készül, hogy előre nem látott felhasználási környezetekben lesz alkalmazva

Az 1960-as években a programozók tudományos alprogram könyvtárakat építettek, amelyek mérnöki és tudományos alkalmazások széles körében újrafelhasználhatók voltak. Bár ezek az alprogram könyvtárak hatékonyan használták jól körülhatárolt algoritmusokat, korlátozott alkalmazási területük volt. A kereskedelmi webhelyek rendszeresen létrehoztak alkalmazási programokat újrafelhasználható modulokból, amelyek Assembly , COBOL, PL / 1 és más második és harmadik generációs nyelveken íródtak, mind a rendszer, mind a felhasználói alkalmazás könyvtárak segítségével.

2010 óta a modern újrafelhasználható komponensek egybefoglalják az adatszerkezeteket és az azokra alkalmazott algoritmusokat. A komponens-alapú szoftverfejlesztés számos korábbi elméletre épít a szoftver objektumok, szoftver architektúrák, szoftver keretrendszerek és szoftver tervezési mintákból, valamint a kiterjedt objektum-orientált programozás elméletéből és ezek objektum-orientált felépítéséről. Azt állítja, hogy a szoftver komponensek, mint a hardver komponensek melyeket például a telekommunikációban használnak, felcserélhetővé és megbízhatóvá tehetőek.

Története

Az ötlet, hogy a szoftvert komponensekre kell építeni - előre gyártott komponensekből - először Douglas McIlroy beszédével vált hangsúlyossá az 1968-ban a szoftvertervezésről rendezett NATO-konferencián a németországi Garmisch-ban, Mass Produced Software Components címmel. [1] A konferencia az úgynevezett szoftverválság leküzdésére indult. McIlroy a későbbi csövek és szűrők beépítésével a Unix operációs rendszerbe valósított meg először egy infrastruktúrát ehhez az ötlethez.

A stepstone-i Brad Cox nagyrészt meghatározta a szoftverkomponens modern koncepcióját. [2] Szoftver IC-knek nevezte őket, és nekilátott, hogy az Objective-C programozási nyelv feltalálásával infrastruktúrát és piacot hozzon létre ezekhez az összetevőkhöz. (Ezt a nézetet foglalja össze Object-Oriented Programming - An Evolutionary Approach 1986 című könyvében. )

A szoftverkomponenseket két különböző kontextusban és kétféle módon használják: I) komponensek részekként történő felhasználása egyetlen futtatható fájl létrehozásához, vagy II) mindegyik futtatható összetevő komponensként kezelhető elosztott környezetben, ahol az összetevők az internet vagy intranet protokollok segítéségével együttműködnek az IPC-hez (Inter Process Communications). A fentiek az előbbi, míg az alábbiak a későbbi fajtához tartoznak.

Az IBM a 1990-es évek elején a System Object Model (SOM) rendszerrel járt az élen. Válaszként a Microsoft megnyitotta az utat az objektum-összekapcsolás és beágyazás (OLE) és a Komponens-objektum modell (COM) használatával a komponensszoftver tényleges telepítése felé. [3] 2010-ben már sok sikeres szoftverkomponens-modell létezik.

Felépítés

A több szoftverkomponenst futtató számítógépet gyakran alkalmazáskiszolgálónak nevezik. Az alkalmazáskiszolgálók és a szoftverkomponensek ilyen kombinációját általában megosztott számításnak hívják. Valóságbeli alkalmazása például pénzügyi alkalmazásokban vagy üzleti szoftverekben történik.

Komponens modellek

A komponensmodell azoknak a tulajdonságoknak a meghatározása, amelyeknek az alkotóelemeknek meg kell felelniük, avagy az összetevők összetételének módszerei és mechanizmusai. [4]

Az elmúlt évtizedekben a kutatók és a gyakorlati szakemberek több, különböző jellemzőkkel rendelkező komponensmodellt javasoltak. A meglévő alkatrészmodellek besorolása adott. [4] [5] Példák alkatrész modellekre: Enterprise JavaBeans (EJB) modell, Component Object Model (COM) modell, dotNET modell, X-MAN komponens modell, [6] és a Common Object Request Broker Architecture (CORBA) komponens modell.

Technológiák

Lásd még

Hivatkozások

  1. Foukalas et al "Protocol Reconfiguration Using Component-Based Design"
  2. Wallace, Bruce (May 19, 2010). "A hole for every component, and every component in its hole". Existential Programming. There is no such thing as a Component
  3. McIlroy, Malcolm Douglas (January 1969). "Mass produced software components" (PDF). Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7-11 Oct. 1968. Scientific Affairs Division, NATO. p. 79.
  4. Rainer Niekamp. "Software Component Architecture" (PDF). Gestión de Congresos - CIMNE/Institute for Scientific Computing, TU Braunschweig. p. 4. Retrieved 2011-07-29. The modern concept of a software component largely defined by Brad Cox of Stepstone, => Objective-C programming language
  5. Raphael Gfeller (December 9, 2008). "Upgrading of component-based application". HSR - Hochschule für Technik Rapperswill. p. 4. Retrieved 2011-07-29. 1990, IBM invents their System Object Model. 1990, as a reaction, Microsoft released OLE 1.0 OLE custom controls (OCX)[permanent dead link]
  6. Crnkovic, I.; Sentilles, S.; Vulgarakis, A.; Chaudron, M. R. V. (2011). "A Classification Framework for Software Component Models". IEEE Transactions on Software Engineering. 37 (5): 593–615. doi:10.1109/TSE.2010.83. S2CID 15449138.
  7. Lau, Kung-Kiu; Wang, Zheng (2007). "Software Component Models". IEEE Transactions on Software Engineering. 33 (10): 709–724. doi:10.1109/TSE.2007.70726. ISSN 0098-5589.
  8. Lau, Kung-Kiu; Velasco Elizondo, Perla; Wang, Zheng (2005). Heineman, George T.; Crnkovic, Ivica; Schmidt, Heinz W.; Stafford, Judith A.; Szyperski, Clemens; Wallnau, Kurt (eds.). "Exogenous Connectors for Software Components". Component-Based Software Engineering. Lecture Notes in Computer Science. Springer Berlin Heidelberg. 3489: 90–106. doi:10.1007/11424529_7. ISBN 9783540320494. S2CID 17971442.
  9. MASH defines assets as people, property and information and management as monitoring, control and configuration. Presented at the 2013 IEEE IoT conference in Mountain View MASH includes a full IDE, Android client and runtime. "MASH YouTube channel"
  10. A component-oriented approach is an ideal way to handle the diversity of software in consumer electronics. The Koala model, used for embedded software in TV sets, allows late binding of reusable components with no additional overhead. [1]
  11. Component model for embedded devices like TV developed by Philips based on paper by van Ommering, R.: Koala, a Component Model for Consumer Electronics Product Software [2] Archived 2014-08-09 at the Wayback Machine
  12. Arad, Cosmin (April 2013). Programming Model and Protocols for Reconfigurable Distributed Systems (PDF). Doctoral Dissertation. Stockholm, Sweden: KTH Royal Institute of Technology. ISBN 978-91-7501-694-8.
  13. Arellanes, Damian; Lau, Kung-Kiu (2017). "Exogenous Connectors for Hierarchical Service Composition" (PDF). 2017 IEEE 10th Conference on Service-Oriented Computing and Applications (SOCA). Kanazawa: IEEE: 125–132. doi:10.1109/SOCA.2017.25. ISBN 9781538613269. S2CID 31211787.

További irodalom

  • Brad J. Cox, Andrew J. Novobilski (1991). Objektumorientált programozás: evolúciós megközelítés . 2. kiadás Addison-Wesley, ReadingISBN 0-201-54834-8
  • Bertrand Meyer (1997). Objektumorientált szoftverépítés 2. kiadás Prentice Hall.
  • George T. Heineman, William T. Councill (2001). Komponens alapú szoftverfejlesztés: A darabok összekapcsolása . Addison-Wesley Professional, Reading 2001ISBN 0-201-70485-4
  • Richard Veryard (2001). Komponens alapú üzlet : plug and play . London : Springer.ISBN 1-85233-361-8ISBN 1-85233-361-8
  • Clemens Szyperski, Dominik Gruntz, Stephan Murer (2002). Komponens szoftver: Az objektum-orientált programozáson túl . 2. kiadás ACM Press - Pearson Educational, London, 2002ISBN 0-201-74572-0

Külső linkek

  1. McIlroy: Mass produced software components. Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7-11 Oct. 1968. Scientific Affairs Division, NATO, 1969. január 1.
  2. Rainer Niekamp: Software Component Architecture. Gestión de Congresos - CIMNE/Institute for Scientific Computing, TU Braunschweig. (Hozzáférés: 2011. július 29.) „The modern concept of a software component largely defined by Brad Cox of Stepstone, => Objective-C programming language”
  3. Raphael Gfeller: Upgrading of component-based application. HSR - Hochschule für Technik Rapperswill, 2008. december 9. (Hozzáférés: 2011. július 29.) „1990, IBM invents their System Object Model. 1990, as a reaction, Microsoft released OLE 1.0 OLE custom controls (OCX)”[halott link]
  4. a b Crnkovic (2011). „A Classification Framework for Software Component Models”. IEEE Transactions on Software Engineering 37 (5), 593–615. o. DOI:10.1109/TSE.2010.83.   Forráshivatkozás-hiba: Érvénytelen <ref> címke, „crnkovic2011tse” nevű forráshivatkozás többször van definiálva eltérő tartalommal
  5. Lau (2007. április 25.). „Software Component Models”. IEEE Transactions on Software Engineering 33 (10), 709–724. o. DOI:10.1109/TSE.2007.70726. ISSN 0098-5589.  
  6. Lau (2005. április 25.). „Exogenous Connectors for Software Components” (angol nyelven). Component-Based Software Engineering 3489, 90–106. o, Kiadó: Springer Berlin Heidelberg. DOI:10.1007/11424529_7.  
  7. MASH defines assets as people, property and information and management as monitoring, control and configuration. Presented at the 2013 IEEE IoT conference in Mountain View MASH includes a full IDE, Android client and runtime. "MASH YouTube channel"
  8. A component-oriented approach is an ideal way to handle the diversity of software in consumer electronics. The Koala model, used for embedded software in TV sets, allows late binding of reusable components with no additional overhead.
  9. Component model for embedded devices like TV developed by Philips based on paper by van Ommering, R.: Koala, a Component Model for Consumer Electronics Product Software Archiválva 2014. augusztus 9-i dátummal a Wayback Machine-ben.
  10. Arad, Cosmin. Programming Model and Protocols for Reconfigurable Distributed Systems. Stockholm, Sweden: KTH Royal Institute of Technology (2013. április 1.). ISBN 978-91-7501-694-8 
  11. Arellanes (2017. április 25.). „Exogenous Connectors for Hierarchical Service Composition”. 2017 IEEE 10th Conference on Service-Oriented Computing and Applications (SOCA), Kanazawa, 125–132. o, Kiadó: IEEE. DOI:10.1109/SOCA.2017.25.