软件系统开发的艺术:可靠性,可用性

admin 系统开发 2019-02-22 17:28 0
 
  抽象
 
  生产对可靠性,可用性,维护和性能(RAMP)有特定要求的软件系统是软件工程师在开发周期各个层面面临的最大挑战之一。大多数需求规范工具比非功能性RAMP要求更适合功能需求。RAMP要求未指定,在稍后阶段指定,或者最好模糊地指定,这使得要求规范更像是一门艺术而非科学。此外,测试RAMP要求的成本通常是令人望而却步的。在许多情况下,很难测试某些RAMP规范,例如可维护性,可靠性和高可用性。即使是性能测试也经常依赖于工作负载,因此在实际系统工作负载期间,在测试时或系统调试时提供的性能数可能无法实现。使主题更加困难的原因是缺乏一套明确的规则或实践,如果严格遵守这些规则或实践,则会产生具有可接受的RAMP规范的系统。因此,直到RAMP软件系统的设计成为一个很好理解的主题,这种系统的开发将是一门艺术,开发这样的系统的工具和能力将取决于要开发的特定系统,环境在它将运行,以及部署的专业知识和知识水平。就像同一位艺术家制作的两件艺术品不相同,
 
  本文将通过几个案例研究,重点介绍RAMP软件系统生产中涉及的范例。目的是促进研究人员的兴趣,为具有明确定义的RAMP质量的SW系统的生产制定更具体的指导方针。
 
  生产对可靠性,可用性,维护和性能(RAMP)有特定要求的软件系统是软件工程师在开发周期各个层面面临的最大挑战之一。最需求规范的工具,例如,将Accent中,Nu Thena,SES,理性,更适合于比非功能性要求的RAMP功能要求[ 1,2,3,4,5 ]。RAMP要求未指定,在后一阶段中指定,或者在最好的隐约指定,这使得要求的规格而不是科学[更多的艺术6,7,8]。此外,测试RAMP要求的成本通常是令人望而却步的。在许多情况下,很难测试某些RAMP规范,例如可维护性,可靠性和高可用性。即使是性能测试也经常依赖于工作负载,因此在实际系统工作负载期间,在测试时或系统调试时提供的性能数可能无法实现。使主题更加困难的原因是缺乏一套明确的规则或实践,如果严格遵守这些规则或实践,则会产生具有可接受的RAMP规范的系统。因此,直到RAMP软件系统的设计成为一个很好理解的主题,这种系统的开发将是一门艺术,开发这种系统的工具和能力将取决于要开发的特定系统,8 ]。就像同一艺术家制作的两件艺术品不相同,没有两个软件系统具有相同的RAMP特性。软件系统的设计和开发基本上比它的编程阶段更复杂,Donald Knuth在他的经典着作“计算机编程艺术”[ 9 ]中将其视为艺术。
 
  关于软件生产周期中的艺术或科学的构成,文献中有相当多的争论。这在携带辩论SW发展是否是一门艺术或工程[几个参数是显而易见的10,11 ]。在互联网上一篇名为“软件开发:艺术或科学”的帖子中,来自休斯顿大学的Sammy Larbi写道:“关于软件专业是否是一个看似永无止境的辩论(或者可能是无关联的对话和误解)科学或艺术,或明确是否“做软件”实际上是一门工程学科[ 12,13 ]”。
 
  在一篇题为“软件开发的艺术,科学和工程”[ 14 ]的文章中,Steve McConnell认为软件开发是艺术,科学,工艺和许多其他事物。
 
  Naveen Gunti [ 15 ]研究了在SW工程技术背景下使用功能点分析的好处。罗伯特·格拉斯在他的着作“软件冲突2:软件开发的艺术与科学”中同意早期的研究结果,即SW设计是一种出现在人类心灵中的模型[ 16 ],类似于一件艺术作品出现在一个人的心灵中。艺术家。SUN Microsystems的杰出工程师Jim Waldo [ 17 ]写道:“软件工程与其他工程类似,不像我们大多数人想的那样。艺术有一个方面我们所做的,不是在学校学习,而是通过寻找大师和服务学徒“。
 
  本文的目的不是要争论软件开发是一门艺术还是科学,或者是软件开发周期中的科学或艺术。相反,本文将通过几个案例研究关注RAMP软件系统生产中涉及的范例。目的是促进研究人员的兴趣,为具有明确定义的RAMP质量的SW系统的生产制定更具体的指导方针。在性能范例部分,我们将讨论性能范例作为软件设计的主要部分之一。可靠性范例部分将介绍可靠性和可用性范例。可维护性问题将在讨论部分讨论。部分结论将阐述为RAMP软件系统开发制定指南和最佳实践的必要性,其中提出了RAM的一般框架。结论部分在讨论部分讨论。
 
  案例1:初始化问题
 
  故障恢复是与可用性相关的重要因素之一。故障恢复涉及恢复模式,软件系统开发的艺术:可靠性,可用性恢复时间和恢复成功率。在完全系统故障之后,恢复模式之一是重新启动故障系统和/或同一系统上的应用程序。为了实现的可用性一定水平(5个NINES例如)[ 22,23,24,25,26 ],该系统必须(重新启动,初始化,恢复检查点)在一定的时间限制内被重新启动。使用诸如马尔可夫过程分析[ 27 ]或随机活动网络模拟[ 28 ] 等技术确定最小可接受恢复时间]。这是基于另一个更高级别要求(例如,可用性要求)确定性能要求的情况。
 
  在分析过程中,恢复时间根据每个子任务消耗的时间进一步分解为子任务。然后,如果可能的话,使用性能预算来估计每个子任务的潜在增强。在此上下文中,性能预算定义了性能改进的限制。在我们的示例中,占用预算时间大部分的一些子任务包括启动映像加载时间,内核初始化时间和有效负载组件初始化时间。必须确定是否可以跳过任何子任务以节省时间并加快初始化过程。例如,当系统不太忙时,可以在初始化时跳过内存测试,以便稍后执行。 软件系统开发可靠性,软件系统开发可用性.
 
  在我们的示例中,我们将注意力集中在设备启动映像的加载时间上; 假设引导映像不驻留在设备上,就像无线基础设施设备中的情况一样。在使用ftp协议评估启动映像加载时间时,注意到ftp加载的速度取决于文件大小以及并发ftp加载会话的数量。我们评估了两个版本的ftp协议。我们测量了不同文件大小和不同并行负载的加载时间。图  2表明使用ftp加载协议的版本2且文件大小为11.6 MB时,加载时间最短。当并行执行4个下载会话时,可以获得最佳结果。我们观察到,增加超过4的开放ftp会话的数量将增加总加载时间。这是一个示例,其中性能改进需要仔细选择协议和参数设置。

分享:

扫一扫在手机阅读、分享本文

发表评论

评论列表(条)