63
Software Reuse Environments: An Overview Vinicius Cardoso Garcia [email protected] http://www.cin.ufpe.br/~rise Advanced Software Reuse Seminars

Software Reuse Environments: An Overview Vinicius Cardoso Garcia [email protected] rise Advanced Software Reuse Seminars

Embed Size (px)

Citation preview

Page 1: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

Software Reuse Environments: An Overview

Vinicius Cardoso [email protected]://www.cin.ufpe.br/~rise

Advanced Software Reuse Seminars

Page 2: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 2

A brief history

Tools and environments Aid developers in producing software

Earliest environments small collections of stand-alone tools UNIX: editors, compilers, debuggers and other utilities

Data in simple standardized format

Programming Support Environments (PSEs) Collection of tools that support coding activities

One or more compilers, language-sensitive editors and debuggers

Support only the SE activity and its artifact implementation and code

Page 3: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 3

A brief history (2)

All SE activities are interconnected {its artifacts too!}

Tools that promote the development of artifact other than code -> not integrated with other tools!!!

The need for integrated support for SE activities is the genesis of Software Engineering Environments

Supporting SE across the software lifecycle

[Harrison et al, 2000]

Page 4: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 4

Key challenges

A vast collection of tools have been prototyped or marketed In the context of integrated environments

State-of-the-practice has not advanced

Each tool or environment is still highly specific to some context. Particular language, database, OS, compiler, environment

or integration platform [Harrison et al, 2000]

Page 5: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 5

Key challenges (2)

Permanently Malleable Software How to integrate and interact with other software? How to evolve and adapt to uses?

It is impossible to predict how business practices, business processes, people and technology will co-evolve over time

Anticipate and pre-plan for change: design!!! Impossible to anticipate all future needs Traditional SD (spiral, waterfall) involve careful req. analysis

and design prior to implementation

[Harrison et al, 2000]

Page 6: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 6

Related works

According to Meyers’ taxonomy [Meyers, 1991]: file-based, message-passing (both local and distributed),

database and canonical representation approaches

[Grundy et al, 2000] identify the advantages and disadvantages of each for building tools Supporting Wasserman’s taxonomy of types integration

(data, control, presentation and process) [Wasserman, 1990]

Page 7: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 7

Software Engineering Environments

File-based approaches Unix-based software tools However such tools generally provide limited Data,

Control and Presentation integration mechanisms Message-passing approaches

Wrapped and integrated very effectively! Data and process integration is generally not as well

supported Database approaches

Very facilities: user interface, software development, but.. Difficult to extend and integrate with third-party tools

Component-based SEEs Facilitate reuse and deployment [Szyperski, 1997]

Page 8: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

Software Reuse Environments

Page 9: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 9

Introduction

CBSE is a continuously growing field The environments not offer comprehensive, integrated

support for the activities [Lüer, 2001] Domain engineering and application composition

Reuse -> $$$

Environments, process, certification !!! Just a Repository ?

Page 10: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 10

CodeFinder 1 – [Henninger, 1994]

Lack of a clear idea of what they need when they search for a component

Query construction methods Guide the user to formulate queries More important than the retrieval algorithms [Frakes and

Pole, 1994]

1800 Emacs Lisp components and 2900 terms

Page 11: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 11

[Thomas et al., 1997]

Effects of reuse across some projects in narrow domain Eight medium-scale Ada projects developed over a 5 years

Types of reuse Verbatim reuse: component is unchanged Reuse with slight modification Reuse with extensive modification

Language issues in Software Reuse Organizational Support for Reuse [Basili et al., 1992]

a factory organization and project organization

Page 12: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 12

[Thomas et al., 1997]

Observed clear benefits from reuse Reduced error density Verbatim: produce substantial improvement in error density (90%) Reuse via slight modification: 50% Shift in costs: fewer but more difficult errors

Page 13: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 13

[Mili et al., 1997b]

Survey of existing methods of storage and retrieval in software libraries [Mili et al., 1997a]

