
一、软件工程定义了解软件工程是指应用计算机科学、数学及管理科学等原理以工程化的原则和方法来解决软件问题的工程其目的是提高软件生产率、提高软件质量、降低软件成本。软件工程由三部分组成组成描述方法完成软件项目的技术手段支持整个软件生命周期工具人们在开发软件活动中智力和体力的扩展与延伸自动或半自动支持软件开发和管理支持各种软件文档生成过程贯穿于软件开发的各个环节指为获得软件产品在软件工具支持下由软件工程师完成的一系列软件工程活动。管理人员要对软件开发的质量、进度、成本进行评估、管理和控制二、软件需求掌握软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。根据IEEE标准软件需求是用户解决问题或达到目标所需的条件或能力以及反映这些条件或能力的文档说明。1. 需求的三个层次掌握层次描述业务需求反映组织机构或用户对系统、产品高层次的目标要求从总体上描述为什么要达到某种效应组织希望达到什么目标。通常来自项目投资人、客户管理人员、市场营销部门等用户需求描述用户的具体目标或用户要求系统必须能完成的任务和想要达到的结果构成用户原始需求文档的内容系统需求从系统角度说明软件需求包括功能需求、非功能需求和约束2. 质量功能部署QFD掌握QFD是将用户要求转化成软件需求的技术目的是最大限度提升用户满意度。将软件需求分为3类需求类型描述常规需求用户认为系统应该做到的功能或性能实现越多用户越满意期望需求用户想当然认为系统应具备的功能或性能但并不能正确描述。若未实现用户会不满意意外需求兴奋需求用户要求范围外的功能或性能实现后用户更高兴但不实现也不影响购买决策3. 需求获取掌握常见需求获取方法用户访谈、问卷调查、采样、情节串联板、联合需求计划等。4. 需求分析掌握一个好的需求应具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性。1结构化分析SA核心是数据字典围绕它有3个层次的模型图形表示模型说明实体关系图E-R图数据模型描述实体、属性及实体之间的关系数据流图DFD功能模型从数据传递和加工角度逐层细分描述系统功能状态转换图STD行为模型描述系统状态及引起状态转换的事件数据流图DFD示例图结构化分析步骤分析业务情况做出当前物理模型的DFD推导出等价的逻辑模型的DFD设计新的逻辑系统生成数据字典和基元描述建立人机接口提出目标系统物理模型的DFD确定各种方案的成本和风险等级选择一种方案建立完整的需求规约数据字典对数据流图上每个元素加以定义和说明包括数据项、数据结构、数据流、数据存储、处理过程。数据字典示例表2面向对象分析OOAOOA模型由5个层次主题层、对象类层、结构层、属性层、服务层和5个活动标识对象类、标识结构、定义主题、定义属性和定义服务组成。OOA基本原则9个序号原则描述(1)抽象舍弃个别、非本质特征抽取共同、本质特征(2)封装把对象的属性和服务结合为不可分的系统单位隐藏内部细节(3)继承特殊类的对象拥有一般类的全部属性与服务(4)分类把具有相同属性和服务的对象划分为一类(5)聚合组装把复杂事物看成若干简单事物的组装体(6)关联通过一个事物联想到另外的事物(7)消息通信对象之间只能通过消息进行通信(8)粒度控制考虑全局时忽略细节考虑细节时撇开其余部分(9)行为分析处理复杂行为相互依赖、相互交织的问题 记忆口诀抽封继分聚关消粒行抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析OOA基本步骤确定对象和类确定结构确定主题确定属性确定方法5. 需求规格说明书SRS掌握SRS是需求分析阶段完成的文档是软件需求分析的最终结果。应包括范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解和附录。通过需求评审和需求测试进行验证。6. 需求变更掌握变更控制过程问题分析和变更描述 → 变更分析和成本计算 → 变更实现。变更策略所有需求变更必须遵循变更控制过程未获批准不应做设计和实现由项目变更控制委员会CCB决定实现哪些变更项目风险承担者应了解变更内容绝不能从配置库中删除或修改变更请求原始文档每个集成的需求变更必须能跟踪到一个经核准的变更请求变更控制委员会CCB项目所有者权益代表负责裁定接受哪些变更是决策机构不是作业机构。成员可包括产品/计划管理、项目管理、开发、测试、市场、用户文档、技术支持、配置管理等代表。制定决策、交流情况、重新协商约定。7. 需求跟踪掌握需求跟踪建立与维护“需求—设计—编程—测试”之间的一致性。跟踪方式描述正向跟踪检查SRS中每个需求是否都能在后继工作成果中找到对应逆向跟踪检查设计文档、代码、测试用例等工作成果是否都能在SRS中找到出处两者合称双向跟踪。通过需求跟踪矩阵表格保存对应关系。三、本章真题小测Q1不是软件需求的常用层次。A. 业务需求 B. 数据需求 C. 用户需求 D. 系统需求Q2不属于软件需求规格说明书的内容。A. 业务功能 B. 应用系统性能 C. 交互界面 D. 算法的详细过程Q3以下软件需求变更策略中不正确的是。A. 所有需求变更必须遵循变更控制过程B. 对于未获得批准的变更不应该做设计和实现工作C. 应该由项目经理决定实现哪些变更D. 项目风险承担者应该能够了解变更的内容 答案Q1答案B解析软件需求经典三层划分是业务需求、用户需求、系统需求数据需求属于系统需求下的细分内容不属于独立的需求层次。Q2答案D解析软件需求规格说明书侧重描述要实现的业务功能、性能指标、界面交互等对外需求算法详细过程属于底层设计阶段的内容不写入需求规格说明书。Q3答案C解析需求变更不能由项目经理单独决定需要走完整变更评审流程由变更控制委员会CCB审批裁定是否采纳变更其余 A、B、D 均是规范的变更管控原则。✅汇总答案Q1BQ2DQ3C