Architecture Analysis & Design Language (2022)

The Architecture Analysis & Design Language (AADL) [38] is an architecture description language which can be represented as text, graphically, or using XML Metadata Interchange (XMI). AADL has been developed by academic and industrial partners and standardized by the Society of Automotive Engineers. AADL has been developed for modeling distributed real-time embedded systems, and to support the complete engineering life-cycle, including: specification, analysis, tuning, integration, and upgrade.

AADL is based on a component model which distinguishes interface from implementation and where an implementation is a particular realization of a specific interface. As illustrated in Listing 4.1 and Listing 4.2, an interface is specified by a type declaration (e.g., lines 7-11 and 24-28), and an implementation is specified by an implementation declaration (e.g., lines 15-20 and 31-40). In a type declaration the externally visible interface of a component is specified in terms of “features”

(e.g., lines 8-10 and 25-27). On the other end, in an implementation declaration the internalstructure of a component is defined; the internal structure of a component may include components (i.e., other components) (e.g., lines 32-33 and 53-54), connections between sub-components, and connections between the component interface and the sub-components interfaces(e.g., lines 34-36 and 55-57).

1 -- an AADL comment is preceded by "--"

2 package example -- beginning of the "example" package 3 public -- public contents of the "example" package 4

5 -- a subprogram type declaration 6

7 subprogram compute 8 features -- interface

9 i : in parameter integer;

10 o : out parameter integer;

11 end compute;

12

13 -- a subprogram implementation declaration 14

15 subprogram implementation compute.impl 16 properties

17 source_language => C;

(Video) Lect-9: Architecture Analysis and Design Language (AADL)

18 source_text => ("compute.o"); -- object file name 19 source_name => "do_compute"; -- function name 20 end compute.impl;

21

22 -- a thread type declaration 23

24 thread thread_compute 25 features

26 inp : in event data port integer;

27 outp : out event data port integer;

28 end thread_compute;

Listing 4.1. An example of an AADL model (continued in Listing 4.2).

29 -- a thread implementation declaration

42 -- a process type declaration 43

50 -- a process implementation declaration 51

57 port thread_compute.outp -> data_out;

58 end process_type.impl;

59

(Video) Tutorial #0: Introduction to AADL and OSATE

60 end; -- end of the “example” package

Listing 4.2. An example of an AADL model (continuation of Listing 4.1).

In AADL, all type and implementation declarations are associated with a specific componentcategory. The category of component defines what is expected of the component during run-time,

restricting the interface and implementation that is possible. AADL specifies four sets of component categories: (1) software, (2) execution platform, (3) composite, and (4) abstract.

First, the set of software component categories, enable modeling of source text (e.g., C/C++, Ada, Java), concurrent tasks, protected and virtual address space, among others. More specifically, software component categories include:

• subprogram: models source text that is executed sequentially (e.g., lines 7-11 and 15-20);

graphically, a subprogram should be represented as a solid line ellipse, as illustrated in Figure 4.2, based on Listing 4.1 and Listing 4.2.

• thread: models concurrent tasks, the basic unit of execution and schedulability (e.g., lines 24-28 and 31-40); graphically, a thread should be represented as a dashed line parallelogram, as illustrated in Figure 4.2, based on Listing 4.1 and Listing 4.2.

• process: models a protected or virtual address space, and must contain at least one thread (e.g., lines 44-48 and 52-58); graphically, a process should be represented as a solid line parallelogram, as illustrated in Figure 4.2, based on Listing 4.1 and Listing 4.2.

• data: models static data in source text; graphically, a data components should be represented by a solid line rectangle, as illustrated in Figure 4.3.

Figure 4.2. Standard AADL graphical representation of the model in Listing 4.1 and Listing 4.2.

process_type.impl thread_compute.impl

compute.impl

Figure 4.3. Standard AADL graphical representation for some AADL components.

(Video) Architecture Analysis with AADL

Second, the set of execution platform component categories represent a combination of hardware and software capable of supporting the execution of software, storage, and communications.

