Lec 1
Lec 1
Lecture: 01
Instructor: Dr. Faria Nazir
Email : [email protected]
Your Background
• Name & Fathers Name
• City
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
Forward engineering
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.