Exploiting the architectural characteristics of software components to improve software reuse

Software development is a costly process for all but the most trivial systems. One of the commonly known ways of minimizing development costs is to re-use previously built software components. However, a significant problem that source-code re-users encounter is the difficulty of finding components that not only provide the functionality they need but also conform to the architecture of the system they are building. To facilitate finding reusable components there is a need to establish an appropriate mechanism for matching the key architectural characteristics of the available source-code components against the characteristics of the system being built. This research develops a precise characterization of the architectural characteristics of source-code components, and investigates a new way to describe how appropriate components for re-use can be identified and categorized.

[1]  Norman Abramson,et al.  Information theory and coding , 1963 .

[2]  Katsuro Inoue,et al.  MUDABlue: An Automatic Categorization System for Open Source Repositories , 2004, APSEC.

[3]  Raghu V. Hudli,et al.  CORBA fundamentals and programming , 1996 .

[4]  Songsri Tangsripairoj,et al.  Organizing and Visualizing Software Repositories Using the Growing Hierarchical Self-Organizing Map , 2006 .

[5]  M. H. Samadzadeh,et al.  A reusable software catalog interface , 1992, SAC '92.

[6]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[7]  Bertrand Meyer,et al.  On Formalism in Specifications , 1985, IEEE Software.

[8]  Luís Soares Barbosa,et al.  On the specification of a component repository , 2003 .

[9]  James A. Hendler,et al.  Computing similarity in a reuse library system: an AI-based approach , 1992, TSEM.

[10]  Andy Podgurski,et al.  Retrieving reusable software by sampling behavior , 1993, TSEM.

[11]  Patrick Steyaert,et al.  Reuse Contracts as Component Interface Descriptions , 1997, ECOOP Workshops.

[12]  Michael G. Christel,et al.  A multimedia approach to requirements capture and modeling , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[13]  Eric Clayberg,et al.  Eclipse: Building Commercial-Quality Plug-ins , 2004 .

[14]  Yan Li,et al.  Shortening retrieval sequences in browsing-based component retrieval using information entropy , 2006, J. Syst. Softw..

[15]  Grady Booch,et al.  Reusing Open-Source Software and Practices: The Impact of Open-Source on Commercial Vendors , 2002, ICSR.

[16]  Peter Freeman,et al.  Classifying Software for Reusability , 1987, IEEE Software.

[17]  Farhad Arbab,et al.  A Logical Interface Description Language for Components , 2000, COORDINATION.

[18]  Antonio Vallecillo,et al.  Component-Based Software Quality , 2003, Lecture Notes in Computer Science.

[19]  Bertrand Meyer,et al.  On To Components , 1999, Computer.

[20]  Mario Piattini,et al.  Quantifying COTS Component Functional Adaptation , 2004, ICSR.

[21]  Padmal Vitharana Risks and challenges of component-based software development , 2003, CACM.

[22]  Cliff B. Jones,et al.  Structure for dependability - computer-based systems from an interdisciplinary perspective , 2005 .

[23]  Yijun Yu,et al.  Quality-Based Software Reuse , 2005, CAiSE.

[24]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[25]  Jihyun Lee,et al.  Facilitating reuse of software components using repository technology , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[26]  Jon Siegel,et al.  CORBA 3 Fundamentals and Programming with Cdrom , 1999 .

[27]  Mario Piattini,et al.  Early detection of COTS component functional suitability , 2007, Inf. Softw. Technol..

[28]  Gail E. Kaiser,et al.  An Information Retrieval Approach For Automatically Constructing Software Libraries , 1991, IEEE Trans. Software Eng..

[29]  Tom Digre Business Object Component Architecture , 1998, IEEE Softw..

[30]  Marco Torchiano,et al.  Definition and Classification of COTS: A Proposal , 2002, ICCBSS.

[31]  David Garlan,et al.  Introduction to the Special Issue on Software Architecture , 1995, IEEE Trans. Software Eng..

[32]  Weichang Du,et al.  Toward reuse of object-oriented software design models , 2004, Inf. Softw. Technol..

