软件需求分析与建模.ppt
《软件需求分析与建模.ppt》由会员分享,可在线阅读,更多相关《软件需求分析与建模.ppt(146页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 需求 分析 建模
限制150内