Lessons Learned in Inter-Organization Virtual Integration 2018-01-1944
The SAE AS2C Standard AS5506C Architecture Analysis and Description Language (AADL) is a modeling language for predictive analysis of real-time software reliant, safety and cybersecurity critical systems that provides both the precision of formal modeling and the tool-agnostic freedom of a text-based representation. These traits make AADL ideal for virtual integration, a process that enables early detection of integration defects through model integration of software, computer hardware, and interacting physical devices. AADL supports multiple domains of architectural analysis such as timing, latency, resources, safety, scheduling, and cybersecurity. Adventium Labs conducted an exercise to determine the applicability of software engineering practices (e.g., continuous integration (CI), application programming interface (API) sharing, test driven development (TDD)) to the AADL-based Architecture Centric Virtual Integration Process (ACVIP). Our exercise consisted of four teams: supplier, integrator, Authoritative Source of Truth (ASoT) provider, and customer. We isolated each team and required the use of pre-selected tools (e.g., git) for collaboration between teams. We conducted a series of design reviews; each requiring the teams to exchange AADL models to facilitate increasingly detailed analyses (e.g., processor utilization, then thread schedulability, then fault tree analysis). We determined that software engineering practices add value to inter-organization virtual integration. We identified several modeling best practices and recommendations for extensions and changes to the AADL. Best practices of note include: Read-only git repositories, API definition through test harnesses, and “headless” implementations of analysis tools. Language recommendations included: Improved semantics for bus access, component “overriding”, and incorporation of Universally Unique Identifiers (UUIDs) into the AADL language.