[33]  Mehdi Jazayeri,et al.  The Vienna component framework enabling composition across component models , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[34]  Grady Booch,et al.  Book Reviews , 1936, Computer.

[35]  Scott Henninger,et al.  An evolutionary approach to constructing effective software reuse repositories , 1997, TSEM.

[36]  Ian Sommerville Integrated requirements engineering: A tutorial : Requirements for design and innovation in a changing world , 2005 .

[37]  D. Carney,et al.  The Commandments of COTS: Still in Search of the Promised Land , 1998 .

[38]  Peter Gorm Larsen,et al.  Modelling Systems: Practical Tools and Techniques in Software Development , 1998 .

[39]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming, 2nd Edition , 2002, Addison-Wesley component software series.

[40]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern Language , 2005, EuroPLoP.

[41]  Mary Shaw,et al.  A field guide to boxology: preliminary classification of architectural styles for software systems , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[42]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[43]  Welf Löwe,et al.  Automatic design pattern detection , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[44]  Ali Mili,et al.  Reusing Software: Issues and Research Directions , 1995, IEEE Trans. Software Eng..

[45]  Carina Frota Alves,et al.  Investigating Conflicts in Cots Decision-Making , 2003, Int. J. Softw. Eng. Knowl. Eng..

[46]  Alan W. Brown,et al.  On components and objects: the foundations of component-based development , 1997, Proceedings Fifth International Symposium on Assessment of Software Tools and Technologies.

[47]  Seung-Yeon Lee,et al.  COBALT Assembler: A Case Tool for Supporting EJB component Assembly based on Architecture , 2002 .

[48]  Budi Arief,et al.  focus developing with open source software The Many Meanings of Open Source , 2022 .

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

[50]  Martin Gaedke,et al.  Supporting compositional reuse in component-based Web engineering , 2000, SAC '00.

[51]  B. Cheng,et al.  Specification matching for software reuse: a foundation , 1995, SSR '95.

[52]  Budi Arief,et al.  Interdisciplinary Insights on Open Source , 2002 .

[53]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[54]  Andrea Polini,et al.  Testing software components for integration: a survey of issues and techniques , 2007, Softw. Test. Verification Reliab..

[55]  Hany H. Ammar,et al.  Characterizing a Software Component , 1999 .

[56]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[57]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[58]  Johannes Sametinger,et al.  Software Engineering with Reusable Components , 1997, Springer Berlin Heidelberg.

[59]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[60]  Daniel Lucrédio,et al.  A survey on software components search and retrieval , 2004 .

[61]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[62]  Mark Lycett,et al.  Component-Based Development: Dealing with Non-Functional Aspects of Architecture , 1998 .

[63]  Mansur H. Samadzadeh,et al.  Organizing and visualizing software repositories using the growing hierarchical self-organizing map , 2005, SAC '05.

[64]  Uwe Aßmann,et al.  Invasive Software Composition , 2003, Springer Berlin Heidelberg.

[65]  Steven Weber,et al.  The Success of Open Source , 2004 .

[66]  Sajjad Mahmood,et al.  Survey of component-based software development , 2007, IET Softw..

[67]  Ivica Crnkovic,et al.  Building Reliable Component-Based Software Systems , 2002 .

[68]  B. J. Oates,et al.  Researching Information Systems and Computing , 2005 .

[69]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[70]  Cristina Gacek,et al.  Mismatch Avoidance in Web Services Software Architectures , 2008, J. Univers. Comput. Sci..

[71]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[72]  Peter A. Lindsay,et al.  Specification-based retrieval strategies for module reuse , 2001, Proceedings 2001 Australian Software Engineering Conference.

[73]  Václav Rajlich,et al.  Reengineering object-oriented code , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[74]  Eric S. Raymond,et al.  The cathedral and the bazaar - musings on Linux and Open Source by an accidental revolutionary , 2001 .

[75]  Paul Anderson,et al.  Enterprise JavaBeans Components Architecture: Designing and Coding Enterprise Applications , 2002 .

