Software Engineering - Old Questions

3. Explain the software specification, software validation and software evolution with example.

6 marks | Asked in 2071(II)

Software specification

software requirements specification (SRS) is a detailed description of a software system to be developed with its functional and non-functional requirements. The SRS is developed based the agreement between customer and contractors. It may include the use cases of how user is going to interact with software system. The software requirement specification document consistent of all necessary requirements required for project development. To develop the software system we should have clear understanding of Software system. To achieve this we need to continuous communication with customers to gather all requirements.

Software validation

Software validation is the process of checking the software to ensure that it works exactly according to the requirement specification. During software validation process, the software is tested with different types of users on actual working data. If software works properly with specified environment and actual operating data, then it is said to that the software confirms user requirement specification. It involves checking process such as inspection and reviews at the stage of the software process from the user requirement definition to program development. The majority of validation costs are incurred after implementation, when the operational system is tested. System should not be tested as a single unit. It should be performed in different stage.

Software evolution

Software Evolution refers to the process of developing software initially, then timely updating it for various reasons, i.e., to add new features or to remove obsolete functionalities etc. The evolution process includes fundamental activities of change analysis, release planning, system implementation and releasing a system to customers. 

The cost and impact of these changes are accessed to see how much system is affected by the change and how much it might cost to implement the change. If the proposed changes are accepted, a new release of the software system is planned. During release planning, all the proposed changes (fault repair, adaptation, and new functionality) are considered.  A design is then made on which changes to implement in the next version of the system. The process of change implementation is an iteration of the development process where the revisions to the system are designed, implemented and tested. 

Fig: Software evolution