软件设计基础ppt课件.ppt

上传人:飞****2 文档编号:29415546 上传时间:2022-07-30 格式:PPT 页数:68 大小:692KB
返回 下载 相关 举报
软件设计基础ppt课件.ppt_第1页
第1页 / 共68页
软件设计基础ppt课件.ppt_第2页
第2页 / 共68页
点击查看更多>>
资源描述

《软件设计基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件设计基础ppt课件.ppt(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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软件产品线过程模型软件产品线过程模型国防科技大学计算机学院国

24、防科技大学计算机学院36新产品形成步骤新产品形成步骤 从公共资产库中选取合适的构件;从公共资产库中选取合适的构件; 使用预定义的变化机制进行裁剪,如参数使用预定义的变化机制进行裁剪,如参数化、继承等;化、继承等; 必要时增加新的构件;必要时增加新的构件; 在整个产品线范围内共同的体系结构指导在整个产品线范围内共同的体系结构指导下,进行构件组装,形成系统。下,进行构件组装,形成系统。国防科技大学计算机学院国防科技大学计算机学院376)其它软件体系结构设计方法)其它软件体系结构设计方法基于目标图推理的体系结构设计方法基于目标图推理的体系结构设计方法 基于属性的体系结构设计方法基于属性的体系结构设计

25、方法 一些常用的软件开发方法学中也包含了软一些常用的软件开发方法学中也包含了软件体系结构的设计,例如:件体系结构的设计,例如:面向数据流的软件开发方法面向数据流的软件开发方法面向对象的软件开发方法面向对象的软件开发方法面向方面的软件开发方法面向方面的软件开发方法 国防科技大学计算机学院国防科技大学计算机学院38(2)软件体系结构设计步骤)软件体系结构设计步骤1. 开发软件顶层架构开发软件顶层架构 2. 搜索并选取可用设计资产搜索并选取可用设计资产 3. 设计技术支撑方案设计技术支撑方案 4. 确定设计元素确定设计元素 5. 开发软件部署模型开发软件部署模型 6. 设计并发机制设计并发机制 7.

26、 构建软件体系结构模型构建软件体系结构模型 8. 评审软件体系结构模型评审软件体系结构模型 国防科技大学计算机学院国防科技大学计算机学院39国防科技大学计算机学院国防科技大学计算机学院40(1)可信软件的特点)可信软件的特点计算机系统的缺陷很大一部分是由于软件计算机系统的缺陷很大一部分是由于软件的问题引发的。纵观软件应用的发展历史,的问题引发的。纵观软件应用的发展历史,国际上由于软件可信性问题所导致的重大国际上由于软件可信性问题所导致的重大灾难、事故和严重损失屡见不鲜,软件的灾难、事故和严重损失屡见不鲜,软件的可信性问题已经成为一个相当普遍的问题。可信性问题已经成为一个相当普遍的问题。 所谓所

27、谓“可信软件可信软件”,是指软件系统的运行,是指软件系统的运行行为及其结果总是符合人们的预期,且在行为及其结果总是符合人们的预期,且在受到干扰(包括操作错误、环境影响、外受到干扰(包括操作错误、环境影响、外部攻击等)时仍能提供连续的服务。部攻击等)时仍能提供连续的服务。 国防科技大学计算机学院国防科技大学计算机学院41可信属性可信属性可靠性(可靠性(Reliability):在规定的环境下和规定):在规定的环境下和规定的时间内,软件无失效运行的概率;的时间内,软件无失效运行的概率;可靠安全性(可靠安全性(Safety):软件运行不引起危险、):软件运行不引起危险、灾难的能力;灾难的能力;保密安

28、全性(保密安全性(Security):软件系统对数据和信):软件系统对数据和信息提供保密性、完整性、可用性、真实性保障的息提供保密性、完整性、可用性、真实性保障的能力;能力;可生存性(可生存性(Survivability):软件在受到攻击或):软件在受到攻击或失效出现时连续提供服务并在规定时间内恢复所失效出现时连续提供服务并在规定时间内恢复所有服务的能力;有服务的能力;实时性(实时性(Real Time):软件在指定的时间内完):软件在指定的时间内完成反应或提交输出的能力。成反应或提交输出的能力。国防科技大学计算机学院国防科技大学计算机学院42成本可信曲线成本可信曲线国防科技大学计算机学院国防

