Loading…
Integrating System and Software Engineering Through Modeling
System engineers who are responsible for capturing the formal requirements of a system typically have relied on text-based tools and free-form diagrams, otherwise known as "shall statements" and "PowerPoint engineering". In our work with the space interferometry mission (SIM) at...
Saved in:
Main Authors: | , |
---|---|
Format: | Conference Proceeding |
Language: | English |
Subjects: | |
Online Access: | Request full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Summary: | System engineers who are responsible for capturing the formal requirements of a system typically have relied on text-based tools and free-form diagrams, otherwise known as "shall statements" and "PowerPoint engineering". In our work with the space interferometry mission (SIM) at NASA's Jet Propulsion Laboratory, we found the need to unambiguously represent behaviors and interfaces using common language and terminology across multiple project elements, for example, throughout different levels of system engineering and among system, software, and controls engineering. The system engineers adopted portions of the Unified Modeling Language (UML) [1] as a means to effectively communicate interfaces and desired system behaviors. UML sequence diagrams were used to capture scenarios and provide context for and understanding of the intent of the typical "shall statements". UML Statechart diagrams were used to capture dynamic behavior. In practice, the system and software engineers would iterate together on these models. Iterating on models proved to be a highly effective method of "fleshing-in" loosely worded and ambiguous requirements. Requirements have typically been difficult for the software engineer to implement without understanding the intent behind the requirements. Through the process of modeling, we found that system and software engineers effectively communicated interfaces and behavior. Modeling provided other benefits as well, notably, the ability to auto-generate portions of the flight code from these models and to apply formal methods to prove various correctness properties regarding the model. In this paper, we will describe in further detail how system engineers used modeling as an effective communication tool to capture requirements, their context, and the ensuing design throughout multiple levels of the system and within a subsystem. This increased software engineers' understanding of and insight into the system, making the software design process more efficient. In addition, we will describe how software engineers leveraged the models to improve the quality and reduce the cost of the final software product. |
---|---|
ISSN: | 1095-323X 2996-2358 |
DOI: | 10.1109/AERO.2008.4526595 |