Wednesday, January 24, 2018

16 Lesson on 21st Jan Software Maintenance

Hello everyone

We learned software maintenance process in a nutshell.
refer to the following material for more detailed information

shortnote

https://www.dropbox.com/s/u8jmwgjfycqvxrk/BCS%20PGD%20SE2%2021st%20Jan%20Maintenance.docx?dl=0

detailed note

https://www.dropbox.com/s/8ff0jzz2y3afxl5/BCS%20P_GD%20SE2%2021st%20Jan%20Maintenance%20extra%201.ppt?dl=0

https://www.dropbox.com/s/rrwak60bjkrv7ln/BCS%20PGD%20SE2%2021st%20Jan%20Maintenance%20extra%202.ppt?dl=0

Software Evolution :
system evolution involves
understanding the program that has to be changed and then implementing these
changes.

In addition to generic topics , you need to have a sound understanding about software evolution methods
1.  Reverse engineering
2. Re-engineering
3. Software Refactoring

Re-engineering
Reengineering may involve

  • re-documenting the system, 
  • refactoring the system architecture, 
  • translating programs to a modern programming language
  • modifying and updating the structure and values of the system’s data.
  • The functionality of the software is not changed and normally, you should try to avoid making major changes to the system architecture.
Why Re-engineer ?

To make legacy software systems easier to maintain, you can reengineer these systems to improve their structure and understandability. The cost of reengineering may be significantly less than the cost
of developing new software.



Reverse Engineering 

Reverse engineering The program is analyzed and information extracted from it.
This helps to document its organization and functionality. Again, this process is
usually completely automated.

Refactoring 

Refactoring is the process of making improvements to a program to slow down degradation
through change. It means modifying a program to improve its structure, to reduce its complexity, or to make it easier to understand.When you refactor a program, you should not add functionality but should concentrate on program improvement. You can therefore think of refactoring as ‘preventative maintenance’ that reduces the problems of future change.

whats the difference between Re-Engineering and Refactoring ?

Reengineering takes place after a system has been maintained for some time and maintenance costs are increasing. You use automated tools to process and reengineer a legacy system to create a
new system that is more maintainable. 

Refactoring is a continuous process of improvement throughout the development and evolution process. It is intended to avoid the structure and code degradation that increases the costs and difficulties of maintaining a system

Can you try this question ? 
March 2016 A2 
b) Explain the differences between reverse engineering, re-engineering and re-structuring in software projects. (6 marks)
c) Outline the process of preventive maintenance and discuss why such maintenance is needed. (9 marks)


15 Lesson on 7th January and 14th January - CMM

Hello everyone

Here are some material related to CMM

https://www.dropbox.com/s/pnbwpvuipaz2brw/BCS%20PGD%20SE2%207th%2014th%20January%20CMM.docx?dl=0

some other presentations useful for you

https://www.dropbox.com/s/h6v0d8jiyq71era/BCS%20PGD%20SE2%207th%2014th%20Jan%20CMM%20extra.ppt?dl=0

we learned software maintenance on 21st Jan . lets see that in next post :)

14 Lesson on 31st December - Types of testing

Hello everyone.

Sorry for taking long to upload the slides and material we used on 31st december. its almost a month late nah ? ;)

Here is the link to download the material
https://www.dropbox.com/s/54i0el51j1zyvxi/BCS%20PGD%20SE2%2031st%20December%20Testing.ppt?dl=0

Here are some additional slide shows on testing for your reference

https://www.dropbox.com/s/5k3qcnkp6e9es2g/BCS%20PGD%20SE2%2031st%20December%20Testing%201.ppt?dl=0

The nest post will publish notes on CMM which Kumar sir did :)