Product Re-engineering
Change is the only constant
Evolving times in technology and market require applications to undergo continuous improvement. Enhancing a product line or migrating to modern software architecture is a very tedious task. A realistic approach can start by analyzing legacy systems to understand the current architecture and developing a strategy for building new and reusing existing application software and hardware assets.
Texnovate Re-engineering solution helps customers to fix issues with previous software development with the help of our re-engineering services.
Our Product Re-engineering services cover:
- Migration of applications to open source technologies
- Cross platforms migration
- Migration of databases, data servers
- Functional Re-engineering of application
Texnovate’s Re-engineering Approach
Texnovate can help you capture and improve best practices and demonstrate how these approaches can be used in the migration to a product line enhancement. 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. Following is the steps involved in one of Texnovate’s approaches for product re-engineering
- Re-engineering Planning
The re-engineering plan addresses issues associated with phasing out the legacy systems, moving to the new system and enhancement of any product lines. These issues include user interface compatibility, database compatibility, transition support, system interface compatibility, and training. Using a re-engineering plan, a development organization can help a user community make the transition in an orderly fashion. The plan weighs programmatic and technical drivers for system development against customer priorities.
- Analysis for Re-engineering
The functionality of the existing product is studied. This includes the study of the existing product artifacts such as code, architecture, documentation manuals. This study gives the understanding of the existing product’s functional and technical capabilities. It 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.
Architecture analysis is also carried out for multiple systems in a similar domain. It determines the potential for moving to a common product line architecture, and identifies commonalities, variability, risks, and sensitivity touch points across the systems.
- Presenting Options
This unifies the re-engineering work at different levels of abstraction: source code, functions, and architecture. It provides a set of options and associated cost, effort and risks. Various technological, cross-platform and software engineering aspects are taken into consideration. This provides insights into implicit stakeholder assumptions, constraints, and other major drivers that impact the reuse of components.
- Benchmarking
The current system is benchmarked with the existing functionality. This is especially important when it’s the technology migration which is in question. All the functional and performance attributes of the present system are also recorded.
- Implementation
After choosing the right solution for implementation, it undergoes the software development life cycle while working closely with the stakeholders. The solution is implemented after choosing the appropriate development life cycle such as the iterative, agile or standard lifecycle. The product is matched to the benchmarking observations and confirmed before releasing it for production.
- Continuous Value added support
Once the product is functional in the live environment, our expertise and engagement continues to support it.
|