2.1 软件工程(P34)
需求分析
通过需求分析,可以检测和解决需求之间的冲突、发现系统的边界、并详细出系统需求(需求的可验证性是其基本属性)
软件设计、测试与维护
1、软件设计包括架构设计和详细设计
2、软件测试是针对程序的行为,在有限测试用例集合上,动态验证是否达到预期的行为。测试不再只是一种仅在编码阶段完成后才开始的活动。现在的软件测试被认为是一种应该包括在整个开发和维护过程中的活动,它本身是实际产品构造的一个重要部分
软件测试伴随开发和维护过程,通常可以在概念上划分为单元测试、集成测试和系统测试3 个阶段。
3、软件维护有如下类型:①更正性维护-更正交付后发现的错误;②适应性维护-使软件产品能够在变化后或变化中的环境中继续使用;(外部环境变化后系统必须要变化)③完善性维护‐‐‐‐改进交付后产品的性能和可维护性;④预防性维护‐‐‐在软件产品中的潜在错误成为实际错误前,检测并更正它们。
软件质量及评价(P35)
1)软件质量包括“内部质量” “外部质量”和“使用质量”三部分。
2)验证过程:软件本身构造正确并符合规范的产品;确认过程:正确的产品满足用户的需求。
3)评审与审计:管理评审、技术评审、检查、走查、审计。
其中管理评审的目的是监控进展,决定计划和进度的状态,或评价用于达到目标所用管理方法的有效性。技术评审的目的是评价软件产品,以确定其对使用意图的适合性。软件审计的目的是提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的独立评价。
软件过程管理
软件过程管理涉及技术过程和管理过程,通常包括以下几个方面:
(1)项目启动与范围定义(2)项目规划(3)项目实施(4)项目监控与评审(5)项目收尾与关闭
软件配置管理
软件配置管理活动包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。
软件开发工具
用于辅助软件生命周期过程的基于计算机的工具。通常使用这些工具来支持特定的软件工程方法,减少于工方式管理的负担。工具的种类包括支持单个任务的工具及涵盖整个生命周期的工具。
(1)软件需求工具包括需求建模工具和需求追踪工具。
(2)软件设计工具包括软件设计创建和检查工具。
(3)软件构造工具包括程序编辑器、编译器、代码生成器、解释器、调试器等。
(4)软件测试工具包括测试生成器、测试执行框架、测试评价工具、测试管理工具、性能分析工具。
(5)软件维护工具包括理解工具(如可视化工具)和再造工具(如重构工具) 。
(6)软件配置管理工具包括追踪工具、版本管理工具和发布工具。
(7)软件工程管理工具包括项目计划与追踪工具、风险管理工具和度量工具。
(8)软件工程过程工具包括建模工具、管理工具、软件开发环境。
(9)软件质量工具包括检查工具和分析工具
软件复用
复用是提高软件生产力和质量的一种重要技术。软件复用的主要思想是,将软件看成是由不同功能的“组件”所组成的有机体,用软件复用的特点提高其通用性
面向对象的方法特别适用于软件复用的设计