On the criteria to be used in decomposing systems into modules
Communications of the ACM
Specification and development of interactive systems: focus on streams, interfaces, and refinement
Specification and development of interactive systems: focus on streams, interfaces, and refinement
ACM Transactions on Software Engineering and Methodology (TOSEM)
Chapter I: Notes on structured programming
Structured programming
SERA '07 Proceedings of the 5th ACIS International Conference on Software Engineering Research, Management & Applications
Hi-index | 0.00 |
Today, many software systems offer a multitude of different, user-observable functions, which in their entirety form the very complex overall system’s functionality. However, practical experience shows that many question are directly related to the user-observable sub-functions. Regarding the development process, this requires to relate the entire system’s functionality to its sub-functions in a formal way. In this context, decomposing and modeling the functionality in a structured way is essential. In this paper, we identify and define fundamental concepts for the structuring of a system’s functionality into modular parts. We formalize these concepts using Focus, a stream-based theory for the specification of reactive systems. In particular, we define the notion of self-contained, autonomous sub-functions and introduce a canonical decomposition of functionality, inherent to the structure and nature of the functionality. Subsequently, we discuss topics of methodology that guide a modular functional decomposition. All in all, this gives a modular structuring concept for the behavior of multi-functional systems.