Subscribe by Email


Showing posts with label Re-engineering. Show all posts
Showing posts with label Re-engineering. Show all posts

Monday, June 18, 2012

How is data understood through reverse engineering?


Reverse engineering forms an internal part of the whole software re- engineering process. To implement the reverse engineering properly in the re- engineering process one needs to understand the data through the reverse engineering.
In this article we have taken up the same topic i.e., “how is data understood through reverse engineering?” 
- When the reverse engineering is carried out, the main objective is always to recover the designs and specifications of the software system or application.
- With reverse engineering, the development is only understood and no changes are made to the software system or application. 
- For the reverse engineering process, the source of the software system or application is fed as the input. 
- If you go through the history of the reverse engineering, you will find some cases where the executable code is given as input for the reverse engineering process. 
- The reverse engineering though being in a great contrast with the re- engineering forms an internal part of it. 
- Reverse engineering serves the purpose of recovering system design and specifications in the software re- engineering process model. 
- These recovered designs and specifications are used by the engineers to understand the software system or application before they start re- organizing the whole structure.
- However, there have been cases in which the reverse engineering is not always followed by the re- engineering process. 
- There are three stages in reverse engineering process.
 1. System to be re- engineered is subjected to automated analysis.
 2. Then it is manually annotated.
 3. With the system information obtained, a whole set of new documentation is generated containing:
(a)  Program structure diagrams
(b)  Data structure diagrams and
(c)   Traceability matrices.

Activities in Reverse engineering


In reverse engineering the data is understood by the 3 basic activities that involved intense understanding efforts:
1. Understanding process: In order to understand the procedural abstractions as well as functionality analyze the source code on the level:
(a)  System
(b)  Program
(c)   Component
(d)  Statement and
(e)  Pattern

2. Understanding data: It analyzes the internal data structures and data base structure.
3. User interfaces: It analyzes the basic actions processed by the interface, system’s behavioral response to those actions and equivalency of the interfaces.

More about reverse engineering....
- The beginning of the reverse engineering process is marked with an analysis phase in which the analyzation is carried out with the help of automated tools in order to discover the structure of the software system or application. 
- But this stage itself does not suffice the purpose of recovering the whole structure. 
- Engineers then have to work on the program code and model and add the recovered information to this.
- The recovered information is maintained in form of a directed graph. 
- The engineers always make it a point to link the directed graph to the source code. 
- The directed graphs are compared with the code with the help of the information browser stores. 
- This graph helps in generating trace ability matrices and the data structures. 
- Tools that are used make it easy to navigate through the code. 
- After the complete generation of the design documentation, the information store is supplied with the additional information as a measure to re create the specifications systems. 


What is meant by Software Reengineering Process Model?


Software re- engineering process model is based up on the principles of the software re- engineering that was proposed by Chifosky in the year of 1990.  Before we discuss about the software re- engineering process model let us see what software re- engineering is.

What is Software Re-engineering?


- The software re- engineering is considered to be a process that alters a software system and thus reconstituting it in to a new form that is better than its previous form.
- The process of the re- engineering usually occurs after the software system or application has been reverse engineered. 
- The re- engineering is also carried out for the addition of the new functionalities or to correct the discovered faults and errors. 
- Sometimes this whole process is often collectively called as reverse engineering. 
But there is a subtle difference between the two! 
- The former process i.e., the reverse engineering is like an initial examination of the software system and the latter is like the subsequent modification. 
- Re- engineering of the software systems often comes in to play where there is an involvement of a legacy system. 
- In such cases the re- engineering can be considered to be a process that re- structures a legacy system in to a new system that is constituted of much better features and functionality and maintain the quality constraint.

Re- engineering is not a thing that can be achieved in an instant rather it takes a lot of time since there is a utilization of many information technological resources over the years. Therefore every organization requires a well defined strategy for carrying out the software re-engineering. 

Steps in Software re-engineering process model


The software engineering process model consists of the following steps:
1.Inventory analysis: Analysis of all the active applications listed in the inventory of an organization.
2.Document reconstruction: The software systems that are business critical are re- documented.
3. Reverse engineering
4. Code restructuring: It involves the analyzation of the source code and reviewed again.
5. Data restructuring: It begins with reverse engineering and ends with the review of all the data structures.

Scenario behind software re-engineering process
- Software re- engineering process serves the purpose of bringing up the poorly documented and poorly structured code to a standard that is maintainable and acceptable. 
- Let us see the scenario behind the need of re- engineering. 
- In a code that is poorly controlled and maintained, lies either a large number of files spread over a number of locations or consists of only a single file consisting of a very lengthy code.
- Observing these files, one could notice that the comments do not appear to have any relationship with the code itself and the associated documentation has become outdated or refers to the previous versions of that software system or application that has underwent many modifications since then which were left undocumented. 
- To say, an executable file does exists but many decisions have to be taken to run it. 
- At this point the identification of the actual objectives of the software re- engineering process becomes important. 
- There might be so many problems underlying those decisions that now can be easily addressed. 
- It is very important that before beginning with the re- engineering of the whole code that you check its correctness otherwise you will suffer a major set back if you would have been re- engineering the wrong code all the time. 
- At the end of the process the final code needs to be base-lined with the associated project log and the documentation.
- The re- engineered software system or application is brought to a well defined stage at which it can be considered to be ready for the release and also its future maintenance will be less arduous.


Sunday, June 17, 2012

Data Restructuring - An activity involved in software re-engineering process model

Software re- engineering process model constitutes of the below mentioned 6 major  steps:
  1. Inventory analysis
  2. Documentation reconstruction
  3. Reverse engineering
  4. Code re- structuring
  5. Data re- structuring
  6. Forward engineering
In this article we have discussed about the 5th stage of the software re- engineering process model i.e., the data re- structuring. 
Without a working code or an active flow of data a software system or application cannot be considered to be working. Therefore for the software systems and applications which have become outdated should be again brought up to the current acceptable software standards and data re- structuring is the one of the processes that can help in this regard. 


- This step of software re- engineering process model takes into consideration the restructuring of the data without making changes to the functionality of the software system or application. 
- With the re- structuring of data, the maintenance of the whole software system or application becomes so very easy. 
- The need to re- structure data arises when the data bases become too obsolete to be handled directly. 
- When the changes made to the data are confined only to the sub system, the data of the sub system needs to be re- structured. 
- The data re- structuring becomes even easier when the data re- structuring tools are easily available. 
- This step is carried out after the completion of the code re- structuring. 
- Unlike the previous re- structuring step, this step calls for a full cycle of reverse engineering. 
- The current structure of the data is dissected while defining the data models and the existing data models are run through a quality check or review test.
- So many of the legacy systems tend to make use of the global data structures and shared tables in order to save the memory space.
- Such shared data structures need to be converted in to objects like ADTs for restructuring. 



Benefits of Data Re-structuring


- One of the benefits of restructuring the data is that it certainly improves the quality of the software program or application. 
- Furthermore, it becomes easier to test and debug the software system or application along with a reduction in the efforts in the maintenance of the software and also the frustration of the developer is reduced. 
- As a bonus point, the productivity is also improved. 



Steps in Data Re-structuring


The re- structuring of the data involves the following steps:
  1. Analysis of the source code of the application.
  2. Redesigning of the data
  3. Standardization of the data record.
  4. Rationalization of the data name.
  5. Translation of the file or data base.

Drawbacks of Data Restructuring


In spite of having so much plus points, the re- structuring does have some minus points which have been listed below:
  1. Re- structuring does not improve the understandability of the data driven programs.
  2. Re- structuring demands for heavy computations.
  3. Re- structuring can lead to a loss of source code comments.
  4. Restructuring does not helps with the problems with poor modularization i.e., the programs in which the components are wide spread through out the program.
  5. Restructuring can lead to the loss of documentation.
