软件工程课件第3章-需求分析((第六版)(张海潘编著)_第1页
软件工程课件第3章-需求分析((第六版)(张海潘编著)_第2页
软件工程课件第3章-需求分析((第六版)(张海潘编著)_第3页
软件工程课件第3章-需求分析((第六版)(张海潘编著)_第4页
软件工程课件第3章-需求分析((第六版)(张海潘编著)_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、 3.1 需求分析的任务需求分析的任务 3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法 3.3 分析建模与规格说明分析建模与规格说明 3.4 实体实体-联系图联系图 3.5 数据规范化数据规范化 3.6 状态转换图状态转换图 3.7 其他图形工具其他图形工具 3.8 验证软件需求验证软件需求第第3章章 需求分析需求分析三个时期:三个时期: 八个阶段:八个阶段:软件生命周期软件生命周期软件定义软件定义软件开发软件开发软件维护软件维护问题定义问题定义可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计编码和单元测试编码和单元测试综合测试综合测试运行维护运行维护系统设计系统

2、设计系统实现系统实现第第3章章 需求分析需求分析需求分析的需求分析的意义意义 软件需求的深入理解是软件开发工作获得软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码做得如成功的前提条件,不论我们把设计和编码做得如何出色,不能真正满足用户需求的程序只会令用何出色,不能真正满足用户需求的程序只会令用户失望,给开发带来烦恼。户失望,给开发带来烦恼。需求分析的任务:需求分析的任务:n需求分析是软件定义时期的最后一个阶段,它需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答的基本任务是准确地回答“系统必须做什么系统必须做什么?”这个问题。这个问题。n确定系统必须完成哪些

3、工作,也就是对目标系确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。统提出完整、准确、清晰、具体的要求。n系统分析员应该写出软件需求规格说明书,以系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。书面形式准确地描述软件需求。 n需求:需求:正在构建的系统必须符合的事务。正在构建的系统必须符合的事务。n需求管理:需求管理:是一种获取、组织并记录系统需求是一种获取、组织并记录系统需求的系统化方案以及一个使客户与项目团队不断的系统化方案以及一个使客户与项目团队不断变更的系统需求达成并保持一致的过程。变更的系统需求达成并保持一致的过程。n传统需求分析:传统

4、需求分析:强调需求的记录,以一成不变强调需求的记录,以一成不变的观点对待需求,不重视需求实现与维护。的观点对待需求,不重视需求实现与维护。n现代需求过程:现代需求过程:包括需求的获取、分析、处理、包括需求的获取、分析、处理、验证、实现和全过程的需求管理。需求管理覆验证、实现和全过程的需求管理。需求管理覆盖软件工程的整个过程。盖软件工程的整个过程。传统与现代需求方法的比较:传统与现代需求方法的比较: 需求管理过程需求管理过程需求管理功能需求管理功能需求管理思想方法需求管理思想方法传统传统局限于需求分局限于需求分析这一个阶段析这一个阶段注重具体的需注重具体的需求分析方法求分析方法一成不变的观点,一

5、成不变的观点,注重注重“描述描述”的方的方法和过程,是纯技法和过程,是纯技术性的转换术性的转换现代现代全过程的,注全过程的,注重整个产品过重整个产品过程的全部程的全部功能范围更广,功能范围更广,包括获取、分包括获取、分析、处理、验析、处理、验证、实现和全证、实现和全过程的需求管过程的需求管理理注重需求实现与维注重需求实现与维护过程,处理不断护过程,处理不断变更的系统需求变更的系统需求需求管理存在的问题:需求管理存在的问题:n范围问题:系统目标、边界未被良好定义,用范围问题:系统目标、边界未被良好定义,用户和开发团队理解不一致。户和开发团队理解不一致。n理解问题:用户不能完全了解自己需要什么,理

6、解问题:用户不能完全了解自己需要什么,对系统能力、局限更加不清楚;工程师不理解对系统能力、局限更加不清楚;工程师不理解用户的问题域和应用环境。用户的问题域和应用环境。n易变问题:需求随时间发生变化。易变问题:需求随时间发生变化。需求获取是如此之难需求工程:需求工程:n20世纪世纪80年代中期,形成了软件工程的子领年代中期,形成了软件工程的子领域域需求工程。需求工程。n进入进入20世纪世纪90年代后,需求工程称为软件界研年代后,需求工程称为软件界研究的重点之一。究的重点之一。nalan davis 把需求工程定义为把需求工程定义为“直到(但不包直到(但不包括)把软件分解为实际架构构件之前的所有活

7、括)把软件分解为实际架构构件之前的所有活动动”。需求工程的阶段划分:需求工程的阶段划分:需求分析方法遵守的原则n必须理解并描述问题的信息域,建立数据模型。必须理解并描述问题的信息域,建立数据模型。n必须定义软件应完成的功能,建立功能模型。必须定义软件应完成的功能,建立功能模型。n必须描述作为外部事件结果的软件行为,建立行为必须描述作为外部事件结果的软件行为,建立行为模型。模型。n必须对描述信息、功能和行为的建模进行分解,用必须对描述信息、功能和行为的建模进行分解,用层次的方法展示细节。层次的方法展示细节。3.1 需求分析的任务需求分析的任务 n确定对系统的综合要求确定对系统的综合要求 -功能需

8、求、性能需求、可靠性和可用性需求、出错处理需求、功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、接口需求、约束、 逆向需求、将来可能提出的要求。逆向需求、将来可能提出的要求。 n分析系统的数据要求分析系统的数据要求 n导出系统的逻辑模型导出系统的逻辑模型 n修正系统开发计划修正系统开发计划 3.1.1 确定对系统的综合要求确定对系统的综合要求 1. 功能需求功能需求2. 性能需求性能需求3. 可靠性和可用性需求可靠性和可用性需求4. 出错处理需求出错处理需求5. 接口需求接口需求6. 约束约束7. 逆向需求逆向需求8. 将来可能提出的要求将来可能提出的要求3.1.2 分析

9、系统的数据要求分析系统的数据要求n建立数据模型建立数据模型er图图 n描绘数据结构描绘数据结构层次方框图和层次方框图和warnier图图 n数据结构规范化数据结构规范化 3.1.3 导出系统的逻辑模型导出系统的逻辑模型 n综合上述两项分析的结果可以导出系统的详细综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用的逻辑模型,通常用数据流图数据流图、实体实体-联系图联系图、状态转换图状态转换图、数据字典数据字典和和主要的处理算法主要的处理算法描述描述这个逻辑模型。这个逻辑模型。 n根据在分析过程中获得的对系统的更深入更具根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系

10、统的成本和体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。进度,修正以前制定的开发计划。 3.1.4 修正系统开发计划修正系统开发计划 3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法n访谈访谈 n面向数据流自顶向下求精面向数据流自顶向下求精n简易的应用规格说明技术简易的应用规格说明技术 n快速建立软件原型快速建立软件原型 需求的获取n需求获取是开发人员与客户或用户一起对应用领需求获取是开发人员与客户或用户一起对应用领域进行调查研究,收集系统需求的过程域进行调查研究,收集系统需求的过程n需求分析是将获取到的需求准确的理解、求精,需求分析是将获取到的需求准确的理解、

11、求精,并将其转化为完整的需求定义(包括建模),进并将其转化为完整的需求定义(包括建模),进而生成需求规约的过程。而生成需求规约的过程。n需求获取和分析有一定的难度,因为:需求获取和分析有一定的难度,因为: 1)项目相关人员通常并不真正知道希望计算机项目相关人员通常并不真正知道希望计算机做什么,让他们清晰的表达出做什么,让他们清晰的表达出需求的获取 2) 项目相关人员用自己的语言表达需求,这些项目相关人员用自己的语言表达需求,这些语言包含很多工作中的专业术语和专业知识。系统分语言包含很多工作中的专业术语和专业知识。系统分析员没有这些知识和经验,而他们又必须了解这些需析员没有这些知识和经验,而他们

12、又必须了解这些需求。求。 3 3)不同的项目相关人员有不同的需求,可能以)不同的项目相关人员有不同的需求,可能以不同的方式表达,分析人员必须发现所有潜在的需求不同的方式表达,分析人员必须发现所有潜在的需求资源,而且能发现这些需求的相容或冲突之处。资源,而且能发现这些需求的相容或冲突之处。 4 4)经济和业务环境决定了分析是动态的,需求)经济和业务环境决定了分析是动态的,需求在分析过程中会发生变更。个别需求的重要程度会改在分析过程中会发生变更。个别需求的重要程度会改变,新的需求会从新的项目相关人员那里得到。变,新的需求会从新的项目相关人员那里得到。需求分析综合症需求分析综合症解决方案解决方案需求

13、诱导的方法:需求诱导的方法:3.2.1 访谈访谈1. 正式访谈正式访谈n系统分析员将提出一些事先准备好的具体问题。系统分析员将提出一些事先准备好的具体问题。2. 非正式访谈非正式访谈n分析员将提出一些用户可以自由回答的开放性问题,分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。以鼓励被访问人员说出自己的想法。3. 调查表调查表n经过仔细考虑写出的书面回答可能比被访者对问题的经过仔细考虑写出的书面回答可能比被访者对问题的口头回答更准确。口头回答更准确。4. 情景分析技术情景分析技术n对用户将来使用目标系统解决某个具体问题的对用户将来使用目标系统解决某个具体问题的方法

14、和结果进行分析。方法和结果进行分析。情景分析技术的用处:情景分析技术的用处:n能在某种程度上演示目标系统的行为,从而便能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。析员目前还不知道的需求。n能保证用户在需求分析过程中始终扮演一个积能保证用户在需求分析过程中始终扮演一个积极主动的角色。让用户起积极主动的作用对需极主动的角色。让用户起积极主动的作用对需求分析工作获得成功是至关重要的。求分析工作获得成功是至关重要的。3.2.2 面向数据流自顶向下求精面向数据流自顶向下求精 1. 分析追踪数据流图分析追踪

15、数据流图n需求分析的目标之一就是把数据流和数据存储定义到需求分析的目标之一就是把数据流和数据存储定义到元素级,通常从数据流图的输出端着手分析。元素级,通常从数据流图的输出端着手分析。2. 用户复查用户复查n必须请用户对上述分析过程中得出的结果仔细地复查。必须请用户对上述分析过程中得出的结果仔细地复查。复查过程验证了已知的元素,补充了未知的元素,填复查过程验证了已知的元素,补充了未知的元素,填补了文档中的空白。补了文档中的空白。n随着分析过程的进展,经过问题和解答的反复循环,随着分析过程的进展,经过问题和解答的反复循环,分析员越来越深入具体地定义了目标系统,最终得到分析员越来越深入具体地定义了目

16、标系统,最终得到对系统数据和功能要求的满意了解。对系统数据和功能要求的满意了解。 面向数据流自顶向下求精过程面向数据流自顶向下求精过程3.2.3 简易的应用规格说明技术简易的应用规格说明技术n简易的应用规格说明技术是一种简易的应用规格说明技术是一种面向团队面向团队的需的需求收集法。求收集法。n这种方法提倡用户与开发者密切合作,共同标这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并识问题,提出解决方案要素,商讨不同方案并指定基本需求。指定基本需求。 分析需求的典型过程如下:分析需求的典型过程如下:1. 初步访谈,准备会议初步访谈,准备会议n首先进行初步的访谈,初步

17、确定待解决的问题首先进行初步的访谈,初步确定待解决的问题的范围和解决方案。的范围和解决方案。n然后开发者和用户分别写出然后开发者和用户分别写出“产品需求产品需求”。选。选定会议的时间和地点,并选举协调人。定会议的时间和地点,并选举协调人。2. 会前审查需求,确定列表会前审查需求,确定列表n要求每位与会者在开会的前几天认真审查产品要求每位与会者在开会的前几天认真审查产品需求,并且列出对象、操作这些对象或与这些需求,并且列出对象、操作这些对象或与这些对象交互的服务、约束条件和性能标准。对象交互的服务、约束条件和性能标准。3. 会上讨论列表,创建组合列表会上讨论列表,创建组合列表n每位与会者展示列表

18、供大家讨论。大家共同创建一每位与会者展示列表供大家讨论。大家共同创建一张组合列表。由协调人主持讨论这些列表。张组合列表。由协调人主持讨论这些列表。4. 分组制定小型规格说明分组制定小型规格说明n与会者分成更小的小组,为每张列表中的项目制定与会者分成更小的小组,为每张列表中的项目制定小型规格说明。每个小组都向全体与会者展示他们小型规格说明。每个小组都向全体与会者展示他们制定的小型规格说明,供大家讨论。制定的小型规格说明,供大家讨论。5. 制定确认标准,起草需求规格说明书制定确认标准,起草需求规格说明书n每个与会者都制定出产品的一整套确认标准,并提每个与会者都制定出产品的一整套确认标准,并提交会议

19、讨论,以创建出意见一致的确认标准。交会议讨论,以创建出意见一致的确认标准。n最后,起草完整的软件需求规格说明书。最后,起草完整的软件需求规格说明书。简易的应用规格说明技术的优点:简易的应用规格说明技术的优点:n开发者与用户不分彼此,齐心协力,密切合作;开发者与用户不分彼此,齐心协力,密切合作;n即时讨论并求精;即时讨论并求精;n有能导出规格说明的具体步骤。有能导出规格说明的具体步骤。 3.2.4 快速建立软件原型快速建立软件原型 n快速建立软件原型是最准确、最有效、最强大快速建立软件原型是最准确、最有效、最强大的需求分析技术。的需求分析技术。n快速原型就是快速建立起来的旨在演示目标系快速原型就

20、是快速建立起来的旨在演示目标系统主要功能的可运行的程序。统主要功能的可运行的程序。n构建原型的要点是,它应该实现用户看得见的构建原型的要点是,它应该实现用户看得见的功能,省略目标系统的功能,省略目标系统的“隐含隐含”功能。功能。快速原型的特性:快速原型的特性:n“快速快速”。快速原型的目的是尽快向用户提供。快速原型的目的是尽快向用户提供一个可在计算机上运行的目标系统的模型。因一个可在计算机上运行的目标系统的模型。因此,原型的某些缺陷是可以忽略的。此,原型的某些缺陷是可以忽略的。n“容易修改容易修改”。如果原型的第一版不是用户所。如果原型的第一版不是用户所需要的,就必须根据用户的意见迅速地修改它

21、,需要的,就必须根据用户的意见迅速地修改它,构建出原型的第二版,以更好地满足用户需求。构建出原型的第二版,以更好地满足用户需求。如果修改耗时过多,势必延误软件开发时间。如果修改耗时过多,势必延误软件开发时间。 快速原型通常使用下述快速原型通常使用下述3种方法和工具:种方法和工具:(1) 第四代技术(第四代技术(4gl)n第四代技术包括众多数据库查询(如第四代技术包括众多数据库查询(如sql)和)和报表语言(如报表语言(如adf)、程序和应用系统生成器)、程序和应用系统生成器(如(如power builder和和oracle的应用开发环境)的应用开发环境)以及其他非常高级的非过程语言。以及其他非

22、常高级的非过程语言。n第四代技术使得软件工程师能够快速地生成可第四代技术使得软件工程师能够快速地生成可执行的代码,它们是较理想的快速原型工具。执行的代码,它们是较理想的快速原型工具。 第四代技术特点:第四代技术特点:n简单易学,用户界面良好,面向问题、非过程化程度简单易学,用户界面良好,面向问题、非过程化程度高,用户只需告知系统做什么,而无需说明怎么做。高,用户只需告知系统做什么,而无需说明怎么做。用用4gl编程使用的代码量较少,并可成数量级地提高编程使用的代码量较少,并可成数量级地提高软件生产率。软件生产率。程序设计语言划代:程序设计语言划代:n1gl是汇编语言;是汇编语言;n2gl是高级程

23、序设计语言,如是高级程序设计语言,如fortran,algol,basic,lisp等;等;n3gl是增强性的高级程序设计语言,如是增强性的高级程序设计语言,如pascal,algol68,fortran77等;等;n4gl是按计算机科学理论指导设计出来的结构化语言,是按计算机科学理论指导设计出来的结构化语言,如如ada,modula2,smalltalk80,java,vb,vc,vf等。等。 (2) 可重用的软件构件可重用的软件构件n另外一种快速构建原型的方法,是使用一组已另外一种快速构建原型的方法,是使用一组已有的软件构件有的软件构件(也称为组件也称为组件)来装配来装配(而不是从头而不是

24、从头构造构造)原型。原型。n软件构件可以是数据结构软件构件可以是数据结构(或数据库或数据库),或软件,或软件体系结构构件体系结构构件(即程序即程序),或过程构件,或过程构件(即模块即模块)。(3) 形式化规格说明和原型环境形式化规格说明和原型环境n非形式化方法:自然语言描述非形式化方法:自然语言描述n半形式化方法:数据流图或实体半形式化方法:数据流图或实体-联系图联系图n形式化方法:基于数学的技术形式化方法:基于数学的技术 3.3 分析建模与规格说明分析建模与规格说明3.3.1 分析建模分析建模n模型:模型:就是为了理解事物而对事物做出的一种就是为了理解事物而对事物做出的一种抽象,是对事物的一

25、种无歧义的书面描述。通抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规常,模型由一组图形符号和组织这些符号的规则组成。则组成。n结构化分析过程:结构化分析过程:实质上是一种创建模型的活实质上是一种创建模型的活动。系统分析员从不同角度抽象出目标系统的动。系统分析员从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。型中,直至

26、最终用程序实现模型。 分析模型的结构分析模型的结构n需求分析过程需求分析过程应该建立应该建立3种模种模型,分别是:型,分别是:q数据模型数据模型q功能模型功能模型q行为模型行为模型 n数据字典:数据字典:是分析模型的核心,它描述软件使是分析模型的核心,它描述软件使用或产生的所有数据对象。用或产生的所有数据对象。n实体实体-联系图:联系图:描绘数据对象及数据对象之间描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。的关系,是用于建立数据模型的图形。n数据流图:数据流图:描绘当数据在软件系统中移动时被描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的变换的逻辑过程,指

27、明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础。功能,因此,数据流图是建立功能模型的基础。n状态转换图状态转换图(简称为状态图简称为状态图):指明了作为外部指明了作为外部事件结果的系统行为。为此,状态转换图描绘事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式了系统的各种行为模式(称为称为“状态状态”)和在不和在不同状态间转换的方式。状态转换图是行为建模同状态间转换的方式。状态转换图是行为建模的基础。的基础。 3.3.2 软件需求规格说明软件需求规格说明 n通过需求分析除了创建分析模型之外,还应该通过需求分析除了创建分析模型之外,还应该写出软件需求规格说明书,它是需求

28、分析阶段写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档。得出的最主要的文档。n通常用自然语言完整、准确、具体地描述系统通常用自然语言完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。逆向需求以及将来可能提出的要求。 我国定义了我国定义了gb856d-1988国家标准,给出了需求规格说国家标准,给出了需求规格说明的内容框架:明的内容框架:1 引言引言 1.1 编写目的编写目的 1.2 项目背景(单位和其他系统项目背

29、景(单位和其他系统的关系)的关系) 1.3 定义(专门术语和缩写词)定义(专门术语和缩写词)2 任务概述任务概述 2.1 目标目标 2.2 运行环境运行环境 2.3 条件限制条件限制3 数据描述数据描述 3.1 静态数据静态数据 3.2 动态数据动态数据 3.3 数据库描述数据库描述 3.4 数据字典数据字典 3.5 数据采集数据采集4 功能需求功能需求 4.1 功能划分功能划分 4.2 功能描述功能描述5 性能需求性能需求 5.1 数据精确度数据精确度 5.2 时间特性时间特性 5.3 适应性适应性6 运行需求运行需求 6.1 用户界面用户界面 6.2 硬件接口硬件接口 6.3 软件接口软件

30、接口 6.4 故障处理故障处理7 其他需求其他需求(检测或验收标准、可用性、可(检测或验收标准、可用性、可维护性、可移植性、安全保密性)维护性、可移植性、安全保密性)练习题:习题练习题:习题3.3,画数据流图,画数据流图银行计算机储蓄系统的工作过程大致如下:银行计算机储蓄系统的工作过程大致如下:n储户填写的存款单或取款单由业务员键入系统,储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址如果是存款则系统记录存款人姓名、住址(或电话或电话号码号码)、身份证号码、存款类型、存款日期、到期、身份证号码、存款类型、存款日期、到期日期、利率及密码日期、利率及密码(可选可选)等

31、信息,并印出存单给等信息,并印出存单给储户;储户;n如果是取款而且存款时留有密码,则系统首先核如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。系统计算利息并印出利息清单给储户。顶层数据流图顶层数据流图顶层数据流图顶层数据流图功能级数据流图功能级数据流图细化的数据流图细化的数据流图3.4 实体实体-联系图联系图n概念性数据模型是一种面向问题的数据模型,概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述是按照用户的观点对数据建立的模型。它描述了从用户角度看到

32、的数据,它反映了用户的现了从用户角度看到的数据,它反映了用户的现实环境,且与在软件系统中的实现方法无关。实环境,且与在软件系统中的实现方法无关。n数据模型中包含数据模型中包含3种相互关联的信息:种相互关联的信息:q数据对象数据对象q数据对象的数据对象的属性属性q数据对象彼此间相互连接的数据对象彼此间相互连接的关系关系 3.4.1 数据对象数据对象 n数据对象:数据对象:是对软件必须理解的复合信息的抽是对软件必须理解的复合信息的抽象。复合信息是指具有一系列不同性质或属性象。复合信息是指具有一系列不同性质或属性的事物,仅有单个值的事物不是数据对象。的事物,仅有单个值的事物不是数据对象。n数据对象可

33、以是数据对象可以是外部实体外部实体、事物事物、行为行为、事件事件、角色角色、单位单位、地点地点或或结构结构等。等。n数据对象彼此间是有关联的。数据对象彼此间是有关联的。 3.4.2 属性属性n属性:属性:定义了数据对象的性质。必须把一个或定义了数据对象的性质。必须把一个或多个属性定义为多个属性定义为“标识符标识符” 。n根据对问题的理解来确定特定数据对象的合适根据对问题的理解来确定特定数据对象的合适的属性。的属性。 3.4.3 联系联系n联系:联系:数据对象彼此之间相互连接的方式称为数据对象彼此之间相互连接的方式称为联系,也称为关系。联系,也称为关系。n联系可分为以下联系可分为以下3种类型:种

34、类型:q一对一联系一对一联系(1 1)q一对多联系一对多联系(1 n)q多对多联系多对多联系(m n)n联系也可能有属性。联系也可能有属性。3.4.4 实体实体-联系图的符号联系图的符号er图中包含:图中包含:n实体实体(即数据对象即数据对象),用矩形框表示;,用矩形框表示;n关系,用连接相关实体的菱形框表示;关系,用连接相关实体的菱形框表示;n属性,用椭圆形或圆角矩形表示,并用直线把属性,用椭圆形或圆角矩形表示,并用直线把实体实体(或关系或关系)与其属性连接起来。与其属性连接起来。例例1:某校教学管理系统的某校教学管理系统的er图图er图的优点:图的优点:n比较接近人的习惯思维方式;比较接近

35、人的习惯思维方式;n用简单的图形符号表达系统分析员对问题域的理解,用简单的图形符号表达系统分析员对问题域的理解,用户也容易理解,可以作为用户与分析员之间有效的用户也容易理解,可以作为用户与分析员之间有效的交流工具。交流工具。 数据建模工具:数据建模工具:以自动化的方式创建以自动化的方式创建er图、数据字典图、数据字典及相关模型。及相关模型。qallfusion erwin 辅助设计数据库、数据对象、结构、关键辅助设计数据库、数据对象、结构、关键元素元素qer/studio 支持实体支持实体-关系建模关系建模qoracle designer 建模、应用系统和数据库设计建模、应用系统和数据库设计q

36、meta scope 图形化显示数据图形化显示数据qmodel sphere visible analyst 模型可视化分析模型可视化分析例例2:习题习题3.3,银行储蓄系统的,银行储蓄系统的er图图 银行计算机储蓄系统的工作过程大致如下:银行计算机储蓄系统的工作过程大致如下:n储户填写的存款单或取款单由业务员键入系统储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址,如果是存款则系统记录存款人姓名、住址(或电话号码或电话号码)、身份证号码、存款类型、存款、身份证号码、存款类型、存款日期、到期日期、利率及密码日期、到期日期、利率及密码(可选可选)等信息,等信息,并印

37、出存单给储户;并印出存单给储户;n如果是取款而且存款时留有密码,则系统首先如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。,则系统计算利息并印出利息清单给储户。银行储蓄系统的银行储蓄系统的er图图 3.5 数据规范化数据规范化n数据结构规范化:数据结构规范化:软件系统经常使用各种长期软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,为减少数据冗余,避存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异

38、常,简化修改数据的免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。过程,通常需要把数据结构规范化。 n范式:范式:通常用通常用“范式范式(normal forms)”定义消除定义消除数据冗余的程度。第一范式数据冗余的程度。第一范式(1 nf)数据冗余程数据冗余程度最大,第五范式度最大,第五范式(5 nf)数据冗余程度最小。数据冗余程度最小。q范式级别越高,存储同样数据需要分解成更多张范式级别越高,存储同样数据需要分解成更多张表,因此,表,因此,“存储自身存储自身”过程越复杂。过程越复杂。q随着范式级别的提高,数据的存储结构与基于问随着范式级别的提高,数据的存储结构与基于

39、问题域的结构间的匹配程度也随之下降,因此,在题域的结构间的匹配程度也随之下降,因此,在需求变化时数据的稳定性较差。需求变化时数据的稳定性较差。q范式级别提高则需要访问的表增多,因此性能范式级别提高则需要访问的表增多,因此性能(速速度度)将下降。将下降。第一、第二和第三范式的定义:第一、第二和第三范式的定义:n第一范式,每个属性值都必须是原子值,即仅第一范式,每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。仅是一个简单值而不含内部结构。n第二范式,满足第一范式条件,而且每个非关第二范式,满足第一范式条件,而且每个非关键字属性都由整个关键字决定键字属性都由整个关键字决定(而不是由关键而

40、不是由关键字的一部分来决定字的一部分来决定)。n第三范式,符合第二范式的条件,每个非关键第三范式,符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一属性不能仅仅是对另一个非关键字属性的进一步描述步描述(即一个非关键字属性值不依赖于另一即一个非关键字属性值不依赖于另一个非关键字属性值个非关键字属性值)。 3.6 状态转换图状态转换图n状态转换图:状态转换图:通过描绘系统的状态及引起系统通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。状态转换的事件,来表示系统的行为。n状态图还指明了作

41、为特定事件的结果系统将做状态图还指明了作为特定事件的结果系统将做哪些动作哪些动作(例如,处理数据例如,处理数据)。 3.6.1 状态状态 n状态:状态:是任何可以被观察到的系统行为模式,一个状是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件态代表系统的一种行为模式。状态规定了系统对事件的响应方式。的响应方式。n状态主要有:状态主要有:q初态初态(即初始状态即初始状态),只能有,只能有1个个q终态终态(即最终状态即最终状态),可以有,可以有0至多个至多个q中间状态中间状态n状态图分类:状态图分类:q表示系统循环运行过程,通常不关心循环是怎样启动的。表示系统循

42、环运行过程,通常不关心循环是怎样启动的。q表示系统单程生命期,需要标明初始状态和最终状态。表示系统单程生命期,需要标明初始状态和最终状态。3.6.2 事件事件n事件:事件:是在某个特定时刻发生的事情,它是对是在某个特定时刻发生的事情,它是对引起系统做动作或引起系统做动作或(和和)从一个状态转换到另一从一个状态转换到另一个状态的外界事件的抽象。简而言之,事件就个状态的外界事件的抽象。简而言之,事件就是引起系统做动作或是引起系统做动作或(和和)转换状态的控制信息。转换状态的控制信息。 3.6.3 符号符号n初态:用实心圆表示;初态:用实心圆表示;n终态:用一对同心圆终态:用一对同心圆(内圆为实心圆

43、内圆为实心圆)表示;表示;n中间状态:用圆角矩形表示,分成上、中、下中间状态:用圆角矩形表示,分成上、中、下3部分。部分。q上面部分上面部分-为状态的名称;为状态的名称;q中间部分中间部分-为状态变量的名字和值;为状态变量的名字和值;q下面部分下面部分-是活动表。是活动表。 n带箭头的连线:称为状态转换,箭头指明了转带箭头的连线:称为状态转换,箭头指明了转换方向。换方向。 状态图中使用的主要符号状态图中使用的主要符号活动表的语法格式:活动表的语法格式: 事件名事件名(参数表参数表)/动作表达式动作表达式n“事件名事件名”可以是任何事件的名称。可以是任何事件的名称。n常用的常用的3种标准事件:种

44、标准事件:qentry事件指定进入该状态的动作;事件指定进入该状态的动作;qexit事件指定退出该状态的动作;事件指定退出该状态的动作;qdo事件则指定在该状态下的动作。事件则指定在该状态下的动作。n需要时可以为事件指定参数表。活动表中的动需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。作表达式描述应做的具体动作。 事件表达式的语法:事件表达式的语法: 事件说明守卫条件动作表达式事件说明守卫条件动作表达式n事件说明的语法为:事件名事件说明的语法为:事件名(参数表参数表)。n守卫条件是一个布尔表达式。如果同时使用事守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当

45、且仅当事件发生且布件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。状态转换就发生。n动作表达式是一个过程表达式,当状态转换开动作表达式是一个过程表达式,当状态转换开始时执行该表达式。始时执行该表达式。 3.6.4 例子例子例例1:电话系统电话系统例例2:银行储蓄系统银行储蓄系统存款过程的状态图存款过程的状态图例例2:银行储蓄系统银行储蓄系统取款过程的状态图取款过程的状态图3.7 其他图形工具其他图形工具3.7.1 层次方框图层次

46、方框图n层次方框图:层次方框图:用树形结构的一系列多层次的矩用树形结构的一系列多层次的矩形框描绘数据的层次结构。形框描绘数据的层次结构。n树形结构的顶层是一个单独的矩形框,它代表树形结构的顶层是一个单独的矩形框,它代表完整的数据结构;完整的数据结构;n下面的各层矩形框代表这个数据的子集;下面的各层矩形框代表这个数据的子集;n最底层的各个框代表组成这个数据的实际数据最底层的各个框代表组成这个数据的实际数据元素元素(不能再分割的元素不能再分割的元素)。某计算机公司的全部产品的层次方框图某计算机公司的全部产品的层次方框图3.7.2 warnier图图nwarnier图:图:和层次方框图类似,和层次方

47、框图类似,warnier图图也用树形结构描绘信息,但是这种图形工具比也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。层次方框图提供了更丰富的描绘手段。n特点:特点:用用warnier图可以表明信息的逻辑组织,图可以表明信息的逻辑组织,也可以表示特定信息在某一类信息中是有条件也可以表示特定信息在某一类信息中是有条件地出现的。因为重复和条件约束是说明软件处地出现的。因为重复和条件约束是说明软件处理过程的基础,所以很容易把理过程的基础,所以很容易把warnier图转变图转变成软件设计的工具。成软件设计的工具。 软件产品的软件产品的warnier图图3.7.3 ipo图图nipo图:图:是输入、处理、输出图的简称,它是是输入、处理、输出图的简称,它是美国美国ibm公司发展完善起来的一种图形工具,公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输能够方便地描绘输入数据、对

温馨提示

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

评论

0/150

提交评论