软件工程与开发技术(西电第二版)第3章-软件需求分析与建模课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程与开发技术(西电第二版)第3章-软件需求分析与建模课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 开发 技术 第二 软件 需求 分析 建模 课件
- 资源描述:
-
1、第3章 软件需求分析与建模 第3章 软件需求分析与建模 3.1 需求分析需求分析 3.2 数据建模数据建模 3.3 功能建模功能建模 3.4 行为建模行为建模 3.5 数据字典数据字典 3.6 结构化需求分析的若干技术结构化需求分析的若干技术3.7 验证软件需求验证软件需求 3.8 小结小结第3章 软件需求分析与建模 3.1 3.1 需需 求求 分分 析析3.1.1 3.1.1 需求分析的任务需求分析的任务 需求分析的主要任务就是要通过软件开发人员与用户的交流和讨论,准确地获取用户对系统的具体要求。需求分析中任何的含混不清或微小的遗漏都可能会造成系统开发中的重大问题甚至导致失败。在正确理解用户
2、需求的前提下,软件开发人员还需要将这些需求准确地以文档的形式表达出来,作为设计阶段的依据。需求分析阶段结束时需要提交的主要文档是软件规格说明书。第3章 软件需求分析与建模 由于需求分析研究的对象是用户对开发项目的要求,在实现这一阶段任务时必须要注意两个问题。问题之一在于:一个项目的参与者既包括软件设计开发人员,又包括用户,他们之间交流的难题会给软件的开发留下隐患。用户往往在软件交付使用时,才会发现系统存在的一系列问题。这就要求双方必须在需求分析过程中加强沟通和协调。一方面,软件设计人员应尽量使用通俗的语言与用户进行交流;另一方面,用户应积极主动地配合软件设计人员的工作。问题之二在于:为了保证需
3、求阶段能够提出完整、准确的系统逻辑模型,开发人员必须花费足够的时间,全面了解用户的需要,绝不能在需求模糊的情况下仓促进行软件的设计和编程。根据国外的统计资料表明,在典型环境下开发软件,需求分析阶段的工作量大约要占到整个系统开发工作量的20%左右。第3章 软件需求分析与建模 用户对系统的需求通常可分为如下两类:(1)功能性需求:主要说明了待开发系统在功能上实际应做到什么,是用户最主要的需求。通常包括系统的输入、系统能完成的功能、系统的输出及其他反应。(2)非功能性需求:从各个角度对所考虑的可能的解决方案的约束和限制。主要包括:过程需求(如交付需求、实现方法需求等)、产品需求(如可靠性需求、可移植
4、性需求、安全保密性需求等)和外部需求(如法规需求、费用需求等)等。第3章 软件需求分析与建模 3.1.2 3.1.2 需求分析的步骤需求分析的步骤 需求分析阶段的工作,大致可分为如下几个步骤进行:(1)通过调查研究,获取用户的需求。软件开发人员只有通过认真细致的调查研究,才能获得进行系统分析的原始资料。需求信息的获取可来源于阅读描述系统需求的用户文档;对相关软件、技术的市场调查;对管理部门、用户的访问咨询;对工作现场的实际考察等。第3章 软件需求分析与建模 (2)去除非本质因素,确定系统的真正需求。对于获取的原始需求,软件开发人员需要根据掌握的专业知识,运用抽象的逻辑思维,找出需求间的内在联系
5、和矛盾,去除需求中不合理和非本质的部分,确定软件系统的真正需求。(3)描述需求,建立系统的逻辑模型。对于确定的系统需求,软件开发人员要通过现有的需求分析方法及工具对其进行清晰、准确的描述,建立无二义性的、完整的系统逻辑模型。第3章 软件需求分析与建模 (4)书写需求说明书,进行需求复审。需求阶段应提交的主要文档包括需求规格说明书、初步的用户手册和修正后的开发计划。其中,需求规格说明书是对分析阶段主要成果的综合描述,是该阶段最重要的技术文档。为了保证软件开发的质量,对需求分析阶段的工作要按照严格的规范进行复审,从不同的技术角度对该阶段工作做出综合性的评价。复审即要有用户参加,也要有管理部门和软件
6、开发人员参加。第3章 软件需求分析与建模 3.1.3 3.1.3 需求分析的原则需求分析的原则 目前存在着许多需求分析的方法,虽然各种方法都有其独特的描述方法,但不论采用何种方法,需求分析都必须遵循以下基本原则:(1)能够表达和理解问题的数据域和功能域。所有软件开发的最终目的都是为了解决数据处理的问题,数据处理的本质就是将一种形式的数据转换成另一种形式的数据,即通过进行一系列加工将输入的原始数据转换为所需的结果数据。需求分析阶段必须明确系统中应具备的每一个加工、加工的处理对象和由加工所引起的数据形式的变化。第3章 软件需求分析与建模 (2)能够将复杂问题分解化简。为了便于问题的解决和实现,在需
7、求分析过程中需要对于原本复杂的问题按照某种合适的方式进行分解(对功能域和数据域均可)。分解可以是同一层次上的横向分解,也可以是多层上的纵向分解。每一步分解都是在原有基础上对系统的细化,使系统的理解和实现变得较为容易。第3章 软件需求分析与建模 (3)能够给出系统的逻辑表示和物理表示。系统需求的逻辑表示用于指明系统所要达到的功能要求和需要处理的数据,不涉及实现的细节。系统需求的物理表示用于指明处理功能和数据结构的实际表现形式,通常由系统中的设备决定。如处理数据的来源,某些软件可能由终端输入,另一些软件可能由特定设备提供。给出系统的逻辑表示和物理表示对满足系统处理需求所提出的逻辑限制条件和系统中其
8、他成分提出的物理限制是必不可少的。第3章 软件需求分析与建模 3.2 3.2 数数 据据 建建 模模3.2.1 3.2.1 实体模型实体模型 1.1.实体模型的概念实体模型的概念 对于一个软件系统来说,所涉及的数据成千上万,如何对这些复杂数据及其之间的关系进行分析并将它们以最优的方式组织起来,对软件开发的成败起着非常重要的作用。第3章 软件需求分析与建模 E-R(Entity-Relation)方法,即实体联系方法是目前最常用的数据建模方法,可以用于在需求分析阶段清晰地表达目标系统中数据之间的联系及其组织方式,建立系统的实体数据模型(E-R模型)。实体模型是一种面向问题的概念数据模型,是按照用
9、户的观点对系统的数据和信息进行建模的,因此它与软件系统中的实现方法,如数据结构、存取路径、存取效率等无关。实体模型可以根据需要在软件实现时转换成各种不同数据库管理系统所支持的数据物理模型。实体模型由实体、联系和属性三个基本成分组成。第3章 软件需求分析与建模 (1)实体:指客观世界存在的且可以相互区分的事物。实体可以是人,也可以是物,还可以是抽象概念。如职工、计算机、产品都是实体。(2)属性:有时也称性质,是指实体某一方面的特征。一个实体通常由多个属性值组成。如学生实体具有学号、姓名、专业、年级等属性。(3)联系:指实体之间的相互关系。实体之间的联系可主要划分为三类:一对一(1:1)、一对多(
10、1:n)和多对多(m:n)。联系也可以具有属性。为了便于实现,在进行数据库设计时通常将多对多的联系转换为一对多的联系,如图4.1所示。第3章 软件需求分析与建模 图3.1 学生和课程之间的E-R模型(a)学生和课程之间的多对多联系E-R模型;(b)将多对多联系转换为一对多联系E-R模型第3章 软件需求分析与建模 2.2.实体实体-模型中的基本符号模型中的基本符号表表3.1 E-R3.1 E-R模型中的基本符号模型中的基本符号符号含 义表示实体表示实体间的联系,与实体间的连线上需用数字标明具体的对应关系表示与实体有关的属性用于实体、属性及联系的连接第3章 软件需求分析与建模 3.3.实体实体-模
11、型的建立模型的建立 要建立系统的实体模型,通常可按如下步骤进行:(1)对系统的数据域和功能域进行分析,确定系统中所涉及的实体。例如,在图3.2所示的工资计算系统中,单位对职工的工作情况进行考勤,根据出勤结果、基本工资档案、奖金及扣款计算职工的实发工资。因此,工资系统中所涉及的实体就包括职工、出勤、奖励和扣款。第3章 软件需求分析与建模 图3.2 工资计算系统的E-R模型第3章 软件需求分析与建模 (2)确定系统中各实体之间的联系。如工资计算系统中,一名职工一个月只有一条出勤记录,因此职工和出勤两个实体之间是一对一的联系;一名职工在一个月中对应着多项扣款,如水电费、缺勤扣款、个人所得税等,因此职
12、工和扣款之间是一对多的联系;同理,一名职工在一个月中可以获得多项奖励,因此职工和奖金之间也是一对多的联系。第3章 软件需求分析与建模 (3)确定各实体及联系的属性。例如,工资计算系统的职工实体具有职工号、性别、职称、年龄、部门、基本工资等属性。目前,最常用的数据库模型是关系模型,它是通过一张二维表来表示和处理实体集合和属性关系的数据库系统方法。在关系数据库中,为了避免出现数据冗余、二义性的问题,方便数据库的各种操作,二维表必须满足以下的规范化约束条件:第3章 软件需求分析与建模 (1)表格中的每个信息项必须是一个不可分割的数据项。(2)表格每一列中所有信息项必须是同类型的数据,各列在表中的次序
13、任意,每列对应一个惟一的名字。(3)表格中每一行的数据各不相同,各行在表中的次序任意。第3章 软件需求分析与建模 3.2.2 3.2.2 数据建模的其他图形工具数据建模的其他图形工具 1.1.层次方框图层次方框图 层次方框图通过树型结构的一系列多层次的矩形框描述复杂数据的层次结构。树型结构顶端的矩形框只有一个,用于代表完整的数据结构。下面各层的矩形框是对完整数据结构的逐步分解和细化得到的数据子集;底层的矩形框代表组成该数据结构的基本元素,是数据的最小单位,不可再分割。层次方框图非常适合描述自顶向下的需求分析方法中数据的层次关系。系统分析员可以从对顶层信息的分类开始,沿着层次图中的每条路径逐步细
14、化,直到确定了数据结构的全部细节为止。例如,某单位职工的实发工资由应发工资和扣款两部分组成,每部分又可进一步细分。如应发工资又可分为基本工资和奖金;基本工资又可分为国家工资、津贴、补贴;奖金也可分为出勤奖和业绩奖;津贴和补贴还可以再进一步地细分。实发工资的层次方框图如图3.3所示。第3章 软件需求分析与建模 图3.3 某单位职工实发工资的层次方框图实发工资国家津贴职务津贴交通补贴部门补贴其他补贴补贴津贴国家工资基本工资出勤奖业绩奖奖金应发工资扣款缺勤扣款水电扣款个人所得税扣款第3章 软件需求分析与建模 2.2.WarnierWarnier图图 Warnier图是法国科学家Warnier提出的另
15、一种描述数据层次结构的图形工具。与层次方框图类似,Warnier图也采用了树型结构表示数据,但与层次方框图相比,Warnier图对数据的描绘手段更加丰富。利用Warnier图可以清楚地表明数据的逻辑结构中某类信息的重复出现及某些特定信息出现的条件约束,因此,Warnier图可以较为容易地转变成软件设计的工具。第3章 软件需求分析与建模 在Warnier图中,使用大括号来区分数据结构的层次。一个大括号内的所有名字都属于同一类信息;异或符号“?”用于表明一类信息或一个数据元素在一定条件下出现,而且在这个符号上、下方的两个名字所代表的数据只能出现一个。在一个名字下面或右边的圆括号中出现的数字指明了这
16、个名字所代表的信息类或数据元素在该数据结构中重复出现的次数。例如,某计算机公司的一种软件产品要么是系统软件,要么是应用软件;系统软件中有k1种操作系统、k2种编译程序,此外还有工具软件;工具软件进一步又可划分为编辑程序、测试工具和辅助设计工具,它们各自的数量分别为j1、j2和j3。描绘这种软件产品的Warnier 图如图3.4所示。第3章 软件需求分析与建模 图3.4 描绘一种软件产品的Warnier图第3章 软件需求分析与建模 3.3 3.3 功功 能能 建建 模模 在需求分析阶段,数据流(也称信息流)是系统分析的基础。所谓数据流,形象地说就是系统中“流动的数据结构”。数据流图(DFD,Da
17、ta Flow Diagram)是描述软件系统中数据处理过程的一种有力的图形工具。数据流图从数据传递和加工的角度出发,刻画数据流从输入到输出的移动和变换过程。由于它能够清晰地反映系统必须完成的逻辑功能,所以它已经成为需求分析阶段中功能建模最常用的工具。第3章 软件需求分析与建模 3.3.1 3.3.1 数据流图的基本符号数据流图的基本符号表表3.2 3.2 数据流图中的基本符号数据流图中的基本符号或或或符 号含 义数据的源点或终点数据流数据存储加工第3章 软件需求分析与建模 1.1.数据的源点或终点数据的源点或终点 数据的源点或终点用于反映数据流图与外部实体之间的联系,表示图中的输入数据来自哪
18、里或处理结果送向何处。如图3.5中的人事部门、后勤部门是工资系统中数据的源点,而职工和银行则是工资系统中数据的终点。第3章 软件需求分析与建模 2.2.数据流数据流 数据流是数据在系统中(包括数据处理之间、数据处理和数据存储之间以及数据处理和数据的源点或终点之间)的传送通道,数据流符号的箭头指明了数据的流动方向。如图3.5中的出勤表、业绩表、水电扣款表、工资条及工资存款清单等均为数据流。在数据流图中,除了连接加工和数据存储的数据流以外,其他的数据流在图中都对应一个惟一的名字。第3章 软件需求分析与建模 图3.5 工资计算系统的顶层(0层)数据流图第3章 软件需求分析与建模 3.3.加工加工 加
19、工也称为数据处理,是对系统中的数据流进行的某些操作或变换。图中每个加工都要有对应的名称,最常见的名称是由一个表明具体动作的动词和一个表明处理对象的名词构成的,如计算应发工资、打印工资清单等。4.4.数据存储数据存储 在数据流图中用于保存数据的数据文件被称为数据存储,它可以是数据库文件或任何其他形式的数据组织。流向数据存储的数据流可理解为向文件写入数据或对文件进行查询,流出数据存储的数据流可理解为从文件中读取数据或得到查询结果。第3章 软件需求分析与建模 3.3.2 3.3.2 数据流与加工之间的关系数据流与加工之间的关系 在数据流图中,可以有两个以上的数据流进入同一个加工,也可以有两个以上的数
20、据流从同一个加工中流出,这样的多个数据流之间往往存在一定的关系。为了表示这些数据流之间的关系,需要在数据流图中给这些数据流对应的加工加上一定的标记符号。在表3.3中列出了加工中常见的几种关系的表示方法。(表中以从加工流入或流出两个数据流为例)。第3章 软件需求分析与建模 表表3.3 3.3 加工中常见关系的符号表示加工中常见关系的符号表示T*T*T+T+TT符 号含 义由数据A和B共同变换为数据C由数据A变换为数据B和数据C由数据A或B,或者数据A和B共同变换为数据C由数据A变换为数据B或C,或者同时变换为数据B和C由数据A或B其中之一变换为数据C由数据A变换为数据B或C其中之一第3章 软件需
21、求分析与建模 3.3.3 3.3.3 数据流模型的建立方法数据流模型的建立方法 对于一个复杂的系统来说,可能存在着几十个甚至成百上千个加工,若要在一个数据流图中清楚地描述出整个系统加工的过程是很困难的,而采用对数据流图进行分层的方法则可以很好地解决这个问题。按照结构化分析方法中“自顶向下,逐步分解”的思想,可以先将整个系统看作是一个加工,它的输入数据和输出数据表明了系统和外部环境的接口,从而首先画出系统的顶层数据流图。为了能够清楚地表明系统加工的详细过程,接着从顶层数据流图出发,逐层地对系统进行分解。每分解一次,系统中加工的数量就随之增加,每个加工的功能描述也越来越具体。重复这种分解,直至得到
22、系统的底层数据流图。底层数据流图中的所有加工都应是不可再分解的、最简单的“原子加工”。通过分解过程中得到的这一组分层数据流图(由顶层、中间层和底层数据流图共同构成)就可以十分清晰地描述出整个系统所有加工的详细情况。第3章 软件需求分析与建模 下面以某单位工资管理系统为例,来介绍一下分层数据流模型的建立方法。1.1.建立顶层数据流图建立顶层数据流图 任何系统的顶层数据流图都只有一个,用于反映目标系统所要实现的功能及与外部环境的接口。顶层数据流图中只有一个代表整个系统的加工,数据的源点和终点对应着系统的外部实体,表明了系统输入数据的来源和输出数据的去向。工资管理系统的顶层数据流图如图3.5所示。第
23、3章 软件需求分析与建模 2.2.数据流图的分层细化数据流图的分层细化 首先按照系统的功能,对顶层数据流图进行分解,生成第一层数据流图。如例子中的工资计算系统可划分为计算工资、打印工资清单和工资转存三个加工。其中,计算工资完成单位职工工资计算,生成工资清单的功能;打印工资清单完成工资条的打印功能;工资转存完成生成职工工资存款清单并将其发送到银行的功能。对划分得到的加工应进行编号,如图3.6中工资计算的编号为1,打印工资清单的编号为2,工资转存的编号为3。加工之间的数据流也应在数据流图中标明,如图3.6中计算工资将单位职工的实发工资表传送给工资转存。此外,在标出数据流和划分加工的同时,还要在图中
24、画出涉及的数据存储。第3章 软件需求分析与建模 图3.6 工资计算系统第一层数据流图第3章 软件需求分析与建模 对第一层数据流图中的加工继续分解,则可得到第二层数据流图,如图3.7所示。对分解得到的加工进行编号,以反映出它与上层数据流图之间的关系,如对第一层数据流图中的计算工资分解得到的数据流图中的加工的编号分别为1.11.4。若数据流图中的加工还可继续细化,则重复以上分解过程,直到获得系统的底层数据流图。工资计算系统的第三层数据流图如图3.8所示。第3章 软件需求分析与建模 图3.7 工资计算系统的第二层数据流图(a)“计算工资”子数据流图;(b)“工资转存”子数据流图第3章 软件需求分析与
25、建模 图3.8 工资计算系统的第三层数据流图人事部门1.1.2计算业绩奖出勤表业绩表请假、旷工时数出勤时数1.1.3计算出勤奖1.1.4计算缺勤扣款业绩奖奖惩条例F1缺勤扣款表1.1.5计算各项奖金之和奖金发放表1.1.1统计出勤、请假及旷工时数出勤奖1.2.1计算各项基本数据之和1.2.2计算工资奖金之和工资档案F2应发工资表奖金发放表基本工资第3章 软件需求分析与建模 3.3.4 3.3.4 建立数据流模型的原则建立数据流模型的原则 建立数据流模型要遵循以下的原则:(1)每个加工至少应有一个输入数据流(反映被处理数据的来源)和一个输出数据流(反映加工的结果)。(2)数据流图中各构成元素的名
展开阅读全文