Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
Advances in computers
The Geneva convention on the treatment of object aliasing
ACM SIGPLAN OOPS Messenger
C++ strategies and tactics
Software component design-for-reuse: a language-independent discipline applied to ADA
Software component design-for-reuse: a language-independent discipline applied to ADA
C++ object-oriented data structures
C++ object-oriented data structures
Part III: implementing components in RESOLVE
ACM SIGSOFT Software Engineering Notes
Part IV: RESOLVE components in Ada and C++
ACM SIGSOFT Software Engineering Notes
Component-based software using RESOLVE
ACM SIGSOFT Software Engineering Notes
The Effects of Layering and Encapsulation on Software Development Cost and Quality
IEEE Transactions on Software Engineering
Reverse engineering of legacy code exposed
Proceedings of the 17th international conference on Software engineering
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Recasting Algorithms to Encourage Reuse
IEEE Software
Design and Specification of Iterators Using the Swapping Paradigm
IEEE Transactions on Software Engineering
A Framework for Detecting Interface Violations in Component-Based Software
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Algorithms and object-oriented programming: bridging the gap
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Components-first approaches to CS1/CS2: principles and practice
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Contract-Checking Wrappers for C++ Classes
IEEE Transactions on Software Engineering
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
Simplifying reasoning about objects with Tako
Proceedings of the 2006 conference on Specification and verification of component-based systems
SAVCBS 2006 challenge: specification of iterators
Proceedings of the 2006 conference on Specification and verification of component-based systems
Traditional assignment considered harmful
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
The location linking concept: a basis for verification of code using pointers
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Hi-index | 0.00 |
Academic research sometimes suffers from the “ivory tower” problem: ideas that sound good in theory do not necessarily work well in practice. An example of research that potentially could impact practice over the next few years is a novel set of component-based software engineering design principles, known as the RESOLVE discipline. This discipline has been taught to students for several years [23], and previous papers (e.g., [24]) have reported on student-sized software projects constructed using it. Here, we report on a substantial commercial product family that was engineered using the same principles — an application that we designed, built, and continue to maintain for profit, not as part of a research project. We discuss the impact of adhering to a very prescriptive set of design principles and explain our experience with the resulting applications. Lessons learned should benefit others who might be considering adopting such a component-based software engineering discipline in the future.