0% found this document useful (0 votes)
18 views22 pages

Lec 1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views22 pages

Lec 1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

Software Re-Engineering

Lecture: 01
Instructor: Dr. Faria Nazir

Email : [email protected]
Your Background
• Name & Fathers Name

• City

• Last attended college with obtained marks


Optional: Any thing else
CODE OF ETHICS
• All students must come to class on time
(Attendance will be taken in first 5 to 10 mins)
• Students should remain attentive during class and
avoid use of Mobile phone, Laptops or any gadgets
• Respect faculty and staff through actions and
speech
• Class participation is encouraged
Evaluation Criteria
• Quizzes 20%
• Assignments 10%
• Mid Exam 25%
• Class Participation 5%
• Final Exam 40%

5
Course Introduction
• Course Objectives:
• This course helps students to understand and practice different
software reengineering techniques. The participants of this course
will learn how to apply reengineering techniques to maintain and
modify software systems.
• Prerequisites:
• Software Construction and Development (SE-3512)
• Mode
• Mix of lectures, demonstrations, discussions, exams
Text Book
• Primary
• Re-Engineering legacy software, David Lorge Parnas, Chris
Birchall, Safari Books, Shelter Island, NY, 2016.
• S. Demeyer, S. Ducasse, and O. Nierstrasz. Object-Oriented
Reengineering Patterns. Morgan Kaufmann, 2002.

• Reference
• Application Software Reengineering, Afshar alam, Tendai
Patenga, Dorling Kindersley Pvt. Ltd, Pearson Education in
South Asia, 2010.
• Software Maintenance and Evolution: a Roadmap,
K.H.Bennett and V.T Rajlich, The Future of Software
Engineering, ACM Press 2000.
Sequence [Todays Agenda]
Content of Lecture
•Introduction, Context and Strategies
•State-of-the-art definitions
•Why Reengineering
•Reengineering Advantages
•Reengineering difficulties and challenges
Traditional SDLC
Context: Software Life Cycle
Reengineering – Definitions -
1
Several definitions of reengineering:
•Reorganising and modifying existing software systems to
make them more maintainable

•"the examination of a subject system to reconstitute it in


a new form and the subsequent implementation of the
new form.
Reengineering – Definitions -
2
• Reengineering is the systematic transformation of an existing
system into a new form to realize quality improvements in
operation, system capability, functionality, performance, or
evolvability at a lower cost, schedule, or risk to the customer.
S. Tilley and D. Smith, Perspectives on Legacy System Reengineering, SEI White
Paper, 1995
Forward Engineering and Re-
Engineering
System Design and Ne w
specification implementation system

Forward engineering

Existing Understanding and Re-engineered


software system transformation system

Software re-engineering

13
When to Re-Engineer
• When system changes are mostly confined to part of the
system then re-engineer that part
• When hardware or software support becomes obsolete
• When new ways of accessing are needed, but its functionality
remains.
• When tool support is available.

14
Why Reengineer?
Why does an organization decide to reengineer one or more of
their systems:
•Software system is an integral part of the organization.
•System must be regularly maintained and maintenance is
becoming a large cost factor.
•Less risk and cost than redevelopment.
Re-Engineering Advantages
• Reduced risk
• There is a high risk in new software development. There may be
development problems, staffing problems and specification
problems
• Reduced cost
• The cost of re-engineering is often significantly less than the costs
of developing new software

16
Reengineering – Related Topics
-1
Restructuring:
•Restructuring is the transformation from one representation
form to another at the same relative abstraction level, while
preserving the subject system’s external behavior

Refactoring:
•Refactoring is the process of changing a software system in
such a way that it does not alter the external behavior of the
code yet improves its internal structure.
Reengineering – Related Topics
-2
Business Process Reengineering (BPR):
•concerned with the conversion of business process and not of
computer processes

Data Reengineering:
•concerned with conversion of data format and not its content
Unstructured Code
• START:
• GOTO MAMMALS
• DOG:
• WALK THE DOG
• GOTO CAT
• MAMMALS:
• GOTO DOG
• FISH:
• FEED THE FISH
• COVER THE BIRD
• GOTO FROG
• CAT:
• PUT OUT THE CAT
• GOTO FISH-AND-FOWL
• FISH-AND-FOWL:
• GOTO FISH
• FROG: 19
• SING TO THE FROG
• EXIT.
Structured Code
START:
CALL FUNCTION DOG
CALL FUNCTION CAT
CALL FUNCTION FISH
CALL FUNCTION BIRD
CALL FUNCTION FROG
EXIT.
DOG:
WALK THE DOG
RETURN
CAT:
PUT OUT THE CAT
RETURN
FISH:
FEED THE FISH
RETURN
BIRD:
COVER BIRD CAGE
RETURN
FROG:
SING TO THE FROG
RETURN
20
Reengineering difficulties
and challenges
•Short life expectancy – not anticipated to last decades when
first developed.

•Failure of process models and software engineering culture to


treat evolution as a first class activity – future requirements
ignored.
22

You might also like