第8章06(软件设计基础).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文档。上传文档
查看更多
第8章06(软件设计基础).ppt

8.1 软件设计过程 设计的成果应能做到: (1)满足需求指定的功能规格说明的。 (2)符合明确或隐含的性能、资源等非功能性需求。 (3)符合明确或隐含的设计条件的限制。 (4)满足设计过程的限制(如经费、时间及工具等)。 从工程管理的角度看,软件设计分为两个阶段: (1)概要设计(总体设计) 根据需求确定软件和数据的总体框架,即确定软件的结构以及各组成成分(子系统或模块)之间的相互关系。 (2)详细设计 确定模块内部的算法和数据结构,产生描述各模块程序过程的详细文档。 8.1.3 设计软件结构 一般来说,软件开发阶段由三个基本活动组成:设计、编码和测试等。是获得高质量、低耗费、易维护软件的一个重要的环节。需求分析阶段获得的需求规格说明书包括对欲实现系统的信息、功能和行为方面的描述,这是软件设计的基础。采用任何一种软件设计方法都会产生系统的总体结构设计、系统的数据结构设计和系统的过程设计。但是不同的设计方法会产生不同的设计形式。 总体结构设计旨在确定程序各主要部件之间的关系;数据结构设计是把信息描述转换为实现软件所要求的数据结构;过程设计完成每一个部件的内部详细的过程描述,即模块的算法设计。根据设计结果可编制代码,然后交给测试人员进行测试。 显然,在开发阶段所做的决策,最终影响到软件实现的成败,同时也影响到软件维护的难易程度。在设计中所做的决策又使得软件设计成为开发阶段最重要的步骤,因为设计提供了软件的表示,使得软件的质量评价成为可能,重要的是软件的灵活性和适应性体现在软件的设计中。同时又是将用户需求准确地转化为最终软件产品的唯一途径。 软件设计也可以看作将需求规格说明书逐步转换为软件源代码的过程。从管理角度讲,软件设计可以分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架,详细设计是将其进一步精化成软件的算法表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,除了总体结构设计、数据结构设计和过程设计外,很多应用软件还存在用户界面的设计活动。 软件工程过程的每一步都是对较高抽象的解作一次具体的描述。在系统第一阶段,软件系统被描述为基于计算机的大系统的一个组成部分;在软件规划和需求阶段,软件用问题域约定的习惯用语表达;从概要设计过渡到详细设计时,抽象级别再一次降低;编码完成后则达到抽象的最低级别,在上述过程中,伴随着一连串的过程抽象和数据抽象。过程抽象把完成一个特定功能的动作序列抽象为一个过程名和参数表,以后通过指定过程名和实际参数调用此过程;数据抽象把一个数据对象的定义或者描述为一个数据类型名,用此类型名可以定义多个具有相同性质的数据对象。 例8.1 1)过程抽象 抽象层次I。用问题所处环境的术语来描述这个软件。 抽象层次II。任务需求描述。 抽象层次III。程序过程描述。 2)数据抽象 数据抽象与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节,更重要的是,可以通过定义与该数据对象的相关操作来规定数据对象。例如,在较高层次可以定义用数组处理问题,在较低层次可以具体定义该数组的维数和体积。当然它可以伴随着过程抽象的层次而抽象。 另外,定义了一个数据抽象后,需要进一步定义施加于该数据对象上的一组操作,例如,抽象数据类型。 3)逐步求精 该概念是与“抽象”密切相关的一个概念,其主要思想是,针对某个功能的宏观描述,用逐步求精的方法不断地分解,逐步确立过程细节,直至该功能可以用程序语言描述的算法实现为止。因为,求精的每一步都是用更为详细的描述替代上一层次的抽象描述,所以在整个设计过程中产生的,具有不同详细程度的各种描述,组成了系统的层次结构。层次结构的上一层是下一层的抽象,下一层是上一层的求精。 例8.1    结构图描述了系统由哪些模块组成,表示模块之间的调用关系.其中矩形代表模块,在矩形中标示模块名(即模块的功能名,用来分辨不同的模块);从一个模块到另一模块的箭头指出了在第一个模块中包含了一贯或者多个到第二个模块的调用,在箭头旁标注上所要传递的参数;标注同时还指出数据传递的方向,过程标注符号用来指明条件调用、循环调用和一次性调用。 (1)偶然内聚(巧合内聚) 把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。 逻辑内聚模块 (3)时间内聚(经典内聚) 模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。 例如:初始化系统模块、系统结束模块、紧急故障处理模块等均是时间性聚合模块. 过程内聚模块 模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口。模块中的成分需用同样的数据。 如果一个模块内的各处理成分均与同一功能相关,并且这些处理必须顺序执行。 如模块内各部分

文档评论(0)

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

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

1亿VIP精品文档

相关文档