The scope of software engineering
2006-09-07 17:23
477 查看
[align=center]The scope of software engineering[/align]
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.
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.
相关文章推荐
- Designing and Engineering Time: The Psychology of Time Perception in Software
- Reaction to 构造之法 of Software Engineering From The First Chapter toThe Fifth Chapter(补充版)
- Testing Is the Engineering Rigor of Software Development
- The Uniqueness of Software Engineering: The Dual Formalizations
- Reaction to 构造之法 of Software Engineering From The First Chapter toThe Fifth Chapter
- Software Engineering and the Art of Design
- Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results
- Anti Reverse Engineering Uncovered by Nicolas Brulez Chief of Security - The Armadillo Software Prot
- Testing Is the Engineering Rigor of Software Development
- Testing Is the Engineering Rigor of Software Development
- 阅读《MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS》和《No Silver Bullet: Essence and Accidents of Software Engineering》的感想
- The BOOkList of Software Engineering
- How Google Tests Software - The Life of a TE
- 社会化软件核心思想进化史 Tracing the Evolution of Social Software
- The process of software architecting
- Web Engineering: The Discipline of Systematic Development of Web Applications
- Larbin learnin(3)——how to limit the scope of crawling
- Book Review of Dynamics of Software Development--Get their heads into the game
- The art of software testing
- 精辟: From Grady BoochThe limits of Software, September 2002