《软件需求分析与建模.ppt》由会员分享,可在线阅读,更多相关《软件需求分析与建模.ppt(146页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章软件工程过程模型2022/12/4 1结束返回瀑布模型(waterfall model)定义 部分 开发部分 维护部分制定计划需求分析软件设计程序编写软件测试运行/维护图2.7瀑布模型引言2022/12/4 2结束返回第3章 软件需求分析与建模3.1 需求分析3.2 数据建模3.3 功能建模3.4 行为建模3.6 结构化需求分析的若干技术3.5 数据字典3.7 验证软件需求第3章 软件需求分析与建模2022/12/4 3结束返回【难点、重点】本章的学习重点在于理解软件需求的概念和重要性,熟悉需求开发和需求管理的基本思想和主要活动,掌握结构化的分析方法;难点是怎样在实际的软件项目中灵活运用
2、这些思想和方法。第3章 软件需求分析与建模2022/12/4 4结束返回【学习目的】本章介绍需求分析的意义、概念和方法,了解结构化分析方法和需求管理的关键活动;要求学会运用实体关系图、数据流图和状态控制图进行结构化分析建模,能够编写软件需求规格说明书。第3章软件工程过程模型2022/12/4 5结束返回软件需求分析的目的待开发项目的可行性分析的基础上建立目标系统的逻辑模型需求分析输入输出图图3.1 3.1 需求分析的目的第3章 软件需求分析与建模2022/12/4 6结束返回3.1 软件需求分析3.1.1 需求分析的任务3.1.2 需求分析的步骤3.1.3 需求分析的原则第3章 软件需求分析与
3、建模2022/12/4 7结束返回3.1 软件需求分析3.1.1 需求分析的任务 (1)需求分析的主要任务 设计阶段的依据需求分析阶段软件规格说明书生成、提交作为 就是要通过软件开发人员与用户的交流和讨论,准确地获取用户对系统的具体要求,见图1.11。理解需求图图3.23.2(1)软件定义时期 软件定义部分又可划分为问题定义、可行性研究和需求分析三个阶段。软件定义时期需求分析可行性研究问题定义系统分析报告可行性分析报告初步项目计划需求规格说明书1.3 软件生存期(software life cycle)要解决的问题是什么是否有可行的解决办法目标系统必须做什么图1.11 第1章 软件工程引论任务
4、任务任务撰写撰写撰写进入下一时期第3章 软件需求分析与建模2022/12/4 9结束返回3.1.1 需求分析的任务 由于需求分析研究的对象是用户对开发项目的要求,在实现这一阶段任务时必须要注意两个问题。(2)需求分析研究的对象需求分析员软件设计人员用户交流的难题留下隐患系统模型花时搞清需求建好模型图图3.33.3问题一问题二第4章 软件需求分析与建模2022/12/4 10结束返回图图3.4 3.4 需求分析类型需求分析类型 (3)系统的需求分类 业务需求业务需求反映了组织机构或客户对系统或产品高层次的目反映了组织机构或客户对系统或产品高层次的目标要求,它们在项目视图与范围文档中予以说明。标要
5、求,它们在项目视图与范围文档中予以说明。用户需求用户需求 描述了用户使用产品必须要完成的任务,可以在描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。用例模型或方案脚本中予以说明。功能需求功能需求 定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。主要说明了待开发系统在功能上实际应做些什么,是用户最主要的需求。通常包括系统的输入、系统能完成的功能、系统的输出及其他反应。非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。主要包括:过程需求(如交付需求、实现方法需求等)产品需求(如可靠性需求、可移植性需求、安全保
6、密性需求)外部需求(如法规需求、费用需求等)等。第3章 软件需求分析与建模2022/12/4 11结束返回3.1 软件需求分析3.1.2 需求分析的步骤需求获取需求分析需求建模编写需求文档需求验证第3章 软件需求分析与建模2022/12/4 12结束返回3.1.2 需求分析的步骤需求分析阶段的工作,大致可分为如下几个步骤进行:阅读描述系统需求的用户文档;对相关软件、技术的市场调查;对管理部门、用户的访问咨询;对工作现场的实际考察等。(1)获取用户的需求 软件开发人员只有通过认真细致的调查研究,才能获得进行系统分析的原始资料。需求信息的获取可来源于:第3章 软件需求分析与建模2022/12/4
7、13结束返回3.1.2 需求分析的步骤 (2)需求分析 对于获取的原始需求,软件开发人员需要根据掌握的专业知识,运用抽象的逻辑思维,找出需求间的内在联系和矛盾,去除需求中不合理和非本质的部分,确定软件系统的真正需求。(3)需求建模 对于确定的系统需求,软件开发人员要通过现有的需求分析方法及工具对其进行清晰、准确的描述,建立无二义性的、完整的系统逻辑模型。第3章 软件需求分析与建模2022/12/4 14结束返回3.1.2 需求分析的步骤 (4)书写需求说明书 需求阶段应提交的主要文档包括需求规格说明书、初步的用户手册和修正后的开发计划。其中,需求规格说明书是对分析阶段主要成果的综合描述,是该阶
8、段最重要的技术文档。第3章 软件需求分析与建模2022/12/4 15结束返回3.1.2 需求分析的步骤 (5)需求复审 为了保证软件开发的质量,对需求分析阶段的工作要按照严格的规范进行复审,从不同的技术角度对该阶段工作做出综合性的评价。复审即要有用户参加,也要有管理部门和软件开发人员参加。第3章 软件需求分析与建模2022/12/4 16结束返回3.1 软件需求分析3.1.3 需求分析的原则需求分析的原则 目前存在着许多需求分析的方法,虽然各种方法都有其独特的描述方法,但不论采用何种方法,需求分析都必须遵循以下基本原则:(1)能够表达和理解问题的数据域和功能域 所有软件开发的最终目的都是为了
9、解决数据处理的问题,数据处理的本质就是将一种形式的数据转换成另一种形式的数据。需求分析阶段必须明确系统中应具备的每一个加工、加工的处理对象和由加工所引起的数据形式的变化。第3章 软件需求分析与建模2022/12/4 17结束返回3.1.3 需求分析的原则需求分析的原则 (2)分解 为了便于问题的解决和实现,在需求分析过程中需要对于原本复杂的问题按照某种合适的方式进行分解(对功能域和数据域均可)。使系统的理解和实现变得较为容易。第3章 软件需求分析与建模2022/12/4 18结束返回 (3)能够给出系统的逻辑表示和物理表示 系统需求的逻辑表示用于指明系统所要达到的功能要求和需要处理的数据,不涉
10、及实现的细节。系统需求的物理表示用于指明处理功能和数据结构的实际表现形式,通常由系统中的设备决定。3.1.3 需求分析的原则需求分析的原则第3章 软件需求分析与建模2022/12/4 19结束返回3.1 软件需求分析3.1.4 需求分析的需求分析的方法方法结构化分析 (SA)面向对象分析 (OOA)实体关系图数据流图状态转换图数据建模功能建模动态建模分析建模方法进行进行进行结构化分析(SA,Structure Analysis)面向对象分析(OOA,Object Oriented Analysis)图图3.5 3.5 需求分析需求分析方法方法第3章 软件需求分析与建模2022/12/4 20结
11、束返回3.1 软件需求分析3.1.5 需求分析模型需求分析模型 需求分析产生的模型使人们可以更好地理解将要建造的系统,它有助于系统分析员理解系统的信息、功能和行为,成为确定需求规格说明完整性、一致性和精确性的重要依据,奠定了软件设计的基础。第3章 软件需求分析与建模2022/12/4 21结束返回3.1 软件需求分析3.1.5 需求分析模型需求分析模型 结构化分析导出的分析模型包括数据模型、功能模型和行为模型。该模型以“数据字典”为核心,描述了软件使用的所有数据对象,围绕这个核心的是“实体关系图”、“数据流图”和“状态转换图”。具体形式如下图所示:第3章 软件需求分析与建模2022/12/4
12、22结束返回3.1 软件需求分析3.1.5 需求分析模型需求分析模型图图3.6 3.6 需求分析需求分析模模型型实体关系图(ER,Entity Relation):数据建模的基础,描述数据对象及其关系;数据流图(DFD,Data Flow Diagram):功能建模的基础,描述数据怎样转换以及转换的功能;状态转换图(ST,Status Tranformtion)行为建模的基础,表示系统的各种行为状态以及状态间的转换方式。;第3章 软件需求分析与建模2022/12/4 23结束返回3.2 数据建摸3.2.1 实体关系图3.2.2 方框层次图3.2.3 Warnier图第3章 软件需求分析与建模2
13、022/12/4 24结束返回3.2 数据建摸(1)数据模型包括三种基本元素:数据对象属性关系它们对理解问题的信息域提供了基础。3.2.1 实体关系图 数据对象表示具有不同属性的事物,ER用带有标记的矩形来表示。关系表示数据对象之间的相互连接,ER用直线连接相关联的数据对象,并在直线上用带标记的菱形框来表示关系。属性也称性质,指数据对象某一方面的特征,ER用带有标记的椭圆来表示。第3章 软件需求分析与建模2022/12/4 25结束返回3.2 数据建摸3.2.1 实体关系图属性(2)ER(2)ER图中的基本符号图中的基本符号连接连接连接连接图3.7 ER图的符号第3章 软件需求分析与建模202
14、2/12/4 26结束返回3.2.1 实体关系图 两个数据对象之间有以下三种关联,ER在数据对象之间的连线上用数字或字母表示:一对一(1:1):对象 A的一个实例只能关联到对象B的一个实例,对象 B的一个实例也只能关联到对象A的一个实例.对象 A对象 B丈夫妻子关系夫妻1111图3.8 一对一关系第3章 软件需求分析与建模2022/12/4 27结束返回3.2.1 实体关系图一对多(1:N):对象 A的一个实例可以关联到对象B的一个或多个实例,而对象 B的一个实例只能关联到对象A的一个实例,如一个母亲可以有多个孩子,而一个孩子只能有一个母亲。对象 A对象 B母亲孩子关系母子1n1n图3.9 一
15、对多关系第3章 软件需求分析与建模2022/12/4 28结束返回3.2.1 实体关系图 多对多(M:N):对象 A的一个实例可以关联到对象B的一个或多个实例,同时对象 B的一个实例也可以关联到对象A的一个或多个实例,如一个叔叔可以有多个侄子,一个侄子也可以有多个叔叔。对象 A对象 B叔叔侄子关系叔侄mnmn图3.10 多对多关系第3章 软件需求分析与建模2022/12/4 29结束返回学学生生选选课课ER图图图图3.113.11第3章 软件需求分析与建模2022/12/4 30结束返回工工资资计计算算系系统统ER图图图图3.123.12第3章 软件需求分析与建模2022/12/4 31结束返
16、回3.2 数据建摸3.2.2 方框层次图层次方框图也是数据建模的图形工具 层次方框图通过树型结构的一系列多层次的矩形框描述复杂数据的层次结构。树型结构顶端的矩形框只有一个,用于代表完整的数据结构。下面各层的矩形框是对完整数据结构的逐步分解和细化得到的数据子集;底层的矩形框代表组成该数据结构的基本元素,是数据的最小单位,不可再分割。第3章 软件需求分析与建模2022/12/4 32结束返回3.2 数据建摸3.2.2 方框层次图 层次方框图非常适合描述自顶向下的需求分析方法中数据的层次关系。系统分析员可以从对顶层信息的分类开始,沿着层次图中的每条路径逐步细化,直到确定了数据结构的全部细节为止。第3
17、章 软件需求分析与建模2022/12/4 33结束返回3.2 数据建摸3.2.2 方框层次图 例如,某单位职工的实发工资由应发工资和扣款两部分组成,每部分又可进一步细分。如应发工资又可分为基本工资和奖金;基本工资又可分为国家工资、津贴、补贴;奖金也可分为出勤奖和业绩奖;津贴和补贴还可以再进一步地细分。实发工资的层次方框图如下图所示。第3章 软件需求分析与建模2022/12/4 34结束返回图图3.13 3.13 职工工资的层次方框图职工工资的层次方框图第3章 软件需求分析与建模2022/12/4 35结束返回3.2 数据建摸3.2.3 Warnier图 Warnier图是法国科学家Warnie
18、r提出的另一种描述数据层次结构的图形工具。与层次方框图类似,Warnier图也采用了树型结构表示数据,但与层次方框图相比,Warnier图对数据的描绘手段更加丰富。第3章 软件需求分析与建模2022/12/4 36结束返回3.2.3 Warnier图 在Warnier图中,使用大括号来区分数据结构的层次。一个大括号内的所有名字都属于同一类信息;异或符号“”用于表明一类信息或一个数据元素在一定条件下出现,而且在这个符号上、下方的两个名字所代表的数据只能出现一个。在一个名字下面或右边的圆括号中出现的数字指明了这个名字所代表的信息类或数据元素在该数据结构中重复出现的次数。第3章 软件需求分析与建模2
19、022/12/4 37结束返回3.2.3 Warnier图 例如,某计算机公司的一种软件产品要么是系统软件,要么是应用软件;系统软件中有k1种操作系统、k2种编译程序,此外还有工具软件;工具软件进一步又可划分为编辑程序、测试工具和辅助设计工具,它们各自的数量分别为j1、j2和j3。描绘这种软件产品的Warnier 图如图4.14所示。第3章 软件需求分析与建模2022/12/4 38结束返回3.2.3 Warnier图图4.14 描绘一种软件产品的Warnier图软件产品软件产品系统软件系统软件应用软件应用软件操作系统操作系统(k1)编译程序编译程序(k2)工具软件工具软件编辑程序编辑程序(j
20、1)测试工具测试工具(j2)辅助设计工具辅助设计工具(j3)第3章软件需求分析与建模2022/12/4 39结束返回练习题练习题-实体关系图实体关系图图3.15 某学校教学管理ER图教师 学生课程教学职称职务性别姓名职工号学号院系年级课名学时课程号学分姓名性别1nnm成绩第3章软件需求分析与建模2022/12/4 40结束返回小结作业 P57 1,5需求分析的任务需求分析的步骤需求分析的原则实体关系图方框层次图Warnier图需求分析的需求分析的方法方法需求分析模型需求分析模型第3章系统工程基础与可行性研究2022/12/4 41结束返回软件定义时期需求分析可行性研究问题定义系统分析报告可行性
21、分析报告初步项目计划需求规格说明书要解决的问题是什么是否有可行的解决办法目标系统必须做什么任务任务任务撰写撰写撰写图1.11软件定义 软件定义部分又可划分为问题定义、可行性研究和需求分析三个阶段。软件定义部分第3章 软件需求分析与建模2022/12/4 42结束返回3.1 软件需求分析3.1.5 需求分析模型需求分析模型图图3.6 3.6 需求分析需求分析模模型型实体关系图(ER,Entity Relation):数据建模的基础,描述数据对象及其关系;实体关系图方框层次图Warnier图第3章 软件需求分析与建模2022/12/4 43结束返回3.3 功能建模【本节知识点本节知识点】数据流图数
22、据流图功能建模功能建模第3章 软件需求分析与建模2022/12/4 44结束返回3.3 功能建模 数据流图(DFD,Data Flow Diagram)是结构化分析的基本工具,它描述了信息流和数据转换,通过对加工进行分解可以得到数据流图。3.3.1 数据流图概念数据流图功能模型创建第3章 软件需求分析与建模2022/12/4 45结束返回3.3 功能建模DFD有四种元素,其基本符号如下图所示:3.3.2 数据流图符号外部实体:与系统进行交互,但系统不对其进行加工和处理的实体,用带标记的矩形表示;加工:对数据进行的变换和处理,用带标记的圆圈表示;数据流:在数据加工之间或数据存储和数据加工之间进行
23、流动的数据,用带标记的箭头表示;数据存储:在系统中需要存储的实体,用带标记的双实线表示。第3章 软件需求分析与建模2022/12/4 46结束返回3.3.3 基本系统模型 第0层DFD称为基本系统模型,可以将整个软件系统表示为一个具有输入和输出的黑匣子,用一个圆圈表示。图3.16系统的顶层数据流图第4章 软件需求分析与建模2022/12/4 47结束返回3.3.4 数据流与加工之间的关系表3.1 加工中常见关系的符号表示符符 号号含含 义义由数据A和B共同变换为数据C由数据A变换为数据B和数据C由数据A或B,或者数据A和B共同变换为数据C由数据A变换为数据B或C,或者同时变换为数据B和C由数据
24、A或B其中之一变换为数据C由数据A变换为数据B或C其中之一第3章 软件需求分析与建模2022/12/4 48结束返回3.3 功能建模3.3.5 数据流模型的创建 通常,数据流图是分层绘制的,整个过程反映了自顶向下进行功能分解和细化的分析过程。顶层(也称第0层)DFD用于表示系统的开发范围,以及该系统与周围环境的数据交换关系;最底层DFD代表了那些不可进一步分解的“原子加工”;中间层DFD是对上一层父图的细化,其中的每一个加工可以继续细化,中间层次的多少由系统的复杂程度决定。第3章 软件需求分析与建模2022/12/4 49结束返回3.3.5 数据流模型的创建(1)建立数据流图的步骤 第0层DF
25、D将整个系统表示成一个加工;确定并标记主要的输入和输出;分离出下一层中的加工、数据对象和存储,并对其进行细化,一次细化一个加工;标记所有加工和箭头;重复步骤和,直到所有的加工只执行一个简单的操作,可以很容易地用程序实现。第3章 软件需求分析与建模2022/12/4 50结束返回3.3.5 数据流模型的创建(2)建立数据流图的说明 绘制第0层DFD的时候,将整个系统看成一个加工,然后找出作用于该加工的外部实体,以及相应的数据输入和输出。绘制下一层数据流图时,细化第0层的加工,从而描述系统的主要功能。继续进行分解,直到所有的加工只执行一个简单的操作为止。第3章 软件需求分析与建模2022/12/4
26、 51结束返回3.3 功能建模3.3.5 数据流模型的创建图3.17 工资计算系统的顶层(0层)数据流图(3)建立顶层数据流图系统基本模型第3章 软件需求分析与建模2022/12/4 52结束返回3.3.5 数据流模型的创建(4)分层细化 上一层DFD中的每一个圆圈可以进一步扩展成一个独立的数据流图,以揭示系统中程序的细节部分。第3章 软件需求分析与建模2022/12/4 53结束返回3.3.5 数据流模型的创建图3.18 “自顶向下,逐步分解”过程示意图第3章 软件需求分析与建模2022/12/4 54结束返回3.3.5 数据流模型的创建 这种循序渐进的细化过程可以继续进行,直到最低层的图仅
27、描述原子过程操作为止。每一层数据流图必须与它上一层数据流图保持平衡和一致,因此,子图的所有输入输出流要与其父图相匹配。(5)注意的问题第3章 软件需求分析与建模2022/12/4 55结束返回3.3.5 数据流模型的创建图3.19 工资计算系统第一层数据流图(6 6)实例)实例分层细化分层细化例:工资计算系统23 第3章 软件需求分析与建模2022/12/4 56结束返回图3.20 工资计算系统的第二层数据流图(a)“计算工资”子数据流图;(b)“工资转存”子数据流图实例分层细化第3章 软件需求分析与建模2022/12/4 57结束返回图3.21 工资计算系统的第三层数据流图实例分层细化第3章
28、 软件需求分析与建模2022/12/4 58结束返回实例分层细化建立数据流模型要遵循以下的原则:(1)每个加工至少应有一个输入数据流(反映被处理数据的来源)和一个输出数据流(反映加工的结果)。3.3.6 建立数据流模型的原则 (2)数据流图中各构成元素的名称必须具有明确的含义且能够代表对应元素的内容或功能。(3)对数据流图中某个加工进行细化生成的下层数据流图,称为其上层图的子图。应保证分层数据流图中任意对应的父图和子图的输入/输出数据保持一致。图3.17 工资计算系统的顶层(0层)数据流图图3.19 工资计算系统第一层数据流图23第3章 软件需求分析与建模2022/12/4 59结束返回实例分
29、层细化 (4)在数据流图中,应按照层次给每个加工编号,用于表明该加工所处的层次及上、下层的父图与子图的关系。编号的规则为:顶层加工不用编号;第二层加工的编号为1,2,n;第三层加工的编号为1.1,1.2,2.1,n.1,n.2,等,依次类推。(5)在父图中不要出现子图中涉及的局部数据存储文件。通常除底层数据流图中需标明所有数据存储外,为了保持画面的整洁,各中间层数据流图只需显示处于加工之间的接口文件即可。3.3.6 建立数据流模型的原则图3.19 工资计算系统第一层数据流图23第3章 软件需求分析与建模2022/12/4 60结束返回实例分层细化 (6)数据流图只能由四种基本符号组成,是实际业
30、务流程的客观映象,用于说明系统应该“做什么做什么”,而不需要指明系统“如何做如何做”。(7)数据流图的分解速度应保持适中。通常一个加工每次可分解为2-4个子加工,最多不要超过七个,因为过快的分解会增加用户对系统模型理解的难度。(8)为了便于数据流图在计算机上的输入和输出,免去画斜线、弧线、圆等符号的麻烦,数据流图还有另一套表示符号,如表4.2所示。3.3.6 建立数据流模型的原则第3章 软件需求分析与建模2022/12/4 61结束返回实例分层细化表表3.2 3.2 数据流图的另一套表示符号数据流图的另一套表示符号编号编号符号含义数据流,只能为水平或垂直的带箭头直线加工数据存储数据的源点或终点
31、3.3.7 3.3.7 数据流图的另一套表示符号数据流图的另一套表示符号第3章 软件需求分析与建模2022/12/4 62结束返回实例分层细化练习题:试画你开发的系统的数据流图。3.3 功能建模(1)建立数据流图的步骤(2)建立数据流模型的原则本节小结:第3章 软件需求分析与建模2022/12/4 63结束返回3.4 行为建模【本节知识点本节知识点】状态转换图状态转换图行为建行为建模模第3章 软件需求分析与建模2022/12/4 64结束返回 状态转换图状态转换图通过描述状态以及导致系统通过描述状态以及导致系统改变改变状态的事件状态的事件来表示来表示系统的行为系统的行为,它没有表示出系,它没有
32、表示出系统所执行的处理,统所执行的处理,只表示了处理结果可能的状态只表示了处理结果可能的状态转换转换。3.4.1 状态转换图 (1)状态转换图的概念 第3章 软件需求分析与建模2022/12/4 65结束返回 ST(ST(ST,Status Tranformtion)用带标记的圆圈或矩用带标记的圆圈或矩形表示状态,用箭头表示从一种状态到另一种状形表示状态,用箭头表示从一种状态到另一种状态的变换,箭头上的文本标记表示引起变换的条态的变换,箭头上的文本标记表示引起变换的条件。件。3.4.1 状态转换图 (2)状态转换图符号 第3章 软件需求分析与建模2022/12/4 66结束返回 例如例如,在操
33、作系统中,当存在多个申请占用,在操作系统中,当存在多个申请占用CPU运行的运行的进程进程(进程是分配进程是分配CPU的最小处理单位的最小处理单位)时,系统将按照某种时,系统将按照某种调度策略调度策略为各个进程分配为各个进程分配CPU。此时,进程的状态可能有三种:就绪、运。此时,进程的状态可能有三种:就绪、运行和等待。行和等待。就绪:就绪:等待分配等待分配CPU;运行:运行:占用占用CPU进行相应的处理;进行相应的处理;挂起:挂起:放弃放弃CPU的使用。的使用。3.4.1 状态转换图 (3)实例 第3章 软件需求分析与建模2022/12/4 67结束返回3.4.1 3.4.1 状态转换图状态转换
34、图 导致系统状态发生迁移的事件有四种:t1、t2、t3、t4,分述如下:t1:因I/O等事件的发生而要求中断;t2:中断事件已经处理完毕;t3:分配CPU;t4:已用完分配的CPU时间。在上面描述的情况下,有关CPU分配的进程的状态迁移图如图3.22(a)所示。第3章 软件需求分析与建模2022/12/4 68结束返回3.4.2 状态迁移表 状态迁移图还可以表示为等价的表格形式,这样的表格称为状态迁移表。状态迁移表的列由所有的系统状态组成,行由引起状态迁移的所有信号或事件组成,表格中第i行第j列的元素是从状态Sj因发生事件ti而会迁移到的状态。与图3.22(a)等价的状态迁移表如表3.3所示。
35、在表中,S1代表就绪状态;S2代表运行状态;S3代表挂起状态。第3章 软件需求分析与建模2022/12/4 69结束返回表表3.3 3.3 进程的状态迁移表进程的状态迁移表状 态事件S1(就绪)S2(运行)S3(挂起)t1S3t2S1t3S2t4S13.4.2 状态迁移表 导致系统状态发生迁移的事件有四种:t1、t2、t3、t4,分述如下:t1:因I/O等事件的发生而要求中断;t2:中断事件已经处理完毕;t3:分配CPU;t4:已用完分配的CPU时间。第3章 软件需求分析与建模2022/12/4 70结束返回 如果状态转换图所描述的系统比较复杂,则可以采用状态图的分层表示法。例如对图4.22(
36、a)所示的状态图中的大状态S1进行细化,就得到了图4.22(b)所示的下层状态迁移图。如果在状态迁移图,一个状态由于某个事件而导致的下一个状态可能会有多个,可在状态迁移图中引入判断框和处理框,如图4.22(c)中所示的状态迁移图就是采用这种方法对图4.22(a)的变形。3.4.3 状态迁移图第3章 软件需求分析与建模2022/12/4 71结束返回3.4.3 状态迁移图图3.22 状态迁移图举例(a)状态迁移图;(b)细化后的状态迁移图;(c)状态迁移图的变形第3章 软件需求分析与建模2022/12/4 72结束返回3.5 数据字典【本节知识点本节知识点】数据字典数据字典结构化语言、判断树和判
37、断表结构化语言、判断树和判断表第3章 软件需求分析与建模2022/12/4 73结束返回 数据字典描述数据流图的数据存储、数据加工(最底层加工)和数据流,它记录的主要内容有:基本信息:名字、别名、描述;定义:数据长度、数据类型、数据结构;使用特点:取值范围、使用频率、使用方式等;控制信息:来源、用户、引用程序、读写权限等;其他说明:3.5 数据字典3.5.1 数据字典的描述第3章 软件需求分析与建模2022/12/4 74结束返回 在数据字典中,数据元素的定义可以是基本元素及其组合,数据进行自顶向下地分解,直到不需要进一步解释且参与人员都清楚其含义为止。3.5.1 数据字典的描述第3章 软件需
38、求分析与建模2022/12/4 75结束返回数据组合有三种方式:顺序:以确定的次序连接多个数据项;选择:从多个数据项中选取一个;重复:将某个数据项重复多次。为了能够对数据流中的各组成成分进行准确的定义,在数据字典中使用了多种具有特定意义的符号,如下:3.5.1 数据字典的描述第3章 软件需求分析与建模2022/12/4 76结束返回符符 号号含含 义义说说 明明=表示定义为用于对=左边的条目进行确切的定义+表示与关系X=a+b表示X由a和b共同构成|,表示或关系X=a|b与X=a,b等价,表示X由a或b组成()表示可选项X=(a)表示a可以在X中出现,也可以不出现 表示重复大括号中的内容重复0
39、到多次m n表示规定次数的重复重复的次数最少m次,最多n次“”表示基本数据元素“”中的内容是基本数据元素,不可再分.连接符month=1.12表示month可取112中的任意值*表示注释两个星号之间的内容为注释信息表表3.5 3.5 数据字典中的基本符号及含义中的基本符号及含义3.5.1 数据字典的描述第3章 软件需求分析与建模2022/12/4 77结束返回3.5.2 数据字典中的条目及说明格式数据字典中的条目及说明格式 数据字典是关于数据流图中各种成分详细定义的信息集合,可将其按照说明对象的类型划分为四类条目,分别为数据流条目、数据项条目、数据文件条目和数据加工条目。为了便于软件开发人员方
40、便地查找所需的条目,应按照一定的顺序对数据字典中的不同条目进行排列。下面分别对各类条目的内容及说明格式进行介绍。第3章 软件需求分析与建模2022/12/4 78结束返回3.5.2 数据字典中的条目及说明格式数据字典中的条目及说明格式 数据流在数据流图中主要用于说明数据结构在系统中的作用和流动方向,因此数据流也被称作“流动的数据结构流动的数据结构”。数据字典中数据流条目应包括以下几项主要内容:数据流名称、数据流别名、说明、数据流来源、数据流流向、数据流组成和数据流量等。例如:工资系统中的出勤表数据流在数据字典中的条目描述为:1.数据流条目数据流条目第3章 软件需求分析与建模2022/12/4
41、79结束返回3.5.2 数据字典中的条目及说明格式数据字典中的条目及说明格式数据流名称出勤表数据流别名无说 明由人事部门每月月底上报的职工考勤统计数字数据流来源人事部门数据流流向加工1.2(计算应发工资)数据流组成出勤表=年份+月份+职工号+出勤时数+病假时数+事假时数+旷工时数数据流量1份/月表表3.6 出勤表数据流的描述表第3章 软件需求分析与建模2022/12/4 80结束返回3.5.2 数据字典中的条目及说明格式数据字典中的条目及说明格式 数据流图中每个数据结构都是由若干个数据项构成的,数据项是加工中的最小单位,不可再分。数据字典的数据项条目中应包含的主要内容有:数据项名称、数据项别名
42、、说数据项名称、数据项别名、说明、类型、长度、取值范围及含义等。明、类型、长度、取值范围及含义等。例如例如:出勤表中的职工号职工号数据项在数据字典中的条目描述为2.数据项条目数据项条目第3章 软件需求分析与建模2022/12/4 81结束返回3.5.2 数据字典中的条目及说明格式数据字典中的条目及说明格式数据项名称职工号数据项别名zg_no说 明本单位职工的惟一标识类 型字符串长 度6取值范围及含义12位(00.99)为部门编号:36位(XX0001.XX9999)为人员编号表3.7出勤表中的职工号数据项条目描述表第3章 软件需求分析与建模2022/12/4 82结束返回3.5.2 数据字典中
43、的条目及说明格式数据字典中的条目及说明格式 数据文件是数据流图中数据结构的载体。数据字典的数据文件条目中应包含的主要内容有:数据文件名称、说明、数据文件名称、说明、数据文件组成、组织方式、存取方式、存取频率等。数据文件组成、组织方式、存取方式、存取频率等。例如:工资系统中的职工工资档案文件在数据字典中的条目描述为:3.数据文件条目数据文件条目第3章 软件需求分析与建模2022/12/4 83结束返回3.5.2 数据字典中的条目及说明格式数据字典中的条目及说明格式数据文件名称工资档案数据文件别名Zgda表说 明单位职工的基本工资、各项津贴及补贴信息数据文件组成职工号+国家工资+国家津贴+职务津贴
44、+职龄津贴+交通补贴+部门补贴+其他补贴组 织 方 式按职工号从小到大排列存 取 方 式顺序存 取 频 率1次/月表3.8职工工资档案文件描述表第3章 软件需求分析与建模2022/12/4 84结束返回3.5.2 数据字典中的条目及说明格式数据字典中的条目及说明格式 在数据流图中只简单给出了每个加工的名称,在数据字典中通过数据加工条目主要是要说明每个加工是用来“做什么”的。数据字典的数据文件条目中应包含的主要内容有:数据加工名称、加工编号、说明、输入数据流、输出数数据加工名称、加工编号、说明、输入数据流、输出数据流、加工逻辑等。据流、加工逻辑等。例如:工资系统中的计算应发工资计算应发工资这个加
45、工在数据字典中的条目描述为:4.数据加工条目数据加工条目第3章 软件需求分析与建模2022/12/4 85结束返回数据加工名称计算应发工资数据加工编号1.2说 明根据职工的工资档案及本月奖金发放表数据计算每个职工的应发工资输入数据流奖金发放表及工资档案输出数据流应发工资表加 工 逻 辑DO WHILE 工资档案文件指针未指向文件尾 从工资档案中取出当前职工工资的各项基本数据进行累加;在奖金发放表中按职工号查找到该职工的奖金数;对奖金数与工资基本数据的累加和进行求和得到该职工的应发工资数ENDDO表3.9计算应发工资加工描述表第3章 软件需求分析与建模2022/12/4 86结束返回3.5 数据
46、字典练习题:试定义你开发的系统的数据字典。(1)建立数据字典的概念(2)数据字典的描述本节小结:第3章 软件需求分析与建模2022/12/4 87结束返回3.5.3 编写加工规格说明 加工规格说明用于描述描述底层数据流图的加加工工,包括叙述性正文、加工算法、数学方程、叙述性正文、加工算法、数学方程、表或图表等表或图表等,它可以成为编写软件需求规格说明的第一步,并为加工的程序设计提供指南。通常,加工规格说明采用结构化语言结构化语言、判断树判断树和判断判断表等进行描述。第3章 软件需求分析与建模2022/12/4 88结束返回3.5.3 编写加工规格说明 结构化语言是一种介于自然语言和形式化语言之
47、间的半形式半形式化语言,化语言,例如例如,上面对计算应发工资条目中加工逻辑的描述就是采用的结构化语言。它是在自然语言的基础上加入了一定的限制,通过使用有限的词汇和有限的语句来较为严格地描述加工逻辑。描述时可以使用的词汇包括:数据字典中定义的名字、基本数据字典中定义的名字、基本控制结构中的关键词、自然语言中具有明确意义的动词和少量的控制结构中的关键词、自然语言中具有明确意义的动词和少量的自定义词汇等自定义词汇等。尽量不使用形容词或副词,可以使用一些简单的算术或逻辑运算符。1.结构化语言结构化语言第3章 软件需求分析与建模2022/12/4 89结束返回3.5.3 编写加工规格说明 (1)(1)顺
48、序结构顺序结构:由自然语言中的简单祈使语句序列构成。(2)(2)选择结构选择结构:通常采用IFTHENELSEENDIF和CASEOFENDCASE结构。(3)(3)循环结构循环结构:通常采用DO WHILEENDDO和REPEATUNTIL结构。结构化语言中的三种基本结构三种基本结构的描述方法如下:第3章 软件需求分析与建模2022/12/4 90结束返回3.5.3 编写加工规格说明 当某一加工的实现需要同时依赖多个逻辑条件的取值时,对加工逻辑的描述就会变得较为复杂,很难采用结构化语言清楚地将其描述出来,而采用判定表则能够完整且清晰地表达复杂的条件组合与由此产生的动作之间的对应关系。判定表通
49、常由用双线分隔开的四个部分构成判定表通常由用双线分隔开的四个部分构成:左上部左上部用于列出所有相关的条件;左下部左下部用于列出所有可能产生的动作;右上部右上部用于列出所有可能的条件组合;右下部右下部用于列出在各种组合条件下需要进行的动作。2.判定表判定表第3章 软件需求分析与建模2022/12/4 91结束返回3.5.3 编写加工规格说明 下面以描述某单位工资档案管理系统中“职务津贴计算职务津贴计算”加工逻辑为例说明判定表的写法。由于篇幅限制,在下面的例子中假定职工的职称只分为助工、工程师和高工助工、工程师和高工三种,对应的判定表见表3.10。条件列表条件列表条件组合条件组合动作列表对应的动作
50、通常把表中任意一个条件组合的特定取值及其相应要执行的动作称为规则规则。判定表的一般格式如下所示。第3章 软件需求分析与建模2022/12/4 92结束返回3.5.3 编写加工规格说明 表表3.10 “3.10 “职务津贴计算职务津贴计算”判定表判定表第3章 软件需求分析与建模2022/12/4 93结束返回3.5.3 编写加工规格说明 要生成上面的判定表,具体的步骤如下:(1)确定确定规则的个数。例子中有三个条件,每个条件有三种取值,故规则个数为33=9。(2)列出列出所有的条件和动作。(3)列出列出所有的条件组合。(4)填写填写每种条件组合下对应的动作。(5)若表中存在不同规则对应相同动作且