Szoftverkeretrendszer

A számítógép-programozásban a szoftverkörnyezet egy absztrakció, ami a szoftver által nyújtott általános funkcionalitást képes szelektíven megváltoztatni a felhasználói kód alapján, így alkalmazásspecifikus szoftvert biztosítanak. A keretrendszer szabványosítja az alkalmazások felépítésére és telepítésére. Általános, újrafelhasználható szoftverkörnyezet, ami egy nagyobb platform részeként megkönnyíti alkalmazások, termékek és megoldások fejlesztését. Tartalmazhatnak programokat, fordítókat, könyvtárakat, eszközkészleteket, alkalmazásprogramozási interfészek (API) programkönyvtárakat, amelyek komponenseket raknak össze, hogy támogassák a projekt vagy a rendszer fejlesztését.

Ezen környezetek fontos megkülönböztetéseket tartalmaznak, amik elválasztják őket a normál könyvtáraktól:

  1. az irányítás megfordítása – Egy szoftverkörnyezetben, nem úgy mint normál felhasználói alkalmazások könyvtáraiban, a teljes programfolyamat ellenőrzését nem a program hívója, hanem a környezet végzi.[1]
  2. alapértelmezett viselkedés – Egy környezetnek vannak alapértelmezett viselkedései. Ezeknek lényegében hasznos működésűeknek és nem NOOP-oknak (programnyelvi utasítások, amik nem csinálnak semmit) kell lenniük.
  3. bővíthetőség – Egy környezet bővíthetőnek kell lennie a felhasználó által szelektíven felülírva vagy specializálva a kódot a felhasználói kód által nyújtott specifikus funkciókkal.
  4. nem módosítható környezeti kód – A szoftverkörnyezet kódja, általában nem módosítható. A felhasználók kibővíthetik a környezetet, de nem módosíthatják a kódját.

A környezeteknek különböző típusai vannak: konceptuális, szoftver, domain, platform, összetevő, szolgáltatás, fejlesztés stb.[2]

Céljai

A keretrendszerek megalkotói támogatni akarják a szoftverfejlesztést, hogy a tervezők és a programozók foglalkozhassanak azzal, hogy megfeleljenek a követelményeknek, mint hogy alacsonyabb szinten azzal foglalkozzanak, hogy megteremtsék a háttérszolgáltatásokat. Ezzel lerövidíti a teljes fejlesztési időt.[3] Például egy webes keretrendszer használatával egy banki programot író csapat speciálisan a banki szolgáltatások megvalósításával foglalkozhat, mint a követelménykezeléssel és az állapotkezeléssel.

A keretrendszerek hozzájárulnak a kód felfúvódásához, vagyis megnövelik a program méretét. Egy termék megalkotása az ügyfelek igényei alapján néha több keretrendszert is felhasználnak. A keretrendszer API-jának megtanulása elviheti azt az időt, amit a keretrendszer használatával nyerni lehet. Ha a keretrendszert nem használják más projektekben is, illetve túl gyakran térnek át egy másik keretrendszerre, akkor a csapat jobban járna, ha nem használná egyik keretrendszert sem.

Ezzel szemben ha sok projekthez használják ugyanazt a keretrendszert, akkor a befektetett munka megtérül. A további projektek gyorsabban és könnyebben elkészülhetnek. Ugyanez nem teljesül a kód méretére, amit a keretrendszer hozzáad, nem szólva a hatékonyságról és a tömörségről. Minden behúzott könyvtár tartalmaz szükségtelen kódrészleteket is, amiket nem biztos, hogy a rendszer kioptimalizál.

Egy több, mint tízéves tapasztalat szerint a leghatékonyabb keretrendszer nem a külsősök által fejlesztett, hanem a saját gyakran használt kódokból refaktorálással összeállított keretrendszer. Erre példa lehet a felhasználói felület, ami egységes megjelenést kölcsönöz a programoknak.

Egy olyan keretrendszer létrehozása, ami még elegáns is, inkább művészet mint tudomány. Az elegancia magában foglalja a kód átláthatóságát, tömörséget, és kevés olyan kód jelenlétét, aminek nincs szerepe. Például a kódgenerátorok átlátható, olvasható kódot hoznak létre szemben azzal, aminél csak a működőképesség a követelmény. A keretrendszerek közül csak kevés felel meg ennek a követelménynek. Lehet, hogy egy újabb verzió már jobb, de még itt is van lehetőség a régebbi működés visszakapcsolására.

Példák

A szoftverkörnyezetek tipikusan tekintélyes hasznos kódokat tartalmaznak, például a bootstrap programok segítésére, de általában specifikus problémákra fókuszálnak, mint:

Architektúra

Pree szerint a keretrendszerek fagyott pontokból és forró pontokból állnak.[10] A fagyott pontok határozzák meg a program architektúráját, azaz az alapvető komponenseket és kapcsolataikat. Ezek változatlanok maradnak a keretrendszer minden példányosításakor. A forró pontok azok a helyek, amiket a kertrendszer használói saját kódjukkal töltenek ki. Ez hordozza a projektre jellemző működést.

Objektumorientált környezetben egy keretrendszer tartalmaz absztrakt és konkrét osztályokat. A példányosítás ezek kompozícióját és a belőlük való öröklést jelenti.[11]

A szoftver keretrendszerek a Hollywood-elvre hagyatkoznak: Ne hívjon, mi hívjuk!.[12] Ez azt jelenti, hogy a felhasználó által definiált osztályok kapnak üzenetet a keretrendszer előre definiált osztályaitól. Ez többnyire az absztrakt metódusok megvalósításával tehető meg.

Jegyzetek

  1. Riehle, Dirk (2000), Framework Design: A Role Modeling Approach, Swiss Federal Institute of Technology, <http://www.riehle.org/computer-science/research/dissertation/diss-a4.pdf>
  2. Shan, Tony: Taxonomy of Java Web Application Frameworks. Proceedings of 2006 IEEE International Conference on e-Business Engineering (ICEBE 2006), 2006 (Hozzáférés: 2010. október 10.)
  3. Framework. DocForge. [2017. december 29-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. december 15.)
  4. Vlissides, J M & Linton, M A (1990), "Unidraw: a framework for building domain-specific graphical editors", ACM Transactions of Information Systems 8 (3): 237–268, DOI 10.1145/98188.98197
  5. Johnson, R E (1992), "Documenting frameworks using patterns", Proceedings of the Conference on Object Oriented Programming Systems Languages and Applications (ACM Press): 63–76
  6. Johnson, R E; McConnell, C & Lake, M J (1992), Giegerich, R & Graham, S L, eds., "The RTL system: a framework for code optimization", Proceedings of the International workshop on code generation (Springer-Verlag): 255–274
  7. Birrer, A & Eggenschwiler, T (1993), Frameworks in the financial engineering domain: an experience report, Springer-Verlag, pp. 21–35
  8. Hill, C; DeLuca, C & Balaji, V et al. (2004), "Architecture of the Earth System Modeling Framework (ESMF)", Computing in Science and Engineering: 18–28
  9. Gachet, A (2003), "Software Frameworks for Developing Decision Support Systems - A New Component in the Classification of DSS Development Tools", Journal of Decision Systems 12 (3): 271–281
  10. Pree, W (1994), "Meta Patterns: A Means for Capturing the Essentials of Reusable Object-Oriented Design", Proceedings of the 8th European Conference on Object-Oriented Programming (Springer-Verlag): 150–162
  11. Buschmann, F (1996), Pattern-Oriented Software Architecture Volume 1: A System of Patterns. Chichester, Wiley, ISBN 0-471-95869-7
  12. Larman, C (2001), Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd ed.), Prentice Hall, ISBN 0-13-092569-1

Fordítás

Ez a szócikk részben vagy egészben a Software framework című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Read other articles:

DinoNama asalLee Chan (이찬)Lahir11 Februari 1999 (umur 25)Iksan, Jeollabuk-do, Korea SelatanPekerjaanRapper, penari, penyanyiTahun aktif2015–sekarang Lee Chan (이찬) (lahir 11 Februari 1999) atau yang lebih dikenal dengan nama panggung Dino, adalah seorang rapper, penyanyi dan penari asal Korea Selatan. Ia adalah anggota grup vokal laki-laki SEVENTEEN.[1] Ia berperan sebagai koreografer di grup SEVENTEEN bersama dengan Hoshi. Referensi ^ [SEVENTEEN 簡歷⑨...

 

 

Pour les articles homonymes, voir Durafour. Antoine Durafour Le député Antoine Durafour au Congrès radical socialiste de Reims en 1929. Fonctions Ministre du Travail, de l'Hygiène, de l'Assistance et de la Prévoyance sociales 17 juin 1925 – 19 juillet 1926(1 an, 1 mois et 2 jours) Président Gaston Doumergue Président du Conseil Paul PainlevéAristide Briand Gouvernement Painlevé II et IIIBriand VIII, IX et X Prédécesseur Justin Godart Successeur Louis Pasquet Dépu...

 

 

Japanese manga series Pokémon AdventuresCover of the first tankōbon volume, featuring Red (front) and Pikachu (back)ポケットモンスター SPECIAL(Poketto Monsutā Supesharu)GenreAdventure, fantasy[1] MangaWritten byHidenori KusakaIllustrated byMato [ja] (vol. 1–9)Satoshi Yamamoto (vol. 10–)Published byShogakukanEnglish publisherNA: Viz MediaSG: Shogakukan AsiaImprintTentōmushi ComicsMagazineCoroCoro Ichiban!Pokémon FanClub Sunday (web) (former...

هذه المقالة عن المجموعة العرقية الأتراك وليس عن من يحملون جنسية الجمهورية التركية أتراكTürkler (بالتركية) التعداد الكليالتعداد 70~83 مليون نسمةمناطق الوجود المميزةالبلد  القائمة ... تركياألمانياسورياالعراقبلغارياالولايات المتحدةفرنساالمملكة المتحدةهولنداالنمساأسترالي�...

 

 

  提示:此条目页的主题不是中華人民共和國最高領導人。 中华人民共和国 中华人民共和国政府与政治系列条目 执政党 中国共产党 党章、党旗党徽 主要负责人、领导核心 领导集体、民主集中制 意识形态、组织 以习近平同志为核心的党中央 两个维护、两个确立 全国代表大会 (二十大) 中央委员会 (二十届) 总书记:习近平 中央政治局 常务委员会 中央书记处 �...

 

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Military tradition – news · newspapers · books · scholar · JSTOR (November 2007) (Learn how and when to remove this message) The Pionniers (pioneers) are the combat engineers and a traditional unit of the French Foreign Legion. The sapeurs of the Legion traditi...

此條目需要补充更多来源。 (2021年7月4日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:美国众议院 — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。 美國眾議院 United States House of Representatives第118届美国国会众议院徽章 众议院旗...

 

 

Voce principale: Società Sportiva Monopoli 1966. Associazione Calcio MonopoliStagione 1983-1984Sport calcio Squadra Monopoli Allenatore Mario Russo Presidente Donato Lavermiccola Serie C22º posto nel girone C. Promosso in Serie C1. Maggiori presenzeCampionato: Prestanti (34) Miglior marcatoreCampionato: Mariano (9) 1982-1983 1984-1985 Si invita a seguire il modello di voce Questa pagina raccoglie le informazioni riguardanti l'Associazione Calcio Monopoli nelle competizioni ufficiali d...

 

 

本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目需要編修,以確保文法、用詞、语气、格式、標點等使用恰当。 (2013年8月6日)請按照校對指引,幫助编辑這個條目。(幫助、討論) 此條目剧情、虛構用語或人物介紹过长过细,需清理无关故事主轴的细节、用語和角色介紹。 (2020年10月6日)劇情、用語和人物介紹都只是用於了解故事主軸,輔助�...

2018 National League Championship Series Team (Wins) Manager(s) Season Los Angeles Dodgers (4) Dave Roberts 92–71 (.564), GA: 1 Milwaukee Brewers (3) Craig Counsell 96–67 (.589), GA: 1DatesOctober 12–20MVPCody Bellinger (Los Angeles)UmpiresScott Barry (Games 1–2)Gerry Davis (crew chief)Greg Gibson (Games 3–7)Brian Gorman, Alan Porter, Hunter Wendelstedt, Jim WolfBroadcastTelevisionFS1 (Games 1, 3–7)Fox (Game 2)TV announcersJoe Buck, John Smoltz, Ken Rosenthal and Tom VerducciRadi...

 

 

Đối với các định nghĩa khác, xem Nội chiến Anh (định hướng). Nội chiến AnhMột phần của Chiến tranh Ba Vương quốcChiến thắng của Quân đội kiểu mẫu mới của Nghị hội trước Quân đội Hoàng gia trong Trận Naswards ngày 14 tháng 6 năm 1645 đánh dấu bước ngoặt quyết định trong Nội chiến Anh.Thời gian22 tháng 8 năm 1642 - 3 tháng 9 năm 1651Địa điểmAnh, Ireland và Scotland. Thuộc địa Bắc MỹK�...

 

 

Plan of the wind turbine for power generation by Josef Friedlaender before the electrical exhibition in the Vienna Prater (Rotunde) in 1883. Charles Brush's windmill of 1888, used for generating electricity. Wind power has been used as long as humans have put sails into the wind. Wind-powered machines used to grind grain and pump water — the windmill and wind pump — were developed in what is now Iran, Afghanistan, and Pakistan by the 9th century.[1][2] Wind power was wide...

A Comissão de Direitos Humanos e Minorias é uma das comissões permanentes da Câmara dos Deputados do Brasil, que analisa os assuntos e propostas legislativas a ela pertinentes[1]. Histórico A primeira tentativa de criação de uma comissão de direitos humanos na Câmara dos Deputados ocorreu em 1987, por iniciativa da deputada federal Benedita da Silva.[2] Em 1991, através do Projeto de Resolução nº 43, de 1991,[3] a deputada voltou a apresentar o mesmo projeto, o qual foi novamente...

 

 

Automobile association ACEAEuropean Automobile Manufacturers AssociationAssociation des Constructeurs Européens d'AutomobilesFormationFebruary 1, 1991; 33 years ago (1991-02-01)Legal statusGroupement d'intérêt économiqueHeadquartersBrussels, BelgiumWebsitewww.acea.auto The European Automobile Manufacturers Association (French: Association des Constructeurs Européens d'Automobiles; abbreviated ACEA) is the main lobbying and standards group of the automobile industry in t...

 

 

19th-century Mandaean priest RishamaYahya Bihramࡉࡀࡄࡉࡀ ࡁࡉࡄࡓࡀࡌTitleGanzibraPersonalBornc. 1811Basra Vilayet, Ottoman Empire (now Iraq)Diedlate 1800sSuq esh-Shuyuk, Basra Vilayet, Ottoman Empire (now Iraq)ReligionMandaeismChildrenYasmin Bana (daughter), Mhatam (son), and othersParentAdam YuhanaKnown forRevival of the Mandaean priesthoodOther namesYahia BihramOccupationMandaean priestRelativesRam Zihrun (cousin)Bibia Mudalal (sister) Part of a series onMandaeism Pr...

American politician This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Sherman Hoar – news · newspapers · books · scholar · JSTOR (December 2016) (Learn how and when to remove this message) Sherman HoarMember of the U.S. House of Representativesfrom Massachusetts's 5th districtIn officeMarch 4, 1891...

 

 

This is a list of notable accidents and incidents involving military aircraft grouped by the year in which the accident or incident occurred. Not all of the aircraft were in operation at the time. For more exhaustive lists, see the Aircraft Crash Record Office, the Air Safety Network, or the Dutch Scramble Website Brush and Dustpan Database. Combat losses are not included, except for a very few cases denoted by singular circumstances. This transport-related list is incomplete; you can help b...

 

 

Sporting event delegationSudan at the2022 World Aquatics ChampionshipsFlag of SudanFINA codeSUDNational federationSudan Amateur Swimming Associationin Budapest, HungaryCompetitors3 in 2 sportsMedals Gold 0 Silver 0 Bronze 0 Total 0 World Aquatics Championships appearances197319751978198219861991199419982001200320052007200920112013201520172019202220232024 Sudan competed at the 2022 World Aquatics Championships in Budapest, Hungary from 18 June to 3 July.[1] Open water swimming Main ar...

Cet article relate le parcours de l’équipe d'Uruguay de football lors de la Coupe du monde de football 2018 organisée en Russie du 14 juin au 15 juillet 2018. Équipe d'Uruguay de football à la Coupe du monde 2018 Fédération AUF Classement 5e Organisateur(s) Russie Participation 13e Meilleure performance 1930, 1950 Sélectionneur Óscar Tabárez Capitaine Diego Godín Meilleur buteur Edinson Cavani (3) Maillots Domicile Extérieur Équipe d'Uruguay de football à la Coupe du monde Coup...

 

 

النقطة الميتة في المحركات المترددة هي الوضع الذي يكون فيه المكبس في أقرب نقطة أو أبعد نقطة لعمود المرفق، وعندما يكون قريبًا لعمود المرفق تكون تلك النقطة الميتة السفلي بينما تُسمي بالنقطة الميتة العليا عندما يكون بعيدًا عن عمود المرفق.[1] وبشكلٍ عام، فإن النقطة الميتة �...