1、高级系统分析师 2010 下半年下午试题及答案解析(总分:300.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:75.00)1.论软件的静态演化和动态演化及其应用 软件演化(Software Evolution)是指软件在其生命周期内的更新行为和过程。演化是一系列贯穿软件生命周期始终的活动,系统需求改变、功能实现增强、新功能加入、软件架构改变、软件缺陷修复、运行环境改变均要求软件系统能够快速适应变化,具有较强的演化能力。软件静态演化(Static Evolution)和动态演化(Dynamic Evolution)是目前软件演化的两种重要类型。 请围绕“软件的静态演化和动态演
2、化及其应用”论题,依次从以下三个方面进行论述。 (1)概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。 (2)请分别对软件静态演化和动态演化的特点进行论述,说明两种软件演化类型各自的优缺点及其应用场合,并举例说明各自的常见演化技术手段。 (3)具体阐述你参与管理和开发的项目中所进行的软件演化活动的特点、演化的类型,以及所采取的对应演化技术手段,说明具体实施过程以及实际应用的效果。(分数:75.00)_二、B试题二/B(总题数:1,分数:75.00)2.论数据挖掘技术的应用 随着信息技术的高速发展,各组织机构积累的数据量急剧增长。如何从海量的数据中提取有用的知识成为当务之急。数据
3、挖掘(Data Mining)就是为了顺应这种需要应运而生发展起来的数据处理技术,是知识发现的关键步骤。数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。 请围绕“论数据挖掘技术的应用”论题,依次对以下三个方面进行论述。 (1)概要叙述你参与分析和开发的软件项目以及你所担任的主要工作。 (2)数据挖掘的主要任务是什么?具体论述你在项目中使用数据挖掘技术所解决的问题。 (3)数据挖掘的方法主要有哪些?分析并讨论你所选择的数据挖掘方法,简述其具体实现过程和实际应用效果。(分数:75.00)_三、B试题三/B
4、(总题数:1,分数:75.00)3.论大规模分布式系统缓存设计策略 大规模分布式系统通常需要利用缓存技术减轻服务器负载、降低网络拥塞、增强系统可扩展性。缓存技术的基本思想是将客户最近经常访问的内容在缓存服务器中存放一个副本,当该内容下次被访问时,不必建立新的数据请求,而是直接由缓存提供。良好的缓存设计,是一个大规模分布式系统能够正常、高效运行的必要前提。在进行大规模分布式系统开发时,必须从一开始就针对应用需求和场景对系统的缓存机制进行全面考虑,设计一个可伸缩的系统缓存架构。 请围绕“大规模分布式系统缓存设计策略”论题,依次从以下三个方面进行论述。 (1)概要叙述你参与实施的大规模分布式系统开发
5、项目以及你所担任的主要工作。 (2)从不同的用途和应用场景考虑,请详细阐述至少两种常见的缓存工作模式,并说明每种工作模式的适应场景。 (3)阐述你在设计大规模分布式系统的缓存机制时遇到了哪些问题,如何解决。(分数:75.00)_四、B试题四/B(总题数:1,分数:75.00)4.论软件可靠性评价 软件可靠性评价是指选用和建立合适的可靠性数学模型,运用统计技术和其他手段,对软件可靠性测试和系统运行期间的软件失效数据(也可能包含软件生命周期内的其他可靠性数据)进行处理,并评估和预测软件可靠性的过程。 软件可靠性评价是软件可靠性活动的重要组成部分,既可在软件开发过程中实施,也可针对最终软件系统实施。
6、软件可靠性评价的难点在于软件可靠性模型的选择和软件可靠性数据的收集与处理。 请围绕“软件可靠性评价”论题,依次从以下三个方面进行论述。 (1)简要概述你参与实施的软件开发项目以及你承担的主要工作。 (2)说明你在项目实施过程中所选择的软件可靠性模型,并论述在软件可靠性模型选择时应该考虑的主要因素。 (3)收集软件可靠性数据时经常遇到的问题有哪些?简述你收集软件可靠性数据时所遇到的具体问题及解决的方法。(分数:75.00)_高级系统分析师 2010 下半年下午试题答案解析(总分:300.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:75.00)1.论软件的静态演化和动态演化及其
7、应用 软件演化(Software Evolution)是指软件在其生命周期内的更新行为和过程。演化是一系列贯穿软件生命周期始终的活动,系统需求改变、功能实现增强、新功能加入、软件架构改变、软件缺陷修复、运行环境改变均要求软件系统能够快速适应变化,具有较强的演化能力。软件静态演化(Static Evolution)和动态演化(Dynamic Evolution)是目前软件演化的两种重要类型。 请围绕“软件的静态演化和动态演化及其应用”论题,依次从以下三个方面进行论述。 (1)概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。 (2)请分别对软件静态演化和动态演化的特点进行论述,说明
8、两种软件演化类型各自的优缺点及其应用场合,并举例说明各自的常见演化技术手段。 (3)具体阐述你参与管理和开发的项目中所进行的软件演化活动的特点、演化的类型,以及所采取的对应演化技术手段,说明具体实施过程以及实际应用的效果。(分数:75.00)_正确答案:(1)简要介绍你参与管理和开发的大中型信息系统软件工程项目,简要说明自己在该项目中的角色、所承担的主要任务及开展的主要工作。参与设计和实施的信息系统项目应有一定的规模,自己在该项目中担任的主要工作应有一定的份量。 (2)论文的第 2 部分是体现你所掌握的信息系统软件演化理论知识的精华所在。软件演化的核心问题是:如何使软件系统适应外界的改变。软件
9、演化过程是软件演化和软件过程的统一。软件演化可分为静态演化和动态演化两种类型。静态演化是指系统在停机状态下所进行的修改;动态演化则是指软件在运行期间所进行的更新。 在静态演化中,先对需求变化进行分析,锁定软件更新的范围,然后实施系统升级。在停机状态下,系统的维护和二次开发就是一种典型的软件静态演化。静态演化可以是一种更正代码错误的简单变更,也可以是更正设计方案的重大调整,还可以是对描述错误所作的较大范围的修改,更可以是针对新需求所作的重大改进。在演化时,首先根据用户的需求变动,开发新功能模块或更新已有的功能模块,然后编译链接生成新应用系统,最后部署更新后的软件系统。静态演化技术的优点是:在更新
10、过程中,不需要考虑系统的状态迁移和活动线程问题。其缺点是:停止应用程序就意味着停止系统所提供的相关服务,也就是使软件暂时失效。 静态演化有 3 种不同的软件维护:改正性维护、适应性维护和完善性维护。维护过程一般包括变更分析、版本规划、系统实现和向客户交付系统等活动。 在面向对象技术中,使用子类型方法来扩展程序,它适合于软件静态演化和代码重用。子类型化一个类意味着保留父类中的参数和方法,并尽可能地增加新的参数和方法。另外,使用重载和多态性作为主要的演化机制。在对系统功能进行更新时,最简单的机制就是创建相关类的子类,然后重载需要变更的方法,利用多态性来调用新创建的方法。在基于构件的软件技术中,构件
11、通常采用接口和实现相分离的原则,构件之间只能通过接口来进行通信。这使得具有兼容接口的不同构件实现部分可以相互取代,从而成为软件静态演化的一条非常有效的途径。 动态演化是最复杂也是最有实际意义的演化形式。它使得软件在运行过程中,可以根据应用需求和环境变化,动态地进行软件的配置、维护和更新,其表现形式包括系统元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性。软件的动态演化特性对于适应未来软件发展的开放性、动态性具有重要意义。动态演化的显著优点是软件不会存在暂时的失效,具有持续的可用性。但由于涉及状态迁移等问题,它比静态演化在技术上更难处理。 对于执行关键任务的一些软件系统而言,通过停止
12、、更新和重启来实现维护演化任务将会导致不可接受的延迟、代价和危险。例如:当对航班调度系统和某些实时监控系统进行演化时,不能进行停机更新,而必须切换到备用系统上,以确保相关服务仍旧可用。条件发生改变时,移动计算系统需要调整对应的计算构件,以适应外界环境的变化。例如:交通控制软件、电信交换软件、Internet 服务应用软件以及高可用性的公共信息软件。 软件动态演化可以分为预设的和非预设的两种类型。动态变化的因素是软件设计者能够预先设想到的,可实现为系统的固有功能,这就是预设的软件动态演化。对系统配置进行修改和调整是直到软件投入运行以后才能确定的,这就要求系统能够处理在原始设计中没有完全预料到的新
13、需求,这就是非预设的软件动态演化。 为了支持软件的动态演化,人们在编程语言和工作机制方面做了大量探索性的研究工作。例如:基于硬件的动态演化,使用多个冗余的硬件设备,用于软件的动态升级服务;动态装载,在编程语言方面,引进相关机制来支持软件系统的动态演化;动态类:在软件运行过程中,类的实现可以动态地变化;中间件为运行构件的动态替换和升级提供了相关实现机制,主要包括:命名服务、反射技术和动态适配等;基于构件的动态演化;基于过程的动态演化;基于体系结构描述语言的动态演化;基于体系结构模型的动态演化等。其中,动态类中使用的一些策略有(但不限于):冻结”策略,系统等待已存在的旧版本的对象被客户释放;“重建
14、”策略,系统使用动态类的新版本来创建相关对象,同时,将旧版本的对象的状态信息拷贝到新对象中;“共存”策略,动态类新、旧版本的对象共存,但是,以后对象的创建使用动态类的新版本。在实现动态类时,通常需要引入代理(Proxy)机制。代理负责维护动态类的所有实现版本和实现版本的外部存储。代理机制下的动态类是一种轻量级的动态演化技术,它不需要编译器和底层运行环境(例如:操作系统和虚拟机)的支持,比较容易实现。 (3)说明你参与管理和开发的软件项目中,所进行的软件演化活动的特点、演化的类型,以及所采取的对应演化技术手段、方法和步骤,说明具体实施过程以及实际的应用效果(或存在的问题)。论文最后可以进一步讨论
15、你从中获得的相关体会,以及在今后的工作过程中,如果碰到类似的项目,你将如何应用这些经验或教训。)解析:二、B试题二/B(总题数:1,分数:75.00)2.论数据挖掘技术的应用 随着信息技术的高速发展,各组织机构积累的数据量急剧增长。如何从海量的数据中提取有用的知识成为当务之急。数据挖掘(Data Mining)就是为了顺应这种需要应运而生发展起来的数据处理技术,是知识发现的关键步骤。数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。 请围绕“论数据挖掘技术的应用”论题,依次对以下三个方面进行论述。 (1
16、)概要叙述你参与分析和开发的软件项目以及你所担任的主要工作。 (2)数据挖掘的主要任务是什么?具体论述你在项目中使用数据挖掘技术所解决的问题。 (3)数据挖掘的方法主要有哪些?分析并讨论你所选择的数据挖掘方法,简述其具体实现过程和实际应用效果。(分数:75.00)_正确答案:(1)对你在论文中准备列举的、近期参与过的大中型信息系统项目的背景、项目规模、发起单位、目标、项目内容、组织结构、项目周期、交付的产品等做简要的介绍。接着简要说明自己在该项目中的角色及所承担的主要工作。参与设计和实施的信息系统项目应有一定的规模,自己在该项目中担任的主要工作应有一定的份量。 (2)通常情况下,数据挖掘是指从
17、大量的数据中自动搜索隐藏于其中的有着特殊关系性的信息的过程。它是数据库知识发现(KDD)中的一个步骤。其主要任务是关联分析、聚类分析、分类、预测、时序模式和偏差分析等。 关联分析:两个或两个以上变量的取值之间存在某种规律性,就称为关联。数据关联是数据库中存在的一类重要的、可被发现的知识。关联分析的目的是找出数据库中隐藏的关联网。一般用支持度和可信度两个阈值来度量关联规则的相关性。 聚类分析:聚类是把数据按照相似性归纳成若干类别,同一类中的数据彼此相似,不同类中的数据相异。聚类分析可以建立宏观的概念,发现数据的分布模式,以及可能的数据属性之间的相互关系。 分类:是指找出一个类别的概念描述,它代表
18、了这类数据的整体信息,即该类的内涵描述,并用这种描述来构造模型,一般用规则或决策树模式表示。分类是利用训练数据集通过一定的算法而求得分类规则。分类可被用于规则描述和预测。 预测:是利用历史数据找出变化规律,建立模型,并由此模型对未来数据的种类及特征进行推测。预测的精度和不确定性被重点关注,通常用预测方差来度量。 时序模式:是指通过时间序列搜索出的重复发生概率较高的模式。与回归一样,它也是用已知的数据预测未来的值,但这些数据的区别是变量所处时间的不同。 偏差分析:在偏差中包括很多有用的知识,数据库中的数据存在很多异常情况,发现数据库中数据存在的异常情况是非常重要的。偏差检验的基本方法就是寻找观察
19、结果与参照之间的差别。 数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述主要任务。 结合项目实践经验,说明你参与管理和开发的项目在应用数据挖掘技术时,都遇到了哪些具体问题,采取了哪些具体的解决策略、技术、方法。这些技术和方法要针对该信息系统项目的实际应用环境和特点,具有一定的广度和深度。 (3)数据挖掘的方法主要有神经网络方法、遗传算法、决策树方法、粗集方法、覆盖正例排斥反例方法、统计分析方法、模糊集方法等,如下表所示。 B数据挖掘的方法/B方法 说明神经网络方法神经网络由于本身良好的鲁棒性、自组织自适应性
20、、并行处理、分布存储和高度容错等特性非常适合解决数据挖掘的问题。典型的神经网络模型主要分为 3 大类:以感知机、BP 反向传播模型、函数型网络为代表的,用于分类、预测和模式识别的前馈式神经网络模型;以 hopfield 的离散模型和连续模型为代表的,分别用于联想记忆和优化计算的反馈式神经网络模型;以 art 模型、koholon模型为代表的,用于聚类的自组织映射方法。神经网络方法的缺点是“黑箱”性,人们难以理解网络的学习和决策过程遗传算法是一种基于生物自然选择与遗传机理的随机搜索算法,是一种仿生全局优化方法。遗传算法具有的隐含并行性、易于和其他模型结合等性质使得它在数据挖掘中被加以应用。遗传算
21、法的应用还体现在与神经网络、粗集等技术的结合上。例如利用遗传算法优化神经网络结构,在不增加错误率的前提下,删除多余的连接和隐层单元;用遗传算法和 BP 算法结合训练神经网络,然后从网络提取规则等。但遗传算法的算法较复杂,收敛于局部极小的较早收敛问题尚未解决决策树方法是一种常用于预测模型的算法,它通过将大量数据有目的地分类,从中找到一些有价值的、潜在的信息。其主要优点是描述简单,分类速度快,特别适合大规模的数据处理。最有影响和最早的决策树方法是由 Ouinlan 提出的著名的基于信息熵的 ID3 算法。它的主要问题是:ID3 是非递增学习算法;ID3 决策树是单变量决策树,复杂概念的表达困难;同
22、性间的相互关系强调不够;抗噪性差。针对上述问题,出现了许多较好的改进算法,例如 Schlimmer 和 Fisher 设计了 ID4 递增式学习算法;钟鸣、陈文伟等提出了 IBLE 算法等粗集方法粗集理论是一种研究不精确、不确定知识的数学工具。粗集方法的优点有:不需要给出额外信息;简化输入信息的表达空间:算法简单,易于操作。粗集处理的对象是类似二维关系表的信息表。目前成熟的关系数据库管理系统和新发展起来的数据仓库管理系统为粗集的数据挖掘奠定了坚实的基础。但粗集的数学基础是集合论,难以直接处理连续的属性。而现实信息表中的连续属性是普遍存在的。因此连续属性的离散化是制约粗集理论实用化的难点覆盖正例
23、排斥反例方法它是利用覆盖所有正例、排斥所有反例的思想来寻找规则。首先在正例集合中任选一个种子,到反例集合中逐个比较。若与字段取值构成的选择种子相容则舍去,相反则保留。按此思想循环所有正例种子,将得到正例的规则(选择种子的合取式)。比较典型的算法有Michalski 的 AQ11 方法、洪家荣改进的 AQ15 方法以及他的 AE5 方法统计分析方法在数据库字段项之间存在两种关系:函数关系(能用函数公式表示的确定性关系)和相关关系(不能用函数公式表示,但仍是相关确定性关系),对它们的分析可采用统计学方法,即利用统计学原理对数据库中的信息进行分析。可进行常用统计(求大量数据中的最大值、最小值、总和、
24、平均值等)、回归分析(用回归方程来表示变量间的数量关系)、相关分析(用相关系数来度量变量间的相关程度)、差异分析(从样本统计量的值得出差异来确定总体参数之间是否存在差异)等模糊集方法即利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识别和模糊聚类分析。系统的复杂性越高,则模糊性越强,一般模糊集合理论是用隶属度来刻画模糊事物的亦此亦彼性的。李德毅等人在传统模糊理论和概率统计的基础上,提出了定性定量不确定性转换模型云模型,并形成了云理论分析并讨论你参与管理和开发的项目中所选择的数据挖掘方法,其具体实现过程中所采用的技术、方法和步骤,以及它们对该项目后期的工作产生了哪些积极(或消极)的影响
25、(实际应用效果和存在的问题)。论文最后可以进一步讨论你在该工程项目中获得的相关体会,以及在今后的工作过程中,如果碰到类似的开发项目你将如何应用这些经验或教训。对需要进一步改进的地方,应有具体的着眼点,不能泛泛而谈。)解析:三、B试题三/B(总题数:1,分数:75.00)3.论大规模分布式系统缓存设计策略 大规模分布式系统通常需要利用缓存技术减轻服务器负载、降低网络拥塞、增强系统可扩展性。缓存技术的基本思想是将客户最近经常访问的内容在缓存服务器中存放一个副本,当该内容下次被访问时,不必建立新的数据请求,而是直接由缓存提供。良好的缓存设计,是一个大规模分布式系统能够正常、高效运行的必要前提。在进行
26、大规模分布式系统开发时,必须从一开始就针对应用需求和场景对系统的缓存机制进行全面考虑,设计一个可伸缩的系统缓存架构。 请围绕“大规模分布式系统缓存设计策略”论题,依次从以下三个方面进行论述。 (1)概要叙述你参与实施的大规模分布式系统开发项目以及你所担任的主要工作。 (2)从不同的用途和应用场景考虑,请详细阐述至少两种常见的缓存工作模式,并说明每种工作模式的适应场景。 (3)阐述你在设计大规模分布式系统的缓存机制时遇到了哪些问题,如何解决。(分数:75.00)_正确答案:(1)简要介绍你参与实施的大规模分布式系统开发项目,尤其着重介绍项目的总体需求(特别是应用需求中对缓存机制的要求)、系统的逻
27、辑与物理架构、采用的技术等内容。简要说明自己在该项目中的角色、所承担的具有一定份量的主要任务以及所开展的主要工作。 (2)论文的第 2 部分是体现你所掌握的信息系统缓存设计技术理论知识的精华所在。从不同的用途和应用场景来考虑,缓存大体上可分为单实例缓存模式、复制模式和分区模式 3 种工作模式。每种工作模式都有其适用的场景和优缺点,详见下表。 B常见的缓存工作模式/B模式 说明 优缺点 适用场景单实例缓存模式是一种较为简单的缓存模式,多个应用服务器共享一个中央的缓存服务器。通过共享缓存的数据,能够极大地提高系统的性能该模式的主要限制在于缓存服务器的内存大小和节点增加之后服务器的处理能力和网络带宽
28、对缓存的要求比较简单;系统的吞吐量和数据量不大:性能要求不高复制模式将缓存的数据复制到多台机器上,对于单一缓存服务器性能出现问题的情况下,可以通过缓存复制的方式将压力分解到多个缓存服务器缓存客户端可以访问自己的缓存服务器,多个缓存服务器之间的数据是彼此同步的,对于性能要求更高的场景,该部署架构能够获得更高的吞吐能力数据量不是特别大;需要极高的性能;数据改动的频率不是特别大分区模式当需要缓存的数据已经超过一台服务器的内存上限时,可以考虑采用分区模式对数据进行线性缩放,也就是通过增加缓存服务器来解决数据增长和压力增加的情况其架构是无分享架构(SNA),每个节点之间的数据彼此独立,一个节点出现故障后
29、不会影响到其他节点。在出现某个节点宕机或者其他故障的情况下,致使这部分的分区缓存无法使用,并不妨碍其他数据节点数据的正常工作总体数据量较大,已经超出了单个缓存服务器的内存上限;系统缓存要求具有很大的可伸缩性;客户端数量庞大,单个客户端对缓存数据的数据量要求不大(3)进行大规模分布式系统缓存机制设计时可能遇到的问题包括(但不限于):如何缓存服务器的工作模式选择;高可用性的设计考虑;缓存一致性与分布式算法;对象状态同步的考虑;缓存钝化、激活、过期和初始化。结合项目实践经验,说明你参与实施的项目中,遇到了哪些具体的缓存机制设计问题,采用了哪些相关的解决策略、技术、方法和步骤,以及它们对该项目后期的工
30、作产生了哪些积极(或消极)的影响(效果和存在的问题)。论文最后可以进一步讨论你在该工程项目中获得的相关体会,以及在今后的工作过程中,如果碰到类似的项目你将如何应用这些经验或教训。)解析:四、B试题四/B(总题数:1,分数:75.00)4.论软件可靠性评价 软件可靠性评价是指选用和建立合适的可靠性数学模型,运用统计技术和其他手段,对软件可靠性测试和系统运行期间的软件失效数据(也可能包含软件生命周期内的其他可靠性数据)进行处理,并评估和预测软件可靠性的过程。 软件可靠性评价是软件可靠性活动的重要组成部分,既可在软件开发过程中实施,也可针对最终软件系统实施。软件可靠性评价的难点在于软件可靠性模型的选
31、择和软件可靠性数据的收集与处理。 请围绕“软件可靠性评价”论题,依次从以下三个方面进行论述。 (1)简要概述你参与实施的软件开发项目以及你承担的主要工作。 (2)说明你在项目实施过程中所选择的软件可靠性模型,并论述在软件可靠性模型选择时应该考虑的主要因素。 (3)收集软件可靠性数据时经常遇到的问题有哪些?简述你收集软件可靠性数据时所遇到的具体问题及解决的方法。(分数:75.00)_正确答案:(1)对你在论文中准备列举的、近期参与过的大中型信息系统软件开发项目的背景、项目规模、发起单位、目标、项目内容、组织结构、项目周期、交付的产品等做简要的介绍。接着简要说明自己在该项目中的角色及所承担的主要工
32、作。论文叙述自己参与设计和实施的项目应有一定的规模,自己在该项目中担任的主要工作应有一定的份量。 (2)常见的 10 类软件可靠性模型是:种子法模型、失效率类模型、曲线拟合类模型、可靠性增长模型、程序结构分析模型、输入域分类模型、执行路径分析方法模型、非齐次泊松过程模型、马尔可夫过程模型和贝叶斯分析模型。针对软件可靠性模型的构成以及使用模型来进行可靠性评价的目的,可从以下 4 个方面进行比较和选择。 模型假设的适用性。模型假设是可靠性模型的基础,模型假设需要符合软件系统的现有状况,在软件系统中与假设冲突的因素达到几乎不存在的程度。往往一个模型的假设有很多,需要在选择模型时对每一条假设进行分析,
33、评估现有软件系统中不符合假设的因素对可靠性评价有多大影响,以确定模型是否符合软件系统的可靠性评价工作。 模型预测的能力与质量,是指模型根据现在和历史的可靠性数据,预测将来的可靠性和失效概率的能力,以及预测结果的准确程度。因此,应尽可能选择比较成熟的、应用较广的模型作为分析模型。 模型输出值能否满足可靠性评价需求。根据可靠性测试的目的来确定哪些模型的输出值满足可靠性评价需求。重要的可靠性定量指标包括:当前可靠度、平均无失效时间、故障密度、期望达到规定可靠性目标的日期、达到规定可靠性目标的成本要求等。 模型使用的简便性:模型使用的数据在软件系统中易于收集;模型应该简单易懂;模型应该便于使用,最好有
34、工具支持。 (3)软件可靠性数据主要是指软件失效数据,是软件可靠性评价的基础,主要是在软件测试、实施阶段收集的。可靠性数据的收集工作是贯穿于整个软件生命周期的,它是一项艰巨而又烦琐的工作,受到许多潜在因素的影响和制约。常见的问题有(但不限于): 可靠性数据规范不一致,对软件进行度量的定义混乱。 数据收集过程存在于整个软件生命周期,但由于成本等因素,其连续性往往不能保证。 缺乏有效的技术和工具支持,难以进行自动分析。 数据完整性不能保证,收集到的数据大多数是不完全的。 数据质量和准确性不能保证。 缺乏可靠性数据的交流与共享。结合项目实践经验,归纳、梳理你参与实施的软件开发项目中,收集软件可靠性数
35、据时所遇到的具体问题。在项目实际应用环境中,你所采用的解决方法、技术和步骤。可供采用的解决方法主要有(但不限于):尽早确定可靠性模型,明确需要搜集的可靠性数据,确定涉及的术语、记录方法等;制定可实施的可靠性数据搜集计划,并指定专人负责。保证数据的收集和验证与软件开发过程同步进行;重视软件测试,特别是可靠性测试产生的测试结果的整理和分析;尽可能地利用工具进行收集工作,例如利用数据库进行存储和统计分析等。 论文最后可以进一步讨论你在该工程项目中获得的相关经验或教训,以及在今后的工作过程中,如果碰到类似的开发项目你将如何应用这些心得体会。对需要进一步改进的地方,应有具体的着眼点,不能泛泛而谈。)解析: