On the Practical Need for Abstraction Relations to Verify Abstract Data Type Representations
IEEE Transactions on Software Engineering
Escaping the software tar pit: model clashes and how to avoid them
ACM SIGSOFT Software Engineering Notes
A software engineering perspective on algorithmics
ACM Computing Surveys (CSUR)
Dynamic Module Replacement in Distributed Protocols
ICDCS '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
Measuring design testability of a UML class diagram
Information and Software Technology
Hi-index | 0.00 |
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". This paper discusses problems associated with formalizing intuitively-stated observability and controllability principles in accordance with testing for these properties. 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.