310 likes | 421 Views
Reusable Software Component Retrieval: Part II. Taciana Amorim Vanderlei tav@cin.ufpe.br. Content. Component Retrieval - Historic Conclusion References. Component Retrieval - Historic. [A. Podgurski and L. Pierce, 1993] Measures to evaluate text-retrieval methods Precisions Recall
E N D
Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br
Content • Component Retrieval - Historic • Conclusion • References Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [A. Podgurski and L. Pierce, 1993] • Measures to evaluate text-retrieval methods • Precisions • Recall • Efficiency Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [R. Seacord, S. Hissan, K. Wallnau, 1998] • Agora • A search engine for software components; • Developed by the Software Engineering Institute (SEI) at Carnegie Mellon University; • Combines introspection with Web search engines – reduce costs. • Elements required by an online component marketplace (not addressed by this work ): • Security; • Electronic commerce; • Quality assurance. • Digital’s AltaVista SDK is used for indexing and retrieving component data. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [P. Hall, 1999] • Research and development about components and reuse. • Component emerged as a coherent package of programme code in which there are number of well-defined interfaces provided by the component for delivery of its functions to the software that uses it. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [P. Hall, 1999] Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [P. Hall, 1999] • Objects do not capture the richness required of a component. • Interfaces are not decomposed; • Required interfaces are not made explicit. • Need to treat a collection of collaboratingobjects together as a component, rather than a single object; • Better constructs for components within UML are packages or subsystems. “A component is merely an object (specification, source code, or binary) that is published for reuse: the interface specifies exactly what it will do.” [Ian Graham, 1998] Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [R. C. Seacord, 1999] • Problems with centralized systems: • Limited accessibility and scalability of the repository; • Exclusive control over cataloged components; • Oppressive bureaucracy; • Poor economy of scale. • Few users; • Low per-user benefits; • High cost of repository mechanisms and operations. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [R. C. Seacord, 1999] • Areas in which component-based software engineering may evolve to support component repositories: • Modeled • Interface Descriptions • Quality Assurance • Open System • Component Uniqueness • Data Rights and Privacy • Electronic Commerce in Components • Software Engineering • Location Services Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • Deficiencies of existing approaches by the retrieval tool: • Need to use low-level; • Service-based queries; • Lack of high-level description of component capabilities; • Lack of validation or checking of retrieved component suitability; • Lack of use of the context for which queries are being performed. • [J. Grundy, 2000] • Software component repository that uses a concept of component “aspects” to index and query components based on their high-level systemic characteristics. • These aspects describe a component’s provided or required services and related non-functional constraints for capabilities. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Concept of component aspects [J. Grundy, 2000] Component Retrieval - Historic Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic The need to support more effective software developer reuse of components has been an important area of research for some time*, but the need to support end user reuseof software componentshas become more pressing in recent years as component based systems become widespread**. * [S. Henninger, 1996; Y. Mereek, D. Berry and G. Kaiser, 1991; H. Mili, F. Mili and A. Mili, 1995] ** [J. C. Grundy, W. B. Mugridge, J. G. Hosking and M. D. Apperley, 1998; N. Mehandjiev and L. Bottaci, 1998; A. Morch, 1998] Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [J. Guo and Luqi, 2000] • Survey of the major software reusable component repositories. • Commercial Repositories • Government Repositories • Base to develop future efficiently searchable, user-friendly, useful, and well-organized repositories. • Reuse libraries - facilitating software life cycle component reuse to meet specific cost-effectiveness and productivity goals. • Reuse needs to be treated as an integral part of engineering and acquisition activities. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
commercial government [J. Guo and Luqi, 2000] Component Retrieval - Historic Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [H. Zhuge, 2000] • Proposes a problem-oriented component reuse framework through incorporating a problem-solving mechanism with the traditional component repository. • The reuse is promoted from the component level to the problem-solving level. • The environment evolution during running the candidate components for composing an application is simulated through case-based rule reasoning. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
A problem-oriented component reuse framework [H. Zhuge, 2000] Component Retrieval - Historic Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [Y. Ye and G. Fischer, 2002] • Concerned with the cognitive and social challenges faced by software developers: • How to motivate them to reuse; • How to reduce the difficulty of locating components from a large reuse repository. • CodeBroker • Information delivery that autonomously locates and presents software developers with task-relevant and personalized components. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Existent components Well known components Vaguely known components Belief components Component Retrieval - Historic • [Y. Ye and G. Fischer, 2002] Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Overall results of experiments with CodeBroker [Y. Ye and G. Fischer, 2002] Component Retrieval - Historic • Empirical evaluations of CodeBroker show that information delivery is effective in promoting reuse. • Information delivery holds the potencial of: • making unanticipated components easily accessible to software developers; • reducing the overall cost of software reuse; • motivating software developers to take a design approach that favors reuse by augmenting their knowledge of components. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [W. B. Frakes, 2004] • Reports on practical issues in the development, distribution, use, and evolution of a reusable component collection in the domain of information retrieval. • Reuse vertical, that is domain focused. • Concerns code from a book on data structures and algorithms for IR systems. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [W. B. Frakes, 2004] • Address some of the problems identified: • Place the code under change and version control using RCS. • Place the code on at least two ftp servers. • Convert the code to the GNU coding and ‘‘free software’’ standards. • Create a web page for the code that provides information and pointers to the distribution sites. • Create documentation that will allow continuity in the maintenance of the software. This will only happen if it makes legal and financial sense, and the legal and financial issues are far from solved. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [J. Clark, C. Clarke, S. De Panfilis, G. Granatella, P. Predonzani, A. Sillitti, G. Succi, and T. Vernazza, 2004] • Search techniques in CLARiFi, a component broker project that supports integrators in the selection of components for systems. • EU-funded project CLARiFi (CLear And Reliable Information For Integration)- involves eight European partners. “The repository’s task is to find a set of components that cover the functional, non-functional, technological, environmental, and compatibility requirements of the desired system.” Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • “Funnel” metaphor of selection • Iterative process to find the best compromise (better queries). • Reasons for adjustments of the queries: • The number of candidates can be wrong. • The components may be not adequate due to some discrepancies between their description and what they actually do. • The components may not fit together due to incompatibility. • The system design may not be the right view to decompose the problem in parts and to look up components that fit the parts. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic • [D. Lucrédio, E. Almeida, and A. Prado, 2004] • Survey about the main research on component search, and discusses how should be a mechanism to efficiently search components, in order to offer support for future component markets. “The software industry is weakly founded and one aspect of this weakness is the absence of a software component sub-industry”[McIlroy, 1968] “Imperfect technology in a working market is sustainable; perfect technology without any market will vanish” [Clemens Szyperski, 1999] Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component retrieval model [D. Lucrédio, E. Almeida, and A. Prado, 2004] Component Retrieval - Historic Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Component Retrieval - Historic Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
Conclusion • Components alone are not enough; • Although it is widely believed that software reuse improves both the quality and productivity of software development [V. Basili, L. Briand, and W. Melo, 1996], systematic reuse has not yet met its expected success [H. Zhuge, 2000]. • One of the reasons for the historical failure of components repositories comes from their conception as centralized systems, but it started to be changed – Agora system [R. Seacord, S. Hissan, K. Wallnau, 1998]. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
References • M. D. McIlroy, “’mass produced’ software components”, In NATO Software Engineering Conference, pp. 138-155, 1968. • A. Podgurski, and L. Pierce, "Retrieving Reusable Software by Sampling Behavior," ACM Transaction on Software Engineering and Methodology, vol. 2, no. 3, pp. 286-303, July 1993. • W. B. Frakes , T. P. Pole. An Empirical Study of Representation Methods for Reusable Software Componente. IEEE Transactions on Software Engineering, v.20 n.8, p.617-630, August 1994. • R. Mili, A. Mili, and R. T. Mittermeir, “Storing and retrieval software components: A refinement based system”, IEEE Transactions on Software Engineering and Methodology, vol. 23, no 7, 1997. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
References • R. C. Seacord, S. A. Hissan, K. C. Wallnau, "Agora: A Search Engine for Software Components", IEEE Internet Computing, vol.2, no.6, November/December, pp. 62-70, 1998. • P. Hall, “Architecture-driven Component Reuse", Information and Software Technology, vol. 41, no. 14, pp963-968, November 1999. • R. C. Seacord, “Software Engineering component repositories”, In International Workshop on Component-Based Software Engineering, Held in conjunction with the 21st International Conference on Software Engineering (ICSE), Los Angeles, CA, USA, 1999. • J. Grundy, “Storage and retrieval of Software Components using Aspects”, In2000 Australasian Computer Science Conference, pp 95-103, Canberra, Australia, 2000, IEEE CS Press. • J. Guo and Luqi, "A Survey of Software Reuse Repositories" In 7th IEEE International Conference and Workshop on the Engineering of Computer Based Systems, pp 92-100, Edinburgh, Scotland, April 2000. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise
References • H. Zhuge, “A problem-oriented and rule-based component repository”, Journal of Systems and Software, vol.50, no.3, pp. 201-208, March 2000. • Y. Ye and G. Fischer, "Supporting Reuse by Delivering Task-Relevant and Personalized Information", In ICSE 2002 – 24thInternational Conference on Software Engineering, pp. 513-523, Orlando, Florida, USA, 2002. • W. B. Frakes, "A Case Study of a Reusable Component Collection in the Information Retrieval Domain", Journal of Systems and Software, vol. 72, no. 2, pp. 265-270, July 2004. • J. Clark, C. Clarke, S. De Panfilis, G. Granatella, P. Predonzani, A. Sillitti, G. Succi, and T. Vernazza, “Selecting components in large COTS repositories”, Journal of Systems and Software, vol. 73, pp. 323-331, 2004. • D. Lucrédio, E. S. Almeida, and A. F. Prado, “A Survey on Software Components Search and Retrieval”, In the 30th IEEE EUROMICRO Conference, Component-Based Software Engineering Track, 2004, Rennes - France. IEEE Press. 2004. Reuse in Software Engineering Group http://www.cin.ufpe.br/~rise