| This article may need to be rewritten entirely to comply with Wikipedia's quality standards. You can help. The discussion page may contain suggestions. (May 2012) |
Using Archlll l Description Languages to Improve Software Quality and Correctness
Architectural Description Languages (ADLs) provide a means to model and analyze software architectures in order to improve software quality and correctness. SSD supports the adoption and standardization of ADL technology for industrial use by demonstrating its applicability to challenging, current problems in industrial software.
WHAT ARE ARCHITECTURAL DESCRIPTION LANGUAGES?
A software architecture describes the structure and behavior of a software system and the non-software entities the system interfaces with. In a software architecture, a system is represented as a set of software components, their connections, and their important behavioral interactions. Creating a software architecture promotes better understanding of the system, thus aiding the design process. It also provides a basis for rigorous analysis of the system design, making possible the early detection of design errors and flaws that lead to improvements in software quality and help ensure correctness.
An architectural description language (ADL) is used to describe a software architecture. An ADL may be a formal or semi-formal descriptive language, a graphics language, or include both. The advantage of using an ADL lies in the ability to rigorously specify an architecture so that it can be aecified in the language. In recent years, there has been a considerable amount of research into developing ADLs.
A number of ADL's have been devised and these include AESOP,UNICON,WRIGHT etc.
Different communities use the term architecture description language. Some important communities are the system engineering community, the software engineering community and the enterprise modelling and engineering community
In the system engineering community, an Architecture Description Language (ADL) is a language and/or conceptual model used to describe and represent system architectures.
In the software engineering community, an Architecture Description Language (ADL) is a computer language used to describe and represent software architectures. This means in case of technical architecture, the architecture must be communicated to software developers. With functional architecture, the software architecture is communicated with stakeholders and enterprise engineers. By the software engineering community several ADLs have been developed, such as Acme (developed by CMU), AADL (standardized by SAE), C2 (developed by UCI), Darwin (developed by Imperial College London), and Wright (developed by CMU).
ISO/IEC/IEEE 42010[1], Systems and software engineering — Architecture description, defines Architecture Description Language as any form of expression for use in architecture descriptions and specifies minimum requirements on ADLs.
The enterprise modelling and engineering community have also developed architecture description languages catered for at the enterprise level. Examples include ArchiMate (now an Open Group standard), DEMO, ABACUS (developed by the University of Technology, Sydney) etc. These languages do not necessarily refer to software components, etc. Most of them, however, refer to an application architecture as the architecture that is communicated to the software engineers.
Most of the writing below refers primarily to the perspective from the software engineering community.
|
Contents
|
A standard notation (ADL) for representing architectures helps promote mutual communication, the embodiment of early design decisions, and the creation of a transferable abstraction of a system. Architectures in the past were largely represented by box-and-line drawing annotated with such things as the nature of the component, properties, semantics of connections, and overall system behavior. ADLs result from a linguistic approach to the formal representation of architectures, and as such they address its shortcomings. Also important, sophisticated ADLs allow for early analysis and feasibility testing of architectural design decisions.
There is a large variety in ADLs developed by either academic or industrial groups. Many languages were not intended to be an ADL, but they turn out to be suitable for representing and analyzing an architecture. In principle ADLs differ from requirements languages, because ADLs are rooted in the solution space, whereas requirements describe problem spaces. They differ from programming languages, because ADLs do not bind architectural abstractions to specific point solutions. Modeling languages represent behaviors, where ADLs focus on representation of components. However, there are domain specific modeling languages (DSMLs) that focus on representation of components.
Minimal requirements
The language must:
ADLs have in common:
ADLs differ in their ability to:
The ADL community generally agrees that Software Architecture is a set of components and the connections among them. But there are different kind of architectures like :
Most ADLs implement an interface connection architecture.
So what is the difference between architecture and design? Architecture casts non-functional decisions and partitions functional requirements, whereas design specifies or derives functional requirements. The process of defining an architecture may use heuristics or iterative improvements; this may require going a level deeper to validate the choices, so the architect often has to do a high-level design to validate the partitioning.
Below the list gives the candidates for being the best[citation needed] ADL until now
Approaches to Architecture
|
|||||
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)