资源预览内容
第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
第9页 / 共43页
第10页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章第二章 结构化方法学结构化方法学开发软件要回答三个问题:开发软件要回答三个问题: Why to do? What to do? n How to do? 可行性研究可行性研究 需求分析需求分析 系统设计与实现系统设计与实现结构化方法学的主要步骤:结构化方法学的主要步骤:n 问题的定义问题的定义n 可行性研究可行性研究n 结构化分析结构化分析n 结构化设计结构化设计n 结构化程序设计结构化程序设计n 测试与维护测试与维护12.1 2.1 问题定义问题定义 问题目标和规模报告书问题目标和规模报告书n 任务任务: 确定确定“软件要解决的问题是什么?软件要解决的问题是什么?” 系统分析系统分析员应该提出关于员应该提出关于问题性质问题性质、工程目标工程目标和和工程规模工程规模的书的书面报告,并且需要得到客户对这份报告的确认。面报告,并且需要得到客户对这份报告的确认。n 结果结果: :2n 回答回答“问题定义阶段问题定义阶段定义的问题是否可行?定义的问题是否可行?”n 最短时间最短时间n 最小代价最小代价n 成本成本/ /效益分析效益分析 n 可行性分析可行性分析n 技术可行性技术可行性n 经济可行性经济可行性n 操作可行性操作可行性n 法律可行性法律可行性2.2 2.2 可行性研究可行性研究任务任务 :不是要解决问题,而是确定问题是否能做,是否值得去做不是要解决问题,而是确定问题是否能做,是否值得去做。注意:注意:32.2 2.2 可行性研究可行性研究结果结果:n 可行性研究报告可行性研究报告n 软件系统的目标和规模软件系统的目标和规模n 推荐方案推荐方案n 数据流图表示的系统高层逻辑模型数据流图表示的系统高层逻辑模型n 系统成本和效益的估计系统成本和效益的估计n 开发计划开发计划52.3 2.3 结构化的需求分析结构化的需求分析 需求分析是需求分析是发现发现、求精求精、建模建模、规格说明规格说明和和复审复审的过程,是的过程,是软件开发者和用户相互作用软件开发者和用户相互作用的过程。的过程。n 任务任务 :n 目标系统必须做什么,不考虑怎么目标系统必须做什么,不考虑怎么做做n 建立分析模型建立分析模型 n 编写需求说明书编写需求说明书 n 步骤步骤 :n 发现发现:需求获取:需求获取 n 求精求精:需求提炼:需求提炼 n 通过建模表达规格说明通过建模表达规格说明:需求描述:需求描述 n 复审复审:需求验证:需求验证 n 综合要求综合要求 :n 功能要求功能要求 n 性能要求性能要求 n 运行要求运行要求n 未来要求未来要求n 数据要求数据要求 以以ERER图图表达表达数据模型数据模型以以数据流图数据流图表达表达功能模型功能模型以以状态转换图状态转换图表达表达行为模型行为模型以以数据字典数据字典来组织来组织系统元素系统元素6n 基于基于“数据流数据流( (注重注重算法和数据结构算法和数据结构) )”,面向用户面向用户的的n 以以“图表工具图表工具”明确表达明确表达系统逻辑模型系统逻辑模型n 以以“自顶向下逐层分解自顶向下逐层分解”的方式进行系统分析的方式进行系统分析n 资料统一,避免重复性,增强一致性资料统一,避免重复性,增强一致性n 控制复杂性的基本手段控制复杂性的基本手段n 分解分解:将复杂的问题拆成若干小问题再分别解决的过程将复杂的问题拆成若干小问题再分别解决的过程n 抽象抽象:先考虑问题最本质的属性,暂时略去细节,再先考虑问题最本质的属性,暂时略去细节,再逐逐 层添加细节,直至达到必要的详细程度层添加细节,直至达到必要的详细程度 特点特点:2.3 2.3 结构化的需求分析结构化的需求分析72.3 2.3 结构化的需求分析结构化的需求分析 数据流图数据流图 : 用于建立功能模型,提供了功能建模机制也提供了信息用于建立功能模型,提供了功能建模机制也提供了信息流建模机制,是系统逻辑功能的图形表示,没有任何具体的流建模机制,是系统逻辑功能的图形表示,没有任何具体的物理元素,描绘了信息在软件中流动和被处理的情况。数据物理元素,描绘了信息在软件中流动和被处理的情况。数据流图的基本要点是描绘流图的基本要点是描绘“做什么做什么”而不考虑而不考虑“怎样做怎样做”。 数据流图的基本符号数据流图的基本符号 : 正方形正方形( (或立方体或立方体) ):表示数据的:表示数据的源点源点或或终点终点; 圆形圆形( (或圆角矩形或圆角矩形) ):代表变换数据的:代表变换数据的处理处理; 开口矩形开口矩形( (或两条平行横线或两条平行横线) ):代表:代表数据存储数据存储; 箭头箭头:表示数据流,即特定:表示数据流,即特定数据的流动方向数据的流动方向。92.3 2.3 结构化的需求分析结构化的需求分析设计系统数据流图的步骤设计系统数据流图的步骤 :n 自顶向下分层自顶向下分层n 步骤步骤n 提取数据流图的四个基本成分提取数据流图的四个基本成分n 画出高层数据流图画出高层数据流图n 逐层分解较高层数据流图中的逐层分解较高层数据流图中的 处理,得到一套分层数据流图处理,得到一套分层数据流图10例例1 1(P13): 某工厂采购部门每天要开出定货清单,清单中包括订购部件的部件号、某工厂采购部门每天要开出定货清单,清单中包括订购部件的部件号、部件名、规格、说明、订购量、当前价格、主要供应商和辅助供应商。部件名、规格、说明、订购量、当前价格、主要供应商和辅助供应商。 部件入库或出库称为业务,通过仓库中的终端把业务报告给定货系统。部件入库或出库称为业务,通过仓库中的终端把业务报告给定货系统。 当某种部件的库存量少于库存量临界值以下时,当某种部件的库存量少于库存量临界值以下时,仓库管理员就应该及时仓库管理员就应该及时通知定货系统开出定货清单,交由采购员采购。通知定货系统开出定货清单,交由采购员采购。1)1)提取数据流图的四个成分提取数据流图的四个成分2.3 2.3 结构化的需求分析结构化的需求分析112)2)画出高层数据流图画出高层数据流图3)3)细化基本系统模型,描绘主要功能细化基本系统模型,描绘主要功能2.3 2.3 结构化的需求分析结构化的需求分析122.3 2.3 结构化的需求分析结构化的需求分析4)4)分解关键处理,细化数据流图分解关键处理,细化数据流图 分解原则:分解原则:n 分解自然,概念合理分解自然,概念合理n 以分层方式对处理编号以分层方式对处理编号n 父图与子图的平衡,父图与子图的平衡,分解前后的数据流必须一致分解前后的数据流必须一致n 一个处理一般分解成一个处理一般分解成个子处理个子处理n 终止分解:分解可能涉及物理实现手段时终止分解:分解可能涉及物理实现手段时13数据流图例数据流图例2 2: 学生使用就餐卡在食堂就餐时,先插入卡,学生使用就餐卡在食堂就餐时,先插入卡,在连接数据库确认卡的身份和金额的合法性之在连接数据库确认卡的身份和金额的合法性之后,输入本次就餐的金额,然后连接数据库,后,输入本次就餐的金额,然后连接数据库,扣除该数值,取回卡,完成本次消费扣除该数值,取回卡,完成本次消费。2.3 2.3 结构化的需求分析结构化的需求分析14卡号卡号卡数据卡数据扣款扣款成功成功标志标志消费金额消费金额卡合法性卡合法性卡号卡号卡卡就餐就餐处理处理卡卡2.3 2.3 结构化的需求分析结构化的需求分析15成功成功标志标志卡数据卡数据扣款扣款成功成功标志标志金额金额消费金额消费金额合法合法标志标志卡合法性卡合法性卡号卡号不合法卡号不合法卡号卡卡卡卡扣除结果扣除结果连接连接数据数据库库确认确认合法合法性性消费消费金额金额接收接收消费消费金额金额扣扣款款2.3 2.3 结构化的需求分析结构化的需求分析162.4 2.4 结构化设计结构化设计n 任务任务 : 构建系统的体系结构构建系统的体系结构( (模块组织模块组织、接口接口、数据库数据库等等) )n 步骤步骤 :n 概要设计概要设计:也称为总体设计,:也称为总体设计,确定软件体系结构确定软件体系结构n 详细设计详细设计:模块内部的具体设计:模块内部的具体设计1)设想供选择的方案设想供选择的方案2)选取合理的方案选取合理的方案3)推荐最佳方案推荐最佳方案4)功能分解功能分解5)设计软件结构设计软件结构6)数据库设计数据库设计7)制定测试计划制定测试计划8)书写文档书写文档9)审查和复审审查和复审过程过程:20n 基本思想基本思想:自顶向下的模块化设计方法自顶向下的模块化设计方法n 设计方法设计方法:面向数据流的方法面向数据流的方法n 变换流变换流 变换分析法变换分析法n 事务流事务流 事务分析法事务分析法n 描述方式描述方式:软件结构图软件结构图n 优点优点:n 模块可以独立地被理解、编程、调试、排错和修改模块可以独立地被理解、编程、调试、排错和修改n 简化研制工作,缩短开发周期,减少人力简化研制工作,缩短开发周期,减少人力n 模块相对独立,提高系统可靠性模块相对独立,提高系统可靠性2.4 2.4 结构化设计结构化设计21 信息流与软件结构的映射方法信息流与软件结构的映射方法2.4 2.4 结构化设计结构化设计22 矩形框表示,内部是模块名矩形框表示,内部是模块名 模块名表达模块功能,常用动宾短语模块名表达模块功能,常用动宾短语 可复用的模块用双纵边矩形框表示可复用的模块用双纵边矩形框表示如:如:2.4 2.4 结构化设计结构化设计n 精确表达系统模块组织结构精确表达系统模块组织结构n 反映模块间的相互联系反映模块间的相互联系(层次关系、调用关系层次关系、调用关系)n 表示:表示:n 模块模块n 模块间的调用关系模块间的调用关系n 模块间的信息传递模块间的信息传递 软件结构图软件结构图 :简单调用简单调用 判断调用判断调用 循环调用循环调用 数据信息数据信息 控制信息控制信息如如 :232.4 2.4 结构化设计结构化设计 优秀的软件结构优秀的软件结构:n 具有具有层次性层次性(腰鼓形)(腰鼓形)n 最高层模块只有一个,最下层模块完成基本操作最高层模块只有一个,最下层模块完成基本操作n 没有模块没有模块“越层、同层越层、同层调用调用”出现出现n 顶层模块顶层模块高扇出高扇出,中层模块,中层模块低扇出低扇出,底层模块高,底层模块高扇入扇入242.4 2.4 结构化设计结构化设计 软件设计原理软件设计原理:1)1)模块化原理模块化原理:n模块:模块:单独命名的可以通过名字访问的数据说明、单独命名的可以通过名字访问的数据说明、 可执行语句等程序对象的集合。可执行语句等程序对象的集合。n模块的模块的外部特征外部特征:输入、输出、功能:输入、输出、功能n模块的模块的内部特征内部特征:内部数据和程序代码:内部数据和程序代码n模块化:把一个复杂的大型程序划分成若干个模块,模块化:把一个复杂的大型程序划分成若干个模块, 每个模块完成一个子功能,把这些模块汇每个模块完成一个子功能,把这些模块汇 总起来组成一个整体,可以完成指定的功总起来组成一个整体,可以完成指定的功 能而满足问题的要求。能而满足问题的要求。 252.4 2.4 结构化设计结构化设计2)2)信息隐蔽:信息隐蔽:一个模块内所包含的信息(数据和代码)一个模块内所包含的信息(数据和代码) 对于不需要这些信息的模块不能访问对于不需要这些信息的模块不能访问3)3)模块独立性:模块独立性:软件系统中的每个模块只完成一个相对软件系统中的每个模块只完成一个相对 独立的子功能,且与其它模块间的接口独立的子功能,且与其它模块间的接口 简单简单 软件设计原理软件设计原理:262.4 2.4 结构化设计结构化设计n定性度量定性度量n内聚:内聚:一个一个模块内模块内各组成元素间彼此联系的紧密程度各组成元素间彼此联系的紧密程度n耦合:耦合:不同不同模块之间模块之间相互联系的紧密程度相互联系的紧密程度 影响因素:影响因素:模块间的联系方式(调用方式)模块间的联系方式(调用方式) 模块间的接口性质(由信息性质决定)模块间的接口性质(由信息性质决定) 数据型、控制型、描述型标志、混合型数据型、控制型、描述型标志、混合型 接口上通过的数据量接口上通过的数据量n结构化设计目标结构化设计目标:高内聚、低耦合高内聚、低耦合3) 模块独立性:模块独立性:272.4 2.4 结构化设计结构化设计n 模块间的耦合程度模块间的耦合程度:n 无耦合无耦合n 数据耦合数据耦合n 特征耦合特征耦合n 控制耦合控制耦合n 公共耦合公共耦合n 内容耦合内容耦合n 设计原则:以数据耦合为主,特征耦合为辅,少用设计原则:以数据耦合为主,特征耦合为辅,少用 控制耦合,限制公共耦合,杜绝内容耦合控制耦合,限制公共耦合,杜绝内容耦合无耦合无耦合 : 模块完全独立工作,与其它模块无任何模块完全独立工作,与其它模块无任何连接,耦合程度最低。连接,耦合程度最低。低低高高数据耦合数据耦合 : 模块间仅仅通过参数交换数据信息,模块间仅仅通过参数交换数据信息,是松散耦合,模块间独立性较强。是松散耦合,模块间独立性较强。特征耦合特征耦合 : 模块间通过参数传递整个或部分数据结构,但模块间通过参数传递整个或部分数据结构,但只需要部分数据元素。只需要部分数据元素。控制耦合控制耦合: 模块间传递控制信息,修改模块,将模块间传递控制信息,修改模块,将影响到控制模块,降低模块的独立性。影响到控制模块,降低模块的独立性。公共耦合公共耦合: 模块间使用了公共数据,如全程变量、共享通模块间使用了公共数据,如全程变量、共享通信区、内存的公共覆盖区等,降低系统的可读性、信区、内存的公共覆盖区等,降低系统的可读性、可修改性和可靠性。可修改性和可靠性。内容耦合,形式内容耦合,形式:(1 1)访问其它模块的内部数据;)访问其它模块的内部数据;(2 2)不通过正常入口进入其它模块内部;)不通过正常入口进入其它模块内部;(3 3)代码重叠;)代码重叠;(4 4)模块有多个入口(多功能)模块有多个入口(多功能)28软件设计原理n 偶然内聚偶然内聚n 逻辑内聚逻辑内聚n 时间内聚时间内聚n 过程内聚过程内聚n 通信内聚通信内聚n 顺序内聚顺序内聚n 功能内聚功能内聚偶然内聚偶然内聚存入存入打印打印结果结果引用同一个数据引用同一个数据数据数据修改修改删除删除产生同一个输出产生同一个输出通信内聚通信内聚构造构造矩阵矩阵矩阵矩阵矩阵矩阵顺序内聚顺序内聚功能内聚功能内聚矩阵矩阵转置转置输出输出矩阵矩阵低低高高低内聚低内聚中内聚中内聚高内聚高内聚n 模块的内聚性:模块的内聚性:302.4 2.4 结构化设计结构化设计 软件设计原则软件设计原则:n 模块分解的启发式规则:模块分解的启发式规则:n 提高模块独立性提高模块独立性n 模块规模适中模块规模适中n 模块的扇入、扇出适当模块的扇入、扇出适当 “腰鼓腰鼓”形:顶层扇出大、中间扇出较小、底层扇入大形:顶层扇出大、中间扇出较小、底层扇入大n 作用域保持在控制域中作用域保持在控制域中 作用域:受模块内一个判定影响的模块的集合作用域:受模块内一个判定影响的模块的集合 控制域:模块本身及其直接或间接下属模块的集合控制域:模块本身及其直接或间接下属模块的集合312.4 2.4 结构化设计结构化设计( (a)a)作用域在控制域外作用域在控制域外toptopX XY YA AB BC CD D( (b)b)判定的层次太高判定的层次太高toptopX XY YA AB BD DC C( (c)c)有一个不必要的穿越有一个不必要的穿越toptopX XY YA AB BC CD DtoptopX XY YA AB BC CD D( (d)d)作用域等于控制域作用域等于控制域322.4 2.4 结构化设计结构化设计 结构化设计策略结构化设计策略:n 将数据流图映射为软件结构将数据流图映射为软件结构n 数据流图类型数据流图类型n 变换型:以变换为中心变换型:以变换为中心 由输入、主处理、输出三部分组成由输入、主处理、输出三部分组成n 事务型:以事务为中心事务型:以事务为中心 一个中心处理将其输入数据流分离成一串一个中心处理将其输入数据流分离成一串 平行的输出数据流平行的输出数据流33某超市计划使用计算机系统进行商品的销售与某超市计划使用计算机系统进行商品的销售与订货管理:商品入库时,接收超市管理员提供订货管理:商品入库时,接收超市管理员提供的商品入库信息,然后更新商品的库存数据;的商品入库信息,然后更新商品的库存数据;顾客购买商品时,根据售货员提供的商品销售顾客购买商品时,根据售货员提供的商品销售信息来更新商品的库存数据;当商品的库存数信息来更新商品的库存数据;当商品的库存数量少于库存临界值时,需要进行订货处理,然量少于库存临界值时,需要进行订货处理,然后生成商品的订货报表,并通知采购员进行订后生成商品的订货报表,并通知采购员进行订货。试画出超市销售与订货管理的功能级数据货。试画出超市销售与订货管理的功能级数据流图。流图。 思考题思考题43
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号