Program verification: the very idea
Communications of the ACM
The Z notation: a reference manual
The Z notation: a reference manual
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
Modular verification of Ada generics
Computer Languages
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
Part IV: RESOLVE components in Ada and C++
ACM SIGSOFT Software Engineering Notes
Component-based software using RESOLVE
ACM SIGSOFT Software Engineering Notes
Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS
IEEE Transactions on Software Engineering
Introduction to the Special Issue on Software Architecture
IEEE Transactions on Software Engineering - Special issue on software architecture
On the Practical Need for Abstraction Relations to Verify Abstract Data Type Representations
IEEE Transactions on Software Engineering
1997 workshop on foundations of component-based systems
ACM SIGSOFT Software Engineering Notes
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Providing intellectual focus to CS1/CS2
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
STL tutorial and reference guide, second edition: C++ programming with the standard template library
STL tutorial and reference guide, second edition: C++ programming with the standard template library
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Recasting Algorithms to Encourage Reuse
IEEE Software
Reasoning about Software-Component Behavior
ICSR-6 Proceedings of the 6th International Conerence on Software Reuse: Advances in Software Reusability
Component-Based Software Engineering (CBSE)
ICSR '96 Proceedings of the 4th International Conference on Software Reuse
Reusable Components for Evolving Systems
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Foundations of object-based specification design
Foundations of object-based specification design
Hi-index | 0.00 |
Large systems are invariably built from assembled components. It is essential for such systems to have predictable behavior, if the risks of failure are too high. To enable practical and modular verification of industrial-strength systems, software practitioners need to learn to build both behavioral specifications of components and component implementations that are annotated with suitable internal assertions. Neither of these tasks can be automated, in general. However, once suitable specifications and implementations of components are given, a mechanical system (with human assistance) can check in a modular and scalable fashion if component-based software behaves as specified. To illustrate the issues, the paper presents a non-trivial component-based example. The example underscores that predictable component-based construction is challenging, and that it cannot become practical, without educating students and software developers on principles of mathematical specifications and correct, efficient implementations.