Week 2
Week 2
Week-2
Legacy Systems
•Many software systems that are still in use were developed many years
ago using technologies that are now obsolete
•These systems are still business critical that is, they are essential for the
normal functioning of the business
•Old
•Large
•Inherited
•Poorly Documented
•Businesses must weigh up the costs and risks and may choose to extend
the system lifetime using techniques such as re-engineering.
Legacy system structures
•Legacy systems can be considered to be socio-technical systems and not
simply software systems
• Changing one layer introduces new facilities and higher level layers must
then change to make use of these
• Changing the software may slow it down so hardware changes are then
required
Legacy data
•The system may be file-based with incompatible files. The change
required may be to move to a database-management system
•In legacy systems that use a DBMS the database management system
may be obsolete and incompatible with other DBMSs used by the
business
Legacy system design
•Most legacy systems were designed before object-oriented development
was used.
•The strategy chosen should depend on the system quality and its business
value
System quality and business value
Legacy system categories
•Low quality, low business value
These systems should be scrapped
•Low-quality, high-business value
These make an important business contribution but are expensive
to maintain. Should be re-engineered or replaced if a suitable
system is available
•High-quality, low-business value
scrap completely or maintain
•High-quality, high business value
Continue in operation using normal system maintenance
Legacy systems
Business value assessment
•Assessment should take different viewpoints into account
• System end-users
• Business customers
• Line managers
• IT managers
• Senior managers
How well does the business process support the current goals of the
business?
•Environment assessment
•Application assessment
1. Stakeholder Interviews:
•Determine how the legacy system contributes to business processes and operations.
•Assess the risks associated with any potential disruptions or failures of the system
• Identify risks associated with maintaining the legacy system and potential risks
during migration or modernization.
• Develop strategies to mitigate these risks based on the analysis findings.
Techniques to Analyze Legacy Systems
4. Legacy Data Assessment:
•Analyze the data stored within the system's databases to understand data models,
relationships, and data quality.
•Identify data that is no longer relevant or required.
•Document and understand the system's current functionality and how it aligns with
business requirements.
•Identify areas where the functionality might be obsolete, redundant, or no longer
relevant.
7. Security Assessment:
•Perform a security audit to identify vulnerabilities, such as known security issues, such as
weak authentication mechanisms.
Techniques to Analyze Legacy Systems
8. Dependency Mapping:
•Identify the external dependencies, libraries, APIs, and third-party components the system
relies on.
•Conduct a thorough review of the codebase to understand the structure, logic, and coding
practices.
•Use static code analysis tools to identify coding issues, such as code smells, duplication, and
potential weaknesses.
•Identify any outdated programming languages, libraries etc.
Techniques to Analyze Legacy Systems
10. Reverse Engineering:
•Reverse engineer the system's components to generate high-level architectural diagrams and
documentation.
•Use tools to visualize the relationships between different modules, classes, and functions within
the code (Program analysis).
•Gather and review any existing documentation, including requirements, design documents, and
user manuals.
•Identify gaps in documentation that need to be addressed to improve system understanding
Class activity: Understanding a code snippet
and identifying the problem related to legacy
code characteristics