[76]  Ewan D. Tempero,et al.  A Java reuse repository for Eclipse using LSI , 2006, Australian Software Engineering Conference (ASWEC'06).

[77]  Hongji Yang,et al.  Successful Evolution of Software Systems , 2002 .

[78]  Hausi A. Müller,et al.  A Lightweight Taxonomy to Characterize Component-Based Systems , 2007, 2007 Sixth International IEEE Conference on Commercial-off-the-Shelf (COTS)-Based Software Systems (ICCBSS'07).

[79]  David Garlan First international workshop on architectures for software systems workshop summary , 1995, SOEN.

[80]  Kristin P. Bennett,et al.  Support vector machines: hype or hallelujah? , 2000, SKDD.

[81]  David C. Luckham,et al.  Rapide: A language and toolset for simulation of distributed systems by partial orderings of events , 1997, Partial Order Methods in Verification.

[82]  C. Lee Giles,et al.  What's the code?: automatic classification of source code archives , 2002, KDD.

[83]  Martin L. Griss,et al.  Software Reuse: From Library to Factory , 1993, IBM Syst. J..

[84]  Rebecca Joos Software reuse at Motorola , 1994, IEEE Software.

[85]  Brian Fitzgerald,et al.  Understanding open source software development , 2002 .

[86]  David Budgen,et al.  Reuse strategies in software development: an empirical study , 2001, Inf. Softw. Technol..

[87]  Peter W. Foltz,et al.  An introduction to latent semantic analysis , 1998 .

[88]  IEEE Annals of the History of Computing, 2003 Annual Index, Volume 25 , 2003, IEEE Ann. Hist. Comput..

[89]  Magdalena Balazinska,et al.  Advanced clone-analysis to support object-oriented system refactoring , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[90]  Alan W. Brown,et al.  The Current State , 2016 .

[91]  Kung-Kiu Lau,et al.  Software Component Models , 2006, IEEE Transactions on Software Engineering.

[92]  Teuvo Kohonen,et al.  The self-organizing map , 1990 .

[93]  Fred L. Kitchens,et al.  Web Services Architecture for M-Learning. , 2004 .

[94]  Robert DeLine,et al.  Avoiding packaging mismatch with flexible packaging , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[95]  David M. Booth,et al.  Web Services Architecture , 2004 .

[96]  Antônio Francisco do Prado,et al.  A survey on software components search and retrieval , 2004, Proceedings. 30th Euromicro Conference, 2004..

[97]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[98]  Reidar Conradi,et al.  An empirical study of variations in COTS-based software development processes in the Norwegian IT industry , 2004, 10th International Symposium on Software Metrics, 2004. Proceedings..

[99]  Jos van Hillegersberg,et al.  The software component market on the internet current status and conditions for growth , 2000, SOEN.

[100]  Gustavo Alonso,et al.  XTream: personal data streams , 2007, SIGMOD '07.

[101]  Yufei Tao,et al.  Adaptive Index Structures , 2002, VLDB.

[102]  Hironori Washizaki,et al.  Automated Extract Component Refactoring , 2003, XP.

[103]  Paul G. Sorenson,et al.  Reusing class-based test cases for testing object-oriented framework interface classes , 2005, J. Softw. Maintenance Res. Pract..

[104]  Jeffrey S. Poulin,et al.  Experiences with a faceted classification scheme in a large reusable software library (RSL) , 1993, Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93.

[105]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[106]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[107]  Bertrand Meyer,et al.  The grand challenge of trusted components , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[108]  William B. Frakes,et al.  An Empirical Study of Representation Methods for Reusable Software Components , 1994, IEEE Trans. Software Eng..

[109]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[110]  Marcus A. Rothenberger,et al.  Software reuse strategies and component markets , 2003, CACM.

[111]  David C. Rine,et al.  Success factors for software reuse that are applicable across domains and businesses , 1997, SAC '97.

[112]  David Garlan,et al.  Acme: an architecture description interchange language , 2010, CASCON.

[113]  Pearl Brereton,et al.  Component-Based Systems: A Classification of Issues , 2000, Computer.

[114]  Huilin Ye,et al.  Towards a self-structuring software library , 2001, IEE Proc. Softw..