Architektura softwaru
Softwarová architektura programu nebo počítačového systému je struktura nebo struktury systému, který zahrnovat komponenty softwaru, externě viditelné vlastnosti těch komponent a vztahy mezi nimi. Termín také se odkazuje na dokumentaci systémové softwarové architektury. Dokumentovat software architektura usnadní komunikaci mezi investory, dokumentuje časná rozhodnutí o vysokoúrovňovém designu, a dovolí opětovné použití komponent designu a vzory mezi projekty.
Nepřehlédněte: Tato stránka obsahuje strojový překlad textu z anglické encyklopedie Wikipedia. Pokud budou některé pasáže špatně srozumitelné, zkuste se podívat i na text v originále, který najdete pod odkazem Software architecture. Překlad byl vytvořen pomocí překladače Eurotran.
Přehled
Pole informatika narazil na problémy spojené se složitostí od jeho formace. Dříve problémy složitosti byly řešeny vývojáři tím, že si vybere struktury správných údajů, vyvíjející se algoritmy, a tím, že aplikuje pojetí oddělení znepokojení. Ačkoli termín “architektura softwaru” je relativně nová pro průmysl, základní pravidla pole byla aplikovaná sporadicky průkopníky softwarového inženýrství od středních osmdesátých lét. Brzy pokusy zachytit a vysvětlit softwarovou architekturu systému byly nepřesné a zmatené, často charakterizoval souborem krabice-a-spojnicové diagramy. Během 1990 tam bylo koncentrované úsilí definovat a kodifikovat základní aspekty disciplíny. Parafujte soubory vzorů designu, styly, nejlepší praxe, jazyky popisu a formální logika byli rozvinutí během toho času.[kdo?] Softwarová architekturní disciplína je zaměřena na myšlenku na složitost rozmělňování přes abstrakce a oddělení znepokojení. Doposud je ještě žádná dohoda o přesné definici termínu “architektura softwaru”.
Jako disciplína stárnutí s žádnými jasnými pravidly vpravo způsob, jak vytvořit systém, navrhovat software architektura je ještě směs umění a věda. “umělecká” stránka architektury softwaru je, protože komerční softwarový systém podporuje nějakou stránku obchodu nebo mise. Jak systém podporuje klíčové obchodní řidiče je popisován přes scénáře jako non-funkční požadavky systému, také známý jako kvalitní atributy, stanovit jak systém bude chovat se. Každý systém je jedinečný kvůli povaze řidičů obchodu to podpírá, jako takový míra atributů kvality vystavovala systémem takový jako chyba-tolerance, zpětná kompatibilita, roztažnost, spolehlivost, maintainability, dostupnost, bezpečnost, použitelnost, a takový jiný – ilities bude měnit se s každou realizací.
To přínese softwaru architekturní uživatelský pohled do architektury softwaru, to může být říkal, že architektura softwaru dá směr přijmout opatření a vykonat úkoly zapojené do každé takové uživatelské zvláštnostní oblasti a zájmu např. sázkoví držitelé systémů softwaru, vývojář softwaru, systém softwaru operační podpůrná skupina, softwaroví servisní specialisté, deployer, zkoušečka a také uživatel obchodního konce[pochvalná zmínka potřebovala]. V tomto smyslu architektura softwaru je opravdu sloučení pohledů násobku systém vždy ztělesní. Skutečnost, že ti několik různých pohledů může být složeno do softwaru architektura kandiduje jako ospravedlnění potřeby a vyrovnání vytvoření architektury softwaru před vývojem software v projektu dosáhne zletilosti.
Historie
Původ architektury softwaru jako pojetí byl nejprve poznán ve výzkumu Edsger Dijkstra v roce 1968 a David Parnas v časných sedmdesátých létech. Tito vědci zdůraznili, že struktura systému softwaru vadí a dostávat strukturu pravý je kritický. Studie o poli zvětšila se v popularitě od časných devadesátých lét s výzkumem soustředit se na architektonický navrhne (vzory), architekturní popisové jazyky, dokumentaci architektury a formální metody.
Instituce výzkumu hrály významnou roli v podporující softwarové architektuře jako disciplína. Mary Shawová a David Garlan Carnegiea Mellon napsal knize titulovanou Software architekturu: Pohledy na vynoření ukázní v roce 1996, který předložil pojetí v Software architektuře, takový jako součásti, konektory, styly a tak dále. Univerzita Kalifornie, Irvineův ústav pro Software výzkumná úsilí v softwarovém architekturním výzkumu je nařízen primárně ve stavebních stylech, architekturních popisových jazycích a dynamických architekturách.
IEEE 1471: ANSI/IEEE 1471-2000: Doporučil praxi pro architekturní popis softwaru-intenzivní systémy je první formální standard v oblasti architektury softwaru, a byl nedávno adoptován ISO jak ISO/IEC DIS 25961.
Softwarová architekturní témata
Architekturní popisové jazyky
Architekturní popisové jazyky (ADLs) je používán popisovat Software architekturu. Několik různý ADLs byl vyvinut různými organizacemi, včetně AADL (Sae standard), Wright (vyvinutý Carnegieem Mellon), Acme (vyvinutý Carnegieem Mellon), xADL (vyvinuté UCI), Darwin (vyvinutý Imperial vysokoškolským Londýnem), DAOP-ADL (vyvinutý univerzitou Málaga). Obyčejné prvky ADL jsou komponenta, konektor a konfigurace.
Pohledy
Architektura softwaru je obyčejně organizována v pohledech, který být analogický s různými druhy modrotisků dělaných v architektuře stavby. Uvnitř ontologie založila ANSI/IEEE 1471-2000, pohledy jsou příklady hledisek, kde hledisko existuje popsat architekturu v otázce od pohledu daného souboru investorů a jejich znepokojení.
Některé možné pohledy (vlastně, hlediska v 1471 ontologii) být:
- Funkční/logický pohled
- Kód/modulový pohled
- Vývoj/strukturální pohled
- Souběžnost/proces/nit hledí
- Lékařská prohlídka/pohled rozmístění
- Akce uživatele/pohled odezvy
- Pohled dat
Několik jazyků pro software popsaní architektury byly vymyšlené, ale žádný konsensus přesto byl sáhl na kterém symbolu-zapadat a hledět-systém by měl být přijat. UML byl založen jak standard “k systémům modelu (a ne správný software),” a tak platí o názorech na architekturu softwaru. Jiní věří, že efektivní vývoj softwaru se spoléhá na rozumějící jedinečná omezení každého problému a tak univerzální zápisy jsou odsouzené protože každý stanoví notational zaujatost to nutně dělá notaci neužitečný nebo nebezpečný pro nějaký soubor úloh[pochvalná zmínka potřebovala]. Oni směřují k rozšíření programovací jazyky a posloupnost neúspěšných pokusů uložit jeden ' univerzální jazyk ' na programátorech jak důkazu ten software si libuje v různorodosti a ne na standardech.
Architekturní kostry
- 4 + 1
- Ministerstvo obranné architekturní kostry (DODAF)
- Britské ministerstvo obranné architektonické kostry (MODAF)
- Otevřená skupinová architekturní kostra (TOGAF)
- Zachman kostra
- Federální podniková architektura
- Odkazový model otevřeného distribuovaného zpracování (RM-ODP)
- Služba-určoval kostru modelování (SOMF)
Rozdíl od detailního designu
Architektura softwaru, také popsal jako strategický design, je aktivita zaujatá globálním designem omezení, takové jak programovací vzory, architektonické styly, komponenta-založil standardy softwarového inženýrství, principy designu a právo-pojil se s pravidelnostma. Detailní design, také popsal jako taktický design, je aktivita zaujatá místním designem omezení, takový jako vzory designu, architektonické vzory, programovací styly a refactorings. Podle Intension/hypotéza místa, rozdíl mezi strategickým a taktickým designem je definován kritériem místa, podle kterého prohlášení o designu softwaru je nelokální jestliže a jediný jestliže program, který uspokojí to může být rozšířen do programu, který dělá ne. Například, client-serverový styl je architektonický (strategický) protože program, který je postaven tímto principem může být rozšířen do programu, který není server klienta; například, tím, že přidá navzájem rovnocenné uzly.
Architektura je design ale ne celý design je architektonický. V praxi, architekt je jeden kdo udělá čáru mezi architekturou softwaru (architektonické řešení) a detailní design (non-architektonické řešení). Tam nejsou pravidla nebo směrnice, které seděly všem případům.
Příklady architektonických stylů / vzory
Tam je mnoho obyčejných způsobů, jak navrhovat moduly počítačového softwaru a jejich komunikace, mezi nimi:
- Tabule
- Client-server (2-řada, n-řada, peer-to-peer, Cloud práce na počítači všichni používají tento model)
- Databáze-architektura centric (široké rozdělení může být děláno pro programy, které mají databázi v jeho středu a aplikace, které nemusí spoléhat se na databáze, E.g. stolní aplikační programy, etc obslužných programů.)
- Distribuovaná práce na počítači
- Událost řízená architektura
- Předek a back-end
- Implicitní zaříkávání
- Monolitická aplikace
- Peer-to-peer
- Roury a filtry
- Plugin
- Prezentační státní převod
- Uspořádaný (modul-umístěný ale obvykle monolitický uvnitř modulů)
- Componentry softwaru (přísně modul-umístěný, obvykle objektově orientované programování uvnitř modulů, lehce méně monolitický)
- Služba-orientovaná architektura
- Hledat-orientovaná architektura (čistý SOA realizuje servis pro každý bod datového přístupu)
- Prostor založil architekturu
- Rozdělil nic architektura
- Trojvrstvý model (architektura s Presentation vrstvou, obchodní logickou vrstvou a vrstvou databáze)
- Ohodnocení pravidla
Viz též
- Anti-vzor
- Architekturní Centric metoda výpočtu
- Architekturní kompromis metoda analýzy (ATAM)
- Obyčejné vrstvy v informačním systému logická architektura
- Architektura počítače
- Závislostní strukturová matice
- Architektura podniku
- Architektura procesu
- Architekt softwaru
- Softwarový architektonický model
- Design softwaru
- Softwarový designový vzor
- Systém softwaru
- Standardní datový model
- Architekt systémů
- Architektura systémů
- Design systémů
- Technická architektura
Další četba
- Len Bass, Paul Clements, Rick Kazman: Architektura softwaru v praxi, druhé vydání. Addison Wesley, číst 5/9/2003 ISBN 0-321-15495-9 (tato kniha, nyní ve druhém vydání, výmluvně pokryje základní pojmy disciplíny. Téma je koncentrováno kolem dosahovat kvalitních vlastností systému.)
- Amnon H. Eden, Rick Kazman. Architektura, design, implementace. Na rozlišení mezi stavitelským návrhem a detailním designem.
- Garzás, Javier, a Piattini, Mario. Ontologie pro mikro-znalosti architektonického řešení, IEEE softwarový časopis, hlasitost: 22, záležitost: 2, březen-duben 2005. pp. 28 – 33.
- Philippe Kruchten: Architektonické modrotisky - 4 + 1 pohledový model architektury softwaru. V: IEEE software. 12 (6) listopad 1995, pp. 42-50 (také dostupný online u rozumných internetových stránek (PDF ))
- Tony Shan a Winnie Hua (2006). Řešící Architecting mechanismus. Sborník 10. IEEE mezinárodní EDOC podniková práce na počítači konference (EDOC 2006), říjen 2006, p23-32
- SOMF: Bell, Michael (2008). “Služba-orientované modelování: Opravit analýzu, design a architekturu”. Wiley. http://www.amazon.com/Service-Oriented-Modeling-Service-Analysis-Architecture/dp/0470141115/ref=pd_bbs_2.
Externí odkazy
- Sbírka softwaru definice architektury v Software strojírenství zavedou (SEI), Carnegie Mellon univerzita (CMU)
- Architektura softwaru vs. design softwaru: Intension/hypotéza místa
- Celosvětový institut architektů softwaru (WWISA)
- Mezinárodní sdružení architektů softwaru (IASA)
- SoftwareArchitecturePortal.org — internetové stránky IFIP pracovní skupiny 2.10 na architektuře softwaru
- SoftwareArchitectures.com — nezávislý zdroj informace o disciplíně
- Microsoft architekturní žurnál
- Architektonické vzory
- Architektura softwaru, kapitola 1 Roy Fieldingovy odpočinkové disertace
- DiaSpec, přístup a nástroj tvořit distribuovanou kostru od architektury softwaru