REUSE-Re-Engineering The Software Process - PowerPoint PPT Presentation


PPT – REUSE-Re-Engineering The Software Process PowerPoint presentation | free to download - id: 77cf77-YWQ0N


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation

REUSE-Re-Engineering The Software Process


REUSE-Re-Engineering The Software Process By Venkat Praveen Medikonda – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 15
Provided by: vpm1
Learn more at:


Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: REUSE-Re-Engineering The Software Process

REUSE-Re-Engineering The Software Process
  • By
  • Venkat Praveen Medikonda

Software Reuse
  • Software Reuse is the process of creating
    software systems from predefined software
  • components. This practice enables us to assemble
    new programs from existing
  • components.
  • Two basic process of software reuse are
  • The systematic development of reusable components
  • The systematic reuse of these components as
    building blocks to create new
  • systems.
  • The positive features of software reuse are
  • Increase software productivity
  • Shorten development time
  • Develop software with fewer people
  • Reduce software development and maintenance costs
  • Produce more standardized and better quality

Rethinking Software Development
  • Traditional methods of software development,
    cannot meet the ever-growing demand for more
    software systems delivered in shorter span with
    low cost.
  • Software development needs to be re-engineered
    with software reuse approach
  • Here software is developed from predefined,
    standardized, interchangeable software
    components. .
  • Software reuse is the best answer to the software

  • Software Reuse Paradigms
  • The reasons why software reuse often fails to
    work in practice are
  • There is no management commitment or support
  • Cost of reuse is too high
  • Code reuse is more trouble then it is worth
  • Current tools do not support reuse
  • Management is not convinced of the business value
    of reuse
  • Reward and recognition programs are counter to
  • Similarity of Software Systems
  • Systems within the same work or application area
    have great deal of similarity.
  • Comparative analysis show 60 to70 similarity
    across software systems.
  • This includes code, design, functional and
    architectural similarities.
  • Majority of each new application built could be
    assembled from predefined
  • reusable components.

  • Commonability means that the same software
    components recur across systems or within one
  • Commonalty occurs at all levels of system
    abstraction ,code components,design,requirements
  • Common component is a component which is used
    repeatedly within one system or in multiple
  • systems or in multiple
    versions/implementations of the same system.
  • Commonality analysis Commonality analysis
    is a process of identifying common components
    across a set of existing or future
  • purpose is it
    advantageous to develop reusable components and
    in particular which reusable
    components to be used in creation and maintenance
    of systems.
  • commonality analysis is a combination of

  • top-down process

  • and

  • bottom-up process

  • Top-Down Process
  • Studies future systems for the domain its
    objective is to determine the percentages of
    future system components that are common.
  • Potential commonalities in future systems
    can be identified by comparing
  • System requirements and priorities of system
  • System behavior/functions
  • Software architectures
  • Technology (supporting hardware and software)
  • Bottom-Up Process
  • Studies examples of existing systems in the
    domain to identify common components.
  • To identify common components in existing
    systems, compare systems in term of
  • If components have similar names, they are likely
    to be similar.
  • If components use similar input and produce the
    same output, they are likely to be similar.
  • If components have same data structures, they are
    likely to be similar.

Domain Analysis
  • Domain analysis is the process of identifying
    reusable components that have best reuse
    potential .
  • It is a form of system analysis for a class of
    systems .
  • Domain analysis defines and organizes reusable
    components to enable their effective reuse in a
    domain .
  • Domain analysis occurs before the systems
    analysis stage in the life cycle process .
  • Domain analysis provides a means to link
    corporate goals, critical success factors and
    strategic system requirements with opportunities
    to practice reuse in the most optimum manner.
  • Domain analysis is performed to gather model
    information for the better understanding of the
    domain and to develop future systems from
    reusable components .
  • Examples of domain analysis are airline
    reservation or customer inquiry.

The Reuse Techniques
  • Commonality Analysis Commonality analysis is the
    process of identifying common

  • components across a set of existing and /or
    future systems.
  • Domain Analysis Domain analysis is the process
    of capturing and modeling information in the
    domain for the purpose of gaining a better
    understanding of the domain and
  • for developing
    future systems for the domain from highly
    reusable components .
  • Redundancy Checking Set of techniques that
    identify software components that have been
    implemented multiple times in one software
    system or across multiple systems.
  • Reuse Planning Reuse planning is the process of
    creating a reuse implementation plan for a
    reuse program.
  • Reuse Library The development of software reuse
    library is an essential part of practicing

