Sunteți pe pagina 1din 29

Seminar Topic

Software Reuse, Reengineering,


Reverse Engineering

Presented By
Shrikant Jadhav

Guided By
Prof. Kaur J

Important Points
Reuse

Process
Software Reusable Components
Reuse Methodology
Software Metrics
Business Process Reengineering
Restructuring
Forward Engineering

Software Reuse
Reuse

saves time and effort.


Achieving high level of reuse is hardest
goal to accomplish in developing
software system
Planning ahead for reuse reduces the
cost and increases the value

Software Reengineering
Rebuilding

of product with added


functionality, better performance and
reliability and improved maintability
It is performed by software engineer
It is important to keep pace with rapidly
changing technology

Reverse Engineering
It

has its origin in hardware world


The reverse engineering for software is
the process of analyzing a program
Reverse engineering extract data,
architectural and procedural design
information from an existing program

Reuse Process
Reuse

process is aimed to significantly


increment the quality and productivity
It is the process of building or assembling
s/w appl. and system from previously
developed s/w parts designed for reuse
Reuse process is aimed to use different
products of life cycle to develop new s/w
products

Reuse Process [continued]


Writing

reusable s/w requires additional


development effort
Reuse problems
Machine architecture
Operating system
Runtime system
Library problem

Software Reusable Components


The

s/w components should be


designed and implemented so that it
can be reused in different programs
Reusable components can be
described by 3C model i.e. Concept,
Content and Context

Software Reusable Components


[continued]
Concept

description of what
component does
Content describes how the concept is
realized
Context places a reusable s/w
component within its domain of
applicability

Software Metrics
Metrics

are used to point areas so that


remedies can be developed and software
process can be improved
The s/w metrics encompasses product
,process and project metrics
Product metrics help s/w engineers gain
insight into the design and construction of
s/w they build

Software Metrics [continued.]


The

s/w process and project metrics are


quantitative measure that enable s/w
engineer to gain insight into the efficacy of
s/w process and project
Product metrics are analyzed and accessed
by s/w engineer and process and project
metrics are analyzed and accessed by s/w
manager

Product Metrics
Metrics

for analysis model

Functionality

delivered

System

size
Specification quality
Metrics

for design model

Architectural

metric
Component level metric
Interface design metrics
Specialized OO design metrics

Product Metrics [continued]


Metrics

for source code

Halstead

metrics
Complexity metrics
Length metrics
Metrics

for testing

Statement

and branch coverage metrics


Defect related metrics
Testing effectiveness
In process metrics

Process and Project Metrics


Project

metrics enables s/w project manager to


Assess status of ongoing project
Track potential risk
Uncover problem areas before they go
critical
Adjust work flow or tasks
Evaluate project teams ability to control
quality of s/w work product

Metrics for s/w quality


Correctness

program must operate

correctly
Maintainability s/w maintenance accounts
for more effort than any other s/w engg.
activity
Integrity measures ability to withstand
attacks to its security
Usability is an attempt to quantify ease-ofuse

Business Process Reengineering


Goal

is to define architecture that will


enable a business to use information
effectively
Three different architecture
Data architecture
Application architecture
Technology infrastructure

Business Process Reengineering


Data

architecture data objects are individual


building blocks of architecture
Application architecture encompasses those
elements of system that transform object
within the data architecture for some business
purpose
Technology infrastructure provide foundation
for data and application architecture

BPR [continued..]
Business

process is a set of logically related


tasks performed to achieve a defined
business outcome
Example designing a new product,
purchasing services, hiring a new employee
Business system is composed of one or
more business process

BPR Model

BPR Model [continued..]


Business

definition business goals are


identified within context
Process identification critical process are
identified
Process evaluation existing process is
analyzed and measured
Process specification and design use cases
are prepared for each process that is to be
redesigned

BPR Model [continued.]


Prototyping

process is prototyped before it


is fully integrated

Refinement

and instantiation business


process is refined

Restructuring
Objective

of restructuring is to transform
older unstructured computer s/w into modern
programming language

The

s/w restructuring modifies source code


and data in an effort to make it amenable to
future changes

Restructuring [continued.]

Two types of restructuring


Code

Restructuring
Data Restructuring

Code restructuring is performed to yield a design that


produces the same function as original program but
with higher quality
Before data restructuring a reverse engineering
activity called analysis of source code must be
conducted

Forward Engineering
Forward

engineering recovers design


information from existing s/w and uses this
information to alter or reconstitute the existing
system
Improves overall quality and performance of
the system
Create a modern equivalent of an older
program and new user and technology
requirement are integrated

FE for client/server architecture


Important

features added functionality, new


GUI interfaces, new communication, security,
control requirements
There are three layers
Database

layer
Business rules layer
Client application layer

FE for client/server architecture


[continued.]
Database

layer manages transaction and


queries from client application
Business rule layer represent s/w that
resides at both client and server
Client application layer implements
business function that are required by
specific groups of end user

FE for OO architecture
Existing

s/w is reverse engineered to create


data, functional and behavioral model
Use-cases are created
Data models are used to establish definition
of classes
Class hierarchy, object-relationship models,
object-behavior models, and subsystem are
defined and OO design commences

FE User Interfaces
Understand

the original interface and the


data that move between it and the remainder
of application
Introduce improvements that make the mode
of interaction more efficient
Built and integrate new GUI

Thank you

S-ar putea să vă placă și