wikipedia.infostar.cz

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

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:

Viz též

Další četba

Externí odkazy