From the discussion above, we can say the restructuring of data is a process that re –structures the source data in to the target data during the transformation process. 
Data re- structuring forms an integral part of the software re- engineering process model and therefore the above mentioned disadvantages of the data re- structuring are ignored. It is necessary that the data re- structuring is carried out after the code re- structuring since during the execution of the program, the code only handles the flow of the data. Therefore if the code itself has not been re- structured before re- structuring the data then the whole process does not makes any sense. 


Saturday, June 16, 2012

Reverse Engineering - an activity involved in software re-engineering process model.


Software re-engineering process model is a very generic process meant to uplift the standard of the poor code that is currently not acceptable. This model is known to have 6 major stages namely:
  1. Inventory analysis
  2. Documentation reconstruction
  3. Reverse engineering
  4. Code re- structuring
  5. Data re- structuring
  6. Forward Engineering
This article is all about the third stage i.e., “reverse engineering” which is an important concept in itself. 
Re- engineering is usually required when the some of the sub systems of a larger software system or application need to frequently maintained. The re- engineered system is then restructured and re- documented. 

What is Reverse Engineering?


- The reverse engineering forms a very important factor in success of the re- engineering process. 
- The reverse engineering can be considered to be a process of recovering the design of the software system or application that is to be re- engineered. 
- This step involves analyzation of the software program in an effort to obtain an abstract level representation of the program that is higher than the level of the source code.  
- The software system or application is analyzed in such a way so as to understand its design and specifications and requirements. 
- Reverse engineering is an entirely individual process.
- In some cases the reverse re- engineering may be used  for specifying a software system before it is implemented again. 
- The reverse engineering process makes use of the program understanding tools like:
  1. Browsers
  2. Cross reference generators and so on.

Levels in Reverse Engineering


The reverse engineering process takes effect through the following levels:

1. Abstraction level: The design information of the software system or application is derived at the highest level possible.

2. Completeness: At the above abstraction level, the details of the system are obtained.

3. Interactivity: The degree of the human integration with 5the automated reverse engineering tools is measured.

4. Directionality: It can be either:
(a)  One way: All the extracted information is given to the sogftware engineering who is doing the maintenance.
(b)  Or two way: All the extracted information is fed to a re- engineering tool which then regenerates the old software program.

      5. Extract abstraction: From the old source the processing specifications are obtained.

     

Stages in Reverse Engineering Process


      Reverse engineering process from sommerville goes through the following stages:
      1. System to be re- engineered is subjected to automated analysis.
      2. Then it is manually annotated.
      3. With the system information obtained, a whole set of new documentation is generated containing:
       (a)  Program structure diagrams 
       (b)  Data structure diagrams and 
       (c)   Trace ability matrices.

     

Activities in Reverse Engineering Process


     There are 3 basic activities involved with the reverse engineering process:
   
    1. Understanding process: In order to understand the procedural abstractions as well as functionality analyze the source code on the level:
      (a)  System
      (b)  Program 
      (c)   Component 
      (d)  Statement and 
      (e)  Pattern
    
       2. Understanding data:  It analyzes internal data structures and data base structure.  
   3. User interfaces: It analyzes the basic actions processed by the interface, system’s behavioral response to those actions and equivalency of the interfaces.

When is Reverse Engineering Preferred?


- Reverse engineering is usually preferred when the specifications and designs of the system are required to carry out the program maintenance activities.
- The re- engineering process is preceded by the reverse engineering. 
- To put it simply, the reverse engineering can be thought of as a process that goes back through the whole development cycle.
- UML is a source that supports reverse engineering. 
- Different people have their own different perceptions of the reversion engineering. 
- It can also be thought of as an inversion of the water fall model of software development. 


Friday, June 15, 2012

Document Restructuring - an activity involved in software re-engineering process model.


Software re- engineering process model is a generic one and consists of 6 major steps:
  1. Inventory analysis
  2. Documentation reconstruction
  3. Reverse engineering
  4. Code re- structuring
  5. Data re- structuring
  6. Forward Engineering
This article is dedicated to the discussion regarding the second step of the software re- engineering process model i.e., the documentation reconstruction. 

Why Documentation Reconstruction is important?


It has been observed from the inventory analysis of many organizations that most of the documentation attached with the software systems or applications is either outdated or does not pertain to the documentation standards or refers to the earlier versions of the particular software system or application. 

In such cases, reconstructing the entire software documentation becomes very necessary. The need for re- engineering is felt in three typical situations:

1. When the changes made to a system are confined only to the sub system, there is a need to re- engineering the sub system.
2. When the software as well as the hardware support becomes obsolete.
3. When the tools required for supporting the re- structuring are available.

When it comes to restructuring the documentation the below mentioned options are available to the developers:
  1. Keep the weak documentation itself.
  2. Update those parts of the documentation that are needed.
  3. Rewrite the whole documentation on the “essential minimum requirements” for the critical systems.
- Any existing documentation of the software under re- engineering process is gathered and copies of any required third party software are obtained. 
- All the associated data files and the source code files that are required for the execution of the software system or application are documented and this documentation forms the baseline for the existing version of the software system or application. 

Why Documentation is necessary?


- Documentation forms a very important part of the entire re- engineering process since like other resources it is also a primary resource of information regarding the software system or application. 
- Documentation serves as a potential support for the future maintenance of the software system or application. 
- Documentation should be self sufficient enough to the extent that any developer having knowledge of that programming language must be able to speed up the work with the code in a short period of time using the documentation. 
What is to be contained in the documentation depends pretty much up on the type of the software system or application that is being re- engineered and also on the contents of the previously existing documentation. 
- However, the documentation must contain description of the changes that were introduced during the process of re- engineering. 
- The documentation must also highlight the details of the configuration plan and baselines of the software system or application that were created for the re- engineering process. 
- Other aspects to be included are mentioned below:
  1. Steps to verify which version of the software system or application is installed.
  2. How to install/ uninstall the software application.
  3. How to use the software system or application (a quick guide).
  4. Overview of the design of the software system or application.
  5. How to build the application software ready for the release.
- After re- engineering process is complete the same documentation must be update and if no documentation exists, one should be created. 
- After the re- engineering the re- engineered software system or application is baselined along with this documentation and the project log and is now considered to be ready for the release. 


Inventory Analysis - an activity involved in software re-engineering process model.


The software re- engineering process model over the years has proved to be a very effective process in bringing the poorly maintained and controlled code to an acceptable standard. This model consists of the below mentioned 5 steps:
  1. Inventory analysis
  2. Document reconstruction
  3. Reverse engineering
  4. Code re- structuring
  5. Data re- structuring
  6. Forward Engineering
In this article we have discussed about the first step of the process i.e., inventory analysis in detail. 

Characteristics of Inventory Analysis


- It is obvious for every organization to maintain an inventory of all the software systems or applications it has developed whether they are active or not.
- An inventory is like a spreadsheet containing details of the software system or application against its name. 
- In inventory analysis, the software systems and applications are sorted out on the basis of the following criteria:
  1. Business criticality
  2. Longevity
  3. Current maintainability and
  4. Local criteria
- This step of the software re engineering process model helps the team to identify what all the software systems or applications require to be re- engineered.  
- Firstly, a table is build that lists all the software applications.
- After this a list of criteria is established on the basis of the criteria like few of which have been mentioned below:
  1. Name of the software system or application.
  2. Year of its creation.
  3. Number of changes or modifications it had gone through since its creation.
  4. Effort applied in making those modifications.
  5. Effort applied in making the last of the modifications.
  6. Date on which the last modification was made.
  7. The systems in which the application now resides.
  8. Other applications with which this application shares the interface.
- The primary purposes of this step is prioritizing all of them and analyze them so as to select the candidates for re- engineering. 
- The steps for the creation of an effective inventory are:
  1. Preparing for data collection
  2. Collecting the data
  3. Deciding the criteria
  4. Allocation