Execution platform components include:

• processor: a combination of hardware and software responsible for protected address spaces and for scheduling threads; graphically, a processor should be represented by a solid line rectangular parallelepiped, as illustrated in Figure 4.3.

• virtual processor: a logical resource which provides an additional level of schedulability, and which enables the specification of virtual machines; graphically, a virtual processor should be represented by a dashed line rectangular parallelipiped, as illustrated in Figure 4.3.

• memory: represents randomly accessible physical storage such as ROM and RAM;

graphically, memory should be represented by a cylinder, as illustrated in Figure 4.3.

• device: represents a component capable of interacting with the external environment (e.g., sensors, actuators); graphically, a device should be represented as illustrated in Figure 4.3.

• bus: a physical or logical communication channel between execution platform components;

graphically, a bus should be represented by a solid line double edged block arrow, as illustrated in Figure 4.3.

• virtual bus: a virtual communication channel or a communication protocol built on top of a

system data

processor

virtual processor

memory

(Video) AADL Overview and Perspectives

bus

virtual busdevice

bus; graphically, a virtual bus should be represented by a dashed line double edged block arrow, as illustrated in Figure 4.3.

Third, the set of composite component categories, is only composed by the system component.

Software components cannot be sub-components of hardware components, and vice versa. The system component enables the integration of the two, and enables software components to be mapped onto execution platform components; for example: mapping a process to memory, mapping a process to a processor or virtual processor, etc. Graphically, as illustrated in Figure 4.3, a system should be represented by solid line rounded rectangle.

Forth and last, the set of abstract component categories, is only composed by the abstract component which can be refined into any other component category.

The interface of a component is specified in terms of “features,” as explained above, and the connections between components are defined by connections between “features.” Each component category supports a different set of features, such as:

• data port: models transfer of state data (e.g., sensor data);

• event port: models transfer of control, through events (e.g., set-point reached, start thread);

• event data port: models transfer of events with data (e.g., logging) (e.g., lines 26, 27, 46 and 47);

• subprogram parameters: models the inputs and outputs of subprograms (e.g., lines 9 and 10).

Properties are name/value pairs which can be used to characterize a component, such as the period and deadline of threads (e.g., lines 38 and 39), or the source text associated with a subprogram (e.g., lines 17-19), among many others. Properties can be declared within type and implementation declarations; properties declared in a type declaration are inherited by an implementation declaration. There are a set of standard properties and standard property types; additional properties can be added through custom property sets. Standard properties sets include: real-time, communication, data representation, error handling, code generation, deployment, etc.

AADL has been chosen for this work because it provides the necessary abstraction for the representation of ARINC 653 partitions, privileged partitions, and virtual machines. Furthermore, it is supported by Ocarina, described in Section 4.4. Ocarina, a free and open source AADL compiler with one back-end for POK, used in this work.

Many architecture description languages can be found in the literature. Most of then, however, are

(Video) Architecture Description Language

too broad and generic [103]–[105]. AADL, on the other end, is well established and standardized,and it is not overly specific yet defines precise semantics.

FAQs

What is architecture design language? ›

A design language or design vocabulary is an overarching scheme or style that guides the design of a complement of products or architectural settings, creating a coherent design system for styling.

What is architecture analysis? ›

Architectural analysis focuses on defining a candidate architecture and constraining the architectural techniques to be used in the system. It relies on gathering experience gained in similar systems or problem domains to constrain and focus the architecture so that effort is not wasted in architectural rediscovery.

What is architectural analysis in software engineering? ›

Architecture Analysis encompasses capturing software architecture in concise diagrams, applying lists of risks and threats, adopting a process for review (such as STRIDE or Architecture Risk Analysis), and building an assessment and remediation plan for the organization.

Why architectural analysis is important? ›

Why is an Architectural Analysis Important? An Architectural Analysis is an evaluation specifically of how a proposed architecture is suitable for the requirements of a solution. The architecture is the backbone of a project and selecting the wrong one at the onset can be fatal to the success of a software project.

What are the types of design language? ›

Design languages are of two types, software programming languages (SPL) and hardware description languages (HDL). At one time, designers were either software or hardware designers, and design teams were clearly distinguished by these separate roles.

What is design language example? ›

Fonts, colors, shapes, visual elements such as icons — those are elements of design language.

What are the common steps in architectural analysis? ›

It can be roughly partitioned into four phases/activities: goal definition, preparation, analysis, and problem resolution. First, the analysis goals need to be defined.

How do you Analyse architecture design? ›

How to Analyze Architecture: a Beginner's Guide
  1. What is the Building Built for? Not all buildings should have the same shape and size. ...
  2. Materials and Facade. What materials are they using? ...
  3. More on its Usefulness. ...
  4. What's the Surrounding Area Like? ...
  5. Light. ...
  6. Human Movement. ...
  7. Get Inside and Play with the Thing.

How do you write an architectural analysis? ›

Young Architect Guide: 10 Tips for Writing About Architecture
  1. Take a Personal Perspective. ...
  2. Harness Visceral Imagery. ...
  3. Ask Rhetorical Questions. ...
  4. Master Metaphors and Similes. ...
  5. Use Personification. ...
  6. Set the Scene. ...
  7. Kick Off With a Quote. ...
  8. Apply Some Dry Wit.

What problems does architecture analysis solve? ›

What problems does architecture analysis solve? Software defects that lead to security problems come in two major flavors: bugs in the implementation and. flaws in the design.

What are the key architectural activities? ›

defined a general model of architecture design including three activities, i.e., architectural analysis, architectural synthesis, and architectural evaluation [15]. The first one concerns the problem space of architecture design, while the second and third activities concern the solution space.

When should the architect begin the analysis? ›

After establishing the customer's problems, expectations, and needs, after the enduser and client sign's off and finalizes the information and requirement, the architect should begin with the analysis and implementation of the code or the security feature (Schoenfield, 2019).

What is architecture design software? ›

Software Architecture Definition

Software architecture is, simply, the organization of a system. This organization includes all components, how they interact with each other, the environment in which they operate, and the principles used to design the software.

What is the difference between software architecture and design? ›

Sometimes it can be hard to tell the difference between the two. Basically, software design is about the individual modules and components of the software, and software architecture is about the overall structure that these components fit into.

Why do we need architecture in software? ›

A software architecture introduces constraints on implementation and restricts design choices. This reduces the complexity of a software system and prevents developers from making incorrect decisions.

Why is the language of design important to architecture? ›

Moreover, terminology helps clients and building users to better understand aesthetics as architectural language: The way in which an individual architect or whole culture expresses values is in the way individual words become forms, and in the way those tangible parts are put together are sentence structure and ...

Why is design called a language? ›

A Design Language is a set of rules and principles that guide an organization's visual identity, which ensures that their designs have a sense of continuity.

What is Apple's design language? ›

The Snow White design language established Apple as a design leader in the consumer electronics industry, set trends for the computer industry as well as changing the industry's perception of how computers are designed and manufactured.

What is UI design language? ›

User interface (UI) design is the process designers use to build interfaces in software or computerized devices, focusing on looks or style. Designers aim to create interfaces which users find easy to use and pleasurable. UI design refers to graphical user interfaces and other forms—e.g., voice-controlled interfaces.

What is a UX design language? ›

What coding languages do UX/UI designers use? The most common markup languages that UX/UI designers should know are HTML & CSS. JavaScript is a secondary language that might be helpful. HTML is used to format the structure of a page, and CSS helps add styling such as font size, color, opacity, and more.

Why architecture is a language? ›

Every traditional architecture has its own form language. It has evolved from many different influences of lifestyle, traditions, and practical concerns acting together to define the geometry that structures take as the most natural visual expressions of a particular culture.

What is the difference between design language and design system? ›

Design language is an integral part of a design system, which helps a team to understand not only how to use components and styles together to create a consistent user interface, but it also communicates why they need to use those components and styles in the first place.

