03-第三章-软件需求分析-软件工程教案-海南大学(共15章)cly.pptx
-
资源ID:87506182
资源大小:891.66KB
全文页数:179页
- 资源格式: PPTX
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
03-第三章-软件需求分析-软件工程教案-海南大学(共15章)cly.pptx
软件工程软件工程(第二版)(第二版)齐治昌、谭庆平、宁洪齐治昌、谭庆平、宁洪 编著编著 高等教育出版社高等教育出版社主讲:陈明锐主讲:陈明锐 教授教授省级精品课程省级精品课程第三章软件需求分析 在软件的整个生命周期中,首先是软件计划期,接在软件的整个生命周期中,首先是软件计划期,接着是软件开发期,软件需求分析是软件开发的第一个阶着是软件开发期,软件需求分析是软件开发的第一个阶段,也是关系到软件开发成功与否的关键一步。本章的段,也是关系到软件开发成功与否的关键一步。本章的学习是基于已完成软件计划的基础上进行的,软件计划学习是基于已完成软件计划的基础上进行的,软件计划安排到第十二章讲。安排到第十二章讲。3.1 需求分析的任务与步骤需求分析的任务与步骤 3.2 需求获取的常用方法需求获取的常用方法 3.3 分析建模分析建模 3.4 软件需求说明软件需求说明 3.5 结构化分析方法结构化分析方法 3.6 面向对象分析方法面向对象分析方法第三章软件需求分析 软件在需求分析和设计阶段占用软件在需求分析和设计阶段占用的工作量达到总工作量的的工作量达到总工作量的40405050,说明软件开发前期的活动多么重要。说明软件开发前期的活动多么重要。当然这也包括分阶段开发原型的开销。当然这也包括分阶段开发原型的开销。大家熟悉的编码工作只占全部工作量大家熟悉的编码工作只占全部工作量的的10102020,而软件测试和调试的,而软件测试和调试的工作量占到总工作量的工作量占到总工作量的30304040,甚至甚至50%50%。3.1 需求分析的任务与步骤需求分析的任务与步骤 3.1.1需求分析的任务需求分析的任务需求分析的任务就是准确地回答需求分析的任务就是准确地回答“系系统必须做什么统必须做什么?”这个问题,是通过系这个问题,是通过系统分析员与用户一起商定,清晰、准确、统分析员与用户一起商定,清晰、准确、具体地描述软件产品必须具有的功能、具体地描述软件产品必须具有的功能、性能、运行规格等要求。软件需求分析性能、运行规格等要求。软件需求分析阶段的目的是澄清用户的要求,并把双阶段的目的是澄清用户的要求,并把双方共同的理解明确地表达成一份书面文方共同的理解明确地表达成一份书面文档档软件需求规格说明书。软件需求规格说明书。3.1 需求分析的任务与步骤需求分析的任务与步骤 需求分析的任务就是借助于当前系统的需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型。逻辑模型导出目标系统的逻辑模型。主要有主要有两个任务两个任务:1、建立分析模型、建立分析模型数据、功能和行为模型数据、功能和行为模型2、编写需求说明书。、编写需求说明书。其实现模型如下图所示:其实现模型如下图所示:系统实现模型系统实现模型目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型逻辑模型逻辑模型物理模型物理模型模型化模型化抽象化抽象化实例化实例化具体化具体化理理解解需需求求表表达达需需求求导导出出做什么做什么怎怎么么做做1.分析建模导出目标系统逻辑模型的例子:导出目标系统逻辑模型的例子:找出当前系统的物理模型找出当前系统的物理模型学学生生张张秘书秘书王王会计会计李李出纳出纳赵赵保管保管学学生生学生购买教材的物理模型学生购买教材的物理模型购书购书申请申请购书购书证明证明购书发票购书发票领书单领书单书书导出目标系统逻辑模型的例子把当前系统的物理模型转换为逻辑模型把当前系统的物理模型转换为逻辑模型学学生生审查有审查有效性效性开开发票发票开开领书单领书单发书发书学学生生购书单购书单有效有效购书单购书单领书单领书单书书发票发票学生购买教材的逻辑模型学生购买教材的逻辑模型导出目标系统逻辑模型的例子把旧系统的逻辑模型转换为目标系统逻辑模型把旧系统的逻辑模型转换为目标系统逻辑模型学学生生审查并审查并开发票开发票开开领书单领书单发书发书学学生生购书单购书单发票发票领书单领书单书书计算机售书系统的逻辑模型计算机售书系统的逻辑模型导出目标系统逻辑模型的例子改进(优化)目改进(优化)目标系统逻辑模型标系统逻辑模型学学生生审查并审查并开发票开发票开开领书单领书单学学生生购书单购书单发票发票领书单领书单改进了的计算机售书系统模型改进了的计算机售书系统模型无效书单无效书单分析阶段中常用的模型(逻辑模型)分析阶段中常用的模型(逻辑模型)数据流图(数据流图(DFD)实体实体联系图(联系图(ERD)层次方框图、层次方框图、IPO图、图、Warnier图图类图、实例图、时序图类图、实例图、时序图状态图、协作图、状态图、协作图、活动图活动图事件列表事件列表数据流定义数据流定义数据元素定义数据元素定义 3.1 需求分析的任务与步骤需求分析的任务与步骤 2.编写软件需求规格说明:编写软件需求规格说明:主要包括描述主要包括描述目标系统概貌、功能要求、性能要求、运行目标系统概貌、功能要求、性能要求、运行要求和将来可能提出的要求。数据流图、用要求和将来可能提出的要求。数据流图、用IPO图或其他工具简要描述的系统主要算法图或其他工具简要描述的系统主要算法都是该份文挡的重要组成部分。此外,该份都是该份文挡的重要组成部分。此外,该份文档还应包括用户需求与系统功能之间的关文档还应包括用户需求与系统功能之间的关系、设计约束等等文字描述。系、设计约束等等文字描述。软件需求规格说明是需求分析阶段的最终软件需求规格说明是需求分析阶段的最终成果。成果。3.1 需求分析的任务与步骤需求分析的任务与步骤准确、完整和规范的软件需求是软件开发成功的关键!准确、完整和规范的软件需求是软件开发成功的关键!需求分析的任务需求分析的任务建立分析模型建立分析模型 描述软件需求的一组模型描述软件需求的一组模型精确记录用于对原始问题和目标系统的描述精确记录用于对原始问题和目标系统的描述帮助分析人员发现用户需求中的不一致性,排除帮助分析人员发现用户需求中的不一致性,排除不合理的部分,挖掘潜在的用户需求不合理的部分,挖掘潜在的用户需求编写需求说明应做到编写需求说明应做到准确性和一致性准确性和一致性清晰性和没有二义性清晰性和没有二义性直观、易读和易于修改直观、易读和易于修改案例分析一个具有n部电梯的电梯系统要安装在一座m层的大楼上。电梯和控制机构已造好。每个电梯的内部机构也已给定。问题涉及电梯在楼层间移动的逻辑:(1)每座电梯有一套按钮,每层一个。按钮按下时使钮灯变亮,并使电梯达到相应的楼层。当电梯到达相应的楼层时按钮灯熄灭。案例分析(2)除了底层和顶层外,每层都有两个按钮,)除了底层和顶层外,每层都有两个按钮,一个按钮请求电梯上升,另一个按钮请求电一个按钮请求电梯上升,另一个按钮请求电梯下降。这些按钮在按下时按钮灯亮。电梯梯下降。这些按钮在按下时按钮灯亮。电梯到达指定楼层后按钮灯熄灭,然后要么朝期到达指定楼层后按钮灯熄灭,然后要么朝期望的方向移动,要么请求等待。在后一种情望的方向移动,要么请求等待。在后一种情况下,如果一个楼层上的两个请求按钮都按况下,如果一个楼层上的两个请求按钮都按下,则只取消其中一个按钮。决定先服务哪下,则只取消其中一个按钮。决定先服务哪一层的算法应当使两个请求的等待时间最小。一层的算法应当使两个请求的等待时间最小。案例分析(3)当一个电梯没有服务请求时,应当停留在)当一个电梯没有服务请求时,应当停留在最终的目的地,关上电梯门,并等待后面的请最终的目的地,关上电梯门,并等待后面的请求。求。(4)楼层上所有电梯请求必须最终得到服务,)楼层上所有电梯请求必须最终得到服务,并且所以楼层具有相同的优先权。并且所以楼层具有相同的优先权。(5)电梯内所有楼层的请求必须最终得到服务,)电梯内所有楼层的请求必须最终得到服务,各层按电梯移动方向先后得到服务。各层按电梯移动方向先后得到服务。(6)每个电梯有一个紧急按钮。按下该按钮时,)每个电梯有一个紧急按钮。按下该按钮时,将使一个报警信号发送到现场管理人员,然后将使一个报警信号发送到现场管理人员,然后强制电梯强制电梯“停止服务停止服务”。每一个电梯有一个取。每一个电梯有一个取消其消其“停止服务停止服务”状态的机制。状态的机制。电梯电梯状态转换图举例状态转换图举例在一楼在一楼上升上升停滞停滞下降下降回到一楼回到一楼回一楼回一楼想要到想要到达楼层达楼层想要到想要到达楼层达楼层电梯行程电梯行程开始开始向上向上向上向上向下向下案例分析需求分析的步骤1.需求获取 目的:清楚地理解所要解决的问题;完整地获取用户需求2.需求提炼 任务:分析建模 3.需求描述 结果:软件需求说明书4.需求验证 改善需求说明的完整性,确保他可作为软件设计和系统验收的依据。3.2 需求获取的常用方法联合分析小组联合分析小组用户代表、领域专家和系统分析员用户代表、领域专家和系统分析员客户访谈客户访谈充分准备,寻找共同语言充分准备,寻找共同语言循循序渐进、逐步逼近循循序渐进、逐步逼近问题分析与确认问题分析与确认多个来回多个来回调研问卷调研问卷部分的名称、人员数量和结构部分的名称、人员数量和结构部分发展或变化简单介绍部分发展或变化简单介绍部分的主要任务部分的主要任务业务处理流程业务处理流程业务处理过程中涉及哪些专业领域的知识业务处理过程中涉及哪些专业领域的知识工作需要的审批流程是什么?工作需要的审批流程是什么?主要算法描述主要算法描述哪些业务需要实时处理?哪些业务需要实时处理?哪些业务需要交互操作?哪些业务需要交互操作?部门各岗位的职责部门各岗位的职责部门接受哪些部门或外界的信息?信息的内容和格部门接受哪些部门或外界的信息?信息的内容和格式是什么?式是什么?部门产生哪些信息?部门产生哪些信息?部门产生的信息送到哪些其他部门?格式要求是什么?部门产生的信息送到哪些其他部门?格式要求是什么?对信息的输入和输出方式有要求吗?输入输出设备对信息的输入和输出方式有要求吗?输入输出设备是什么?是什么?数据要求实时备份吗?备份的设备是什么?时间策略?数据要求实时备份吗?备份的设备是什么?时间策略?业务处理有高峰期吗?高峰时间是什么?时间策略?业务处理有高峰期吗?高峰时间是什么?时间策略?现有的哪些设备要继续使用?现有的哪些设备要继续使用?对产品的运行环境有要求吗?对产品的运行环境有要求吗?对界面风格和操作方式有要求吗?对界面风格和操作方式有要求吗?在系统运行过程中允许停机吗?在系统运行过程中允许停机吗?操作方式要根据操作环境和使用人员素质分类吗?操作方式要根据操作环境和使用人员素质分类吗?需要的操作权限有哪些?需要的操作权限有哪些?需要记录系统操作运行日志吗?需要记录系统操作运行日志吗?用户有能力进行系统维护吗?用户有能力进行系统维护吗?需要分布式处理吗?需要分布式处理吗?需要什么方式的用户操作培训。需要什么方式的用户操作培训。需要制作联机帮助吗?需要制作联机帮助吗?案例用户提出某种需求:水的质量信息必须立即能够显示出来。分析员更准确的描述:水的质量记录必须在接到请求信号的5秒内显示出来。需求获取的三大挑战问题空间的理解问题空间的理解人与人之间的通信人与人之间的通信需求的不断变化需求的不断变化某出版社系统调查表编编号号提出问题提出问题1您在哪个部门工作?您在哪个部门工作?2出版业务流程是什么?出版业务流程是什么?3您每日都处理那些文件、数据、报表?您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效工作中手工处理什么问题解决不了?影响效率的问题有哪些?率的问题有哪些?6您认为提高工作效率,节省工作时间,减轻您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?工作强度可采取哪些办法?某出版社系统调查表编编号号提出问题提出问题7您的部门需要成本核算和统计的内容有哪些?您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题出版社计算机管理信息系统需要解决什么问题?需求获取的内容需求获取的内容1.1.用户需求分类用户需求分类 (1)(1)功能性需求功能性需求:定义了系统做什么(描述系统必须支持定义了系统做什么(描述系统必须支持 的功能和过程)的功能和过程)(2)(2)非功能性需求(技术需求)非功能性需求(技术需求):定义了系统工作时的特性定义了系统工作时的特性 (描述操作环境和性能目标)(描述操作环境和性能目标)2.2.两类需求包括的内容两类需求包括的内容(1)(1)(1)(1)功能功能功能功能(2)(2)(2)(2)性能性能性能性能(3)(3)(3)(3)环境环境环境环境(4)(4)(4)(4)界面界面界面界面(5)(5)(5)(5)用户或人的因素用户或人的因素用户或人的因素用户或人的因素(6)(6)(6)(6)文档文档文档文档 (7)(7)(7)(7)数据数据数据数据(8)(8)(8)(8)资源资源资源资源(9)(9)(9)(9)安全保密安全保密安全保密安全保密(10)(10)(10)(10)软件成本消耗与开发进度软件成本消耗与开发进度软件成本消耗与开发进度软件成本消耗与开发进度(11)(11)(11)(11)质量保证质量保证质量保证质量保证(1)(1)功能需求功能需求 系统做什么?系统做什么?系统何时做什么?系统何时做什么?系统何时及如何修改或系统何时及如何修改或升级?升级?(2)(2)性能需求性能需求软件开发的技术性指标软件开发的技术性指标例如:例如:存储容量限制存储容量限制 执行速度、相应时间执行速度、相应时间 吞吐量吞吐量(3)(3)环境需求环境需求硬件设备:硬件设备:机型、外设、接口、机型、外设、接口、地点、分布、温度、地点、分布、温度、湿度、磁场干扰等湿度、磁场干扰等软件:软件:操作系统操作系统 网络网络 数据库数据库(4)(4)界面需求界面需求 有来自其它系统的输入吗?有来自其它系统的输入吗?到自其它系统的输出吗?到自其它系统的输出吗?对数据格式有规定吗?对数据格式有规定吗?对数据存储介质有规定吗?对数据存储介质有规定吗?(5)(5)用户或人的因素用户或人的因素 用户类型?用户类型?各种用户熟练程度?各种用户熟练程度?需受何种训练?需受何种训练?用户理解、使用系统的难度?用户理解、使用系统的难度?用户错误操作系统的可能性?用户错误操作系统的可能性?(6)(6)文档需求文档需求 需哪些文档?需哪些文档?文档针对哪些读者文档针对哪些读者?(7)(7)数据需求数据需求 输入、输出数据的格式?输入、输出数据的格式?接收、发送数据的频率?接收、发送数据的频率?数据的准确性和精度?数据的准确性和精度?数据流量?数据流量?数据需保持的时间?数据需保持的时间?(8)(8)资源需求资源需求 软件运行时所需的数据、软件。软件运行时所需的数据、软件。内存空间等资源。内存空间等资源。软件开发、维护所需的人力、软件开发、维护所需的人力、支撑软件、开发设备等。支撑软件、开发设备等。(9)(9)安全保密要求安全保密要求 需对访问系统或系统信息加以控需对访问系统或系统信息加以控 制吗?制吗?如何隔离用户之间的数据?如何隔离用户之间的数据?用户程序如何与其它程序和操作用户程序如何与其它程序和操作 系统隔离?系统隔离?系统备份要求?系统备份要求?(10)(10)软件成本消耗与开发进度需求软件成本消耗与开发进度需求开发有规定的时间表吗?开发有规定的时间表吗?软硬件投资有无限制软硬件投资有无限制?(11)(11)质量保证质量保证 系统的可靠性要求?系统的可靠性要求?系统必须监测和隔离错误吗?系统必须监测和隔离错误吗?规定系统平均出错时间?规定系统平均出错时间?出错后,重启系统允许的时间?出错后,重启系统允许的时间?系统变化如何反映到设计中?系统变化如何反映到设计中?维护是否包括对系统的改进?维护是否包括对系统的改进?系统的可移植性?系统的可移植性?3.3 分析建模分析建模所谓所谓模型模型,就是为了理解事物而对事,就是为了理解事物而对事物做出的一种抽象,是对事物的一种物做出的一种抽象,是对事物的一种无歧义的书面描述。简单地说,无歧义的书面描述。简单地说,模型模型就是某一事物的抽象表示方式就是某一事物的抽象表示方式。经过软件的需求分析建立起来的模经过软件的需求分析建立起来的模型可以称之为型可以称之为分析模型分析模型或者或者需求模型需求模型。3.3 分析建模分析建模需求分析模型:需求分析模型:数据字典数据字典数据模型数据模型功能模型功能模型行为模型行为模型功能模型功能模型功能模型可以用数据流图功能模型可以用数据流图(DFD)描述,所以又描述,所以又称为称为数据流模型数据流模型。下面是数据流图的基本形式:下面是数据流图的基本形式:3变换变换4变换变换1变换变换2变换变换外部外部实体实体外部外部实体实体外部外部实体实体外部外部实体实体数据文件数据文件输入数据输入数据中间数据中间数据输出数据输出数据学学生生1审查审查开发票开发票2开领书开领书单单学学生生购书单购书单发票发票领书单领书单计算机售书系统的数据流图计算机售书系统的数据流图无效书单无效书单各班学生用书表各班学生用书表教材存量表教材存量表数据模型数据模型 包含有3种相关的信息:(1)数据对象 数据对象是几乎所有必须被软件理解的复合信复合信息息的表示。它只封装数据,不包含作用于对象的操作。(2)属性 属性定义了数据对象的性质。(3)关系 数据对象彼此之间是有关联的,也称为关系。数据模型数据模型 数据模型常常用数据模型常常用“实体实体-关系图关系图(ERD)”来描述。来描述。ERD包含包含3种基本元素,即实体、属性种基本元素,即实体、属性和关系。和关系。通常,用通常,用矩形矩形表示即表示即数据对象数据对象,用,用圆圆角矩形或椭圆形角矩形或椭圆形表示实体的表示实体的属性属性,用,用菱菱形形连接相关实体表示连接相关实体表示关系关系。下图是一个简化的教学管理下图是一个简化的教学管理ERD:性别性别职称职称姓名姓名教工号教工号姓名姓名性别性别系系学号学号年级年级课程号课程号 课程名课程名学时学时学分学分课程课程教师教师学生学生教教学学行为模型行为模型行为模型常用行为模型常用状态转换图状态转换图(简称状态图简称状态图)来描述,)来描述,它又称为它又称为状态机模型状态机模型。状态图中的基本元素有状态图中的基本元素有事件事件、状态状态和和行为行为等。等。系统的状态机模型系统的状态机模型可以理解为在任一个时刻,可以理解为在任一个时刻,系统处于有限可能的状态中的一个状态,当某一系统处于有限可能的状态中的一个状态,当某一个激励(条件)到达时,它激发系统从一个状态个激励(条件)到达时,它激发系统从一个状态转换到另一个新状态。转换到另一个新状态。下面是电话系统的状态图:下面是电话系统的状态图:闲置闲置拨号音拨号音do:响拨号音响拨号音超时超时do:响蜂鸣音响蜂鸣音存储的信息存储的信息do:播放信息播放信息接通中接通中do:试接通试接通振铃振铃do:振铃振铃拨号拨号通话通话断线断线忙音忙音do:响忙音响忙音挂断电话挂断电话挂断电话挂断电话拿起话筒拿起话筒超时超时无效号码无效号码有效号码有效号码超时超时数字数字数字数字占线占线已接通已接通受话人回话受话人回话受话人挂断电话受话人挂断电话信信息息播播完完数据字典数据字典数据字典数据字典(Data Dictionary)用于描述软件系统用于描述软件系统中使用或者产生的每一个数据元素,是系统中使用或者产生的每一个数据元素,是系统数据信息定义的集合。数据信息定义的集合。数据字典的数据字典的作用作用,就是对软件中的每个数据,就是对软件中的每个数据规定一个定义条目,以规定一个定义条目,以保持数据在系统中的保持数据在系统中的一致性一致性。软件中的数据,可分为三种情况:软件中的数据,可分为三种情况:只含一个数据的只含一个数据的数据项数据项(或数据元素或数据元素);由多个相关数据项组成的由多个相关数据项组成的数据流数据流;数据文件或数据库数据文件或数据库。数据流数据流“发票发票”的字典条目的字典条目数据流名:发票数据流名:发票别别 名:购书发票名:购书发票组组 成:成:学号姓名书号单价数量学号姓名书号单价数量总价书费合计总价书费合计备备 注:注:数据字典的例子数据字典的例子3.3 分析建模分析建模下面介绍两种需求模型:结构化分析模型和下面介绍两种需求模型:结构化分析模型和面向对象分析模型面向对象分析模型分析模型描述工具分析模型描述工具DFDDFD、DDDD和和PSPEC PSPEC CFDCFD、CSPECCSPEC和和STD STD E-RE-R图图 用例图用例图对象对象-关系图:类、对象、构建等图关系图:类、对象、构建等图对象对象-行为图行为图 :状态、时序、协作、活动等图状态、时序、协作、活动等图结构化分析模型数据对数据对 加工加工象说明象说明 说明说明 控制说明控制说明E-R图图 DFD图图STD图图DD数据模型数据模型功能模型功能模型行为模型行为模型面向对象分析模型属性、操作、协作者属性、操作、协作者类对象类对象 对象对象-关关模型模型 系模型系模型对象对象-行为模型行为模型使用使用实例实例功能模型功能模型行为模型行为模型数据模型数据模型(静态)(静态)(静态)(静态)(动态)(动态)分析模型描述工具分析模型描述工具结构化分析工具结构化分析工具DFD、DD和和PSPEC(加工说明)(加工说明)基本基本组成组成 CFD、CSPEC(控制说明)和(控制说明)和STD 扩扩展展E-R图图 扩展(复杂数据结构可以使用)扩展(复杂数据结构可以使用)面向对象分析工具面向对象分析工具用例图,类对象图用例图,类对象图对象对象-关系图关系图对象对象-行为图行为图1.数据流图(数据流图(DFD)飞机票预订系统数据流图1.数据流图(数据流图(DFD)数据流图数据流图他以图形的方式反映系统的他以图形的方式反映系统的数据流程数据流程由四种基本元素组成,代表符号和名称:由四种基本元素组成,代表符号和名称:加工名加工名编号编号加工名加工名编号编号文件名文件名文件名文件名数据流数据流 加工、加工、处理或变换处理或变换数据文件或数据库数据文件或数据库数据原点数据原点或终点或终点文件名文件名实实体体名名顾客顾客出版社出版社验证验证订单订单汇总汇总订单订单订单出版社订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确订单一批订单出版社档案文件出版社档案文件订货存根文件订货存根文件DFD图的例子图的例子1.数据流图(数据流图(DFD)描述系统逻辑模型信息在系统中的流动和处理用途交流信息的工具结构化分析和设计的工具 一家工厂的采购部每天需要一张订货报一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货要再次订货的零件。对于每个需要再次订货的零件应该列出下述数据:零件编号,零件的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通次要供应者。零件入库或出库称为事务,通过放在仓库中的过放在仓库中的CRTCRT终端把事务报告结订货系终端把事务报告结订货系统。当某种零件的库存数量少于库存量临界统。当某种零件的库存数量少于库存量临界值时就应该再次订货。值时就应该再次订货。案例由文字描述画出数据流图由文字描述画出数据流图由文字描述画出数据流图由文字描述画出数据流图采购员订货订货系统系统事务订货报表订货系统数据流程图仓库仓库保管员保管员由系统调查画出数据流图由系统调查画出数据流图会计处理原始数据账簿、报表账簿、报表会计信息系统数据流程图领书单 进书通知 购书单 缺书单 DFD练习售书系统学生教材购销系统书 库保 管员领书单进书通知 进书通知 购书单缺书单 DFD练习练习售售书系统书系统1销售2采购书库保管员学生F1教材存量表 F2缺书登记表 2.数据字典(数据字典(DD)定义:定义:数据词典数据词典是描述数据信息的是描述数据信息的集合,它对数据流图中的各个元素按集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解规定格式进行详细的描述和确切的解释释,是数据流图的补充工具。是数据流图的补充工具。数据流图与数据字典构成了系统逻数据流图与数据字典构成了系统逻辑模型的主体。辑模型的主体。2.数据字典(数据字典(DD)数据字典的数据字典的作用作用,就是对软件中的每,就是对软件中的每个数据规定一个定义条目,以个数据规定一个定义条目,以保持数据在保持数据在系统中的一致性系统中的一致性。软件中的数据,可分为三种情况:软件中的数据,可分为三种情况:由多个相关数据项组成的由多个相关数据项组成的数据流数据流;数据文件或数据库数据文件或数据库;只含一个数据的只含一个数据的数据项数据项(或数据元素或数据元素)。DFD中所有数据元素的定义集合数据流数据流例:发票例:发票数据文件数据文件例:各班学生用书表例:各班学生用书表学生购书数量数据项学生购书数量数据项例:数量例:数量三种数据字典分别表达如下:三种数据字典分别表达如下:学学生生1审查审查开发票开发票2开领书开领书单单学学生生购书单购书单发票发票领书单领书单计算机售书系统的数据流图:计算机售书系统的数据流图:无效书单无效书单各班学生用书表各班学生用书表教材存量表教材存量表数据流数据流“发票发票”的字典条目的字典条目数据流名:发票数据流名:发票别别 名:购书发票名:购书发票组组 成:成:学号姓名书号单价数量学号姓名书号单价数量总价书费合计总价书费合计备备 注:注:数据字典数据字典数据流数据流数据文件数据文件“各班学生用书表各班学生用书表”的字典条的字典条目目文件名:各班学生用书表文件名:各班学生用书表别别 名:名:组组 成:成:系编号专业和班编号年级系编号专业和班编号年级书号书号组组 织:织:按系、专业和班编号从小到大排列按系、专业和班编号从小到大排列备备 注:注:数据字典数据字典数据文件数据文件数据项数据项“数量数量”的字典条目的字典条目数据项名:数量数据项名:数量别别 名:购书量名:购书量取取 值:正整数值:正整数备备 注:注:数据字典数据字典数据项数据项一般的一般的“数据流数据流”字典条目应包含以下内字典条目应包含以下内容:容:数据流名:数据流名:别名(编号):别名(编号):描述:描述:组成(定义):组成(定义):来源与去处:来源与去处:频率、数据量、取值范围等:频率、数据量、取值范围等:备备 注:注:数据字典数据字典数据流应包含的内容数据流应包含的内容数据字典数据字典数据文件应包含的内容数据文件应包含的内容一般的一般的“数据文件数据文件”字典条目应包含以下内容:字典条目应包含以下内容:数据文件名:数据文件名:关键码:关键码:描述:描述:组成(定义):组成(定义):存储方式:存储方式:存储频率、数据量、取值范围等:存储频率、数据量、取值范围等:(如安全要求等)(如安全要求等)备备 注:注:数据字典数据字典数据项应包含的内容数据项应包含的内容一般的一般的“数据项数据项”字典条目应包含以下内容:字典条目应包含以下内容:数据项名:数据项名:别名:别名:描述:描述:数据类型:数据类型:长度(精度):长度(精度):取值范围、缺省值等:取值范围、缺省值等:(如计量单位等)(如计量单位等)备备 注:注:还可以采用类似公式定义式,还可以采用类似公式定义式,(似(似P41P41例例3.63.6)例如:例如:航班信息文件航班信息文件 航空公司名称航班号航空公司名称航班号起点终点日期起点终点日期 起飞时间降落时间起飞时间降落时间 航空公司名称航空公司名称22字母字母44 航班号航班号33十进制数字十进制数字33 字母字母“A”“Z”“A”“Z”十进制数字十进制数字“0”“9”“0”“9”起点终点起点终点11汉字汉字1010 起飞时间降落时间时分起飞时间降落时间时分 时时“00”“23”“00”“23”分分“00”“59”“00”“59”日期年月日日期年月日 年年20002000200120012002200220042004 月月“01”“12”“01”“12”日日“01”“31”“01”“31”对数据项的数据描述还可以采用对数据项的数据描述还可以采用以下的方式:以下的方式:名称别名类型长度备注姓名XM字符8存款日期CKRQ日期金额JE数字8,2身份证号SFZH字符16类别LB字符2取款日期QKRQ日期利息LX数字8,2利息税LXS数字8,2数据字典实现数据字典的途径实现数据字典的途径目前实现数据字典有三种途径:目前实现数据字典有三种途径:全人工过程全人工过程利用数据字典处理程序的全自动化过程利用数据字典处理程序的全自动化过程用正文编辑程序报告生成程序等已有的用正文编辑程序报告生成程序等已有的实用程序帮助人工过程的混合过程。实用程序帮助人工过程的混合过程。3.3.加工说明加工说明加工说明(加工说明(PSPECPSPEC)u说明说明DFDDFD中的每个加工,加工逻辑中的每个加工,加工逻辑说明描述实现加工的策略,是加工说明描述实现加工的策略,是加工说明的主体。说明的主体。u在需求分析阶段,策略仅需要指出在需求分析阶段,策略仅需要指出“做什么做什么”,而不管,而不管“怎么做怎么做”!3.3.加工说明加工说明加工说明(加工说明(PSPECPSPEC)的描述工具有:)的描述工具有:结构化语言结构化语言判定表或判定树判定表或判定树层次方框图层次方框图WarnierWarnier图图IPOIPO图图 等等等等(1)结构化语言)结构化语言 自然语言加上结构化的形自然语言加上结构化的形式,就是结构化语言。借用结构式,就是结构化语言。借用结构化语言的控制结构描述加工。化语言的控制结构描述加工。结构化语言的特点:结构化语言的特点:无确定语法无确定语法可分层、嵌套可分层、嵌套加工名加工名:核实订票处理核实订票处理 编号编号:3.2:3.2激活条件激活条件:收到取订票信息收到取订票信息处理逻辑处理逻辑:1:1读订票旅客信息文件读订票旅客信息文件 2 2搜索此文件中是否有与输入信息搜索此文件中是否有与输入信息 中姓名及身份证号相符的项中姓名及身份证号相符的项 IFIF 有有 THENTHEN 判断余项是否与文件中信判断余项是否与文件中信 息相符息相符 IFIF 是是 THENTHEN 输出已订票信息输出已订票信息 ELSEELSE 输出未订票信息输出未订票信息 ELSEELSE 输出未订票信息输出未订票信息执行频率执行频率:实时实时例:用结构化语言描述加工例:用结构化语言描述加工(2 2)判定表或判定树)判定表或判定树判定表采用表格的形式描述加工逻辑,判定表采用表格的形式描述加工逻辑,他适合于描述包含复杂判断的加工处他适合于描述包含复杂判断的加工处理。理。判定树采用树形图的形式描述加工逻判定树采用树形图的形式描述加工逻辑,他同样适合于描述包含复杂判断辑,他同样适合于描述包含复杂判断的加工处理。他是判定表的图形表示。的加工处理。他是判定表的图形表示。一般情况下,两者选用其一。一般情况下,两者选用其一。判定(决策)树实例判定(决策)树实例 判判定定树树描描述述有有多多个个行行为为需需要要选选择择的的过过程程。判判定定树树由由一一组组表表示示条条件件的的节节点点,和和无标记边组成。无标记边组成。判定树示意图判定树示意图 逻辑功能名逻辑功能名 条件条件1 1 条件条件2 2 条件条件1.21.2 条件条件1.11.1 行为行为1 1 行为行为2 2 条件条件2.12.1 条件条件2.22.2 行为行为3 3 行为行为4 4 条件条件2.2.22.2.2 条件条件2.2.12.2.1 行为行为5 5判定树实例判定树实例豪华型豪华型 选择包装箱选择包装箱 中速车中速车 高速车高速车豪华型豪华型标准型标准型标准型标准型 使用使用1 1号包装箱号包装箱 使用使用2 2号包装箱号包装箱 使用使用3 3号包装箱号包装箱 使用使用4 4号包装箱号包装箱判定(决策)树实例判定(决策)树实例判定树还有另一种形式判定树还有另一种形式:“T”:“T”表示表示“真真”,条件成立;,条件成立;“F”“F”表示表示“假假”,条件,条件不成立。不成立。判定树的另一种形式判定树的另一种形式 决决策策树树形形式式简简单单,易易于于掌掌握握和和使使用用,并并适适合合于与用户讨论。于与用户讨论。豪华型豪华型中速车中速车T标准型标准型使用使用1 1号包装箱号包装箱使用使用2 2号包装箱号包装箱使用使用4 4号包装箱号包装箱使用使用3 3号包装箱号包装箱TTFFF判定(决策)表实例判定(决策)表实例判定表判定表(1)(1)豪华型豪华型中速车中速车T T 使用使用1 1号包装箱号包装箱 使用使用2 2号包装箱号包装箱 使用使用3 3号包装箱号包装箱 使用使用4 4号包装箱号包装箱T TT TF FF FF FF FT T判定(决策)表实例判定(决策)表实例判定表(判定表(2 2)层层次次方方框框图图用用树树形形结结构构的的一一系系列列多多层层次次的的矩矩形形框框描描绘绘数数据据的的层层次次结结构构。树树形形结结构构的的顶顶层层是是一一个个单单独独的的矩矩形形框框,它它代代表表完完整整的的数数据据结结构构,下下面面的的各各层层矩矩形形框框代代表表这这个个数数据据的的子子集集,最最底底层层的的各各个个框框代代表表组组成成这这个个数数据据的的实实际际数数据据元元素素(不能再分割的元素)。(不能再分割的元素)。例如,描绘一家例如,描绘一家计算机公司全部产计算机公司全部产品的数据结构可以品的数据结构可以用图用图2.15中的层中的层次方框图表示。次方框图表示。层次方框图的一个例子层次方框图的一个例子(3)层次方框图)层次方框图(4 4)WarnierWarnier图图 法法国国计计算算机机科科学学家家WarnierWarnier提提出出了了表表示示信信息息层层次次结结构构的的另另外外一一种种图图形形工工具具。和和层层次次方方框框图图类类似似,WarnierWarnier图图也也用用树树形形结结构构描描绘绘信信息息,但但是是这这种种图图形形工工具具比比层层次次方方框框图图提提供供了了更更丰丰富富的的描描绘绘手段。手段。用用WarnierWarnier图图可可以以表表明明信信息息的的逻逻辑辑组组织织,也也就就是是说说,它它可可以以指指出出一一类类信信息息或或一一个个信信息息量量是是重重复复出出现现的的,也也可可以以表表示示特特定定信信息息在在某某一一类类信信息息中中是是有有条条件件地地出出现现的的。因因为为重重复复和和条条件件约约束束是是说说明明软软件件处处理理过过程程的的基基础础,所所以以很很容容易易把把WarnierWarnier图图转变成软件设计的工具。转变成软件设计的工具。(4 4)WarnierWarnier图图 下图是用下图是用WarnierWarnier图描绘一类软件产品图描绘一类软件产品的例子,它说明了这种图形工具的用法。的例子,它说明了这种图形工具的用法。Warnier图的一个例子IPO(Input-Process-Output Chatr)图)图 IPO图是输入处理输出图的简称,它是美国图是输入处理输出图的简称,它是美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。入数据、对数据的处理和输出数据之间的关系。用IPO图描绘主文件更新功能右图是一个右图是一个主文件更新主文件更新的例子,通的例子,通过这个例子过这个例子不难了解不难了解IPO图的用图的用法。法。建议使用一种改进的建议使用一种改进的IPOIPO图(也称为图(也称为IPOIPO表),表),这种图中包含某些附加信息,在软件设计过程中这种图中