ABSTRACT
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.
- 1.Bucci, P., Hollingsworth, J.E., Krone, J., and Weide, B.W., "Implementing Components in RESOLVE", Software Engineering Notes, Vol. 19, No. 4, October 1994, pp. 40 - 51. Google ScholarDigital Library
- 2.Edwards, S.H., Weide, B.W., Hollingsworth, J.E., "A Framework for Detecting Interface Violations in Component-Based Software", Fifth International Conference on Software Reuse, IEEE CS Press, June 1998, pp. 46-55. Google ScholarDigital Library
- 3.Harms, D.E., and Weide, B.W., "Copying and Swapping: Influences on the Design of Resuable Components", IEEE Transactions on Software Engineering, Vol. 17, No. 5, May 1991, pp. 424-435. Google ScholarDigital Library
- 4.Hogg, J., Lea, D., Holt, R., Wills, A., and de Champeaux, D. "The Geneva Convention on the Treatment of Object Aliasing", OOPS Messenger, April 1992. Available at http://gee.cs.oswego.edu/dl/aliasing/aliasing.html. Google ScholarDigital Library
- 5.Hollingsworth, J.E. and Weide, B.W., "Engineering 'Unbounded' Reusable Ada Generics", Proceedings of l Oth Annual National Conference on Ada Technology, Arlington, VA, February 1992, pp. 82-97.Google Scholar
- 6.Hollingsworth, J.E., Software Component Design-for- Reuse: A Language Independent Discipline Applied to Ada, Ph.D. thesis, Dept. of Computer & Information Science, The Ohio State University, Columbus, OH, 1992. Available at http://www.cis.ohio-state, edu/rsrg/. Google ScholarDigital Library
- 7.Hollingsworth, J.E. "Uncontrolled Reference Semantics Thwart Local Certifiability", Proceedings of the Sixth Annual Workshop on Software Reuse, November 1993. Available at: http://www.umcs.maine.edu/Nftp/wisr/wisr.html.Google Scholar
- 8.Hollingsworth, J.E., Sreerama, S., Weide, B.W., and Zhupanov, S., "RESOLVE Components in Ada and C++", Software Engineering Notes, Vol. 19, No. 4, October 1994, pp. 52-63. Google ScholarDigital Library
- 9.Hollingsworth, J.E., and Weide, B.W., "Micro-Architecture vs. Macro-Architecture", Proceedings of the Seventh Annual Workshop on Software Reuse, August 1995. Available at: http ://www.umcs.maine.edu/-ftp/wisr/wisr.html.Google Scholar
- 10.Murray, R.B., C++ Strategies and Tactics, Addison- Wesley, Reading, MA, 1993. Google ScholarDigital Library
- 11.Norman, D.A., The Design of Everyday Things, Currency oubleday, New York, 1988.Google Scholar
- 12.Sengupta, S., and Korobkin, C.P., C++: Object-Oriented Data Structures, Springer-Verlag, New York, 1994. Google ScholarDigital Library
- 13.STL -- Hewlett-Packard's downloadable Standard Template Library, from ftp://butler.hpl.hp.com/stl; SGI's STL -- Silicon Graphics Computer Systems, Inc, downloadable STL, from http://www.sgi.com/Technology/STL; Rogue Wave Software, Inc., on-line documentation, from http ://www.roguewave.com/support/doc s/stdre f/index.e fm.Google Scholar
- 14.Sitaraman, M., and Weide, B.W., eds., "Component-Based Software Using RESOLVE", Software Engineering Notes, Vol. 19, No. 4, October 1994, pp. 21-67. Google ScholarDigital Library
- 15.van Hilst, M, and Notkin, D., "Decoupling Change from Design", ACMSIGSOFT "96, ACM Press, 1996, pp. 58-69. Google ScholarDigital Library
- 16.Weide, B.W., Ogden, W.F., and Zweben, S.H., "Reusable Software Components", in M. C. Yovits, editor, Advances in Computers, Vol. 33, Academic Press, 1991, pp. 1-65. Google Scholar
- 17.Weide, B.W., and Hollingsworth, J.E., "Sealability of Reuse Technology to Large Systems Requires Local Certifiability", Proceedings of the Fifth Annual Workshop on Software Reuse, October 1992.Google Scholar
- 18.Weide, B., and Hollingsworth, J. On Local Certifiability of Software Components, OSU-CISRC-1/94-TR04, Dept. of Computer and Information Science, Ohio State Univ., Columbus, OH, January, 1994.Google Scholar
- 19.Weide, B.W., Edwards, S.H., Harms, D.E. and Lamb, D.A., "Design and Specification of Iterators Using the Swapping Paradigm", IEEE Transactions on Software Engineering, Vol. 20, No. 8, August 1994, pp. 631-643. Google ScholarDigital Library
- 20.Weide, B.W., Ogden, W.F. and Sitaraman, M. "Recasting Algorithms to Encourage Reuse", IEEE Software, Vol. 11, No. 5, September 1994, pp. 80-88. Google ScholarDigital Library
- 21.Weide, B.W., HoUingsworth, J.E. and Heym, W.D., "Reverse Engineering of Legacy Code Exposed", Proceedings 17th International Conference on Software Engineering, ACM Press, April 1995, pp. 327-331. Google ScholarDigital Library
- 22.Weide, B.W., Software Component Engineering, OSU Reprographics, Columbus, OH, 1997.Google Scholar
- 23.Weide, B.W., and Long, T.J. Software Component Engineering Course Sequence Home Page, from http://www.cis.ohio-state.edu/-weide/see/now.Google Scholar
- 24.Zweben, S.H., Edwards, S.H., Hollingsworth, J.E., and Weide, B.W., "The Effects of Layering and Encapsulation on Software Development Cost and Quality," IEEE Transactions on Software Engineering, Vol. 21, No. 3, March 1995, pp. 200-208. Google ScholarDigital Library
Index Terms
- Experience report: using RESOLVE/C++ for commercial software
Recommendations
Experience report: using RESOLVE/C++ for commercial software
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 ...
Realizing the Open-Closed Principle
ICIS '05: Proceedings of the Fourth Annual ACIS International Conference on Computer and Information ScienceThe first principle in developing large software systems is the Open-Closed Principle (OCP). This principle seems asking for two conflict goals. How to realize the principle in the real software practice? What are the enabling technologies that can be ...
Methods of component-based software engineering essential concepts and classroom experience
ICSE '01: Proceedings of the 23rd International Conference on Software EngineeringThe crucial role of software components in the construction of enterprise information management systems is now manifest. Notwithstanding this, the implication of software components on software engineering methods is not well understood by many ...
Comments