How do you develop architectural language? ›

Every traditional architecture has its own form language.
...
  1. Read books. They say there is no friend as loyal as a book.
  2. Sketch out your ideas.
  3. Look into case studies.
  4. Approach your idea from different angles.
  5. Take a break, do something else.
  6. Break it down – make a list.
  7. Design in 3D.
  8. Explore Various Permutations.
Jul 30, 2019

What is design language in product design? ›

“Product Design Language” is the term used to describe how brand values and deep customer insights are translated into how a product looks, feels and functions. What we tend to see is that when this is done well, products don't just succeed; they exceed expectations and dominate the market.

What is the full meaning of architecture? ›

architecture, the art and technique of designing and building, as distinguished from the skills associated with construction. The practice of architecture is employed to fulfill both practical and expressive requirements, and thus it serves both utilitarian and aesthetic ends.

How are language and architecture related? ›

Language is a form of verbal communication and architecture is a form of non-verbal communication. As a form of non-verbal communication, an architect should understand well how to communicate in this non-verbal language, so that the purpose and objectives of the building can be achieved (Lawson, 2001).

What is architectural vocabulary? ›

In a broader sense, hence, architectural vocabulary might be called visual communication design owing to the many parameters. For instance, while observing scenery, one would look for a balance that has been maintained in the picture, whether it is symmetric, axial or radial.

Which language is best for UI design? ›

What coding languages do UX/UI designers use? The most common markup languages that UX/UI designers should know are HTML & CSS. JavaScript is a secondary language that might be helpful. HTML is used to format the structure of a page, and CSS helps add styling such as font size, color, opacity, and more.

What is a CSS design system? ›

A design system is a collection of design tokens, practices, and reusable components that helps keep things consistent for your design and product teams. Colours, typography, icons, and many more are related to styles that help determine how the brand is presented in the UI.

What is the design language system developed by Google? ›

Material Design (originally referred to as and codenamed “Quantum Paper”) was developed by Google and is a design language used for Android devices.

What are architectural design elements? ›

The elements of design are the fundamental aspects of any visual design which include shape, color, space, form, line, value, and texture.

What is my design language? ›

A Design Language is a set of rules and principles that guide an organization's visual identity, which ensures that their designs have a sense of continuity.

What is UI design language? ›

User interface (UI) design is the process designers use to build interfaces in software or computerized devices, focusing on looks or style. Designers aim to create interfaces which users find easy to use and pleasurable. UI design refers to graphical user interfaces and other forms—e.g., voice-controlled interfaces.

What is Apple's design language? ›

The Snow White design language established Apple as a design leader in the consumer electronics industry, set trends for the computer industry as well as changing the industry's perception of how computers are designed and manufactured.

Videos

1. Synergistic FACE™ and AADL Modeling to Support Behavioral Analysis
(The Open Group)
2. Tutorial #1: Components in AADL
(AADL tutorial)
3. How to Speak the Language of Application Architecture
(freeCodeCamp.org)
4. The Ultimate Guide to Precedent Studies in Architecture *life changing*
(Surviving Architecture)
5. Architecture Short Course: How to Develop a Design Concept
(30X40 Design Workshop)
6. Architectural Site Analysis Part 3 - Presentation
(First In Architecture)

Top Articles

Latest Posts

Article information

Author: Tuan Roob DDS

Last Updated: 11/28/2022

Views: 5509

Rating: 4.1 / 5 (62 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Tuan Roob DDS

Birthday: 1999-11-20

Address: Suite 592 642 Pfannerstill Island, South Keila, LA 74970-3076

Phone: +9617721773649

Job: Marketing Producer

Hobby: Skydiving, Flag Football, Knitting, Running, Lego building, Hunting, Juggling

Introduction: My name is Tuan Roob DDS, I am a friendly, good, energetic, faithful, fantastic, gentle, enchanting person who loves writing and wants to share my knowledge and understanding with you.