Arcadia (engineering)

ARCADIA (Architecture Analysis & Design Integrated Approach) is a system and software architecture engineering method based on architecture-centric and model-driven engineering activities.

History
In the development cycle of a system, former practices focused more on the definition of requirements, their allocation to each component of the system component and associated traceability. Current approaches rather focus on functional analysis, system design, justification of architectural choices, and verification steps. In addition, the design takes into account not only the functional point of view, but also other points of view, which affect the definition and breakdown of the system. For example, constraints relating to system integration, product line management, safety, performance and feasibility. Systems engineering is therefore not just about managing the system requirements, but is a complex design activity.

As an answer to this challenge, the ARCADIA method was created by Thales in 2007, placing architecture and collaboration at the center of systems engineering practices.

The vision for ARCADIA was to break the "walls" between different engineering specializations including architects, development teams, Specialists, IVVQ (Integration, Verification, Validation, and Qualification) Teams, Customer and external partners.

Normalization
The ARCADIA method is about to be standardized as an AFNOR experimental norm. It has been published on March 7, 2018.

Context
The ARCADIA method applies to the design of complex and critical systems, and more generally architectures that are subject to multiple functional and non-functional constraints, including software, electronic, electrical architectures, and industrial processes. It defines a set of practices that guides needs analysis and design to meet an operational requirement. At the same time it is adaptable to the processes and constraints linked to various types of life cycles such as bottom-up approach, application reuse, incremental, iterative and partial development.

Objectives and action means
ARCADIA is a structured engineering method to identify and check the architecture of complex systems. It promotes collaborative work among all stakeholders during many of the engineering phases of the system. It allows iterations during the definition phase that help the architects to converge towards satisfaction of all identified needs.

Even if textual requirements are kept as a support for part of customer need capture, ARCADIA favors functional analysis as the major way to formalize the need and solution behavior. This includes operational, functional and non-functional aspects, along with resulting definition of the architecture, based on – and justified against – this functional analysis.

ARCADIA is based on the following general principles:
 * All engineering stakeholders share the same language, method set of engineering artifacts and information, description of the need and the product itself as a shared model;
 * Each set of constraints (e.g. safety, performance, cost, mass, etc.) is formalized in a "viewpoint" against which each candidate architecture will be checked;
 * Architecture verification rules are established and the model is challenged against them, so as to check that architecture definition meets expectations, as early as possible in the process;
 * Co-engineering between the different levels of engineering is supported by the joint development of models. Models of various levels of the architecture and trade-offs are deduced, validated and/or connected with each other.

The ARCADIA method is tooled through Capella, a modeling tool that meets full-scale deployment constraints in an operational context. Capella is available free of charge from the engineering community under open source.

Feature summary
The ARCADIA method:
 * Covers all structured engineering activities, from capturing customer operational needs to system integration verification validation (IVV);
 * Takes into account multiple engineering levels and their effective collaboration (system, subsystem, software, hardware, etc.);
 * Integrates co-engineering with specialty engineering (safety, security, performance, interfaces, logistics ...) and IVV;
 * Provides the ability not only to share descriptive models but also to collaboratively validate properties of the definition and the architecture;
 * Is field-tested in full-scale industrial applications, and is currently deployed on dozens of major projects in several countries and divisions of Thales.

Methodological approach
One of the difficulties frequently encountered in the development of complex systems comes from the superposition of several partially independent functional chains using shared resources (including but not limited to computing resources). The ARCADIA method and the underlying tools are used to identify functional chains, their overlapping scenarios and desired performance, along with their support by the architecture. Starting with the first level of system analysis, they ensure traceability throughout the process definition and check each proposed architectural design against expected performance and constraints.

The non-functional properties expected from the system solution are also formalized in 'viewpoints'. Each viewpoint captures constraints that the system should face or meet (feared events, security threats, latency expectations, product line or reuse constraints, power consumption or cost issues, and more). Then the architecture model is automatically analyzed to verify that it meets these constraints, thanks to dedicated expert rules (performance computation, resource consumption, safety or security barriers, etc.). This analysis can be done very early in the development cycle, detecting design issues as soon as possible ("early validation").

