SE第2章结构化方法学

上传人:平*** 文档编号:46213932 上传时间:2018-06-24 格式:PPT 页数:43 大小:1.11MB
返回 下载 相关 举报
SE第2章结构化方法学_第1页
第1页 / 共43页
SE第2章结构化方法学_第2页
第2页 / 共43页
SE第2章结构化方法学_第3页
第3页 / 共43页
SE第2章结构化方法学_第4页
第4页 / 共43页
SE第2章结构化方法学_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《SE第2章结构化方法学》由会员分享,可在线阅读,更多相关《SE第2章结构化方法学(43页珍藏版)》请在金锄头文库上搜索。

1、第二章 结构化方法学开发软件要回答三个问题: Why to do? What to do? n How to do? 可行性研究 需求分析 系统设计与实现结构化方法学的主要步骤:n 问题的定义n 可行性研究n 结构化分析n 结构化设计n 结构化程序设计n 测试与维护 12.1 问题定义问题目标和规模报告书n 任务:确定“软件要解决的问题是什么?” 系统分析员应该提出关于问题性质、工程目标和工程规模的书面报告,并且需要得到客户对这份报告的确认。n 结果:2n 回答“问题定义阶段定义的问题是否可行? ”n 最短时间n 最小代价n 成本/效益分析 n 可行性分析n 技术可行性n 经济可行性n 操作可

2、行性n 法律可行性2.2 可行性研究任务 :不是要解决问题,而是确定问题是否能做,是否值得去做。注意: 3循环2.2 可行性研究n 旧系统逻辑模型n 新系统目标和规模n 逻辑模型描述工具n 数据流图n 数据字典n 用例图n 复查问题定义、规模和目标n 根据新系统模型n 分析员误解n 用户遗漏n 重新定义问题n 循环(定义,分析,求解 )n 从逻辑模型导出物理系统方案n 不同角度n 多个方案n 分析各种可选方案n 技术可行性n 操作可行性n 经济可行性n 为可行方案制定初步进度计划n 得出可行性研究结果n 继续开发n 终止项目n 推荐解决方案n 成本/效益n 为推荐方案确定开发计划n 进度n 开

3、发人员n 硬件设备n 软件工具n 各阶段成本估计n 可行性研究报告n 各步骤结果n 推荐方案n 开发计划等n 问题定义阶段的成果n 系统规模和目标报告书n 复查任务n 改正含糊、二义的描述n 改正不正确的描述n 核查系统限制和约束n 分析现有系统n 高层系统流程图n 确定系统功能n 比较新旧系统n 必须完成旧系统的基本功 能n 必须改正旧系统存在问题n 必须增收入、减支出1) 复查系统规模和目标 2) 研究现有系统功能 3) 导出新系统模型 4) 重新定义问题 5) 导出和分析可选解决方案 6) 推荐行动方针 7) 草拟开发计划 8) 书写文档提交审查步骤 :42.2 可行性研究结果:n 可行

4、性研究报告n 软件系统的目标和规模n 推荐方案n 数据流图表示的系统高层逻辑模型n 系统成本和效益的估计n 开发计划52.3 结构化的需求分析需求分析是发现、求精、建模、规格说明和复审 的过程,是软件开发者和用户相互作用的过程。n 任务 :n 目标系统必须做什么,不考虑怎么 做n 建立分析模型 n 编写需求说明书 n 步骤 :n 发现:需求获取 n 求精:需求提炼 n 通过建模表达规格说明:需求描述 n 复审:需求验证 n 综合要求 :n 功能要求 n 性能要求 n 运行要求n 未来要求n 数据要求 以ER图表达数据模型 以数据流图表达功能模型 以状态转换图表达行为模型 以数据字典来组织系统元

5、素6n 基于“数据流(注重算法和数据结构)”,面向用户的n 以“图表工具”明确表达系统逻辑模型n 以“自顶向下逐层分解”的方式进行系统分析n 资料统一,避免重复性,增强一致性n 控制复杂性的基本手段n 分解:将复杂的问题拆成若干小问题再分别解决的过程n 抽象:先考虑问题最本质的属性,暂时略去细节,再逐层添加细节,直至达到必要的详细程度 特点:2.3 结构化的需求分析72.3 结构化的需求分析 分析模型的构成与结构化设计的对应关系 :82.3 结构化的需求分析 数据流图 :用于建立功能模型,提供了功能建模机制也提供了信息 流建模机制,是系统逻辑功能的图形表示,没有任何具体的 物理元素,描绘了信息

