八文_文档搜索
 
设为首页   |  加入收藏夹
 八文网 - 汇聚八方文档 - 做最优秀的免费文档下载网站
 

软件设计

文档类型: Microsoft PowerPoint PPT 演示文稿 文档大小:216KB
第四章软件设计
主要内容:
▲软件设计的目标和任务
▲软件设计基础
▲模块的独立性
▲结构化设计方法
▲数据设计及文件设计
▲过程设计讨论要点(1)如何将分析模型转换为软件设计(2)作为软件工程师在软件设计方面应使用哪些基本原则和概念§4.1 软件设计的目标和目的
软件需求:解决做什么
软件设计:解决怎么做
4.1.1 软件设计的任务问题结构(软件需求) 软件结构从软件需求规格说明书出发,形成软件的具体设计方案.映射将分析模型转换为软件设计数据字典流图E-R图状态变迁图加工规约控制规约数据对描述象数据设计体系结构设计接口设计过程设计分析模型设计模型
1.软件的总体结构主要回答的问题软件的组成部分软件的层次关系模块的内部处理逻辑模块之间的界面
2. 软件设计的问题工具如何描述软件的总体结构方法用什么方法有问题结构导出软件结构评估准则什么样的软件结构是最优的
3. 软件设计方法结构化设计方法(SD)面向数据结构的设计方法(JSD方法)面向对象的设计方法(OOD)
4. 软件设计分为两个阶段:
(1)概要设计(总体设计)确定软件的结构以及各组成成分(子系统或模块)之间的相互关系.
(2)详细设计确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档.
§4.1 软件设计的原则
Davis提出的软件设计原则:
The design process should not suffer from tunnel vision.
The design should be traceable to the analysis model.
The design should not reinvent the wheel.
The design should minimize the intellectual the software and the problem at it exists in the real world.
The design should exhibit uniformity and integration.
The design should be structured to accommodate change.
The design should be structured to degrade gentle,even when aberrant data,evens,or operating conditions are encountered.
Design is not coding,coding is not design.
The design should be assessed for quality as it is being created,not after the fact.
The design should be reviewed to minimize
§4.2 软件设计的概念和原理
1.软件结构
2.软件过程
5.信息隐蔽
6.信息局部化
4.2.1 软件体系结构
软件体系结构包括两部分:
(1)过程构件(模块)的层次结构(2)数据构件控制结构(程序结构)控制结构是软件模块间关系的表示
控制结构图示:
1. 控制结构的层次规则只有一个顶层(0层)模块0层外任一模块都会在它的邻层存在一模块与它有关同层模块间不发生联系
2. 软件结构度量术语深度宽度扇出扇入(模块的层数)
(同一层最大模块数)
(一个模块直接调用的模块数)
(调用一个给定模块的模块个数)
4.2.2 软件过程软件过程用以描述各模块的处理细节(算法的详细描述),包括对下层模块控制的操作细节.
4.2.3 模块化(Modularity)模块化是好的软件设计的一个基本准则高层模块0 从整体上把握问题,隐蔽细节复杂问题较小问题分解可减小解题所需的总的工作
例:将问题(P1P2)分解为P1,P2设函数C(x)定义问题x 的复杂程度函数E(x)确定解决问题x 需要的工作量
对问题P1和P2,如:
显然: E(P1) > E(P2)
有规律:C(P1P2) > C(P1)C(P2)各个击破理论模块化和软件成本成本或工作量模块数量软件总成本集成成本成本模块M最小成本区域
4.2.4 抽象(Abstraction)抽象原则应用举例Windows NT一体化的IO系统设计文件管理网络管理设备管理高速缓冲存储器OS对虚拟文件的字节流、虚拟文件可为任何设备和实体抽象
4.2.5 信息隐蔽(Information Hiding)
模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息.
软件质量因素:可维护性可靠性可理解性效率
信息隐蔽的目的:提高模块的独立性,减少修改或维护时的影响面.
4.2.6 信息局部化把关系密切的软件元素物理地放得彼此靠近.
优点:可维护性好可靠性好可理解性好§4.3 模块的独立性
4.3.1 模块独立性的概念
模块独立的含义:模块完成独立的功能符合信息隐蔽和信息局部化原则模块间关连和依赖程度尽量小
4.3.2 模块独立性的度量模块独立性取决于模块的内部和外部特征.
SD方法提出的定性的度量标准:模块之间的耦合性模块自身的内聚性用三个封装级别表示的软件结构原始代码行0级程序模型(子程序或过程)1级2级类对象结构结构设计(或1级)标准,用以管理每一对封装级别的元素之间的相互关系内聚结构化设计0级结构体(代码行)1级结构体(程序)
TO:
FROM:输出端耦合性内聚是指度量一个给定的程序内的多行代码的单一功能性,以确定是否达到该程序所要实现的目的.
耦合性用来度量程序之间联系的次数和强度
上表的扩展:包括2级封装(所有的类)2级结构体(类)类的耦合类的内聚类的内聚是模仿了一个程序的内聚.类的耦合性是一种度量类之间联系的次数和强度的方法.
1.模块独立性的度量之一:耦合性模块间相对独立性(相互依赖程度)的度量耦合性越高,模块独立性越弱无耦合-没有依赖关系松散耦合-有少量依赖关系紧密耦合-有很多依赖关系
耦合强度依赖的因素:一模块对另一模块的引用一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量模块间接口的复杂程度模块间耦合的类型低无直接耦合耦数据耦合合标记耦合性控制耦合外部耦合公共耦合高内容耦合模块独立性弱(低耦合)强(中耦合)
(较强耦合)
(强耦合)
(1) 无直接耦合两个模块没有直接关系(模块1和模块2),模块独立性最强.模块1模块2模块3模块4(2) 数据耦合一模块调用另一模块时,被调用模块的输入,输出都是简单的数据(若干参数).
属松散耦合.数据耦合举例计算水费单价数量金额(3) 标记耦合(特征耦合)如两个模块通过传递数据结构(不是简单数据,而是记录,数组等)加以联系,或都与一个数据结构有关系, 则称这两个模块间存在标记偶合.标记耦合举例计算水电费计算电费住户情况水费电费住户情况是一个数据结构,图中模块都与此数据结构有关.计算水费和计算电费本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合.将标记耦合修改为数据耦合举例本月用水量用电量(4) 控制耦合一模块向下属模块传递的信息(开关量,标志等控制被调用模块决策的变量) 控制了被调用模块的内部逻辑.
控制耦合举例A计算平均分或最高分B平均最高(控制信号)成绩读入分数输出结果计算最高分控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖
去除模块间控制耦合的方法:
(1)将被调用模块内的判定上移到调用模块中进行(2)被调用模块分解成若干单一功能模块改控制耦合为数据耦合举例平均成绩最高成绩(5) 外部耦合一组模块均与同一外部环境关联(例如,IO模块与特定的设备,格式和通信协议相关联)、它们之间便存在外部耦合.外部偶合必不可少,但这种模块数目应尽量少.
(6) 公共耦合(公共数据区耦合)一组模块引用同一个公用数据区(也称全局数据区、公共数据环境).
公共数据区指:全局数据结构共享通讯区内存公共覆盖区等公共耦合举例公共数据区C模块A,B,C间存在错综复杂的联系
公共耦合存在的问题:
(1)软件可理解性降低(2)诊断错误困难(3)软件可维护性差,(4)软件可靠性差(公共数据区及全程变量无保护措施)慎用公共数据区和全程变量!
(7) 内容耦合一模块直接访问另一模块的内部信息(程序代码或数据)最不好的耦合形式!模块代码重叠Entry1多入口模块模块化设计的原则和目标耦合是影响软件复杂程度和设计质量的重要因素
目标:建立模块间耦合度尽可能松散的系统
如何降低模块间耦合度:
(1) 尽量使用数据耦合少用控制耦合限制公共耦合的范围坚决避免使用内容耦合(2) 降低接口的复杂性
2. 模块独立性的度量之二:内聚性一个模块内部元素在功能上相互关联的强度
设计目标:高内聚(模块在软件过程中完成单一的任务)模块的内聚性类型低偶然内聚0分逻辑内聚1分内时间内聚3分聚过程内聚5分性通信内聚7分信息内聚9分高功能内聚10分弱(功能分散)强(功能单一)低内聚模块举例为工程分析包执行错误处理的模块,当计算的数据超出预定义的边界时调用该模块,它完成下列任务:
(1)根据初始计算的数据计算补充数据;
(2)在用户的工作站上生成错误报告;
(3)执行用户要求的跟踪计算;
(4)更新数据库;
(5)使选择后续处理的菜单有效.虽然上述任务是松散相关的,但每一项都是独立的功能实体,最好作为独立的模块完成.
(1)偶然内聚(巧合内聚)模块内各部分间无联系MOVEOTO RREAD FILE FMOVESTO T模块M中的三个语句没有任何联系
缺点:可理解性差, 可修改性差
例:(2) 逻辑内聚把几种相关功能(逻辑上相似的功能)组合在一模块内、每次调用由传给模块的参数确定执行哪种功能.
逻辑内聚模块EFGEFGEFG模块内部逻辑E,F,G逻辑功能相似,组成新模块EFG
缺点:增强了耦合程度(控制耦合)不易修改、效率低公用代码段(3) 时间内聚(经典内聚)模块完成的功能必须在同一时间内执行、这些功能只因时间因素关联在一起.
例如:初始化系统模块,系统结束模块,紧急故障处理模块等均是时间性聚合模块.
(4) 过程内聚(顺序性组合)模块内各处理成分相关,且必须以特定次序执行过程内聚模块读入成绩单审查统计打印读入并审查成绩单统计并打印成绩单(5) 通信内聚模块内各部分使用相同的输入数据,或产生相同的输出结果通信内聚模块例产生工资报表计算平均工资职工工资记录职工工资报表平均工资产生职工工资报表并计算平均工资模块(6) 信息内聚模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口.信息内聚模块符号表查找登录删除修改几个加工同时引用一个共同的数据(7) 功能内聚模块仅包括为完成某个功能所必须的所有成分.
(模块所有成分共同完成一个功能,缺一不可)内聚性最强内聚与耦合密切相关,同其它模块强耦合的模块意味者弱内聚,强内聚模块意味着与其它模块间松散耦合.
设计目标:力争强内聚,弱耦合
3.耦合,内聚与模块独立性关系耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度.但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量.
ppt文档的标签: 设计 软件
更多推荐标签: 百度关系案例   国外市场   毛邓三选择题   经济学流派   到货通知函   动漫节展   烘房设计   论文导师评语   探侦青猫   产品宣传信函   续费合同   货币政策分析   锅炉课件   路牌广告   商业广告排版   内护大纲   工伤医疗费用   造价咨询   数据库优   广告创意测试   工会简讯   中介理论   林小宁   人才资源统计   活动计划模板   服装订单合同   财务分析研究   托收书   俄语课件   什么是贮备液  
相关文档推荐
东忠杯应用软件程序设计大赛
西安理工大学大学生软件设计大赛
!"#$%"&
软件设计大赛竞赛规则
毕业设计(软件类)评阅意见书
2002级软件工程课程设计命题
宁波市高校大学生软件设计大赛章程
教育软件的设计与开发
软件系统设计
软件工程课程设计指导书
波导杯全国手机软件设计大赛章程
软件详细设计说明书
西安大学生软件设计大赛
企业勘察设计管理信息系统软件购置单
西安大学生软件设计大赛工作文件一
企业勘察设计管理信息系统软件升级
软件设计
软件设计方法
应用软件工程方法分析设计一个病人观察系统
毕业设计(软件类)复查意见书
推荐文档下载
前列地尔注射液靶向制剂项目商业计划书
裕兴电脑科技控股有限公司
中国互联网络热点调查报告
学与教的心理学教学大纲
总号第1490号
高等教育自学考试环境艺术设计(专科)
台北市私立乔治高职九十四学年度爱国歌曲比
习题精选
期货分析法
来电显示模式
GPS-5Continuously
浙江万里学院教师参与学生素质拓展计划
母婴保健法
第六届工博会教育系统组织参展
浙江省实施中华人民共和国道路交通安全法办
衢州学院(筹)现代教育技术中心
中国红十字会项目建议书的样式(试行)
中央电大开放教育试点小学教育专业(本科)
因为逾期交房
攻读博士学位研究生开题报告审核表院
 
文档下载提示:
·最新免费文档下载、毕业论文免费下载、Word文档下载、Excel表格下载、PDF电子书下载、PowerPoint提案下载
·所有文档均为网友上传,仅供学习参考,用作其它用途时请征得相关权益人许可.
·八文网只提供文档共享平台,不对文档内容的正确性及相关内容所引发的后果负责.
·如此文档"软件设计"涉及您的权益,请附上网址来信告知web_8wen(#)126.com,本站将认真配合并改正。
Copyright ©2005-2008 八文网-  8Wen.com . All rights reserved.