《软件工程基础之03需求分析》由会员分享,可在线阅读,更多相关《软件工程基础之03需求分析(111页珍藏版)》请在金锄头文库上搜索。
1、第三章 需求分析,需求分析的定义,需求分析的任务和步骤,需求分析的任务 建立分析模型 编写需求说明 需求分析的步骤 需求获取 需求提炼 需求描述(撰写需求规格说明书) 需求验证,需求分析的任务和步骤,需求分析的任务 建立分析模型 编写需求说明,准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。,需求分析的任务和步骤,需求分析的任务 建立分析模型 编写需求说明,用需求规格说明书规范的形式准确地表达用户的需求。,第一步:需求获取,需求的类型,(1) 功能性需求:描述系统应该做什么,即为用户和其它系统完成的功能、提供的服务。 (2)非功能需求:必须遵循的标准,外部界面的细节,实现的约束
2、条件,质量属性等等。非功能需求限定了选择解决问题方案的范围,如运行平台、实现技术、编程语言和工具等。,?,将飞机订票系统中的以下方面做如下的划分,F代表“功能性”,NF代表“非功能性”,X代表“不应当是需求”。简要的说明功能性或非功能性需求的种类。对于不应当是需求的方面,说明其原因。 如何输入有关航班、乘客及订票信息。F:输入 什么信息要出现在机票和报告中。F:输出 如何计算乘机费用。 F:计算 什么信息必须存储在旅行社和其他人访问的数据库中。F:数据存储,例,举, 这个系统应该设计成可以处理常旅客计划。NF:可扩展性 这个系统在任何时候都必须是可用的。一周中只允许有2分钟宕机时间。 NF:有
3、效性 必须使用某排序算法根据离开时间对航班排序。X:这是一个设计问题,需求来源,用户目标,领域知识,投资者,组织环境,运行环境,需求获取技术,采访设定情景(用例)原型会议(用户、投资者、领域专家等)观察商业过程和工作流,需求诱导十原则,倾听,需求诱导十原则,2. 有准备的沟通,需求诱导十原则,3. 需要有人推动,需求诱导十原则,4. 最好当面沟通,需求诱导十原则,5. 记录所有决定,需求诱导十原则,6. 保持通力协作,需求诱导十原则,7. 聚焦并协调话题,需求诱导十原则,8. 采用图形表示,需求诱导十原则,9. 继续前进原则,一旦认可某件事情,继续前进; 如果不认可某件事情,继续前进; 如果某
4、项特性或功能不清晰,当时无法澄清,继续前进,需求诱导十原则,10. 谈判双赢原则,第二步:需求提炼 (需求分析),需求分析的核心在于建立分析模型。 需求分析采用多种形式描述需求,通过建立需求的多种视图,揭示出一些更深的问题。 需求分析还包括与客户的交流以澄清某些易混淆的问题,并明确哪些需求更为重要,其目的是确保所有风险承担者尽早地对项目达成共识并对将来的产品有个相同而清晰的认识。,分析建模,结构化分析模型 面向对象分析模型 分析模型描述工具 数据流图、数据字典和加工规约 控制流图、控制规约和状态变迁图 E-R图 用例图,对象-关系图,对象-行为图,其基本思想是用系统工程的思想和工程化的方法,根
5、据用户至上的原则,自始自终按照结构化、模块化,自顶向下地对系统进行分析与设计。,由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。,需求建模图形工具,第三步:需求规格说明书,需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书。 需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。,软件需求规格说明的原则,从现实中分离功能,即描述要“做什么”而不是“怎样实现” 要求使用面向处理的规格说明语言(或称系统定义语言) 如果被开发软件只是一个大系统中的
6、一个元素,那么整个大系统也包括在规格说明的描述之中 规格说明必须包括系统运行环境 规格说明必须是一个认识模型 规格说明必须是可操作的 规格说明必须容许不完备性并允许扩充 规格说明必须局部化和松散耦合,软件需求规格说明的结构,IEEE标准为需求文档提出了以下结构,组织机构内部可以基于此标准扩展:,a. 需求文档的目的 b. 文档约定 c. 预期的读者和阅读建议 d. 产品范围 e. 参考文献,a. 产品前景 b. 产品功能与优先级 c. 用户特征 d. 运行环境 e. 设计与实现上的限制 f. 假设和依赖性,(2)综合描述,(1)引言,(3)需求描述,a. 功能需求 b. 数据需求:与功能有关的
7、数据定义和数据关系 c. 性能需求:响应时间、容量要求、用户数等 d. 外部接口:用户界面、软硬件接口、通信接口 e. 设计约束:软件支持环境、报表、数据命名等 f. 软件质量属性(可维护性、可靠性、可移植性、可用性、安全性等) g. 其他需求这一节是文档中最实质性的部分,由于在机构组织的实践中存在极大的变数,对这一节定义的标准结构可以进行增删。,(4)附录(词汇表、分析模型、待定问题列表),(5)索引,软件需求规格说明(SRS),第四步:需求验证,需求验证的重要性:如果在后续的开发或当系统投入使用时才发现需求文档中的错误,就会导致更大代价的返工。由需求问题而对系统做变更的成本比修改设计或代码
8、错误的成本要大的多。假设需求阶段引入1个错误的需求,设计时对这个需求需要510条设计实现,1条设计需要 510条程序,1条程序需要35种测试组合测试。,原始需求,正确的规格说明 错误的规格说明,正确的设计 错误的设计 对错误需求的设计,正确的编码 错误的编码 对错误设计的编码 对错误需求的编码,正确功能 测试到的错误 没有测试到的错误,一个错误的需求,纠正成本100元,10 纠正成本1000元,10,5,$100$50000!,对需求文档需执行以下类型的检查:(1)有效性检查 检查不同用户使用不同功能的有效性。(2)一致性检查在文档中,需求之间不应该冲突。(3)完备性检查需求文档应该包括所有用
9、户想要的功能和约束。(4)现实性检查检查保证能利用现有技术实现需求。,需求验证技术,(1)需求评审 由分析员、设计员、测试员、用户参与的正式或非正式的会议评审。正式会议要有严格的评审程序,要有会议记录,开发组根据缺陷建议修改需求说明并重审。(2)利用原型检验系统是否符合用户的真正需要(3)对每个需求编写概念性的测试用例。(4)编写用户手册。用浅显易懂的语言描述用户可见的功能。(5)自动的一致性分析。可用CASE工具检验需求模型的一致性。,软件需求工具,Rational RequisitePro 能够帮助项目团队改进项目目标的沟通,增强协作开发,降低项目风险,以及在部署前提高应用程序的质量。 T
10、elelogic DOORS 基于整个公司的需求管理系统,用来捕捉、链接、跟踪、分析及管理信息,以确保项目与特定的需求及标准保持一致。 Borland CaliberRM 基于Web 和用于协作的需求定义和管理工具,可以帮助分布式的开发团队平滑协作,从而加速交付应用系统。CaliberRM 辅助团队成员沟通,减少错误和提升项目质量。 Rational Rose 可用于UML建模分析,需求总在变化,需求变更管理,变更管理是将个人、团队和组织从现有状态转移/过渡到期望状态的结构化方法。它授权雇员接受并理解当前业务环境中的变更。在项目管理中,变更管理是指项目变更被引入和接受后的项目管理过程。 管理和
11、控制需求基线的过程 需求变更控制系统一个正式的文档,说明如何控制需求变更建立变更审批系统,需求变更处理流程,面向过程的分析方法,结构化分析方法,面向数据流进行需求分析的方法 结构化分析方法适合于数据处理类型软件的需求分析 具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止 结构化分析方法使用工具:数据流图,数据字典,实体联系图,状态变迁图,功能模型数据流图 (Data Flow Diagram),数据流图,数据流图中的主要图形元素,例:描述银行取款过程的数据流图,数据流与数据加工之间的关系,只有A或只有B
12、才有C,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统,分层数据流图,在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据,中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图,底层流图是指其加工不需再做分解的数据流图,它处在最底层,顶层流图(商店业务处理系统),这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能,商店业务系统数据流图 绘制步骤,首先确定系统的输入和
13、输出 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程 经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。 然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图,第一层数据流图,第二层:加细每一个加工框 1.销售细化,2.采购细化,检查和修改数据流图的原则,数据流图上所有图形符号只限于前述四种基本图形元素 数据流图的主图必须包括前述四种基本元素,缺一不可 数据流图的主图上的数据流必须封闭在外部实体之间 每个加工至少有一个输入数据流和一个输出数据流 在数据流图中,需按层给加工框编号。
14、编号表明该加工所处层次及上下层的亲子关系 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡 图上每个元素都必须有名字 数据流图中不可夹带控制流 初画时可以忽略琐碎的细节,以集中精力于主要数据流,数据模型ER图 (Entity Relationship Diagram),实体-联系图(ERD),ER图 - 是用来建立数据模型的工具。 数据模型 - 是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,反映了用户的现实环境,而且与在软件系统中的实现方法无关。 数据模型中包含3种相互关联的信息:数据对象
15、(实体)、数据对象的属性及数据对象彼此间相互连接的关系。,(1) 数据对象,数据对象: 是必须由软件理解的复合信息的抽象。 复合信息: 是指具有一系列不同性质或属性的事物,仅有单个值的事物(例如,宽度)不是数据对象。 可以由一组属性来定义的实体都可以被认为是数据对象。如:外部实体、事物、行为、事件、角色、单位、地点或结构等。 数据对象彼此间是有关联的。,(2) 属 性,属性定义了数据对象的性质。 应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。 如:学生具有学号、姓名、性别、年龄、专业等属性;课程具有课程号、课程名、学分、学时数等属性;教师具有职工号、姓名、年龄、职称等属性
16、。,(3) 联 系,数据对象彼此之间相互连接的方式称为联系,也称为关系。 联系可分为以下3种类型:a. 一对一联系(11)如:一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。b. 一对多联系(1N)如:某校教师与课程之间存在一对多的联系“教”,即每位教师可以教多门课程,但是每门课程只能由一位教师来教。c. 多对多联系(MN)如:学生与课程间的联系(“学”)是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。 联系也可能有属性。如:学生“学”某门课程所取得的成绩,既不是学生的属性也不是课程的属性。由于“成绩”既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“学”的属性。,