On Component Identification Approaches - Classification, State of the Art, and Comparison

Partitioning a design space to identify components with desired non-functional and behavioral characteristics is a crucial task in the component-based software development process. Accordingly, the issue of how to analyze design models in order to systematically derive a set of components constitutes a research question which has been investigated repeatedly. Component identification approaches that have been published in literature, however, make use of different component definitions and identification strategies. Furthermore, they vary from ad-hoc findings and general recommendations to more formalized methods and techniques which aim at an optimized partitioning. In this paper, we elaborate on the state of the art in component identification and provide a classification of approaches that highlights their respective strengths and weaknesses. To classify component identification approaches, we introduce a classification scheme that contains important distinguishing factors. It is used to compare existing approaches which have been compiled during a literature survey. In addition, it provides the basis to discuss significant differences between them and to identify remaining issues which give information about future research directions.

[1]  Kyung-Whan Lee,et al.  Object-Oriented Component Identification Method Using the Affinity Analysis Technique , 2003, OOIS.

[2]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[3]  A.P.T.B. Blois,et al.  Towards a components grouping technique within a domain engineering process , 2005, 31st EUROMICRO Conference on Software Engineering and Advanced Applications.

[4]  Rajeshwari Ganesan,et al.  O2BC: a technique for the design of component-based applications , 2001, Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39.

[5]  Sven Overhage,et al.  Towards a Systematic Method for Identifying Business Components , 2008, CBSE.

[6]  Alan W. Brown Component-Based Development , 2000 .

[7]  John R. Speed,et al.  Component-based software engineering as a unique engineering discipline , 2001 .

[8]  John Daniels,et al.  Designing object systems: object-oriented modelling with Syntropy , 1995 .

[9]  Soo Dong Kim,et al.  Component identification method with coupling and cohesion , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[10]  Hemant K. Jain,et al.  Business component identification - a formal approach , 2001, Proceedings Fifth IEEE International Enterprise Distributed Object Computing Conference.

[11]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[12]  Antonia Albani,et al.  Identifying Business Components on the Basis of an Enterprise Ontology , 2006 .

[13]  Jan L. G. Dietz,et al.  The Benefit of Enterprise Ontology in Identifying Business Components , 2006, IFIP TC8 WCC ISS.

[14]  Clemens Szyperski,et al.  Component software , 1997 .

[15]  Manfred Broy,et al.  Towards a Mathematical Concept of a Component and its Use , 1997, Softw. Concepts Tools.

[16]  Zhongjie Wang,et al.  A Survey of Business Component Identification Methods and Related Techniques , 2008 .

[17]  Dimitri Konstantas,et al.  Object-Oriented Information Systems , 2002, Lecture Notes in Computer Science.

[18]  Judy E. Scott,et al.  Business components: a case study of bankers trust Australia limited , 2001, CACM.

[19]  Wolfgang Beitz,et al.  Engineering Design: A Systematic Approach , 1984 .

[20]  Soo Dong Kim,et al.  COMO: a UML-based component development methodology , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[21]  Oliver Sims,et al.  Business Component Factory : A Comprehensive Overview of Component-Based Development for the Enterprise , 1999 .

[22]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[23]  Alan W. Brown Large Scale Component Based Development , 2000 .

[24]  George T. Heineman,et al.  Component-Based Software Engineering: Putting the Pieces Together , 2001 .

[25]  Xu Xiao-Fei,et al.  Business component identification of enterprise information system: a hierarchical clustering method , 2005, IEEE International Conference on e-Business Engineering (ICEBE'05).

[26]  Ali Arsanjani,et al.  A goal-driven approach to enterprise component identification and specification , 2002, CACM.

[27]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[28]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[29]  Soo Dong Kim,et al.  A systematic method to identify software components , 2004, 11th Asia-Pacific Software Engineering Conference.

[30]  John Daniels,et al.  Designing Object Systems , 1994 .

[31]  Jean-Paul Bourrières,et al.  Interoperability for Enterprise Software and Applications , 2005 .

[32]  Vijayan Sugumaran,et al.  Identifying software components from process requirements using domain model and object libraries , 1999, ICIS.

[33]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .