资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章 需求分析,3.1 需求分析的任务 3.2 与用户沟通获取需求的方法 3.3 分析建模与规格说明 3.4 实体-联系图 3.5 数据规范化 3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求 3.9 小结,1,为什么要进行需求分析,在需求阶段修复一个错误的费用是编码阶段的1/5到1/10,是维护阶段修复费用的1/100到1/200。因此,我们可以认为,设计错误的修复费用要远远高于编码错误的修复费用。,通过“分析”,理解用户的各种问题, 通过“规格说明”把问题表达出来。要求大家: (1)掌握具体的步骤和方法 (2)提高分析问题和解决问题的能力 (3)熟练运用一些图形工具,2,基本概念 开发过程的两大阶段 (1)正确地确定问题 (2)为问题寻找合适的解答 目的 澄清用户的各种需求 基本任务 用户和软件人员双方一起来充分理解用户的要求,并把双方共同的理解明确地表达成一份书面文档软件需求规格说明书。,3,在软件生命期的每个阶段中,分析阶段是面向“问题”的,它主要是对用户的业务活动进行分析,明确在用户的业务环境中,软件系统应该“做什么”。,4,需求分析的任务,确定对系统的综合要求,1.确定系统的功能要求 提出系统必须完成的全部所有功能 2.确定系统的性能要求 (1)系统的响应时间 (2)系统需要的存储容量 (3)后援存储器容量、系统重新启动 (4)系统的安全性和可靠性 3.确定系统的运行要求 (1)支持系统运行的软件环境 (2)工具软件和系统软件 (3)支持系统运行的硬件环境 (4)外存储器、通信接口、输入和输出 4.确定系统的扩充要求,5,分析系统的数据要求 建立数据模型(层次方框图、Warnier图) 导出系统的逻辑模型 数据流图 实体 联系图 状态转换图 数据字典 主要的处理算法 修正系统开发计划,6,需求分析的过程 需求分析阶段可分为四个过程:调查研究、分析与综合、书写需求分析的文档和评审。 (1)调查研究 目的:需求调查的目的是通过各种途径获取用户需求信息产生用户需求说明书 角色与职责:需求分析员调查、分析用户的需求,客户与最终用户提供必要需求信息,7,(2)分析与综合 从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求。 (3)书写需求分析文档 软件需求说明书 数据要求说明书 初步的用户手册 修改、完善与确定软件开发实施计划,8,(4)需求分析的评审 系统定义的目标是否与用户的要求一致 系统需求分析阶段提供的文档资料是否齐全 文档中的所有描述是否完整、清晰、准确反应用户要求 与所有其它系统成分的重要接口是否都已经描述,9,主要步骤(过程): 准备调查 调查与记录 分析需求信息 撰写用户需求说明书 需求确认,9,(1)准备调查 需求分析员起草需求调查问题表 将调查重点锁定在该问题表内,否则调查工作将变得漫无边际; 随着调查的深入问题表将不断被细化 确定需求调查的方式 : 与用户交谈,向用户提问 参观用户工作流程,观察用户操作 发调查问卷 与同行、专家交谈,听取他们的意见 分析已存在的同类产品,提取需求 从行业标准与规则中提取需求etc. 与被调查者取得联系,馔写需求调查计划,9,访谈 访谈有正式访谈和非正式访谈两种形式。 非正式访谈以一种较自由的形式,交换对问题的看法,主要是了解问题的性质、需要解决的方案、所需的人数和能力,关注客户的目标和收益。 正式访谈将根据一些事先准备好的议题全面展开讨论,得出结论性的意见。,11,(2)调查和记录 需求分析员按计划执行调查 表1:需求信息表格示例:,9,(3)书写用户需求说明书 需求分析员对收集到的所有需求信息进行分析,消除错误,归纳与总结共性的用户需求。然后按指定的文档模板书写用户需求说明书。 调查过程中获取的需求信息,可以作为用户需求说明书的附件 用户需求说明书撰写完毕后,需求分析员应当邀请同行专家和用户一起评审用户需求说明书,尽最大努力使得 用户需求说明书能够正确无误的反映用户的真实意愿。之后才进一步定义产品的需求,产生产品需求规格说明书,9,需求获取的方法 系统分析员建立需求的过程中所遇到的困难 分析员与领域专家交流的过程中,容易产生误解 大型系统有时会有不同的用户群体,他们往往会提出相互矛盾的要求,分析员要寻求令所有用户满意的答案很难 需求永远不会稳定。系统工程环境一旦改变,用户对软件的需求也会改变,而且这种需求往往无法预测。,10,需求分析是指在需求开发的过程中,对所获取的各种需求信息进行分析,消除错误、刻画细节等。确保需求文档能正确反映用户的真实意图。 常见的需求分析方法有问答分析和建模分析两类 问答分析比较适合用户需求调查阶段,而建模分析比较适合产品需求定义阶段,10,问答分析法 自问自答或者“研讨” 问答分析最重要的问题是“是什么”和“为什么” 每个需求都应当用陈述句说明“是什么”,如果“是什么”的内涵不够清晰,则应补充说明“不是什么”。解释“为什么”是为了加深读者的理解 其他常见问题: 需求存在二义性吗? 需求上下文存在矛盾吗? 需求完备吗? 需求是必要的吗? 需求是可以实现的吗? 需求是可以验证的吗? 需求的优先级确定吗?,10,建模分析法 在需求开发过程中,对某些类型的信息,用图形表示要比用文本表示更有效。 需求建模就是指用图形符号来表示、刻画需求。,10,面向数据流自顶向下求精 结构化分析方法(SA)就是面向数据流自顶向下逐步求精进行需求分析的方法。 “ 结构化分析”(“ Structured Analysis”)是一个简单实用,使用广泛的方法。 它适用于分析大型的数据处理系统,尤其是企事业管理方面的系统,这个方法通常与设计阶段的结构化设计方法(SD)衔接起来。,14,软件工程技术中,控制复杂性的两个基本手段是“分解”和“抽象”。 分解:把大问题分割成若干个小问题,然后分别解决。,15,对于一个复杂的系统(比如银行管理系统)如何理解和表达它的功能呢? SA方法使用了“自顶向下逐层分解”的方法。,16,“逐层分解”体现了分解和抽象的原则,它使我们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这是有助于理解问题的。 无论系统多么复杂,分析工作都可以有计划有步骤、有条不紊地来进行,系统规模再大,分析工作的复杂程度不会随之增大,而只是多分解几层而已,所以SA方法有效地控制了复杂性。,18,描述方式 SA方法采用了介于形式语言和自然语言之间的描述方式。 用SA方法获得的需求说明书由以下几部分组成: 一套分层的数据流图 一本数据字典 一组小说明 补充材料,19,“数据流图”描述系统的分解,即描述系统由哪些部分组成,每个部分之间有什么样的联系等; “数据字典”描述系统中的每一个数据; “小说明”详细描述系统中的每一个加工; “补充材料”是根据需要对系统的补充。 以上就可以明确而完整地描述一个系统的功能,20,小说明 SA方法的基本思想: 将一个大型复杂的系统逐层分解成许多个足够简单的基本加工,然后分别理解每个基本加工,并为每个基本加工详尽地写下“小说明”,再将所有这些“小说明”组织起来,就得到了整个系统的说明书。,23,小说明中应精确地描述用户要求一个加工“做什么”,这包括加工的激发条件、加工逻辑、优先级、执行频率、出错处理等等。其中最基本的部分是加工逻辑。,24,注意 对一个加工应描述的是用户要求这个加工“做什么”,而不是用编程语言来描述具体的加工过程。,25,结构化分析方法步骤 细化数据流图 确定数据定义与加工策略 最低一层数据流图包含了系统全部的数据和加工,从哪里开始分析呢?从数据流图的终点开始回溯。因为终点的数据代表系统的输出,其要求是明确的,由这里开始沿数据流图回溯,较易看清每一个数据元素的来源去向,有利于减少错误和遗漏。 2.1 确定输出数据的数据元素; 2.2 沿数据流图回溯寻求每个数据问题的源;在此过程中确定必要的算法和补充必要的数据元素; 随着问题理解的加深,可以划分出更多的数据元素(DD)和给出更明确的算法(IPO)。 用户复查 分析员:从数据流图的输入开始,借助数据流图、数据字典、IPO 图向用户解释如何把输入数据输出数据 用户:复查验证已知的数据元素,补充未知元素,22,快速原型法 基本思想: 在很短的时间内建立起一个只包含基本数据库和一些基本功能的原型给用户使用,然后根据用户意见对原型进行修改,直到满意为止。,26,短时间内建立原型,用户满意,修改,完善原型,否,是,完成原型,27,结构化分析模型的体系结构,28,结构化分析法:主要包括“一个中心三个图”: “数据字典”是中心,它包含了软件中所有数据对象的描述。 “E-R图”是用图形符号来标识数据对象及它们之间的关系表达用户对数据的需求。 “数据流图”指明数据在系统中流动时如何被变换 “状态图”表示了系统存在的状态及它们之间的变化,24,实体-联系图 实体 “实体”是信息世界中描述客观事物的概念。实体可以是现实世界的人、物、抽象的概念、事物之间的联系等。如一个人,一件物品,一个部门,一种思想等都可以是实体。(实体有总体和个体之分) 2属性 “属性”是指实体具有的某种特性。属性是对实体的进一步描述。如学生实体可由学号、姓名、年龄、性别、系、年级等属性来刻画。(属性有属性名和属性值的概念),29,3联系 现实世界里的事物总是存在着这样或那样的联系,这种联系必然要在信息世界中得到反映。在信息世界中,事物之间的联系可分为两类:一是实体内部的联系,如组成实体的各属性之间的关系;另一是实体之间的联系,这里我们主要讨论实体与实体之间的联系,30,系统建模的一个重要方面是定义系统处理的数据的逻辑结构。实体关系模型描述数据实体、关联以及实体属性。该模型用实体-关系图描述现实世界中的实体,而不涉及实体在系统中的实现方法。 实体彼此间的联系分为三类:一对一(1:1)联系,一对多(1:N)联系,多对多(M:N)联系。,31,实体 矩形框 联系 菱形框 属性 椭圆形 ,符号,37,设A,B为两个包含若干个体的总体,其间建立了某种联系,其联系方式可分为三类:一对一联系 、一对多联系(包括多对一联系)、多对多联系。,32,A,B,1: n,n : m,A,B,33,一对一联系: 如果对于A中的每一个实体,B中至多有一个实体与其对应;B中的每一个实体也至多对应A中的一个实体,则称A与B是一对一的,记作1:1。比如:,学校,校长,领导,1,1,工厂,厂长,管理,1,1,科室主任,病区,负责,1,1,属性1,属性n,属性1,属性n,校名,属性n,属性1,校址,姓名,职称,属性1,属性n,属性1,属性n,属性1,属性n,属性1,属性n,34,一对多联系: 如果对于A中的一个实体,B中有一个以上的实体与之对应;B中的每一个实体至多对应A中的一个实体,则称A与B是一对多的,记作1:n。比如:,学校,班级,下设,1,n,工厂,车间,有,1,n,病区,医生,拥有,1,n,属性1,属性n,属性1,属性n,属性1,属性n,校名,校址,属性1,属性n,属性1,属性n,班名,人数,属性1,属性n,属性1,属性n,35,多对多联系(MN) 如果A中有实体对应B中一个以上实体;B中也有实体对应A中一个以上实体,则称A与B为多对多的,记作m:n。比如:,学生,课程,选课,m,n,项目,职工,参加,m,n,医生,病人,诊治,m,n,成绩,属性1,属性n,记录,学号,姓名,属性1,属性n,属性1,属性n,课程号,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号