Software Engineering with Reusable Components - PowerPoint PPT Presentation

About This Presentation
Title:

Software Engineering with Reusable Components

Description:

... on Reverse Engineering (WCRE'2003), 2003, Victoria, British Columbia, Canada. ... In Software Reusability, chapter 1, pages 1-16, 1994. ... – PowerPoint PPT presentation

Number of Views:117
Avg rating:3.0/5.0
Slides: 28
Provided by: vcg
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering with Reusable Components


1
Software Engineeringwith Reusable Components
  • RiSEs Seminars
  • Sametingers book Chapters 1, 2 and 3
  • Vinicius Cardoso Garcia

2
Summary
  • Introduction (Chapter 1)
  • Software Components
  • Software Reuse
  • Software Reuse (Chapter 2)
  • Introduction and Motivation
  • Benefits and Obstacles of Software Reuse
  • Technical Aspects of Software Reuse (Chapter 3)
  • Reuse Facets

3
1. Introduction
4
Introduction Chapter 1
  • Start -gt simple programs and implementing
    algoritms
  • Complexity -gt software crisis
  • Reuse of software components
  • Several advantages
  • What are components, their proprieties,
    requirements, implications

5
Software Components
Introduction Chapter 1
  • Algorithms, designs, requirements,
    specifications, procedures, modules,
    applications, ideas, among others

components are artefacts that we clearly
identify in our software systems. They have an
interface, encapsulate internal details and are
documented separately
  • CBSD has become a buzzword
  • Be easily combined with each other

6
Introduction Chapter 1
  • Reuse component integrate it into a software
  • Example what to do to reuse a algorithm?
  • Problems?
  • Implement reuse idea (pseudocode), programming
    language
  • Component ?

7
What is not a component? Why?
Introduction Chapter 1
  • A software design is not a software component
  • Framework is not one component as a whole
  • Consists of many components
  • Design patterns are not a software components
    too!
  • Can be reused but they are not a software
    components
  • Solve certain problems by arranging components
    (classes)

8
The reuse of software designs is more effective?
Introduction Chapter 1
  • Depends on what a component is
  • Restrict to source code components
  • Increase productivity
  • reuse a component reusing design
  • Components x Algorithms reuse
  • Components have an interface -gt black-box reuse
    (white-box)
  • Documentation is a necessity
  • Code scavenging more complex, more difficult
    to reuse

9
Software Reuse
Introduction Chapter 1
  • Soft. Component and Soft. Reuse relation
  • The use of soft. component is not sufficient
  • Reusing soft. influence on Soft. Engineering
  • Structures and economic
  • Soft. Life cycle domain analysis

10
Reuse legacy code, is possible?
Introduction Chapter 1
  • New challenges !
  • Requirements change constantly rebuilding every
    time?
  • Incorporate old components
  • Reengineering, Reverse engineering, Refactoring,
    CBSD, CASE tools, Software Transformations, AOSD
  • (Alvaro et al., 2003), (Garcia et al., 2004) and
    (Garcia, 2005)

11
Soft. systems must be composed of components
Introduction Chapter 1
  • Black-box reuse is inflexible and restrictive
    (Prieto, 1994)
  • Reuse of source components -gt reuse of analysis
    and design (implicitly) (Freeman, 87a)
  • Explicitly misses the opportunity of reusing
    this information
  • Soft. Reuse and Soft. Component will not salve
    all the problems in SE
  • Flexible software systems, evolution and
    adaptability

12
2. Software Reuse
13
History of Software Reuse
Software Reuse Chapter 2
  • Software crisis late sixties development and
    maintenance
  • McIlroy software factory concept
  • Academia late 1970s
  • 1980s large-scale reuse programs were done
  • Advances repositories, classification tech.,
    creation and distribution, environments

14
Introduction and Reuse Definitions
Software Reuse Chapter 2
  • Code scavenging -gt increased productivity
  • source code generators or reuse knowledge
  • Many different viewpoints
  • Reuse is the use of any information which a
    developer may need in the software creation
    process (Freeman, 1987a)
  • the use of everything associated with a software
    project, including knowledge (Basili and
    Rombach, 1988)

Software reuse is the process of creating
software systems from existing software rather
than building them from scratch. (Krueger, 1992)
15
Motivation
Software Reuse Chapter 2
  • 40 to 60 of code is reusable
  • 60 of design and code are reusable in business
    application
  • 75 of program functions are common
  • 15 of the code is unique
  • 15 to 85 - rates of actual and potential reuse
    (Mili et al, 1995)

16
Benefits of Software Reuse
Software Reuse Chapter 2
  • Quality Improvements
  • Quality, productivity, performance, reliability,
    interoperability
  • 9 times better during component test and 4.5
    during system test. Other project no errors found
    in life cycle (Bauer, 1993)
  • Effort reduction
  • Redundant work, development time, time to market,
    documentation, maintenance costs, training costs,
    team size
  • Other Benefits
  • Rapid prototyping support, expertise sharing

17
Industry examples
Software Reuse Chapter 2
  • NASA 25 projects (3K to 112K LOC) 32 reused
  • Motorola candidate technology for initiatives
    and goals to improve productivity and quality
  • HP reduction in defect density range from 24
    to 76 and a 40 to 57 increase in productivity
  • IBM Reuse Tecnology Center, saving in the
    millions of dollars, reusing accounting for 20
    to 30
  • Other examples 1979 to 1992 (Mili et al, 1995)

18
Obstacles to Software Reuse
Software Reuse Chapter 2
  • Many factor directly or indirectly influence the
    success or failure of reuse
  • Technical, conceptual, organizational, economic,
    etc
  • Managerial and Organizational
  • Lack of management support, project management,
    lack of explicit procedures, inadequate
    organizational structures, not invented here,
    legal issues, lack of management incentives

19
Obstacles to Software Reuse
Software Reuse Chapter 2
  • Economic Obstacles
  • Can save money in the long run, but is not for
    free
  • Costs of making something reusable, costs of
    reusing it and costs of defining and implementing
    a reuse process
  • Conceptual and Technical Obstacles
  • Difficult on finding reusable software,
    nonreusability of found software, legacy
    components not suitable for reuse, OO technology,
    modification, integration, garbage reuse
  • Other basic technical difficulties
  • What a reusable component constitute? What a
    component does and how to use it?

20
3. Technical Aspects for Software Reuse
21
Reuse facets
Technical Aspects for Soft Reuse Chapter 3
  • Affected by nontechnical and technical aspects
  • Substance defines the essence of reused items
  • Scope defines the form and extent of reuse
  • Mode defines how reuse is conducted
  • Technique defines the approach that is used to
    implement reuse
  • Intention defines how elements will be used
  • Product defines what is reused

22
Reuse Techniques
Technical Aspects for Soft Reuse Chapter 3
  • Abstraction
  • Specification (what) and realization (how)
  • Compositional Reuse
  • Components remain unmodified in their reuse
  • Repositories principles of organization (pipe
    architecture or OO)
  • Locate components, classification schemes,
    retrieval techniques, integrate them in software
    systems
  • Component composition
  • Code and design scavenging

23
Generative Reuse
Technical Aspects for Soft Reuse Chapter 3
  • Reuse of a generation process
  • Lexical analyzers, parsers and compilers
  • Application generators
  • Language-based generators
  • Transformation systems
  • Draco approach domain-oriented specifications
    (Garcia, 2005)
  • Programming languages

24
Generation vs. Composition
Technical Aspects for Soft Reuse Chapter 3
Reuse Techniques Composition Generation
Reused component Building blocks Patterns
Nature of component Atomic and immutable, passive Diffuse and malleable, active
Emphasis Repositories, composition principles Generators, language-based generators, TS
Examples Function/class libraries, Unix filters Parser generators, 4th generation languages
25
Reuse Intentions
Technical Aspects for Soft Reuse Chapter 3
  • Black-box reuse
  • White-box reuse
  • Glass-box reuse
  • Generative reuse
  • Specification -gt implementation

26
Reuse products
Technical Aspects for Soft Reuse Chapter 3
  • Algorithms
  • Function and Class libraries
  • Software architectures and designs
  • Framework Classes
  • Design patterns
  • Applications
  • Documentation

27
References
  • SAMETINGER, J. Software Engineering with Reusable
    Components. Springer-Verlag, 1997.
  • ALVARO, A. et al. Orion-RE A Component-Based
    Software Reengineering Environment. In
    Proceedings of The 10th Working Conference on
    Reverse Engineering (WCRE'2003), 2003, Victoria,
    British Columbia, Canada.
  • GARCIA, V. C. et al. Towards an effective
    approach for Reverse Engineering. In the 11th
    IEEE Working Conference on Reverse Engineering
    (WCRE 2004 Conference), 2004, Delft University of
    Technology, Netherlands.
  • GARCIA, V. C. Phoenix An Approach for
    Aspect-Oriented Software Reengineering. Master
    thesis. Federal University of São Carlos
    (UFSCar), São Carlos-SP, Brazil. March, 03 2005.
    (in portuguese)
  • PRIETO, R., Historical Overview. In Software
    Reusability, chapter 1, pages 1-16, 1994.
  • FREEMAN, P. Reusable software engineering
    concepts and research directions. In Tutorial
    Software Reusability, pages 10-23. 1987.
  • BASILI, V. R. and ROMBACH, H. D. Towards a
    comprehensive framework for reuse A
    reuse-enabling software evolution environment.
    Technical Report CS-TR-2158, University of
    Maryland, December 1988.
  • MILI, H. et al. Reusing Software Issues and
    research directions. IEEE Transactions on
    Software Engineering, 21(6)528-562, June 1995.
  • BAUER, D. A. A reusable parts center. IBM Systems
    Journal, 32(4)620-624, 1993.
Write a Comment
User Comments (0)
About PowerShow.com