Storing and Retrieving Software Components: A Refinement Based System

Effectiveness of the library's retrieval algorithm Precision, recall and response time

Source code: the key of software component Is not practical

Represent a software component with a two-field entry The reference to the source code A specification of the component

Retrieval algorithms: Exact retrieval Approximate retrieval

Page 14: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 14

DARE [Frakes et al., 1998]

Systematic software reuse : quality and productivity increased – focus of software

engineering to a domain-centered view Domain engineering

DARE (Domain Analysis and Reuse Environment) Domain analyst in carrying out a well-defined domain

analysis method Extracting and recording domain information (documents

and code) Producing domains models Repository of reusable assets for the domain

Page 15: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 15

DARE [Frakes et al., 1998]

Page 16: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 16

DARE [Frakes et al., 1998]

DARE approach Creation of generic architecture that describes architectural

elements, and their relationships, for a family of systems Has been developed in a series of research

prototypes 1994: developed in C on a UNIX, develop and elaborate the

domain book and investigate machine-assisted graphical word and phrase extraction and clustering

1995: developed in Visual Basic 3, cut development time, the issues from first prototype is recreated Domain expert information entry form, System architecture

editor. Facet table and the Generic architect editor and the generic feature table

Page 17: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 17

DARE [Frakes et al., 1998]

The third prototype is created using COTS and freeware (1998)

Currently using DARE-COTS [Frakes et al., 1997] to refine the DARE domain analysis method and investigate how the method can be supported by various commercial tools

The prototypes are used to refine both the tool and the method

Page 18: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 18

Agora – [Seacord et al., 1998]

Developed by the Commercial Off-the-Shelf (COTS)-Based Systems Initiative at SEI/CMU

Automatically generated and indexed worldwide database of software products classified by component model

Combines introspection with web search engines – reduce costs

Towards a component Marketplace But...

Security, electronic commerce, and quality assurance

Page 19: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 19

Agora Query Interface

Page 20: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 20

Agora Architecture

Page 21: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 21

Odyssey [Braga et al., 1999]

Support to the whole development cycle Conceptual models to component implementation Domain models: Use Cases and related OO models, Feature

Model [Cohen, 1994] Domain Engineering, Method to systematize the DE, Mediation layer: direct representation, storage and

management of domain model information

Using a UML notation to OO models

DE process to guide the software engineer

Page 22: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 22

Odyssey [Braga et al., 1999]

Page 23: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 23

[Kwon et al., 1999]

Integrated model that links the OOP paradigm with the CBD

CBD Environment Component building

Design/Development for Reuse, OOP, Design Patterns and Frameworks, Re-engineering, Component description, DE, Component Certification

Component use Design/Development with Reuse, Reuse Repository, DE,

Reuse Metrics

Re-engineering: legacy systems in C and then generates in C++

Page 24: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 24

[Kwon et al., 1999]

Page 25: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 25

CodeFinder 2 - [Henninger, 1999]

Repositories are faced with 2 problems: acquiring the knowledge and modifying the repository

Retrieval method that utilizes minimal repository structure PEEL: a tool that semi-automatically identify reusable

components CodeFinder: retrieval system

CodeFinder allows component representations to be modified while users search for information Adapts to the changing nature of the information Incrementally improves the repository while people use it

Page 26: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 26

CodeFinder 2 - [Henninger, 1999]

Page 27: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 27

CodeFinder 2 - [Henninger, 1999]

Page 28: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 28

CLARiFi – [Thomason et al., 2000]

The classification schema is a subset of a larger data model, which incorporates the roles of suplier, integrator, broker and certifier

Certification Undertaking an analysis of relevant standards in order to

derive a model for component certification

Two year Framework V project funded by European Commission, spanning both academia and industry 10 partners: Italy, UK, France, Germany, Denmark, Canada

Page 29: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 29

WREN – [Lüer and Rosenblum, 2001]

Identifies 7 requirements for CBDEs adopted by industrial component models However, these requirements don't cover tool integration

issues