6、在软件中流动和被处理的情况。数据 流图的基本要点是描绘“做什么”而不考虑“怎样做”。数据流图的基本符号 : 正方形(或立方体):表示数据的源点或终点; 圆形(或圆角矩形):代表变换数据的处理; 开口矩形(或两条平行横线):代表数据存储; 箭头:表示数据流,即特定数据的流动方向。92.3 结构化的需求分析设计系统数据流图的步骤 :n 自顶向下分层n 步骤n 提取数据流图的四个基本成分n 画出高层数据流图n 逐层分解较高层数据流图中的处理,得到一套分层数据流图10例1(P13):某工厂采购部门每天要开出定货清单,清单中包括订购部件的部件号、 部件名、规格、说明、订购量、当前价格、主要供应商和辅助供

7、应商。部件入库或出库称为业务,通过仓库中的终端把业务报告给定货系统。当某种部件的库存量少于库存量临界值以下时,仓库管理员就应该及时 通知定货系统开出定货清单,交由采购员采购。1) 提取数据流图的四个成分2.3 结构化的需求分析112) 画出高层数据流图3) 细化基本系统模型,描绘主要功能2.3 结构化的需求分析122.3 结构化的需求分析4) 分解关键处理,细化数据流图 分解原则:n 分解自然,概念合理n 以分层方式对处理编号n 父图与子图的平衡,分解前后的数据流必须一致n 一个处理一般分解成个子处理n 终止分解:分解可能涉及物理实现手段时 13数据流图例2:学生使用就餐卡在食堂就餐时,先插入

8、卡,在连接数据库确认卡的身份和金额的合法性之后,输入本次就餐的金额,然后连接数据库,扣除该数值,取回卡,完成本次消费。2.3 结构化的需求分析14卡号卡数据扣款 成功 标志消费金额卡合法性卡号卡就餐 处理卡2.3 结构化的需求分析15成功 标志卡数据扣款 成功 标志金额消费金额合法 标志卡合法性卡号不合法卡号卡卡扣除结果连接 数据 库确认 合法 性消费 金额接收 消费 金额扣 款2.3 结构化的需求分析162.3 结构化的需求分析 数据字典 :n 关于数据的信息集合,DFD中所有元素定义的集合n 内容n 数据元素:数据字典中不可再分的数据单位n 数据结构n 数据流n 数据存储n 外部项n 处理

9、(一般不用DD描述)17n 数据字典举例:2.3 结构化的需求分析18 数据流图中处理的逻辑表达方式 :n 用“小说明”来描述处理的逻辑加 工n 工具n 结构化自然语言(伪码)n 判定树n 判定表n 介于自然语言和程序设计语言之间,在自然语言的基础上,加上有限的词汇和语句而形成的语言n 词汇表:DFD中名词(数据元素、数据结构、数据流 )n 执行性动词n 运算符(算术、关系和逻辑运算符)n 语句(祈使语句、判断语句、循环语句及复合语句)例如,“接收库存业务”的表达 : GET 库存业务 ; EDIT 库存业务 ; IF 库存业务有错THEN 置库存业务的错误标志ELSE 去掉库存业务的错误标志

10、n 表达嵌套的多层判断的有效工具n 举例:某工厂的职工超产奖励政策奖励政策产品 X产品 Y1 N 25 2 N 元N 25 503 (N 25) 元1 N 50 1 N 元50 100 110 + 1.5 (N 100) 元n 表达条件和操作之间相关关系的一种规范方法n 举例:处理“检查订购单” 的逻辑描述 IF 金额超过500元且未过期THEN 发出批准单和提货单;IF 金额超过500元且已过期THEN 不发批准单;IF 金额低于500元THEN 不论是否过期发批准单和提货单,过期发出通知书2.3 结构化的需求分析n 三种工具比较n 结构化自然语言:可以表达各种语句n 判定树:适合表达判断特

11、别是嵌套的多层判断n 判定表:适合表达判断特别是某个处理依赖于多个逻辑条件192.4 结构化设计n 任务 :构建系统的体系结构(模块组织、接口、数据库等)n 步骤 :n 概要设计:也称为总体设计,确定软件体系结构n 详细设计:模块内部的具体设计1) 设想供选择的方案 2) 选取合理的方案 3) 推荐最佳方案 4) 功能分解 5) 设计软件结构6) 数据库设计 7) 制定测试计划 8) 书写文档 9) 审查和复审过程 :20n 基本思想:自顶向下的模块化设计方法n 设计方法:面向数据流的方法n 变换流 变换分析法n 事务流 事务分析法n 描述方式:软件结构图n 优点:n 模块可以独立地被理解、编