Reuse Engineering
  • Is the activity consisting of cohesive
    collection of all tasks that are primarily
    performed to increase the reuse on endeavors of
    certified reusable work products.
  • Goals
  • Ensure that an optimal supply of high-quality
    reusable work products are available within the
    development organization
  • Ensure that these reusable work products are
    available to all project teams for reuse.
  • Objectives
  • Ensure that the supply of reusable work products
    is optimal in size, scope, and applicability.
  • Ensure the quality of the reusable work products
    is high enough to justify reuse.
  • Ensure that the reusable work products are
    available to all endeavor teams for reuse.
  • Examples
  • Typical examples of reuse engineering include
  • Project-internal reuse engineering
  • Organizational-internal reuse engineering

Stages Of Reuse Engineering
Stages Of Reuse Engineering
  • Reuse-Based Planning
  • Create enterprise models reusing available models
    when possible
  • Develop strategic Plan
  • Identify domains and opportunities for practicing
  • Create the corporate reuse plan
  • Domain Analysis Stage
  • Select domain to analyze
  • Define what kind of components to reuse
  • Identify what currently exists and can be reused
    and package it for reuse
  • Identify what is common and should be created for
    future reuse
  • Define reuse catalogs, classification schemes and
    library architecture
  • Create and populate reuse library
  • Reuse-Based Business Area Analysis
  • Create business area models from existing models
    when available
  • Determine where to practice reuse in the business
  • Create a design plan and reuse plan for each
    system to be developed in the business area

Stages Of Reuse Engineering
  • Reuse-Based Design
  • Create system prototypes from reusable prototype
    skeletons and system
    designs from templates
  • Create system Implementation and test plan from
    reusable plan skeletons and reusable test cases
  • Look for design components that can be reused in
    the future
  • Reuse-Based Construction
  • Support generative reuse with the use of GUI
    generators, code generators, DBMS generators,
    application generators, etc.
  • Final Reuse Review
  • Evaluate the system produced and the project in
    terms of how well they meet reuse goals
  • Identify any new reusable components and products
    that could be developed based on this system
    development effort
  • Produce a System reuse review report capturing
    reuse experiences, lessons learned, advise and
    suggestions for improving the practice of
    software reuse

Reuse Roles
  • Reuse Sponsor
  • Member of management appointed to sponsor
    the reuse program. The reuse sponsor authorizes,
    approves, promotes, and provides funding and
    other resources for the reuse program.
  • Reuse Champion
  • An individual or group, who is respected by
    both management and software professionals, is a
    good communicator and is excited about reuse. The
    reuse champion is responsible for initiating the
    reuse implementation program for an organization
    and promoting the concept and practice of reuse
    on a day-to-day basis.
  • Domain Expert
  • A domain expert is knowledgeable in the
    domain. A knowledgeable end user, software
    developer or software maintainer who has
    experience with systems previously created for
    the domain and also understands the future
    directions and requirements for the domain may
    serve as a domain expert.
  • Reuse Expert
  • The reuse expert is an expert in the
    practice of software reuse and the application of
    reuse techniques such as commonality analysis,
    domain analysis and the creation and management
    of software reuse libraries.

  • 1. Ted J.Biggerstaff,Alan j.Perlis Software
    Reusability, volume 1
  • concepts and models
  • 2. Tracz, Will, Software Reuse Engineering
    Technology Tutorial. IEEE Computer Society Press,
    Washington DC, 1988
  • 3. Dr. Carma McClure MODEL-DRIVEN SOFTWARE
  • Reuse-Re Engineering the software process
    papers on reusablity
  • 4 M.Morisio, M.Egran, C.Tully Success and
    Failure factors in software Reuse
  • IEEE Transaction on software Engineering.
  • 5. Banker, R. D., Kauffman, R. J., Wright, C.
    and Zweig, D., "Automating Output Size and Reuse
    Metrics in a Repository-Based Computer-Aided
    Software Engineering (CASE) Environment," IEEE
    Transactions on Software Engineering, Vol. 20,
    No. 3, (March l994), pp. 169-187