软件工程软件设计.ppt
《软件工程软件设计.ppt》由会员分享,可在线阅读,更多相关《软件工程软件设计.ppt(89页珍藏版)》请在第壹文秘上搜索。
1、软件工程软件工程第三章 软件设计第1页,共89页。软件设计概述 内容软件设计是一个描述、组织、构造系统部件的过程,是确定软件“怎么做”的过程。这个过程分为两个层次:概要设计和详细设计。软件设计的输入是需求规格说明书,输出是概要设计说明书和详细设计说明书第2页,共89页。总体设计(概要设计) 从全局的高度,确定系统的总体实现方案和整体框架 它要覆盖需求规格说明书的全部内容,同时作为指导详细设计的依据详细设计 确定应该怎样具体地实现各个软件元素,得到对目标系统的精确描述 要覆盖总体设计的全部内容,同时作为指导程序设计的依据第3页,共89页。 总体设计的具体任务制定规范 系统命名规范,模块命名规范,
2、构件命名规范,变量命名规范,以及数据库中的表名、字段名、索引名、试图名、存储过程名、触发器名等总体结构设计总体结构设计 系统体系结构的设计 通常采用软件结构图的横向表示功能分解 ,纵向表示功能的层次调用第4页,共89页。处理方式设计数据设计数据设计 数据结构设计 文件设计 数据库设计质量设计文档设计第5页,共89页。评审总体设计 可回溯性 接口定义是否清晰 检查模块的内聚力 风险性 实用性 质量属性 各种选择方案 限制 其他问题第6页,共89页。 总体设计的过程设想供选择的方案 根据需求分析阶段的数据流程图中处理逻辑关系,归并形成子系统 不同的子系统组合产生不同的系统实现方案 材料要求:系统流
3、程图、组成系统的元素清单、成本/效益分析、实现这个方案的进度计划推荐最佳方案功能分解 将复杂功能分解成简单功能,使之对应成一个模块只完成一个适当功能,便于实现第7页,共89页。设计软件结构 采用层次图或结构图描述模块之 间调用的关系数据设计 包括数据结构设计、文件设计和数据库设计制定测试计划 针对软件结构的测试和集成测试书写文档 总体设计规格说明书 用户手册 测试计划 详细的实现计划第8页,共89页。系统体系结构需求描述软件描述体系结构设计系统体系结构抽象描述接口设计组件设计数据结构设计算法设计组件描述数据结构描述算法描述设计活动设计产品设计过程的一般模型第9页,共89页。 设计原则原则一,多
4、样化设计原则二,设计对于分析模型应该是可跟踪的原则三,设计不应该从头做起原则四,软件设计应该尽可能缩短软件和现实世界的距离原则五,设计应该表现出一致性和规范性原则六,设计的易修改性原则七,容错性设计原则八,设计的粒度要适当原则九,在设计时就开始评估软件的质量原则十,要复审设计,减少设计引入的错误第10页,共89页。 影响软件设计的因素共同设计用户界面文化问题并发性第11页,共89页。软件设计的概念 模块一个软件系统根据其功能分解成许多较小的程序单元 模块的基本属性功能 - 模块要完成的任务逻辑 描述模块为了完成任务,模块内部怎么做状态 使用该模块时的环境和条件第12页,共89页。 模块化定义
5、即把程序划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。模块规模的确定标准 模块应该是高内聚的 模块应该是松散耦合的第13页,共89页。模块数量成本或工作量M总成本联接成本模块开发成本第14页,共89页。 模块独立性“模块独立”是模块化、抽象、逐步求精和信息隐藏等概念的直接结果,也是完成有效的模块设计的基本标准。模块独立性原则的两个定性标准度量 耦合 - 衡量模块之间彼此依赖的紧密程度 内聚 - 衡量一个模块内部各个元素彼此结合的紧密程度第15页,共89页。耦合 模块间相互关联的程度关联程度的决定因素 一个模块对另一个模块的访问 模块间传递的数据量 一个模块传递
6、给另一个模块的控制信息 模块间接口的复杂程度第16页,共89页。耦合的分类 内容耦合 - 一个模块直接参考另一个模块的内容 例子 结论 - 坚决避免使用内容耦合 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);con=DriverManager.getConnection(jdbc:odbc:test);stmt=con.createStatement();rs=stmt.executeQuery(select areano, areafangxiang,areasell ,endtime from landInformation); while(rs.
7、next() 第17页,共89页。 公共耦合 - 多个模块都访问同一个公共数据环境 分类 松散公共耦合 :一个模块只是往公共数据环境里传送数据,而另一个模块只是从公共数据环境中取数据 紧密公共耦合:两个模块都向公共数据环境中送数据,同时也都从公共数据环境中取数据 例子 动态并发程序的执行 结论 - 限制使用公共耦合第18页,共89页。 外部耦合 两个模块都访问同一个全局简单公共变量,而不是同一全局数据结构,且不是通过参数表传递该全局变量的信息 例子 结论:限制使用外部耦合while (gloable T=0) if x25 then ModuleA(); else ModuleB();第19页
8、,共89页。 控制耦合 模块A向模块B传递一个控制信息 例子 把一个数组名作为参数传递给另一个模块时,就形成了参数以传址的形式进行传递,降低模块的独立性。 结论:少用控制耦合第20页,共89页。 数据结构耦合 一个模块调用另一个模块时传递了整个数据结构 数据耦合 两个模块之间传递的是数据项 结论:尽量使用数据耦合。第21页,共89页。 非直接耦合 两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现 例子 If (x) then modelA else modelB 结论:独立性最强的耦合第22页,共89页。内容耦合公共耦合外部耦合控制耦合数据结构耦合数据耦合非直接耦合高低
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件设计
