经济社会的高速发展使得信息技术也得到了进一步的发展,人们也因此迈入信息化时代。不管哪种行业对于计算机的需求都不断增大。尤其是在军工及高技术要求的领域,计算机几乎已经成为了这些行业发展的核心,因此他们对于计算机的性能要求也是十分高。所以需要对计算机系统开发以提高计算机性能。
计算机系统开发中的可信性评价计算机系统可信性是描述系统所提交服务的性质的一种定性量度,用于表征系统可提交用户有足够理由依赖的期望服务能力。 所谓系统提交的服务是指所有由用户察觉到的系统行为。可信性作为一种定性量度需根据不同应用来对其属性具体化或定量化。典型的可信性定性/定量量度包括:可靠度、可用度、安全度。可维修度、可测性、完整性等。
开发一种能提供期望服务的高可信计算机系统是一个复杂的工程化过程,通常包括需求、 设计、 实现、 集成四个阶段为使系统达到期望的可信程度,通常需要若干种手段互补地综合应用于高可信系统开发过程 的所有阶段中,以排除上述故障、错误和失效的影响。用于获取可信性的手段可归纳为以下几种 :
避错技术:采用正确的设计和质量控制方法尽量避免把错误引进系统。
容错技术:利用外加资源的冗余技术使系统中发生故障时仍能提供正确的服务。
评价技术:对系统采用的机制提供预期服务的能力进行测试、验证和确认。
评价技术根据评价目标不同分为功能评价、性能评价、可信性评价三种。这里介绍高可信计算机系统开发过程中的可信性评价技术,即评价采用避错/容错技术的系统是否满足预定的可信性目标。可信性的评价应包含在系统开发过程的需求、设计、实现、集成等各个阶段中,且作为各阶段中的一个重要的必不可少的步骤。根据评价目标的不同,可采用不同的定性/定量和模型/试验的评价方法1。
需求阶段需求阶段是系统开发的开始阶段;主要包括问题定义、需求分析和需求说明三个步骤。问题定义是指开发人员对需解决的问题即预开发的系统的理解,形成以文字形式描述的详细说明,这是解决问题的第一步。需求分析是指从问题描述中抽取对预开发系统的功能、性能和可信性等方面的要求并加以分析和确定。需求说明步骤的任务是对需求分析步骤得到的分析结果进行综合的严格描述。
在需求阶段需要完成的与高可信系统开发宥关的任务包括:确定与可信性有关的开发目标;确定系统开发中需考虑的故障类型;确定开发工作的组织和计划1。
设计阶段设计阶段主要包括方案确定、子系统划分和子系统设计三个步骤。
实现需求阶段提出的目标可能有多种不同的设计方案,且各种方案具有不同的特点和优缺点。方案确定步骤需完成根据需求说明中规定的系统功能、性能和可信性方面的要求在不同方案之间进行折衷选择。选择的原则是在满足系统需求的前提下尽量花费最小的代价。
确定系统设计的最终方案后,通常需要将整个系统划分为若干子系统分别进行设计。这不仅是因为现代计算机的庞大和复杂经常需要多位工程技术人员的合作,而且也是获取高可信系统的必要步骤。通常对子系统的细分包含在子系统的设计中。在划分子系统的同时,还需将整个系统的可信性目标分配至各子系统上,从而形成各子系统的需求和功能描述。子系统划分中与可信性开发有关的工作还包括故障错误约束界限的定义、冗余技术的引、设计多样性的确定、容错机制的应用层次等。
子系统划分时形成的各子系统的具体需求为其设计提供明确目标。设计工作通常需经过概要设计和详细设计两个阶段,最终提供所有子系统的设计细节。用来获得高可信性的各种避错技术和容错技术主要在子系统设计阶段得到应用1。
实现阶段设计阶段将完整系统划分为若干相对独立的子系统分别进行详细设计。实现阶段的任务是将各子系统的详细设计具体化为子系统样机。根据所划分的子系统的不同,样机也可能以不同形式提交出来,如硬件样机和软件样机或细化的硬件各组件的样机和软件各模块的样机。将设计转化为样机的过程是系统开发中的关键步骤,也是很可能包含改进错误的阶段。
实现阶段的评价工作主要集中于对各子系统实现的评价,包含两方面的含义。一方面是验证子系统的实现是否与设计一致,即是否正确体现了设计意图;另一方面还要对子系统的实现是否满足分配到各手系统上的可信性 目标进行必要的确认。通常设计阶段的评价是验证、诊断和纠正的过程,从而排除实现中可能存在的错误。由于子系统经过实现阶段后可以获得真实样机;因此实现阶段的评价经常采用基于试验的评价方法1。
集成阶段当各子系统样机已实现并经测试后,这些样机必须组合到一起成为一个完整的可运行的系统。这种被称为集成组合过程可视为子系统划分的逆过程。集成的基本目的是使所有子系统联合工作来执行系统期 望的功能每一个子系统经实现阶段的评价后可以确保正确工作,但当各子系统需要协同工作时,可能会出现意想不到的问题。集成工作过程中与可信性有关的虽为困难的工作是将某些子系统中的内部故障检测;诊断和恢复等容错机制和由多译子系统共同提供的容错服务准确无误地组合为一个整体。 另外,各子系统中产生的并发故障和相互影响增大集成结果存在故障的可能性。1
计算机软件系统开发核心内涵计算机软件主要由应用软件以及计算机系统这两个部分组成。对于计算机应用软件而言,可以帮助用户在计 算机应用的过程中及时解决出现的问题,例如计算机系统中的学习软件以及管理软件。而计算机系统软件主要是 指与计算机本身有着关联性的软件,例如系统中的计算机监控软件以及维护软件等。无论是计算机应用软件,还是计算机的系统软件,在开发及应用的过程中都是为了给用户提供一个良好的使用环境。因此,计算机软件的开发就是整个计算机应用中的重要组成部分。
计算机软件的开发及发展,可以逐渐推动信息技术的更新,因此,计算机软件的开发会推动网络时代的发展,同时计算机软件的开发以及技术的应用也是软件工程中核心性的内容。在计算机网络发展的过程中,能够实 现网络支持以及远程的系统控制,并逐渐将计算机网络转变成一种共存性的系统开发模式。计算机网络系统的发展,最主要的来源是对软件系统的开发,通过软件的开发可以在根本意义上解决人们生活中所遇到的问题,从而逐渐提高软件开发系统的安全性技能2。
发展趋势随着计算机网络的逐渐发展,在软件开发的过程中应该实现网络化、服务化以及智能化的发展理念,从而为整个软件的设计营造良好的发展空间。首先,实现网络化。网络化是计算机软件开发及设计的必然发展趋势,软 件的应用要依赖于网络,同时,也可以逐渐促进网络化的发展,从而实现软件系统以及网络系统双赢的局面。因此在软件开发的过程中应该趋于网络化的发展需求。其次,实现服务化。软件开发及应用的过程中,通过软件系 统服务化的设计,可以为用户提供更好的服务,在设计的过程中应该运用先进技术,实现以人为本的设立理念, 从而在最大程度上满足用户的需求。最后,实现智能化。在科学技术不断发展的过程中,智能化的发展理念逐渐成为软件设计中必然性的发展趋势,开发人员在软件设计的过程中要实现智能化的理念,从而实现新技术的革新2。
计算机软件开发技术的方式在现阶段软件开发技术的应用过程中,基本的设计理念已经实现了科学化的发展需求。而在新时期的背景下,合理地选择软件开发的技术形式,就成为技术开发中的核心内容。
1.生命周期法
生命周期法被称之为结构化的系统开发理念,是现阶段国内外软件开发技术应用中最普遍的方式,特别是在复杂性软件系统的开发过程中,生命周期法的应用就充分显示了其优越性的特点。在软件设计及开发的过程中, 可以将系统的维护分为不同的阶段,每个阶段都有明确性的任务及目标,所以在系统应用的过程降低了软件开发 的复杂性,提高了技术操作的能力。但是,对于这种技术的开发理念而言,在设计的过程中开发的周期较长,不同的阶段不能同时进行,这种现象的出现就为软件的设计及开发带来了制约性2。
2.原型化开发法
原型化开发方式也是计算机软件开发中常用的技术手段,同时也是软件开发中常用的方式,开发人员通过对 系统需求的分析,取得了有效性的结果,然后在将开发设计的原型并用,在系统运行的过程中将相关的结果进行 合理性的修改,直到达到客户满意的标准。对于这种开发设计理念而言,在设计的过程中应该明确客户的需求, 降低开发的成本及风险,从而有效地通过系统服务的应用,对整个系统进行合理化的分析设计。但是,在整个技术应用的过程中,并不适合大型的系统开发,而且,在系统运行的过程中很难实现对系统的维护2。
3.自动开发法
在自动形式软件开发的过程中,为了实现软件设计的核心目标,就应该建立健全的软件工程质量管理程序。 首先,对软件工程的产品质量进行合理化的构建,所设计的软件要满足所有客户的不同需求,在分析的过程中应 该与实践内容进行充分性的结合,而且,也应该对客户的要求进行观察,如果客户的意向发生改变,就应该及时 通知设计人员,从而充分满足客户的基本需求。其次,应该制定有效的软件开发及维护系统,通过科学化标准内容的建立,优化维护的方式,从而实现协作管理的最终目的。最后,制定完善的软件工程评价系统,通过复查、 检测以及评估系统的建立,实现软件开发系统的最终目的2。