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