The scope of software engineering
Historical aspects
The software crisis
à
conferences to solve the issue
Software is delivered
l
late
l
over budget
l
with residual faults
But until now, software crisis has not been resolved
Classical model --- Waterfall life-cycle model
l
requirements phase
l
analysis(specification) phase
l
design phase
l
implementation phase
l
post delivery maintenance phase
l
retirement
Requirements, analysis, and design aspects
The early we detect and correct a fault, the less it cost us.
To correct a fault early in the life cycle, usually just documentation needs to be changed. But to correct a fault late in the life cycle, change the code and the documentation, test the change itself, perform regression testing, and reinstall the product on the client’s computers.
Conclusion:
It is vital to improve our requirements, analysis, and design techniques
l
to find as early as possible
l
to reduce the overall number of the faults(and, hence, the overall cost)
Team development aspects
Hardware is cheap, but software is built by teams.
l
Interfacing problems between modules.
l
Communication problems among team members
Classical maintenance
Development-then-maintenance model
Why there is no planning phase
We can’t plan at the beginning of the project – we do not yet know exactly what is to be built.
l
Preliminary planning of the requirements and analysis phase at the start of the project.
l
The software project management plan(SPMP) is drawn up when the specifications have been signed off by the client.
l
Management needs to monitor the SPMP throughout the rest of the project
Conclusion:
Planning activities are carried out throughout the life cycle.
There is no separate planning phase.
Why there is no testing phase
It is far too late to test after development and before delivery.
Conclusion:
l
Continual testing activities must be carried out throughout the life cycle.
l
This testing is the responsibility of every software professional ,and the software quality assurance group.
l
There is no separate testing phase.
Why there is no documentation phase
It is far too late to documentation after development and before delivery.
Key individuals may leave before the documentation is completed.
We cannot perform a phase without having the documentation of the previous phase
We cannot test without documentation.
We cannot maintain without documentation.
Conclusion:
l
Documentation activities must be performed in parallel with all other development and maintenance activities.
l
There is no separate documentation phase.