This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Software Process Representation and Analysis for Framework Instantiation
March 2004 (vol. 30 no. 3)
pp. 145-159

Abstract—Object-oriented frameworks are currently regarded as a promising technology for reusing designs and implementations. However, developers find there is still a steep learning curve when extracting the design rationale and understanding the framework documentation during framework instantiation. Thus, instantiation is a costly process in terms of time, people, and other resources. These problems raise a number of questions including: "How can we raise the level of abstraction in which the framework instantiation is expressed, reasoned about and implemented?” "How can the same high-level design abstractions that were used to develop the framework be used during framework instantiation instead of using source code as is done currently?” "How can we define extended design abstractions that can allow framework instantiation to be explicitly represented and validated?” In this paper, we present an approach to framework instantiation based on software processes that addresses these issues. Our main goal is to represent the framework design models in an explicit and declarative way, and support changes to this design based on explicit instantiation tasks based on software processes while maintaining system integrity, invariants, and general constraints. In this way, the framework instantiation can be performed in a valid and controlled way.

[1] H. Mili, F. Mili, and A. Mili, Reusing Software: Issues and Research Directions IEEE Trans. Software Eng., vol. 21, no. 6, pp. 528-562, June 1995.
[2] W. Pree, Design Patterns for Object-Oriented Software Development. Addison-Wesley, 1995.
[3] M.E. Fayad, D.C. Schmidt, and R.E. Johnson, Domain-Specific Application Frameworks. Wiley, 1999.
[4] R.H.B. Netzer and B.P. Miller, "What Are Race Conditions? Some Issues of Formalizations," ACM Letters on Programming Languages and Systems, vol. 1, no. 1, pp. 74-88, 1991.
[5] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide. Addison-Wesley, 1999.
[6] M. Fontoura, W. Pree, and B. Rumpe, The UML Profile for Framework Architectures. Addison-Wesley, 2001.
[7] N.H. Minsky, Law-Governed Regularities in Object Systems; Part 1: An Abstract Model Theory and Practice of Object Systems (TAPOS), vol. 2, no. 1, 1996.
[8] M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts, Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
[9] Extensible Markup Language (XML) 1.0, W3C Recommendation, T. Bray, J. Paoli, C.M. Sperberg-McQueen, and E. Maler, eds.,www.w3.org/TRREC-xml, 2003.
[10] XSL Transformations (XSLT) Specification 1.0, W3C Recommendation, J. Clark, ed.,www.w3.org/TRxslt, 2003.
[11] Junit Specification,www.junit.org, 2003
[12] M.F. Fayad, D.C. Schmidt, and R.E. Johnson, Building Application Frameworks: Object-Oriented Foundations of Framework Design. John Wiley and Sons, 1999.
[13] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[14] R. Johnson, Documenting Frameworks Using Patterns Proc. OOPSLA '92 Conf., 1992.
[15] R. Hightower and N. Lesiecki, Java Tools for Extreme Programming: Mastering Open Source Tools Including Ant, Junit, and Cactus. John Wiley and Sons, 2001.
[16] T. Biggerstaff, "Design Recovery for Maintenance and Reuse," Computer, July 1989.
[17] T.C. Oliveira, S.E.R. Carvalho, and C.J.P. Lucena, DSSFrame A Decision Support System with Agents Technical Report MCC18-2000, Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio), 2000.
[18] A. Haeberer and T.S.E. Maibaum, The Very Idea of Software Development Environments: A Conceptual Architecture for the ARTS Environment Paradigm Proc. Conf. Automated Software Eng. (ASE), pp. 260-271, Oct. 1998.
[19] S.E.R. Carvalho, S.O. Cruz, and T.C. Oliveira, Second Generation Object-Oriented Development Proc. US-Brazil Joint Workshops the Formal Foundations of Software Systems, Nov. 1997, www.elsevier.nl/locate/entcsvolume14.html .
[20] T.C. Oliveira, I. Mathias, and C.J.P. Lucena, A Framework Based Approach for Workflow Software Development Proc. IASTED Int'l Conf. Software Eng. and Application (SEA), pp. 330-335, Nov. 2000.
[21] I. Jacobson, M. Griss, and P. Jonsson, Software Reuse: Architecture, Process and Organization for Business Success. Addison-Wesley, June 1997.
[22] M.E. Fayad, D.C. Schmidt, and R.E. Johnson, Domain-Specific Application Frameworks. Wiley, 1999.
[23] M. Fontoura, S. Crespo, C.J.P. Lucena, P.S.C. Alencar, and D.D. Cowan, Using Viewpoints to Derive Object-Oriented Frameworks: A Case Study in the Web-Based Education Domain J. Systems and Software, vol. 54, pp. 239-257, 2000.
[24] M.E. Fayad, Implementing Application Frameworks: Object-Oriented Frameworks at Work. Wiley, 1999.
[25] UML Specification,www.omg.orguml, 2003.
[26] T.C. Oliveira, P.S.C. Alencar, and D.D. Cowan, Towards a Declarative Approach to Framework Instantiation Proc. First Workshop Declarative Meta-Programming (DMP), pp. 5-9, Sept. 2002.
[27] G.E. Krasner and S.T. Pope, A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80 J. Object-Oriented Programming, vol. 1, no. 3, 1998.
[28] G. Froehlich, H.J. Hoover, L. Liu, and P.G. Sorenson, Hooking into Object-Oriented Application Frameworks Proc. 19th Int'l Conf. Software Eng., pp. 491-501, May 1997.
[29] A. Ortigosa and M. Campo, Smartbooks: A Step Beyond Active-Cookbooks to Aid in Framework Instantiation Proc. Technology of Object-Oriented Languages and Systems (TOOLS), pp. 131-140, June 1999.
[30] R.K. Keller, R. Schauer, S. Robitaille, and P. Page, Pattern-Based Reverse-Engineering of Design Components Proc. 21st Int'l Conf. Software Eng., pp. 226-235, May 1999.
[31] D. Jackson and A. Waingold, Lightweight Extraction of Object Models from Bytecode Proc. 21st Int'l Conf. Software Eng. (ICSE), pp. 194-202, May 1999.
[32] C. Kramer and L. Prechelt, Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software Proc. Working Conf. Reverse Eng. (WCRE), pp. 208-215, Nov. 1996.
[33] P.S.C. Alencar, D.D. Cowan, and C.J.P. Lucena, A Formal Approach to Architectural Design Patterns Proc. Third Int'l Symp. Formal Methods Europe, 1996.
[34] P.S.C. Alencar, D.D. Cowan, J. Dong, and C.J.P. Lucena, A Pattern-Based Approach to Structural Design Composition Proc. IEEE 23rd Ann. Int'l Computer Software and Applications Conf. (COMPSAC), pp. 160-165, Oct. 1999.
[35] T. Mikkonen, Formalizing Design Pattern Proc. 20th Int'l Conf. Software Eng. (ICSE), pp. 115-124, 1998.
[36] J. Dong, P.S.C. Alencar, and D.D. Cowan, A Behavioral Analysis Approach to Pattern-Based Composition Proc. Seventh Int'l Conf. Object-Oriented Information Systems (OOIS), pp. 540-549, Aug. 2001.
[37] P. Pal, Law-Governed Support for Realizing Design Patterns Technology of Object-Oriented Languages and Systems (TOOLS), pp. 25-34, July 1995.
[38] G. Florijn, M. Meijers, and P. Winsen, Tool Support for Object-Oriented Patterns Proc. 11th European Conf. Object-Oriented Programming (ECOOP), pp. 472-495, June 1997.
[39] XSB, The XSB Logic Programming System, Version 2.1, available fromhttp://www.cs.sunysb.edusim sbprolog, 1999.
[40] Y.S. Ramakrishna, C.R. Ramakrishnan, I.V. Ramakrishnan, S.A. Smolka, T. Swift, and D.S. Warren, Efficient Model Checking Using Tabled Resolution Proc. Ninth Int'l Conf. Computer Aided Verification (CAV), July 1997.
[41] K. Beck, Smalltalk Best Practice Patterns. Prentice Hall, 1997.
[42] N.H. Minsky, Law-Governed Regularities in Object Systems; An Abstract Model Theory and Practice of Object Systems (TAPOS), vol. 2, no. 4, pp. 286-301, 1996.
[43] B. Curtis, M. Kellner, and J. Over, Process Modeling Comm. ACM, vol. 35, no. 9, pp. 75-90, Sept. 1992.
[44] C. Kellner and D. Rombach, Session Summary: Comparisons of Software Process Descriptions Proc. Sixth Int'l Software Process Workshop (ISPW), pp. 7-18, Oct. 1990.
[45] J.D. Herbsleb, A. Mockus, T.A. Finholt, and R.E. Grinter, An Empirical Study of Global Software Development: Distance and Speed Proc. Int'l Conf. Software Eng., pp. 81-90, 2001.
[46] G.E. Kaiser, P.H. Feiler, and S.S. Popovich, Intelligence Assistance for Software Development and Maintenance IEEE Software, vol. 5, no. 3, pp. 40-49, 1988.
[47] M.I. Kellner, Software Process Modeling Support for Management Planning and Control Proc. First Int'l Conf. Software Process (ICSP), pp. 8-28, 1991.
[48] D.F. D'Souza and A.C. Wills, Objects, Components, and Frameworks with UML The Catalysis Approach. Addison-Wesley, 1998.
[49] D. Riehle and T. Gross, Role Model Based Framework Design and Integration Proc. ACM Conf. Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pp. 117-133, 1998.
[50] G. Kiczales, J. Rivieres, and D. Bobrow, The Art of Meta-Object Protocol. MIT Press, 1991.
[51] M. Mezini and K. Lieberherr, Adaptative Plug-and-Play Components for Evolutionary Software Development Proc. ACM Conf. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pp. 97-116, 1998.
[52] K. Bennet and V. Rajlich, Software Maintenance and Evolution: A Roadmap Proc. Int'l Conf. Software Eng. (ICSE) The Future of Software, pp. 73-84, 2000.
[53] D. Batory, R. Cardone, and Y. Smaragdakis, Object-Oriented Frameworks and Product Lines Proc. First Software Product Line Conf., pp. 227-247, 2000.
[54] J.D. Riley, An Object-Oriented Approach to Software Process Modeling and Definition Proc. Conf. TRI-Ada '94, pp. 16-22, 1994.
[55] A.G. Cass, B.S. Lerner, S.M. Sutton, E.K. McCall, A. Wise, and L. Osterweil, Little-JIL/Juliette: A Process Definition Language and Interpreter Proc. 22nd Int'l Conf. Software Eng. (ICSE), pp. 754-757, June 2000.

Index Terms:
Frameworks, instantiation, software process, software design, specification, lightweight analysis, design analysis.
Citation:
Toacy C. Oliveira, Paulo S.C. Alencar, Ivan M. Filho, Carlos J.P. de Lucena, Donald D. Cowan, "Software Process Representation and Analysis for Framework Instantiation," IEEE Transactions on Software Engineering, vol. 30, no. 3, pp. 145-159, March 2004, doi:10.1109/TSE.2004.1271169
Usage of this product signifies your acceptance of the Terms of Use.