# 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:
* "Define the Problem – Customer Operational Need Analysis",
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.
* "Formalisation of System/SW Requirements – System/SW 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.
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.
* "Development of System/SW Architecture – Logical Architecture",
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 – Physical 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.
* "Formalize Components Requirements – Contracts for Development and IVVQ",
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.
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.
| ARCADIA engineering phases | Breakdown |

## 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:
| Conference | Title | Date | Place |
| MODELS'16 | ARCADIA in a nutshell | 02/10/2016 | Saint Malo |
| INCOSE International Symposium | Implementing the MBSE Cultural Change: Organization, Coaching and Lessons Learned | 14/07/2015 | Seattle |
| INCOSE International Symposium | From initial investigations up to large-scale rollout of an MBSE method and its supporting workbench: the Thales experience | 14/07/2015 | Seattle |
| EclipseCon France | Systems Modeling with the ARCADIA method and the Capella tool | 24/06/2015 | Toulouse |
| Model-Based System Engineering (MBSE) Symposium | The Challenges of Deploying MBSE Solutions | 28/10/2014 | Canberra |
| Model-Based System Engineering (MBSE) Symposium | Arcadia and Capella in the Field | 27/10/2014 | Canberra |
| EclipseCon France | Arcadia / Capella, a field-proven modeling solution for system and software architecture engineering | 19/06/2014 | Toulouse |
| MDD4DRES ENSTA Summer school | Feedbacks on System Engineering – ARCADIA, a model-based method for Architecture-centric Engineering | 01/09/2014 | Aber Wrac'h |
| EclipseCon North America | Arcadia / Capella, a field-proven modeling solution for system and software architecture engineering | 20/03/2015 | San Francisco |
| Complex Systems Design & Management (CSDM) | ARCADIA: Model-Based Collaboration for System, Software and Hardware Engineering | 04/12/2013 | Paris |
| Congrès Ingénierie grands programmes et systèmes complexes | La modélisation chez Thales : un support majeur à la collaboration des acteurs dans l’ingénierie des grands systèmes | 10/06/2013 | Arcachon |
| MAST | Toward integrated multi-level engineering - Thales and DCNS advanced Practices | 04/06/2013 | Gdańsk |
| CSDM | Modelling languages for Functional Analysis put to the test of real life | 2012 | Paris |
| ICAS | Method and tools to secure and support collaborative architecting of constrained systems | 2010 | Nice |
| CSDM | Model-driven Architecture building for constrained Systems | 2010 | Paris |
| INCOSE;08 Symposium | Method & Tools for constrained System Architecting | 2008 | Utrecht |