04软件设计工程知识分享.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计工程;内容摘要; 正如任何工程项目一样,在生产之前要做设计,软件编码前,也必须先进行软件设计。 软件设计是软件开发的关键步骤,直接影响软件质量。 软件需求分析解决“做什么”的问题,软件设计过程则解决“怎么做”的问题 ;设计任务:使用一种设计方法,将分析阶段获得的需求说明的软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息传送给设计阶段,完成系统的数据/类设计、体系结构设计、接口设计、部件级设计 最后得到软件设计说明书。;软件设计的目标就是构造一个高内聚低耦合的软件设计模型。提高可靠性;提高可维护性;提高可理解性;提高效率。 衡量该目标的准则: 1、软件实体有明显的层次结构,利于软件元素间控制。 2、软件实体应该是模块化的,模块具有独立功能。 3、软件实体与环境的界面清晰。 4、设计规格说明清晰、简洁、完整和无二义性。;3.软件设计的过程;一、选取合理的系统体系结构;一、选取合理的系统体系结构;二、 推荐最佳方案、技术选型;四、确定系统的数据结构、算法 数据结构的建立对于信息系统而言尤为重要。要确定数据的类型,组织、存取方式,相关程度及处理方式等。;抽象化与逐步求精 模块化准则 信息隐蔽准则 模块独立性准则 ;抽象,是在软件设计的规模逐渐增大的情况下,控制复杂性的基本策略。 抽象的过程是从特殊到一般的过程,上层概念是下层概念的抽象,下层概念是上层概念的精化和细化。 软件工程过程的每一步都是对较高一级抽象的解作一次具体化的描述 ;模块(Module)是程序对象有名字的集合。又称“构件”,一般指用一个名字可调用的一段程序。例如,过程、函数、子程序、宏等,是构成软件系统结构的基本元素。 它一般具有如下三个基本属性: ⑴功能 即指该模块实现什么功能,做什么事情。必须注意,这里所说的模块功能,应是该模块本身的功能加上它所调用的所有子模块的功能。 ⑵逻辑 即描述模块内部怎么做。 ⑶状态 即该模块使用时的环境和条件。; 模块化:所谓模块化就是将系统划分成若干模块,每个模块完成一个子功能???把这些模块集中起来组成一个整体,以满足所要求的整个系统的功能。 模块化的目的是将系统“分而治之”,模块化能够降低问题的复杂性,使软件结构清晰,易阅读、易理解,易于测试和调试,因而也有助于提高软件的可靠性。;模块化降低软件复杂度的简单证明;三、信息隐蔽准则;   该原则有利于提高模块的内聚性。由于一个软件系统在整个软件生存期内要经过多次修改,在划分模块时要采取措施,使得大多数过程和数据对软件的其他部分是隐蔽的。这样,在将来修改软件时,可将偶然引入错误所造成的影响限制在一个局部范围之内,不致波及到软件的其他部分。;四、模块独立性准则;耦合性(Coupling);模块间耦合的类型:;(1) 无直接耦合;(2) 数据耦合;(3) 标记耦合(复合型耦合);标记耦合举例;将标记耦合修改为数据耦合举例;(4) 控制耦合(Control Coupling);控制耦合举例; 控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖 (1)将被调用模块内的判定上移到调用模块中进行 (2)被调用模块分解成若干单一功能模块;改控制耦合为数据耦合举例;(5) 外部耦合;(6) 公共耦合(公共数据区耦合);公共耦合举例;(1)软件可理解性降低 (2)诊断错误困难 (3)软件可维护性差, (4)软件可靠性差 (公共数据区及全程变量无保护措施) 慎用公共数据区和全程变量!!!;(7) 内容耦合;如何降低模块间耦合度:;内聚性(cohesion);低;  模块T中的三条语句毫无关系,A、B、C、D都不在文件CARD FILE 中。模块P、Q、R分别与三条语句有关。;  将几个逻辑上相似的功能放在一个模块中,调用时由调用模块传递的参数确定执行的功能。由于要进行控制参数的传递,必然要影响模块的内聚性。   如图所示由调用模块传递的参数,经过判定后,才能确定是进行读还是进行写操作。;逻辑内聚模块;将需要同时执行的成分放在一个模块中,因为模块中的各功能与时间有关,因此又称为时间内聚或经典内聚。 例如: 初始化系统模块、 系统结束模块、 紧急故障处理模块等均是时间性聚合模块. 这类模块内部结构较简单,一般较少判定,因此比逻辑内聚强,但是由于将多个功能放在一起,给修改和维护造成困难。 ;模块中某个成分的输出是另一成分的输入。由于这类模块无论数据还是执行顺序,模块中的一部分依赖于另外一部分。因此具有较好的内聚性。;顺序型(过程内聚)模块;  模块中的成分引用共同的输入数据,或者产生相同的输出数据,则称为是通信内聚模块。   通信型模块比瞬时型模块的内聚性强,因为模块中包

文档评论(0)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档