29、科技大学计算机学院43(2)容错设计)容错设计为了保证高可信系统即使在极端条件下也为了保证高可信系统即使在极端条件下也能按其规格说明执行,对硬件和软件同时能按其规格说明执行,对硬件和软件同时采用容错计算非常重要。采用容错计算非常重要。 为了保护软件免受软件故障的影响,软件为了保护软件免受软件故障的影响,软件逻辑和数据也必须被备份。逻辑和数据也必须被备份。 软件容错设计是使得软件能发现失效危险软件容错设计是使得软件能发现失效危险并从临失效状态恢复的软件设计技术,有并从临失效状态恢复的软件设计技术,有两种主要的软件容错设计方法:两种主要的软件容错设计方法:恢复块(恢复块(Recovery Bloc

30、ks)N-版本(版本(N-version)编程)编程 国防科技大学计算机学院国防科技大学计算机学院441)恢复块技术)恢复块技术国防科技大学计算机学院国防科技大学计算机学院452)N- 版本编程版本编程国防科技大学计算机学院国防科技大学计算机学院46设计多样性设计多样性当不同的开发者采用不同方法实现相同的当不同的开发者采用不同方法实现相同的需求时,一个合理的假设是不同版本的软需求时,一个合理的假设是不同版本的软件不大可能包含相同的缺陷,因此,也就件不大可能包含相同的缺陷,因此,也就不会产生相同的失效。不会产生相同的失效。设计多样性可以通过以下多种方式达到:设计多样性可以通过以下多种方式达到:使

31、用不同的设计方法来实现需求。使用不同的设计方法来实现需求。使用不同的程序设计语言来完成实现。使用不同的程序设计语言来完成实现。使用不同的开发工具,且在不同的开发环境中完成。使用不同的开发工具,且在不同的开发环境中完成。明确要求在实现某些关键过程时使用不同的算法。明确要求在实现某些关键过程时使用不同的算法。国防科技大学计算机学院国防科技大学计算机学院47(3)软件失效模式和影响分析)软件失效模式和影响分析软件失效模式和影响分析(软件失效模式和影响分析(Failure Model and Effects Analysis,FMEA)主要是在)主要是在软件开发阶段的早期,通过识别软件失效软件开发阶段

32、的早期,通过识别软件失效模式,研究分析各种失效模式产生的原因模式,研究分析各种失效模式产生的原因及其造成的后果,寻找消除和减少其有害及其造成的后果,寻找消除和减少其有害后果的方法,以尽早发现潜在的问题,并后果的方法,以尽早发现潜在的问题,并采取相应的措施,从而提高软件的可靠性采取相应的措施,从而提高软件的可靠性和安全性。和安全性。 国防科技大学计算机学院国防科技大学计算机学院48相关概念相关概念软件失效(软件失效(software failure)。软件失效)。软件失效就是泛指程序在运行中丧失了全部或部分就是泛指程序在运行中丧失了全部或部分功能、出现偏离预期的正常状态的事件。功能、出现偏离预期

33、的正常状态的事件。软件失效模式(软件失效模式(software failure mode)。)。软件失效模式是指软件失效的不同类型,软件失效模式是指软件失效的不同类型,通常用于描述软件失效发生的方式以及对通常用于描述软件失效发生的方式以及对设备运行可能产生的影响。设备运行可能产生的影响。软件失效的影响(软件失效的影响(software failure effect)。软件失效的影响是指软件失效模)。软件失效的影响是指软件失效模式对软件系统的运行、功能或状态等造成式对软件系统的运行、功能或状态等造成的后果。的后果。国防科技大学计算机学院国防科技大学计算机学院49软件系统级软件系统级FMEA过程过

34、程国防科技大学计算机学院国防科技大学计算机学院50(4)软件故障树分析)软件故障树分析软件故障树分析(软件故障树分析(Fault Tree Analysis,FTA)就是在软件系统设计过程中,通过对)就是在软件系统设计过程中,通过对可能造成系统故障的各种因素(包括硬件、可能造成系统故障的各种因素(包括硬件、软件、环境、人为因素等)进行分析,画软件、环境、人为因素等)进行分析,画出逻辑框图(即故障树),从而确定系统出逻辑框图(即故障树),从而确定系统故障原因的各种可能组合,采取相应的纠故障原因的各种可能组合,采取相应的纠正措施,提高系统可靠性的一种设计分析正措施,提高系统可靠性的一种设计分析方法

35、。方法。 国防科技大学计算机学院国防科技大学计算机学院51故障树的构造过程故障树的构造过程 广泛收集并分析有关技术资料广泛收集并分析有关技术资料 选择顶事件选择顶事件 生成故障树生成故障树 简化故障树简化故障树国防科技大学计算机学院国防科技大学计算机学院52(5)形式化方法)形式化方法形式化方法是关于在计算系统的开发中进行严格形式化方法是关于在计算系统的开发中进行严格推理的理论、技术和工具,它主要包括形式规约推理的理论、技术和工具,它主要包括形式规约技术(技术(Formal Specification)和形式验证技术)和形式验证技术(Formal Verification)。)。形式规约技术使

36、用具有严格数学定义语法和语义形式规约技术使用具有严格数学定义语法和语义的语言刻画软件系统及其性质,可以尽早发现需的语言刻画软件系统及其性质,可以尽早发现需求和设计中的错误、歧义、不一致和不完全。求和设计中的错误、歧义、不一致和不完全。 形式化验证是在形式化规约的基础上建立软件系形式化验证是在形式化规约的基础上建立软件系统及其性质的关系,即分析系统是否具有所期望统及其性质的关系,即分析系统是否具有所期望性质的过程,主要分为两类:模型检验(性质的过程,主要分为两类:模型检验(Model Checking)和定理证明()和定理证明(Theorem Proving)。)。 国防科技大学计算机学院国防科

37、技大学计算机学院53形式化方法形式化方法模型检验技术是通过搜索待验证软件系统模型检验技术是通过搜索待验证软件系统模型的有穷状态空间来检验系统的行为是模型的有穷状态空间来检验系统的行为是否具备预期性质的一种有穷状态系统自动否具备预期性质的一种有穷状态系统自动验证技术。验证技术。定理证明技术是将软件系统和性质都用逻定理证明技术是将软件系统和性质都用逻辑方法来规约,基于公理和推理规则组成辑方法来规约,基于公理和推理规则组成的形式系统,以如同数学中定理证明的方的形式系统,以如同数学中定理证明的方法来证明软件系统是否具备所期望的关键法来证明软件系统是否具备所期望的关键性质。性质。 国防科技大学计算机学院

38、国防科技大学计算机学院54(6)净室方法)净室方法净室软件工程(净室软件工程(Clean-room Software Engineering)将形式化方法的规范、设计)将形式化方法的规范、设计和验证与可靠性认证的统计测试有效地结和验证与可靠性认证的统计测试有效地结合起来。合起来。它将软件开发视作严格的工程化开发,软它将软件开发视作严格的工程化开发,软件的正确性是通过数学上可靠的设计方法件的正确性是通过数学上可靠的设计方法来保障。来保障。 国防科技大学计算机学院国防科技大学计算机学院55净室软件工程的要点净室软件工程的要点在统计质量控制下的增量式开发。在统计质量控制下的增量式开发。 基于数学原理

39、的软件开发。基于数学原理的软件开发。 基于统计原理的软件测试。基于统计原理的软件测试。 国防科技大学计算机学院国防科技大学计算机学院56(7)嵌入式和实时软件设计)嵌入式和实时软件设计按照按照IEEE的定义,嵌入式系统是作为某个更大规的定义,嵌入式系统是作为某个更大规模系统组成部分之一的计算机系统,按照其所属模系统组成部分之一的计算机系统,按照其所属系统的某些要求来进行执行。系统的某些要求来进行执行。一般说来,嵌入式系统是计算机软件与硬件的综一般说来,嵌入式系统是计算机软件与硬件的综合体,通常具有专用的功能,并作为某个设备或合体,通常具有专用的功能,并作为某个设备或机器的组成部分,用来控制、监

40、测、辅助其运作。机器的组成部分,用来控制、监测、辅助其运作。嵌入式系统已经普遍应用在与人类生活密切相关嵌入式系统已经普遍应用在与人类生活密切相关的各种电子产品、电器中,并在航空、汽车等领的各种电子产品、电器中,并在航空、汽车等领域的控制系统中起到关键作用。域的控制系统中起到关键作用。 国防科技大学计算机学院国防科技大学计算机学院57嵌入式软件的特征嵌入式软件的特征嵌入式软件一般用于单一任务。嵌入式软件一般用于单一任务。嵌入式软件有多种类型的处理器体系结构嵌入式软件有多种类型的处理器体系结构支持。支持。嵌入式软件的资源约束更加严格。嵌入式软件的资源约束更加严格。嵌入式软件需要更高的可靠性和安全性

41、。嵌入式软件需要更高的可靠性和安全性。嵌入式软件对反应性和实时性要求很高。嵌入式软件对反应性和实时性要求很高。嵌入式软件通常固化存储。嵌入式软件通常固化存储。国防科技大学计算机学院国防科技大学计算机学院58嵌入式系统的设计过程嵌入式系统的设计过程阶段一:产品定义阶段一:产品定义阶段二:软硬件划分阶段二:软硬件划分阶段三:软件设计与硬件设计阶段三:软件设计与硬件设计阶段四:软硬件集成阶段四:软硬件集成阶段五:产品测试与发布阶段五:产品测试与发布阶段六:维护与升级阶段六:维护与升级软件设计过程软件设计过程硬件设计过程硬件设计过程国防科技大学计算机学院国防科技大学计算机学院59嵌入式系统中的一般软件

