《软件工程》第九版 - Ian Sommerville

5星 · 超过95%的资源 需积分: 50 5 下载量 195 浏览量 更新于2024-07-30 收藏 13.89MB PDF 举报
"Software Engineering, Ninth Edition" by Ian Sommerville, published by Addison-Wesley in 2011. 本书是软件工程领域的经典教材,第九版由Ian Sommerville撰写,由Addison-Wesley出版。它涵盖了软件工程的各个方面,适合大学本科或研究生课程使用。以下是该书可能涉及的一些关键知识点: 1. **软件工程定义**:软件工程是一门应用系统化、规范化和定量的方法来开发、操作、维护和废弃软件的学科。它强调在整个软件生命周期中的工程方法、工具和技术。 2. **软件生命周期**:包括需求分析、设计、实现、测试、部署和维护等阶段。每个阶段都有其特定的任务和目标,且它们之间相互关联。 3. **需求工程**:这是软件开发的起点,包括识别用户需求、分析这些需求并形成需求规格说明书。需求管理也是这一阶段的重要组成部分。 4. **软件设计**:包括结构化设计、面向对象设计以及现代设计原则如模块化、抽象、信息隐藏和接口定义。设计过程应考虑可维护性、可扩展性和可重用性。 5. **编程与实现**:选择合适的编程语言和环境,遵循良好的编程实践,编写可读、可维护的代码。 6. **软件测试**:通过一系列的测试策略和方法(如单元测试、集成测试、系统测试和验收测试)来验证软件是否满足需求规格。 7. **质量保证与管理**:实施质量保证计划,使用质量管理工具和技术,确保软件产品的质量和可靠性。 8. **项目管理**:包括进度安排、成本估算、风险管理、团队协调和沟通策略,确保项目按预定时间和预算完成。 9. **软件维护**:软件发布后持续进行的修改、增强和优化,以适应新的需求或解决出现的问题。 10. **演化式开发与敏捷方法**:如Scrum、XP(极限编程)和Kanban,这些方法强调快速响应变化,通过迭代和增量开发来提高灵活性。 11. **软件度量**:用于评估软件的质量、生产力和复杂性,帮助决策者做出改进措施。 12. **软件复用与框架**:通过重用已有的组件和库来提高效率,软件框架提供了结构化的开发基础。 13. **软件工程伦理与职业责任**:强调工程师的职业道德,如诚实、公正、尊重知识产权,以及对社会的责任。 14. **软件过程改进**:CMMI(能力成熟度模型集成)等模型指导组织改进其软件开发过程,提高效率和质量。 15. **软件工程工具**:从需求管理工具到版本控制、自动化构建和测试工具,它们支持软件开发的各个阶段。 Ian Sommerville的《软件工程》第九版不仅涵盖了这些基本概念,还可能讨论了最新的趋势和技术,如云计算、大数据、物联网(IoT)和软件安全等议题,以帮助读者理解不断发展的软件工程领域。