1.1 Context and challenges
Current complex systems are subject to numerous requirements or concurrent constraints, sometimes conflicting: functional requirements (service(s) expected by the end user), and non-functional requirements (ergonomics, security, safety of operation, mass, scalability, environments, interfaces, etc.), within a context of competition calling for still more responsiveness and adaptation, shorter design cycles and especially a very good understanding of aspirations and objectives of customers.
The initial definition and engineering stages of such systems are critical because they condition the ability of the retained architecture to satisfy customer needs, and the proper steps to take requirements into account within the subsystems or components emerging from this architecture. In order to control schedules and costs, it is essential that the adequacy of the solution with regard to needs and constraints can be verified, as early as during the design stage of the system; this enables the minimization of the risk of belatedly discovering solution limitations, and of more or less deeply calling into question the architecture during advanced development stages, or at the time of integration or validation of the system.
The complexity is further increased given the large number of key players involved in engineering: customers, end users, operational analysts, architects of different system levels, experts (performance, algorithmic, security, operation safety, product line, mechanics, thermal, electronics and information systems, etc.), development (design office, software, hardware, etc.) and integration teams.
Another type of constraint is also increasingly becoming prominent in system and product development today which could be summed up in two words: variability and agility.
On the one hand, customer needs are diverse, continuously evolving, because they are themselves faced with a constantly evolving environment. On the other hand, to reduce costs, manufacturers strive to identify a maximum of genericity and communities to which a product policy can be applied, thus maximizing reuse.
In parallel, it is increasingly necessary for manufacturers to develop a capacity for agility, in order to reduce design cycles, to be able to define and assess more and more alternatives as quickly as possible, to quickly and safely respond to demands for development, or design or implementation problems.
Finally, the distribution of work between several organizations and companies (general contractors, contracting authorities, main subsystems suppliers) also reinforces the difficulty in federating and coordinating works and practices necessarily different because responding to different constraints, but under the obligation of contributing to a common solution.
It is therefore crucial to develop the capacity of a large team, multidisciplinary and distributed over several entities, for deploying collaborative engineering or an agile co-engineering approach, focused on the construction and validation of the system architecture, while at the same time best securing joint works and the consistency of works carried out individually by each participating entity in an optimal manner. This is the purpose of the Arcadia (Architecture Analysis and Design Integrated Approach) method presented in this book.
1.2 A bit of history: the creation of a method
1.2.1 Evolution of engineering
In the early 2000s, the company Thales1 was facing a major transformation in its markets and its products in a number of areas, in which a shift was driving the company from the status of separate equipment supplier, integrated by third parties, to a role of provider of turnkey solutions and comprehensive systems: namely air traffic control systems, defense missions, satellite systems, communication infrastructures and networks, surveillance and security systems, critical information systems, etc.
This relatively new situation introduced transformations within engineering problems: engineering had to assume the transition from an expression of need mainly centered on technical performance, on the part of customers, to a capability-based expectation, in other words, the ability to provide operational capabilities with a guaranteed quality of service, without prejudice to the nature of the solution that could or should address it. Simultaneously, within the development of the solution, precisely, the problems that had to be solved were themselves undergoing a transformation: historically, they comprised a dominant technical characteristic related to engineering expertise, such as algorithmic processing, mechanical characteristics, resilience in facing environmental conditions, absolute performance, etc. Gradually, new challenges became more important: namely the global optimization of the solution rather than the juxtaposition of local optima, the adaptation to various and shifting operation contexts, product policies, the use of off-the-shelf products, the increasing impact of security and safety of operation, certification constraints, human factors, etc. Large-scale architectural features became major and even pre-eminent in certain areas.
1.2.2 2001â2006: First experiments using a model-based approach
A first initiative to assist engineers [EXE 04, NOR 05] was launched in 2001 in the form of a research program in the field of software systems (named MDSysE for Model-Driven SYStem Engineering), in order to study the emerging field of modeling methods, standards and technologies. Although modeling has been already used in a limited manner in practice to document designs, the ability to drive engineering and to fully support the analysis and design of the architecture had yet to be validated. Methods, languages and solutions for tools were defined and experimented, relying on the state of the art at the time â languages and profiles such as the formalism of UML [UML 15], or the Rational Unified Process [KRU 98] as a modeling process,...