42、结构嵌入式系统中的一般软件结构国防科技大学计算机学院国防科技大学计算机学院60无操作系统的嵌入式软件设计无操作系统的嵌入式软件设计 前后台系统前后台系统 中断(事件)驱动系统中断(事件)驱动系统 巡回服务系统巡回服务系统 基于定时器的巡回服务系统基于定时器的巡回服务系统 国防科技大学计算机学院国防科技大学计算机学院61有操作系统的嵌入式软件设计有操作系统的嵌入式软件设计分时系统分时系统 实时系统实时系统 非抢占式系统非抢占式系统 抢占式系统抢占式系统 国防科技大学计算机学院国防科技大学计算机学院62国防科技大学计算机学院国防科技大学计算机学院63软件设计规格说明软件设计规格说明软件设计过程中的

43、各个活动的结果最终应软件设计过程中的各个活动的结果最终应该文档化,形成正式的软件设计规格说明,该文档化,形成正式的软件设计规格说明,作为软件设计的输出。形成的软件设计规作为软件设计的输出。形成的软件设计规格说明将被评审,并作为后续软件实现活格说明将被评审,并作为后续软件实现活动的依据。动的依据。 软件设计规格说明并没有统一的格式,例软件设计规格说明并没有统一的格式,例如如IEEE标准、标准、ISO标准以及我国的国家标标准以及我国的国家标准、各行业标准所建议的格式都不尽相同。准、各行业标准所建议的格式都不尽相同。 使用不同的软件设计方法学所得到的设计使用不同的软件设计方法学所得到的设计模型也会有

44、很大区别,导致设计规格说明模型也会有很大区别,导致设计规格说明的结构也会明显不同的结构也会明显不同 。国防科技大学计算机学院国防科技大学计算机学院64国防科技大学计算机学院国防科技大学计算机学院65设计评审设计评审设计评审的目标是,确保设计规格说明书设计评审的目标是,确保设计规格说明书能够实现所有的软件需求,及早发现设计能够实现所有的软件需求,及早发现设计中的缺陷和错误,并确保设计模型已经精中的缺陷和错误,并确保设计模型已经精化到合格的软件实现工程师能够构造出符化到合格的软件实现工程师能够构造出符合软件设计者期望的目标软件系统。合软件设计者期望的目标软件系统。 评审分正式与非正式两种方式。评审

45、分正式与非正式两种方式。 国防科技大学计算机学院国防科技大学计算机学院66设计评审关注的内容设计评审关注的内容 设计模型是否能够充分地、无遗漏地支持设计模型是否能够充分地、无遗漏地支持所有软件需求的实现;所有软件需求的实现; 设计模型是否已经精化至合理的程度,可设计模型是否已经精化至合理的程度,可以确保合格的软件实现工程师能够构造出以确保合格的软件实现工程师能够构造出符合软件设计者期望的目标软件系统;符合软件设计者期望的目标软件系统; 设计模型的质量属性,即,设计模型是否设计模型的质量属性,即,设计模型是否已经经过充分的优化,以确保依照设计模已经经过充分的优化,以确保依照设计模型构造出来的目标

46、软件产品能够表现出良型构造出来的目标软件产品能够表现出良好的软件质量属性。好的软件质量属性。国防科技大学计算机学院国防科技大学计算机学院67设计评审的原则设计评审的原则对产品进行评审,而不是开发人员。对产品进行评审,而不是开发人员。要有针对性,不要漫无目的。要有针对性,不要漫无目的。进行有限的争辩。进行有限的争辩。阐明问题所在,但不要试图去解决问题。阐明问题所在,但不要试图去解决问题。要求事先准备,如果评审人没有准备好,则取消要求事先准备,如果评审人没有准备好,则取消会议并重新安排时间。会议并重新安排时间。为被评审的产品开发一个检查表。为被评审的产品开发一个检查表。确定软件元素是否遵循其规格说明或标准,记录确定软件元素是否遵循其规格说明或标准,记录任何不一致的地方。任何不一致的地方。列出发现的问题、给出的建议和解决该问题的负列出发现的问题、给出的建议和解决该问题的负责人。责人。坚持记录并进行文档化。坚持记录并进行文档化。国防科技大学计算机学院国防科技大学计算机学院68

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