Architecture description language: Difference between revisions

Content deleted Content added
Completed expansion part as requested, sources in.
History: new citation and reference
 
(2 intermediate revisions by 2 users not shown)
Line 26:
However, these efforts have not seen the desired adoption by industrial practice. Some reasons for this lack of industry adoption have been analyzed by Woods and Hilliard,<ref name="Woods2005">{{Cite book | last1 = Woods | first1 = E. | last2 = Hilliard | first2 = R. | doi = 10.1109/WICSA.2005.15 | chapter = Architecture Description Languages in Practice Session Report | title = 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05) | pages = 243 | year = 2005 | isbn = 978-0-7695-2548-8 | s2cid = 18175375 }}</ref> Pandey,<ref name="Pandey2010">{{Cite journal | last1 = Pandey | first1 = R. K. | title = Architectural description languages (ADLs) vs UML | doi = 10.1145/1764810.1764828 | journal = ACM SIGSOFT Software Engineering Notes | volume = 35 | issue = 3 | pages = 1–5 | year = 2010 | s2cid = 18848376 }}</ref> Clements,<ref name="ClementsSurvey">{{Cite book | last1 = Clements | first1 = P. C. | chapter = A survey of architecture description languages | doi = 10.1109/IWSSD.1996.501143 | title = Proceedings of the 8th International Workshop on Software Specification and Design | pages = 16–00 | year = 1996 | isbn = 978-0-8186-7361-0 | citeseerx = 10.1.1.208.3401 | s2cid = 7307554 }}</ref> and others: formal ADLs have been rarely integrated in the software life-cycle, they are seldom supported by mature tools, scarcely documented, focusing on very specific needs, and leaving no space for extensions enabling the addition of new features.
 
As a way to overcome some of those limitations, [[Unified Modeling Language|UML]] has been indicated as a possible successor of existing ADLs. Many proposals have been presented to use or extend the UML to more properly model software architectures.<ref>{{cite web|title= Garlan_TR |date= 31 March 2004|url= http://www.sei.cmu.edu/library/abstracts/reports/04tr008.cfm}}</ref><ref>{{Cite book | last1 = Pérez-Martínez | first1 = J. E. | last2 = Sierra-Alonso | first2 = A. | chapter = UML 1.4 versus UML 2.0 as Languages to Describe Software Architectures | doi = 10.1007/978-3-540-24769-2_7 | title = Software Architecture | series = Lecture Notes in Computer Science | volume = 3047 | pages = 88 | year = 2004 | isbn = 978-3-540-22000-8 | chapter-url = http://oa.upm.es/33081/ }}</ref><ref name="SysADL">{{Cite book | last1 = Oquendo| first1 = F. | last2 = Leite | first2 = J.C. | last3 = Batista| first3 = T.B. | title = Software Architecture in Action: : Designing and Executing Architectural Models with SysADL. | year = 2016 | isbn = 978-3319443379 }}</ref>
 
A 2013 study<ref name="IndustrySurvey">{{cite journal| first1 = Ivano| last1 = Malavolta| first2 = Patricia| last2 = Lago| first3 = Henry| last3 = Muccini| first4 = Patrizio| last4 = Pelliccione| first5 = Antony| last5 = Tang | year = 2013 | title = What Industry Needs from Architectural Languages: A Survey | journal = IEEE Transactions on Software Engineering | volume = 39 | issue = 6 | pages = 869–891| doi = 10.1109/TSE.2012.74| s2cid = 6383726}}</ref> found that practitioners were generally satisfied with the design capabilities of the ADLS they used, but had several major concerns with them: they lacked analysis features and the ability to define extra-functional properties; those used in practice mostly originated from industrial development rather than academic research; they needed more formality and better usability.
Line 106:
* [[EAST-ADL]]
* [[Wright (ADL)]]
* [https://sysadl.imd.ufrn.br SysADL]
 
==Approaches to system architecture==
{{expand section|citations, an introduction, and context|date=September 2022}}
Architecture Description Languages (ADLs) are formal languages used to represent the architecture of software-intensive systems. They describe the components, connectors, and configurations that make up a system's architecture, facilitating communication among stakeholders and supporting analysis and documentation.
 
The academic approach to ADLs focuses on formal models and rigorous analysis. Languages in this approach emphasize precise specification of architectural elements and their interactions to analyze properties like performance, reliability, and security. Key features include rigorous modeling notations, formal methods for analysis, and specialized solutions tailored to specific domains or architectural styles. Examples include ''Rapide'', ''MetaH'', and ''Wright''.
 
Conversely, the industrial approach emphasizes practicality and integration into existing development workflows. These ADLs prioritize ease of use and broad applicability across domains, often supporting multiple architectural views to address diverse stakeholder needs. Industrial ADLs trade some formal rigor for usability and versatility. Notable examples are ''ArchiMate'', the ''Architecture Analysis & Design Language'' (AADL), ''EAST-ADL'' for automotive systems, and ''Executable UML''.
 
Choosing between academic and industrial approaches depends on system complexity, the need for formal verification, and ___domain-specific requirements.
 
<ref>{{cite book |last=Shaw |first=M. |title=Software Architecture: Perspectives on an Emerging Discipline |last2=Garlan |first2=D. |publisher=Prentice Hall |year=1996 |isbn=978-0131829573}}</ref> <ref>{{cite journal |last=Medvidovic |first=N. |last2=Taylor |first2=R.N. |year=2000 |title=A Classification and Comparison Framework for Software Architecture Description Languages |journal=IEEE Transactions on Software Engineering |volume=26 |issue=1 |pages=70–93 |doi=10.1109/32.825767}}</ref> <ref>{{cite web |title=ArchiMate 3.1 Specification |url=https://pubs.opengroup.org/architecture/archimate3-doc/ |accessdate=2025-08-08 |publisher=The Open Group}}</ref> <ref>{{cite web |title=AADL (Architecture Analysis & Design Language) |url=https://www.aadl.info/ |accessdate=2025-08-08}}</ref>
* Academic approach
** focus on analytic evaluation of architectural models
Line 137 ⟶ 129:
* [[Darwin (ADL)|Darwin]]
* [[Scripting language]]
* [https://sysadl.imd.ufrn.br SysADL]
* [[Hardware description language]]