A Survey of Business Component Identification Methods and Related Techniques

With deep development of software reuse, componentrelated technologies have been widely applied in the development of large-scale complex applications. Component identification (CI) is one of the primary research problems in software reuse, by analyzing domain business models to get a set of business components with high reuse value and good reuse performance to support effective reuse. Based on the concept and classification of CI, its technical stack is briefly discussed from four views, i.e., form of input business models, identification goals, identification strategies, and identification process. Then various CI methods presented in literatures are classified into four types, i.e., domain analysis based methods, cohesion-coupling based clustering methods, CRUD matrix based methods, and other methods, with the comparisons between these methods for their advantages and disadvantages. Additionally, some insufficiencies of study on CI are discussed, and the causes are explained subsequently. Finally, it is concluded with some significantly promising tendency about research on this problem.




References:
[1] H. Jain, N. Chalimeda, N. Ivaturi, and B. Reddy, "Business component
identification: A formal approach," in Proc. of the 5th IEEE Int.
Enterprise Distributed Object Computing Conf. Seattle: IEEE Computer
Society Press, 2001, pp.183-187.
[2] C. Szyperski, "Component software: Beyond Object-Oriented
Programming," Addison-Wesley, 1998.
[3] J.K. Lee, S.J. Jung, and S.D. Kim, "Component Identification Method
with Coupling and Cohesion," in Proc. of 8th Asia-Pacific Software
Engineering Conf. Macau, China, 2001. pp.79-86.
[4] P. Herzum and O. Sims, "Business Component Factory," New York: John
Wiley&Sons, Inc., 1999. pp. 425-529.
[5] I. Jacobson, M. Griss, and P. Jonsson, "Software Reuse: Architecture,
Process and Organization for Business Success," Addison-Wesley, 1997.
[6] H. Mili, A. Mili, S. Yacoub, and E. Addy, "Reuse-Based Software
Engineering: Techniques, Organization, and Controls," New York: John
Wiley and Sons Ltd., 2002.
[7] W. Xu, B.L. Yin, and Z.Y. Li, "Research on the business component
design of enterprise information system," J. of Software, vol.14, no.7,
pp.1213-1220, 2003.
[8] L. Keith and A. Ali, "A Goal-driven Approach to Enterprise Component
Identification and Specification," Communications of the ACM, vol.45,
no.10, pp.45-52, 2002.
[9] W. Tracz, "Implementation Working Group Summary," in Proc. of Reuse
in Practice Workshop, J. Baldo and Jr. Alexandria, Eds., IDA Document
D-754, Pittsburgh, PA, pp.10-19.
[10] Q. Wu, J. Chang, H. Mei, and F.Q. Yang, "JBCDL: An Object-Oriented
Component Description Language," in Proc. of the 24th Int. Conf. on
Technology of Object-Oriented Languages ASIA, IEEE Computer Soc.
Press, Los Alamitos, CA, 1997, pp.198-205.
[11] I. Crnkovica and M. Larsson, "Challenges of component-based
development," The J. of Systems and Software, vol.61, no.3, pp.201-212,
2002.
[12] D. S. Frankel, "Model Driven Architecture: Applying MDA to Enterprise
Computing," Wiley, 2003.
[13] T.A. Wiggerts, "Using Clustering Algorithms in Legacy Systems
Remodularization," in Proc. of 4th Working Conf. on Reverse
Engineering. Washington, DC, USA: IEEE Computer Society, 1997.
pp.33-43.
[14] X. Zhou, X.K. Chen, J.S. Sun, and F.Q. Yang, "Software Measurement
Based Reusable Component Extraction in Object-oriented System,"
ACTA Electronica SINICA, vol31, no.5, pp.649-653, 2003.
[15] Z.M. Zhang, Y.T. Zhuang, Y.H. Pan, "Object-Oriented Software Reverse
Engineering," J. of Computer Research and Development, vol.40, no.7,
pp.1062-1068, 2003.
[16] A. Kleppe, J. Warmer, and W. Bast, "MDA Explained: The Model Driven
Architecture: Practice and Promise," Addison-Wesley, 2003.
[17] R.C. Martin, "Agile software development: principles, patterns, and
practices," New York: Prentice Hall, 2002.
[18] G. Li and M.Z. Jin, "A design method for reusable components," J. of
Computer Research and Development, vol.37, no.5, pp.609-615, 2000.
[19] D.F. D-Souza and A.C. Wills, "Objects, Components, and Frameworks
with UML: The Catalysis Approach," Reading: Addison-Wesley
Longman, Inc., 1998, pp.505-680.
[20] J. Cheesman and J. Daniels, "UML Components: A Simple Process for
Specifying Component-Based Software," Boston: Addison-Wesley
Longman, Inc., 2000.
[21] P. Vitharana, H. Jain, and F. Zahedi, "Strategy-Based Design of Reusable
Business Components," IEEE Trans. Systems, Man, and Cybernetics -
Part C: Applications and Reviews, vol.34, no.4, pp.460-474, 2004.
[22] M.E. Fayad, "Accomplishing Software Stability," Communications of the
ACM, vol.45, no.1, pp.111-115, 2002.
[23] D. Helton, "The Impact of Large-Scale Component and Framework
Application Development on Business," in 3rd Int. Workshop on
Component-Oriented Programming. pp.163-164, 1998.
[24] S.D. Lee and Y.J. Yang, "COMO: A UML-based component
development methodology," in Proc. of 6th Asia Pacific Software
Engineering Conf. Takamatsu, 1998. pp.54-63.
[25] R. Ganesan and S. Sengupta, "O2BC: A technique for the design of
component-based applications," in Proc. of 39th Int. Conf. and
Exhibition on Technology of Object-Oriented Language and Systems,
2001. pp.46-55.
[26] A. Somjit and B. Dentcho, "Development of industrial information
systems on the Web using business components," Computer in Industry
vol.50, no.2, pp.231-250, 2003.
[27] W. Zhang and H. Mei, "A feature-oriented domain model and its
modeling process," J. of Software, vol.14, no.8, pp.1345-1356, 2003.
[28] Y. Jia, "The Evolutionary component-based software reuse approach,"
Ph.D. dissertation, Graduation School of Chinese Academy of Sciences,
2002.
[29] K.C. Kang, S.G. Cohen, J.A. Hess, W.E. Novak, and A.S. Peterson,
"Feature-Oriented domain analysis (FODA) feasibility study," Tech.
Rep., CMU/SEI-90-TR-21, Carnegie Mellon University, Software
Engineering Institute, Pittsburgh, USA, 1990.
[30] K.C. Kang, S. Kim, J. Lee, K. Kim, E. Shin, and M. Huh, "FORM: A
feature-oriented reuse method with domain-specific reference
architectures," Annals of Software Engineering, vol.5, pp.143-168, 1998.
[31] C. Gary, D. Patrick, K.C. Kang, and S. Thiel, "Product Line Analysis: A
Practical Introduction," Tech. Rep., CMU/SEI-2001-TR-001, Carnegie
Mellon University, Software Engineering Institute, Pittsburgh, USA,
2001.
[32] F.Q. Yang, H. Mei, Q. Wu, and B. Zhul, "An Approach to Software
Development based on Reuse of Heterogeneous Components and its
Supporting System," Science in China (E), vol.40, no.4, pp.405-413,
1997.
[33] H.S. Hamza, "SODA: A Stability-Oriented Domain Analysis Method," in
Proc. of the 19th Annu. ACM SIGPLAN Conf. on Object-oriented
programming systems, languages, and applications, Vancouver, Canada:
ACM Press, 2004, pp.220-221.
[34] K. Rainer, "Atomic Architectural Component Recovery for Program
Understanding and Evolution," Ph.D. dissertation, Institut f├╝r Informatik,
Universität Stuttgart, 2000.
[35] X.W. Yuan, Z. Qin, and Z.J. Lu, "Identification method of business
component based on coupling analysis," Control and Decision, vol.19,
no.9, pp.1071-1073, 1077, 2004.
[36] J. Christopher, "Computing Program Modularizations Using the k-Cut
Method," in Proc. of 6th Working Conf. on Reverse Engineering.
Oct.06-08, 1999, Atlanta, Georgia.
[37] T. Konstantinos, "Maximum Flow Techniques for Network Clustering,"
Ph.D. dissertation, Princeton University. 2002.
[38] S. Mancoridis, B.S. Mitchell, C. Rorres, Y. Chen, and E.R. Gansner,
"Using Automatic Clustering to Produce High-Level System
Organizations of Source Code," in Proc. of 6th Int. Workshop on Program
Comprehension, 1998.
[39] T.N. Bui and B.R. Moon, "Genetic Algorithm and Graph Partitioning,"
IEEE Trans. Computers, vol.45, no.7, pp.841-855, 1996.
[40] G. Karypis, E.-H. Han, V. Kumar, "Chameleon: Hierarchical Clustering
Using Dynamic Modeling," IEEE Computer, vol.32, no.8, pp. 68-75,
1999.
[41] A. Ali, Z. Hussein, and A. James, "Externalizing Component Manners to
Achieve Greater Maintainability through a Highly Re-configurable
Architectural Style," in Proc. of Int. Conf. on Software Maintenance.
IEEE Computer Society, 2002, pp.628-637.
[42] P. Andritsos and V. Tzerpos, "Software Clustering based on Information
Loss Minimization," in Proc. of 10th Working Conf. on Reverse
Engineering.2003, pp.334-344.
[43] Z.J. Wang, X.F. Xu, D.C. Zhan. "Component Granularity Optimization
Design Based on Business Model Stability Evaluation, " Chinese Journal
of Computers. 2006, 29(2): 239-248.
[44] R. Lee, A. Harikumar, C.C. Chiang, H.S. Yang, H.K. Kim, and B. Kang,
"A Framework for Dynamically Converting Components to Web
Services," in Proc. of 3rd ACIS Int. Conf. on Software Engineering
Research, Management and Applications, Michigan, USA, 2005.
431-437.
[45] Z.J. Wang, X.F. Xu, D.C. Zhan. "Normal Forms and Normalized Design
Method for Business Service," in Proc. of IEEE Int. Conf. on e-Business
Engineering, Beijing, China, 2005. 79-86.