|
Home >
Software development services >
Software re-engineering
|
Software Re-Engineering
|
| Software re-engineering means "Reorganising and modifying existing software systems to
make them more maintainable". In developing a product line or migrating to modern software
architecture, it is often unrealistic to start with a "green field" development effort.
A realistic approach can start by analyzing legacy systems to understand the current
architecture and developing a strategy for mining and reusing existing assets. Mining
involves rehabilitating parts of an old system for use in a new system. |
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 tools to support re-structuring are available.
Software Re-engineering Advantage |
| Reduced risk - There is a high risk in new
software development
in terms of development problems, staffing problems and specification problems but in software
re-engineering, you are re-engineering the old product so the risk is very low. Read more about
FlexOrbits Risk Management |
| Reduced cost - The cost of software re-engineering is often significantly less than
the costs of developing new
software for
enterprise. |
| Increase efficiency - In software re-engineering,
re-designing business process
to make them more responsive and more efficient. |
Mining software assets is crucial because of the large number of legacy systems in production
as well as budgetary cutbacks. We capture and improve
best practices
and demonstrate how these approaches can be used in the
migration to a product line practice.
Our work focuses on the technical aspects of mining software assets, an integrated approach to
migration planning, and conceptual understanding of basic re-engineering principles.
The technical approaches focus on two aspects of mining assets for a product line:
- Mining components for a product line through Options Analysis for Re-engineering (OAR).
- Mining existing systems at an architectural level through Mining Architectures for Product
line (MAP) evaluation.
Options Analysis for Re-engineering identifies potential reusable components and analyzes the
changes that would be needed to rehabilitate them for reuse within a
software product line or new software architecture.
OAR provides a set of mining options and the cost, effort and risks
associated with the options. It provides insights into implicit stakeholder assumptions, constraints,
and other major drivers that impact the mining of components. OAR has also been customized for
working within an acquisition context. |
| Mining Architectures for Product line performs architecture analyses of multiple systems in
a similar domain. It determines the potential for moving to common
product line architecture, and
identifies commonalities, variabilities, risks, and sensitivity points across the systems.
MAP relies on architecture reconstruction techniques to gain an understanding of the architectures
of the current systems. It then evaluates the potential of the existing architectures to form
the basis for software product line architecture. |
| Migration
Planning
is required when an organization faces the challenge of migrating from legacy systems to new target
systems. The migration plan addresses issues associated with phasing out the legacy systems and
moving to the new system. These issues include user interface compatibility, database compatibility,
transition support, system interface compatibility, and training. Using a migration plan,
a development organization can help a user community make the transition in an orderly fashion. |
| We have contributed to conceptual issues in software re-engineering, through a "horseshoe" model
in which re-engineering and architectural views of software analysis and evolution are combined.
This view represents an approach that unifies the software re-engineering work at different levels
of abstraction: source code, functions, and architecture. The horseshoe is not a replacement for
other software re-engineering or architectural analysis techniques, but rather a description of how
they are complementary in the process of controlled software evolution. |
- The OAR Method
- MAP
- Migration Planning
- The Horseshoe Model
- Re-engineering Publications
Require more information about how your business Software Re-engineering would be? Fill the
Free Project
Evaluation Form
to reach us. |