Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Reuse Environments: An Overview Vinicius Cardoso Garcia Advanced Software Reuse Seminars.

Similar presentations

Presentation on theme: "Software Reuse Environments: An Overview Vinicius Cardoso Garcia Advanced Software Reuse Seminars."— Presentation transcript:

1 Software Reuse Environments: An Overview Vinicius Cardoso Garcia Advanced Software Reuse Seminars

2 RiSE Group: 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

3 RiSE Group: 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]

4 RiSE Group: 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]

5 RiSE Group: 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]

6 RiSE Group: 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]

7 RiSE Group: 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]

8 Software Reuse Environments

9 RiSE Group: 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 ?

10 RiSE Group: 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

11 RiSE Group: 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

12 RiSE Group: 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

13 RiSE Group: 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

14 RiSE Group: 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

15 RiSE Group: 15 DARE [Frakes et al., 1998]

16 RiSE Group: 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

17 RiSE Group: 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

18 RiSE Group: 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

19 RiSE Group: 19 Agora Query Interface

20 RiSE Group: 20 Agora Architecture

21 RiSE Group: 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

22 RiSE Group: 22 Odyssey [Braga et al., 1999]

23 RiSE Group: 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++

24 RiSE Group: 24 [Kwon et al., 1999]

25 RiSE Group: 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

26 RiSE Group: 26 CodeFinder 2 - [Henninger, 1999]

27 RiSE Group: 27 CodeFinder 2 - [Henninger, 1999]

28 RiSE Group: 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

29 RiSE Group: 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

30 RiSE Group: 30 WREN – [Lüer and Rosenblum, 2001]

31 RiSE Group: 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}

32 RiSE Group: 32 Cadena – [Hatcliff et al., 2003]

33 RiSE Group: 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

34 RiSE Group: 34 [Hashizaki and Fukazawa, 2004]

35 RiSE Group: 35 [Hashizaki and Fukazawa, 2004]

36 RiSE Group: 36 [Hashizaki and Fukazawa, 2004] Search experiment

37 RiSE Group: 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

38 RiSE Group: 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

39 RiSE Group: 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

40 RiSE Group: 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

41 RiSE Group: 41 SPARS-J - [Inoue et al. 2005]

42 RiSE Group: 42 SPARS-J - [Inoue et al. 2005]

43 RiSE Group: 43 SPARS-J - [Inoue et al. 2005] Experiments  JDK 1.4.2 4.257 files, 1.290.000 LOC, 6.100 classes  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

44 RiSE Group: 44 MARACATU – [Garcia et al., 2005]

45 RiSE Group: 45 MARACATU – [Garcia et al., 2005]

46 RiSE Group: 46 Timeline – Software Reuse Environments

47 RiSE Group: 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

48 RiSE Group: 48 Component search Component retrieval model [Lucrédio et a., 2004b]

49 RiSE Group: 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

50 RiSE Group: 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!!!

51 RiSE Group: 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

52 RiSE Group: 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!

53 RiSE Group: 53 Example of an Ideal Information Retrieval Capture Text and context Semantic Analysis Query Dispatcher Intelligent Query Generation Final Results User’s Query

54 RiSE Group: 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

55 RiSE Group: 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… $$$ !

56 RiSE Group: 56 Thank you ! Questions ? Vinicius Cardoso Garcia  Eduardo Santana de Almeida  More information available at 

57 RiSE Group: 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,, 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.

58 RiSE Group: 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.

59 RiSE Group: 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.

60 RiSE Group: 60 References [IBM, 1997] IBM Corporation, IBM Visual Age for Javae,, 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:, 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.

61 RiSE Group: 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.

62 RiSE Group: 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.

63 RiSE Group: 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.

Download ppt "Software Reuse Environments: An Overview Vinicius Cardoso Garcia Advanced Software Reuse Seminars."

Similar presentations

Ads by Google