Reengineering and Reuse of Software - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Reengineering and Reuse of Software

Description:

Examples of reuse projects. Non technical information. Additional info ... The process of examining and altering an existing system to ... Esprit ... – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 20
Provided by: mot125
Category:

less

Transcript and Presenter's Notes

Title: Reengineering and Reuse of Software


1
Re-engineering and Reuse of Software
  • By
  • Alex Kirzhner

2
(No Transcript)
3
Agenda
  • Introduction
  • Historical Information
  • Re-engineering
  • Software Reuse
  • Component-based engineering
  • Examples of reuse projects
  • Non technical information
  • Additional info and reference

4
Problems
  • Unused ideas
  • Unused tools
  • Abundant or out of date projects
  • Development cost
  • Maintenance cost

5
Solution
  • Re-engineering
  • The process of examining and altering an
    existing system to reconstitute it in a new form.
    May include reverse engineering (analyzing a
    system and producing a representation at a higher
    level of abstraction, such as design from code),
    forward engineering (using software products
    derived from an existing system, together with
    new requirements, to produce a new system), and
    translation (transforming source code from one
    language to another or from one version of a
    language to another).
  • Software Reuse
  • The principle of using a software component
    in multiple applications, for example by deriving
    application-specific object classes from
    general-purpose object classes, or using existing
    class libraries or frameworks for common
    application functions. Reuse is one of the goals
    of object technology.

6
Historical background
  • Code reuse started with the first line of code.
  • High-level languages introduce component and
    packages reuse, reengineering and reverse
    engineering.
  • Reuse as a concept was introduced by McIlroy in
    1968.
  • Reverse engineering and re-engineering as a
    concepts were introduced in 1980s

7
Re-engineering
  • Formal transformation popular in Europe
  • Mainly used for forward and backward
    engineering.
  • Reverse engineering assist in understating of
    components.
  • Informal transformation popular in US
  • Pattern matching methods use reverse
    engineering.

8
Software Reuse
  • Need component repository (i.e. component
    library) that easy to search
  • Better knowledge about application (domain
    analysis)
  • Each component need to have
  • clear specification (parameters, method
    name), description
  • author name and contact info, modification
    history
  • Reuse components need to be as generic as
    possible.

9
Component-based engineering
  • Main goals
  • decrease development time
  • decrease development cost
  • maintain high quality
  • It can be achieved by component reuse
  • Components are binary, independently deployable
    building blocks, that can be composed by third
    party 2

10
Package based software development
  • Source code components standardized build
    interface and configuration interface
  • Source tree composition combining components
    into directory hierarchy
  • Development and deployment modes
  • Release management for deployed components
  • Combined development during development mode
  • Use of multiple SCM systems

11
Concepts of Source tree composition
  • Build Interface make component build interface
    standardized (this makes software building
    easier)
  • Configuration interface make configuration
    interface standardized
  • Component dependencies both dependency and
    variability parameters need to be present in
    configuration interface
  • Build order first build all components that a
    component depends on.
  • Component configuration multiple configuration
    parameters may exist for single component (makes
    component more generic)
  • Source code packages done to get away from SCM
    dependency and allows to maintain multiple
    versions of the same component
  • Package definitions contain main information
    about a component

12
Concepts of Source tree composition
13
Projects
  • REBOOT (Reuse Based on Object-Oriented
    Techniques) - develops, evaluates and
    disseminates advanced methodologiesfor
    reuse-driven and object-oriented software
    development
  • REDO assist software engineers in the
    maintenance, restructuring and validation of
    large software systems and their transportation
    between different environments. (On of the Esprit
    projects)
  • ITHACA-2 assist in development of an integrated
    application support system based on the
    object-oriented programming approach.
  • DRACO.NET - monitors your source code repository,
    automatically rebuilds your project when changes
    are detected and then emails you the build result
    along with a list of changes since the last
    build.

14
Non technical issues
  • Personnel
  • Not everyone likes to reuse code written by
    someone else
  • Buy vs. in-house development
  • Reusable components take time from main
    project
  • Economics
  • Payoff for components reuse will occur in the
    long run (various metrics are used) see 3
  • Software reuse through sale of packages
  • Legal
  • Re-engineering is illegal

15
Measures for Reuse Success
  • Reuse Benefit operational benefit of reuse
    (development effort and cost, time-to market,
    maintenance effort)
  • Strategic Impact same as reuse benefit but on
    organizational level
  • Software Quality measure error rate

16
Additional Information
  • Conferences
  • The International Conference on Software
    Engineering
  • The Symposium on Software Reusability
  • The European Reuse Workshop

17
Additional Information (cont.)
  • Subscription Groups
  • Software Reuse Factors
  • Reusable Software Components Resources
  • IEEE Software Reuse Group
  • Software Productivity Consortium members

18
References
  • The Re-engineering and Reuse of Software
    Patrick A.V. Hall and Lingzi Jin. (Software
    Engineering Vol 1 p.355)
  • Package-Based Software Development Merijn de
    Jonge, Proceeding of the 29th EUROMICRO
    Conference (EUROMICRO03)
  • Analytical and Empirical Evaluation of Software
    Reuse Metrics Prem Devanbu, Proceeding of the
    18th International Conference on Software
    Engineering (ICSE96) p. 189
  • Strategies for Software Reuse A Principal
    Component Analysis of Reuse Practices Marcus A.
    Rothenberger, IEEE Transaction on Software
    Engineering, Vol. 29 No. 9, September 2003 p.825

19
Questions
Write a Comment
User Comments (0)
About PowerShow.com