【教学课件】第4章软件设计基础.ppt
《【教学课件】第4章软件设计基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章软件设计基础.ppt(53页珍藏版)》请在三一办公上搜索。
1、第四章 软件设计基础,软件设计的基本目的就是回答“系统应该如何实现?”这个问题。软件设计的任务,就是把分析阶段产生的软件需求规格说明转换为用适当手段表示的软件设计,并形成软件设计文档。,4.1软件设计的目标和任务,1.软件设计的目标 软件设计一般都包括数据设计、体系结构设计、接口设计和过程设计(或称构件级设计)等设计活动。软件设计的过程和目标就是,根据用信息域表示的软件需求,以及功能和性能需求,进行数据设计、系统结构设计、过程设计。在每个设计活动中,软件开发者应用导致高质量的基本概念和原则,产生软件的数据设计模型、体系结构设计模型、接口设计模型和过程设计模型。,软件设计过程最终目标是产生一个设
2、计规约,该规约包括描述数据、体系结构、接口和构件的设计模型。体系结构设计定义软件主要结构性元素之间的关系。数据设计将分析阶段创建的信息模型转变成实现软件所需的数据结构。接口设计描述软件内部模块之间以及软件与人之间是如何通信的。构件级设计将软件体系结构的结构性元素转变成对软件构件的过程性描述,即描述软件构件的详细内部设计细节。,4.1软件设计的目标和任务,2.软件设计的任务 从工程管理的角度来看,传统的软件设计任务通常分两个阶段完成。第一个阶段是概要设计,即总体设计。第二阶段是详细设计阶段,即过程设计。,4.2软件设计基本概念,4.2.1 模块与模块化 1模块 模块是指这样一组程序语句,它包括输
3、入、输出和逻辑处理功能、内部信息及其运行计划。模块指可单独命名且可通过名字访问的过程函数、子程序或宏调用。,4.2软件设计基本概念,模块具有以下几种特征:接口,模块的输入输出;功能,指模块实现什么功能,有什么作用;逻辑,描述模块内部如何实现需求及所需数据;状态,该模块的运行环境,模块间调用与被调用关系。,4.2软件设计基本概念,2模块化 模块化就是将程序划分成若干个独立的模块,每个模块完成一个特定子功能,每个模块既是相对独立的,又是相互联系的,它们共同完成系统指定的各项功能。模块化的目的是为了降低软件的复杂性。,4.2软件设计基本概念,模块化论据:C(x)定义为表示问题x复杂性的函数;E(x)
4、定义为解决问题x所需要工作量(以时间计算)的函数;则,对p1和p2两个问题,若 C(p1)C(p2),则 E(p1)E(p2)。,4.2软件设计基本概念,一有趣的特性。即:C(p1+p2)C(p1)+C(p2);E(p1+p2)E(p1)+E(p2)。上述表达式意味着:“分而治之”的结论。,4.2软件设计基本概念,图4.2 软件设计成本与模块数量关系图,4.2软件设计基本概念,4.2.2 抽象与逐步求精 1抽象抽象是指从一些事物中抽取其本质的共同的特性,而忽略其非本质细节的差异。在抽象的最高层次使用问题环境的语言,在较低层次上使用更过程化的方法,把面向问题的术语和面向实现的术语结合起来描述问题
5、的解法。,4.2软件设计基本概念,2逐步求精逐步求精是一种先总体、后局部的思维原则,也就是一种逐层分解、分而治之的方法。从在高抽象级别定义的功能陈述(或信息描述)开始,该陈述概念性地描述了功能或信息,但没有提供有关功能内部工作的情况或信息的内部结构。求精是设计者详细描述的原始声明,在后续求精(详细描述)活动中,提供越来越多的细节。,4.2软件设计基本概念,4.2.3 信息隐藏信息隐蔽是在设计和确定模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。,4.2软件设计基本概念,4.2.4 模块独立性模块独立性(Module Independence)概括了把软
6、件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准,同时也是模块化和抽象及信息隐藏概念的直接产物。坚持模块的独立性,一般认为是获得良好设计的关键。换句话说,希望这样设计软件结构,使得每个模块只完成系统要求的一个相对独立的特定子功能,并且和其他模块之间的关系很简单。,4.2软件设计基本概念,为什么模块的独立性很重要呢?第一,有效的模块化(即具有独立的模块)软件比较容易开发出来。第二,独立模块比较容易测试和维护。独立性可以从两个方面来度量,即模块本身的内聚(Cohesion)和模块之间的耦合(Coupling)。,4.2软件设计基本概念,1内聚这是从功能角度对模块内部聚合能力的量度。按照
7、由弱到强的顺序,Myers把模块内部聚合能力分为7类,在图中,从左到右内聚强度逐步增强。,低内聚 中内聚 高内聚偶然性内聚 Coincidental Cohesion逻辑性内聚 Logical Cohesion时间性内聚 Temporal Cohesion过程性内聚 Procedural Cohesion通信性内聚 Communicational Cohesion顺序性内聚 Sequential Cohesion功能性内聚 Functional Cohesion,4.2软件设计基本概念,偶然性内聚 块内各组成成分在功能上是互不相关的。,4.2软件设计基本概念,逻辑性内聚 这种模块把几种相关、相
8、似功能组合在一起,每次被调用时,由传递给模块的参数来确定该模块应完成哪一种功能。,4.2软件设计基本概念,时间性内聚 如果一个模块所包含的任务必须在同一“时间”内完成,则这个模块的块内联系称为时间性内聚。,紧急意外故障处理,关闭文件报警保留现场.,4.2软件设计基本概念,过程化内聚 当一个模块中包含的一组任务必需按照某一特定的次序执行时,就称为过程性内聚模块。,4.2软件设计基本概念,通信性内聚 模块内部的各个成分都使用同一种输入数据,或者产生同一个输出数据。它们靠公用数据而联系在一起,故称为通信性内聚。,4.2软件设计基本概念,顺序性内聚 如果一个模块内的处理元素和同一个功能密切相关,而且这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 软件设计 基础
链接地址:https://www.31ppt.com/p-5658881.html