Utilize the concept of requires (component run) and provides port (component performs) Architectural view of the applications

Integrated with Web Gain Visual Cafe

Client of one or more component repository servers

Page 30: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 30

WREN – [Lüer and Rosenblum, 2001]

Page 31: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 31

Cadena – [Hatcliff et al., 2003]

An integrated environment for building and modeling CCM systems Defining component types using CCM IDL, Producing CORBA stubs and skeletons in Java.

Apply Cadena to avionics applications built using Boing’s Bold Stroke framework

Emphasizes Java -> OpenCCM’s planned support for C++

Cadena’s methodology {8 steps}

Page 32: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 32

Cadena – [Hatcliff et al., 2003]

Page 33: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 33

[Hashizaki and Fukazawa, 2004]

Analyses a collection of OO programs, acquires relationships among OO classes, and extracts reusable software components composed of some classes.

The extracted components can be searched by keywords, and the result can be viewed by a web browser

JavaBeans as a component architecture The process of retrieving components

the static analysis, component extraction, source indexing, and searching components

Page 34: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 34

[Hashizaki and Fukazawa, 2004]

Page 35: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 35

[Hashizaki and Fukazawa, 2004]

Page 36: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 36

[Hashizaki and Fukazawa, 2004]

Search experiment

Page 37: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 37

Orion – [Lucrédio et al., 2004a]

Identifies the {main requirements} for CBSEE UML modeling tool, a Java programming tool, a

network tool, a middleware platform and a process model Not originally designed to work together

CBSEE requirements Tool integration

Platform integration Data integration Presentation integration Control integration Process integration

Page 38: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 38

Orion – [Lucrédio et al., 2004a]

Support for CBSE activities Domain Engineering Component-Based Development

Reusability Referential Integrity Software Configuration

Management (SCM) Multiple Views of Information Security Technology and Language

Independence

Page 39: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 39

Orion – [Lucrédio et al., 2004a]

Provides practical tools and solutions to perform the CBSE activities

Process, called IPM, guide the software engineer to use the different tools of the environment

Work in artifacts in different abstraction levels

Automatic deploying the components into computers of the network

Page 40: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 40

SPARS-J - [Inoue et al. 2005]

Novel graphic-representation model of a software component library (repository)

Analyzing actual usage elations of the components and propagating the significance through the usage relations

SPARS-J gives a higher rank to components that are used more frequently

Has been used by two companies

Page 41: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 41

SPARS-J - [Inoue et al. 2005]

Page 42: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 42

SPARS-J - [Inoue et al. 2005]

Page 43: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 43

SPARS-J - [Inoue et al. 2005]

Experiments JDK 1.4.2

4.257 files, 1.290.000 LOC, 6.100 classes SourceForge.net

140.000 Java files, create a huge database with 180.000 Java classes

Case Studies in Two Companies Daiwa Computer, 180 engineers, ISO9001:2000 and CMM3

5 applications, 1.788 components Suntory Limited, maintenance and reuse

2.400 components, evaluate for two weeks

Page 44: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 44

MARACATU – [Garcia et al., 2005]

Page 45: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 45

MARACATU – [Garcia et al., 2005]

Page 46: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 46

Timeline – Software Reuse Environments

Page 47: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 47

Research directions

And now ? Main requirements to specify, project and construct

the effective Software Reuse Environment? First step: [Lucredio et al., 2004a] requirements for CBSEEs

Tool integration, Support for CBSE activities, Reusability, Referential Integrity, SCM, Multiple Views of Information, Security, Technology and Language Independence.

But, the first principal problem is to find the ideal component to reuse! Component classification?

Many algorithms for component search and retrieval

Page 48: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 48

Component search

Component retrieval model [Lucrédio et a., 2004b]

Page 49: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 49

Component Search, Decade of 90…

Retrieval methods: Enumerated classification

Inflexibility Problems with understanding large hierarchies

Faceted classification [Prieto-Díaz, 1991] Flexible Precise Better suited for large, continuously expanding collection Hard for users to find the right combination of terms

