- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 尚辅网 第4章 软件设计 内容提要 4.1 软件设计的基础知识 4.2 软件设计的基本过程 4.3 总体设计 4.4 详细设计 软件设计 在完成了软件的需求分析之后,就进入开发阶段。这一阶段又包括设计、实现(编码)和测试三个步骤。开发阶段的信息流如下图所示。软件设计是将需求分析所得出的软件“要做什么”变换为“怎么做”,即要着手软件需求的实现,并通过“软件设计说明书”反映设计的结果。 4.1 软件设计的基础知识 软件设计的基础知识 4.1.1 软件设计概述 软件设计和其他工程项目的设计一样,是开发活动的第一步。软件设计不同于程序设计,它是将软件需求变换成软件表示的过程,而程序设计则是软件设计的编码实现过程。软件设计是开发阶段的关键步骤,其做出的决策将直接影响软件实现的成败。 从技术的角度,软件设计可分为数据设计、系统结构设计和过程设计。数据设计主要完成数据结构的定义。系统结构设计主要定义软件系统各主要组成部分的关系。过程设计主要是把结构成分转换成软件的过程性描述。 软件设计的基础知识 从工程管理的角度来看,软件设计可分为总体设计和详细设计两个步骤。总体设计是将软件需求转化为数据结构和软件的系统结构。详细设计即为过程设计,就是把解法具体化。 4.1.2 软件设计的任务和原则 在设计阶段,系统设计人员和程序设计人员应该在反复理解软件需求的基础上,提出多个设计方案,分析每个设计方案能实现的功能并进行相互比较,最后确定一个设计方案,包括该软件的结构、模块的划分、功能的分配以及处理流程。对复杂系统的设计,设计阶段应分解成总体设计阶段和详细设计阶段两个步骤。在一般情况下,应完成的文档包括:总体设计说明书、详细设计说明书和测试计划初稿。 软件设计中一般应遵循以下原则: 抽象、局部化与信息隐蔽、模块化、一致性、完整性和可验证性。 软件设计的基础知识 1.模块化 (1)模块的含义 模块是数据说明、可执行语句等程序对象的集合,它可单独命名并可通过名字进行访问。 (2)模块化的依据 设函数C(x)定义为问题x的复杂程度,函数E(x)为解决问题x需要的工作量(时间),对于两个问题P1和P2,如果C(P1)C(P2)显然 E(P1)E(P2) 根据经验我们很容易有 C(P1+P2)C(P1)+C(P2)于是我们能够得到 E(P1+P2)E(P1)+E(P2) 由以上分析可知,对于一个复杂的大型软件系统,应该将它适当分解,这样一方面可以降低开发的难度,另一方面可以降低开发成本,提高软件的开发效率,从而提高整个系统的开发效益。 软件设计的基础知识 (3)模块化与软件成本 一般地,对于独立性较强的模块,模块越小其内部结构就越简单,单个模块的开发成本也就越低。但这并不意味着整个系统的模块化越细小越好,因为随着模块数目的增多,各模块间的联系也随之增加,相应的工作量也增加,当这种工作量增加到一定程度时,将抵消由模块细化产生的单个模块的开发成本的降低,甚至导致整个系统的总开发成本的提高。如图4.2描述了模块数目与软件成本的对应关系图。从图中我们可以看出,存在一个模块数目划分的最佳区域M,区域M的模块数是一个经验值,与实际开发的系统有关。 软件设计的基础知识 2.抽象 抽象,即抽出事物的本质特性而暂时不考虑其细节。在软件设计中从总体设计到详细设计的每一步,都是对抽象层次的一次细化,而且随着设计的不断深入,抽象层次也在逐渐降低。在软件设计中抽象与模块化、逐步求精紧密关联。下面就对分层次的抽象方法加以分析。 (1)最高层次:使用问题环境语言,以概括方式叙述问题的解法; (2)较低层次:采用更过程化的方法,把面向问题的术语和面向实现的术语结合起来叙述问题的解法; (3)最低层次:采用可以直接实现的方式叙述问题的解法。 软件设计的基础知识 3.信息隐蔽和局部化 信息隐蔽基本原理:在设计和确定模块时,应使一个模块内所包含的信息(如过程和数据等)对于不需要这些信息的其他模块来说,是不可见或不能访问的。局部化是把一些关系密切的物理元素彼此靠近。 例如,在模块中使用局部数据变量和数据元素。采用信息隐蔽和局部化是为了便于模块的理解、实现、验证和重用。由于隐蔽了复杂内容,所以不仅利于保证设计和实现的正确性,而且利于提高可维护性,保证数据安全性,有利于从整体上保证软件的基本质量,降低维护成本。同时,降低了编程难度,减少了设计说明和理解交流及编程的工作量,因而有利于缩减开发成本。 软件设计的基础知识 4.一致性、完整性和可验证性 一致性、完整性和可验证性原则应体现在软件设计的整个过程中。进行软件设计之初,首
您可能关注的文档
- 软件测试基础教程杜文洁电子教案 第八章 面向对象的软件测试.ppt
- 软件测试基础教程杜文洁电子教案 第二章 软件测试方法.ppt
- 软件测试基础教程杜文洁电子教案 第九章 Web网站测试.ppt
- 软件测试基础教程杜文洁电子教案 第六章 软件测试计划与相关文档.ppt
- 软件测试基础教程杜文洁电子教案 第七章 软件自动化测试.ppt
- 软件测试基础教程杜文洁电子教案 第三章 软件测试流程.ppt
- 软件测试基础教程杜文洁电子教案 第十章 软件测试质量保证.ppt
- 软件测试基础教程杜文洁电子教案 第四章 软件测试环境的搭建.ppt
- 软件测试基础教程杜文洁电子教案 第五章 软件测试用例设计.ppt
- 软件测试基础教程杜文洁电子教案 第一章 软件测试的基础理论.ppt
- 软件工程( 第二版) 高职软件专业 软件工程 第五章.ppt
- 软件工程( 第二版) 高职软件专业 软件工程 第一章.ppt
- 软件工程( 第二版) 高职软件专业 软件工程课件.ppt
- 软件工程( 第三版) 高职软件专业 高树芳米昶 教学大纲 软件工程( 第三版)教学大纲.doc
- 软件工程( 第三版) 高职软件专业 高树芳米昶 课件 第1章 软件工程概述.ppt
- 软件工程( 第三版) 高职软件专业 高树芳米昶 课件 第2章 问题的定义及可行性研究.ppt
- 软件工程( 第三版) 高职软件专业 高树芳米昶 课件 第3章 需求分析.ppt
- 软件工程( 第三版) 高职软件专业 高树芳米昶 课件 第4章 软件设计.ppt
- 软件工程( 第三版) 高职软件专业 高树芳米昶 课件 第5章 面向对象方法概述.ppt
- 软件工程( 第三版) 高职软件专业 高树芳米昶 课件 第6章 面向对象建模技术.ppt
最近下载
- 城镇污水处理厂工艺全套推荐.ppt VIP
- 05J927-1汽车库建筑构造图集.pdf VIP
- 实验室生物安全生物安全实验室操作规范(微生物.pptx VIP
- 2025年秋季开学全体教师大会上,校长讲话:教育从来不靠一个人燃烧,而靠一群人沉下去!.docx
- 中小学校服验收记录单(参考模版).doc VIP
- DLT5418-2009脱硫吸收塔施工及验收规范.pdf VIP
- 2020新译林版高中英语选择性必修四Unit2 Integratedskills课件.pptx VIP
- 医院信息科笔试、面试题(附答案).docx VIP
- 2020译林版新教材高中英语选择性必修四第二单元知识点复习课件.pptx VIP
- 详解《工贸企业重大事故隐患判定标准》2023版.pptx VIP
文档评论(0)