软件工程课件5.pptVIP

  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文档。上传文档
查看更多
软件工程课件5.ppt

广东工业大学计算机学院 软件工程 Software Engineering 第5章 总体设计 本章内容: 5.1 软件设计的重要性 5.2 设计过程 5.3 软件总体设计 5.4 设计基本原理 5.5 体系结构设计 5.6 结构化设计 5.7 软件结构优化 5.1 软件设计的重要性 软件设计处于软件工程过程的技术核心地位。 在设计中所作的决策将最终影响软件实现的成功与否、也影响软件维护的难易程度。所以,在软件设计过程中的这些决策是开发阶段非常关键的一步。 软件设计的重要性还反映在质量(quality)上。 5.2 设计过程 软件设计是一个把需求转换为软件表达式的过程。 从软件工程的角度讲是分为总体设计和详细设计。总体设计主要是把需求转换为数据结构和软件体系结构,而详细设计主要集中在体系结构表达式的细化,从而产生详细的数据结构和软件的算法表达式。 总体设计和详细设计除了必须有先进的设计技术外,还要有同步的管理技术支持。 软件设计原则: 1)设计应当模块化(modular),也就是说,软件应被逻辑地划分为能完成特定功能和子功能的构件。 (2)设计应形成具有独立功能特征的模块(如子程序或过程)。 (3)设计应使模块之间和与外部环境之间接口的复杂性尽量地减少。 (4)设计应该有一个分层的组织结构,这样人们可对软件各个构件进行理性的控制。 (5)设计应有性质不同的可区分的数据和过程表达式。 (6)设计应利用软件需求分析中得到的信息和可重复的方法。 5.3 软件总体设计 1. 软件系统结构设计 (1)采用某种设计方法,将一个复杂的系统按功能划分成模块。 (2)确定每个模块的功能。 (3)确定模块之间的调用关系。 (4)确定模块之间的接口,即模块之间传递的信息。 (5)评价模块结构的质量。 2. 数据结构及数据库设计 1)数据结构的设计 根据需求分析阶段对系统数据的组成、操作约束和数据之间的关系的描述,确定数据结构特性。 2)数据库的设计 一般的软件系统都有数据的存储,存储要借助数据库技术。数据库的设计是指数据存储文件的设计。设计包括以下三个方面: (1)概念设计。 (2)逻辑设计。 (3)物理设计。 3. 网络系统设计 如果采用的是网络环境,则要进行网络系统的设计。要分析网络负荷与容量,遵照网络系统设计原则,确定网络系统的需求。要进行网络结构设计,选择好网络操作系统,确定网络系统配置,制定网络拓扑结构。 4. 软件总体设计文档 总体设计说明书是总体设计阶段结束时提交的技术文档。按国标GB8576–88的《计算机软件产品开发文件编制指南》规定,软件设计文档可分为“总体设计说明书”、“详细设计说明书”和“数据库设计说明书”。这些文档的内容与格式请参考有关资料。 5. 评审 在该阶段,对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性、关键的处理及内外部接口定义正确性、有效性以及各部分之间的一致性等,都一一进行评审。 5.4 设计基本原理 软件设计要回答下列问题: (1)使用什么样的准则才能把软件划分成为各个单独的构件? (2)怎样把功能或数据结构的细节从软件概念表达式中分离出来? (3)定义软件设计的技术质量有统一的准则吗? 5.4.1 抽象 抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同特性而暂不考虑它的细节,不考虑其他因素。 随着对抽象不同层次的展开,过程抽象(Procedural Abstraction)和数据抽象(Data Abstraction)就建立了。 5.4.2 细化 逐步细化是一种自顶向下的设计策略。程序的体系结构开发是由过程细节层次不断地细化而成的。分层的开发则是以逐步的方式由分解一个宏功能直到获得编程语言语句。 细化实际上是一个详细描述的过程。在高层抽象定义时,从功能说明或信息描述开始,就是说明功能或信息的概念,而不给出功能内部的工作细节或信息的内部结构。细化则是设计者在原始说明的基础上进行详细说明,随着不断的细化(详细说明)给出更多的细节。 5.4.3 模块化 模块具有以下几种基本属性: (1)接口:指模块的输入与输出。 (2)功能:指模块实现什么功能。 (3)逻辑:描述内部如何实现要求的功能及所需的数据。 (4)状态:指该模块的运行环境,即模块的调用与被调用关系。 模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。 问题复杂性与工作量关系 设问题x,表示它的复杂性函数为C(x),解决它所需的工作量函数为E(x)。对于问题P1和P2;如果: C(P1)>C(P2) 即P

文档评论(0)

wuyouwulu + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档