1 Introduction
2 Background and Related Work
2.1 LOFAR as a System-of-Systems - System Overview
2.2 DaC—Documentation-as-Code
2.3 ICD Management Approaches
3 Study Design
3.1 Study Goal and Research Questions
3.2 Research Methods
3.2.1 Technical Action Research
ID | Role in LOFAR project | D | AP | AT | EV | SL |
---|---|---|---|---|---|---|
P1 | Researcher | \(\checkmark \) | ||||
P2 | Software Engineer | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||
P3 | RF Electronics Engineer | \(\checkmark \) | \(\checkmark \) | |||
P4 | Senior Software Engineer | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||
P5 | Head of Software Development | \(\checkmark \) | ||||
P6 | Senior Software Engineer | \(\checkmark \) | ||||
P7 | Software Engineer | \(\checkmark \) | \(\checkmark \) | |||
P8 | System Engineer | \(\checkmark \) | \(\checkmark \) | |||
R1 | N/A | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) |
R2 | N/A | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||
May 2021- Jun 2021 | Aug 2021- Jan 2022 | Jan 2022- Mar 2022 | Mar 2022- May 2022 | Apr 2022- May 2022 |
3.2.2 Expert Panel
ID | Current affiliation | Qualifications | Experience (years) |
---|---|---|---|
E1 | Software Engineering Institute (USA) | Bachelor | 19 |
E2 | DEMCON (NL) | Bachelor | 23 |
E3 | European Space Agency - ESA (EU) | PhD | 20 |
E4 | Independent consultant (USA) | Master (multiple) | 50 |
E5 | Webasto Group (DE) | Master | 9 |
E6 | Software Engineering Institute (USA) | PhD | 39 |
E7 | Chartered engineer (UK) | Master | 30 |
E8 | European Space Agency - ESA (EU) | PhD | 15 |
E9 | Software Engineering Institute (USA) | Master | 36 |
E10 | NASA (USA) | PhD | 15 |
E11 | Warsaw University of Technology (PL) | Master | 5 |
E12 | Software Engineering Institute (USA) | Bachelor | 20 |
4 Results
4.1 RQ1: What are the issues with ICDs management that cause assumptions and misunderstandings when working with these documents in SoS?
4.1.1 Issues Related to ICD Management
4.1.2 Issues Related to Subsystem Design Decisions
4.2 RQ2: What are the Symptoms of the Previously Identified ICD-Management Issues within a Typical Hardware/Software-Oriented ICD?
4.2.1 General Symptoms
4.2.2 Symptoms Specific to ICD Sections
4.2.3 Symptoms Specific to Particular Kinds of Interfaces
Issue(s) | Symptom |
---|---|
COM, UNI | Missing hardware-related details: |
\(\bullet \) values (registers’ default value) | |
\(\bullet \) Operations atomicity | |
\(\bullet \) Need for bit alignment | |
\(\bullet \) Atomicity of byte writings | |
\(\bullet \) Mandatory timeouts for hardware operations | |
\(\bullet \) Registers’ signedness | |
\(\bullet \) Filler bits/bytes purpose | |
NDE | Register offsets scattered cross ICDs and source code |
Issue | Symptom |
---|---|
COM | Missing protocol/encoding related details: |
\(\bullet \) Endianness | |
\(\bullet \) Filler bits/bytes specification | |
\(\bullet \) Signedness | |
\(\bullet \) Presence or absence of acknowledge (ACK) messages | |
\(\bullet \) Time to completion | |
CLA | Text that contradicts information on tables (single source of truth) |
NDE | Command descriptions that require a manual (error prone) mapping of each parameter index into a certain byte/bit position when working on the software side. Error-prone re-mapping when a parameter update takes place. |
Issue | Symptom |
---|---|
COM | Missing protocol/encoding related details: |
\(\bullet \) Is timing relevant | |
\(\bullet \) Signedness | |
\(\bullet \) Endianness | |
\(\bullet \) Lack of communication examples | |
\(\bullet \) Timeouts on the hardware side | |
\(\bullet \) Undocumented incompatibility with higher-level protocol | |
NDE | |
\(\bullet \) Like in the monitoring and control registers described in the previous section, network and transport protocols also involve the mapping of byte/bit positions, but in this case, within the protocol payload. Consequently, re-mapping when a parameter update takes place is an error-prone process. | |
\(\bullet \) Restating information within the ICDs that is available somewhere else (and that should be referenced instead). |
4.3 RQ3: What are the Features Rrequired for a DaC-Based ICD Management Approach to Address such Issues?
4.4 RQ4: What is the Design of an ICD Management Pipeline that Provides the Identified Features?
Issue | Symptom | DaC feature |
---|---|---|
CLA | Overlapping/colliding abbreviations and terms. | (M) macros to (1) insert references to a centralized glossary, and (2) to generate a glossary section within the document accordingly. (QG) for undefined abbreviations |
Unclear language. | (QG) number of violations to the writing style rules defined by the organization | |
Broken links. | (QC) Broken links metric. | |
COM UNI | Missing details: on specifications for reading/writing from/to a peripheral (e.g., endianness, R/W rights, update rates, etc.).; on atomicity (e.g., which operations are atomic); on timing (e.g., commands timeout, ack signals timeout, etc.) | (F)(M) Support for hardware-oriented formalisms and (QG) to validate the completeness of instances of such formalisms |
UPN | ICDs should be amended when referenced documents are updated. | (DT) Identify and notify when a document has a more recent timestamp than the ones that referenced it |
Changes are discovered rather than announced; outdated documentation. | (F) Support for hardware-oriented formalisms and (M) macros for the generation of software artifacts (e.g., headers) and human-readable sections from the machine-readable formalisms. Based on this, and the (DT) platform, the artifacts’ checksum (e.g., headers) previously generated by the documentation pipeline, and currently used in the development environment, could be automatically compared, during the (software) building process, against the most recent one (available online) | |
NDE | Error-prone process of building a command’s payload, (e.g., mapping parameter bits within a given index). | (F) Support for hardware-oriented formalisms and (M) macros for the automatic generation of software artifacts (e.g., library headers) and human-readable sections from the machine-readable formalisms |
Information replicated over multiple ICDs (no need to reiterate what is written elsewhere). | (DT) tracking of the multiple versions of an ICD (sources and published builds) and (M) for referencing versions of other ICDs, reliably, through the centralized document tracking platform, and generating references section automatically | |
Need for the right balance between documentation maintenance efforts and actual engineering/development ones. | (F) Support for hardware-oriented formalisms and (M)macros for the generation of software artifacts (e.g., headers) and human-readable sections from the machine-readable formalisms. |
4.4.1 Quality-Gates and Markup Language Extensions
4.4.2 Centralized Document Tracking
4.4.3 Macros for Content Generation & Embedded Machine-Readable Formalism
4.5 RQ5: To what Extent can the Designed ICD Management Pipeline Improve the Identified ICD Management-Related Issues?
4.5.1 Evaluation Instrument
4.5.2 Documentation-Oriented Quality Gates
Participants | ||||||
---|---|---|---|---|---|---|
Question | P1 | P2 | P3 | P4 | P5 | |
Q1 (QG) | I believe that enforcing the expected minimum quality criteria of the texts within the ICDs, by means of automated ‘quality gates’, would improve their clarity and understandability. | A | D | SA | SA | N |
Q2 (QG) | I believe that enforcing the expected minimum quality criteria of the technical details included on the ICDs (e.g., hardware-level details), by means of automated ‘quality gates’, would reduce the documentation-related integration/operational issues experienced in the past. | A | A | SA | SA | N |
Q3 (M) | I think that having part of the documentation (e.g., glossaries, hardware description, etc) and other artifacts (e.g., software components) generated from models embedded in the ICDs would reduce the documentation maintenance efforts when compared with the existing approach. | A | N | SA | SA | SA |
Q4 (F) | I think the automatic generation of human-readable content and software artifacts from formal models embedded in the ICDs (e.g., SystemRDL, ARGS, etc.), would improve the data-transcription-related issues experienced in the past. | A | A | A | SA | SA |
Q5 (DT) | I think that having centrally managed ICDs, with their different versions/dependencies tracked, and status changes reported to relevant roles, would be helpful to mitigate the issues related to outdated documentation experienced in the past. | A | A | A | SA | SA |
Q6 (DT) | I think that integrating the information provided by the centrally-managed ICDs into the software development process, in a realistic setting, would be useful to avoid shipping software based on ICDs that could be outdated or that need to be revisited. | A | N | A | SA | A |