Free-text indexing (automatic indexing) Simple to build and retrieval Need large bodies of text to become statistically accurate

Page 50: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 50

Component Search

[Frakes and Pole, 1994] Empiricist Study

Hierarchic, Faceted, Attributes and Key-words Similar results

Precision Recovery rate

Maybe more important than classification!!!

Page 51: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 51

Requirements

To reuse a software components, first you have to find it!

All algorithms make the job But… if the system search for the users ? Active repositories! Agents make the search

for you! Related components is a good idea too

ontology, web semantic, context and data mining

Page 52: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 52

Requirements

Problems with repository Costly classification Domain analysis efforts

[Henninger, 1999] Utilizes minimal repository structure Improves the repository (different people, different

vocabulary)

Centralized repositories -> repositories must be free and distributed!

Page 53: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 53

Example of an Ideal Information Retrieval

Capture Text and context

Semantic Analysis

Query Dispatcher

Intelligent Query Generation

Final Results

User’s QueryUser’s Query

Page 54: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 54

So…

Search Engine for software components Passive repository x Active repository

Effective in promoting reuse Distributed (different types) repositories and Open

network Security, Electronic commerce, Quality assurance

Explicit context Automation of the reuse process…

Iterative process to find the best compromise (better queries)

Cluster related components together Rank the components by their popularity among software

systems

Page 55: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 55

And…

Metrics can help to rank the query results Most reused components, effective reuse…

But, who is guarantee the quality and security of the components? Component Certification is one of the main requirements!

Reuse not only the source code Models, test cases, architectures, requirements, use cases…

To effective Reuse, only a set of tools don’t resolve… Reuse Process

And the Market? Components Licenses… $$$ !

Page 56: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 56

Thank you !

Questions ?

Vinicius Cardoso Garcia [email protected]

Eduardo Santana de Almeida [email protected]

More information available at http://www.cin.ufpe.br/~rise

Page 57: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 57

References

[Bandinelli et al., 1996] S. Bandinelli, E. DiNitto, A. Fuggetta, Supporting cooperation in the SPADE-1 environment, IEEE Transactions on Software Engineering 22 (12) (1996) 841–865.

[Basili et al., 1992] V. Basili, G. Caldiera and G. Cantone. A Reference Architecture for the Component Factory. ACM Transactions on Software Engineering and Methodology, 1(1), January, 1992.

