Abstract
A software industry producing high-quality components that can be reused in many ways is an—unfulfilled—dream as old as the field of “software engineering” itself. In this paper we present an evolutionary approach to software development based on the following premises:
-
software systems are unavoidably heterogeneous and distributed;
-
development and implementation techniques may be different for various parts of a system;
-
the parts may be in different phases of their life-cycle;
-
the parts—implemented as components in different languages—should be coordinated and exchange information in a standardized fashion;
-
reengineering and system renovation form an integral part of software development.
Keywords
Download to read the full chapter text
Chapter PDF
References
Arnold, B.R.T., A. van Deursen & M. Res (1995), An algebraic specification of a language for describing financial products, in ‘ICSE-17 Workshop on Formal Methods Application in Software Engineering’, IEEE, pp. 6–13.
Baeten, J.C.M. & C. Verhoef (1995), Concrete process algebra, in ‘Handbook of Logic in Computer Science, Volume IV, Syntactical Methods’, Oxford University Press, pp. 149–268.
Baeten, J.C.M. & W.P. Weijland (1990), Process Algebra, Cambridge Tracts in Theoretical Computer Science 18, Cambridge University Press.
Basili, V.R., G. Caldiera & G. Cantone (1992), ‘A reference architecture for the component factory’, ACM TOSEM 1(1), 53–80.
Bassett, P.G. (1996), Framing Software Reuse, Yourdon Press, Prentice-Hall.
Bergstra, J.A. & P. Klint (1996a), The TooLBus coordination architecture, in P.Ciancarini & C.Hankin, eds, ‘Coordination Languages and Models’, Vol. 1061 of LNCS, pp. 75–88.
Bergstra, J.A. & P. Klint (1996b), The discrete time TooLBus, in M.Wirsing & M.Nivat, eds, ‘Algebraic Methodology and Software Technology’, Vol. 1101 of LNCS, Springer-Verlag, pp. 286–305.
van den Brand, M.G.J., A. van Deursen, P. Klint, S. Klusener & E. van der Meulen (1996), Industrial applications of ASF+SDF, in M.Wirsing & M.Nivat, eds, ‘Algebraic Methodology and Software Technology’, Vol. 1101 of LNCS, Springer-Verlag, pp. 9–18.
van den Brand, M.G.J., M.P.A. Sellink & C. Verhoef (1997a), Control flow normalization for COBOL/CICS legacy systems, Technical Report P9714, University of Amsterdam, Programming Research Group.
van den Brand, M.G.J., M.P.A. Sellink & C. Verhoef (1997b), Generation of components for software renovation factories from context-free grammars, in I.Baxter, A.Quilici & C.Verhoef, eds, ‘Proceedings of the Fourth Working Conference on Reverse Engineering’, pp. 144–153.
van den Brand, M.G.J., M.P.A. Sellink & C. Verhoef (1997c), Obtaining a COBOL grammar from legacy code for reengineering purposes, in M.Sellink, ed., ‘Proceedings of the 2nd International Workshop on the Theory and Practice of Algebraic Specifications’, Electronic Workshops in Computing, Springer Verlag. To appear.
van den Brand, M.G.J., P. Klint & C. Verhoef (1996), Core technologies for system renovation, in K.Jeffrey, J.Krâl & M.Bartosek, eds, ‘SOFSEM ’86: Theory and Practice of Informatics’, LNCS, Springer-Verlag, pp. 235–254.
van den Brand, M.G.J., P. Klint & C. Verhoef (1997), ‘Reverse engineering and system renovation-an annotated bibliography’, ACM Software Engineering Notes 22 (1), 57–68.
van den Brand, M.G.J., T. Kuipers, L. Moonen Si P. Olivier (1997), Implementation of a prototype for the new ASF+SDF meta-environment, in M.Sellink, ed., ‘Proceedings of the 2nd International Workshop on the Theory and Practice of Algebraic Specifications’, Electronic Workshops in Computing, Springer Verlag. To appear.
Cederqvist, Per (1993), Version Management with CVS, Signum Support AB, Box 2044, S-580 02 Linkoping, Sweden.
Chikofsky, E.J. & J.H. Cross (1990), ‘Reverse engineering and design recovery: A taxonomy’, IEEE Software 7 (1), 13–17.
Cleaveland, J. Craig (1988), ‘Building application generators’, IEEE Software 5 (4), 25–33.
Cox, B. (1996), Superdistribution: Objects as Property on the Electronic Frontier, Addison-Wesley.
van Deursen, A., J. Heering Si P. Klint (1996), Language Prototyping: An Algebraic Specification Approach, Vol. 5 of AMAST Series in Computing, World Scientific Publishing Co.
van Deursen, A. & P. Klint (1998), ‘Little languages: Little maintenance?’, Journal of Software Maintenance. To appear.
van Deursen, A. & T. Kuipers (1997), Finding classes in legacy code using cluster analysis, in S.Demeyer & H.Gall, eds, ‘Proceedings ESEC/FSE 97 Workshop on Object–Oriented Reengineering’, Technical Report TUV1841–97–10, pp. 1–5.
Fayad, M.E. & D.C. Schmidt (1997), ‘Special issue on object-oriented application frameworks’, Communications of the ACM 40 (10).
Frakes, W.B. & C.J. Fox (1995), ‘Sixteen questions about software reuse’, Communications of the ACM 38 (6), 75–87.
Hoare, C.A.R. (1996), How did software get so reliable without proof?, in M.-C.Gaudel & J.Woodcock, eds, ‘Proceedings of the Third International Symposium of Formal Methods Europe: Industrial Benefit and Advances in Formal Methods’, Vol. 1051 of Lecture Notes in Computer Science, Springer Verlag, pp. 1–17.
Horowitz, Ellis, Alfons Kemper & Balaji Narasimhan (1985), ‘Survey of application generators’, IEEE Software 2 (1), 40–54.
Kelly, K. (1994), Out of Control: The New Biology of Machines, Social Systems, and the Economic World, Addison-Wesley.
Klint, P. (1993), ‘A meta-environment for generating programming environments’, ACM TOSEM 2 (2), 176–201.
Krueger, C.W. (1992), ‘Software reuse’, ACM Computing Surveys 24 (2), 131–183.
Lientz, B.P. & E.B. Swanson (1980), Software Maintenance Management—A Study of the Maintenance of Computer Application Software in 487 Data Processing Organizations, Reading MA: Addison-Wesley.
Lim, W.C. (1994), ‘Effects of reuse on quality, productivity, and economics’, IEEE Software 11 (5), 23–30.
Mayrand, J., C. Leblanc & E.M. Merlo (1996), Experiment on the automatic detection of function clones in a software system using metrics, in S.Bohner & C.A, eds, ‘International Conference on Software Maintenance’, IEEE, pp. 244–253.
McConnell, S. (1993), Code Complete, Microsoft Press.
McConnell, S. (1996), Rapid Development, Microsoft Press.
Mcllroy, M.D. (1969), Mass produced software components, in P.Naur & B.Randell, eds, ‘Software Engineering’, pp. 138–150.
Naur, P. & B. Randell, eds (1969), Software Engineering—Report on a conference sponsored by the NATO SCIENCE COMMITTEE, NATO Science Committee, Garmisch, Germany, 7–11 October, 1968.
Olivier, P. (1997), Debugging distributed applications using a coordination architecture, in D.Garlan & D. L.Métayer, eds, ‘Coordination Languages and Models’, Vol. 1282 of LNCS, pp. 9–114.
OMG (1996), CORBA: Architecture and Specification, Object Management Group (OMG).
Prieto-Diaz, R. & P. Freeman (1987), ‘Classifying software for reusability’, IEEE Software 4 (1), 6–16.
Rekers, J. (1992), Parser Generation for Interactive Environments, PhD thesis, University of Amsterdam.
Reutter, J. (1981), Maintenance is a management problem and a programmer’s opportunity, in A.Orden & M.Evens, eds, ‘1981 National Computer Conference’, Vol. 50 of AFIPS Conference Proceedings, AFIPS Press, Arlington, VA, pp. 343–347.
Ritchie, D.M. & K. Thompson (1974), ‘The UNIX time-sharing system’, Communications of the ACM 17 (7), 365–375.
Yourdon, E. (1993), Decline and Fall of the American Programmer, Prentice-Hall.
Yourdon, E. (1996), Rise and Resurrection of the American Programmer, Prentice-Hall.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 IFIP
About this chapter
Cite this chapter
Klint, P., Verhoef, C. (1998). Evolutionary software engineering: a component-based approach. In: Horspool, R.N. (eds) Systems Implementation 2000. IFIP Advances in Information and Communication Technology. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-35350-0_1
Download citation
DOI: https://doi.org/10.1007/978-0-387-35350-0_1
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-5041-2873-5
Online ISBN: 978-0-387-35350-0
eBook Packages: Springer Book Archive