第3章需求分析

上传人:大米 文档编号:568898691 上传时间:2024-07-27 格式:PPT 页数:69 大小:718.50KB
返回 下载 相关 举报
第3章需求分析_第1页
第1页 / 共69页
第3章需求分析_第2页
第2页 / 共69页
第3章需求分析_第3页
第3页 / 共69页
第3章需求分析_第4页
第4页 / 共69页
第3章需求分析_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《第3章需求分析》由会员分享,可在线阅读,更多相关《第3章需求分析(69页珍藏版)》请在金锄头文库上搜索。

1、第第 3 章章 需求分析需求分析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 小结小结小结小结习题习题习题习题3.1 3.1 3.1 3.1 需求分析的任务需求分析的任务需求分析的任务需求分析的任务3.2 3.2 3.2 3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法与用户沟通获取需求的方法与用户沟通获取需求的方法3.3 3.3 3.3 3.3 分析建模与规格说明分析建

2、模与规格说明分析建模与规格说明分析建模与规格说明3.4 3.4 3.4 3.4 实体实体实体实体- - - -联系图联系图联系图联系图3.5 3.5 3.5 3.5 数据规范化数据规范化数据规范化数据规范化需求分析是软件定义时期的最后一个阶段需求分析是软件定义时期的最后一个阶段需求分析是软件定义时期的最后一个阶段需求分析是软件定义时期的最后一个阶段,它的基本任务是它的基本任务是它的基本任务是它的基本任务是准确地回答准确地回答准确地回答准确地回答“ “系统必须做什么系统必须做什么系统必须做什么系统必须做什么?”?”这个问题。这个问题。这个问题。这个问题。需求分析的任务:需求分析的任务:需求分析的

3、任务:需求分析的任务:确定对系统的综合要求、分析系统的数据确定对系统的综合要求、分析系统的数据确定对系统的综合要求、分析系统的数据确定对系统的综合要求、分析系统的数据要求、导出系统的逻辑模型、修正系统开发计划要求、导出系统的逻辑模型、修正系统开发计划要求、导出系统的逻辑模型、修正系统开发计划要求、导出系统的逻辑模型、修正系统开发计划需求分析过程应该建立需求分析过程应该建立需求分析过程应该建立需求分析过程应该建立3 3种模型:种模型:种模型:种模型:数据模型:描述问题的信息域数据模型:描述问题的信息域数据模型:描述问题的信息域数据模型:描述问题的信息域( (E-RE-R图、层次方框图、图、层次方

4、框图、图、层次方框图、图、层次方框图、WarnierWarnier图)图)图)图)功能模型:定义软件应完成的功能(数据流图)功能模型:定义软件应完成的功能(数据流图)功能模型:定义软件应完成的功能(数据流图)功能模型:定义软件应完成的功能(数据流图)行为模型:描述作为外部事件结果的软件行为(状态图)行为模型:描述作为外部事件结果的软件行为(状态图)行为模型:描述作为外部事件结果的软件行为(状态图)行为模型:描述作为外部事件结果的软件行为(状态图)系统分析员应该写出软件需求规格说明书:系统分析员应该写出软件需求规格说明书:系统分析员应该写出软件需求规格说明书:系统分析员应该写出软件需求规格说明书

5、:用自然语言完整、用自然语言完整、用自然语言完整、用自然语言完整、准确、具体地描述系统的数据要求、功能需求、性能需求、准确、具体地描述系统的数据要求、功能需求、性能需求、准确、具体地描述系统的数据要求、功能需求、性能需求、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆可靠性和可用性要求、出错处理需求、接口需求、约束、逆可靠性和可用性要求、出错处理需求、接口需求、约束、逆可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。向需求以及将来可能提出的要求。向需求以及将来可能提出的要求。向需求以及将来可能提出的要求

6、。3.1 3.1 需求分析的任务需求分析的任务需求分析的任务需求分析的任务1. 1. 功能需求功能需求功能需求功能需求这方面的需求指定系统必须提供这方面的需求指定系统必须提供这方面的需求指定系统必须提供这方面的需求指定系统必须提供的服务。通过需求分析应该划分的服务。通过需求分析应该划分的服务。通过需求分析应该划分的服务。通过需求分析应该划分出系统必须完成的所有功能。出系统必须完成的所有功能。出系统必须完成的所有功能。出系统必须完成的所有功能。 3.1.1 3.1.1 确定对系统的综合要求确定对系统的综合要求确定对系统的综合要求确定对系统的综合要求2.3 2.3 产品功能产品功能2.3.1 2.

7、3.1 外部功能外部功能学籍管理系统软件具有输入、输出、查找功能。学籍管理系统软件具有输入、输出、查找功能。 2.3.2 2.3.2 内部功能内部功能该软件集命令、编程、编辑于一体,完成过滤、定位显示。该软件集命令、编程、编辑于一体,完成过滤、定位显示。2.3.3 2.3.3 功能表功能表2.3.4 2.3.4 功能描述图功能描述图2. 2. 性能需求性能需求性能需求性能需求性能需求指定系统必须满足的定时约束或容量约束,通常包括速度性能需求指定系统必须满足的定时约束或容量约束,通常包括速度性能需求指定系统必须满足的定时约束或容量约束,通常包括速度性能需求指定系统必须满足的定时约束或容量约束,通

8、常包括速度( (响应时间响应时间响应时间响应时间) )、信息量速率、主存容量、磁盘容量、安全性等方面的需求。、信息量速率、主存容量、磁盘容量、安全性等方面的需求。、信息量速率、主存容量、磁盘容量、安全性等方面的需求。、信息量速率、主存容量、磁盘容量、安全性等方面的需求。3.3 性能需求性能需求3.3.1 动态数值需求动态数值需求a. 紧急按键的键值应随时接受处理,其他按键值在一定时间内接受处紧急按键的键值应随时接受处理,其他按键值在一定时间内接受处理。理。b. 显示部分应随数值变化做出相应的反应。显示部分应随数值变化做出相应的反应。c. 基准时间要提供准确。基准时间要提供准确。3.3.2 精度

9、需求精度需求每一个按键的按键值应唯一。在车通行的每一个按键的按键值应唯一。在车通行的79秒之内,行人按键无效。秒之内,行人按键无效。行人通行时,显示时间在行人通行时,显示时间在5秒或小于秒或小于5秒时,按键无效。秒时,按键无效。3.3.3 时间需求时间需求按键后系统立即做出反应。按键后系统立即做出反应。3. 3. 可靠性和可用性需求可靠性和可用性需求可靠性和可用性需求可靠性和可用性需求3.10 3.10 属性属性3.10.1 3.10.1 可使用性可使用性在装载总程序时,正常就运行,异常就停止;汉语编程系统出现错误,在装载总程序时,正常就运行,异常就停止;汉语编程系统出现错误,将会产生不可遇见

10、的问题,热启,整个终端程序就会再启动;程序出现错将会产生不可遇见的问题,热启,整个终端程序就会再启动;程序出现错误,误, 重新装载重新装载, ,若仍有错,按照提示逐渐装载。若仍有错,按照提示逐渐装载。 3.10.2 3.10.2 保密性保密性本软件作为教学管理辅助设备本软件作为教学管理辅助设备, ,它的规模比较小它的规模比较小, ,不需要保密技术;限不需要保密技术;限定一个程序中某些区域的规约,给不同的模块分配不同的功能。定一个程序中某些区域的规约,给不同的模块分配不同的功能。3.10.3 3.10.3 可维护性可维护性本软件的组成程序为汉语成语设计语言,组构均较简单本软件的组成程序为汉语成语

11、设计语言,组构均较简单, ,直观意义上直观意义上的较独立。因此的较独立。因此, ,给予电子化的所构成的硬件的简单可维护的特点给予电子化的所构成的硬件的简单可维护的特点, ,决定了决定了该软件的简单可维护性。该软件的简单可维护性。3.10.4 3.10.4 可转移、可转换性可转移、可转换性可转移的环境是奔腾可转移的环境是奔腾133133、1616兆内存以上;不可修改任何部分;可用兆内存以上;不可修改任何部分;可用向上兼容的高版本的汉语编程系统。向上兼容的高版本的汉语编程系统。3.10.5 3.10.5 注释注释本产品所拥有的属性十分重要,它使得读者用规定的方法去客观的验本产品所拥有的属性十分重要

12、,它使得读者用规定的方法去客观的验证软件的各种特性。证软件的各种特性。 这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从另一个系统发来的违反协议格式的消息,应该做什么另一个系统发来的违反协议格式的消息,应该做什么另一个系统发来的违反协议格式的消息,应该做什么另一个系统发来的违反协议格式的消息,应该做什么? ?注意,上述这类错误注意,上述这类错误注意,上述这类错误注意,上述这类错误并不是由该应用系统本身造成

13、的。并不是由该应用系统本身造成的。并不是由该应用系统本身造成的。并不是由该应用系统本身造成的。在某些情况下,在某些情况下,在某些情况下,在某些情况下,“ “出错处理出错处理出错处理出错处理” ”指的是当应用系统发现它自己犯下一个错误指的是当应用系统发现它自己犯下一个错误指的是当应用系统发现它自己犯下一个错误指的是当应用系统发现它自己犯下一个错误时所采取的行动。但是,应该有选择地提出这类出错处理需求。我们的目时所采取的行动。但是,应该有选择地提出这类出错处理需求。我们的目时所采取的行动。但是,应该有选择地提出这类出错处理需求。我们的目时所采取的行动。但是,应该有选择地提出这类出错处理需求。我们的

14、目的是开发出正确的系统,而不是用无休止的出错处理代码掩盖自己的错误。的是开发出正确的系统,而不是用无休止的出错处理代码掩盖自己的错误。的是开发出正确的系统,而不是用无休止的出错处理代码掩盖自己的错误。的是开发出正确的系统,而不是用无休止的出错处理代码掩盖自己的错误。总之,对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该总之,对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该总之,对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该总之,对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽可能少。尽可能少。尽可能少。尽可能少。4. 4. 出错处理需求出错处理需求出

15、错处理需求出错处理需求3.7.6 3.7.6 故障处理故障处理a. a. 内部故障处理内部故障处理在开发阶段可以随即修改数据库里的相应内容。在开发阶段可以随即修改数据库里的相应内容。b. b. 外部故障处理外部故障处理对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运行,在需求调用时出错,有错误提示,重试。行,在需求调用时出错,有错误提示,重试。接口需求描述应用系统与它的环境通信的格接口需求描述应用系统与它的环境通信的格接口需求描述应用系统与它的环境通信的格接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求

16、;硬件接式。常见的接口需求有:用户接口需求;硬件接式。常见的接口需求有:用户接口需求;硬件接式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。口需求;软件接口需求;通信接口需求。口需求;软件接口需求;通信接口需求。口需求;软件接口需求;通信接口需求。5. 5. 接口需求接口需求接口需求接口需求3.9 3.9 接口需求接口需求3.9.1 3.9.1 用户接口用户接口本产品的用户一般需要通过终端进行操作,进入主界面后本产品的用户一般需要通过终端进行操作,进入主界面后点击相应的窗口,分别进入相对应的界面点击相应的窗口,分别进入相对应的界面( (如:输入界面、输如:输入界面

17、、输出界面出界面) )。用户对程序的维护,最好要有备份。用户对程序的维护,最好要有备份。3.9.2 3.9.2 软件接口软件接口 WIN9X/NTWIN9X/NT操作系统,汉语编程系统。操作系统,汉语编程系统。 设计约束或实现约束描述在设计或实现应用系统时应遵守设计约束或实现约束描述在设计或实现应用系统时应遵守设计约束或实现约束描述在设计或实现应用系统时应遵守设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。在需求分析阶段提出这类需求,并不是要取代设的限制条件。在需求分析阶段提出这类需求,并不是要取代设的限制条件。在需求分析阶段提出这类需求,并不是要取代设的限制条件。在需求分析阶段

18、提出这类需求,并不是要取代设计计计计( (或实现或实现或实现或实现) )过程,只是说明用户或环境强加给项目的限制条件。过程,只是说明用户或环境强加给项目的限制条件。过程,只是说明用户或环境强加给项目的限制条件。过程,只是说明用户或环境强加给项目的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用常见的约束有:精度;工具和语言约束;设计约束;应该使用常见的约束有:精度;工具和语言约束;设计约束;应该使用常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。的标准;应该使用的硬件平台。的标准;应该使用的硬件平台。的标准;应该使用的硬件平台。6. 6. 约束

19、约束约束约束3.8 3.8 设计约束条件设计约束条件3.8.1 3.8.1 技术约束技术约束本项目的设计是在汉语程序设计语言的条件下进行的,技术设计采用软硬本项目的设计是在汉语程序设计语言的条件下进行的,技术设计采用软硬一体化的设计方法。一体化的设计方法。3.8.2 3.8.2 环境约束环境约束运行该软件所适用的具体设备必须是奔腾运行该软件所适用的具体设备必须是奔腾133133、内存、内存1616兆以上的计算机兆以上的计算机; ;3.8.3 3.8.3 标准约束标准约束该软件的开发完全按照企业标准开发,包括硬件、软件和文档规格。该软件的开发完全按照企业标准开发,包括硬件、软件和文档规格。 3.

20、8.4 3.8.4 硬件限制硬件限制奔腾奔腾133 133 、内存、内存1616兆以上兆以上PCPC机满足输入端条件。机满足输入端条件。逆向需求说明软件系统不应该做什么。理论上有无限逆向需求说明软件系统不应该做什么。理论上有无限逆向需求说明软件系统不应该做什么。理论上有无限逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,我们应该仅选取能澄清真实需求且可消除多个逆向需求,我们应该仅选取能澄清真实需求且可消除多个逆向需求,我们应该仅选取能澄清真实需求且可消除多个逆向需求,我们应该仅选取能澄清真实需求且可消除可能发生的误解的那些逆向需求。可能发生的误解的那些逆向需求。可能发生的误解的那些

21、逆向需求。可能发生的误解的那些逆向需求。7. 7. 逆向需求逆向需求逆向需求逆向需求应该明确地列出那些虽然不属于当前系统开发范畴,应该明确地列出那些虽然不属于当前系统开发范畴,应该明确地列出那些虽然不属于当前系统开发范畴,应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。这样做的目的是,但是据分析将来很可能会提出来的要求。这样做的目的是,但是据分析将来很可能会提出来的要求。这样做的目的是,但是据分析将来很可能会提出来的要求。这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以在设计过程中对系统将来可能的扩充和修改预做准备,以在设计过程中对系统将来可

22、能的扩充和修改预做准备,以在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。便一旦确实需要时能比较容易地进行这种扩充和修改。便一旦确实需要时能比较容易地进行这种扩充和修改。便一旦确实需要时能比较容易地进行这种扩充和修改。8. 8. 将来可能提出的要求将来可能提出的要求将来可能提出的要求将来可能提出的要求3.1.2 分析系统的数据要求分析系统的数据要求 必须分析系统的数据要求,这是软件需求分析的一个重必须分析系统的数据要求,这是软件需求分析的一个重必须分析系统的数据要求,这是软件需求分析的一个重必须分析系统的数据要求,这是软件需求分析的一个重要任务

23、。分析系统的数据要求通常采用建立数据模型的方法要任务。分析系统的数据要求通常采用建立数据模型的方法要任务。分析系统的数据要求通常采用建立数据模型的方法要任务。分析系统的数据要求通常采用建立数据模型的方法( (见见见见3.43.4节节节节) )。 利用数据字典可以全面准确地定义数据,但是数据字典利用数据字典可以全面准确地定义数据,但是数据字典利用数据字典可以全面准确地定义数据,但是数据字典利用数据字典可以全面准确地定义数据,但是数据字典的缺点是不够形象直观。为了提高可理解性,常常利用图形的缺点是不够形象直观。为了提高可理解性,常常利用图形的缺点是不够形象直观。为了提高可理解性,常常利用图形的缺点

24、是不够形象直观。为了提高可理解性,常常利用图形工具辅助描绘数据结构。常用的图形工具有层次方框图和工具辅助描绘数据结构。常用的图形工具有层次方框图和工具辅助描绘数据结构。常用的图形工具有层次方框图和工具辅助描绘数据结构。常用的图形工具有层次方框图和WarnierWarnier图图图图 为减少数据冗余,避免出现插入异常或删除异常,简化为减少数据冗余,避免出现插入异常或删除异常,简化为减少数据冗余,避免出现插入异常或删除异常,简化为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。修改数据的过程,通常需要把数据结构规范化。修改数据的过程,通常需要把数据结构规范化

25、。修改数据的过程,通常需要把数据结构规范化。3.1.3 导出系统的逻辑模型导出系统的逻辑模型综合上述两项分析的结果可以导出系统的详细的逻辑模型,综合上述两项分析的结果可以导出系统的详细的逻辑模型,综合上述两项分析的结果可以导出系统的详细的逻辑模型,综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体通常用数据流图、实体通常用数据流图、实体通常用数据流图、实体- -联系图、状态转换图、数据字典和主联系图、状态转换图、数据字典和主联系图、状态转换图、数据字典和主联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。要的处理算法描述这个逻辑模型。要的处理算法描述这个逻辑模

26、型。要的处理算法描述这个逻辑模型。(1) (1) 必须理解并描述问题的信息域,根据这条准则应该建立数必须理解并描述问题的信息域,根据这条准则应该建立数必须理解并描述问题的信息域,根据这条准则应该建立数必须理解并描述问题的信息域,根据这条准则应该建立数据模型。据模型。据模型。据模型。(2) (2) 必须定义软件应完成的功能,这条准则要求建立功能模型。必须定义软件应完成的功能,这条准则要求建立功能模型。必须定义软件应完成的功能,这条准则要求建立功能模型。必须定义软件应完成的功能,这条准则要求建立功能模型。(3) (3) 必须描述作为外部事件结果的软件行为,这条准则要求建必须描述作为外部事件结果的软

27、件行为,这条准则要求建必须描述作为外部事件结果的软件行为,这条准则要求建必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。立行为模型。立行为模型。立行为模型。(4) (4) 必须对描述信息、功能和行为的模型进行分解,用层次的必须对描述信息、功能和行为的模型进行分解,用层次的必须对描述信息、功能和行为的模型进行分解,用层次的必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。方式展示细节。方式展示细节。方式展示细节。3.1.4 修正系统开发计划修正系统开发计划 根据在分析过程中获得的对系统的更根据在分析过程中获得的对系统的更根据在分析过程中获得的对系统的更根据在分析过程中

28、获得的对系统的更深入更具体的了解,可以比较准确地估计深入更具体的了解,可以比较准确地估计深入更具体的了解,可以比较准确地估计深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发系统的成本和进度,修正以前制定的开发系统的成本和进度,修正以前制定的开发系统的成本和进度,修正以前制定的开发计划。计划。计划。计划。3.2 与用户沟通获取需求的方法与用户沟通获取需求的方法访谈有两种基本形式:访谈有两种基本形式:访谈有两种基本形式:访谈有两种基本形式:正式的和非正式。正式的和非正式。正式的和非正式。正式的和非正式。正式访谈时,正式访谈时,正式访谈时,正式访谈时,系统分析员将提出一些事先

29、准备好的具体问题。系统分析员将提出一些事先准备好的具体问题。系统分析员将提出一些事先准备好的具体问题。系统分析员将提出一些事先准备好的具体问题。在非正式访谈中,在非正式访谈中,在非正式访谈中,在非正式访谈中,分析员将提出一些用户可以自由回答的开分析员将提出一些用户可以自由回答的开分析员将提出一些用户可以自由回答的开分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。放性问题,以鼓励被访问人员说出自己的想法。放性问题,以鼓励被访问人员说出自己的想法。放性问题,以鼓励被访问人员说出自己的想法。 3.2.1 访谈访谈在访问用户的过程中使用情景分析技术往往非常有效。所在访问用

