skip to main content
10.5555/776816.776839acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Scaling step-wise refinement

Published:03 May 2003Publication History

ABSTRACT

Step-wise refinement is a powerful paradigm for developing a complex program from a simple program by adding features incrementally. We present the AHEAD (Algebraic Hierarchical Equations for Application Design) model that shows how step-wise refinement scales to synthesize multiple programs and multiple non-code representations. AHEAD shows that software can have an elegant, hierarchical mathematical structure that is expressible as nested sets of equations. We review a tool set that supports AHEAD. As a demonstration of its viability, we have bootstrapped AHEAD tools solely from equational specifications, generating Java and non-Java artifacts automatically, a task that was accomplished only by ad hoc means previously.

References

  1. R. Balzer, "A Fifteen-Year Perspective on Automatic Programming", in Software Reusability II, T.J. Biggerstaff and A.J. Perlis, Eds., Addison-Wesley, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Batory and S. O'Malley, "The Design and Implementation of Hierarchical Software Systems with Reusable Components", ACM TOSEM, October 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Batory and B.J. Geraci, "Composition Validation and Subjectivity in GenVoca Generators", IEEE Transactions on Software Engineering, Feb. 1997, 67--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Batory, B. Lofaso, and Y. Smaragdakis, "JTS: Tools for Implementing Domain-Specific Languages", 5th Int. Conf. on Software Reuse, Victoria, Canada, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Batory, et al., "Design Wizards and Visual Programming Environments for GenVoca Generators", IEEE Trans. Software Engineering, May 2000, 441--452. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Batory, et al., "Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study", ACM TOSEM, April 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Batory, R.E. Lopez-Herrejon, J-P. Martin, "Generating Product-Lines of Product-Families", Automated Software Engineering, September 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. I. Baxter, "Design Maintenance Systems", CACM, April 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E.W. Dijkstra, A Discipline of Programming. Prentice-Hall, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. I. Forman and S. Danforth, Putting Metaclasses to Work, Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Flatt, S. Krishnamurthi, and M. Felleisen, "Classes and Mixins". ACM Principles of Programming Languages, San Diego, California, 1998, 171--183. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Gray, et al. "Handling Crosscutting Constraints in Domain-Specific Modeling", CACM October 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Griss, "Implementing Product-Line Features by Composing Component Aspects", First International Software Product-Line Conference, Denver, August 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. W. Harrison and H. Ossher, "Subject-Oriented Programming (A Critique of Pure Objects)", OOPSLA 1993, 411--427. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. Harrison, C. Barton, M. Raghavachari, "Mapping UML Designs to Java", OOPSLA 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Hein, M. Schlick, R. Vinga-Martins, "Applying Feature Models in Industrial Settings", Software Product Line Conference (SPLC1), August 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. K.C. Kang, et al., Feature-Oriented Domain Analysis Feasibility Study, SEI 1990.Google ScholarGoogle Scholar
  18. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin, "Aspect-Oriented Programming", ECOOP 97, 220--242.Google ScholarGoogle Scholar
  19. H. Li, S. Krishnamurthi, and K. Fisler, "Interfaces for Modular Feature Verification", Conf. Automated Software Engineering, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Mezini and K. Lieberherr, "Adaptive Plug-and-Play Components for Evolutionary Software Development", OOPSILA 1998, 97--116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. McDirmid, M. Flatt, and W.C. Hsieh, "Jiazzi: new-Age Components for Old-Fashioned Java", OOPSLA 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. H. Ossher and P. Tarr. "Using Multi-Dimensional Separation of Concerns to (Re)Shape Evolving Software." CACM 44(10): 43--50, October 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. T. Reenskaug, et al., "OORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems", Jour. OO Programming, 5(6): October 1992, 27--41.Google ScholarGoogle Scholar
  24. Y. Smaragdakis and D. Batory, "Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs", to appear ACM TOSEM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Sztipanovits and G Karsai, "Generative Programming for Embedded Systems", Generative Programming and Component-Based Engineering (GPCE), Pittsburgh, October 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. K.J. Sullivan, and D. Notkin, "Reconciling Environment Integration and Software Evolution", ACM TOSEM. 1, 3, July, 1992, 229--268. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. P. Tarr, H. Ossher, W. Harrison, and S.M. Sutton, Jr., "N Degrees of Separation: Multi-Dimensional Separation of Concerns", ICSE 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. University of Texas Center for Agile Technology, "AHEAD Tool Documentation", 2002.Google ScholarGoogle Scholar
  29. M. Van Hilst and D. Notkin, "Using Role Components to Implement Collaboration-Based Designs", OOPSLA 1996, 359--369. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. A.van Deursen and P. Klint, "Little Languages: Little Maintenance?", SIGPLAN Workshop on Domain-Spec. Lang., 1997.Google ScholarGoogle Scholar
  31. D. Weiss and C.T.R. Lai, Software Product-Line Engineering. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Scaling step-wise refinement

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              ICSE '03: Proceedings of the 25th International Conference on Software Engineering
              May 2003
              841 pages
              ISBN:076951877X

              Copyright © Copyright (c) 2003 Institute of Electrical and Electronics Engineers, Inc. All rights reserved.

              Publisher

              IEEE Computer Society

              United States

              Publication History

              • Published: 3 May 2003

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              ICSE '03 Paper Acceptance Rate42of324submissions,13%Overall Acceptance Rate276of1,856submissions,15%

              Upcoming Conference

              ICSE 2025

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader