《需求分析》课件.ppt

上传人:wuy****n92 文档编号:88463578 上传时间:2023-04-26 格式:PPT 页数:78 大小:564KB
返回 下载 相关 举报
《需求分析》课件.ppt_第1页
第1页 / 共78页
《需求分析》课件.ppt_第2页
第2页 / 共78页
点击查看更多>>
资源描述

《《需求分析》课件.ppt》由会员分享,可在线阅读,更多相关《《需求分析》课件.ppt(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软软 件件 工工 程程张聚礼张聚礼张聚礼张聚礼兰州理工大学计算机与通信学院兰州理工大学计算机与通信学院1第第3 3章章 需求分析需求分析3.1 3.1 3.1 3.1 需求分析的任务需求分析的任务需求分析的任务需求分析的任务3.2 3.2 3.2 3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法与用户沟通获取需求的方法与用户沟通获取需求的方法3.3 3.3 3.3 3.3 分析建模与规格说明分析建模与规格说明分析建模与规格说明分析建模与规格说明3.4 3.4 3.4 3.4 实体实体实体实体-联系图联系图联系图联系图3.5 3.5 3.5 3.5 数据规范化数据规范化数据规范化数据规范

2、化3.6 3.6 3.6 3.6 状态转换图状态转换图状态转换图状态转换图3.7 3.7 3.7 3.7 其他图形工具其他图形工具其他图形工具其他图形工具3.8 3.8 3.8 3.8 验证软件需求验证软件需求验证软件需求验证软件需求3.9 3.9 3.9 3.9 小结小结小结小结2项目需求分析是一个项目的开项目需求分析是一个项目的开端,也是项目建设的基石。端,也是项目建设的基石。软件项目中软件项目中40%40%60%60%的的问题都是在需求分析阶段埋下问题都是在需求分析阶段埋下的的“祸根祸根”3需求分析是软件定义时期的最后一个阶段,需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回

3、答它的基本任务是准确地回答“系统必须做什系统必须做什么么?”这个问题,而不是这个问题,而不是“怎样实现怎样实现”。【分析结果分析结果】:系统分析员应该:系统分析员应该写出软件需写出软件需求规格说明书求规格说明书,以书面形式准确地描述软件,以书面形式准确地描述软件需求。需求。【掌握内容掌握内容】:对一个软件系统来说,:对一个软件系统来说,数据数据是稳定的是稳定的,事务处理事务处理可能是变化的。可能是变化的。4需求分析的原则:需求分析的原则:(1)(1)必须理解并描述问题的必须理解并描述问题的信息域信息域,根据这条,根据这条准则应该准则应该建立数据模型建立数据模型。(2)(2)必须定义软件应完成的

4、必须定义软件应完成的功能域功能域,这条准则,这条准则要求要求建立功能模型建立功能模型。(3)(3)必须描述作为外部事件结果的必须描述作为外部事件结果的软件行为软件行为,这条准则要求这条准则要求建立行为模型建立行为模型。(4)(4)必须对描述信息、功能和行为的模型进行必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。分解,用层次的方式展示细节。信息流、信息内容和信息流、信息内容和信息流、信息内容和信息流、信息内容和信息结构信息结构信息结构信息结构事件的状态,可用以后的状态转换图建立行事件的状态,可用以后的状态转换图建立行为模型为模型5分解示意图:分解示意图:6系统分析员在软件开发中

5、的作用系统分析员在软件开发中的作用在系统分析过程中,系统分析员除了起在系统分析过程中,系统分析员除了起用户和设计人员的接口作用以外,还应充分用户和设计人员的接口作用以外,还应充分代表用户的利益,在整个开发过程中起着关代表用户的利益,在整个开发过程中起着关键作用。键作用。73.1 需求分析的任务需求分析的任务 3.1.1 确定对系统的综合要求确定对系统的综合要求l l功能需求功能需求功能需求功能需求l l性能需求性能需求性能需求性能需求l l可靠性和可用性需求可靠性和可用性需求可靠性和可用性需求可靠性和可用性需求l l出错处理出错处理出错处理出错处理l l接口需求接口需求接口需求接口需求l l约

6、束与环境需求约束与环境需求约束与环境需求约束与环境需求l l逆向需求逆向需求逆向需求逆向需求l l将来可能提出的要求将来可能提出的要求将来可能提出的要求将来可能提出的要求l l用户和人的因素需求用户和人的因素需求用户和人的因素需求用户和人的因素需求l l文档需求文档需求文档需求文档需求l l数据需求数据需求数据需求数据需求l l资源使用需求资源使用需求资源使用需求资源使用需求l l成本消耗与进度需求成本消耗与进度需求成本消耗与进度需求成本消耗与进度需求l l安全保密需求安全保密需求安全保密需求安全保密需求l l质量保证质量保证质量保证质量保证81 1、功能需求、功能需求l 系统做什么?系统做什

7、么?l l 系统何时做什么?系统何时做什么?l l 系统何时及如何修改或升级?系统何时及如何修改或升级?2 2、性能需求、性能需求软件开发的技术性指标,例如:软件开发的技术性指标,例如:存储容量限制存储容量限制 执行速度、相应时间执行速度、相应时间 吞吐量吞吐量93 3、可靠性和可用性需求、可靠性和可用性需求可靠性需求定量地指定系统的可靠性。可靠性需求定量地指定系统的可靠性。可用性与可靠性密切相关,它量化了用户可可用性与可靠性密切相关,它量化了用户可以使用系统的程度。以使用系统的程度。4 4、出错处理需求、出错处理需求有选择地提出这类出错处理需求。我们的目有选择地提出这类出错处理需求。我们的目

8、的是开发出正确的系统,而不是用无休止的的是开发出正确的系统,而不是用无休止的出错处理代码掩盖自己的错误。出错处理代码掩盖自己的错误。105 5、接口需求、接口需求接口需求描述应用系统与它的环境通信的格式。接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:常见的接口需求有:用户接口需求;硬件接口用户接口需求;硬件接口需求;软件接口需求;通信接口需求需求;软件接口需求;通信接口需求。例如:。例如:有来自其它系统的输入吗?有来自其它系统的输入吗?到自其它系统的输出吗?到自其它系统的输出吗?对数据格式有规定吗?对数据格式有规定吗?对数据存储介质有规定吗?对数据存储介质有规定吗?116 6、约

9、束与环境需求、约束与环境需求描述在设计或实现应用系统时应遵守的限制描述在设计或实现应用系统时应遵守的限制条件,是用户或环境强加给项目的限制条件。条件,是用户或环境强加给项目的限制条件。常见的约束有:常见的约束有:精度;开发工具和语言约束;精度;开发工具和语言约束;设计约束;数据库约束;应该使用的标准;设计约束;数据库约束;应该使用的标准;应该使用的硬件平台及现场环境应该使用的硬件平台及现场环境等。等。7 7、逆向需求、逆向需求逆向需求说明软件系统不应该做什么。理论逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,我们应该仅选取能上有无限多个逆向需求,我们应该仅选取能澄清真实需求,且可

10、消除可能发生的误解的澄清真实需求,且可消除可能发生的误解的那些逆向需求。那些逆向需求。128 8、将来可能提出的要求、将来可能提出的要求应该明确地列出那些虽然不属于当前系统开应该明确地列出那些虽然不属于当前系统开发范畴,但是分析将来很可能会提出来的要发范畴,但是分析将来很可能会提出来的要求。求。目的:目的:在设计过程中对系统将来可能的扩充在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。较容易地进行这种扩充和修改。139 9、用户或人的因素、用户或人的因素 用户类型?用户类型?各种用户熟练程度?各种用户熟练程

11、度?需受何种训练?需受何种训练?用户理解、使用系统的难度?用户理解、使用系统的难度?用户错误操作系统的可能性?用户错误操作系统的可能性?141010、文档需求、文档需求 需哪些文档?需哪些文档?文档针对哪些读者?文档针对哪些读者?1111、数据需求、数据需求 输入、输出数据的格式?输入、输出数据的格式?接收、发送数据的频率?接收、发送数据的频率?数据的准确性和精度?数据的准确性和精度?数据流量?数据流量?数据需保持的时间?数据需保持的时间?151212、资源需求、资源需求 软件运行时所需的数据、软件、内存空间等软件运行时所需的数据、软件、内存空间等资源。资源。软件开发、维护所需的人力、支撑软件

12、、开软件开发、维护所需的人力、支撑软件、开发设备等。发设备等。1313、软件成本消耗与开发进度需求、软件成本消耗与开发进度需求开发有规定的时间表吗?开发有规定的时间表吗?软硬件投资有无限制软硬件投资有无限制?161414、安全保密要求、安全保密要求 需对访问系统或系统信息加以控制吗?需对访问系统或系统信息加以控制吗?如何隔离用户之间的数据?如何隔离用户之间的数据?用户程序如何与其它程序和操作系统隔离?用户程序如何与其它程序和操作系统隔离?系统备份要求?系统备份要求?171515、质量保证、质量保证 系统的可靠性要求?系统的可靠性要求?系统必须监测和隔离错误吗?系统必须监测和隔离错误吗?规定系统

13、平均出错时间?规定系统平均出错时间?出错后,重启系统允许的时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?系统变化如何反映到设计中?维护是否包括对系统的改进?维护是否包括对系统的改进?系统的可移植性?系统的可移植性?183.1.2 3.1.2 分析系统的数据要求分析系统的数据要求是需求分析的一个重要任务。主要体现在:是需求分析的一个重要任务。主要体现在:是需求分析的一个重要任务。主要体现在:是需求分析的一个重要任务。主要体现在:如何定义数据?数据的作用?如何用?如何定义数据?数据的作用?如何用?如何表达数据间的关系?如何表达数据间的关系?如何存储?为减少数据冗余,如何简化如何存储?

14、为减少数据冗余,如何简化数据,并进行规范化?数据,并进行规范化?分析系统的数据要求通常采用建立数据模型的分析系统的数据要求通常采用建立数据模型的分析系统的数据要求通常采用建立数据模型的分析系统的数据要求通常采用建立数据模型的方法方法方法方法(见见见见3.43.43.43.4节节节节E-RE-RE-RE-R关系图关系图关系图关系图)。193.1.3 3.1.3 导出系统的逻辑模型导出系统的逻辑模型通过对系统的通过对系统的综合要求综合要求和和数据要求数据要求分析分析的结果可以导出系统的详细的逻辑模型,通的结果可以导出系统的详细的逻辑模型,通常用以下内容描述这个逻辑模型:常用以下内容描述这个逻辑模型

15、:数据流图数据流图 实体实体-联系图联系图 状态转换图状态转换图 逻辑模型组成逻辑模型组成 数据字典数据字典 主要的处理算法主要的处理算法203.1.4 3.1.4 修正系统开发计划修正系统开发计划根据在分析过程中获得的对系统的更深根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。的成本和进度,修正以前制定的开发计划。21需求分析技巧:需求分析技巧:l需求的收集贯穿于整个项目过程中需求的收集贯穿于整个项目过程中;l解释技术,使甲方积极参与;解释技术,使甲方积极参与;l使用用户的术语,使用用户的术语

16、,用共同的语言进行交流用共同的语言进行交流用共同的语言进行交流用共同的语言进行交流;l取得管理层的支持取得管理层的支持 “一把手工程一把手工程”;l已有的文档是需求的很好来源已有的文档是需求的很好来源复用已有的复用已有的资源资源;l记住今天的用户就是明天的分析者和以后的开记住今天的用户就是明天的分析者和以后的开发者。发者。首先首先首先首先,应该努力的去熟悉用户的行业,学习用户使用的术语,标,应该努力的去熟悉用户的行业,学习用户使用的术语,标准,以便能够准确的理解用户。准,以便能够准确的理解用户。其次其次其次其次避免用避免用ITIT行业的术语,而采行业的术语,而采用浅显易懂的口头语言来解释用浅显

17、易懂的口头语言来解释ITIT行业中高深莫测的术语,以便用行业中高深莫测的术语,以便用户能够很好的理解。户能够很好的理解。例如:向用户解释例如:向用户解释10M10M带宽网络和带宽网络和100M100M带带宽网络有什么区别:宽网络有什么区别:10M10M10M10M带宽的网络就像是双车道的柏油路,带宽的网络就像是双车道的柏油路,带宽的网络就像是双车道的柏油路,带宽的网络就像是双车道的柏油路,容易堵车,而容易堵车,而容易堵车,而容易堵车,而100M100M100M100M带宽的网络却是二十车道的高速公路,堵车带宽的网络却是二十车道的高速公路,堵车带宽的网络却是二十车道的高速公路,堵车带宽的网络却是

18、二十车道的高速公路,堵车的可能性非常小的可能性非常小的可能性非常小的可能性非常小 。223.2 3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法 3.2.1 3.2.1 访谈访谈访谈是最早开始使用的获取用户需求的技术,访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍然广泛使用的需求分析技术。也是迄今为止仍然广泛使用的需求分析技术。访谈有两种基本形式:访谈有两种基本形式:正式访谈时正式访谈时:系统分析员将提出一些事先准备系统分析员将提出一些事先准备好的具体问题。好的具体问题。非正式访谈非正式访谈:分析员将提出一些用户可以自由分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问

19、人员说出自己的回答的开放性问题,以鼓励被访问人员说出自己的想法。想法。23注意:注意:访谈时不要使用行话,就是计算访谈时不要使用行话,就是计算机术语。机术语。需求分析最重要的是和用户沟通。需求分析最重要的是和用户沟通。另外还要引导用户如何讲出与系统有关另外还要引导用户如何讲出与系统有关的业务的业务。不要陷到不要陷到“客户总是对的客户总是对的”的陷阱中去的陷阱中去243.2.2 3.2.2 面向数据流自顶向下求精面向数据流自顶向下求精【目的目的】:通过可行性研究中目标系统的高:通过可行性研究中目标系统的高层数据流图,层数据流图,需求分析的目标之一就是把数需求分析的目标之一就是把数据流和数据存储定

20、义到元素级据流和数据存储定义到元素级。【实施方法实施方法】:在实际业务中,数据决定了:在实际业务中,数据决定了需要的处理和算法,是需求分析的出发点,需要的处理和算法,是需求分析的出发点,所以重点围绕数据流中数据元素的来源、用所以重点围绕数据流中数据元素的来源、用途、去向获取需求,并进行详细细化分解。途、去向获取需求,并进行详细细化分解。25图图3.1 3.1 面向数据流自顶向下求精过程面向数据流自顶向下求精过程263.2.3 3.2.3 简易的应用规格说明技术简易的应用规格说明技术使用传统的访谈或面向数据流自顶向下求精使用传统的访谈或面向数据流自顶向下求精方法定义需求时,用户处于被动地位而且往

21、往有方法定义需求时,用户处于被动地位而且往往有意无意地与开发者区分意无意地与开发者区分“彼此彼此”。为了解决上述问题,人们研究出一种面向团为了解决上述问题,人们研究出一种面向团队的需求收集法,称为队的需求收集法,称为简易的应用规格说明技术简易的应用规格说明技术。这种方法提倡用户与开发者密切合作,共同标识这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并指定问题,提出解决方案要素,商讨不同方案并指定基本需求。基本需求。27简易的应用规格说明技术并不是解决需简易的应用规格说明技术并不是解决需求分析阶段遇到的所有问题的求分析阶段遇到的所有问题的“万能灵药万能灵药”,但是

22、,这种面向团队的需求收集方法确实,但是,这种面向团队的需求收集方法确实有许多突出有许多突出优点优点:开发者与用户不分彼此,齐心协力,密开发者与用户不分彼此,齐心协力,密切合作;切合作;即时讨论并求精;即时讨论并求精;有能导出规格说明的具体步骤。有能导出规格说明的具体步骤。283.2.4 3.2.4 快速建立软件原型快速建立软件原型快速原型就是快速建立快速原型就是快速建立演示演示目标系统主目标系统主要功能的可运行的程序。要功能的可运行的程序。构建原型的构建原型的要点要点:它应该实现用户看得:它应该实现用户看得见的功能见的功能(例如,屏幕显示或打印报表例如,屏幕显示或打印报表),省略,省略目标系统

23、的目标系统的“隐含隐含”功能功能(例如,修改文件例如,修改文件)。29 在实际开发软件产品时,原型的在实际开发软件产品时,原型的“修改修改试用试用反馈反馈”过程可能重复多遍,才能得过程可能重复多遍,才能得到符合实际系统的需求到符合实际系统的需求,如果修改耗时过多,如果修改耗时过多,势必延误软件开发时间。势必延误软件开发时间。快速构建和修改原型的方法和工具有快速构建和修改原型的方法和工具有3 3种:种:(1)(1)第四代技术第四代技术 (2)(2)可重用的软件构件可重用的软件构件30(3)(3)形式化规格说明和原型环境形式化规格说明和原型环境在过去的在过去的2020多年中,人们已经研究出许多年中

24、,人们已经研究出许多形式化规格说明语言和工具多形式化规格说明语言和工具(参见第参见第4 4章章),用于用于替代自然语言规格说明技术替代自然语言规格说明技术。313.3 3.3 分析建模与规格说明分析建模与规格说明 3.3.1 3.3.1 分析建模分析建模 为了更好地理解复杂事为了更好地理解复杂事务务务务,人们常常采用建立,人们常常采用建立事事务务务务模型的方法。所谓模型,就是为了理解事模型的方法。所谓模型,就是为了理解事务务务务而而对事对事务务务务做出的一种抽象,是对事做出的一种抽象,是对事务务务务的一种无歧义的的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些书面描述。通常,模型由一

25、组图形符号和组织这些符号的规则组成。其目标如下:符号的规则组成。其目标如下:l l描述用户需要描述用户需要描述用户需要描述用户需要l l建立创建软件设计的基础建立创建软件设计的基础建立创建软件设计的基础建立创建软件设计的基础l l定义软件完成后可被确认的一组需求定义软件完成后可被确认的一组需求定义软件完成后可被确认的一组需求定义软件完成后可被确认的一组需求32分析模型的结构分析模型的结构数据数据字典字典数据数据流图流图E-RE-R图图状态状态变变迁图迁图加加工工规规约约控制规约控制规约数数据据对对象象描描 述述33分析模型的元素分析模型的元素l l数据字典数据字典(DD)(DD):模型核心:模

26、型核心(中心库中心库)l lE-RE-R图图(ERD)(ERD):l l数据流图数据流图(DFD)(DFD)l l指明数据在系统中移动时如何被变换指明数据在系统中移动时如何被变换指明数据在系统中移动时如何被变换指明数据在系统中移动时如何被变换;l l描述对数据流进行变换的功能描述对数据流进行变换的功能描述对数据流进行变换的功能描述对数据流进行变换的功能;DFD DFD DFD DFD中每个功能的描述包含在加工规约中每个功能的描述包含在加工规约中每个功能的描述包含在加工规约中每个功能的描述包含在加工规约 (事务处理说明事务处理说明事务处理说明事务处理说明)。l l状态变迁图状态变迁图(STD)(

27、STD)指明作为外部事件的结果指明作为外部事件的结果指明作为外部事件的结果指明作为外部事件的结果,系统将如何动作。系统将如何动作。系统将如何动作。系统将如何动作。34数据流图数据流图l lData Flow DiagramData Flow DiagramData Flow DiagramData Flow Diagram,简称,简称,简称,简称DFDDFDDFDDFD图。图。图。图。l l数据流图表达数据和处理过程的关系。数据流图表达数据和处理过程的关系。数据流图表达数据和处理过程的关系。数据流图表达数据和处理过程的关系。353.3.2 3.3.2 软件需求规格说明软件需求规格说明通过需求分

28、析除了创建分析模型之外,还应该通过需求分析除了创建分析模型之外,还应该通过需求分析除了创建分析模型之外,还应该通过需求分析除了创建分析模型之外,还应该写出软件需求规格说明书,它是需求分析阶段得出写出软件需求规格说明书,它是需求分析阶段得出写出软件需求规格说明书,它是需求分析阶段得出写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档。的最主要的文档。的最主要的文档。的最主要的文档。通常用自然语言完整、准确、具体地描述系统通常用自然语言完整、准确、具体地描述系统通常用自然语言完整、准确、具体地描述系统通常用自然语言完整、准确、具体地描述系统的的的的数据要求、功能需求、性能需求、可靠性和可用

29、数据要求、功能需求、性能需求、可靠性和可用数据要求、功能需求、性能需求、可靠性和可用数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需性要求、出错处理需求、接口需求、约束、逆向需性要求、出错处理需求、接口需求、约束、逆向需性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求求以及将来可能提出的要求求以及将来可能提出的要求求以及将来可能提出的要求。自然语言的规格说明。自然语言的规格说明。自然语言的规格说明。自然语言的规格说明具有容易书写、容易理解的优点,为大多数人所欢具有容易书写、容易理解的优点,为大多数人所欢具有容易书写、容易理解的优点,为大

30、多数人所欢具有容易书写、容易理解的优点,为大多数人所欢迎和采用。迎和采用。迎和采用。迎和采用。见软件工程文档模版见软件工程文档模版见软件工程文档模版见软件工程文档模版三、需求规格说明书三、需求规格说明书三、需求规格说明书三、需求规格说明书36进一步改进:进一步改进:为了消除用自然语言书写的软件需求规为了消除用自然语言书写的软件需求规格说明书中可能存在的格说明书中可能存在的不一致、歧义、含糊、不一致、歧义、含糊、不完整及抽象层次混乱不完整及抽象层次混乱等问题,有些人主张等问题,有些人主张用形式化方法描述用形式化方法描述用户对软件系统的需求,用户对软件系统的需求,第第4 4章将简要地介绍形式化说明

31、技术。章将简要地介绍形式化说明技术。373.4 3.4 实体实体-联系图联系图(E-R(E-R图图)为了把用户的数据要求清楚、准确地描述出为了把用户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的来,系统分析员通常建立一个概念性的数据模型数据模型(也称为也称为信息模型信息模型)。这是一种。这是一种面向问题面向问题的数据模的数据模型,是按照用户的观点对数据建立的模型。该模型,是按照用户的观点对数据建立的模型。该模型只是描述了型只是描述了现实业务系统现实业务系统的的数据关系数据关系,它是需,它是需求分析过程中系统分析员与用户非常有效的求分析过程中系统分析员与用户非常有效的业务业务交互

32、工具交互工具。数据模型主要由数据模型主要由3 3种相互关联的信息组成:种相互关联的信息组成:数据对象数据对象(实体实体)、属性属性、联系联系(关系关系)。E-R(Entity-Relationship)383.4.1 3.4.1 数据对象数据对象(实体)(实体)【定义定义】:是对软件必须理解的复合信息的抽象。:是对软件必须理解的复合信息的抽象。所谓复合信息是指具有一系列、多个值的不同性所谓复合信息是指具有一系列、多个值的不同性质或属性的事物。质或属性的事物。【举例举例】:数据对象可以是:数据对象可以是外部实体外部实体(例如,产例如,产生或使用信息的任何事物生或使用信息的任何事物)、事物事物(例

33、如,报表例如,报表)、行为行为(例如,打电话例如,打电话)、事件事件(例如,响警报例如,响警报)、角角色色(例如,教师、学生例如,教师、学生)、单位单位(例如,会计科例如,会计科)、地点地点(例如,仓库例如,仓库)或或结构结构(例如,文件例如,文件)等。等。总之,总之,每个实体都有一组特征或性质,称为实体每个实体都有一组特征或性质,称为实体的属性的属性,一个实体可以有多个属性一个实体可以有多个属性。39实体与实体之间是有关联的,实体与实体之间是有关联的,例如,教例如,教师师“教教”课程,学生课程,学生“学学”课程,教或学的课程,教或学的关系表示教师和课程或学生和课程之间的一关系表示教师和课程或

34、学生和课程之间的一种特定的连接。种特定的连接。数据对象只封装了数据而没有对施加于数据对象只封装了数据而没有对施加于数据上的操作的引用,这是数据对象与面向数据上的操作的引用,这是数据对象与面向对象范型对象范型(参见本书第参见本书第9 9章章)中的中的“类类”或或“对对象象”的显著区别。的显著区别。403.4.2 属性属性属性定义了数据对象的性质,属性定义了数据对象的性质,即即属性可属性可能的取值集合称为属性的能的取值集合称为属性的值域值域。每个属性可每个属性可用唯一的用唯一的“标识符标识符”来定义。来定义。实体中的关键字称为实体中的关键字称为“键键”,它是实体,它是实体型的一个重要完整性约束,规

35、定不同的实体型的一个重要完整性约束,规定不同的实体不能取相同的键值。不能取相同的键值。属性的需求定义来自实际业务活动。属性的需求定义来自实际业务活动。413.4.3 3.4.3 联系联系(关系)(关系)数据对象彼此之间相互连接的方式称为联系,也数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下称为关系。联系可分为以下3种类型:种类型:(1)一对一联系一对一联系(1 1)例如,一个部门有一个经理,而每个经理只在一例如,一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。个部门任职,则部门与经理的联系是一对一的。(2)一对多联系一对多联系(1 N)例如,某

36、校教师与课程之间存在一对多的联系例如,某校教师与课程之间存在一对多的联系“教教”,即每位教师可以教多门课程,但是每门课,即每位教师可以教多门课程,但是每门课程只能由一位教师来教程只能由一位教师来教(见图见图3.2)。42例如:例如:学生学生具有具有学号学号、姓名姓名、性别性别、年龄年龄、专专业业(其它略)等属性;(其它略)等属性;课程课程具有具有课程号课程号、课程名课程名、学分学分、学时学时数数等属性;等属性;教师教师具有具有职工号职工号、姓名姓名、年龄年龄、职称职称等等属性。属性。此外,学生通过学号、分数与课程和教师发此外,学生通过学号、分数与课程和教师发生联系。如此可得教学实体模型,生联系

37、。如此可得教学实体模型,E-R图图见见图图3-2。43图图3.2 某校教学管理某校教学管理E-R图图44(3)(3)多对多联系多对多联系(MN)(MN)例如,图例如,图3.23.2表示学生与课程间的联系表示学生与课程间的联系(“(“学学”)是多对多的,是多对多的,即一个学生可以学多门课程,即一个学生可以学多门课程,而每门课程可以有多个学生来学。而每门课程可以有多个学生来学。联系也可能有属性。联系也可能有属性。例如,学生例如,学生“学学”某门某门课程所取得的成绩,既不是学生的属性也不课程所取得的成绩,既不是学生的属性也不是课程的属性。是课程的属性。453.4.4 3.4.4 实体实体-联系图的符

38、号联系图的符号用用E-R图描绘的数据模型称为图描绘的数据模型称为E-R模型模型。E-R图中包含了图中包含了实体实体(即数据对象即数据对象)、关系关系和和属性属性3种基本成分,符号如下所示:种基本成分,符号如下所示:实体实体联系或关系联系或关系属性属性连接线连接线或或46例:学生管理系统的基本例:学生管理系统的基本E-RE-R图图47例:公司车队信息系统的例:公司车队信息系统的ERER模型模型 图图 公司车队信息系统的公司车队信息系统的ER模型模型部门部门车队车队司机司机车辆车辆开销开销维修公司维修公司调用调用报销报销拥有拥有聘用聘用保险保险2保险保险1M1NN1NNNN11保险公司保险公司1N

39、维修维修483.5 3.5 数据规范化数据规范化为什么要规范化?为什么要规范化?为减少数据冗余,避免为减少数据冗余,避免出现插入、更新或删除异常出现插入、更新或删除异常,为了便于数据,为了便于数据库的设计,常常要对这种结构做一些简化,库的设计,常常要对这种结构做一些简化,其中最常见的一种方法就是规范化技术。其中最常见的一种方法就是规范化技术。“规范化规范化”将数据的逻辑结构归结为满足将数据的逻辑结构归结为满足一定条件一定条件(m(m行行n n列列)的二维表(关系)。的二维表(关系)。l l“范式范式范式范式(normal forms)(normal forms)”规范化的目的是:规范化的目的是

40、:规范化的目的是:规范化的目的是:l l 消除数据冗余消除数据冗余消除数据冗余消除数据冗余,即消除表格中数据的重复;,即消除表格中数据的重复;,即消除表格中数据的重复;,即消除表格中数据的重复;l l 消除多义性消除多义性消除多义性消除多义性,使关系中的属性含义清楚、单一;,使关系中的属性含义清楚、单一;,使关系中的属性含义清楚、单一;,使关系中的属性含义清楚、单一;49【范式的优缺点范式的优缺点】:第一范式第一范式(1 NF)(1 NF)数据冗余程数据冗余程度最大,第五范式度最大,第五范式(5 NF)(5 NF)数据冗余程度最小。数据冗余程度最小。第一:第一:范式级别越高,消除数据冗余的程度

41、越大,范式级别越高,消除数据冗余的程度越大,但是,存储同样数据就需要分解成更多张表,因但是,存储同样数据就需要分解成更多张表,因此,此,“存储自身存储自身”的过程也就越复杂。的过程也就越复杂。第二:第二:随着范式级别的提高,数据的存储结构与随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降,因基于问题域的结构间的匹配程度也随之下降,因此,在需求变化时数据的稳定性较差。此,在需求变化时数据的稳定性较差。第三:第三:范式级别提高则需要访问的表增多,因此范式级别提高则需要访问的表增多,因此性能性能(速度速度)将下降。将下降。【实用范式实用范式】:第三范式:第三范式(3NF)(

42、3NF)。50用教学管理例说明如何规范化用教学管理例说明如何规范化有三个实体型,即有三个实体型,即课程课程、学生学生和和教师教师,用,用三个关系保存它们的信息:三个关系保存它们的信息:学生学生学生学生(学号学号学号学号,姓名,性别,年龄,专业,籍贯,姓名,性别,年龄,专业,籍贯,姓名,性别,年龄,专业,籍贯,姓名,性别,年龄,专业,籍贯)教师教师教师教师(职工号职工号职工号职工号,姓名,年龄,职称,工资级别,姓名,年龄,职称,工资级别,姓名,年龄,职称,工资级别,姓名,年龄,职称,工资级别,工资工资工资工资)课程课程课程课程(课程号课程号课程号课程号,课程名,学分,学时,课程类型,课程名,学分

43、,学时,课程类型,课程名,学分,学时,课程类型,课程名,学分,学时,课程类型)51为表示实体型之间的联系,又建立两个关为表示实体型之间的联系,又建立两个关系:系:选课选课 (学号,课程号学号,课程号,听课出勤率,听课出勤率,作业完成率,分数作业完成率,分数)教课教课 (职工号,课程号职工号,课程号)这五个关系,组成了这五个关系,组成了数据库的模型数据库的模型。在每个关系中,属性名下加下划线,指明在每个关系中,属性名下加下划线,指明关键字关键字。并规定关键字能唯一地标识一个。并规定关键字能唯一地标识一个元组。元组。52教师教师 (职工号职工号,姓名姓名,年龄年龄,)l l其中,属性其中,属性“姓

44、名姓名”,“年龄年龄”等都等都函数依赖于属性函数依赖于属性“职工号职工号”。属性。属性可以是复合属性,如:可以是复合属性,如:选课选课 (学号学号,课程号课程号,听课出勤率听课出勤率,)533.6 3.6 状态转换图状态转换图【来源来源】:结构化需求分析的第:结构化需求分析的第3 3条准则条准则建立软件系统的行为模型。建立软件系统的行为模型。【作用作用】:状态状态转换图转换图(简称为状态图简称为状态图)通过描通过描绘系统的状态及引起系统状态转换的绘系统的状态及引起系统状态转换的事件事件,来表示系统的行为。来表示系统的行为。543.6.1 3.6.1 状态状态状态是任何可以被观察到的系统行状态是

45、任何可以被观察到的系统行为模式,一个状态代表系统的一种行为为模式,一个状态代表系统的一种行为模式。模式。在状态图中定义的状态主要有:在状态图中定义的状态主要有:初初态态(即初始状态即初始状态)、终态终态(即最终状态即最终状态)和和中中间状态间状态。在一张状态图中只能有。在一张状态图中只能有一个初一个初态态,而,而终态终态则可以则可以有有0 0至多个至多个。55状态图既可以表示系统循环运行过程,状态图既可以表示系统循环运行过程,也可以表示系统单程生命期。也可以表示系统单程生命期。563.6.2 3.6.2 事件事件事件是在某个特定时刻发生的事情事件是在某个特定时刻发生的事情,它是对,它是对引起系

46、统做动作或引起系统做动作或(和和)从一个状态转换到另一从一个状态转换到另一个状态的外界事件的抽象。个状态的外界事件的抽象。例如例如,内部时钟表明某个规定的时间段已经内部时钟表明某个规定的时间段已经过去过去,用户移动或点击鼠标等都是事件用户移动或点击鼠标等都是事件。总之,事件就是引起系统做动作或总之,事件就是引起系统做动作或(和和)转换状转换状态的控制信息。态的控制信息。573.6.3 3.6.3 符号符号活动表的语法格式:活动表的语法格式:活动表的语法格式:活动表的语法格式:事件名事件名事件名事件名(参数表参数表参数表参数表)/)/)/)/动作表达式动作表达式动作表达式动作表达式活动表中经常用

47、下述活动表中经常用下述活动表中经常用下述活动表中经常用下述3 3 3 3种标准事件:种标准事件:种标准事件:种标准事件:entryentryentryentry事件指定进入该状态的动作;事件指定进入该状态的动作;事件指定进入该状态的动作;事件指定进入该状态的动作;exitexitexitexit事件指定退出该状态的动作;事件指定退出该状态的动作;事件指定退出该状态的动作;事件指定退出该状态的动作;dodododo事件则指定在该状态下的动作。事件则指定在该状态下的动作。事件则指定在该状态下的动作。事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表需要时可以为事件指定参数表。

48、活动表中的动作表需要时可以为事件指定参数表。活动表中的动作表需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。达式描述应做的具体动作。达式描述应做的具体动作。达式描述应做的具体动作。状态变迁通常是由事件触发的,在这种情况下应在状态变迁通常是由事件触发的,在这种情况下应在状态变迁通常是由事件触发的,在这种情况下应在状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达表示状态转换的箭头线上标出触发转换的事件表达表示状态转换的箭头线上标出触发转换的事件表达表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态式;

49、如果在箭头线上未标明事件,则表示在源状态式;如果在箭头线上未标明事件,则表示在源状态式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。的内部活动执行完之后自动触发转换。的内部活动执行完之后自动触发转换。的内部活动执行完之后自动触发转换。58图图3.3 状态图中使用的主要符号状态图中使用的主要符号初态初态终态终态中间状态,中间状态,上面部分为状态的名称,这部分上面部分为状态的名称,这部分上面部分为状态的名称,这部分上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和是必须有的;中间部分为状态变量的名字和是必须有的;中间部分为状态变量的名字和是必须有的;中

50、间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,值,这部分是可选的;下面部分是活动表,值,这部分是可选的;下面部分是活动表,值,这部分是可选的;下面部分是活动表,这部分也是可选的。这部分也是可选的。这部分也是可选的。这部分也是可选的。连线为状态装换,箭连线为状态装换,箭头为转换方向,上方头为转换方向,上方为具体事件为具体事件593.6.4 3.6.4 例子例子怎样用状态图建立系统的行怎样用状态图建立系统的行怎样用状态图建立系统的行怎样用状态图建立系统的行为模型。图为模型。图为模型。图为模型。图3.43.43.43.4(见书见书见书见书57575757页页页页)是人们非常熟悉的电话

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