Characterizing observability and controllability of software components
- 23 December 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Two important objectives when designing a specification for a reusable software component are understandability and utility. For a typical component defining a new abstract data type, a significant common factor affecting both of these objectives is the choice of a mathematical model of the (state space of the) ADT, which is used to explain the behavior of the ADT's operations to potential clients. There are subtle connections between the expressiveness of this mathematical model and the functions computable using the operations provided with the ADT, giving rise to interesting issues involving the two complementary system theoretic principles of "observability" and "controllability". The paper discusses problems associated with formalizing intuitively stated observability and controllability principles in accordance with these tests. Although the example we use for illustration is simple, the analysis has implications for the design of reusable software components of every scale and conceptual complexity.Keywords
This publication has 14 references indexed in Scilit:
- Part II: specifying components in RESOLVEACM SIGSOFT Software Engineering Notes, 1994
- Part I: the RESOLVE framework and disciplineACM SIGSOFT Software Engineering Notes, 1994
- Recasting algorithms to encourage reuseIEEE Software, 1994
- Modular verification of data abstractions with shared realizationsIEEE Transactions on Software Engineering, 1994
- ON SPECIFICATION OF REUSABLE SOFTWARE COMPONENTSInternational Journal of Software Engineering and Knowledge Engineering, 1993
- Larch: Languages and Tools for Formal SpecificationPublished by Springer Nature ,1993
- Reusable Software ComponentsPublished by Elsevier ,1991
- Expressiveness of the operation set of a data abstractionPublished by Association for Computing Machinery (ACM) ,1980
- Abstract data types and software validationCommunications of the ACM, 1978
- Specification techniques for data abstractionsIEEE Transactions on Software Engineering, 1975