12、程、调试、排错和修改n 简化研制工作,缩短开发周期,减少人力n 模块相对独立,提高系统可靠性2.4 结构化设计21 信息流与软件结构的映射方法2.4 结构化设计22 矩形框表示,内部是模块名 模块名表达模块功能,常用动宾短语 可复用的模块用双纵边矩形框表示 如:2.4 结构化设计n 精确表达系统模块组织结构n 反映模块间的相互联系(层次关系、调用关系)n 表示:n 模块n 模块间的调用关系n 模块间的信息传递 软件结构图 :简单调用 判断调用 循环调用 数据信息 控制信息 如 :232.4 结构化设计 优秀的软件结构:n 具有层次性(腰鼓形)n 最高层模块只有一个,最下层模块完成基本操作n 没

13、有模块“越层、同层调用”出现n 顶层模块高扇出,中层模块低扇出,底层模块高扇入242.4 结构化设计 软件设计原理:1) 模块化原理:n 模块:单独命名的可以通过名字访问的数据说明、可执行语句等程序对象的集合。n 模块的外部特征:输入、输出、功能 n 模块的内部特征:内部数据和程序代码n 模块化:把一个复杂的大型程序划分成若干个模块,每个模块完成一个子功能,把这些模块汇总起来组成一个整体,可以完成指定的功能而满足问题的要求。 252.4 结构化设计2) 信息隐蔽:一个模块内所包含的信息(数据和代码)对于不需要这些信息的模块不能访问3)模块独立性:软件系统中的每个模块只完成一个相对独立的子功能,

14、且与其它模块间的接口简单 软件设计原理:262.4 结构化设计n 定性度量n 内聚:一个模块内各组成元素间彼此联系的紧密程度n 耦合:不同模块之间相互联系的紧密程度影响因素:模块间的联系方式(调用方式)模块间的接口性质(由信息性质决定)数据型、控制型、描述型标志、混合型 接口上通过的数据量n 结构化设计目标:高内聚、低耦合3) 模块独立性:272.4 结构化设计n 模块间的耦合程度:n 无耦合n 数据耦合n 特征耦合n 控制耦合n 公共耦合n 内容耦合n 设计原则:以数据耦合为主,特征耦合为辅,少用控制耦合,限制公共耦合,杜绝内容耦合无耦合 :模块完全独立工作,与其它模块无任何 连接,耦合程度

15、最低。低高数据耦合 :模块间仅仅通过参数交换数据信息, 是松散耦合,模块间独立性较强。特征耦合 :模块间通过参数传递整个或部分数据结构,但 只需要部分数据元素。控制耦合:模块间传递控制信息,修改模块,将 影响到控制模块,降低模块的独立性。公共耦合:模块间使用了公共数据,如全程变量、共享通 信区、内存的公共覆盖区等,降低系统的可读性、 可修改性和可靠性。内容耦合,形式: (1)访问其它模块的内部数据;(2)不通过正常入口进入其它模块内部;(3)代码重叠;(4)模块有多个入口(多功能)282.4 结构化设计n 模块的内聚性:29软件设计原理n 偶然内聚n 逻辑内聚n 时间内聚n 过程内聚n 通信内

16、聚n 顺序内聚n 功能内聚偶然内聚存入打印结果引用同一个数据数据修改删除产生同一个输出通信内聚构造 矩阵矩阵矩阵顺序内聚功能内聚矩阵 转置输出 矩阵低高低内聚中内聚高内聚n 模块的内聚性:302.4 结构化设计 软件设计原则:n 模块分解的启发式规则:n 提高模块独立性n 模块规模适中n 模块的扇入、扇出适当“腰鼓”形:顶层扇出大、中间扇出较小、底层扇入大n 作用域保持在控制域中 作用域:受模块内一个判定影响的模块的集合 控制域:模块本身及其直接或间接下属模块的集合312.4 结构化设计(a)作用域在控制域外topXYABCD (b)判定的层次太高topXYABDC(c)有一个不必要的穿越topXYABCDtopXYABCD (d)作用域等于控制域 322

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

当前位置:首页 > 高等教育 > 大学课件

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