Dec 20, 2015
Reusable Software Component Retrieval: Part II
Taciana Amorim [email protected]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
2
Content
Component Retrieval - Historic Conclusion References
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
3
Component Retrieval - Historic
[A. Podgurski and L. Pierce, 1993] Measures to evaluate text-retrieval methods
Precisions Recall Efficiency
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
4
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 ):o Security;o Electronic commerce;o Quality assurance.
Digital’s AltaVista SDK is used for indexing and retrieving component data.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
5
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
6
Component Retrieval - Historic
[P. Hall, 1999]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
7
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 collaborating objects 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]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
8
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.
o Few users;
o Low per-user benefits;
o High cost of repository mechanisms and operations.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
9
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
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
10
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
11
Component Retrieval - Historic
Concept of component aspects [J. Grundy, 2000]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
12
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 reuse of software
components has 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]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
13
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
14
Component Retrieval - Historicco
mm
erci
alg
ove
rnm
ent
[J. Guo and Luqi, 2000]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
15
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
16
Component Retrieval - Historic
A problem-oriented component reuse framework [H. Zhuge, 2000]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
17
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
18
Component Retrieval - Historic
[Y. Ye and G. Fischer, 2002]
Existent components
Belief componentsVaguely known componentsWell known components
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
19
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. Overall results of experiments with CodeBroker
[Y. Ye and G. Fischer, 2002]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
20
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
21
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
22
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.”
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
23
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
24
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]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
25
Component Retrieval - Historic
Component retrieval model [D. Lucrédio, E. Almeida, and A. Prado, 2004]
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
26
Component Retrieval - Historic
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
27
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].
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
28
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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
29
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”, In 2000 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.
10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise
30
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 – 24th International 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.
Reusable Software Component Retrieval: Part II
Questions?