下载

5下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 第3章 需求分析 - 张志旺

第3章 需求分析 - 张志旺.ppt

第3章 需求分析 - 张志旺

懿妧嫕
2011-04-19 0人阅读 举报 0 0 暂无简介

简介:本文档为《第3章 需求分析 - 张志旺ppt》,可适用于IT/计算机领域

第章需求分析第章需求分析需求分析的任务与用户沟通获取需求的方法分析建模与规格说明实体联系图(?)数据规范化(?)状态转换图有穷状态机其他图形工具验证软件需求小结需求分析的意义需求分析的意义软件需求的深入理解是软件开发工作获得成功的前提条件不论我们把设计和编码做得如何出色不能真正满足用户需求的程序只会令用户失望给开发带来烦恼。需求分析是软件定义时期的最后一个阶段它的基本任务不是确定系统怎样完成它的工作而是确定系统必须完成哪些工作也就是对目标系统提出完整、准确、清晰、具体的要求。并在在需求分析阶段结束之前由系统分析员写出软件需求规格说明书以书面形式准确地描述软件需求。即:准确地回答“系统必须做什么”。在分析软件需求和书写软件需求规格说明书的过程中分析员和用户都起着关键的、必不可少的作用。业务需求项目范围文档用户需求文档功能需求质量属性其他非功能需求设计约束需求规约(specification)非功能需求系统需求需求组成的全景图软件需求的组成其中:•业务需求:反映组织机构和客户对系统、产品高层次的目标要求。•用户需求:从用户使用的角度给出需求的描述。如一个小型超市需要一个商品的查询系统。业务需求:进货人员需要查询商品库存以便保证及时进货收款员需要查询商品的销售价格以便结账经理需要查询商品的销售及盈利情况。用户需求:这三类用户怎样去查询系统查询哪些信息还需要哪些操作。•系统需求:从系统的角度描述要提供的服务以及所受到的约束。•功能性需求:描述系统应该做什么即为用户和其它系统完成的功能、提供的服务。•非功能性需求:产品必须具备的属性或品质。•设计约束:设计与实现必须遵循的标准、约束条件。如运行平台、协议、选择的技术、编程语言和工具等。软件需求的描述•结构化语言、PDL•图形化表示•数学描述(形式化语言描述)确定对系统的综合要求功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求。需求分析的具体任务分析系统的数据要求导出系统的逻辑模型修正系统开发计划软件需求获取需求分析是一个包括创建和维持系统需求文档所必需的一切活动的过程。它包含了如下活动:需求获取和分析、需求描述和文档编写、需求有效性验证、需求管理(管理需求工程的变更)。需求获取和分析需求描述需求有效性验证系统模型用户需求和系统需求需求规约软件需求过程需求管理需求获取是开发人员与客户或用户一起对应用领域进行调查研究收集系统需求的过程。需求分析是将获取到的需求准确的理解、求精并将其转化为完整的需求定义(包括建模)进而生成需求规约的过程。需求获取和分析有一定的难度因为:)项目相关人员通常并不真正知道希望计算机做什么让他们清晰的表达出需要系统做什么是件困难的事他们或许提出不切实际的要求。)项目相关人员用自己的语言表达需求这些语言包含很多工作中的专业术语和专业知识。系统分析员没有这些知识和经验而他们又必须了解这些需求。)不同的项目相关人员有不同的需求可能以不同的方式表达分析人员必须发现所有潜在的需求资源而且能发现这些需求的相容或冲突之处。)经济和业务环境决定了分析是动态的需求在分析过程中会发生变更。个别需求的重要程度会改变新的需求会从新的项目相关人员那里得到。需求获取技术•建立由客户(用户)、系统分析员、领域专家参加的联合小组。•需求获取的方法:个别访谈、召集会议、文档研究、问卷调查、观察用户工作流程、建立原型。•获取的需求的表达方式:()需求列表需求与系统的特殊视角或环境的关系()业务流程图(状态活动图)()数据流图()实体联系图与用户沟通获取需求的方法与用户沟通获取需求的方法访谈面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型面向数据流自顶向下求精面向数据流自顶向下求精简易的应用规格说明技术提倡用户与开发者密切合作共同标识问题提出解决方案要素商讨不同方案并指定基本需求进行初步的访谈开发者和用户双方组织的代表出席会议每个小组为每张列表中的项目制定小型规格说明根据会议成果起草完整的软件需求规格说明书简易的应用规格说明技术分析建模与规格说明分析建模与规格说明)分析建模模型就是为了理解事物而对事物做出的一种抽象是对事物的一种无歧义的书面描述。通常由一组图形符号和组织这些符号的规则组成。建模方法在过去的数年中人们提出了许多种分析建模的方法其中两种在分析建模领域占有主导地位:第一种是结构化分析(StructuredAnalysisSA)年代末由DeMarco等人提出这是传统的建模方法。该方法不是被所有的使用者一致地使用的单一方法众多科学家对其进行了扩充因此它是发展了超过年的一个混合物。具体的建模方法表达方式有:面向流的建模:数据流图(DFDCFD)数据建模:实体关系图(ERD)基于行为的建模:Petri网、状态图软件需求规格说明(SRS)软件需求规格说明(SRS)SoftwareRequirementSpecification通常用自然语言模型完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。软件需求规格说明书是需求分析阶段得出的最主要的文档。软件需求说明书的编写提示(GBT)软件需求说明书的编写提示(GBT)引言编写目的背景定义参考资料任务概述目标用户的特点假定和约束软件需求说明书的编写提示(GBT)软件需求说明书的编写提示(GBT)需求规定对功能的规定对性能的规定精度时间特性要求灵活性输人输出要求数据管理能力要求故障处理要求其他专门要求运行环境规定设备支持软件接口控制实体联系图(ER)EntityRelationshipDiagram实体联系图(ER)EntityRelationshipDiagramER图是用来建立数据模型的工具。数据模型是一种面向问题的数据模型是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据反映了用户的现实环境而且与在软件系统中的实现方法无关。数据模型中包含种相互关联的信息:数据对象(实体)、数据对象的属性及数据对象彼此间相互连接的关系。()数据对象()数据对象数据对象:是对软件必须理解的复合信息的抽象。复合信息:是指具有一系列不同性质或属性的事物仅有单个值的事物(例如宽度)不是数据对象。可以由一组属性来定义的实体都可以被认为是数据对象。如:外部实体、事物、行为、事件、角色、单位、地点或结构等。数据对象彼此间是有关联的。()属性()属性属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”也就是说当我们希望找到数据对象的一个实例时用标识符属性作为“关键字”(通常简称为“键”)。应该根据对所要解决的问题的理解来确定特定数据对象的一组合适的属性。如:学生具有学号、姓名、性别、年龄、专业(其它略)等属性课程具有课程号、课程名、学分、学时数等属性教师具有职工号、姓名、年龄、职称等属性。()联系()联系数据对象彼此之间相互连接的方式称为联系也称为关系。联系可分为以下种类型:a一对一联系(∶)如:一个部门有一个经理而每个经理只在一个部门任职则部门与经理的联系是一对一的。b一对多联系(∶N)如:某校教师与课程之间存在一对多的联系“教”即每位教师可以教多门课程但是每门课程只能由一位教师来教。c多对多联系(M∶N)如:学生与课程间的联系(“学”)是多对多的即一个学生可以学多门课程而每门课程可以有多个学生来学。联系也可能有属性。如:学生“学”某门课程所取得的成绩既不是学生的属性也不是课程的属性。由于“成绩”既依赖于某名特定的学生又依赖于某门特定的课程所以它是学生与课程之间的联系“学”的属性。()实体联系图的符号()实体联系图的符号ER图中包含了实体(即数据对象)、关系和属性等种基本成分。通常用矩形框代表实体用连接相关实体的菱形框表示关系用椭圆形或圆角矩形表示实体(或关系)的属性并用直线把实体(或关系)与其属性连接起来。举例举例图某校教学管理ER图对象教师属性学生属性课程属性联系属性关系数据规范化数据规范化规范化的目的是:消除数据冗余即消除表格中数据的重复消除多义性使关系中的属性含义清楚、单一使关系的“概念”单一化让每个数据项只是一个简单的数或字符串而不是一个组项或重复组方便操作。使数据的插入、删除与修改操作可行并方便使关系模式更灵活易于实现接近自然语言的查询方式。如何规范化?如何规范化?规范化将数据的逻辑结构归结为满足一定条件的二维表(关系)。即:表格中每个信息项必须是一个不可分割的数据项不可是组项。表格中每一列(列表示属性)中所有信息项必须是同一类型各列的名字(属性名)互异列的次序任意。表格中各行(行表示元组)互不相同行的次序任意。用教学管理例说明如何规范化有三个实体型即课程、学生和教师用三个关系保存它们的信息:学生(学号姓名性别年龄年级专业籍贯)教师(职工号姓名年龄职称职务工资级别工资)课程(课程号课程名学分学时课程类型)为表示实体型之间的联系又建立两个关系:选课(学号课程号听课出勤率作业完成率分数)教课(职工号课程号授课效果)这五个关系组成了数据库的模型。在每个关系中属性名下加(下划线)指明关键字。并规定关键字能唯一地标识一个元组。、范式级别越高存储同样数据就需要分解成更多张表因此“存储自身”的过程也就越复杂。、随着范式级别的提高数据的存储结构与基于问题域的结构间的匹配程度也随之下降因此在需求变化时数据的稳定性较差。、范式级别提高则需要访问的表增多因此性能(速度)将下降。从实用角度看来在大多数场合选用第三范式都比较恰当。所以从实用角度看来在大多数场合选用第三范式都比较恰当。通常用“范式(NormalForms)”定义消除数据冗余的程度。第一范式(NF)数据冗余程度最大第五范式(NF)数据冗余程度最小。但是:第一范式第一范式每个属性值都必须是原子值即仅仅是一个简单值而不含内部结构。如:学生(学号姓名性别年龄年级专业籍贯)教师(职工号姓名年龄职称职务工资级别工资)课程(课程号课程名学分学时课程类型)第二范式第二范式满足第一范式条件而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。如:选课(学号课程号听课出勤率作业完成率分数)教课(职工号课程号授课效果)第三范式第三范式符合第二范式的条件。满足第三范式(NF)必须先满足第二范式(NF)。简而言之第三范式(NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如存在一个部门信息表其中每个部门有部门编号(deptid)、部门名称、部门简介等信息。那么员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表则根据第三范式(NF)也应该构建它否则就会有大量的数据冗余。简而言之第三范式就是属性不依赖于其它非主属性。状态转换图状态转换图状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件来表示系统的行为。此外状态图还指明了作为特定事件的结果系统将做哪些动作(例如处理数据)。)状态)状态状态是任何可以被观察到的系统行为模式一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应既可以是做一个(或一系列)动作也可以是仅仅改变系统本身的状态还可以是既改变状态又做动作。初态(即初始状态)状态终态(即最终状态)中间状态一张状态图中只能有一个初态而终态则可以有至多个。)事件)事件事件是在某个特定时刻发生的事情它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。例如内部时钟表明某个规定的时间段已经过去用户移动或点击鼠标等都是事件。简而言之事件就是引起系统做动作或(和)转换状态的控制信息。初态用实心圆表示终态用一对同心圆(内圆为实心圆)表示。中间状态用圆角矩形表示可以用两条水平横线把它分成上、中、下个部分。上面部分为状态的名称这部分是必须有的中间部分为状态变量的名字和值这部分是可选的下面部分是活动表这部分也是可选的。)符号活动表的语法格式:事件名(参数表)动作表达式其中“事件名”可以是任何事件的名称。在活动表中经常使用下述种标准事件:entryexit和do。entry事件指定进入该状态的动作exit事件指定退出该状态的动作而do事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。)符号状态图中两个状态之间带箭头的连线称为状态转换箭头指明了转换方向。状态变迁通常是由事件触发的在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式如果在箭头线上未标明事件则表示在源状态的内部活动执行完之后自动触发转换。事件表达式的语法:事件说明[守卫条件]/动作表达式事件说明的语法为:事件名(参数表)。守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件则当且仅当事件发生且布尔表达式为真时状态转换才发生。如果只有守卫条件没有事件说明则只要守卫条件为真状态转换就发生。动作表达式是一个过程表达式当状态转换开始时执行该表达式。)符号)举例电话系统的状态图其他图形工具其他图形工具层次方框图Warnier图IPO图层次方框图层次方框图层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框它代表完整的数据结构下面的各层矩形框代表这个数据的子集最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。随着结构的精细化层次方框图对数据结构也描绘得越来越详细这种模式非常适合于需求分析阶段的需要。系统分析员从对顶层信息的分类开始沿图中每条路径反复细化直到确定了数据结构的全部细节时为止。举例举例Warnier图Warnier图法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具。Warnier图也用树形结构描绘信息但是这种图形工具比层次方框图提供了更丰富的描绘手段。用Warnier图可以表明信息的逻辑组织。它可以指出一类信息或一个信息元素是重复出现的也可以表示特定信息在某一类信息中是有条件地出现的。重复和条件约束是说明软件处理过程的基础所以很容易把Warnier图转变成软件设计的工具。举例举例图中表示一种软件产品要么是系统软件要么是应用软件。系统软件中有P种操作系统P种编译程序此外还有软件工具。软件工具是系统软件的一种它又可以进一步细分为编辑程序、测试驱动程序和设计辅助工具图中标出了每种软件工具的数量。IPO图IPO图左边的框中列出有关的输入数据。中间的框内列出主要的处理处理框中列出处理的次序暗示了执行的顺序但是用这些基本符号还不足以精确描述执行处理的详细情况。在右边的框内列出产生的输出数据。在IPO图中还用类似向量符号的粗大箭头清楚地指出数据通信的情况。一种改进的IPO图(也称为IPO表)一种改进的IPO图(也称为IPO表)在需求分析阶段可以使用IPO表简略地描述系统的主要算法(即数据流图中各个处理的基本算法)。需求分析阶段IPO表中的许多附加信息暂时还不具备但在设计阶段可以进一步补充修正这些图作为设计阶段的文档。这正是在需求分析阶段用IPO表作为描述算法的工具的重要优点。验证软件需求验证软件需求验证软件需求的正确性一般应从个方面进行:()一致性所有需求必须是一致的任何一条需求不能和其他需求互相矛盾。()完整性需求必须是完整的规格说明书应该包括用户需要的每一个功能或性能。()现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。()有效性必须证明需求是正确有效的确实能解决用户面对的问题。用于需求分析的软件工具为了更有效地保证软件需求的正确性特别是为了保证需求的一致性需要有适当的软件工具支持需求分析工作。这类软件工具应该满足下列要求:()必须有形式化的语法(或表)因此可以用计算机自动处理使用这种语法说明的内容()使用这个软件工具能够导出详细的文档()必须提供分析(测试)规格说明书的不一致性和冗余性的手段并且应该能够产生一组报告指明对完整性分析的结果()使用这个软件工具之后应该能够改进通信状况。用于需求分析的软件工具PSLPSA系统的功能主要有下述种:()描述任何应用领域的信息系统()创建一个数据库保存对该信息系统的描述符()对描述符施加增加、删除和更改等操作()产生格式化的文档和关于规格说明书的各种分析报告。PSLPSA系统用描述符从系统信息流、系统结构、数据结构、数据导出、系统规模、系统动态、系统性质和项目管理等个方面描述信息系统。小结小结需求分析的任务:whatfunctionsotherrequirements获取需求的方法:visit,prototyping,refinement分析建模与规格说明:数据、功能和行为模型实体联系图数据规范化状态转换图有穷状态机数据字典其他图形工具验证软件需求:一致性、完整性、现实性和有效性

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/53

第3章 需求分析 - 张志旺

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利