The Challenge of Enhancing Software through Reengineering
Reengineering of software can involve modifications that come in all shapes and sizes, from minor interface renovations to complete architectural overhauls. We've helped our clients overcome a variety of these challenges. The following is a list of common scenarios that require software reengineering:
Oceannet Software's Method
At Oceannet Software, all we need to reengineer a complex software solution is your application and our experts' proven methodology. Even with little-to-no documentation, our engineers will build a solution you can use – not one you're stuck with.
We extract information from the current solution using detailed, multi-level source code analysis to form an understanding of its structure and logic. We then use this information to rebuild the application with a solid, maintainable foundation.
We approach each project using these steps:
Documentation Analysis
When documentation is available, we thoroughly review it to ensure that we are well-versed in the architecture of the existing solution before we begin. As part of this process, we determine the accuracy of the documentation to avoid complications caused by faulty documentation.
Architectural Analysis
We evaluate the solution's architecture to detect weaknesses and devise ways to eliminate those weaknesses and to strengthen the foundation of the solution.
Mass Code Conversion
Every reengineering project is different, so we apply the code conversion method that works best for your solution. Some projects require manual conversion, but for some common situations, such as converting VB6 to .NET, we use an automated conversion developed here at Oceannet Software. We can also automate custom conversions, as we did for one client who required code conversion from Access to SQL.
Modern software implementations are fundamentally different from older ones, so we pay special attention to the business logic, presentation and data access layers to ensure that your solution maintains its functional integrity.
Security Analysis
We will analyze your security requirements, determine how the security of the current solution fits those requirements and present improvements.
Performance Tuning
When the solution has been built, we will conduct rigorous performance testing of each of the solution's parts. We'll also analyze the existing source code to detect and eliminate potential bottlenecks.
With our in-depth knowledge of the .Net framework, we can perform fine-tuning of critical application components.
For multi-layered applications, we can test the performance of the separate layers. For the data layer we use SQL profiling and execution plan analysis. For business layer, we will use a profiling tool of choice.
Error Handling
As part of our detailed testing plans, we check the solution for errors and find the causes of the errors so they can be eliminated. We optimize the solution to recover from errors more efficiently.