Week No. 2
Week No. 2
REENGINEERING
Software Engineering Department
Sir Syed University of Engineering &
Technology
Week No. 2
CONTENTS
• The iterative models share the ideas that a complete set of requirements for a system
cannot be completely understood, or the developers do not know how to build the
full system.
• Therefore, systems are constructed in builds, each of which is a refinement of
requirements of the previous build.
• A build is refined by considering feedback from users.
ITERATIVE MODELS
Key Features:
• Divides the development/maintenance process into smaller, manageable
iterations.
• Each iteration builds on the last, allowing feedback and refinements after every
cycle.
• Helps address evolving user requirements and changing environments over time.
• Example: Agile Methodology: Agile development and maintenance processes rely on
iterative cycles or “sprints,” where functionality is delivered incrementally, ensuring
ongoing adaptability.
CHANGE MINI-CYCLE MODELS
• "Change mini-cycle models" refers to a set of structured and incremental steps used
to guide the process of making changes or improvements to a software system.
• These models are designed to break down the reengineering process into
manageable phases making it more structured and less disorderly.
• Change mini-cycle models are often employed to modernize, update, or enhance
existing software systems. They typically consist of the following steps: Identification
of Problem Areas , Analysis, Design , Implementation, Testing, Deployment ,
Monitoring and Feedback, Iteration.
CHANGE MINI-CYCLE MODELS
Key Features:
• Cycles are short and targeted, each dealing with a single change or a small set of
changes.
• Maintains focus on incremental updates and rapid release cycles.
• Designed to minimize disruption while addressing small-scale maintenance tasks.
Continuous Integration/Continuous Deployment (CI/CD) Pipeline:
• Overview: In modern development environments, CI/CD models allow for frequent,
small-scale changes to be integrated and deployed automatically. Each integration
follows a mini-cycle of testing and deployment, enabling rapid updates and fixes.
CHANGE MINI-CYCLE MODELS
Key Features:
• Frequent Changes: Developers integrate small changes into the codebase multiple times a
day.
• Automated Testing: Each change is tested automatically to ensure it doesn’t break the
system.
• Continuous Deployment: Once a change passes the automated tests, it is deployed to
production without manual intervention.
Example: A CI/CD system for a web application where small updates (like feature
tweaks or bug fixes) are pushed live multiple times per day.
STAGED MODEL OF MAINTENANCE AND
EVOLUTION
• The model is descriptive in nature, and its primary objective is to improve the
understanding of how long-lived software evolves.
• The model considers four distinct, sequential stages of the lifetime of a system:
• Initial Development
• Evolution
• Servicing
• Phase-out
STAGED MODEL OF MAINTENANCE AND
EVOLUTION
• Initial Development: When the initial version of the system is produced,
detailed knowledge about the system is fresh. Before delivery of the system, it
undergoes many changes.
• Evolution: After the initial stability, it is easy to perform simple changes to
the system. Significant changes involve higher cost and higher risk. In the period
immediately following the initial delivery, knowledge about the system is still
almost fresh in the minds of the developers.
STAGED MODEL OF MAINTENANCE AND
EVOLUTION
• Servicing: When the knowledge about the system has significantly
decreased, the developers mainly focus on maintenance tasks, such as fixing
bugs, whereas architectural changes are rarely effected.
• Phase-out: Moving from an existing, difficult-to-maintain system to a
modern solution system has its own challenges involving wrapping and data
migration. After the new system keeps running satisfactorily, sometimes in
parallel with the old system, the old system is finally completely shut down.
STAGED MODEL OF MAINTENANCE AND
EVOLUTION
• Key Features:
• Divides the process into stages: Initial Development, Evolution, Servicing & Phase-out.
• Emphasizes that maintenance and evolution are ongoing activities that occur over time.
• Allows for gradual evolution while maintaining the system's integrity and addressing
immediate needs.
• Chikofsky and Cross II defines reengineering as: “the examination and alteration of a
subject system to reconstitute it in a new form and the subsequent implementation of
the new form.”
REENGINEERING
• When system changes are mostly confined to part of the system then re-engineer that
part.
• When hardware or software support becomes obsolete.
• When tools to support re-structuring are available.
• The term “Re-engineering” is often associated with Business Process Re-engineering
(BPR), a specific approach to reengineering business processes within an
organization, but the concept can be applied to various domains and contexts.
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.
• Preserves Existing Functionality; Maintains Business Continuity
• Unlike redeveloping a new system from scratch, re-engineering retains the
existing business logic, minimizing disruption to ongoing operations.
BUSINESS PROCESS RE-ENGINEERING (BPR)
• Business Process Re-engineering (BPR) is a fundamental redesign of business
processes to achieve dramatic improvements in critical aspects such as cost, quality,
service, and speed.
• It's a structured approach to reinvent how work is done within an organization, with
the goal of optimizing processes to meet current business needs and adapt to
changing conditions.
• Goals: The primary goal of BPR is to improve overall business performance by
streamlining processes, eliminating redundancies, reducing costs, and enhancing
customer satisfaction.
STEPS IN BPR