[Braga et al., 1999] Braga, R.; Werner, C.; Mattoso, M.; "Odyssey: A Reuse Environment based on Domain Models"; Proceedings of IEEE Symposium on Application-Specific Systems and Software Engineering Technology (ASSET'99), Richardson, Texas, March 24-27, 1999, pp. 49-57.

[Champine, 1991] M.A. Champine, A visual user interface for the HP-UX and domain operating systems, Hewlett-Packard Journal 42 (1) (1991) 88–99.

[Eiffel, 1998] Interactive Software Engineering Inc., Eiffel CASEe, http://www.eiffel.com/products/case.html, 1998.

[Frakes and Pole, 1994] W. B. Frakes and T. Pole, "An Empirical Study of Representation Methods for Reusable Components", IEEE Trans. Software Eng., Aug. 1994.

Page 58: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 58

References

[Frakes et al., 1997] Frakes, W., R. Prieto-Diaz, and C. Fox (1997), “DARE-COTS: A Domain Analysis Support Tool,” In XVII International Confernce of the Chilean Computer Society in Valparaiso, Chile, IEEE Computer Society Press, Los Alamitos, CA, pp. 73–77.

[Frakes et al., 1998] Frakes, W., R. Prieto-Diaz and C. Fox, "DARE: Domain Analysis and Reuse Environment." In W. Frakes (Ed.), Annals of Software Engineering, (5):125-141, The Netherlands: Baltzer Science Publishers, September 1998.

[Fugetta, 2000] Fuggetta, A. 2000. Software process: a roadmap. In Proceedings of the Conference on the Future of Software Engineering (Limerick, Ireland, June 04 - 11, 2000). ICSE '00. ACM Press, New York, NY, 25-34.

[Garcia et al., 2005] Garcia, V. C., Durão, F. A., Júnior, G. S. A., Santos, M. D. S., Almeida, E. S., Lucrédio, D., Albuquerque, J. O., Meira, S. R. L. Especificação, Projeto e Implementação de uma Arquitetura para um Engenho de Busca de Componentes. In the 5° Workshop de Desenvolvimento Baseado em Componentes (WDBC'2005), Juiz de Fora-MG, Brazil. 2005.

[Goldberg and Robson, 1984] A. Goldberg, D. Robson, Smalltalk-80: The Language and its Environment, Addision-Wesley, Reading, MA, 1984.

[Grundy and Hosking, 1998] J.C. Grundy, J.G. Hosking, Serendipity: integrated environment support for process modelling, enactment and work coordination, Automated Software Engineering 5 (1) (1998) 25–60.

Page 59: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 59

References

[Grundy et al., 2000] John C. Grundy, Warwick B. Mugridge, John G. Hosking: Constructing component-based software engineering environments: issues and experiences. Information & Software Technology 42(2): 103-114 (2000)

[Harrison et al., 2000] Ossher, H., Harrison, W., and Tarr, P. 2000. Software engineering tools and environments: a roadmap. In Proceedings of the Conference on the Future of Software Engineering (Limerick, Ireland, June 04 - 11, 2000). ICSE '00. ACM Press, New York, NY, 261-277.

[Hart and Lupton, 1995] R.O. Hart, G. Lupton, DECFUSE. Building a graphical software development environment from Unix tools, Digital Technology Journal 7 (2) (1995) 5–19.

[Hashizaki and Fukazawa, 2004] Hironori Washizaki, and Yoshiaki Fukazawa, "Component-Extraction-based Search System for Object-Oriented Programs," Proc. of the 8th International Conference on Software Reuse (ICSR 8th), Springer Verlag, Lecture Notes in Computer Science, LNCS Vol.3107, pp254-263, July 2004.

[Hatcliff et al., 2003] Hatcliff, J., Deng, X., Dwyer, M. B., Jung, G., and Ranganath, V. P. 2003. Cadena: an integrated development, analysis, and verification environment for component-based systems. In Proceedings of the 25th international Conference on Software Engineering (Portland, Oregon, May 03 - 10, 2003). International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 160-173.

[Henninger, 1999] Henninger, S. 1997. An evolutionary approach to constructing effective software reuse repositories. ACM Trans. Softw. Eng. Methodol. 6, 2 (Apr. 1997), 111-140.

Page 60: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 60

References

[IBM, 1997] IBM Corporation, IBM Visual Age for Javae, http://www.software.ibm.com.ad.vajava, 1997.

[Inoue et al. 2005] Matsushita, M. 2005. Ranking Significance of Software Components Based on Use Relations. IEEE Trans. Softw. Eng. 31, 3 (Mar. 2005), 213-225

[Kaiser and Dossick, 1998] G.E. Kaiser, S. Dossick, Workgroup middleware for distributed projects, IEEE WETICE’98, Stanford, 17–19 June, IEEE CS Press, 1998 pp. 63–68.

[Kester, 1990] R. Kester. SEL Ada Reuse Analysis and Representations. In Proceedings of the 15th Annual GSFC Software Engineering Workshop. NASA/GSFC, November, 1990.

[Kwon et al., 1999] Oh-Cheon Kwon, Seok-Jin Yoon and Gyu-Sang Shin. Component-Based Development Environment: An Integrated Model of Object-Oriented Techniques and Other Technologies. Copyright 2001 by Carnegie Mellon University, URL: http://www.sei.cmu.edu/cbs/icse99/papers/17/17.htm, Last Modified: 27 September 2000

[Lucrédio et al., 2004a] D. Lucrédio, E. S. Almeida, C. P. Bianchini, A. F. Prado, L. C. Trevelin: “Orion – A Component Based Software Engineering Environment”, in Journal of Object Technology, vol. 3, no. 4, April 2004, Special issue: TOOLS USA 2003, pp. 51-74. http://www.jot.fm/issues/issue_2004_04/article4

Page 61: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 61

References

[Lucrédio et al., 2004b] 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.

[Lüer and Rosenblum, 2001] Lüer, C. and Rosenblum, D. S. “WREN: An Environment for Component-Based Development”. ACM SIGSOFT Software Engineering Notes. Volume 26. Number 5. September 2001. pp. 207-217.

[Marlin et al., 1993] C. Marlin, B. Peuschel, M. McCarthy, J. Harvey, MultiView-Merlin: an experiment in tool integration, Proceedings of the Sixth Conference on Software Engineering Environments, IEEE CS Press, 1993.

[Mili et al., 1997a] A. Mili, R. Mili, and R. Mittermeir, “A Survey of Software Components Storage and Retrieval,” Univ. of Ottawa, Ontario, Canada, May 1997.

[Mili et al., 1997b] Mili, R., Mili, A., and Mittermeir, R. T. 1997. Storing and Retrieving Software Components: A Refinement Based System. IEEE Trans. Softw. Eng. 23, 7 (Jul. 1997), 445-460.

[McIlroy, 1968] M. D. McIlroy, ’mass produced’ software components, In NATO Software Engineering Conference, 1968, pp. 138-155.

Page 62: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 62

References

[Meyers, 1991] S. Meyers, Difficulties in integrating multiview editing environments, IEEE Software 8 (1) (1991) 49–57.

[Nuseibeh et al., 1994] Bashar Nuseibeh, Jeff Kramer, and Anthony Finkelstein. "A Framework for Expressing the Relationships Between Multiple Views in Requirements Specifications." In Transactions on Software Engineering, vol. 20, no. 10, pp. 260-773, October 1994.

[O'neil and Shildt, 1998] J. O’Neil, H. Schildt, Java Beans Programming from the Ground Up, McGraw-Hill, New York, 1998.

[Osterweil, 1987]Leon J. Osterweil. "Software Processes are Software Too." Proceedings of the 9 th International Conference on Software Engineering, March 1987.

[Parnas, 1972] David L. Parnas. "On the Criteria To Be Used in Decomposing Systems into Modules." Communications of the ACM, vol. 15, no. 12, December 1972.

[Reiss, 1990] S.P. Reiss, Connecting tools using message passing in the field environment, IEEE Software 7 (7) (1990) 57–66.

Page 63: Software Reuse Environments: An Overview Vinicius Cardoso Garcia vinicius.garcia@cesar.org.br rise Advanced Software Reuse Seminars

RiSE Group: http://www.cin.ufpe.br/~rise 63

References

[Roseman and Greenberg, 1997] M. Roseman, S. Greenberg, Simplifying Component development in an integrated groupware environment, Proceedings of the ACM UIST’97, ACM Press, 1997.

[Seacord et al., 1998] R. C. Seacord, S. A. Hissan and K. C. Wallnau, Agora: A Search Engine for Software Components, IEEE Internet Computing, Vol. 2, No. 6, November/December, 1998, pp. 62-70.

[Selby, 1988] R. Selby. Empirically analysing software reuse in a production environment. In: (W. Tracz, ed.), Software Reuse: Emerging Technology. IEEE Computer Society Press, 1988.

[Szyperski, 1997] C.A. Szyperski, Component Software: Beyond Object-Oriented Programming, Addison-Wesley, Reading, MA, 1997.

[Thomason et al., 2000] S. Thomason, P. Brereton, S. Linkman, CLARiFi: An Architecture for Component Classification and Brokerage, 2000 International Workshop on Component-Based Software Engineering (CBSE 2000), Limerick, Ireland, 2000

[Wasserman, 1990] A. Wasserman, Tool integration in software engineering environments, Software Engineering Environments: International Workshop on Environments, Springer, Berlin, 1990.