Communication Skils
Essay by Greek • March 20, 2012 • Essay • 766 Words (4 Pages) • 1,299 Views
1. Software evolution is intended to cater for requirements change. Software is inherently flexible and can change. As requirements change through changing business circumstances, the software that supports it must also evolve and change. Sommerville defines software evolution or maintenance as a process that is concerned with modifying existing software systems to meet new requirements. The model below shows how an new software is evolved from existing software:
Software requirements is the process of establishing what services are required and the constraints on the system's operation and development. Software developers assess existing systems to detect operations that do not meet customer or user requirements. New changes to system are proposed in order to circumvent the flaws of the existing systems. The software is modified in order to meet the specifications or requirements needed to be performed by certain software.
Few software systems are now completely new systems and it makes more sense to see evolution as continual effort. Software engineering is an evolutionary process where software is continually changed over its lifetime in response to changing requirements and customer needs. An example of software which evolved over time is the development of methods such as Structured Analysis in the 1970s which later on was developed into object-oriented methods such as Unified Modelling Language. Therefore a version of software can be considered as software evolution.
2. Software development consists of several processes which are carried on by the project team from beginning until it is finished. These software processes are the continuous set of activities for specifying, designing, implementing, and testing software systems. An example of a software development model is evolutionary development.
Evolutionary development aims to develop initial system to get user comments and later it will be enhanced and refined to evolve into functional system. There are two types of evolutionary development, namely exploratory development and throw-away prototyping. The evolutionary development is based on an evolutionary approach whereby the specification can be developed incrementally. Users are able to understand the problem better. There are, however, some drawbacks of the evolutionary model.
* The evolutionary model lacks process visibility. Managers require deliverables to monitor progress. Nevertheless, when the duration of developing a system is short, the deliverables which reflect every version of the system is not cost-effective to be produced.
* Systems are often poorly structured. Since evolutionary development involves continuous changes to software systems due to changing customer specifications, continuing requests for changes from user normally happens. Thus the software structure will be affected and corrupted as a result
...
...