31
Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei [email protected]

Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei [email protected]

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

Reusable Software Component Retrieval: Part II

Taciana Amorim [email protected]

Page 2: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise

2

Content

Component Retrieval - Historic Conclusion References

Page 3: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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

Page 4: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 5: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 6: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise

6

Component Retrieval - Historic

[P. Hall, 1999]

Page 7: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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]

Page 8: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 9: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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

Page 10: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 11: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise

11

Component Retrieval - Historic

Concept of component aspects [J. Grundy, 2000]

Page 12: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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]

Page 13: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 14: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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]

Page 15: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 16: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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]

Page 17: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 18: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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

Page 19: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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]

Page 20: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 21: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 22: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.”

Page 23: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 24: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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]

Page 25: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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]

Page 26: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

10/12/2004 Reuse in Software Engineering Grouphttp://www.cin.ufpe.br/~rise

26

Component Retrieval - Historic

Page 27: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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].

Page 28: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 29: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 30: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

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.

Page 31: Reusable Software Component Retrieval: Part II Taciana Amorim Vanderlei tav@cin.ufpe.br

Reusable Software Component Retrieval: Part II

Questions?