26 July 2011

Module 8: Software Evolution

Few things to know in this module are maintenance and supports required of an application, Lehman’s laws of software evolution, concept of reengineering and activities of software reengineering.


Key points
  • Within days, bug reports filter back to the software engineering organization. 
  • Within weeks, One class of users indicates that the software must be changed so that it can accommodate the special needs of their environment. 
  • Within months, another corporate group who wanted nothing to do with the software when it was released, now recognizes that it may provide them with unexpected benefit. They’ll need a few enhancements to make it work in their world.
This is called Software Maintenance.

Another key points to remember
  • Software does not degrade or require periodic maintenance
  • Software is continually evolving.
  • Correcting defects
  • Adapting application to a changing business environment
  • Implementing enhancement at the request of stakeholders.
  • Supporting users as they integrate an application into their personal and business workflow.
This is what called "Ongoing activities to change and support the software after it is in operation"

And how about the Lehman’s laws of software evolution that I mention earlier??

Please check it out


Now the importance part in maintenance.  Who'll perform the maintenance?? The answer are Separate maintenance team and Part of development team.

Both are really importance actually in maintenance part.

Now we move on to Reengineering.  Basically reegineering upport ‘new business rules’, existing software may be modified or rebuilt (reengineered) and it may begin with a Business Process Reengineering (BPR) before move on to software reengineering.

As you can see below:

This is model for BPR


This is Software Reengineering model

And you must know how to differentiate between Reverse engineering and Forward engineering.

Reverse Engineering
  • Recreate design and specification information from the source code.
Forward Engineering
  • Process applies software engineering principles, concepts, and methods to re-create an existing application.
You can create a table to differentiate between all the thing stated above. That will make you understand more.  And from that table we can now the differences I mean we can differentiated it.



Created by: Siti Assyifa (SW087271)

0 comments: