This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Quality, Productivity, and Learning in Framework-Based Development: An Exploratory Case Study
September 2002 (vol. 28 no. 9)
pp. 876-888

Abstract—This paper presents an empirical study in an industrial context on the production of software using a framework. Frameworks are semicomplete applications, usually implemented as a hierarchy of classes. The framework is developed first, then several applications are derived from it. Frameworks are a reuse technique that supports the engineering of product lines. In the study, we compare quality (in the sense of rework effort) and productivity in traditional and framework-based software production. We observe that the latter is characterized by better productivity and quality, as well as a massive increase in productivity over time, that we attribute to the effect of learning the framework. Although we cannot extrapolate the results outside the local environment, enough evidence has been accumulated to stimulate future research work.

[1] A.J. Albrecht, “Measuring Application Development Productivity,” Proc. Joint SHARE, GUIDE, and IBM Application Development Symp., Oct. 1979.
[2] G. Antoniol, K. Lokan, G. Caldiera, and R. Fiutem, “A Function Point-Like Measure for Object-Oriented Software,” Empirical Software Eng., vol. 4, no. 3, pp. 263-287, 1999.
[3] V.R. Basili, R.W. Selby, and D.H. Hutchens, "Experimentation in Software Engineering," IEEE Trans. Software Eng., vol. 12, pp. 733-743, 1986.
[4] G.E. Box, W.G. Hunter, and J.S. Hunter, Statistics for Experimenters: an Introduction to Design, Data Analysis and Model Building. New York: John Wiley, 1978.
[5] G.E.P. Box and N.R. Draper, Empirical Model Building and Response Surfaces. New York: John Wiley and Sons, 1986.
[6] S.R. Chidamber and C.F. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, 1994.
[7] J. Coplien, D. Hoffman, and D. Weiss, "Commonality and Variability in Software Engineering," IEEE Software, Vol. 15, No. 6, Dec. 1998, pp. 37-45.
[8] J.M. Favaro, K.R. Favaro, and P.F. Favaro, “Value Based Reuse Investment,” Annals of Software Eng., vol. 5, pp. 5-52, 1998.
[9] E. Suh, B.K. Lee, R. Martino, B. Narahari, and A. Choudhary, “Parallel Computation of Solvent Accessible Surface Area of Protein Molecules,” Proc. Int'l Parallel Processing Symp., pp. 685-689, 1993.
[10] N.O.E. Fenton and M. Neil, “A Critique of Software Defect Prediction Models,” IEEE Trans. Software Eng., vol. 25, no. 5, pp. 675-689, Sept./Oct. 1999.
[11] R.A. Fisher, “The Arrangement of Field Experiments,” J. Min. Agriculture, vol. 33 pp. 503-513, 1926.
[12] W. Harrison, “N=1, an Alternative for Software Engineering Research?” Proc. Workshop Beg, Borrow, or Steal: Using Multidisciplinary Approaches in Empirical Software Eng. Research, Int'l Conf. Software Eng., Aug. 2000.
[13] IFPUG, “Counting Practices Manual, Release 4.0,” Int'l Function Point Users Group, Jan. 1994.
[14] R. Johnson and E. Foote, “Designing Reusable Classes,” J. Object Oriented Programming, vol. 1, no. 5, June 1988.
[15] C. Jones, Applied Software Measurement, McGraw-Hill, New York, 1991.
[16] C.M. Judd, E.R. Smith, and L.H. Kidder, Research Methods in Social Relations, sixth ed. Rinehart and Winston, 1991.
[17] Single Case Research Design and Analysis, T. Kratochwill and J. Levin eds. Lawrence Erlbaum Associates, 1992.
[18] J.G. March, “Exploration and Exploitation in Organizational Learning,” Organizational Learning, M.D. Cohen and L.S. Sproull, eds., 1996.
[19] R.L. Mason, R.F. Gunst, and J.L. Hess, Statistical Design and Analysis of Experiments. New York: John Wiley and Sons, 1989.
[20] M. Mattsson, “Effort Distribution in a Six Year Industrial Application Framework Project,” Proc. IEEE Int'l Conf. Software Maintenance (ICSM `99), pp. 326-333, 1999.
[21] MINITAB for Windows, Minitab Inc., 2000.
[22] M. Morisio, D. Romano, I. Stamelos, and B. Spahos, “Measuring Functionality and Productivity in Web-Based Applications: A Case Study,” Proc. Sixth IEEE Int'l Symp. Software Metrics, 1999.
[23] S. Moser and O. Nierstrasz, “The Effect of Object-Oriented Frameworks on Developer Productivity,” Computer, pp. 45-51, Sept. 1996.
[24] I. Nonaka, “A Dynamic Theory of Organizational Knowledge Creation,” Organizational Science, vol. 5, no. 1, pp. 14-30, 1994.
[25] A.A. Porter, L.G. Votta, and V.R. Basili, “Comparing Detection Methods for Software Requirements Inspections: A Replicated Experiment,” IEEE Trans. Software Eng., vol. 21, no. 6, pp. 563-575, June 1995.
[26] A.A. Porter and P.M. Johnson, “Assessing Software Review Meetings: Results of a Comparative Analysis of Two Experimental Studies,” IEEE Trans. Software Eng., vol. 23, no. 3, pp. 129-145, Mar. 1997.
[27] J.S. Poulin, Measuring Software Reuse: Principles, Practices and Economic Models. Addison-Wesley, 1997.
[28] J.S. Poulin, “The Economics of Software Product Lines,” Int'l J. Applied Software Technology, vol. 3, no. 1, pp. 20-34, Mar. 1997.
[29] L. Prechelt and W. Tichy, “A Controlled Experiment to Assess the Benefits of Procedure Argument Type Checking,” IEEE Trans. Software Eng., vol. 24, no. 4, pp. 302-312, Apr. 1998.
[30] F. Shull, F. Lanubile, and V.R. Basili, “Investigating Reading Techniques for Object-Oriented Framework Learning,” IEEE Trans. Software Eng., vol. 26, no. 11, Nov. 2000.
[31] S. Srinivasan, “Design Patterns in Object-Oriented Frameworks,” Computer, Feb. 1999.
[32] C. Wohlin, P. Runeson, M. Höst, M.C. Ohlsson, B. Regnell, and A. Wesslén, Experimentation in Software Engineering: An Introduction. Kluwer Academic, 2000.

Index Terms:
Application framework, framework, product line, process quality, software reuse, empirical study, learning.
Citation:
Maurizio Morisio, Daniele Romano, Ioannis Stamelos, "Quality, Productivity, and Learning in Framework-Based Development: An Exploratory Case Study," IEEE Transactions on Software Engineering, vol. 28, no. 9, pp. 876-888, Sept. 2002, doi:10.1109/TSE.2002.1033227
Usage of this product signifies your acceptance of the Terms of Use.