- It has not been wrongly said that “well begun is half done” since the organization may have to suffer a huge set back if it chose wrong candidates for re- engineering. 
- So selecting the candidates for re- engineering during the stage of inventory analysis holds importance. 
- The inventory analysis is a very generic process.
- The inventory analysis looks up with the details of all small and big aspects of the software systems and applications and therefore it becomes easy to select which candidates really need re- engineering.
- Usually the software systems or applications which have not been updated since a long time and are no more accepted and are undocumented are given the first priority.
- Such software systems and applications often have documentation associated with them that is either not updated or relates to the previous versions of the particular software system or application. 
- Problems with the selected candidates are identified and they are carried forward to the next step of the software re- engineering process model. 
- Before you start the restructuring of the code it is necessary that the objectives of the re- engineering are defined. 
- Re- engineering actually consists of 11 steps but they are shortened down to 5 major steps. - The detailed steps are:
  1. Identifying the existing documentation
  2. Verifying the identified code
  3. Familiarising with the existing software
  4. Identifying the re- engineering requirements
  5. Drawing up the re- engineering plan
  6. Producing a test plan, test script and test data.
  7. Producing test results for original software and the ported version.
  8. Restructuring the code
  9. Testing the code
  10. Updating the documentation



Monday, June 11, 2012

What is meant by Business Process Reengineering?


Business process reengineering or BPR is a very important concept when it comes to achieving the business goals centred on the development of a software product. This article is all about the same concept. Let us define the business process re-engineering process formally.
"The process that involves analyzing and designing of the processes and workflows within the organization which is developing a particular software product is called business process re-engineering". 
Business process re- engineering has got many other names like:
  1. Business process redesigning
  2. Business transformation
  3. Business process change management

What is a business process?


- A business process can be thought of as an aggregation of tasks that are logically related to each other and are meant to achieve a pre-defined business outcome. 
- Re-engineering eventually led to many changes in the management processes for the good. - The best example that can be given is of the cross functional team! 
- The concept of cross functionality came in to existences because of the need for re- engineering of the functional tasks which are separately developed in to the processes that are completely cross functional. 
- The concept of business process re engineering is gaining popularity worldwide since there are so many management information systems developments which aim at achieving a wide integration of a large number of business functions.
- Few of those management information systems are:
  1. Supply chain management
  2. Enterprise resource planning
  3. Knowledge management systems
  4. Human resource management systems
  5. Groupware systems
  6. Collaborative systems
  7. Customer relationship management and so on.
- This technique emerged in the private sector to help the organizations fundamentally, so that they can improve up on their customer service to a large extent. 
- This technique also helped in reducing the development cost and gain the world class competitive edge.

Key Aspects of Re-engineering Process


The following are the two very important key aspects of the re- engineering process:
  1. Deployment of the sophisticated information systems and
  2. Continual development.

Details about Business Process Re-engineering


- The leading organizations of the world which are known to support the innovative business processes are used to deploy this technique instead of refining the current methodologies of doing work. 
- Business process re-engineering involves rethinking and then radically redesigning the already existing processes and resources of the organization.
- The business process re- engineering cannot be called as a mere business improvisation technique rather it is a technique using which the whole way in which the work is done can be redesigned for the better. 
- A high level assessment of the mission of the organization, its customer needs and strategic goals marks the beginning of the business process re-engineering. 
- The business process redesigning invokes the question, “does the (aspect) needs to be redefined?” 
- During the implementation of the business process re- engineering technique, an organization may feel that till now it has been working up on the assumptions that are questionable. 
- On implementing this technique, they are forced to think what exactly they should be doing. - The primary focus of the business process re- engineering is on the business processes of the organizations that govern the usage of the resources to develop software products and services to cater the needs of the customers. 
- Business process re- engineering works on the philosophy that “a business process can be broken down in to several short and simple processes which then can be individually measured, modeled, and improved up on”.   
- Apart from this, all the processes can also redesigned altogether.
- With business process re- engineering, the whole business process is optimized in such a way that the organization and the customers reap only benefits. 


Facebook activity