Quiz 1: The Scope of Software Engineering
The software maintenance cost is very high when compared to the development cost. The software need to be maintained constantly to compete with the today's changing real world. Thus, the companies spend more money on the maintenance of the software. The software maintenance cost is approximately 3 times the development cost. Approximately 75% of the software budget is spending on post-delivery maintenance. The cost of developing the software is estimated to be . The 25% of the cost is spending on development. The remaining 75% of the money is spending on the maintenance. Therefore, the post-delivery maintenance cost is .
Classical maintenance refers to the fixing of faults or increasing the functionality of the software after the software is installed and accepted by the client. This process is classically called as development-then-maintenance model. Classical maintenance was dependent on when it is performed i.e. before the installation or after the installation. • If the fault is detected and corrected after the software is installed it is determined as classical maintenance. • If the fault is detected and corrected before the software is installed it is determined as classical development. The above definition of classical maintenance is temporal and is unrealistic today because: • Nowadays, software construction is a faster process so the maintenance should be performed and planned much before the product is installed. • Nowadays, reuse of already developed software's are done for fast construction. So, development-then-maintenance model is not appropriate. The operational definition of maintenance can be given below: • The maintenance of the software product should be done each time a fault is detected regardless of the phase in which it is detected. • Fault detected before or after the installation of the software is not considered in operational definition of maintenance. • Maintenance is done as per the need of the product.
Software development process has phases for producing a quality software product which are: • Requirement phase- During this phase the client needs and system concept is determined. • Analysis phase- The client needs and requirements are to be analysed so as to understand the need properly and in details. • Design phase- In this phase architectural and detailed design is prepared as per the specified requirements. • Implementation phase- In this phase coding and testing is done of the software product. • Post-delivery maintenance- this phase includes all the changes and fault correction required after the installation of the product. To develop a software product with requirement of (21+15+37)= 73 computers (hardware) and software for both online and offline accounts and information handling with the budget of $ 30,000 and time available of 4 weeks is bit unreasonable because: • To develop software every step of the software life cycle has to be included. • The development of the software includes, human efforts, team organisation, cost aspects, legal term etc. • The team and technologies should be properly organised and planned so as to avoid the wastage of time and money. So, to develop the said software product more time will be required so that:- • Efficient technical and managerial skills with technologies of hardware and software are planned and organised. • The software product is delivered on time as per budget; fault free and all the client needs should be fulfilled.