SE第2章结构化方法学.ppt_第1页
SE第2章结构化方法学.ppt_第2页
SE第2章结构化方法学.ppt_第3页
SE第2章结构化方法学.ppt_第4页
SE第2章结构化方法学.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1,第二章 结构化方法学,开发软件要回答三个问题:,结构化方法学的主要步骤:,2,2.1 问题定义,3,回答“问题定义阶段定义的问题是否可行?” 最短时间 最小代价 成本/效益分析 可行性分析 技术可行性 经济可行性 操作可行性 法律可行性,2.2 可行性研究,任务 :,4,2.2 可行性研究,旧系统逻辑模型 新系统目标和规模 逻辑模型描述工具 数据流图 数据字典 用例图,复查问题定义、规模和目标 根据新系统模型 分析员误解 用户遗漏 重新定义问题 循环(定义,分析,求解),从逻辑模型导出物理系统方案 不同角度 多个方案 分析各种可选方案 技术可行性 操作可行性 经济可行性 为可行方案制定初步进度计划,得出可行性研究结果 继续开发 终止项目 推荐解决方案 成本/效益,为推荐方案确定开发计划 进度 开发人员 硬件设备 软件工具 各阶段成本估计,可行性研究报告 各步骤结果 推荐方案 开发计划等,问题定义阶段的成果 系统规模和目标报告书 复查任务 改正含糊、二义的描述 改正不正确的描述 核查系统限制和约束,分析现有系统 高层系统流程图 确定系统功能 比较新旧系统 必须完成旧系统的基本功能 必须改正旧系统存在问题 必须增收入、减支出,5,2.2 可行性研究,6,2.3 结构化的需求分析,需求分析是发现、求精、建模、规格说明和复审的过程,是软件开发者和用户相互作用的过程。,任务 : 目标系统必须做什么,不考虑怎么做 建立分析模型 编写需求说明书 步骤 : 发现:需求获取 求精:需求提炼 通过建模表达规格说明:需求描述 复审:需求验证,综合要求 : 功能要求 性能要求 运行要求 未来要求 数据要求,7,基于“数据流(注重算法和数据结构)”,面向用户的 以“图表工具”明确表达系统逻辑模型 以“自顶向下逐层分解”的方式进行系统分析 资料统一,避免重复性,增强一致性 控制复杂性的基本手段 分解:将复杂的问题拆成若干小问题再分别解决的过程 抽象:先考虑问题最本质的属性,暂时略去细节,再逐 层添加细节,直至达到必要的详细程度,特点:,2.3 结构化的需求分析,8,2.3 结构化的需求分析,分析模型的构成与结构化设计的对应关系 :,9,2.3 结构化的需求分析,数据流图 :,用于建立功能模型,提供了功能建模机制也提供了信息流建模机制,是系统逻辑功能的图形表示,没有任何具体的物理元素,描绘了信息在软件中流动和被处理的情况。数据流图的基本要点是描绘“做什么”而不考虑“怎样做”。 数据流图的基本符号 :,正方形(或立方体):表示数据的源点或终点; 圆形(或圆角矩形):代表变换数据的处理; 开口矩形(或两条平行横线):代表数据存储; 箭头:表示数据流,即特定数据的流动方向。,10,2.3 结构化的需求分析,设计系统数据流图的步骤 : 自顶向下分层 步骤 提取数据流图的四个基本成分 画出高层数据流图 逐层分解较高层数据流图中的 处理,得到一套分层数据流图,11,例1(P13): 某工厂采购部门每天要开出定货清单,清单中包括订购部件的部件号、部件名、规格、说明、订购量、当前价格、主要供应商和辅助供应商。 部件入库或出库称为业务,通过仓库中的终端把业务报告给定货系统。 当某种部件的库存量少于库存量临界值以下时,仓库管理员就应该及时通知定货系统开出定货清单,交由采购员采购。,提取数据流图的四个成分,2.3 结构化的需求分析,12,画出高层数据流图,细化基本系统模型,描绘主要功能,2.3 结构化的需求分析,13,2.3 结构化的需求分析,分解关键处理,细化数据流图,分解原则: 分解自然,概念合理 以分层方式对处理编号 父图与子图的平衡,分解前后的数据流必须一致 一个处理一般分解成个子处理 终止分解:分解可能涉及物理实现手段时,14,数据流图例2: 学生使用就餐卡在食堂就餐时,先插入卡,在连接数据库确认卡的身份和金额的合法性之后,输入本次就餐的金额,然后连接数据库,扣除该数值,取回卡,完成本次消费。,2.3 结构化的需求分析,15,2.3 结构化的需求分析,16,2.3 结构化的需求分析,17,2.3 结构化的需求分析,数据字典 :,关于数据的信息集合,DFD中所有元素定义的集合 内容 数据元素:数据字典中不可再分的数据单位 数据结构 数据流 数据存储 外部项 处理(一般不用DD描述),18,数据字典举例:,2.3 结构化的需求分析,19,数据流图中处理的逻辑表达方式 :,用“小说明”来描述处理的逻辑加工 工具 结构化自然语言(伪码) 判定树 判定表,介于自然语言和程序设计语言之间,在自然语言的 基础上,加上有限的词汇和语句而形成的语言 词汇表:DFD中名词(数据元素、数据结构、数据流) 执行性动词 运算符(算术、关系和逻辑运算符) 语句(祈使语句、判断语句、循环语句及复合语句),例如,“接收库存业务”的表达 : GET 库存业务 ; EDIT 库存业务 ; IF 库存业务有错 THEN 置库存业务的错误标志 ELSE 去掉库存业务的错误标志,表达条件和操作之间相关关系的一种规范方法 举例:处理“检查订购单” 的逻辑描述 IF 金额超过500元且未过期 THEN 发出批准单和提货单; IF 金额超过500元且已过期 THEN 不发批准单; IF 金额低于500元 THEN 不论是否过期发批准单和提货单,过期发出通知书,2.3 结构化的需求分析,三种工具比较 结构化自然语言:可以表达各种语句 判定树:适合表达判断 特别是嵌套的多层判断 判定表:适合表达判断 特别是某个处理依赖于多个逻辑条件,20,2.4 结构化设计,任务 : 构建系统的体系结构(模块组织、接口、数据库等) 步骤 : 概要设计:也称为总体设计,确定软件体系结构 详细设计:模块内部的具体设计,21,基本思想:自顶向下的模块化设计方法 设计方法:面向数据流的方法 变换流 变换分析法 事务流 事务分析法 描述方式:软件结构图 优点: 模块可以独立地被理解、编程、调试、排错和修改 简化研制工作,缩短开发周期,减少人力 模块相对独立,提高系统可靠性,2.4 结构化设计,22,信息流与软件结构的映射方法,2.4 结构化设计,23,矩形框表示,内部是模块名 模块名表达模块功能,常用动宾短语 可复用的模块用双纵边矩形框表示 如:,2.4 结构化设计,精确表达系统模块组织结构 反映模块间的相互联系(层次关系、调用关系) 表示: 模块 模块间的调用关系 模块间的信息传递,软件结构图 :,简单调用 判断调用 循环调用,数据信息 控制信息 如 :,24,2.4 结构化设计,优秀的软件结构:,具有层次性(腰鼓形) 最高层模块只有一个,最下层模块完成基本操作 没有模块“越层、同层调用”出现 顶层模块高扇出,中层模块低扇出,底层模块高扇入,25,2.4 结构化设计,软件设计原理:,模块化原理: 模块:单独命名的可以通过名字访问的数据说明、 可执行语句等程序对象的集合。 模块的外部特征:输入、输出、功能 模块的内部特征:内部数据和程序代码 模块化:把一个复杂的大型程序划分成若干个模块, 每个模块完成一个子功能,把这些模块汇 总起来组成一个整体,可以完成指定的功 能而满足问题的要求。,26,2.4 结构化设计,信息隐蔽:一个模块内所包含的信息(数据和代码) 对于不需要这些信息的模块不能访问 3)模块独立性:软件系统中的每个模块只完成一个相对 独立的子功能,且与其它模块间的接口 简单,软件设计原理:,27,2.4 结构化设计,定性度量 内聚:一个模块内各组成元素间彼此联系的紧密程度 耦合:不同模块之间相互联系的紧密程度 影响因素:模块间的联系方式(调用方式) 模块间的接口性质(由信息性质决定) 数据型、控制型、描述型标志、混合型 接口上通过的数据量 结构化设计目标:高内聚、低耦合,3) 模块独立性:,28,2.4 结构化设计,模块间的耦合程度: 无耦合 数据耦合 特征耦合 控制耦合 公共耦合 内容耦合,设计原则:以数据耦合为主,特征耦合为辅,少用 控制耦合,限制公共耦合,杜绝内容耦合,无耦合 : 模块完全独立工作,与其它模块无任何连接,耦合程度最低。,数据耦合 : 模块间仅仅通过参数交换数据信息,是松散耦合,模块间独立性较强。,特征耦合 : 模块间通过参数传递整个或部分数据结构,但只需要部分数据元素。,控制耦合: 模块间传递控制信息,修改模块,将影响到控制模块,降低模块的独立性。,公共耦合: 模块间使用了公共数据,如全程变量、共享通信区、内存的公共覆盖区等,降低系统的可读性、可修改性和可靠性。,内容耦合,形式: (1)访问其它模块的内部数据; (2)不通过正常入口进入其它模块内部;(3)代码重叠; (4)模块有多个入口(多功能),29,2.4 结构化设计,模块的内聚性:,30,软件设计原理,偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚,模块的内聚性:,31,2.4 结构化设计,软件设计原则:,模块分解的启发式规则: 提高模块独立性 模块规模适中 模块的扇入、扇出适当 “腰鼓”形:顶层扇出大、中间扇出较小、底层扇入大 作用域保持在控制域中,作用域:受模块内一个判定影响的模块的集合 控制域:模块本身及其直接或间接下属模块的集合,32,2.4 结构化设计,33,2.4 结构化设计,结构化设计策略:,将数据流图映射为软件结构 数据流图类型 变换型:以变换为中心 由输入、主处理、输出三部分组成 事务型:以事务为中心 一个中心处理将其输入数据流分离成一串 平行的输出数据流,34,2.4 结构化设计,结构图类型 变换型 事务型,35,2.4 结构化设计,变换分析策略构造变换型结构图 步骤 找出逻辑输入、主处理、逻辑输出 设计结构图的第一层和第二层 自顶向下设计下层模块,36,2.4 结构化设计,37,2.4 结构化设计,38,2.4 结构化设计,事务分析策略构造事务型结构图 步骤 识别事务中心处理和事务处理 设计结构图的第一层和第二层 为每个事务处理设计下层操作模块,可以共享 设计细节模块,也可以被操作模块共享,混合型结构图 以变换分析为主,事务分析为辅 举例:定货系统,39,2.4 结构化设计,40,对初始结构图的优化 模块独立性 加强模块内部联系 减少模块之间的联系 优化原则:先使它工作,然后再使它快起来,数据库设计 E-R图转化成对应的关系模式 规范化,2.4 结构化设计,41,问题定义:任务、结果 可行性研究:任务、内容、目的、结果 需求分析:任务、内容、方法、工具 SA方法:基本思想、分析步骤、结果 DFD:作用、基本成分、画法和原则 DD:作用、内容、表示 处理逻辑:作用、几种表示方法及其对比 数据分析:内容、方法,课堂总结(掌握,了解),42,软件设计:任务、步骤 结构化设计:目标、基本思想、设计方法 软件结构图:作用、画法、几个概念 软件设计原理:原理、内聚和耦合的分类 软件设计

温馨提示

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

评论

0/150

提交评论