第三讲 需求分析_3_计算机软件及应用_it计算机_专业资料_第1页
第三讲 需求分析_3_计算机软件及应用_it计算机_专业资料_第2页
第三讲 需求分析_3_计算机软件及应用_it计算机_专业资料_第3页
第三讲 需求分析_3_计算机软件及应用_it计算机_专业资料_第4页
第三讲 需求分析_3_计算机软件及应用_it计算机_专业资料_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 需求分析,2,第3章 需求分析,3,4,意义:软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码做得如何出色,不能真正满足用户需求的软件只会令用户失望,给开发带来烦恼。,5,需求分析概述,属于周期阶段,基本任务,实现方式,系统必须做什么,软件定义时期,需求分析说明文档,结果: 软件需求规格说明书,任务:完整、准确、 清晰、具体地确定系统所要完成的工作。,出发点:可行性研究报告,6,3.1 需求分析的任务,1 确定对系统的综合要求,分析系统的数据要求,3 导出系统的逻辑模型,4 修正系统开发计划,7,1. 软件需求对系统的综合要求,项目范围文档,用户需求,文档,功能需求,质量属性,其他非功能需求,设计约束,需求规约(specification),非功能需求,系统需求,业务需求,8,2. 分析系统的数据需求,任何系统都必须有数据支撑,分析系统的数据要求通常采用建立数据模型的方法!,用 实体-联系图 来描述。,9,3.导出系统的逻辑模型,借助当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。,10,4. 修正系统开发计划对系统的成本和进度作更准确的估计,11,访谈结构化分析方法(面向数据流自顶向下求精)简易的应用规格说明技术快速原型法,3.2 获取需求的方法,12,(1)访谈,正式访谈非正式访谈,事先准备好一系列问题,一问一答,开放性交谈,客户多说,分析员引导,调查问卷,情景分析,13,面向数据流的分析方法,采用数据流图建立功能模型,从数据流图入手,逐步细化,面向过程,面向对象,从用例入手,逐步细化,(2) 结构化分析方法,数据字典,14,(3) 简易的应用规格说明技术,面向团队的需求收集法,访谈,开发者,用户分别编写“产品需求”,开会,交流大家对系统的理解,意见统一的系统描述,分小组讨论表中内容,软件规格说明书,15,(4) 快速原型法,快速原型即快速建立起来的旨在演示目标系统主要功能的可运行的程序。快速建立软件原型是最准备、最有效、最强大的需求分析技术。快速原型应具备的特性是“快速”、“容易修改”,16,1)分析建模 模型-就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,由一组图形符号和组织这些符号的规则组成。需求分析过程具体的建模方法有: 基于功能建模:用例图 基于行为的建模:状态图数据建模:实体-关系图,分析建模与规格说明,17,软件需求规格说明(SRS),Software Requirement Specification 通常用自然语言+模型,完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。,软件需求规格说明书,是需求分析阶段得出的最主要的文档。,18,软件需求说明书的编写提示(GB856T88),1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料,2 任务概述 2.1 目标 2.2 用户的特点 2.3 假定和约束,19,3 需求规定 3.1 对功能的规定 3.2 对性能的规定 3.2.1 精度 3.2.2 时间特性要求 3.2.3 灵活性 3.3 输人输出要求 3.4 数据管理能力要求 3.5 故障处理要求 3.6 其他专门要求,4 运行环境规定 4.1 设备 4.2 支持软件 4.3 接口 4.4 控制,软件需求说明书的编写提示(GB856T88),20,3.3 实体-联系图(ER) Entity Relationship Diagram,ER图 - 是用来建立数据模型的工具。数据模型 -是现实世界中数据特征的抽象。是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,反映了用户的现实环境,而且与在软件系统中的实现方法无关。,21,数据模型中包含3种相互关联的信息:数据对象(实体)数据对象的属性数据对象彼此间相互连接的关系。,22,(1) 数据对象,数据对象: 是对软件必须理解的复合信息的抽象。复合信息: 是指具有一系列不同性质或属性的事物,仅有单个值的事物(例如,宽度)不是数据对象。可以由一组属性来定义的实体都可以被认为是数据对象。 如:外部实体、事物、行为、事件、角色、单位、地点或结构等。,23,(2) 属 性,属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”,也就是说,当我们希望找到数据对象的一个实例时,用标识符属性作为“关键字”(通常简称为“键”)。应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。 如:学生具有学号、姓名、性别、年龄、专业(其它略)等属性; 课程具有课程号、课程名、学分、学时数等属性; 教师具有职工号、姓名、年龄、职称等属性。,24,(3) 联 系,数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下3种类型: a. 一对一联系(11) b. 一对多联系(1N) c. 多对多联系(MN)联系也可能有属性。,25,(4) 实体-联系图的符号,ER图中包含了实体(即数据对象)、关系和属性等3种基本成分。通常用矩形框代表实体;用连接相关实体的菱形框表示关系;用椭圆形或圆角矩形表示实体(或关系)的属性;并用直线把实体(或关系)与其属性连接起来。,26,举 例 某校教学管理,图3.2 某校教学管理ER图,对象,教师属性,学生属性,课程属性,联系属性,关系,27,实例二,企业职工管理中,需要涉及的功能有:1)人事处对职工的档案和部门进行管理,包括职工基本情况,部门的基本情况以及各种职称、职务的管理;2)财务处管理职工的工资情况;3)科研处管理项目、职工参加项目的情况。,28,人事管理局部E-R图,29,工资管理局部E-R图,30,项目管理局部E-R图,31,合并后全局E-R图,32,练习:,请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应商等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。,33,3.5 数据规范化,为什么数据要规范化?,34,规范化的目的:消除数据冗余,即消除表格中数据的重复;消除多义性,使关系中的属性含义清楚、单一;使关系的“概念”单一化,让每个数据项只是一个简单的数或字符串,而不是一个组项或重复组;方便操作。使数据的插入、删除与修改操作、查询可行并方便;,35,如何规范化?,规范化 - 将数据的逻辑结构归结为满足一定条件的二维表(关系)。 1. 表格中每个信息项必须是一个不可分割的数据项,不可是组项。 2. 表格中每一列 (列表示属性)中所有信息项必须是同一类型,各列的名字 (属性名) 互异,列的次序任意。 3. 表格中各行 (行表示元组) 互不相同,行的次序任意。,36,通常用“范式(Normal Forms)”定义消除数据冗余的程度。第一范式(1 NF)数据冗余程度最大,第五范式(5 NF)数据冗余程度最小。,1、范式级别越高,存储同样数据就需要分解成更多张表,因此,数据的存储结构及“存储自身”的过程也就越复杂,。访问性能(速度)将下降。,所以,从实用角度看来,在大多数场合选用第三范式都比较恰当。,37,第 一 范 式,每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。,学生(学号,姓名,性别,年龄,年级,专业,籍贯)教师(职工号,姓名,年龄,职称,职务,工资级别,工资)课程(课程号,课程名,学分,学时,课程类型),38,第 二 范 式,满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。,选课 ( 学号,课程号,听课出勤率,作业完成率,学分,成绩 ),39,教学管理例,有三个实体型,即课程、学生和教师,用三个关系保存它们的信息: 学生(学号,姓名,性别,年龄,年级,专业,籍贯) 教师(职工号,姓名,年龄,职称,职务,工资级别,工资) 课程(课程号,课程名,学分,学时,课程类型)为表示实体型之间的联系,又建立两个关系: 选课 (学号,课程号,听课出勤率,作业完成率,成绩) 教课 (职工号,课程号,授课效果)这五个关系,组成了数据库的模型。在每个关系中,属性名下加(下划线)指明关键字。并规定关键字能唯一地标识一个元组。,40,第 三 范 式,简而言之,满足第二范式(2NF)的基础上,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。,41,面向对象方法学,传统结构化方法学的缺点:1、生产效率低2、不能满足用户需求3、软件复用程度很低4、软件仍然很难维护,面向对象方法:不是把程序看作是工作在数据上的一系列过程和函数数据的集合,而是把程序看作是相互协作而彼此独立的对象的集合。每个对象就像一个有数据、操作、功能和目的的微型程序,42,面向对象的思想,OOSD (Object-Oriented Software Development)是一种 把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。,OOSD由三部分组成: OOA (Object-Oriented Analysis) 面向对象的分析 OOD (Object-Oriented Design) 面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设计,43,面向对象的基本概念,1. 对象(Object),2. 类(Class),3. 消息和方法(Message and Method),4. 继承性(Inheritance),5. 封装性(Encapsulation),6. 多态性(Polymorphism),44,面向对象建模,建模是问题域中定义软件解的一种方法。面向对象建模原则:是按照人们习惯的思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求解方法的软件。模型的实质:对现实的简化。建模的目的:便于展现系统。允许开发人员指定系统的结构或行为。提供构造系统的模板。记录决策。,45,三种模型,用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型三种模型。1)对象模型是描述系统数据结构的,它始终都是目标系统中最关键、最基本、最核心的;2)动态模型是描述系统控制结构的;3)功能模型是描述系统功能的。,46,需求分析 与 面向对象方法学,获取客户需求,表达需求用例状态DFD,精化需求类活动图顺序图数据字典,客户需求,详细需求(开发人员需求),47,用例图(use case diagram ),用例用于在交互中表达客户需求。,其实Use Case就是对系统功能的描述而已不过一个Use Case描述的是整个系统功能的一部分,这一部分一定要是在逻辑上是相对完整的功能流程 。,48,如何定义用例?,场景,参与者,用例,关系,49,参与者,50,用例间的关系,1 关联关系2 包含关系3 扩展关系4 泛化关系,51,关联关系,表示参与者用例之间进行通信。 不同的参与者可以访问相同的用例。,52,包含关系,客户用例可以简单地包含提供者用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。新用例不是原用例的一个特例,不能被原用例所替代。,包含用例,被包含用例,53,扩展关系,扩展用例被定义为基础用例的增量扩展。基础用例提供扩展点以添加新的行为。额外用例的插入,基础用例对插入不知情。,54,泛化关系,父用例也可以被特别列举为一个或多个子用例。 子用例表示父用例的特殊形式。 子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变继承的行为。,55,实例学生成绩管理,需求分析成绩管理模块(场景)主要用于实现教师对学生考试成绩的管理以及学生对考试成绩的查询。步骤:识别参与者确定用例确定关系,56,学生成绩管理用例图,57,3.6 状态转换图(状态图),状态图描述了一个对象所处的可能状态以及状态之间的转换。 通过系统的状态及引起系统状态转换的事件,来表示系统的行为。,58,状态State,转换Transition,初始状态Start State,终结状态End State,判定Decision,59,状态图的表示:,2)状态之间转换,初态,终态,3)判定,60,1) 状 态初始状态,初始状态代表状态图的起始位置,只能作为转换的源,而不能作为转换的目标。初始状态在一个状态图中只允许有一个,它用一个实心的圆表示。,61,1) 状 态终止状态,终止状态是模型元素的最后状态,是一个状态图的终止点。终止状态只能作为转换的目标,而不能作为转换的源。它用一个套有一个实心圆的空心圆表示。,问题:终止状态在一个状态图中只能有一个?,62,1) 状 态中间状态,例如:电灯的开和关,洗衣机的洗涤状态,甩干状态等等 状态用于对实体在其生命周期中的各种状况进行建模,一个实体总是在有限的一段时间内保持一个状态。,状态组成,63,状态种类:简单状态(Simple State)组成状态(Composite State)活动行为:入口动作(Entry )出口动作(Exit ),1) 状 态中间状态,64,组成状态,组成状态是可以包含一些嵌套的子状态的状态。组成状态可以通过“或”关系分解为互相排斥的顺序子状态,或者使用“与”关系分解为并发子状态。,65,组成状态顺序子状态,如果一个组成状态的子状态对应的对象在其生命期内的任何时刻都只能处于一个子状态,即多个子状态之间是互斥的,不能同时存在,这种子状态称为顺序子状态。,66,组成状态并发子状态,有时组合状态有两个或者多个并发的子状态机,此时称组成状态的子状态为并发子状态。 顺序子状态与并发子状态的区别在于后者在同一层次给出两个或多个顺序子状态,对象处于同一层次中来自每个并发子状态的一个时序状态中。,67,2) 转 换,在UML的状态图建模机制中,转换用带箭头的直线表示,一端连接源状态,箭头指向目标状态。转换可以标注与此转换相关的选项如事件、动作和监护条件。,如果转换上没有标注触发转换的事件,则表示此转换为自动进行。,68,69,转换种类:外部转换内部转换完成转换复合转换,2) 转 换,70,内部转换,内部转换只有源状态,没有目标状态,不会激发入口和出口动作,因此内部转换激发的结果不改变本来的状态,它转换后的状态仍旧是它本身。内部转换用于对不改变状态的插入动作建立模型;内部转换自始至终都不离开本状态,所以没有出口或入口事件,也就不执行入口和出口动作。,举例:某个聊天状态 入口动作验证密码 出口动作清空聊天记录 某人在聊天是想改变一下除密码外的个人信息 此改变不触发入口动作和出口动作 所以可以使用内部转换,71,完成转换,完成转换又称为自转换。完成转换是因为没有标明触发器事件的转换,是由状态中的活动的完成引起的,是自然而然地完成的转换。完成转换也可以带一个监护条件,这个监护条件在状态中的活动完成时被赋值,而非活动完成后被赋值。内部转换和自转换不同:自转换是离开本状态后重新进入该状态,它会激发状态的入口动作和出口动作的执行,内部转换反之。,72,3) 判 定,状态图中需要根据给定条件进行判断:工作流在此处按监护条件的取值而发生分支。判定用空心小菱形表示。,因为监护条件为布尔表达式,所以通常条件下的判定只有一个入转换和两个出转换。根据监护条件的真假可以触发不同的分支转换。,73,74,4) 举 例,75,例、图书馆管理系统,创建一个状态图的步骤如下:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论