Upload
tracey-fox
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
Software Reuse Environments: An Overview
Vinicius Cardoso [email protected]://www.cin.ufpe.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
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]
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]
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]
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]
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]
Software Reuse Environments
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 ?
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
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
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
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
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
RiSE Group: http://www.cin.ufpe.br/~rise 15
DARE [Frakes et al., 1998]
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
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
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
RiSE Group: http://www.cin.ufpe.br/~rise 19
Agora Query Interface
RiSE Group: http://www.cin.ufpe.br/~rise 20
Agora Architecture
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
RiSE Group: http://www.cin.ufpe.br/~rise 22
Odyssey [Braga et al., 1999]
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++
RiSE Group: http://www.cin.ufpe.br/~rise 24
[Kwon et al., 1999]
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
RiSE Group: http://www.cin.ufpe.br/~rise 26
CodeFinder 2 - [Henninger, 1999]
RiSE Group: http://www.cin.ufpe.br/~rise 27
CodeFinder 2 - [Henninger, 1999]
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
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
RiSE Group: http://www.cin.ufpe.br/~rise 30
WREN – [Lüer and Rosenblum, 2001]
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}
RiSE Group: http://www.cin.ufpe.br/~rise 32
Cadena – [Hatcliff et al., 2003]
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
RiSE Group: http://www.cin.ufpe.br/~rise 34
[Hashizaki and Fukazawa, 2004]
RiSE Group: http://www.cin.ufpe.br/~rise 35
[Hashizaki and Fukazawa, 2004]
RiSE Group: http://www.cin.ufpe.br/~rise 36
[Hashizaki and Fukazawa, 2004]
Search experiment
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
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
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
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
RiSE Group: http://www.cin.ufpe.br/~rise 41
SPARS-J - [Inoue et al. 2005]
RiSE Group: http://www.cin.ufpe.br/~rise 42
SPARS-J - [Inoue et al. 2005]
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
RiSE Group: http://www.cin.ufpe.br/~rise 44
MARACATU – [Garcia et al., 2005]
RiSE Group: http://www.cin.ufpe.br/~rise 45
MARACATU – [Garcia et al., 2005]
RiSE Group: http://www.cin.ufpe.br/~rise 46
Timeline – Software Reuse Environments
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
RiSE Group: http://www.cin.ufpe.br/~rise 48
Component search
Component retrieval model [Lucrédio et a., 2004b]
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
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!!!
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
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!
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
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
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… $$$ !
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
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.
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.
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.
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
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.
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.
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.