The Evolution from Software Components to Domain Analysis
Resumo
More than twenty years ago the idea of producing software systems from reusable software components was proposed. Since that time many changes have taken place in Computer Science and Software Engineering, but software systems are still built as one-of-a-kind craftsman efforts. A method for software construction using components is derived using experience from software components, program transformations, systems architecture, industrial large systems automatic programming and program generation. Experience with the method is discussed. The limiting factors of the method that prevent the widespread use of reusable software components are identified.
Referências
G. Arango, Domain Engineering for Software Reuse, Ph.D. Dissertation, ICS Dept., University of California at Irvine, 1988.
R. Baltzer, "A Global View of Automatic Programming", 3rd International Joint Conference on Artificial Intelligence, pp. 494-499, SRI International, August 1973.
D. Batory, "GENESIS: An Extensible Database Management System", IEEE Transactions on Software Engineering, vol. SE-14, no. 11, pp. 1711-1730, November 1988.
I. Baxter, Transformational Maintenance by Reuse of Design Histories, Ph.D. Dissertation, ICS Dept., University of California at Irvine, 1990.
G. Booch, Software Components with Ada, Benjamin/Cummings, 1987.
I. Campos and G. Estrin, "Concurrent Software System Design Supported by SARA at the Age of One", 3rd International Conference on Software Engineering, pp. 230-242, IEEE, May 1978.
L. Cooprider, The Representation of Families of Software Systems, Ph.D. Dissertation, Carnegie-Mellon University, Computer Science Depy., CMU-CS-79-116, April 1979.
W. Corwin and W. Wulf, A Software Laboratory Preliminary Report, Report CMU-CS-71-104, Carnegie-Mellon University, August 1971.
J. Darlington, "A System Which Automatically Improves Programs", 3rd International Joint Conference on Artificial Intelligence, pp. 479-485, SRI International, 1973.
F. DeRemer and H. Kron, "Programming-in-the-Large Versus Programming-in-the-Small," IEEE Transactions on Software Engineering, vol. SE-2, pp. 80-86, June 1976.
E. Dijkstra, "Complexity Controlled by Hierarchical Ordering of Function and Variability", in Software Engineering, P. Naur and B. Randell eds., NATO Science Commitee Report, pp. 181-185, Germany, October 1968.
E. Dijkstra, "Structured Programming", in Software Engineering Techniques, J. Buxton and B. Randell eds., NATO Science Commitee Report, pp. 84-88, Italy, October 1969.
M. Dunn and J. Knight, "Software Reuse in an Industrial Setting: A Case Study", 13th International Conference on Software Engineering, pp. 329-338, May 1991.
J. Feldman, Automatic Programming, Report STAN-CS-72-255, Stanford University, February 1972.
S. Fickas "Automating the Transformational Development of Software," IEEE Transactions on Software Engineering, vol. SE-11, no. 11, pp.1268-1277, November 1985.
P. Freeman, "A Conceptual Analysis of the Draco Approach to Constructing Software Systems," IEEE Transactions on Software Engineering, vol. SE-13, no.7, pp.830-844, July 1987.
C. Green, "Application of Theorem Proving to Problem Solving", 1st International Joint Conference on Artificial Intelligence, pp. 219-239, University Microfilms. 1969.
L. Gonzalez, A Domain Language for Processing Standardized Tests (MS Thesis), University of California, Irvine, ICS Dept., 1981.
D. Knuth, The Art of Computer Programming, volumes 1-3, Addison-Wesley, 1968-1973.
D. Knut, "Structured Programming with GOTO Statements", ACM Computing Surveys, vol. 6, no. 4, pp.261-3-1, December 1974.
D. Kibler, J. Neighbors, and T. Standish, "Program Manipulation via an Efficient Production System", SIGPLAN Notices, vol. 12, no. 8, pp.163-173, 1977.
D. McIlroy, "Mass Produced Software Components", in Software Engineering, P. Naur and B. Randell eds., NATO Science Commitee Report, pp. 138-155, Germany, October 1968.
J. Neighbors, Software Constructions Using Components, Ph.D. Dissertation and Report UCI-ICS-TR 160, University of California, Irvine, ICS Dept., 1980.
J. Neighbors, J. Leite, and Arango, Draco 1.3 Manual, Report RTP003.3, University of California, Irvine, ICS Dept., June 1984.
J. Neighbors, "The Draco Approach to Constructing Software from Reusable Components," IEEE Transactions on Software Engineering, vol. SE-10, no.5, pp. 564-574, September 1984.
J. Neighbors, "Draco: A Method for Engineering Reusable Softwares Systems", in Software Reusability, T. Biggerstaff and A. Perlis eds., vol. 1, pp. 295-319, Addison-Wesley 1989.
D. Parnas, "On the Criteria To Be Used in Decomposing Systems into Modules", Communication of the ACM, vol. 15, no. 12, December 1971, pp. 1053-1058.
W. Press, B. Flanery, S. Teukolsky, and W. Vetterling, Numerical Recipes: The Art of Scientific Computing, Cambridge University Press, 1986.
R. Prieto-Diaz, A Software Classification Scheme, Ph.D. Dissertation, ICS Dept., University of California at Irvine, 1985.
R. Prieto-Diaz and J. Neighbors, "Module Interconnection Languages", The Journal of Systems and Software, vol.6, pp.307-334, November 1986.
R. Prieto-Diaz and P. Freeman, "Classifying Software for Reusability," IEEE Software, pp. 6-16, January 1987.
R. Prieto-Diaz and G. Arango, Domain Analysis and Software Systems Modeling, IEEE Press, 1991.
J. Sammet, "Programming Languages", Encyclopedia of Computer Science, pp. 1169-1174, Petrocelli/Charter 1976.
D. Schorre, "META II: A Syntax-Oriented Compiler Writing Language", Proceedings of the ACM National Conference, pp. D1.3-1 to D1.3-11, ACM 1964.
R. Sedgewick, Algorithms, Addison-Wesley, August 1984.
Y. Srinivas. Algebraic Specification: Syntax, Semantics, Structure, Report 90-15, ICS Dept., University of California at Irvine, 1990.
T. Standish, D. Harriman, D. Kibler, and J. Neighbors, The Irvine Program Transformation Catalogue, University of California, Irvine, ICS Dept., 1976.
S. Sundfor, Draco Domain Analysis for a Real Time Application: The Analysis, Report RTP 015, University of California, Irvine, ICD Dept., 1983.
S. Sundfor, Draco Domain Analysis for a Real Time Application: Discussion of the Results, Report RTP 016, University of California, Irvine, ICS Dept., 1983.
W. Tichy. "Software Development Control Based on Module Interconnection", 4th International Conference on Software Engineering, pp. 29-41, September 1979.
N. Wirth, "Program Development by Stepwise Refinement", Communications of the ACM, vol. 14, no. 4, April 1971, pp. 221-227.