软件开发的目标——按时按预算开发出满足用户真实需要的软件。软件项目需求概述:软件开发的目标:按时按预算开发出满足用户真实需要的软件。
需求:一个软件项目的开始阶段。软件需求的定义:1)、用户解决问题或达到目标所需的条件或能力。2)、系统或系统部件要满足合同、标准、规范或其他正式文档所需要具有的条件或能力 3)、一种反映上面(1)或(2)所描述的条件或能力的文档说明。
软件需求4个抽象的层次 原始问题的描述、用户需求、系统需求和软件设计描述。
编写用户需求文档的原则 1标准的格式 2)使用一致的语言 3)使用特殊文本 4)尽量避免专业术语 软件需求质量评价:1、正确性 2、无歧义 3、完备性 4)、一致性 5)、根据重要性和稳定性分级 6)、可验证性 7)、可修改性 8)、可跟踪性 9)、可理解性
需求工程发展历程:1、对象化 2、形式化 3、自动化面向对象方法所采用的具体模型:1整体—部分模型,描述对象(类)是如何由简单的对象(类)构成的,也称为聚类模型。 2分类模型,描述类之间的继承关系 3类—对象模型,描述属于每个类的对象所具有的行为 4对象交互模型,描述对象之间的交互方法
5状态模型,描述对象在其生存期内的行为及状态变化。需求工程: 所有与需求直接相关活动的通称,
需求工程所涉及的工作 1、需求开发: 需求获取 、需求分析 、规格说明 、需求验证 2、需求管理:变更控制 、版本控制、 需求跟踪 、需求状态跟踪
需求开发:包括需求获取、需求分析、编写需求规格说明、验证需求四个阶段,在这四个阶段执行以下活动:确定产品所期望的用户类;获取每个用户类的需求;了解实际用户任务和目标以及这些任务所支持的业务需求;分析源于用户的信息以区别业务需求、功能需求、质量属性、业务规则,建议解决的方法和附加的信息;分解需求,并将需求中的一部分分配给软件组件;了解相关属性的重要性;划分实施优先级;编写需求规格说明和模型;评审需求规格,验证对用户需求的正确理解和认识。 需求分析完成的标志是提交一份完整的软件需求规格说明书(SRS)。
需求获取步骤:1、确定需求开发过程 2、编写项目视图和范围文档 3、用户群分类 4选择产品代表 5、建立核心队伍 6、确定使用实例 7、召开应用程序开发联系会议
8分析用户工作流程 9确定质量属性 10、检查问题报告 11、需求重用
需求分析步骤 1绘制关联图 2、创建用户接口原型 3、分析可行性 4、确定需求优先级
5建立需求模型 6、编写数据字典 7、应用质量功能调配
规格说明:1采用软件需求规格说明模版 2指明需求来源 3为每项需求注上标号
4记录业务范围 5创建需求跟踪能力矩阵
需求验证:1审查需求文档 2依据需求编写测试用例 3确定系统合格的验收标准需求规格说明结构:a引言 需求规格的目的 、软件产品范围、定义、首字母词写与缩写语、参考文献、文档概要 b、一般描述 产品透视、产品功能、用户特征、一般约束、假设和依赖性 c专门需求 包括功能需求、非功能需求和接口需求 d附录 e索引
编写需求文档: 1、语言和段落尽量简短 2、表达时采用主动语态 3、语言要完整,语法、标点等要无误 4、陈述时要采用一致的格式 5、避免模糊的、主观的术语、如性能“优越”6、避免使用比较性的词汇,尽量给出定量的说明。
试分析需求分析建模方法的几种方法,并比较它们的优缺点
(1)用例分析方法:用例需求分析常常采用UML技术,UML是一种面向对象的建模语言。
(2)原型分析方法:原型法是为了快速开发系统而推出的一种开发模式,旨在改进传统的结构化生命周期法的不足,缩短开发周期,减少开发风险。
(3)结构化分析方法:结构化分析方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。
结构化的分析方法的基本步骤为:需求分析/业务流程分析/数据流程分析/编制数据字典 需求验证过程:1审查需求文档 2、依据需求文档编写测试用例3编写用户手册 4、确定产品验收合格的标准
需求验证的内容检查方面:1有效性检验 2、一致性检查 3、完备性检查
4、现实性检查5、可检验性检查 6、可跟踪性检查 7、可调节性检查 8、可读性检验
需求管理的目标:使软件需求受控,并建立软件工程和管理使用的需求基线;使软件计划、产品和活动与软件需求保持一致
需求管理的困难的原因:1需求不总是显而易见的,它可来自各个方面 2需求并不总是能容易用文字明白无误地表达。 3存在不同种类的需求,其详细程度各不相同 4如果不加以控制,需求本身的数量都难以管理 5 需求之间相互关联,而且需求也和软件工程流程中的其他可交付工作有关。6需求有唯一的特征或特征值。7需求涉及众多相关方面,这意味着需求要由功能交叉的各组人员管理 8需求会有变更 9、需求可能对时间敏感
需求管理的原则: 1、需求一定要分类管理 2、需求必须分优先级 3、需求必须文档化4需求一旦变化,就必须对需求变更的影响进行评估 5需求管理必须与需求工程的其他活动紧密整合
控制需求变更策略:1需求一定要与投入有必然的联系 2需求的变更要经过出资者的认可3小的需求变更也要经过正规的需求管理流程 4精确的需求与范围定义并不会阻止需求的变更
需求管理规划的内容:1需求识别,给需求唯一的标识,以便在上下文中引用。
2变更管理过程 3、需求跟踪 4、自动化工具,对使用的CASE工具做出选择
需求管理的所有任务或活动: 1、确定需求变更控制过 2、建立变更控制委员会 3、进行需要变更影响分析4、跟踪所有受需求变更影响的工作产品 5、建立需求基准版本和需求控制版本文档 6、维护需求变更的历史记录变更需求文档的日期以及所做的变更、原因,还包括由谁负责更新和更新的新版本号 7、跟踪每项需求的状态 8、衡量需求稳定性 9、使用需求管理工具
变更管理过程: 1 变更描述 2、变更分析 3、变更实现需求变更的原因: 1范围没有圈定就开始细化 2、没有良好的软件结构适应变化 3、用户需求改变
需求文档版本控制: 1统一确定需求文档的每一个版本,保证每个成员都能得到当前最新的需求文档版本 2清楚地将变更写成文档,并及时通知到项目干系人 3为尽量减少困惑、冲突、误传,应只允许指定的负责人来更新需求文档
需求跟踪的作用: 1确保所有需求被应用 2、有助于需求变更影响分析 3、便于需求的维护
4、便于需求测试时找出问题所在 5、便于项目跟踪 6、减小项目的风险 7、简化了系统的再设计 8、易于软件重用
需求评审注意事项:1严格控制每一次评审的文档规模及持续时间 2、评审工作要分段进行 3、对讨论的问题进行控制 4、避免无谓的争吵需求要考虑的属性:1需求的创建时间 2需求的版本 3需求的创建者 4需求的批准
5需求状态 6需求的原因或根据 7需求涉及的子系统 8需求涉及的产品版本
9需求的验证方法或测试标准 10需求的优先级
需求管理的注意事项:1需求变更 2、需求变更过程 3、未实现的需求 4、扩充项目范围
需求管理活动: 1定义需求基线 2评审提出的需求变更融入到项目中 3使当前的项目计划与需求一致 4估计变更需求所产生的影响并在此基础上协商新的承诺 5让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪
需求跟踪的作用:在需求验证中,便于确保所有需求被应用;有助于变更影响分析;便于需求的维护;便于测试时找出问题所在;便于项目跟踪和减少项目风险;简化了系统再设计,易于软件重用.
需求管理工具中具有代表性的包括CaliberRM,DOORS,RTM,Rational RequisitePro等。