Unit1. Software Problem
Unit1. Software Problem
The Software
Problem
Software
IEEE defines Software as a collection of
• programs,
• procedures,
• rules, and
• associated documentation and data
Software Engineering
IEEE defines Software Engineering as:
The application of a systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software.
Proposed by Fritz Bauer
Software Engineering is the establishment and use of sound engineering
principles in order to obtain economically software that is reliable and
works efficiently on real machines.
Software
1) Developed for demonstration purpose only Developed to solve real problem of any
organization or client who pays for it
2) Used by the developer by himself or herself Used by clients organization for their business
3) No importance given to the functionalities of Much importance given to the correct function
software. Main focus is on output only of the system
4) Software not designed with quality attributes Software should be designed with quality
like portability, robustness, reliability and attributes like reliability, user-friendliness, etc.
usability in mind
5) No importance given for testing. If error occurs, Software Testing is done to ensure the system is
users fix them when they are found. working properly. Because malfunction (bug or
10)
No Investment Heavy Investment
Industrial strength software
Reliability (trust-worthy)
The capability to maintain a specified level of performance
What is Maintenance?
Changes done after development
Modification done to the existing software
Not a part of development
Maintenance Activities:
Correct residual errors requires corrective maintenance
Environment changes – adaptive maintenance
Upgrades & enhancing features requires enhanced maintenance
Maintenance & Rework
Corrective Maintenance
Software system developed with residual errors (difference
between observed & predicted value)
Remove errors that leads to change
Enhanced Maintenance
Even without errors, software needs to be changed
Must be upgraded or enhanced by adding more features and
provide more services that leads to change
Adaptive Maintenance
Environment in which it operates changes.
Change of environment change in software
Change in software changes the environment requires change
What’s happen in Maintenance Phase?
Testing the new parts & retest the old parts that were changed
Rework
Biggest problem in large and complex system development is: rework
To avoid rework: State/ specify the requirements, functionalities,
interfaces and constraints before development