User:Ashwiniabhyankar

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Software Engineering[edit]

Software engineering addresses all the steps of software life cycle and incorporates aspects of many different areas of human knowledge, including economics and social sciences. It deals with essential properties of software like invisibility, complexity, changeability, interoperability and discontinuity. Essential properties of software do not change, but accidental properties like programming language, hardware speed, and architecture of programs do change.

The classical software engineering life cycle model was Waterfall lifecycle model but due to its drawbacks a staged model of software lifecycle is being introduced in which maintenance is actually a series of distinct stages, each with different activities, tools, and business consequences. A variation of this process is the version staged model; the backbone of which is the evolution stage. At certain intervals a company completes a version of its software and releases it to customers. Evolution continues, with the company eventually releasing another version and only servicing the previous version. Another attempt to extend waterfall model is to create a prototype to capture the requirements, but still volatility continues even though prototype has been completed. Thus prototype gave a partial solution to the problems associated with waterfall model.The version staged model seems to be the stable model for software life cycle.

While the industry still considers post delivery work as simple software maintenance,the process actually falls into different stages, and both developers and managers can benefit by understanding them.

References:

1) Rajlich VT, Bennett KH, A Staged Model for the Software Life Cycle, Computer, July 2000.

2) Object Oriented & Classical Software Engineering - By Stephen R. Schach.