30、户的过程中使用情景分析技术往往非常有效。所在访问用户的过程中使用情景分析技术往往非常有效。所在访问用户的过程中使用情景分析技术往往非常有效。所谓情景分析就是对用户将来使用目标系统解决某个具体问谓情景分析就是对用户将来使用目标系统解决某个具体问谓情景分析就是对用户将来使用目标系统解决某个具体问谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。题的方法和结果进行分析。题的方法和结果进行分析。题的方法和结果进行分析。3.2.2 面向数据流自顶向下求精面向数据流自顶向下求精结构化分析方法(结构化分析方法(结构化分析方法(结构化分析方法(SASA)就是面向数据流自顶向下逐步求精就

31、是面向数据流自顶向下逐步求精就是面向数据流自顶向下逐步求精就是面向数据流自顶向下逐步求精进行需求分析的方法。需求分析的目标之一就是把数据流和数进行需求分析的方法。需求分析的目标之一就是把数据流和数进行需求分析的方法。需求分析的目标之一就是把数据流和数进行需求分析的方法。需求分析的目标之一就是把数据流和数据存储(可行性研究得到的高层数据流图)定义到元素级。据存储(可行性研究得到的高层数据流图)定义到元素级。据存储(可行性研究得到的高层数据流图)定义到元素级。据存储(可行性研究得到的高层数据流图)定义到元素级。沿数据流图从输出端往输入端回溯着手分析。沿数据流图从输出端往输入端回溯着手分析。沿数据流

32、图从输出端往输入端回溯着手分析。沿数据流图从输出端往输入端回溯着手分析。图图图图3.1 3.1 面向数据流自顶向下求精过程面向数据流自顶向下求精过程面向数据流自顶向下求精过程面向数据流自顶向下求精过程3.2.3 简易的应用规格说明技术简易的应用规格说明技术简易的应用规格说明技术(面向团队的而求收集法)简易的应用规格说明技术(面向团队的而求收集法)简易的应用规格说明技术(面向团队的而求收集法)简易的应用规格说明技术(面向团队的而求收集法)提倡用户与提倡用户与提倡用户与提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案

33、开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并指定基本需求。并指定基本需求。并指定基本需求。并指定基本需求。使用简易的应用规格说明技术分析需求的典型过程如下:使用简易的应用规格说明技术分析需求的典型过程如下:使用简易的应用规格说明技术分析需求的典型过程如下:使用简易的应用规格说明技术分析需求的典型过程如下:首先进行初步的访谈,然后开发者和用户分别写出首先进行初步的访谈,然后开发者和用户分别写出首先进行初步的访谈,然后开发者和用户分别写出首先进行初步的访谈,然后开发者和用户分别写出“ “产品需求产品需求产品需求产品需求”

34、 ”。选定会议的时间和地点,要求每位与会者在开会的前几天认真审查产选定会议的时间和地点,要求每位与会者在开会的前几天认真审查产选定会议的时间和地点,要求每位与会者在开会的前几天认真审查产选定会议的时间和地点,要求每位与会者在开会的前几天认真审查产品需求,并且列出作为系统环境组成部分的对象、系统将产生的对象品需求,并且列出作为系统环境组成部分的对象、系统将产生的对象品需求,并且列出作为系统环境组成部分的对象、系统将产生的对象品需求,并且列出作为系统环境组成部分的对象、系统将产生的对象以及系统为了完成自己的功能将使用的对象。在完成了小型规格说明以及系统为了完成自己的功能将使用的对象。在完成了小型规

35、格说明以及系统为了完成自己的功能将使用的对象。在完成了小型规格说明以及系统为了完成自己的功能将使用的对象。在完成了小型规格说明之后,每个与会者都制定出产品的一整套确认标准,并把自己制定的之后,每个与会者都制定出产品的一整套确认标准,并把自己制定的之后,每个与会者都制定出产品的一整套确认标准,并把自己制定的之后,每个与会者都制定出产品的一整套确认标准,并把自己制定的标准提交会议讨论,以创建出意见一致的确认标准。最后,由一名或标准提交会议讨论,以创建出意见一致的确认标准。最后,由一名或标准提交会议讨论,以创建出意见一致的确认标准。最后,由一名或标准提交会议讨论,以创建出意见一致的确认标准。最后,由

36、一名或多名与会者根据会议成果起草完整的软件需求规格说明书。多名与会者根据会议成果起草完整的软件需求规格说明书。多名与会者根据会议成果起草完整的软件需求规格说明书。多名与会者根据会议成果起草完整的软件需求规格说明书。3.2.4 快速建立软件原型快速建立软件原型 快速原型应该具备的第一个特性是快速原型应该具备的第一个特性是快速原型应该具备的第一个特性是快速原型应该具备的第一个特性是“快速快速快速快速”,快速原,快速原,快速原,快速原型应该具备的第二个特性是型应该具备的第二个特性是型应该具备的第二个特性是型应该具备的第二个特性是“容易修改容易修改容易修改容易修改”。为了快速地构建和修改原型,通常使用

37、下述为了快速地构建和修改原型,通常使用下述为了快速地构建和修改原型,通常使用下述为了快速地构建和修改原型,通常使用下述3 3 3 3种方法和工具:种方法和工具:种方法和工具:种方法和工具:(1) (1) (1) (1) 第四代技术第四代技术第四代技术第四代技术(2) (2) (2) (2) 可重用的软件构件可重用的软件构件可重用的软件构件可重用的软件构件(3) (3) (3) (3) 形式化规格说明和原型环境形式化规格说明和原型环境形式化规格说明和原型环境形式化规格说明和原型环境 构建原型的要点是,它应该实现用户看得见的功能构建原型的要点是,它应该实现用户看得见的功能构建原型的要点是,它应该实

38、现用户看得见的功能构建原型的要点是,它应该实现用户看得见的功能( ( ( (例例例例如,屏幕显示或打印报表如,屏幕显示或打印报表如,屏幕显示或打印报表如,屏幕显示或打印报表) ) ) ),省略目标系统的,省略目标系统的,省略目标系统的,省略目标系统的“隐含隐含隐含隐含”功能功能功能功能( ( ( (例如,修改文件例如,修改文件例如,修改文件例如,修改文件) ) ) )。3.3 分析建模与规格说明分析建模与规格说明所谓模型,就是为了理解事物而对事物做出所谓模型,就是为了理解事物而对事物做出所谓模型,就是为了理解事物而对事物做出所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义

39、的书面描述。的一种抽象,是对事物的一种无歧义的书面描述。的一种抽象,是对事物的一种无歧义的书面描述。的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规通常,模型由一组图形符号和组织这些符号的规通常,模型由一组图形符号和组织这些符号的规通常,模型由一组图形符号和组织这些符号的规则组成。则组成。则组成。则组成。结构化分析实质上是一种创建模型的活动。结构化分析实质上是一种创建模型的活动。结构化分析实质上是一种创建模型的活动。结构化分析实质上是一种创建模型的活动。 需求分析过程应该建立需求分析过程应该建立需求分析过程应该建立需求分析过程应该建立3 3种模型,它们分别

40、是种模型,它们分别是种模型,它们分别是种模型,它们分别是数据模型、功能模型和行为模型。数据模型、功能模型和行为模型。数据模型、功能模型和行为模型。数据模型、功能模型和行为模型。 3.3.1 分析建模分析建模3.3.2 软件需求规格说明软件需求规格说明通过需求分析除了创建分析模型之外,还应该通过需求分析除了创建分析模型之外,还应该通过需求分析除了创建分析模型之外,还应该通过需求分析除了创建分析模型之外,还应该写出软件写出软件写出软件写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档需求规格说明书,它是需求分析阶段得出的最主要的文档需求规格说明书,它是需求分析阶段得出的最主要的文档需求规格

41、说明书,它是需求分析阶段得出的最主要的文档。通常用自然语言完整、准确、具体地描述系统的数据要通常用自然语言完整、准确、具体地描述系统的数据要通常用自然语言完整、准确、具体地描述系统的数据要通常用自然语言完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理求、功能需求、性能需求、可靠性和可用性要求、出错处理求、功能需求、性能需求、可靠性和可用性要求、出错处理求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。需求、接口需求、约束、逆向需求以及将来可能提出的要求。需求、接口需求、约束、逆向需求以及将来可能提出的

42、要求。需求、接口需求、约束、逆向需求以及将来可能提出的要求。自然语言的规格说明具有容易书写、容易理解的优点,为大自然语言的规格说明具有容易书写、容易理解的优点,为大自然语言的规格说明具有容易书写、容易理解的优点,为大自然语言的规格说明具有容易书写、容易理解的优点,为大多数人所欢迎和采用。多数人所欢迎和采用。多数人所欢迎和采用。多数人所欢迎和采用。 为了消除用自然语言书写的软件需求规格说明书中可能为了消除用自然语言书写的软件需求规格说明书中可能为了消除用自然语言书写的软件需求规格说明书中可能为了消除用自然语言书写的软件需求规格说明书中可能存在的不一致、歧义、含糊、不完整及抽象层次混乱等问题,存在

43、的不一致、歧义、含糊、不完整及抽象层次混乱等问题,存在的不一致、歧义、含糊、不完整及抽象层次混乱等问题,存在的不一致、歧义、含糊、不完整及抽象层次混乱等问题,有些人主张用形式化方法描述用户对软件系统的需求,第有些人主张用形式化方法描述用户对软件系统的需求,第有些人主张用形式化方法描述用户对软件系统的需求,第有些人主张用形式化方法描述用户对软件系统的需求,第4 4章章章章将简要地介绍形式化说明技术。将简要地介绍形式化说明技术。将简要地介绍形式化说明技术。将简要地介绍形式化说明技术。3.4 实体实体-联系图联系图为了把用户的数据要求清楚、准确地描述出来,为了把用户的数据要求清楚、准确地描述出来,为

44、了把用户的数据要求清楚、准确地描述出来,为了把用户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型系统分析员通常建立一个概念性的数据模型系统分析员通常建立一个概念性的数据模型系统分析员通常建立一个概念性的数据模型( (也称为也称为也称为也称为信息模型信息模型信息模型信息模型) )。概念性数据模型是一种面向问题的数据。概念性数据模型是一种面向问题的数据。概念性数据模型是一种面向问题的数据。概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描模型,是按照用户的观点对数据建立的模型。它描模型,是按照用户的观点对数据建立的模型。它描模型,是按照用户的观点

45、对数据建立的模型。它描述了从用户角度看到的数据,它反映了用户的现实述了从用户角度看到的数据,它反映了用户的现实述了从用户角度看到的数据,它反映了用户的现实述了从用户角度看到的数据,它反映了用户的现实环境,而且与在软件系统中的实现方法无关。环境,而且与在软件系统中的实现方法无关。环境,而且与在软件系统中的实现方法无关。环境,而且与在软件系统中的实现方法无关。数据模型中包含数据模型中包含数据模型中包含数据模型中包含3 3种相互关联的信息:种相互关联的信息:种相互关联的信息:种相互关联的信息:数据对象、数据对象、数据对象、数据对象、数据对象的属性及数据对象彼此间相互连接的关系。数据对象的属性及数据对

46、象彼此间相互连接的关系。数据对象的属性及数据对象彼此间相互连接的关系。数据对象的属性及数据对象彼此间相互连接的关系。3.4.1 数据对象数据对象数据对象是对软件必须理解的复合信息的抽象。所谓复合信息数据对象是对软件必须理解的复合信息的抽象。所谓复合信息数据对象是对软件必须理解的复合信息的抽象。所谓复合信息数据对象是对软件必须理解的复合信息的抽象。所谓复合信息是指具有一系列不同性质或属性的事物,仅有单个值的事物是指具有一系列不同性质或属性的事物,仅有单个值的事物是指具有一系列不同性质或属性的事物,仅有单个值的事物是指具有一系列不同性质或属性的事物,仅有单个值的事物( (例如,例如,例如,例如,宽

47、度宽度宽度宽度) )不是数据对象。不是数据对象。不是数据对象。不是数据对象。数据对象可以是外部实体数据对象可以是外部实体数据对象可以是外部实体数据对象可以是外部实体( (例如,产生或使用信息的任何事物例如,产生或使用信息的任何事物例如,产生或使用信息的任何事物例如,产生或使用信息的任何事物) )、事物事物事物事物( (例如,报表例如,报表例如,报表例如,报表) )、行为、行为、行为、行为( (例如,打电话例如,打电话例如,打电话例如,打电话) )、事件、事件、事件、事件( (例如,响警报例如,响警报例如,响警报例如,响警报) )、角、角、角、角色色色色( (例如,教师、学生例如,教师、学生例如

48、,教师、学生例如,教师、学生) )、单位、单位、单位、单位( (例如,会计科例如,会计科例如,会计科例如,会计科) )、地点、地点、地点、地点( (例如,仓库例如,仓库例如,仓库例如,仓库) )或或或或结构结构结构结构( (例如,文件例如,文件例如,文件例如,文件) )等。总之,可以由一组属性来定义的实体都可以等。总之,可以由一组属性来定义的实体都可以等。总之,可以由一组属性来定义的实体都可以等。总之,可以由一组属性来定义的实体都可以被认为是数据对象。被认为是数据对象。被认为是数据对象。被认为是数据对象。数据对象彼此间是有关联的,例如,教师数据对象彼此间是有关联的,例如,教师数据对象彼此间是有

49、关联的,例如,教师数据对象彼此间是有关联的,例如,教师“ “教教教教” ”课程,学生课程,学生课程,学生课程,学生“ “学学学学” ”课程,教或学的关系表示教师和课程或学生和课程之间的一种课程,教或学的关系表示教师和课程或学生和课程之间的一种课程,教或学的关系表示教师和课程或学生和课程之间的一种课程,教或学的关系表示教师和课程或学生和课程之间的一种特定的连接。特定的连接。特定的连接。特定的连接。数据对象只封装了数据而没有对施加于数据上的操作的引用,数据对象只封装了数据而没有对施加于数据上的操作的引用,数据对象只封装了数据而没有对施加于数据上的操作的引用,数据对象只封装了数据而没有对施加于数据上

50、的操作的引用,这是数据对象与面向对象范型这是数据对象与面向对象范型这是数据对象与面向对象范型这是数据对象与面向对象范型( (参见本书第参见本书第参见本书第参见本书第9 9章章章章) )中的中的中的中的“ “类类类类” ”或或或或“ “对象对象对象对象” ”的显著区别。的显著区别。的显著区别。的显著区别。3.4.2 属性属性 属性定义了数据对象的性质。必须把一个或属性定义了数据对象的性质。必须把一个或属性定义了数据对象的性质。必须把一个或属性定义了数据对象的性质。必须把一个或多个属性定义为多个属性定义为多个属性定义为多个属性定义为“ “标识符标识符标识符标识符” ”,也就是说,当我们,也就是说,

51、当我们,也就是说,当我们,也就是说,当我们希望找到数据对象的一个实例时,用标识符属性希望找到数据对象的一个实例时,用标识符属性希望找到数据对象的一个实例时,用标识符属性希望找到数据对象的一个实例时,用标识符属性作为作为作为作为“ “关键字关键字关键字关键字” ”( (通常简称为通常简称为通常简称为通常简称为“ “键键键键” ”) )。 应该根据对所要解决的问题的理解,来确定应该根据对所要解决的问题的理解,来确定应该根据对所要解决的问题的理解,来确定应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。特定数据对象的一组合适的属性。特定数据对象的一组合适的属性。特定数据对象的一组合

52、适的属性。3.4.3 联系联系联系可分为以下联系可分为以下联系可分为以下联系可分为以下3 3种类型:种类型:种类型:种类型:(1) (1) 一对一联系一对一联系一对一联系一对一联系(1(1 1)1)例如,一个部门有一个经理,而每个经理只在一个部门任职,则部例如,一个部门有一个经理,而每个经理只在一个部门任职,则部例如,一个部门有一个经理,而每个经理只在一个部门任职,则部例如,一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。门与经理的联系是一对一的。门与经理的联系是一对一的。门与经理的联系是一对一的。(2) (2) 一对多联系一对多联系一对多联系一对多联系(1(1

53、N)N)例如,某校教师与课程之间存在一对多的联系例如,某校教师与课程之间存在一对多的联系例如,某校教师与课程之间存在一对多的联系例如,某校教师与课程之间存在一对多的联系“ “教教教教” ”,即每位教师,即每位教师,即每位教师,即每位教师可以教多门课程,但是每门课程只能由一位教师来教可以教多门课程,但是每门课程只能由一位教师来教可以教多门课程,但是每门课程只能由一位教师来教可以教多门课程,但是每门课程只能由一位教师来教( (见图见图见图见图3.2)3.2)。(3) (3) 多对多联系多对多联系多对多联系多对多联系(M(M N)N)例如,图例如,图例如,图例如,图3.23.2表示学生与课程间的联系

54、表示学生与课程间的联系表示学生与课程间的联系表示学生与课程间的联系(“(“学学学学” ”) )是多对多的,即一个学是多对多的,即一个学是多对多的,即一个学是多对多的,即一个学生可以学多门课程,而每门课程可以有多个学生来学。生可以学多门课程,而每门课程可以有多个学生来学。生可以学多门课程,而每门课程可以有多个学生来学。生可以学多门课程,而每门课程可以有多个学生来学。联系也可能有属性。例如,学生联系也可能有属性。例如,学生联系也可能有属性。例如,学生联系也可能有属性。例如,学生“ “学学学学” ”某门课程所取得的成绩,既某门课程所取得的成绩,既某门课程所取得的成绩,既某门课程所取得的成绩,既不是学

55、生的属性也不是课程的属性。由于不是学生的属性也不是课程的属性。由于不是学生的属性也不是课程的属性。由于不是学生的属性也不是课程的属性。由于“ “成绩成绩成绩成绩” ”既依赖于某名特既依赖于某名特既依赖于某名特既依赖于某名特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系系系系“ “学学学学” ”的属性的属性的属性的属性( (见图见图见图见图3.2)3.2)。3.4.4 实体实体-联系图的符号联系图的符号 通常,

56、使用实体通常,使用实体通常,使用实体通常,使用实体- -联系图联系图联系图联系图(entity-relationship diagram)(entity-relationship diagram)来来来来建立数据模型。可以把实体建立数据模型。可以把实体建立数据模型。可以把实体建立数据模型。可以把实体- -联系图简称为联系图简称为联系图简称为联系图简称为ERER图,相应地可图,相应地可图,相应地可图,相应地可把用把用把用把用ERER图描绘的数据模型称为图描绘的数据模型称为图描绘的数据模型称为图描绘的数据模型称为ERER模型。模型。模型。模型。ERER图中包含了实体图中包含了实体图中包含了实体图中

57、包含了实体( (即数据对象即数据对象即数据对象即数据对象) )、关系和属性等、关系和属性等、关系和属性等、关系和属性等3 3种基种基种基种基本成分,通常用矩形框代表实体,用连接相关实体的菱形框本成分,通常用矩形框代表实体,用连接相关实体的菱形框本成分,通常用矩形框代表实体,用连接相关实体的菱形框本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体表示关系,用椭圆形或圆角矩形表示实体表示关系,用椭圆形或圆角矩形表示实体表示关系,用椭圆形或圆角矩形表示实体( (或关系或关系或关系或关系) )的属性,的属性,的属性,的属性,并用直线把实体并用直线把实体并用直线把实

58、体并用直线把实体( (或关系或关系或关系或关系) )与其属性连接起来。例如,图与其属性连接起来。例如,图与其属性连接起来。例如,图与其属性连接起来。例如,图3.23.2是是是是某学校教学管理的某学校教学管理的某学校教学管理的某学校教学管理的ERER图。图。图。图。图图3.2 某校教学管理某校教学管理ER图图3.5 数据规范化数据规范化 为减少数据冗余,避免出现插入异常或删除异常,简为减少数据冗余,避免出现插入异常或删除异常,简为减少数据冗余,避免出现插入异常或删除异常,简为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。化修改数据的过程,通常需要把数据结

59、构规范化。化修改数据的过程,通常需要把数据结构规范化。化修改数据的过程,通常需要把数据结构规范化。(1) (1) 第一范式每个属性值都必须是原子值,即仅仅是一个简第一范式每个属性值都必须是原子值,即仅仅是一个简第一范式每个属性值都必须是原子值,即仅仅是一个简第一范式每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。单值而不含内部结构。单值而不含内部结构。单值而不含内部结构。(2) (2) 第二范式满足第一范式条件,而且每个非关键字属性都第二范式满足第一范式条件,而且每个非关键字属性都第二范式满足第一范式条件,而且每个非关键字属性都第二范式满足第一范式条件,而且每个非关键字属性都由整个

60、关键字决定由整个关键字决定由整个关键字决定由整个关键字决定( (而不是由关键字的一部分来决定而不是由关键字的一部分来决定而不是由关键字的一部分来决定而不是由关键字的一部分来决定) )。(3) (3) 第三范式符合第二范式的条件,每个非关键字属性都仅第三范式符合第二范式的条件,每个非关键字属性都仅第三范式符合第二范式的条件,每个非关键字属性都仅第三范式符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一由关键字决定,而且一个非关键字属性不能仅仅是对另一由关键字决定,而且一个非关键字属性不能仅仅是对另一由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键

61、字属性的进一步描述个非关键字属性的进一步描述个非关键字属性的进一步描述个非关键字属性的进一步描述( (即一个非关键字属性值不依即一个非关键字属性值不依即一个非关键字属性值不依即一个非关键字属性值不依赖于另一个非关键字属性值赖于另一个非关键字属性值赖于另一个非关键字属性值赖于另一个非关键字属性值) )。通常用通常用通常用通常用“ “范式范式范式范式(normal forms)”(normal forms)”定义消除数据冗余的程度。定义消除数据冗余的程度。定义消除数据冗余的程度。定义消除数据冗余的程度。第一范式第一范式第一范式第一范式(1 NF)(1 NF)数据冗余程度最大,第五范式数据冗余程度最

62、大,第五范式数据冗余程度最大,第五范式数据冗余程度最大,第五范式(5 NF)(5 NF)数据冗数据冗数据冗数据冗余程度最小。但是,范式级别越高,存储同样数据就需要分余程度最小。但是,范式级别越高,存储同样数据就需要分余程度最小。但是,范式级别越高,存储同样数据就需要分余程度最小。但是,范式级别越高,存储同样数据就需要分解成更多张表,因此,解成更多张表,因此,解成更多张表,因此,解成更多张表,因此,“ “存储自身存储自身存储自身存储自身” ”的过程也就越复杂。第的过程也就越复杂。第的过程也就越复杂。第的过程也就越复杂。第二,随着范式级别的提高,数据的存储结构与基于问题域的二,随着范式级别的提高,

63、数据的存储结构与基于问题域的二,随着范式级别的提高,数据的存储结构与基于问题域的二,随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降,因此,在需求变化时数据的结构间的匹配程度也随之下降,因此,在需求变化时数据的结构间的匹配程度也随之下降,因此,在需求变化时数据的结构间的匹配程度也随之下降,因此,在需求变化时数据的稳定性较差。第三,范式级别提高则需要访问的表增多,因稳定性较差。第三,范式级别提高则需要访问的表增多,因稳定性较差。第三,范式级别提高则需要访问的表增多,因稳定性较差。第三,范式级别提高则需要访问的表增多,因此性能此性能此性能此性能( (速度速度速度速度) )

64、将下降。从实用角度看来,在大多数场合选用将下降。从实用角度看来,在大多数场合选用将下降。从实用角度看来,在大多数场合选用将下降。从实用角度看来,在大多数场合选用第三范式都比较恰当。第三范式都比较恰当。第三范式都比较恰当。第三范式都比较恰当。将将将将 E-R E-R 图转换为关系模型要解决两个问题图转换为关系模型要解决两个问题图转换为关系模型要解决两个问题图转换为关系模型要解决两个问题: 1. 1.如何将实体集和实体间的联系转换成关如何将实体集和实体间的联系转换成关如何将实体集和实体间的联系转换成关如何将实体集和实体间的联系转换成关 系模式系模式系模式系模式 2. 2.如何确定这些关系模式和键。

65、如何确定这些关系模式和键。如何确定这些关系模式和键。如何确定这些关系模式和键。 E-R E-R 图图图图则则则则是是是是由由由由实实实实体体体体集集集集、属属属属性性性性和和和和联联联联系系系系三三三三个个个个要要要要素素素素组组组组成成成成 , , 将将将将E-R E-R 图图图图转转转转换换换换为为为为关关关关系系系系模模模模型型型型实实实实际际际际上上上上就就就就是是是是要要要要将将将将实实实实体体体体集集集集、属性和联系转换为相应的关系模式。属性和联系转换为相应的关系模式。属性和联系转换为相应的关系模式。属性和联系转换为相应的关系模式。q将 E-R 图转换为关系模型将将将将 1:1 1

66、:1 1:1 1:1 联系转换为一个独立的关系联系转换为一个独立的关系联系转换为一个独立的关系联系转换为一个独立的关系 , , , , 则与该联系相连则与该联系相连则与该联系相连则与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性的各实体的键以及联系本身的属性均转换为关系的属性的各实体的键以及联系本身的属性均转换为关系的属性的各实体的键以及联系本身的属性均转换为关系的属性 , , , , 且每个实体的键均是该关系的候选键且每个实体的键均是该关系的候选键且每个实体的键均是该关系的候选键且每个实体的键均是该关系的候选键 ; ; ; ; 将将将将 1:1 1:1 1:1 1:1 联系与某一

67、联系与某一联系与某一联系与某一端实体集所端实体集所端实体集所端实体集所 对应的关系合并对应的关系合并对应的关系合并对应的关系合并 , , , , 则需要在合并关系中增加属则需要在合并关系中增加属则需要在合并关系中增加属则需要在合并关系中增加属性性性性 , , , , 其新增的属性为联系本身的属性与联系相其新增的属性为联系本身的属性与联系相其新增的属性为联系本身的属性与联系相其新增的属性为联系本身的属性与联系相 关的另一个关的另一个关的另一个关的另一个实体集的键实体集的键实体集的键实体集的键 。1:1 1:1 联系的转换规则联系的转换规则联系的转换规则联系的转换规则右图右图右图右图所示是一个含有

68、所示是一个含有所示是一个含有所示是一个含有 1:1 1:1 1:1 1:1 联系的联系的联系的联系的 E-R E-R E-R E-R 图。图。图。图。 转换的方案有如下三种转换的方案有如下三种转换的方案有如下三种转换的方案有如下三种 : :方案方案方案方案 1: 1: 联系形成的关系独立存在联系形成的关系独立存在联系形成的关系独立存在联系形成的关系独立存在 , , 转换后转换后转换后转换后的关系模型为的关系模型为的关系模型为的关系模型为 : :职工职工职工职工 ( ( 职工号、职工名、性别、工资职工号、职工名、性别、工资职工号、职工名、性别、工资职工号、职工名、性别、工资 ) )产品产品产品产

69、品 ( ( 产品号、产品名、价格、重量产品号、产品名、价格、重量产品号、产品名、价格、重量产品号、产品名、价格、重量 ) )负责负责负责负责 ( ( 职工号、产品号职工号、产品号职工号、产品号职工号、产品号 ) )方案方案方案方案 3: 3: 负责与产品关系合并负责与产品关系合并负责与产品关系合并负责与产品关系合并 , , 转换后的关系模型为转换后的关系模型为转换后的关系模型为转换后的关系模型为 : :职工职工职工职工 ( ( 职工号、职工名、性别、工资职工号、职工名、性别、工资职工号、职工名、性别、工资职工号、职工名、性别、工资 ) )产品产品产品产品 ( ( 产品号、产品名、价格、重量、职

70、工号产品号、产品名、价格、重量、职工号产品号、产品名、价格、重量、职工号产品号、产品名、价格、重量、职工号 ) )相比较而言相比较而言相比较而言相比较而言 , , 方案方案方案方案 3 3 比较合理。比较合理。比较合理。比较合理。方案方案方案方案 2: 2: 负责与职工量关系合并负责与职工量关系合并负责与职工量关系合并负责与职工量关系合并 , , 转换后的关系模型为转换后的关系模型为转换后的关系模型为转换后的关系模型为 : :职工职工职工职工 ( ( 职工号、职工名、性别、工资、产品号职工号、职工名、性别、工资、产品号职工号、职工名、性别、工资、产品号职工号、职工名、性别、工资、产品号 ) )

71、产品产品产品产品 ( ( 产品号、产品名、价格、重量产品号、产品名、价格、重量产品号、产品名、价格、重量产品号、产品名、价格、重量 ) )这种转换方法是将联系转换为一个独立的关系这种转换方法是将联系转换为一个独立的关系这种转换方法是将联系转换为一个独立的关系这种转换方法是将联系转换为一个独立的关系 , , 其关系的属其关系的属其关系的属其关系的属性由与该相连的各实体集的性由与该相连的各实体集的性由与该相连的各实体集的性由与该相连的各实体集的键以及联系本身的属性组成键以及联系本身的属性组成键以及联系本身的属性组成键以及联系本身的属性组成, , , ,而该关系而该关系而该关系而该关系的键为的键为的

72、键为的键为n n n n端实体集的键端实体集的键端实体集的键端实体集的键; ; ; ;另一种方法是在另一种方法是在另一种方法是在另一种方法是在 n n n n 端实体集端实体集端实体集端实体集中增加新属性中增加新属性中增加新属性中增加新属性 , , 新属性由联系对应的新属性由联系对应的新属性由联系对应的新属性由联系对应的 1 1 端实体集的键和联系自身的属性构成端实体集的键和联系自身的属性构成端实体集的键和联系自身的属性构成端实体集的键和联系自身的属性构成, ,新新新新增属性后原增属性后原增属性后原增属性后原 关系保持不变关系保持不变关系保持不变关系保持不变. .右右右右图为图为图为图为 1:

73、 1:n n 联系的联系的联系的联系的 E,R E,R 图图图图。可供选择的两种方案如下可供选择的两种方案如下可供选择的两种方案如下可供选择的两种方案如下 : :方案方案方案方案 1:1: 1:1:n n 联系形成的关系独立存在。联系形成的关系独立存在。联系形成的关系独立存在。联系形成的关系独立存在。仓库仓库仓库仓库 ( ( 仓库号、容量、地点仓库号、容量、地点仓库号、容量、地点仓库号、容量、地点 ) )存储存储存储存储 ( ( 仓库号、产品号、数量仓库号、产品号、数量仓库号、产品号、数量仓库号、产品号、数量 ) )产品产品产品产品 ( ( 产品号、产品名、价格、重量产品号、产品名、价格、重量

74、产品号、产品名、价格、重量产品号、产品名、价格、重量 ) )方案方案方案方案 2: 2: 联系形成的对象与联系形成的对象与联系形成的对象与联系形成的对象与 n n 端对象合并。端对象合并。端对象合并。端对象合并。仓库仓库仓库仓库 ( ( 仓库号、容量、地点仓库号、容量、地点仓库号、容量、地点仓库号、容量、地点 ) )产品产品产品产品 ( ( 产品号、产品名、价格、重量、仓库号、数量产品号、产品名、价格、重量、仓库号、数量产品号、产品名、价格、重量、仓库号、数量产品号、产品名、价格、重量、仓库号、数量 ) )q1:n 联系的转换方法向关系模型转换时向关系模型转换时向关系模型转换时向关系模型转换时

75、 , , 一个一个一个一个 m:n m:n 联系转换为一个关系的方联系转换为一个关系的方联系转换为一个关系的方联系转换为一个关系的方法为法为法为法为 : : 与该联系相连的各实体集的键以及联系本身的属性均与该联系相连的各实体集的键以及联系本身的属性均与该联系相连的各实体集的键以及联系本身的属性均与该联系相连的各实体集的键以及联系本身的属性均转换为关系的属性转换为关系的属性转换为关系的属性转换为关系的属性 , , 新关系的键为两个相连实体键的组合。新关系的键为两个相连实体键的组合。新关系的键为两个相连实体键的组合。新关系的键为两个相连实体键的组合。右下右下右下右下图图图图 为含有为含有为含有为含

76、有 m:n m:n 联系的联系的联系的联系的 E-R E-R 图。图。图。图。转换的关系模型为转换的关系模型为转换的关系模型为转换的关系模型为 : :学生学生学生学生 ( ( 学号、姓名、性别、专业学号、姓名、性别、专业学号、姓名、性别、专业学号、姓名、性别、专业 ) )选修选修选修选修 ( ( 学号、课程号、成绩学号、课程号、成绩学号、课程号、成绩学号、课程号、成绩 ) )课程课程课程课程 ( ( 课程号、课程名、教师、学时课程号、课程名、教师、学时课程号、课程名、教师、学时课程号、课程名、教师、学时 ) )qm:n 联系的转换方法转换后的关系如下转换后的关系如下转换后的关系如下转换后的关系

77、如下 : :学生学生学生学生 ( ( 学号、姓名、性别、年龄、专业学号、姓名、性别、年龄、专业学号、姓名、性别、年龄、专业学号、姓名、性别、年龄、专业 ) )必修课程必修课程必修课程必修课程 ( ( 必课程号、课程名、学时必课程号、课程名、学时必课程号、课程名、学时必课程号、课程名、学时 ) ) 任选课程任选课程任选课程任选课程 ( ( 任课程号、课程名、学时任课程号、课程名、学时任课程号、课程名、学时任课程号、课程名、学时 ) )选修选修选修选修( (学号、必课程号、任课程号、成绩学号、必课程号、任课程号、成绩学号、必课程号、任课程号、成绩学号、必课程号、任课程号、成绩) )q三个或三个以上

78、实体集间的多元联系的转换方法三个或三个以上实体集间的多元联系的转换方法根据情况不同可分为两种情况根据情况不同可分为两种情况 : (1) 对于一对多的多元联系对于一对多的多元联系 , 转换为关系模型的方法是修改转换为关系模型的方法是修改 1 端实体集对端实体集对应的关系应的关系 , 即将与联系相关的其他实体集的键和联系自身的属性作为新属即将与联系相关的其他实体集的键和联系自身的属性作为新属性加人到性加人到 1 端实体集中。端实体集中。 (2) 对于多对多的多元联系对于多对多的多元联系 , 转换为关系模型的方法是建立一个独立的新转换为关系模型的方法是建立一个独立的新关系关系 , 该关系的属性为多元

79、联系的各实体的键和联系本身的属性该关系的属性为多元联系的各实体的键和联系本身的属性 , 键为各键为各实体键的组合。实体键的组合。右下右下图给出一个含有多元实体集间的多对多联系的图给出一个含有多元实体集间的多对多联系的 E-R 图转换为关系模型图转换为关系模型的实例。的实例。3.6 状态转换图状态转换图根据本章开头讲的结构化分析的第根据本章开头讲的结构化分析的第根据本章开头讲的结构化分析的第根据本章开头讲的结构化分析的第3 3条准则,在条准则,在条准则,在条准则,在需求分析过程中应该建立起软件系统的行为模型。需求分析过程中应该建立起软件系统的行为模型。需求分析过程中应该建立起软件系统的行为模型。

80、需求分析过程中应该建立起软件系统的行为模型。状态转换图状态转换图状态转换图状态转换图( (简称为状态图简称为状态图简称为状态图简称为状态图) )通过描绘系统的状态及通过描绘系统的状态及通过描绘系统的状态及通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此引起系统状态转换的事件,来表示系统的行为。此引起系统状态转换的事件,来表示系统的行为。此引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做外,状态图还指明了作为特定事件的结果系统将做外,状态图还指明了作为特定事件的结果系统将做外,状态图还指明了作为特定事件的结果系统将做哪些动作哪些动作哪些动作

81、哪些动作( (例如,处理数据例如,处理数据例如,处理数据例如,处理数据) )。因此,状态图提供了。因此,状态图提供了。因此,状态图提供了。因此,状态图提供了行为建模机制,可以满足第行为建模机制,可以满足第行为建模机制,可以满足第行为建模机制,可以满足第3 3条分析准则的要求。条分析准则的要求。条分析准则的要求。条分析准则的要求。3.6.1 状态状态状态是任何可以被观察到的系统行为模式,一个状态代表状态是任何可以被观察到的系统行为模式,一个状态代表状态是任何可以被观察到的系统行为模式,一个状态代表状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式

82、。系系统的一种行为模式。状态规定了系统对事件的响应方式。系系统的一种行为模式。状态规定了系统对事件的响应方式。系系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个统对事件的响应,既可以是做一个统对事件的响应,既可以是做一个统对事件的响应,既可以是做一个( (或一系列或一系列或一系列或一系列) )动作,也可以是仅动作,也可以是仅动作,也可以是仅动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。仅改变系统本身的状态,还可以是既改变状态又做动作。仅改变系统本身的状态,还可以是既改变状态又做动作。仅改变系统本身的状态,还可以是既改变状态又做动作。在状态

83、图中定义的状态主要有:初态在状态图中定义的状态主要有:初态在状态图中定义的状态主要有:初态在状态图中定义的状态主要有:初态( (即初始状态即初始状态即初始状态即初始状态) )、终态、终态、终态、终态( (即最终状态即最终状态即最终状态即最终状态) )和中间状态。在一张状态图中只能有一个初态,而和中间状态。在一张状态图中只能有一个初态,而和中间状态。在一张状态图中只能有一个初态,而和中间状态。在一张状态图中只能有一个初态,而终态则可以有终态则可以有终态则可以有终态则可以有0 0至多个。至多个。至多个。至多个。状态图既可以表示系统循环运行过程,也可以表示系统单状态图既可以表示系统循环运行过程,也可

84、以表示系统单状态图既可以表示系统循环运行过程,也可以表示系统单状态图既可以表示系统循环运行过程,也可以表示系统单程生命期。当描绘循环运行过程时,通常并不关心循环是怎样程生命期。当描绘循环运行过程时,通常并不关心循环是怎样程生命期。当描绘循环运行过程时,通常并不关心循环是怎样程生命期。当描绘循环运行过程时,通常并不关心循环是怎样启动的。当描绘单程生命期时,需要标明初始状态启动的。当描绘单程生命期时,需要标明初始状态启动的。当描绘单程生命期时,需要标明初始状态启动的。当描绘单程生命期时,需要标明初始状态( (系统启动时系统启动时系统启动时系统启动时进入初始状态进入初始状态进入初始状态进入初始状态)

85、 )和最终状态和最终状态和最终状态和最终状态( (系统运行结束时到达最终状态系统运行结束时到达最终状态系统运行结束时到达最终状态系统运行结束时到达最终状态) )。3.6.2 事件事件事件是在某个特定时刻发生的事情,它是事件是在某个特定时刻发生的事情,它是事件是在某个特定时刻发生的事情,它是事件是在某个特定时刻发生的事情,它是对引起系统做动作或对引起系统做动作或对引起系统做动作或对引起系统做动作或( (和和和和) )从一个状态转换到另一从一个状态转换到另一从一个状态转换到另一从一个状态转换到另一个状态的外界事件的抽象。个状态的外界事件的抽象。个状态的外界事件的抽象。个状态的外界事件的抽象。例如,

86、内部时钟表明某个规定的时间段已经过例如,内部时钟表明某个规定的时间段已经过例如,内部时钟表明某个规定的时间段已经过例如,内部时钟表明某个规定的时间段已经过去,用户移动或点击鼠标等都是事件。简而言去,用户移动或点击鼠标等都是事件。简而言去,用户移动或点击鼠标等都是事件。简而言去,用户移动或点击鼠标等都是事件。简而言之,事件就是引起系统做动作或之,事件就是引起系统做动作或之,事件就是引起系统做动作或之,事件就是引起系统做动作或( (和和和和) )转换状态的转换状态的转换状态的转换状态的控制信息。控制信息。控制信息。控制信息。3.6.3 符号符号在状态图中,初态用实心圆表示,终态用一对在状态图中,初

87、态用实心圆表示,终态用一对在状态图中,初态用实心圆表示,终态用一对在状态图中,初态用实心圆表示,终态用一对同心圆同心圆同心圆同心圆( (内圆为实心圆内圆为实心圆内圆为实心圆内圆为实心圆) )表示。表示。表示。表示。中间状态用圆角矩形表示,可以用两条水平横中间状态用圆角矩形表示,可以用两条水平横中间状态用圆角矩形表示,可以用两条水平横中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下线把它分成上、中、下线把它分成上、中、下线把它分成上、中、下3 3个部分。个部分。个部分。个部分。上面部分为状态的上面部分为状态的上面部分为状态的上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的

88、名称,这部分是必须有的;中间部分为状态变量的名称,这部分是必须有的;中间部分为状态变量的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,名字和值,这部分是可选的;下面部分是活动表,名字和值,这部分是可选的;下面部分是活动表,名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。这部分也是可选的。这部分也是可选的。这部分也是可选的。活动表的语法格式如下:活动表的语法格式如下:活动表的语法格式如下:活动表的语法格式如下:事件名事件名事件名事件名( (参数表参数表参数表参数表)/ )/动作表达式动作表达式动作表达式动作表达式其中,其中,其中,其中,“

89、“事件名事件名事件名事件名” ”可以是任何事件的名称。在活动表中经常使可以是任何事件的名称。在活动表中经常使可以是任何事件的名称。在活动表中经常使可以是任何事件的名称。在活动表中经常使用下述用下述用下述用下述3 3种标准事件:种标准事件:种标准事件:种标准事件:entryentry,exitexit和和和和dodo。entryentry事件指定进入该事件指定进入该事件指定进入该事件指定进入该状态的动作,状态的动作,状态的动作,状态的动作,exitexit事件指定退出该状态的动作,而事件指定退出该状态的动作,而事件指定退出该状态的动作,而事件指定退出该状态的动作,而dodo事件则指事件则指事件则

90、指事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表定在该状态下的动作。需要时可以为事件指定参数表。活动表定在该状态下的动作。需要时可以为事件指定参数表。活动表定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。中的动作表达式描述应做的具体动作。中的动作表达式描述应做的具体动作。中的动作表达式描述应做的具体动作。 状态图中两个状态之间带箭头的连线称为状态转换,箭头状态图中两个状态之间带箭头的连线称为状态转换,箭头状态图中两个状态之间带箭头的连线称为状态转换,箭头状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。状态变迁通常是由事件

91、触发的,在这种情况指明了转换方向。状态变迁通常是由事件触发的,在这种情况指明了转换方向。状态变迁通常是由事件触发的,在这种情况指明了转换方向。状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式;下应在表示状态转换的箭头线上标出触发转换的事件表达式;下应在表示状态转换的箭头线上标出触发转换的事件表达式;下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行如果在箭头线上未标明事件,则表示在源状态的内部活动执行如果在箭头线上未标明事件,则表示在源状态的内部活动执行如果在箭头线上未标明事件,则表示在源状态的

92、内部活动执行完之后自动触发转换。完之后自动触发转换。完之后自动触发转换。完之后自动触发转换。事件表达式的语法如下:事件表达式的语法如下:事件表达式的语法如下:事件表达式的语法如下:事件说明守卫条件动作表达式事件说明守卫条件动作表达式事件说明守卫条件动作表达式事件说明守卫条件动作表达式其中,事件说明的语法为:事件名其中,事件说明的语法为:事件名其中,事件说明的语法为:事件名其中,事件说明的语法为:事件名( (参数表参数表参数表参数表) )。守卫条件是一个布尔表达式。如果同时使用事件说明和守守卫条件是一个布尔表达式。如果同时使用事件说明和守守卫条件是一个布尔表达式。如果同时使用事件说明和守守卫条件

93、是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为才发生。如果只有守卫条件没有事件说明,则只要守卫条件为才发生。如果只有守卫条件没有事件说明,则只要守卫条件为才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。真状态转换就发生。真状态转换就发生。真状态转换就发生。动作表达式是一个过程表达式动作表达式是一个过程表达式动

94、作表达式是一个过程表达式动作表达式是一个过程表达式, ,当状态转换开始时执行该表当状态转换开始时执行该表当状态转换开始时执行该表当状态转换开始时执行该表达式。达式。达式。达式。图图图图3.33.3给出了状态图中使用的主要符号。给出了状态图中使用的主要符号。给出了状态图中使用的主要符号。给出了状态图中使用的主要符号。图图3.3 状态图中使用的主要符号状态图中使用的主要符号3.6.4 例子例子为了具体说明怎样用状态图建立系统的行为模为了具体说明怎样用状态图建立系统的行为模为了具体说明怎样用状态图建立系统的行为模为了具体说明怎样用状态图建立系统的行为模型,下面举一个例子。图型,下面举一个例子。图型,

95、下面举一个例子。图型,下面举一个例子。图3.43.4(见书(见书(见书(见书5757页)是人们非页)是人们非页)是人们非页)是人们非常熟悉的电话系统的状态图。常熟悉的电话系统的状态图。常熟悉的电话系统的状态图。常熟悉的电话系统的状态图。图中表明,没有人打电话时电话处于闲置状态;图中表明,没有人打电话时电话处于闲置状态;图中表明,没有人打电话时电话处于闲置状态;图中表明,没有人打电话时电话处于闲置状态;有人拿起听筒则进入拨号音状态,到达这个状态后,有人拿起听筒则进入拨号音状态,到达这个状态后,有人拿起听筒则进入拨号音状态,到达这个状态后,有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是

96、响起拨号音并计时;这时如果拿起听电话的行为是响起拨号音并计时;这时如果拿起听电话的行为是响起拨号音并计时;这时如果拿起听电话的行为是响起拨号音并计时;这时如果拿起听筒的人改变主意不想打了,他把听筒放下筒的人改变主意不想打了,他把听筒放下筒的人改变主意不想打了,他把听筒放下筒的人改变主意不想打了,他把听筒放下( (挂断挂断挂断挂断) ),电,电,电,电话重又回到闲置状态;如果拿起听筒很长时间不拨话重又回到闲置状态;如果拿起听筒很长时间不拨话重又回到闲置状态;如果拿起听筒很长时间不拨话重又回到闲置状态;如果拿起听筒很长时间不拨号号号号( (超时超时超时超时) ),则进入超时状态;,则进入超时状态;

97、,则进入超时状态;,则进入超时状态;。图3.4电话系统的状态图3.7 其他图形工具其他图形工具层次方框图用树形结构的一系列多层次的矩形层次方框图用树形结构的一系列多层次的矩形层次方框图用树形结构的一系列多层次的矩形层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单框描绘数据的层次结构。树形结构的顶层是一个单框描绘数据的层次结构。树形结构的顶层是一个单框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层独的矩形框,它代表完整的数据结构,下面的各层独的矩形框,它代表完整的数据结构,下面的各层独的矩形框,它代表完整的数据结构,下面

98、的各层矩形框代表这个矩形框代表这个矩形框代表这个矩形框代表这个数据的子集数据的子集数据的子集数据的子集,最底层的各个框代表,最底层的各个框代表,最底层的各个框代表,最底层的各个框代表组成这个数据的组成这个数据的组成这个数据的组成这个数据的实际数据元素实际数据元素实际数据元素实际数据元素( (不能再分割的元素不能再分割的元素不能再分割的元素不能再分割的元素) )。例如,描绘一家计算机公司全部产品的数据结构可例如,描绘一家计算机公司全部产品的数据结构可例如,描绘一家计算机公司全部产品的数据结构可例如,描绘一家计算机公司全部产品的数据结构可以用图以用图以用图以用图3.53.5中的层次方框图表示。中的

99、层次方框图表示。中的层次方框图表示。中的层次方框图表示。3.7.1 层次方框图层次方框图图图图图3.5 3.5 层次方框图的一个例子层次方框图的一个例子层次方框图的一个例子层次方框图的一个例子随着结构的精细随着结构的精细随着结构的精细随着结构的精细化化化化, ,层次方框图对层次方框图对层次方框图对层次方框图对数据结构也描绘数据结构也描绘数据结构也描绘数据结构也描绘得越来越详细,得越来越详细,得越来越详细,得越来越详细,这种模式非常适这种模式非常适这种模式非常适这种模式非常适合于需求分析阶合于需求分析阶合于需求分析阶合于需求分析阶段的需要。段的需要。段的需要。段的需要。系统系统系统系统分析员从对

100、顶层分析员从对顶层分析员从对顶层分析员从对顶层信息的分类开始,信息的分类开始,信息的分类开始,信息的分类开始,沿图中每条路径沿图中每条路径沿图中每条路径沿图中每条路径反复细化反复细化反复细化反复细化, ,直到确直到确直到确直到确定了数据结构的定了数据结构的定了数据结构的定了数据结构的全部细节时为止全部细节时为止全部细节时为止全部细节时为止。3.7.2 Warnier图图 法国计算机科学家法国计算机科学家法国计算机科学家法国计算机科学家WarnierWarnier提出了表示信息层次结构的提出了表示信息层次结构的提出了表示信息层次结构的提出了表示信息层次结构的另外一种图形工具。和层次方框图类似,另

101、外一种图形工具。和层次方框图类似,另外一种图形工具。和层次方框图类似,另外一种图形工具。和层次方框图类似,WarnierWarnier图也用树图也用树图也用树图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了形结构描绘信息,但是这种图形工具比层次方框图提供了形结构描绘信息,但是这种图形工具比层次方框图提供了形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。更丰富的描绘手段。更丰富的描绘手段。更丰富的描绘手段。 用用用用WarnierWarnier图可以表明信息的逻辑组织,也就是说,它图可以表明信息的逻辑组织,也就是说,它图可以表明信息的逻辑组织,也就是说,它图可以表明

102、信息的逻辑组织,也就是说,它可以指出一类信息或一个信息元素是重复出现的,也可以可以指出一类信息或一个信息元素是重复出现的,也可以可以指出一类信息或一个信息元素是重复出现的,也可以可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。因为重表示特定信息在某一类信息中是有条件地出现的。因为重表示特定信息在某一类信息中是有条件地出现的。因为重表示特定信息在某一类信息中是有条件地出现的。因为重复和条件约束是说明软件处理过程的基础,所以很容易把复和条件约束是说明软件处理过程的基础,所以很容易把复和条件约束是说明软件处理过程的基础,所以很容易把复和条件约束是说明软件

103、处理过程的基础,所以很容易把WarnierWarnier图转变成软件设计的工具。图转变成软件设计的工具。图转变成软件设计的工具。图转变成软件设计的工具。图图图图3.6 3.6 WarnierWarnier图的一个例子图的一个例子图的一个例子图的一个例子图图图图3.63.6是用是用是用是用WarnierWarnier图描绘一类软件产品的例子,它说明了这种图形工图描绘一类软件产品的例子,它说明了这种图形工图描绘一类软件产品的例子,它说明了这种图形工图描绘一类软件产品的例子,它说明了这种图形工具的用法。具的用法。具的用法。具的用法。图图图图3.63.6中的中的中的中的WarnierWarnier图表

104、示一种软件产品要么是系统软件要么是应用软图表示一种软件产品要么是系统软件要么是应用软图表示一种软件产品要么是系统软件要么是应用软图表示一种软件产品要么是系统软件要么是应用软件。系统软件中有件。系统软件中有件。系统软件中有件。系统软件中有P1P1种操作系统,种操作系统,种操作系统,种操作系统,P2P2种编译程序,此外还有软件工具。种编译程序,此外还有软件工具。种编译程序,此外还有软件工具。种编译程序,此外还有软件工具。软件工具是系统软件的一种,它又可以进一步细分为编辑程序、测试软件工具是系统软件的一种,它又可以进一步细分为编辑程序、测试软件工具是系统软件的一种,它又可以进一步细分为编辑程序、测试

105、软件工具是系统软件的一种,它又可以进一步细分为编辑程序、测试驱动程序和设计辅助工具,图中标出了每种软件工具的数量。驱动程序和设计辅助工具,图中标出了每种软件工具的数量。驱动程序和设计辅助工具,图中标出了每种软件工具的数量。驱动程序和设计辅助工具,图中标出了每种软件工具的数量。3.7.3 IPO图图 IPO IPO图是输入、处理、输出图的简称,它是美国图是输入、处理、输出图的简称,它是美国图是输入、处理、输出图的简称,它是美国图是输入、处理、输出图的简称,它是美国IBMIBM公公公公司发展完善起来的一种图形工具,能够方便地描绘输入数司发展完善起来的一种图形工具,能够方便地描绘输入数司发展完善起来

106、的一种图形工具,能够方便地描绘输入数司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。据、对数据的处理和输出数据之间的关系。据、对数据的处理和输出数据之间的关系。据、对数据的处理和输出数据之间的关系。 IPO IPO图使用的基本符号既少又简单,因此很容易学会使图使用的基本符号既少又简单,因此很容易学会使图使用的基本符号既少又简单,因此很容易学会使图使用的基本符号既少又简单,因此很容易学会使用这种图形工具。它的基本形式是在左边的框中列出有关用这种图形工具。它的基本形式是在左边的框中列出有关用这种图形工具。它的基本形式是在左边的框中列出有关用这种图形工具。它的

107、基本形式是在左边的框中列出有关的输入数据,在中间的框内列出主要的处理,在右边的框的输入数据,在中间的框内列出主要的处理,在右边的框的输入数据,在中间的框内列出主要的处理,在右边的框的输入数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数据。处理框中列出处理的次序暗示了内列出产生的输出数据。处理框中列出处理的次序暗示了内列出产生的输出数据。处理框中列出处理的次序暗示了内列出产生的输出数据。处理框中列出处理的次序暗示了执行的顺序,但是用这些基本符号还不足以精确描述执行执行的顺序,但是用这些基本符号还不足以精确描述执行执行的顺序,但是用这些基本符号还不足以精确描述执行执行的顺序,但是用这

108、些基本符号还不足以精确描述执行处理的详细情况。在处理的详细情况。在处理的详细情况。在处理的详细情况。在IPOIPO图中还用类似向量符号的粗大箭头图中还用类似向量符号的粗大箭头图中还用类似向量符号的粗大箭头图中还用类似向量符号的粗大箭头清楚地指出数据通信的情况。图清楚地指出数据通信的情况。图清楚地指出数据通信的情况。图清楚地指出数据通信的情况。图3.73.7是一个主文件更新的例是一个主文件更新的例是一个主文件更新的例是一个主文件更新的例子,通过这个例子不难了解子,通过这个例子不难了解子,通过这个例子不难了解子,通过这个例子不难了解IPOIPO图的用法。图的用法。图的用法。图的用法。图图3.7 I

109、PO图的一个例子图图的一个例子图本书建议使用一种改进的本书建议使用一种改进的本书建议使用一种改进的本书建议使用一种改进的IPOIPO图图图图( (也称为也称为也称为也称为IPOIPO表表表表) ),这种图中包含某些附加的信息,在软件设计过程,这种图中包含某些附加的信息,在软件设计过程,这种图中包含某些附加的信息,在软件设计过程,这种图中包含某些附加的信息,在软件设计过程中将比原始的中将比原始的中将比原始的中将比原始的IPOIPO图更有用。如图图更有用。如图图更有用。如图图更有用。如图3.83.8所示。在需求所示。在需求所示。在需求所示。在需求分析阶段可以使用分析阶段可以使用分析阶段可以使用分析

110、阶段可以使用IPOIPO图简略地描述系统的主要算图简略地描述系统的主要算图简略地描述系统的主要算图简略地描述系统的主要算法法法法( (即数据流图中各个处理的基本算法即数据流图中各个处理的基本算法即数据流图中各个处理的基本算法即数据流图中各个处理的基本算法) )。当然,在。当然,在。当然,在。当然,在需求分析阶段,需求分析阶段,需求分析阶段,需求分析阶段,IPOIPO图中的许多附加信息暂时还不图中的许多附加信息暂时还不图中的许多附加信息暂时还不图中的许多附加信息暂时还不具备,但是在软件设计阶段可以进一步补充修正这具备,但是在软件设计阶段可以进一步补充修正这具备,但是在软件设计阶段可以进一步补充修

111、正这具备,但是在软件设计阶段可以进一步补充修正这些图,作为设计阶段的文档。这正是在需求分析阶些图,作为设计阶段的文档。这正是在需求分析阶些图,作为设计阶段的文档。这正是在需求分析阶些图,作为设计阶段的文档。这正是在需求分析阶段用段用段用段用IPOIPO图作为描述算法的工具的重要优点。图作为描述算法的工具的重要优点。图作为描述算法的工具的重要优点。图作为描述算法的工具的重要优点。图图3.8 改进的改进的IPO图的形式图的形式3.8 验证软件需求验证软件需求需求分析阶段的工作结果是开发软件系统的需求分析阶段的工作结果是开发软件系统的需求分析阶段的工作结果是开发软件系统的需求分析阶段的工作结果是开发

112、软件系统的重要基础,大量统计数字表明,软件系统中重要基础,大量统计数字表明,软件系统中重要基础,大量统计数字表明,软件系统中重要基础,大量统计数字表明,软件系统中15%15%的错误起源于错误的需求。为了提高软的错误起源于错误的需求。为了提高软的错误起源于错误的需求。为了提高软的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发件质量,确保软件开发成功,降低软件开发件质量,确保软件开发成功,降低软件开发件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,成本,一旦对目标系统提出一组要求之后,成本,一旦对目标系统提出一组要求之后,成本,一旦对目标系统提出

113、一组要求之后,必须严格验证这些需求的正确性。一般说来,必须严格验证这些需求的正确性。一般说来,必须严格验证这些需求的正确性。一般说来,必须严格验证这些需求的正确性。一般说来,应该从下述应该从下述应该从下述应该从下述4 4个方面进行验证:个方面进行验证:个方面进行验证:个方面进行验证:3.8.1 从哪些方面验证软件需求的正确性从哪些方面验证软件需求的正确性(1) (1) 一致性:一致性:一致性:一致性:所有需求必须是一致的,任何一条需求不所有需求必须是一致的,任何一条需求不所有需求必须是一致的,任何一条需求不所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。能和其他需求互相矛盾。能和其他

114、需求互相矛盾。能和其他需求互相矛盾。(2) (2) 完整性:完整性:完整性:完整性:需求必须是完整的,规格说明书应该包括需求必须是完整的,规格说明书应该包括需求必须是完整的,规格说明书应该包括需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。用户需要的每一个功能或性能。用户需要的每一个功能或性能。用户需要的每一个功能或性能。(3) (3) 现实性:现实性:现实性:现实性:指定的需求应该是用现有的硬件技术和软指定的需求应该是用现有的硬件技术和软指定的需求应该是用现有的硬件技术和软指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做件技术基本上可以实现的

115、。对硬件技术的进步可以做件技术基本上可以实现的。对硬件技术的进步可以做件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从些预测,对软件技术的进步则很难做出预测,只能从些预测,对软件技术的进步则很难做出预测,只能从些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。现有技术水平出发判断需求的现实性。现有技术水平出发判断需求的现实性。现有技术水平出发判断需求的现实性。(4) (4) 有效性:有效性:有效性:有效性:必须证明需求是正确有效的,确实能解决必须证明需求是正确有效的,确实能解决必须证明需求是正确有效的,确实能解决必须证明

116、需求是正确有效的,确实能解决用户面对的问题。用户面对的问题。用户面对的问题。用户面对的问题。3.8.2 验证软件需求的方法验证软件需求的方法1. 1. 验证需求的一致性验证需求的一致性验证需求的一致性验证需求的一致性当需求分析的结果是用自然语言书写的时候,除了靠人当需求分析的结果是用自然语言书写的时候,除了靠人当需求分析的结果是用自然语言书写的时候,除了靠人当需求分析的结果是用自然语言书写的时候,除了靠人工技术审查验证软件系统规格说明书的正确性之外,目前还工技术审查验证软件系统规格说明书的正确性之外,目前还工技术审查验证软件系统规格说明书的正确性之外,目前还工技术审查验证软件系统规格说明书的正

117、确性之外,目前还没有其他更好的没有其他更好的没有其他更好的没有其他更好的“ “测试测试测试测试” ”方法。但是,这种非形式化的规格方法。但是,这种非形式化的规格方法。但是,这种非形式化的规格方法。但是,这种非形式化的规格说明书是难于验证的,特别在目标系统规模庞大、规格说明说明书是难于验证的,特别在目标系统规模庞大、规格说明说明书是难于验证的,特别在目标系统规模庞大、规格说明说明书是难于验证的,特别在目标系统规模庞大、规格说明书篇幅很长的时候,人工审查的效果是没有保证的,冗余、书篇幅很长的时候,人工审查的效果是没有保证的,冗余、书篇幅很长的时候,人工审查的效果是没有保证的,冗余、书篇幅很长的时候

118、,人工审查的效果是没有保证的,冗余、遗漏和不一致等问题可能没被发现而继续保留下来,以致软遗漏和不一致等问题可能没被发现而继续保留下来,以致软遗漏和不一致等问题可能没被发现而继续保留下来,以致软遗漏和不一致等问题可能没被发现而继续保留下来,以致软件开发工作不能在正确的基础上顺利进行。件开发工作不能在正确的基础上顺利进行。件开发工作不能在正确的基础上顺利进行。件开发工作不能在正确的基础上顺利进行。为了克服上述困难,人们提出了形式化的描述软件需求的为了克服上述困难,人们提出了形式化的描述软件需求的为了克服上述困难,人们提出了形式化的描述软件需求的为了克服上述困难,人们提出了形式化的描述软件需求的方法

119、。当软件需求规格说明书是用形式化的需求陈述语言书方法。当软件需求规格说明书是用形式化的需求陈述语言书方法。当软件需求规格说明书是用形式化的需求陈述语言书方法。当软件需求规格说明书是用形式化的需求陈述语言书写的时候,可以用软件工具验证需求的一致性写的时候,可以用软件工具验证需求的一致性写的时候,可以用软件工具验证需求的一致性写的时候,可以用软件工具验证需求的一致性( (见见见见3.8.33.8.3节节节节) ),从而能有效地保证软件需求的一致性。从而能有效地保证软件需求的一致性。从而能有效地保证软件需求的一致性。从而能有效地保证软件需求的一致性。为了验证需求的现实性,分析员应该参照为了验证需求的

120、现实性,分析员应该参照为了验证需求的现实性,分析员应该参照为了验证需求的现实性,分析员应该参照以往开发类似系统的经验,分析用现有的软、以往开发类似系统的经验,分析用现有的软、以往开发类似系统的经验,分析用现有的软、以往开发类似系统的经验,分析用现有的软、硬件技术实现目标系统的可能性。必要的时候硬件技术实现目标系统的可能性。必要的时候硬件技术实现目标系统的可能性。必要的时候硬件技术实现目标系统的可能性。必要的时候应该采用仿真或性能模拟技术,辅助分析软件应该采用仿真或性能模拟技术,辅助分析软件应该采用仿真或性能模拟技术,辅助分析软件应该采用仿真或性能模拟技术,辅助分析软件需求规格说明书的现实性。需

121、求规格说明书的现实性。需求规格说明书的现实性。需求规格说明书的现实性。2. 2. 验证需求的现实性验证需求的现实性验证需求的现实性验证需求的现实性只有目标系统的用户才真正知道软件需求规格说明书是只有目标系统的用户才真正知道软件需求规格说明书是只有目标系统的用户才真正知道软件需求规格说明书是只有目标系统的用户才真正知道软件需求规格说明书是否完整、准确地描述了他们的需求。因此,检验需求的完整否完整、准确地描述了他们的需求。因此,检验需求的完整否完整、准确地描述了他们的需求。因此,检验需求的完整否完整、准确地描述了他们的需求。因此,检验需求的完整性,特别是证明系统确实满足用户的实际需要性,特别是证明

122、系统确实满足用户的实际需要性,特别是证明系统确实满足用户的实际需要性,特别是证明系统确实满足用户的实际需要( (即,需求的有即,需求的有即,需求的有即,需求的有效性效性效性效性) ),只有在用户的密切合作下才能完成。然而许多用户并,只有在用户的密切合作下才能完成。然而许多用户并,只有在用户的密切合作下才能完成。然而许多用户并,只有在用户的密切合作下才能完成。然而许多用户并不能清楚地认识到他们的需要不能清楚地认识到他们的需要不能清楚地认识到他们的需要不能清楚地认识到他们的需要( (特别在要开发的系统是全新的,特别在要开发的系统是全新的,特别在要开发的系统是全新的,特别在要开发的系统是全新的,以前

123、没有使用类似系统的经验时,情况更是如此以前没有使用类似系统的经验时,情况更是如此以前没有使用类似系统的经验时,情况更是如此以前没有使用类似系统的经验时,情况更是如此) ),不能有效,不能有效,不能有效,不能有效地比较陈述需求的语句和实际需要的功能。只有当他们有某地比较陈述需求的语句和实际需要的功能。只有当他们有某地比较陈述需求的语句和实际需要的功能。只有当他们有某地比较陈述需求的语句和实际需要的功能。只有当他们有某种工作着的软件系统可以实际使用和评价时,才能完整确切种工作着的软件系统可以实际使用和评价时,才能完整确切种工作着的软件系统可以实际使用和评价时,才能完整确切种工作着的软件系统可以实际

124、使用和评价时,才能完整确切地提出他们的需要。地提出他们的需要。地提出他们的需要。地提出他们的需要。3. 3. 验证需求的完整性和有效性验证需求的完整性和有效性验证需求的完整性和有效性验证需求的完整性和有效性理想的做法是先根据需求分析的结果开发出一个软件系统,理想的做法是先根据需求分析的结果开发出一个软件系统,理想的做法是先根据需求分析的结果开发出一个软件系统,理想的做法是先根据需求分析的结果开发出一个软件系统,请用户试用一段时间以便能认识到他们的实际需要是什么,在请用户试用一段时间以便能认识到他们的实际需要是什么,在请用户试用一段时间以便能认识到他们的实际需要是什么,在请用户试用一段时间以便能

125、认识到他们的实际需要是什么,在此基础上再写出正式的此基础上再写出正式的此基础上再写出正式的此基础上再写出正式的“ “正确的正确的正确的正确的” ”规格说明书。但是,这种做规格说明书。但是,这种做规格说明书。但是,这种做规格说明书。但是,这种做法将使软件成本增加一倍,因此实际上几乎不可能采用这种方法将使软件成本增加一倍,因此实际上几乎不可能采用这种方法将使软件成本增加一倍,因此实际上几乎不可能采用这种方法将使软件成本增加一倍,因此实际上几乎不可能采用这种方法。使用原型系统是一个比较现实的替代方法,开发原型系统法。使用原型系统是一个比较现实的替代方法,开发原型系统法。使用原型系统是一个比较现实的替

126、代方法,开发原型系统法。使用原型系统是一个比较现实的替代方法,开发原型系统所需要的成本和时间可以大大少于开发实际系统所需要的。用所需要的成本和时间可以大大少于开发实际系统所需要的。用所需要的成本和时间可以大大少于开发实际系统所需要的。用所需要的成本和时间可以大大少于开发实际系统所需要的。用户通过试用原型系统,也能获得许多宝贵的经验,从而可以提户通过试用原型系统,也能获得许多宝贵的经验,从而可以提户通过试用原型系统,也能获得许多宝贵的经验,从而可以提户通过试用原型系统,也能获得许多宝贵的经验,从而可以提出更符合实际的要求。出更符合实际的要求。出更符合实际的要求。出更符合实际的要求。使用原型系统的

127、目的,通常是显示目标系统的主要功能而使用原型系统的目的,通常是显示目标系统的主要功能而使用原型系统的目的,通常是显示目标系统的主要功能而使用原型系统的目的,通常是显示目标系统的主要功能而不是性能。为了达到这个目的可以使用本章不是性能。为了达到这个目的可以使用本章不是性能。为了达到这个目的可以使用本章不是性能。为了达到这个目的可以使用本章3.2.43.2.4小节介绍的方小节介绍的方小节介绍的方小节介绍的方法快速建立原型系统,并且可以适当降低对接口、可靠性和程法快速建立原型系统,并且可以适当降低对接口、可靠性和程法快速建立原型系统,并且可以适当降低对接口、可靠性和程法快速建立原型系统,并且可以适当

128、降低对接口、可靠性和程序质量的要求,此外还可以省掉许多文档资料方面的工作,从序质量的要求,此外还可以省掉许多文档资料方面的工作,从序质量的要求,此外还可以省掉许多文档资料方面的工作,从序质量的要求,此外还可以省掉许多文档资料方面的工作,从而可以大大降低原型系统的开发成本。而可以大大降低原型系统的开发成本。而可以大大降低原型系统的开发成本。而可以大大降低原型系统的开发成本。3.8.3 用于需求分析的软件工具用于需求分析的软件工具 为了更有效地保证软件需求的正确性,特别是为了保证为了更有效地保证软件需求的正确性,特别是为了保证为了更有效地保证软件需求的正确性,特别是为了保证为了更有效地保证软件需求

129、的正确性,特别是为了保证需求的一致性,需要有适当的软件工具支持需求分析工作。需求的一致性,需要有适当的软件工具支持需求分析工作。需求的一致性,需要有适当的软件工具支持需求分析工作。需求的一致性,需要有适当的软件工具支持需求分析工作。这类软件工具应该满足下列要求:这类软件工具应该满足下列要求:这类软件工具应该满足下列要求:这类软件工具应该满足下列要求:(1) (1) 必须有形式化的语法必须有形式化的语法必须有形式化的语法必须有形式化的语法( (或表或表或表或表) ),因此可以用计算机自动处理,因此可以用计算机自动处理,因此可以用计算机自动处理,因此可以用计算机自动处理使用这种语法说明的内容;使用

130、这种语法说明的内容;使用这种语法说明的内容;使用这种语法说明的内容;(2) (2) 使用这个软件工具能够导出详细的文档;使用这个软件工具能够导出详细的文档;使用这个软件工具能够导出详细的文档;使用这个软件工具能够导出详细的文档;(3) (3) 必须提供分析必须提供分析必须提供分析必须提供分析( (测试测试测试测试) )规格说明书的不一致性和冗余性的手规格说明书的不一致性和冗余性的手规格说明书的不一致性和冗余性的手规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;段,并且应该能够产生一组报告指明对完整性分析的结果;段,并且应该能够产生一组报告指明对完整性分析的结

131、果;段,并且应该能够产生一组报告指明对完整性分析的结果;(4) (4) 使用这个软件工具之后,应该能够改进通信状况。使用这个软件工具之后,应该能够改进通信状况。使用这个软件工具之后,应该能够改进通信状况。使用这个软件工具之后,应该能够改进通信状况。19771977年美国密执安大学开发了年美国密执安大学开发了年美国密执安大学开发了年美国密执安大学开发了PSL/PSA(PSL/PSA(问题陈述语言问题陈述语言问题陈述语言问题陈述语言/ /问问问问题陈述分析程序题陈述分析程序题陈述分析程序题陈述分析程序) )系统。这个系统是系统。这个系统是系统。这个系统是系统。这个系统是CADSATCADSAT(计

132、算机辅助设(计算机辅助设(计算机辅助设(计算机辅助设计和规格说明分析工具)的一部分,它的基本结构类似于计和规格说明分析工具)的一部分,它的基本结构类似于计和规格说明分析工具)的一部分,它的基本结构类似于计和规格说明分析工具)的一部分,它的基本结构类似于RSLRSL。其中其中其中其中PSLPSL是用来描述系统的形式语言,是用来描述系统的形式语言,是用来描述系统的形式语言,是用来描述系统的形式语言,PSAPSA是处理是处理是处理是处理PSLPSL描述的描述的描述的描述的分析程序。用分析程序。用分析程序。用分析程序。用PSLPSL描述的系统属性放在一个数据库中。一旦建描述的系统属性放在一个数据库中。

133、一旦建描述的系统属性放在一个数据库中。一旦建描述的系统属性放在一个数据库中。一旦建立起数据库之后即可增加信息、删除信息或修改信息,并且保立起数据库之后即可增加信息、删除信息或修改信息,并且保立起数据库之后即可增加信息、删除信息或修改信息,并且保立起数据库之后即可增加信息、删除信息或修改信息,并且保持信息的一致性。持信息的一致性。持信息的一致性。持信息的一致性。PSAPSA对数据库进行处理以产生各种报告,测对数据库进行处理以产生各种报告,测对数据库进行处理以产生各种报告,测对数据库进行处理以产生各种报告,测试不一致性或遗漏,并且生成文档资料。试不一致性或遗漏,并且生成文档资料。试不一致性或遗漏,

134、并且生成文档资料。试不一致性或遗漏,并且生成文档资料。PSL/PSAPSL/PSA系统的功能主要有下述系统的功能主要有下述系统的功能主要有下述系统的功能主要有下述4 4种:种:种:种:(1) (1) 描述任何应用领域的信息系统;描述任何应用领域的信息系统;描述任何应用领域的信息系统;描述任何应用领域的信息系统;(2) (2) 创建一个数据库保存对该信息系统的描述符;创建一个数据库保存对该信息系统的描述符;创建一个数据库保存对该信息系统的描述符;创建一个数据库保存对该信息系统的描述符;(3) (3) 对描述符施加增加、删除和更改等操作;对描述符施加增加、删除和更改等操作;对描述符施加增加、删除和

135、更改等操作;对描述符施加增加、删除和更改等操作;(4) (4) 产生格式化的文档和关于规格说明书的各种分析产生格式化的文档和关于规格说明书的各种分析产生格式化的文档和关于规格说明书的各种分析产生格式化的文档和关于规格说明书的各种分析报告。报告。报告。报告。PSL/PSAPSL/PSA系统用描述符从系统信息流、系统结构、系统用描述符从系统信息流、系统结构、系统用描述符从系统信息流、系统结构、系统用描述符从系统信息流、系统结构、数据结构、数据导出、系统规模、系统动态、系统数据结构、数据导出、系统规模、系统动态、系统数据结构、数据导出、系统规模、系统动态、系统数据结构、数据导出、系统规模、系统动态、

136、系统性质和项目管理等性质和项目管理等性质和项目管理等性质和项目管理等8 8个方面描述信息系统。个方面描述信息系统。个方面描述信息系统。个方面描述信息系统。 一旦用一旦用一旦用一旦用PSLPSL对系统做了完整描述,就可以调用对系统做了完整描述,就可以调用对系统做了完整描述,就可以调用对系统做了完整描述,就可以调用PSAPSA产生产生产生产生一组分析报告,其中包括所有修改规格说明数据库的记录,一组分析报告,其中包括所有修改规格说明数据库的记录,一组分析报告,其中包括所有修改规格说明数据库的记录,一组分析报告,其中包括所有修改规格说明数据库的记录,用各种形式描述数据库信息的参照报告用各种形式描述数据

137、库信息的参照报告用各种形式描述数据库信息的参照报告用各种形式描述数据库信息的参照报告( (包括图形形式的描述包括图形形式的描述包括图形形式的描述包括图形形式的描述) ),关于项目管理信息的总结报告,以及评价数据库特性的分,关于项目管理信息的总结报告,以及评价数据库特性的分,关于项目管理信息的总结报告,以及评价数据库特性的分,关于项目管理信息的总结报告,以及评价数据库特性的分析报告。析报告。析报告。析报告。 借助借助借助借助PSL/PSAPSL/PSA系统可以边对目标系统进行自顶向下的逐系统可以边对目标系统进行自顶向下的逐系统可以边对目标系统进行自顶向下的逐系统可以边对目标系统进行自顶向下的逐层

138、分解,边将需求分析过程中遇到的数据流、文件、处理等层分解,边将需求分析过程中遇到的数据流、文件、处理等层分解,边将需求分析过程中遇到的数据流、文件、处理等层分解,边将需求分析过程中遇到的数据流、文件、处理等对象用对象用对象用对象用PSLPSL描述出来并输入到描述出来并输入到描述出来并输入到描述出来并输入到PSL/PSAPSL/PSA系统中。系统中。系统中。系统中。PSAPSA将对输将对输将对输将对输入信息作一致性和完整性检查,并且保存这些描述信息。入信息作一致性和完整性检查,并且保存这些描述信息。入信息作一致性和完整性检查,并且保存这些描述信息。入信息作一致性和完整性检查,并且保存这些描述信息

139、。 PSL/PSA PSL/PSA系统的主要优点是它改进了文档质量,能保证系统的主要优点是它改进了文档质量,能保证系统的主要优点是它改进了文档质量,能保证系统的主要优点是它改进了文档质量,能保证文档具有完整性、一致性和无二义性,从而可以减少管理和文档具有完整性、一致性和无二义性,从而可以减少管理和文档具有完整性、一致性和无二义性,从而可以减少管理和文档具有完整性、一致性和无二义性,从而可以减少管理和维护的费用。数据存放在数据库中,便于增加、删除和更改,维护的费用。数据存放在数据库中,便于增加、删除和更改,维护的费用。数据存放在数据库中,便于增加、删除和更改,维护的费用。数据存放在数据库中,便于

140、增加、删除和更改,这也是它的一个优点。这也是它的一个优点。这也是它的一个优点。这也是它的一个优点。3.9 小结小结 传统软件工程方法学使用结构化分析技术,完成分析用传统软件工程方法学使用结构化分析技术,完成分析用传统软件工程方法学使用结构化分析技术,完成分析用传统软件工程方法学使用结构化分析技术,完成分析用户需求的工作。需求分析是发现、求精、建模、规格说明和户需求的工作。需求分析是发现、求精、建模、规格说明和户需求的工作。需求分析是发现、求精、建模、规格说明和户需求的工作。需求分析是发现、求精、建模、规格说明和复审的过程。需求分析的第一步是进一步了解用户当前所处复审的过程。需求分析的第一步是进

141、一步了解用户当前所处复审的过程。需求分析的第一步是进一步了解用户当前所处复审的过程。需求分析的第一步是进一步了解用户当前所处的情况,发现用户所面临的问题和对目标系统的基本需求;的情况,发现用户所面临的问题和对目标系统的基本需求;的情况,发现用户所面临的问题和对目标系统的基本需求;的情况,发现用户所面临的问题和对目标系统的基本需求;接下来应该与用户深入交流,对用户的基本需求反复细化逐接下来应该与用户深入交流,对用户的基本需求反复细化逐接下来应该与用户深入交流,对用户的基本需求反复细化逐接下来应该与用户深入交流,对用户的基本需求反复细化逐步求精,以得出对目标系统的完整、准确和具体的需求。具步求精,

142、以得出对目标系统的完整、准确和具体的需求。具步求精,以得出对目标系统的完整、准确和具体的需求。具步求精,以得出对目标系统的完整、准确和具体的需求。具体地说,应该确定系统必须具有的功能、性能、可靠性和可体地说,应该确定系统必须具有的功能、性能、可靠性和可体地说,应该确定系统必须具有的功能、性能、可靠性和可体地说,应该确定系统必须具有的功能、性能、可靠性和可用性,必须实现的出错处理需求、接口需求和逆向需求,必用性,必须实现的出错处理需求、接口需求和逆向需求,必用性,必须实现的出错处理需求、接口需求和逆向需求,必用性,必须实现的出错处理需求、接口需求和逆向需求,必须满足的约束条件,并且预测系统的发展

143、前景。须满足的约束条件,并且预测系统的发展前景。须满足的约束条件,并且预测系统的发展前景。须满足的约束条件,并且预测系统的发展前景。 为了详细地了解并正确地理解用户的需求,必须使用为了详细地了解并正确地理解用户的需求,必须使用为了详细地了解并正确地理解用户的需求,必须使用为了详细地了解并正确地理解用户的需求,必须使用适当方法与用户沟通。访谈是与用户通信的历史悠久的技适当方法与用户沟通。访谈是与用户通信的历史悠久的技适当方法与用户沟通。访谈是与用户通信的历史悠久的技适当方法与用户沟通。访谈是与用户通信的历史悠久的技术,至今仍被许多系统分析员采用。从可行性研究阶段得术,至今仍被许多系统分析员采用。

144、从可行性研究阶段得术,至今仍被许多系统分析员采用。从可行性研究阶段得术,至今仍被许多系统分析员采用。从可行性研究阶段得到的数据流图出发,在用户的协助下面向数据流自顶向下到的数据流图出发,在用户的协助下面向数据流自顶向下到的数据流图出发,在用户的协助下面向数据流自顶向下到的数据流图出发,在用户的协助下面向数据流自顶向下逐步求精,也是与用户沟通获取需求的一个有效的方法。逐步求精,也是与用户沟通获取需求的一个有效的方法。逐步求精,也是与用户沟通获取需求的一个有效的方法。逐步求精,也是与用户沟通获取需求的一个有效的方法。为了促使用户与分析员齐心协力共同分析需求,人们研究为了促使用户与分析员齐心协力共同

145、分析需求,人们研究为了促使用户与分析员齐心协力共同分析需求,人们研究为了促使用户与分析员齐心协力共同分析需求,人们研究出一种面向团队的需求收集法,称为简易的应用规格说明出一种面向团队的需求收集法,称为简易的应用规格说明出一种面向团队的需求收集法,称为简易的应用规格说明出一种面向团队的需求收集法,称为简易的应用规格说明技术,现在这种技术已经成为信息系统领域使用的主流技技术,现在这种技术已经成为信息系统领域使用的主流技技术,现在这种技术已经成为信息系统领域使用的主流技技术,现在这种技术已经成为信息系统领域使用的主流技术。实践表明,快速建立软件原型是最准确、最有效和最术。实践表明,快速建立软件原型是

146、最准确、最有效和最术。实践表明,快速建立软件原型是最准确、最有效和最术。实践表明,快速建立软件原型是最准确、最有效和最强大的需求分析技术。强大的需求分析技术。强大的需求分析技术。强大的需求分析技术。 快速原型应该具备的基本特性是快速原型应该具备的基本特性是快速原型应该具备的基本特性是快速原型应该具备的基本特性是“ “快速快速快速快速” ”和和和和“ “容易修容易修容易修容易修改改改改” ”,因此,必须用适当的软件工具支持快速原型技术。,因此,必须用适当的软件工具支持快速原型技术。,因此,必须用适当的软件工具支持快速原型技术。,因此,必须用适当的软件工具支持快速原型技术。通常使用第四代技术、可重

147、用的软件构件及形式化规格说通常使用第四代技术、可重用的软件构件及形式化规格说通常使用第四代技术、可重用的软件构件及形式化规格说通常使用第四代技术、可重用的软件构件及形式化规格说明与原型环境,快速地构建和修改原型。明与原型环境,快速地构建和修改原型。明与原型环境,快速地构建和修改原型。明与原型环境,快速地构建和修改原型。为了更好地理解问题,人们常常采用建立模型的方法,结构化为了更好地理解问题,人们常常采用建立模型的方法,结构化为了更好地理解问题,人们常常采用建立模型的方法,结构化为了更好地理解问题,人们常常采用建立模型的方法,结构化分析实质上就是一种建模活动,在需求分析阶段通常建立数据分析实质上

148、就是一种建模活动,在需求分析阶段通常建立数据分析实质上就是一种建模活动,在需求分析阶段通常建立数据分析实质上就是一种建模活动,在需求分析阶段通常建立数据模型、功能模型和行为模型。模型、功能模型和行为模型。模型、功能模型和行为模型。模型、功能模型和行为模型。除了创建分析模型之外,在需求分析阶段还应该写出软件需求除了创建分析模型之外,在需求分析阶段还应该写出软件需求除了创建分析模型之外,在需求分析阶段还应该写出软件需求除了创建分析模型之外,在需求分析阶段还应该写出软件需求规格说明书,经过严格评审并得到用户确认之后,作为这个阶规格说明书,经过严格评审并得到用户确认之后,作为这个阶规格说明书,经过严格

149、评审并得到用户确认之后,作为这个阶规格说明书,经过严格评审并得到用户确认之后,作为这个阶段的最终成果。通常主要从一致性、完整性、现实性和有效性段的最终成果。通常主要从一致性、完整性、现实性和有效性段的最终成果。通常主要从一致性、完整性、现实性和有效性段的最终成果。通常主要从一致性、完整性、现实性和有效性等等等等4 4个方面复审软件需求规格说明书。个方面复审软件需求规格说明书。个方面复审软件需求规格说明书。个方面复审软件需求规格说明书。多数人习惯于使用实体多数人习惯于使用实体多数人习惯于使用实体多数人习惯于使用实体- -联系图建立数据模型,使用数据流图联系图建立数据模型,使用数据流图联系图建立数

150、据模型,使用数据流图联系图建立数据模型,使用数据流图建立功能模型,使用状态图建立行为模型。读者应该掌握这些建立功能模型,使用状态图建立行为模型。读者应该掌握这些建立功能模型,使用状态图建立行为模型。读者应该掌握这些建立功能模型,使用状态图建立行为模型。读者应该掌握这些图形的基本符号,并能正确地使用这些符号建立软件系统的模图形的基本符号,并能正确地使用这些符号建立软件系统的模图形的基本符号,并能正确地使用这些符号建立软件系统的模图形的基本符号,并能正确地使用这些符号建立软件系统的模型。型。型。型。 数据字典描述在数据模型、功能模型和行为模型中出现的数据字典描述在数据模型、功能模型和行为模型中出现

151、的数据字典描述在数据模型、功能模型和行为模型中出现的数据字典描述在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义。因此,数数据对象及控制信息的特性,给出它们的准确定义。因此,数数据对象及控制信息的特性,给出它们的准确定义。因此,数数据对象及控制信息的特性,给出它们的准确定义。因此,数据字典成为把据字典成为把据字典成为把据字典成为把3 3种分析模型粘合在一起的种分析模型粘合在一起的种分析模型粘合在一起的种分析模型粘合在一起的“ “粘合剂粘合剂粘合剂粘合剂” ”,是分析,是分析,是分析,是分析模型的模型的模型的模型的“ “核心核心核心核心” ”。为了提高可理解性,

152、还可以用层次方框图或。为了提高可理解性,还可以用层次方框图或。为了提高可理解性,还可以用层次方框图或。为了提高可理解性,还可以用层次方框图或WarnierWarnier图等图形工具辅助描绘系统中的数据结构。为了减少图等图形工具辅助描绘系统中的数据结构。为了减少图等图形工具辅助描绘系统中的数据结构。为了减少图等图形工具辅助描绘系统中的数据结构。为了减少冗余、简化修改步骤,往往需要规范数据的存储结构。冗余、简化修改步骤,往往需要规范数据的存储结构。冗余、简化修改步骤,往往需要规范数据的存储结构。冗余、简化修改步骤,往往需要规范数据的存储结构。 算法也是重要的,分析的基本目的是确定系统必须做什么。算

153、法也是重要的,分析的基本目的是确定系统必须做什么。算法也是重要的,分析的基本目的是确定系统必须做什么。算法也是重要的,分析的基本目的是确定系统必须做什么。概括地说,任何一个计算机系统的基本功能都是把输入数据转概括地说,任何一个计算机系统的基本功能都是把输入数据转概括地说,任何一个计算机系统的基本功能都是把输入数据转概括地说,任何一个计算机系统的基本功能都是把输入数据转变成输出信息,算法定义了转变的规则。因此,没有对算法的变成输出信息,算法定义了转变的规则。因此,没有对算法的变成输出信息,算法定义了转变的规则。因此,没有对算法的变成输出信息,算法定义了转变的规则。因此,没有对算法的了解就不能确切

154、知道系统的功能。了解就不能确切知道系统的功能。了解就不能确切知道系统的功能。了解就不能确切知道系统的功能。IPOIPO图是描述算法的有效工图是描述算法的有效工图是描述算法的有效工图是描述算法的有效工具。具。具。具。习题习题3-1 3-1 为什么要进行需求分析为什么要进行需求分析为什么要进行需求分析为什么要进行需求分析? ?通常对软件系统有哪些需求通常对软件系统有哪些需求通常对软件系统有哪些需求通常对软件系统有哪些需求? ?3-2 3-2 怎样与用户有效地沟通以获取用户的真实需求怎样与用户有效地沟通以获取用户的真实需求怎样与用户有效地沟通以获取用户的真实需求怎样与用户有效地沟通以获取用户的真实需

155、求? ?3-3 3-3 银行计算机储蓄系统的工作过程大致如下:储户填写的存银行计算机储蓄系统的工作过程大致如下:储户填写的存银行计算机储蓄系统的工作过程大致如下:储户填写的存银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款单或取款单由业务员键入系统,如果是存款则系统记录存款单或取款单由业务员键入系统,如果是存款则系统记录存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址款人姓名、住址款人姓名、住址款人姓名、住址( (或电话号码或电话号码或电话号码或电话号码) )、身份证号码、存款类型、存、身份证号码、存款类型、存、身份证

156、号码、存款类型、存、身份证号码、存款类型、存款日期、到期日期、利率及密码款日期、到期日期、利率及密码款日期、到期日期、利率及密码款日期、到期日期、利率及密码( (可选可选可选可选) )等信息,并印出存单等信息,并印出存单等信息,并印出存单等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对给储户;如果是取款而且存款时留有密码,则系统首先核对给储户;如果是取款而且存款时留有密码,则系统首先核对给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息储户密码,若密码正确或存款时未留密码,则系统计算利息储户密码,若密码正确或存款时未留

157、密码,则系统计算利息储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。并印出利息清单给储户。并印出利息清单给储户。并印出利息清单给储户。请用数据流图描绘本系统的功能,并用实体请用数据流图描绘本系统的功能,并用实体请用数据流图描绘本系统的功能,并用实体请用数据流图描绘本系统的功能,并用实体- -联系图描绘系统联系图描绘系统联系图描绘系统联系图描绘系统中的数据对象。中的数据对象。中的数据对象。中的数据对象。3-4 3-4 分析习题分析习题分析习题分析习题2 2第第第第3 3题所述的机票预订系统。请用实体题所述的机票预订系统。请用实体题所述的机票预订系统。请用实体题所述的机票

158、预订系统。请用实体- -联系图描联系图描联系图描联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能。绘本系统中的数据对象并用数据流图描绘本系统的功能。绘本系统中的数据对象并用数据流图描绘本系统的功能。绘本系统中的数据对象并用数据流图描绘本系统的功能。3-5 3-5 分析习题分析习题分析习题分析习题2 2第第第第4 4题所述的患者监护系统。请用实体题所述的患者监护系统。请用实体题所述的患者监护系统。请用实体题所述的患者监护系统。请用实体- -联系图描联系图描联系图描联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能,画出绘本系统中的数据对象并用数据流图描绘本系统的功能,画出绘本系统中

159、的数据对象并用数据流图描绘本系统的功能,画出绘本系统中的数据对象并用数据流图描绘本系统的功能,画出本系统的顶层本系统的顶层本系统的顶层本系统的顶层IPOIPO图。图。图。图。3-6 3-6 复印机的工作过程大致如下:未接到复印命令时处于闲置状复印机的工作过程大致如下:未接到复印命令时处于闲置状复印机的工作过程大致如下:未接到复印命令时处于闲置状复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规态,一旦接到复印命令则进入复印状态,完成一个复印命令规态,一旦接到复印命令则进入复印状态,完成一个复印命令规态,一旦接到复印命令则进入复印状态,完成

160、一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行定的工作后又回到闲置状态,等待下一个复印命令;如果执行定的工作后又回到闲置状态,等待下一个复印命令;如果执行定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生装满纸后进入闲置状态,准备接收复印命令;如果复印时发生装满纸后进入闲置状态,准备接收复印命令

161、;如果复印时发生装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。障,故障排除后回到闲置状态。障,故障排除后回到闲置状态。障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。请用状态转换图描绘复印机的行为。请用状态转换图描绘复印机的行为。请用状态转换图描绘复印机的行为。3.3数据流图数据流图3.3数据流图数据流图(PowerDesigner)3.3ER图图3.6状态图状态图PowerDesignerPowerDesigner: :ObjectOrienteModeObjectOrienteMode-StatecharDiagramStatecharDiagram

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号