软件工程软件设计幻灯片.ppt
《软件工程软件设计幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件工程软件设计幻灯片.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件设计第1页,共89页,编辑于2022年,星期三软件设计概述内容软件设计是一个描述、组织、构造系统部件的过程,是确定软件“怎么做”的过程。这个过程分为两个层次:概要设计和详细设计。软件设计的输入是需求规格说明书,输出是概要设计说明书和详细设计说明书第2页,共89页,编辑于2022年,星期三总体设计(概要设计)从全局的高度,确定系统的总体实现方案和整体框架它要覆盖需求规格说明书的全部内容,同时作为指导详细设计的依据详细设计确定应该怎样具体地实现各个软件元素,得到对目标系统的精确描述要覆盖总体设计的全部内容,同时作为指导程序设计的依据第3页,共89页,编辑于2022年,星期三总体设计的具
2、体任务制定规范系统命名规范,模块命名规范,构件命名规范,变量命名规范,以及数据库中的表名、字段名、索引名、试图名、存储过程名、触发器名等总体结构设计总体结构设计系统体系结构的设计通常采用软件结构图的横向表示功能分解,纵向表示功能的层次调用第4页,共89页,编辑于2022年,星期三处理方式设计数据设计数据设计数据结构设计文件设计数据库设计质量设计文档设计第5页,共89页,编辑于2022年,星期三评审总体设计可回溯性接口定义是否清晰检查模块的内聚力风险性实用性质量属性各种选择方案限制其他问题第6页,共89页,编辑于2022年,星期三总体设计的过程设想供选择的方案根据需求分析阶段的数据流程图中处理逻
3、辑关系,归并形成子系统不同的子系统组合产生不同的系统实现方案材料要求:系统流程图、组成系统的元素清单、成本/效益分析、实现这个方案的进度计划推荐最佳方案功能分解将复杂功能分解成简单功能,使之对应成一个模块只完成一个适当功能,便于实现第7页,共89页,编辑于2022年,星期三设计软件结构采用层次图或结构图描述模块之 间调用的关系数据设计包括数据结构设计、文件设计和数据库设计制定测试计划针对软件结构的测试和集成测试书写文档总体设计规格说明书用户手册测试计划详细的实现计划第8页,共89页,编辑于2022年,星期三设计过程的一般模型第9页,共89页,编辑于2022年,星期三设计原则原则一,多样化设计原
4、则二,设计对于分析模型应该是可跟踪的原则三,设计不应该从头做起原则四,软件设计应该尽可能缩短软件和现实世界的距离原则五,设计应该表现出一致性和规范性原则六,设计的易修改性原则七,容错性设计原则八,设计的粒度要适当原则九,在设计时就开始评估软件的质量原则十,要复审设计,减少设计引入的错误第10页,共89页,编辑于2022年,星期三影响软件设计的因素共同设计用户界面文化问题并发性第11页,共89页,编辑于2022年,星期三软件设计的概念模块一个软件系统根据其功能分解成许多较小的程序单元模块的基本属性功能-模块要完成的任务逻辑 描述模块为了完成任务,模块内部怎么做状态 使用该模块时的环境和条件第12
5、页,共89页,编辑于2022年,星期三模块化定义即把程序划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。模块规模的确定标准模块应该是高内聚的模块应该是松散耦合的第13页,共89页,编辑于2022年,星期三第14页,共89页,编辑于2022年,星期三模块独立性“模块独立”是模块化、抽象、逐步求精和信息隐藏等概念的直接结果,也是完成有效的模块设计的基本标准。模块独立性原则的两个定性标准度量耦合-衡量模块之间彼此依赖的紧密程度内聚-衡量一个模块内部各个元素彼此结合的紧密程度第15页,共89页,编辑于2022年,星期三耦合 模块间相互关联的程度关联程度的决定因素一个模块
6、对另一个模块的访问模块间传递的数据量一个模块传递给另一个模块的控制信息模块间接口的复杂程度第16页,共89页,编辑于2022年,星期三耦合的分类内容耦合-一个模块直接参考另一个模块的内容例子结论-坚决避免使用内容耦合 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);con=DriverManager.getConnection(jdbc:odbc:test);stmt=con.createStatement();rs=stmt.executeQuery(select areano,areafangxiang,areasell,endtime from l
7、andInformation);while(rs.next()第17页,共89页,编辑于2022年,星期三公共耦合-多个模块都访问同一个公共数据环境分类松散公共耦合:一个模块只是往公共数据环境里传送数据,而另一个模块只是从公共数据环境中取数据紧密公共耦合:两个模块都向公共数据环境中送数据,同时也都从公共数据环境中取数据例子动态并发程序的执行结论-限制使用公共耦合第18页,共89页,编辑于2022年,星期三外部耦合 两个模块都访问同一个全局简单公共变量,而不是同一全局数据结构,且不是通过参数表传递该全局变量的信息例子结论:限制使用外部耦合while(gloable T=0)if x25 then
8、 ModuleA();else ModuleB();第19页,共89页,编辑于2022年,星期三控制耦合 模块A向模块B传递一个控制信息例子把一个数组名作为参数传递给另一个模块时,就形成了参数以传址的形式进行传递,降低模块的独立性。结论:少用控制耦合第20页,共89页,编辑于2022年,星期三数据结构耦合 一个模块调用另一个模块时传递了整个数据结构数据耦合 两个模块之间传递的是数据项结论:尽量使用数据耦合。第21页,共89页,编辑于2022年,星期三非直接耦合 两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现例子If(x)then modelAelse modelB结论
9、:独立性最强的耦合第22页,共89页,编辑于2022年,星期三内容耦合公共耦合外部耦合控制耦合数据结构耦合数据耦合非直接耦合高低弱强模块耦合性模块独立性第23页,共89页,编辑于2022年,星期三耦合的类型第24页,共89页,编辑于2022年,星期三如何降低模块间的耦合根据系统的特点,选择恰当的耦合类型降低模块接口的复杂性把模块之间的通信信息放在缓冲区中软件设计的目标是降低模块间的耦合程度,设计时遵循的原则:尽量使用数据耦合,少用控制耦合,限制使用公共耦合,坚决不用内容耦合。第25页,共89页,编辑于2022年,星期三 内聚巧合内聚 一个模块执行多个完全互不相关的动作例子为了节省空间,将多个模
10、块中重复出现的语句提取出来,组成一个新的模块程度:低内聚第26页,共89页,编辑于2022年,星期三逻辑内聚 一个模块执行一系列相关动作例子程序执行的逻辑类似,并共用一部分代码,接口参数为了区分执行过程而显得非常复杂。程度:低内聚第27页,共89页,编辑于2022年,星期三时间内聚 一个模块内部的多个任务是与时间有关例子 :程序的初始化过程程度:低内聚 public void init(ServletConfig config)throws ServletException moni_num_in=0;moni_num_end=0;rBundle=ResourceBundle.getBundl
11、e(immserver.servletConfig);transportType=rBundle.getString(TRANSPORT_TYPE);第28页,共89页,编辑于2022年,星期三过程内聚 模块执行的若干动作之间有顺序关系例子验证用户登录信息If 合法 提取用户个性化信息Else 拒绝登录程度:中等程度内聚第29页,共89页,编辑于2022年,星期三通信内聚 模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。例子读取文件记录重新计算文件记录将文件记录进行输出程度:中等程度内聚第30页,共89页,编辑于2022年,星期三信息内聚 一个模块中执行一系列动作,每个动作
12、都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上。例子程度:高内聚第31页,共89页,编辑于2022年,星期三功能内聚 一个模块中各个部分都是完成某一具体功能必不可少的组成部分。例子成功标志 用户身份验证(用户名,用户密码)验证过程;return 成功标志;程度:高内聚第32页,共89页,编辑于2022年,星期三巧合内聚逻辑内聚时间内聚过程内聚通信内聚信息内聚功能内聚低高弱强模块内聚性模块独立性第33页,共89页,编辑于2022年,星期三练习 1软件设计中划分模块的一个准则是 A。两个模块之间的耦合方式中,B 耦合的耦合程度最高,C 耦合的耦合度最低。一个模块内部的内聚种类中 D
13、 内聚的内聚程度最高,E 内聚的内聚度最低。A:低内聚低耦合 低内聚高耦合 高内聚低耦合 高内聚高耦合B:数据 非直接 控制 内容C:数据 非直接 控制 内容D:偶然 逻辑 功能 过程E:偶然 逻辑 功能 过程 第34页,共89页,编辑于2022年,星期三练习2软件设计中划分程序模块通常遵循的原则是要使各模块间的耦合性尽可能 A 。三种可能的模块耦合是 B 。例如,一个模块直接引用另一模块中的数据。C 。例如,一个模块把开关量作为参数传递给另一模块。D 。例如,一个模块把一个数值量作为参数传递给另一模块。其中 E 的耦合性最强。A:强 适中 弱 BE:公共耦合 数据耦合 逻辑耦合 外部耦合 内
14、容耦合 控制耦合 第35页,共89页,编辑于2022年,星期三练习3模块内聚度用于衡量模块内部各成分之间彼此结合的紧密程度1、一组语句在程序的多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是 A 的。2、将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是 B 的。3、模块中所有成分引用共同的数据,该模块的内聚度是 C 的。4、模块中所有成分结合起来完成一项任务,该模块的内聚度是 D 的。AE:功能性 逻辑性 通信性 过程性 偶然性 瞬时性第36页,共89页,编辑于2022年,星期三抽象定义抽出事务的本质特性而暂时不考虑它们的细节。Wasserman提出的几种抽象方法功能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件设计 幻灯片
限制150内