软件设计基础ppt课件.ppt
《软件设计基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件设计基础ppt课件.ppt(68页珍藏版)》请在三一办公上搜索。
1、第三讲:软件设计基础,董威,文艳军,陈振邦国防科技大学计算机学院,软件设计与体系结构,2,内容,3.1软件设计的基本概念3.2软件设计过程3.3软件设计的质量3.4软件体系结构设计3.5高可信软件设计3.6软件设计规格说明3.7软件设计评审,3,软件设计,软件设计主要针对需求分析过程得到的软件需求规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。软件设计基本概念是过去数十年里陆续提出的,软件设计者根据这组概念进行设计决策。,4,(1)抽象与逐步求精,“抽象”是一个心理学概念,它要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。
2、 “逐步求精” 可视为一种早期的自顶向下设计策略,其主要思想是,针对某个功能的宏观描述用逐步求精的方法不断地分解,逐步确立过程细节,直至该功能用程序语言描述的算法实现为止。 在软件设计过程中,抽象与逐步求精是一般都是结合起来进行应用。,5,抽象与逐步求精,6,(2)模块化与信息隐藏,把软件划分为可独立命名和访问的部件,每个部件称为一个模块,当把所有模块组装到一起时则获得满足问题需要的一个解。 模块化使得开发活动更加简单的一个重要因素是模块的信息隐藏,即一个模块的开发者不必看到其它模块的内部,只需知道其接口即可,这使得每个模块的开发人员所要处理的复杂性显著降低。,7,模块数量与成本,8,内聚与耦
3、合,内聚是前述信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。 耦合是对软件结构中模块间关联程度的一种度量。耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置以及通过接口传送数据的多少等。 追求高内聚、低耦合。,9,内容,3.1软件设计的基本概念3.2软件设计过程3.3软件设计的质量3.4软件体系结构设计3.5高可信软件设计3.6软件设计规格说明3.7软件设计评审,10,(1)软件设计的一般过程,软件设计可能是一个多次反复的过程,所以,软件设计一般都可以被看作是迭代的过程。 迭代有两层含义:第一层含义是,针对给定的需求模型,通过多次从抽象到具体的设计过程,得出
4、足够精细的设计模型以供软件实现之用。在需求模型发生变化并更新完成后,第一层含义的设计过程再随之展开,直至获得最终的目标软件产品 。,11,软件设计的迭代,12,软件设计的一般过程,13,(2)软件设计的主要活动,在设计过程中,对设计活动进行计划应该最早进行,然后按照计划实施体系结构设计、界面设计、模块/子系统设计、数据模型设计、过程/算法设计等活动。,14,1)软件设计计划,软件设计计划的任务是:明确设计过程的输入制品并使其处于就绪状态,定义设计过程的目标、输出制品及其验收准则,确定覆盖设计过程中各个阶段的全局性设计策略,分配设计过程相关人员的职责,针对设计过程中的活动制订工作计划。,15,2
5、)体系结构设计,软件体系结构设计的目标是建立软件系统的体系结构,有时也称“顶层架构”。这种架构既要明确定义软件各子系统、关键构件、关键类的职责划分及协作关系,同时也要描绘它们在物理运行环境下的部署模型。此外,顶层架构还必须针对软件系统全局性、基础性的技术问题给出技术解决方案,这种方案往往构成目标软件系统的体系结构的技术基础设施。,16,软件结构有关概念,17,3)界面设计,用户界面设计的目标是,为用户使用目标软件系统以实现其所有业务需求而提供友好的人机交互界面。 软件界面设计需要考虑以下因素 :适用于软件功能 易理解性 一致性 灵敏性 容错性 人性化 国际化 个性化 合理的布局 和谐的色彩,1
6、8,4)模块/子系统设计,子系统和模块的区别:一个子系统独立构成系统,不依赖其它子系统提供的服务。 一个模块通常是一个能提供一个或多个服务的系统部件。它能利用其它模块提供的服务,一般不被看成一个独立的系统。 由于模块和子系统都是软件组成部分,它们一般都有层次结构,相互之间存在接口,其设计方法有很多类似的方面,因此我们统一称为模块设计。,19,模块设计的目标,模块设计的目标是,确定模块的具体接口定义,并设计模块的内部结构,即,设置包含于其中的(更小粒度的)模块、构件和设计类,明确它们之间的协作关系,确保它们能够协同实现高层模块接口规定的所有功能和行为。在进行模块设计时,要尽量保持模块的功能独立性
7、,遵循“高内聚、低耦合”的设计思想。此外,还要力求将模块的影响限制在模块的控制范围内,使得软件日后的修改和维护工作更加简单。,20,5)过程/算法设计,过程/算法设计的任务就是对模块内部的工作和执行过程进行描述,给出有关处理的精确说明,例如事件的顺序、确切的决策位置、循环操作以及数据的组成等。 软件结构与软件过程相互关联,软件结构中任何模块的所有从属模块必将被引用出现在该模块的过程说明中。因此,软件过程对应的结构设计亦构成一个层次结构。,21,6)数据模型设计,我们把数据结构设计、数据库设计、甚至数据文件设计等统一称为数据模型设计。 在数据模型设计中有一个重要概念:持久数据操作,它包括写入、查
8、询、更新和删除四类基本操作以及由它们复合而成的业务数据操作。 在很多软件系统中,数据是其核心,因此,对数据元素的格式、结构、访存、表示等机制进行良好建模和优化,是提高软件设计质量和系统性能的基础,对软件系统的应用具有重要意义。,22,内容,3.1软件设计的基本概念3.2软件设计过程3.3软件设计的质量3.4软件体系结构设计3.5高可信软件设计3.6软件设计规格说明3.7软件设计评审,23,软件设计质量的重要性,软件设计是软件开发过程中的核心活动,软件设计的质量不但对最终软件产品的质量起着决定性作用,还对软件开发过程以及软件日后在使用过程中维护的难易程度有着重要的影响。高质量的软件设计,能够有效
9、缩短软件开发时间,减少开发成本,提高最终软件产品质量。,24,软件设计的质量要素,结构良好充分性可行性简单性实用性灵活性健壮性可移植性可复用性标准化,25,内容,3.1软件设计的基本概念3.2软件设计过程3.3软件设计的质量3.4软件体系结构设计3.5高可信软件设计3.6软件设计规格说明3.7软件设计评审,26,(1)软件体系结构设计方法概述,软件体系结构的设计方法是指通过一系列的设计活动,获得满足系统功能性需求、并且符合一定非功能性需求约束的软件体系结构模型。目前存在多种体系结构设计方法,它们的侧重点有所不同。 在实际应用过程中,这些体系结构设计方法并不是绝对互斥的,根据需要,有可能综合运用
10、不同体系结构设计方法的思想,得到最终所需的设计结果。,27,1)多视图建模,28,2)基于评估与转换的设计方法,29,转换方式,使用合适的体系结构风格和模式,或者设计模式来改进体系结构设计。把非功能需求转化为功能性解决方案,该功能性方案可以与问题域无关,但可以满足质量属性的要求。采用“分而治之”的方式,可以把系统级的质量需求分配到子系统或模块中,或者把质量需求分解为多个与功能相关的质量需求,分解后的质量需求能够比较容易得到满足。,30,3)模式驱动的设计方法,31,体系结构风格的分类,32,4)领域特定的软件体系结构设计,领域特定的软件体系结构(Domain Specific Software
11、 Architecture,DSSA)是领域工程的核心部分,领域工程分析应用领域的共同特征和可变特征,对刻画这些特征的对象和操作进行选择和抽象,形成领域模型,并进一步生成DSSA。领域特定的软件体系结构借鉴领域中已经成熟的软件体系结构,实现解决方案在某个领域内的复用。虽然这些系统实例的细节会有不同,但共同的体系结构在开发新系统时是能够复用的。,33,DSSA与体系结构风格的区别,DSSA与软件体系结构风格是从不同角度出发研究问题的两种结果,前者从问题域出发,而后者从解决域出发。DSSA只在某个特定领域中进行经验知识的提取、总结与组织,但可以同时使用多种软件体系结构风格;而一种软件体系结构风格所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 基础 ppt 课件

链接地址:https://www.31ppt.com/p-1421449.html