As a summary, the approach to characterization by views (or "viewpoints") cross-checks that the proposed architecture is capable of providing the required functions with the desired level of performance, security, dependability, mass, scalability, environments, mass, interfaces, etc. ensuring the consistency of engineering decisions, because all engineering stakeholders share the same engineering information, and can apply his/her own views and checks to them, so as to secure the common definition.

Presentation of the approach and key concepts
The first level views used to elaborate and share the architecture model are described below:

The first step focuses on analysing the customer needs and goals, expected missions and activities, far beyond System/SW requirements. This is expected to ensure good adequacy of System/SW definition with regards to its real operational use – and define IVVQ conditions. Outputs of this step consist mainly in an "operational architecture" describing and structuring this need, in terms of actors/users, their operational capabilities and activities, operational use scenarios giving dimensioning parameters, operational constraints including safety, security, lifecycle, etc.
 * "Define the Problem – Customer Operational Need Analysis",

The second step focuses now on the system/SW itself, in order to define how it can satisfy the former operational need, along with its expected behaviour and qualities: system/SW functions to be supported and related exchanges, non functional constraints (safety, security...), performances allocated to system boundary, role sharing and interactions between system and operators. It also checks for feasibility (including cost, schedule and technology readiness) of customer requirements, and if necessary gives means to renegotiate their contents. To do this, a first early system/SW architecture (architectural design model) is sketched, from system/SW functional need; then requirements are examined against this architecture in order to evaluate their cost and consistency. Outputs of this step mainly consist of system/SW functional Need description, interoperability and interaction with the users and external systems (functions, exchanges plus non-functional constraints), and system/SW requirements.
 * "Formalisation of System/SW Requirements – System/SW Need Analysis",

Note that these two steps, which constitute the first part of Architecture building, "specify" the further design, and therefore should be approved/validated with the customer.

The third step intends to identify the system/SW parts (hereafter called components), their contents, relationships and properties, excluding implementation or technical/technological issues. This constitutes the system/SW logical architecture. In order for this breakdown in components to be stable in further steps, all major [non-functional] constraints (safety, security, performance, IVV, Cost, non technical, etc.) are taken into account and compared to each other's so as to find the best compromise between them. This method is described as "Viewpoints-driven", viewpoints being the formalization of the way these constraints impact the system/SW architecture. Outputs of this step consist of the selected logical architecture: components and interfaces definition, including formalization of all viewpoints and the way they are taken into account in the components design. Since the architecture has to be validated against Need, links with requirements and operational scenarios are also produced.
 * "Development of System/SW Architecture – Logical Architecture",

The fourth step has the same intents as logical architecture building, except that it defines the "final" architecture of the system/SW at this level of engineering, ready to develop (by lower engineering levels). Therefore, it introduces rationalization, architectural patterns, new technical services and components, and makes the logical architecture evolve according to implementation, technical and technological constraints and choices (at this level of engineering). Note that the same "Viewpoints-driven" method as for logical architecture building is used for physical architecture definition. Outputs of this step consist of the selected physical architecture: components to be produced, including formalization of all viewpoints and the way they are taken into account in the components design. Links with requirements and operational scenarios are also produced.
 * "Development of System/SW Architecture – Physical Architecture",

The fifth and last step is a contribution to EPBS (End-Product Breakdown Structure) building, taking benefits from the former architectural work, to enforce components requirements definition, and prepare a secured IVVQ. All choices associated to the system/SW chosen architecture, and all hypothesis and constraints imposed to components and architecture to fit need and constraints, are summarized and checked here. Outputs from this step are mainly "component Integration contract" collected all necessary expected properties for each component to be developed.
 * "Formalize Components Requirements – Contracts for Development and IVVQ",

The following figure shows a global view summarizing the recommended technical process, featuring the three elements of the engineering triptych, and their production activities all along the definition and design process.

Communication
As part of the Clarity Project, a book on the ARCADIA method will be published. An introductory document is currently available for download on the Capella website.

The ARCADIA method was presented at various events: