0% found this document useful (0 votes)
4 views2 pages

Lec 37

The lecture on Software Re-Engineering focuses on re-architecting legacy software to capture valuable business logic while transitioning to modern technologies, particularly cloud-based solutions. It addresses the problems of monolithic architecture, lack of scalability, and high ownership costs, advocating for a shift to microservices for improved performance and flexibility. The benefits of re-architecting include enhanced scalability, reduced costs, and better monitoring and security in cloud environments.

Uploaded by

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

Lec 37

The lecture on Software Re-Engineering focuses on re-architecting legacy software to capture valuable business logic while transitioning to modern technologies, particularly cloud-based solutions. It addresses the problems of monolithic architecture, lack of scalability, and high ownership costs, advocating for a shift to microservices for improved performance and flexibility. The benefits of re-architecting include enhanced scalability, reduced costs, and better monitoring and security in cloud environments.

Uploaded by

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

Course Code: CSS 4601

Course Title: Software Re-Engineering


Instructor Name: Dr. Salahuddin Shaikh
Department of Computer Science & Software Engineering
Lecture: 37
Software Re-Engineering
Week 12 : Re-architecting Legacy

Today Lecture

Re-architecting
Legacy Software Re-architecting
What Problems Software Re-architecting Solves
Reasons to Re-Architect Applications for Cloud

Software Re-Engineering

Reference Books
Software Re-Engineering

Re-architecting is based on the knowledge that invaluable business logic and data
relevant to the organization lies within the application code and surrounding
artifacts (example, DDLs, copybooks, user training manuals) and that these assets
should be imposed in the new system.

Rearchitecting is not about rebuilding from scratch.

So, rearchitecting focuses on capturing the value of the business process that is
independent of the legacy code base, and moving it into a different paradigm while
eliminating the technology-specific code.
Rearchitecting

Re-architecting is refactoring at a higher level than that of methods and classes.


You can think of it as refactoring in the large.

For example, when refactoring, you might move some classes into a separate package,
whereas re-architecting might involve moving them out of the main codebase and into
a separate library.
Rearchitecting

Legacy application re-architecting refers to redesigning the existing architecture


with new advanced computing concepts.

Using declarative models and parts of the original code, engineers can preserve a
good deal of the business logic and avoid building a new application from scratch.

In other words, you can migrate code-independent business processes to a new system
while utilizing modern technologies.

Re-architecting strives to improve performance, stability, and other non-functional


aspects of the app. The process is lengthy and expensive; however, it can bring
many benefits if done correctly.
Legacy Software Re-architecting

Elevated costs
Businesses that operate with legacy software often suffer from increased costs
caused by the inflexibility of the traditional IT infrastructure.
A modern IT ecosystem allows for the scale-out elasticity that hardware-based
infrastructure fails to provide. For example, cloud storage can save you a
significant portion of the budget, which explains the ever-growing popularity of
cloud platforms like Azure and AWS that offer serverless architecture.
Serverless architecture gives access to the pay-per-use pricing model that
eliminates overspending on unused or duplicated services. At the same time, this
structure ensures auto-scaling and relieves developers of the duty to constantly
monitor the system, thus allowing them to concentrate on improving the system.
What Problems Software Re-architecting Solves

(Serverless architecture is an approach to software design that allows developers


to build and run services without having to manage the underlying infrastructure.)
Failures of monolithic architecture
Legacy software solutions are often monolithic apps created as a large system with
a single code base and are known for brutally failing after experiencing a minor
issue.

Unlike the microservice approach that provides fault tolerance with decoupled
services, monolithic architecture is prone to jeopardizing the entire application.
The microservice architecture ensures that other services continue functioning when
one service fails, which prevents the app from a complete shutdown.
What Problems Software Re-architecting Solves

Lack of scalability
Legacy systems are notorious for the lack of scalability that resurfaces when the
company grows bigger. Small companies might not take this feature seriously at
first, but once they expand and get closer to the sizes of Facebook or Amazon, the
need for becoming scalable becomes apparent.
What Problems Software Re-architecting Solves

Reduce Costs of Ownership. Large applications often cost too much when running on
legacy hardware-based infrastructure, especially, when the requirement to scale-out
elasticity can be more easily provided by the cloud.
Drive Agility. Traditional IT includes configuring servers, databases, and
networking, all while ensuring end-to-end security. Developers typically have to
wait for environments to be provisioned.
Achieve Application flexibility. Monolithic applications are notorious when dealing
with failures and issues – typically, any issue in any part of the application sets
off a domino effect that takes down the entire app. Instead, fault tolerance can be
built into each microservice.

Reasons to Re-Architect Applications for Cloud

Enable Scalability. Unable to scale on-premise instances fast enough, large


technology companies like Google, Microsoft, Facebook and Amazon began migrating to
the cloud over a decade ago and have since achieved true “web-scale” including
elasticity and enormous horizontal resource scaling
Do Not Compromise on Monitoring and Security. Monitoring and security are
fundamentally different with cloud-native applications. Though monitoring and
security are more complex and challenging for cloud-native applications, when done
right they provide a level of visibility and confidence that is unheard of with
traditional monolithic applications running on-premise.
Reasons to Re-Architect Applications for Cloud

You might also like