软件发展规律浅析

2018-07-24 13:48:09


1 软件危机概述    

1.1  软件危机新问题    

软件危机是指软件生产方式过于落后,但是计算机软件需求迅速增长,两者之间造成难以调和的矛盾,从而导致软件在开发与维护过程中出现一系列严重问题的现象。    

1.2  早期软件危机的表现    

因为软件产品是人为生产的产品,只要是由人做的工作都不会是完美无缺的,总会或多或少的存在一些错误。既然错误是必然存在的,我们目前的问题是如何避免错误的产生和消除已经产生的错误。    

早期软件危机主要表现在:

1)开发费用和进度失控,为了赶进度或压成本不得不采用一些权宜之计,这样又往往严重损害软件产品质量。

2)软件可靠性差,尽管耗费了大量的人力物力,系统的正确性越来越难以保证。

3)软件难以维护,很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正。    2 软件开发规律认识    

2.1 软件开发本质    

软件开发规律是所有软件开发人员不得不研究和解决的问题,尤其是中国的软件从业者不仅要研究一般的软件开发规律,还要研究具有中国特色的软件开发规律和中国商业软件的开发规律。软件开发的本质其实就是一种映射,具体的说是要实现“高层概念”到“低层概念”的映射,从“高层处理逻辑”到“低层处理逻辑”的映射。特别是对于大型软件系统的开发,这一映射是相当复杂的,涉及相关人员、使用技术、采取的途径等等。    

软件工程活动是生产一个最终满足用户的需求且达到工程目标的软件产品所需要的步骤,包括需求、设计、实现、确认、支持等活动。需求是在一个抽象层上建立系统模型的活动。设计活动定义实现需求规约所需的结构,该活动的主要产品包括软件体系结构、详细的处理算法。实现活动是设计规约到代码转换的活动。验证确认是一项评估活动,贯穿于整个开发过程,包括动态分析和静态分析。    

2.2 软件过程管理    

在实际的项目质量管理中,质量管理总是围绕着质量保证过程和质量控制过程两方面。这两个过程相互作用,在实际应用中可能发生交叉。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。软件质量控制主要为发现和消除软件产品的缺陷。对于高质量的软件来讲,最终产品应该尽可能达到零缺陷。而软件开发是一个以人为中心的活动,所以缺陷是不可避免。要想交付一个高质量的软件,消除缺陷的活动就变得很重要。缺陷消除是通过评审和测试来实现。潜在的缺陷越大,用来消除它所花的费用越高。因此成熟的软件开发过程在每一个可能会引入潜在缺陷的阶段完成之后会展开质量控制活动。这些活动包括:需求评审、设计评审、代码走查、单元测试、集成测试、系统测试和验收测试等。    

CMM对实施软件过程的必要条件做了明确定义,划分了5个成熟度等级:    

⑴初始级。在初始级,企业一般不具备稳定的软件开发与维护的环境。处于这一等级的企业,成功与否在很大程度上决定于有杰出的项目经理与经验丰富的开发团队,项目成功与否非常不确定。    

⑵可重复级。这一级,建立了管理软件项目的政策,以及为贯彻执行这些政策而定的措施。通过这一级,企业实现了过程的规范化、稳定化。    

⑶定义级。这一级,面对整个企业的软件开发与维护过程的文件将被制订出来。这些过程是集成到一个协调的整体。项目小组要根据该项目的特点去改编企业的标准软件过程来制订出为本项目而定义的过程。    

⑷定量管理级。这一级,企业对产品与过程建立起定量的质量目标,同时在过程中加入规定的很清楚的连续的度量。    

⑸优化级。这个等级中企业会把重点放在对过程的不断优化。企业会主动去找出过程的弱点和长处,达到预防缺陷的目标。项目小组分析引起缺陷的原因,对过程进行评鉴与改进,以便预防已发生的缺陷再度发生。    

软件危机曾经是计算机领域最热门的话题,为了解决这场危机,众多专家、学者做了大量努力,最终认识到所谓的软件危机实质上是软件中存在错误。错误是软件的固有属性,是没法去改变的。软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。ISO 9000把过程定义为:使用资源将输入转化为输出的活动所构成的系统。过程定义了:运用方法的顺序、应该交付的文档资料、管理措施,以及标志软件开发各个阶段任务完成的里程碑。