《软件工程原理》讲义.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

软件工程原理第三章 软件设计;3.1 软件设计的概念;体系结构设计定义软件系统各主要成份之间的关系。

接口设计根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。

过程设计则是把结构成份转换成软件的过程性描述。;将分析模型转换为设计;从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。

概要设计

?将软件需求转化为软件体系结构

?确定系统级接口

?全局数据结构或数据库模式。

详细设计

?确立每个模块的实现算法和局部数据结构

?用适当方法表示算法和数据结构的细节;软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构。;软件设计既是过程又是模型。

设计过程是一系列的迭代步骤,使设计人员能够描述目标系统的各个侧面。

设计模型首先描述目标系统的整体架构,然后逐步细化架构得到构造每个细节的指导原则,从而得到系统的一系列不同的视图。

良好的设计原则可为设计过程导航。

衡量设计过程的技术原则:

①设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。;①对于开发者和未来的维护者而言,设计必须是可读的、可理解的,使得将来易于编程、易于测试、易于维护。

②设计应该给出软件的全貌,包括从实现角度可看到的数据、功能、行为。;③设计应当包含数据、体系结构、接口和构件(模块)的清晰的视图。

④设计应当根据将要实现的对象和数据模式导出合适的数据结构。

⑤设计应当建立具有独立功能特征的构件。

⑥设计应当建立能够降低模块与外部环境之间复杂连接的接口。

⑦设计模型应当通过使用软件需求信息所驱动的可重复的方法导出。

Davis的软件设计原则

①设计应具有可跟踪性,能回溯到软件需求;;②设计不必每次都从头做起,可以复用已有的设计模式和数据模式。

③设计应当缩小软件与现实世界中问题的“智力距离”,尽量逼近问题领域的结构;;⑦设计应具有容错性和异常处理能力。对于异常数据、事件、操作条件等能够平滑处理。;过程抽象是指在软件设计中将处???过程的实现现细节隐藏在数据抽象中,可以直接通过模块接口使用这些处理操作。

数据抽象是指采用抽象数据类型表示数据,实实现数据封装,使得使用者可通过接口使用数据而不必关心数据结构的实现。;4) 设计应当遵循模块化的原则。

? 每个模块可独立地开发、测试,最后组装成完整的程序。;c) 模块可理解性一个模块可不参考其他模块而被理解;;每个模块的实现细节对于其它模块是隐蔽的,将来修改软件时偶然引入错误所造成的影响就可以局限在一个或几个模块内部,不致波及到软件的其它部分。

在可预见将来可能修改的场合,信息隐蔽可以提高软件的可修改性、可测试性和可移植性。;3.2功能独立性;非直接耦合;非直接耦合(NondirectCoupling);数据耦合(Data Coupling);标记耦合(StampCoupling);控制耦合(Control Coupling);外部耦合(External Coupling);公共耦合的复杂程度随耦合模块的个数增加而显显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密密公共耦合。;如果发生下列情形,模块之间就是内容耦合:

一个模块直接访问另一个模块的内部数据;

一个模块不通过正常入口转到另一模块内部

;

两个模块有一部分程序代码重迭(只可能出现在汇编语言中);

一个模块有多个入口。;c;模块内聚;一个模块中各个部分都是完成某一具体功能必不不可少的组成部分,或者说该模块中所有部分都都是为了完成一项具体功能而协同工作,紧密联联系,不可分割的。则称该模块为功能内聚

模块。

功能内聚模块的功能独立性最强。;这种模块完成多个功能,各个功能相互独立但都都在同一数据结构上操作,每一项功能有一个唯唯一的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。

由于这个模块的所有功能都是基于同一个数据结结构(符号表),因此,它是一个信息内聚的模模块。

信息内聚模块可以看成是多个功能内聚模块的组组合,并且达到信息的隐蔽。;;如果一个模块内各功能部分都使用了相同的输入入数据,或产生了相同的输出数据,则称之为通通信内聚模块。通常,通信内聚模块是通过

数据流图来定义的。

模块内各个功能是紧密相连的。;;使用流程图做为工具设计程序时,如果流程图太太大,可以把流程图中的某一部分划出组成模块块,就得到过程内聚模块。

例如,把流程图中的循环部分、判定部分、计算算部分分成三个模块,这三个模块都是过程内聚聚模块。;时间内聚又称为经典内聚。这种模块大多为多功功能模块,但模块的各个功能的执行与时间有关关,通常要求所有功能必须在同一时间段内执行。

例如,初始化模块和终止模块就是时间内聚模块。;这种模

文档评论(0)

151****1902 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档