|   [请选择科目]

VIP:有效提升20分!  真题  历年真题 (可免费开通)/  百科全书/ 机考模拟平台/  最难真题榜/  自测/  攻打黄金十二宫/  真题检索/  真题下载/  真题词库
知识   必会知识榜/  最难知识榜/  知识点查询/      文档   学习计划/  精华笔记/  试题文档     纸质图书   《百科全书》HOT!!/         /        首页/  2025年上半年专区/  手机版/ 
免费智能真题库 > 历年试卷 > 系统架构设计师 > 2023年下半年 系统架构设计师 下午试卷 论文
  第4题      
  知识点:   开发过程   可靠性   软件可靠性评价   软件系统   一致性

 
软件可靠性评价是软件可靠性活动的重要组成部分,既适用于软件开发过程,也可针对最终软件系统。在软件开发过程中使用软件可靠性评价,可以使用软件可靠性模型,估计软件当前的可靠性,以确认是否可以终止测试并发布软件,同时还可以预计软件要达到相应的可靠性水平所需要的时间和工作量,评价提交软件时的软件可靠性水平。对于最终软件产品,软件可靠性评价结合可靠性验证测试,确认软件的执行与需求的一致性,确定最终软件产品所达到的可靠性水平,
 
问题:4.1   请围绕“论软件的可靠性评价”论题,依次从以下三个方面进行论述。
1.概要叙述你参与开发的软件项目以及你在其中所承担的主要工作。
2.说明可靠性模型有哪些,以及如何选择合适的可靠性模型,
3.具体阐述你参与开发的项目如何对选用的可靠性模型进行分析来进行可靠性评价的。
 
 
 

   知识点讲解    
   · 开发过程    · 可靠性    · 软件可靠性评价    · 软件系统    · 一致性
 
       开发过程
        嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行等几个阶段。
        项目计划、可行性分析、需求分析、概要设计及详细设计等几个阶段,与通用软件的开发过程基本一致,都可按照软件工程方法进行,如采用原型化方法、结构化方法等。
        :由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。
        程序建立阶段的工作是根据详细设计阶段产生的文档进行的,主要是源代码编写、编译链接等子过程,这些工作都在宿主机上进行,不需要用到目标机。产生应用程序的可执行文件后,就要用到交叉开发环境进行调试,根据实际情况可以选用3.6.3节中提到的调试方法或其有效组合来进行。由于嵌入式系统对安全性和可靠性的要求比通用计算机系统要高,所以,在对嵌入式系统进行白盒测试时,要求有更高的代码覆盖率。
        最后,要将经调试后正确无误的可执行程序固化到目标机上。根据嵌入式系统硬件配置的不同,可以固化在EPROM(Erasable Programmable ROM,可擦除可编程ROM)和Flash等存储器中,也可固化在DOC(DiskOnChip)等电子盘中,通常还要借助一些专用编程器进行。
 
       可靠性
        (1)完备性。完备性评价指标及测量,如下表所示。
        
        完备性评价指标及测量
        (2)连续性。连续性评价指标及测量,如下表所示。
        
        连续性评价指标及测量
        
        (3)稳定性。稳定性评价指标及测量,如下表所示。
        
        稳定性评价指标及测量
        (4)有效性。有效性评价指标及测量,如下表所示。
        
        有效性评价指标及测量
        (5)可追溯性。可追溯性评价指标及测量,如下表所示。
        
        可追溯性评价指标及测量
        
 
       软件可靠性评价
               软件可靠性评价概述
               软件可靠性评价是软件可靠性活动的重要组成部分,既适用于软件开发过程,也可针对最终软件系统。在软件开发过程中使用软件可靠性评价,可以使用软件可靠性模型,估计软件当前的可靠性,以确认是否可以终止测试并发布软件,同时还可以预计软件要达到相应的可靠性水平所需要的时间和工作量,评价提交软件时的软件可靠性水平。对于最终软件产品,软件可靠性评价结合可靠性验证测试,确认软件的执行与需求的一致性,确定最终软件产品所达到的可靠性水平。
               这一节阐述的软件可靠性评价工作是指选用或建立合适的可靠性数学模型,运用统计技术和其他手段,对软件可靠性测试和系统运行期间收集的软件失效数据进行处理,并评估和预测软件可靠性的过程。这个过程包含3个方面:
               ①选择可靠性模型;
               ②收集可靠性数据;
               ③可靠性评估和预测。
               怎样选择可靠性模型
               在前面我们讨论了软件的可靠性模型以及一个举例,一些可靠性研究者试图寻找一个最好的模型,能适用于所有的软件系统,但这样的工作是徒劳的。因为对于不同的软件系统,出于不同的可靠性分析目的,模型的适用性是不一样的。但究竟怎样来为可靠性评价选用不同的模型,却又是一个不小的难题。
               针对可靠性模型的构成以及我们使用模型来进行可靠性评价的目的,可以从以下几个方面进行比较和选择。
                      模型假设的适用性
                      模型假设是可靠性模型的基础,模型假设要符合软件系统的现有状况,或与假设冲突的因素在软件系统中应该是可忽略的。例如,有的模型假定检测或发现的软件缺陷是立即排除掉的,而且排除时间忽略不计,如果现有的软件系统对于严重程度类较低的软件缺陷不进行立即排错,那么这个模型显然是不适用的。
                      往往一个模型的假设有许多条,我们需要在选用模型的时候对每一条假设进行细致的分析,评估现有的软件系统中不符合假设的因素对可靠性评价的影响如何,以确定模型是否适合软件系统的可靠性评价工作。
                      预测的能力与质量
                      预测的能力与质量是指模型根据现在和历史的可靠性数据,预测将来的可靠性和失效概率的能力,以及预测结果的准确程度。显然模型预测的能力与质量是比较难于评价的,但任何一个模型只有在实践中加以实验和不断改善,才能得到认可。所以,我们在满足其他条件的前提下,应尽量选用比较成熟、应用较广的模型作为分析模型。
                      模型输出值能否满足可靠性评价需求
                      我们使用模型进行可靠性评价的最终目的,是想得到软件系统当前的可靠性定量数据,和预测一定时间后的可靠性数据,我们可以根据可靠性测试目的来确定哪些模型的输出值满足可靠性评价需求。一般说来,最重要的几个需要精确估计的可靠性定量指标包括如下内容。
                      . 当前的可靠度;
                      . 平均无失效时间(MTTF);
                      . 故障密度;
                      . 期望达到规定可靠性目标的日期;
                      . 达到规定的可靠性目标的成本要求。
                      模型使用的简便性
                      模型使用的简便性一般包含三层含义。
                      . 模型需要的数据在软件系统中应该易于收集,而且收集需要投入的成本不能超过可靠性计划的预算。
                      . 模型应该简单易懂,进行可靠性分析的软件测试人员不会花费太多的时间去研究专业的数学理论,他们只需要知道哪些假设适用,需要收集哪些数据,能够得到哪些分析结果就可以了。
                      . 模型应该便于使用,最好能用工具实现数据的输入。也就是说,测试人员除了输入可靠性数据外,不需要深入模型内部进行一些额外的工作。
                      尽管这样,由于可靠性研究理论在软件工程领域发展的限制,可供选择的可靠性模型极其有限,这已在相当大的程度上制约了可靠性测试的开展。
               可靠性数据的收集
               面向缺陷的可靠性测试产生的测试数据经过分析后,可以得到非常有价值的可靠性数据,是可靠性评价所用数据的一个重要来源,这部分数据取决于定义的运行剖面和选取的测试用例集。可靠性数据主要是指软件失效数据,是软件可靠性评价的基础,主要是在软件测试、实施阶段收集的,在软件工程的需求、设计和开发阶段的可靠性活动,也会产生影响较大的其他可靠性数据,因此,可靠性数据的收集工作是贯穿于整个软件生命周期的。
               由于软件开发过程中的特殊复杂性及许多潜在因素的影响,可靠性数据收集工作会极为困难,目前,关于数据的收集工作,存在许多有待解决的问题。
               . 可靠性数据的规范不统一。对软件进行度量的定义混乱不清。例如,时间、缺陷、失效、模型结构等的定义,就相当含糊,缺乏统一的标准。这样就使得在进行软件可靠性数据的收集时,目标不明确,甚至无从下手。
               . 数据收集工作的连续性不能保证。可靠性数据的收集是连续的长期的过程,而且需要投入一定的资金、人力、时间,往往这些投入会在软件的开发计划中被忽略,以至于不能保证可靠性数据收集工作的正常进行。
               . 缺乏有效的数据收集手段。进行数据收集同样需要方便实用的工具,然而除了在可靠性测试方面有了一些可用的数据收集工具外,其他方面的工具还十分缺乏。
               . 数据的完整性不能保证。即使可靠性活动计划作得再周密,收集到的数据仍有可能是不完全的,而且遗漏的数据往往会影响到可靠性评价的结果。
               . 数据质量和准确性不能保证。不完全的排错及诊断,使收集的数据中含有不少虚假的成分,它们不能正确反映软件的真实状况。使用不准确的可靠性数据进行的可靠性评价,误差有可能会比利用可靠性模型进行预测产生的误差大一个数量级,这说明数据质量的重要性。
               为了给软件可靠性评价提供一套准确、有效的可靠性数据,有必要在软件工程中重视软件可靠性数据的收集工作,采取一些措施尽量解决上述问题。在现有条件下,可行的一些办法如下。
               . 及早确定所采用的可靠性模型,以确定需要收集的可靠性数据,并明确定义可靠性数据规范中的一些术语和记录方法,如时间、失效、失效严重程度类的定义,制定标准的可靠性数据记录和统计表格等。
               . 制定可实施性较强的可靠性数据收集计划,指定专人负责,抽取部分开发人员、质量保证人员、测试人员、用户业务人员参加,按照统一的规范收集记录可靠性数据。
               . 重视软件测试特别是可靠性测试产生的测试数据的整理和分析,因为这部分数据是用模拟软件实际运行环境的方法,模拟用户实际操作的测试用例测试软件系统产生的数据,对软件可靠性评价和预测有较高的实用价值。
               . 充分利用数据库来完成可靠性数据的存储和统计分析。一方面减少数据管理的混乱,一方面提高数据处理的效率。
               软件可靠性的评估和预测
               软件可靠性的评估和预测的主要目的,是为了评估软件系统的可靠性状况和预测将来一段时间的可靠性水平。下面是一些常见的需要利用软件可靠性评价进行解答的问题。
               . 判断是否达到了可靠性目标,是否达到了软件付诸使用的条件,是否达到了中止测试的条件。
               . 如未能达到,要再投入多少时间、多少人力和多少资金,达到可靠性目标或投入使用。
               . 在软件系统投入实际运行一年或若干时间后,经过维护、升级、修改,软件能否达到交付或部分交付用户使用的可靠性水平。
               目前有不少支持软件可靠性估计的软件工具,我们只要将收集的失效数据分类并录入,选择合适的可靠性模型就可以获得软件可靠性的评价结果。
               然而,对于那些可靠性要求很高的系统,必须进行很多测试才能预计出高置信度的可靠性结果,即便如此,仍然可能没有任何失效发生。没有失效就无法估计可靠性,不能认为程序的可靠性是1.0。除非我们已经进行了完全的测试,否则程序不失效我们就无法做出估计,而完全的测试几乎总是不可能的。如果在测试期间没有失效发生,我们可以简单地假设测试是基于二项式分布的,这样就可以对可靠性作保守估计,也可以凭经验,根据无故障运行的测试用例的数量,在一定的置信度水平上,估计可靠性的等级。
               软件可靠性评价技术和方法主要依据选用的软件可靠性模型,其来源于统计理论。软件可靠性评估和预测以软件可靠性模型分析为主,但也要在模型之外运用一些统计技术和手段对可靠性数据进行分析,作为可靠性模型的补充、完善和修正。这些辅助方法如下。
               . 失效数据的图形分析法。
               运行图形处理软件失效数据,可以直观地帮助我们进行分析。图形指标如下。
               ①累积失效个数图形;
               ②单位时间段内的失效数的图形;
               ③失效间隔时间图形。
               . 试探性数据分析技术(EDA)。
               对于失效数据图形进行一定的数字化分析,能发现和揭示出数据中的异常。对可靠性分析有用的如下。
               ①循环相关;
               ②短期内失效数的急剧上升;
               ③失效数集中的时间段。
               这种分析方法常可以发现因排错引入新的缺陷、数据收集的质量问题及时间域的错误定义等问题。
               还有其他一些分析方法,这里就不一一赘述了。
 
       软件系统
        网络系统软件包括网络操作系统和网络协议等。网络操作系统是指能够控制和管理网络资源的软件,是由多个系统软件组成,在基本系统上有多种配置和选项可供选择,使得用户可根据不同的需要和设备构成最佳组合的互联网络操作系统。网络协议是保证网络中两台设备之间正确传送数据的约定。
 
       一致性
        在讨论一致性之前,先看一下CAP理论。它作为一种理论依据,使得在不同应用中,对一致性也有了不同的要求。CAP理论:简单地说,就是对于一个分布式系统,一致性(Consistency)、可用性(Availablity)和分区容忍性(Partition tolerance)三个特点最多只能三选二。
        一致性意味着系统在执行了某些操作后仍处在一个一致的状态,这点在分布式的系统中尤其明显。比如某用户在一处对共享的数据进行了修改,那么所有有权使用这些数据的用户都可以看到这一改变。简言之,就是所有的结点在同一时刻有相同的数据。
        可用性指对数据的所有操作都应有成功的返回。高可用性则是在系统升级(软件或硬件)或在网络系统中的某些结点发生故障的时候,仍可以正常返回。简言之,就是任何请求不管成功或失败都有响应。
        分区容忍性这一概念的前提是在网络发生故障的时候。在网络连接上,一些结点出现故障,使得原本连通的网络变成了一块一块的分区,若允许系统继续工作,那么就是分区可容忍的。
        在数据库系统中,事务的ACID属性保证了数据库的一致性。比如银行系统中,转账就是一个事务,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和构成一个完整的逻辑过程,具有原子的不可拆分特性,从而保证了整个系统中的总金额没有变化。
        然而,这些ACID特性对于大型的分布式系统来说,是和高性能不兼容的。比如,你在网上书店买书,任何一个人买书这个过程都会锁住数据库直到买书行为彻底完成(否则书本库存数可能不一致),买书完成的那一瞬间,世界上所有的人都可以看到书的库存减少了一本(这也意味着两个人不能同时买书)。这在小的网上书城也许可以运行得很好,可是对Amazon这种网上书城却并不是很好。
        而对于Amazon这种系统,它也许会用Cache系统,剩余的库存数也许是几秒甚至几个小时前的快照,而不是实时的库存数,这就舍弃了一致性。并且,Amazon可能也舍弃了独立性,当只剩下最后一本书时,也许它会允许两个人同时下单,宁愿最后给那个下单成功却没货的人道歉,而不是整个系统性能的下降。
        由于CAP理论的存在,为了提高性能,出现了ACID的一种变种BASE(这四个字母分别是Basically Available,Soft—state,Eventual consistency的开头字母,是一个弱一致性的理论,只要求最终一致性):
        .Basically Available:基本可用。
        .Soft state:软状态,可以理解为“无连接”的,而与之相对应的Hard state就是“面向连接”的。
        .Eventual consistency:最终一致性,最终整个系统(时间和系统的要求有关)看到的数据是一致的。
        在BASE中,强调可用性的同时,引入了最终一致性这个概念,不像ACID,其并不需要每个事务都是一致的,只需要整个系统经过一定时间后最终达到一致。比如Amazon的卖书系统,也许在卖的过程中,每个用户看到的库存数是不一样的,但最终卖完后,库存数都为0。再比如SNS网络中,C更新状态,A也许可以1分钟就看到,而B甚至5分钟后才看到,但最终大家都可以看到这个更新。
        具体地说,如果选择了CP(一致性和分区容忍性),那么就要考虑ACID理论(传统关系型数据库的基石,事务的四个特点)。如果选择了AP(可用性和分区容忍性),那么就要考虑BASE系统。如果选择了CA(一致性和可用性),如Google的bigtable,那么在网络发生分区的时候,将不能进行完整的操作。
        ACID理论和BASE的具体对比如下表所示。
        
        ACID和BASE的对比表
   题号导航      2023年下半年 系统架构设计师 下午试卷 论文   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
 
第4题    在手机中做本题
    在线人数   共计 8640人 在线 
    874677054@..     rnchen_200..     jgypcb@163..     atorgel@to..     yalixiaowe..     adreamingb..
    jiaruihz@v..     26830176@q..     chenzmchem..     jiancai880..     yanleiya@1..     wangchunro..
    xiaov4@163..     xel790414@..     jlq425@163..     852691238@..     3734404@qq..     alence_122..
    liyuweitop..     zhscdjxc@1..     zhijiezhi_..     tjj555555@..     bxtyfdc@12..     xueyanghua..
    jlq425@163..     270718988@..     68yu@163.c..     66lzm6@163..     jiangdn200..     chinaxieli..
    liuanliaaa..     jetaimeqin..     cj25828203..     dadola@163..     754291844@..     zhangfeng8..
    martinren3..     wolfpeople..     jiaoyuehon..     victor380@..     FN-WWM888@..     yxtao0532@..

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。



京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2025 All Rights Reserved 软考在线版权所有