美章网 资料文库 论软件工程中软件开发方法的趋势范文

论软件工程中软件开发方法的趋势范文

本站小编为你精心准备了论软件工程中软件开发方法的趋势参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

论软件工程中软件开发方法的趋势

一、软件工程中软开发方法的现状

(一)结构化方法

结构化程序设计方法中的思维创新被认为是程序开发方法发展中的重要飞跃,并且其成功也在很大程度上推动了结构化设计方法以及结构化分析方法的发展,在20世纪七八十年代,结构化方法在软件开发方法中占据了主导的地位并有效的对软件危机蔓延起到了遏制的效果,既是在今天,结构化方法的这种作用仍旧在发挥着。从当前来看,结构化方法具有成熟的技术并且使用简单,所以其应用也十分的广泛,但是在一些复杂的或者大规模的软件工程项目中,结构化方法却不能很好的对软件重复使用问题进行解决而难以对软件工程需求的变化进行适应,并且结构化软件开发方法在软件维护方面具有着较强的复杂性。

(二)面向对象方法

面向对象方法的基本原则以及出发点是对人类思维方式的模拟,从而让软件开发的整个过程最大化的接近于人类对世界认识的过程,从方法论方面看,面向对象的软件开发方法将系统看做是一个由很多对象互相作用、互相联系而形成的整体。面向对象的软件开发方法包括分析方法、设计方法以及程序设计,其中面向对象程序设计方法是面向对象方法的重要核心内容。在软件工程中,软件由文档和程序两部分组成,程序是由算法和数据机构共同构成,在传统程序开发的过程中,操作以及数据被分离为独立的内容,但是事实上,客观世界中的实体都具有静态和动态两种属相,对于软件工程而言,数据则是静态的属性,而操作则是动态的属性,二者具有密切的关系,而传统程序开发中将二者的分离在一定程度上是软件开发所面临的难度进一步的增加。而面向对象方法则强调了不同元素的共同组成,数据以及操作被看为是一个整体,而这种理念优势在于对软件的重复使用,同时也是代码更容易理解,但是在面向对象的方法中,软件开发过程中的划分相对模糊,所以在软件分析、软件设计以及软件设计的过程中会产生多次迭代。

(三)形式化方法

随着科技的发展以及人类对软件工程需求的不断提高,计算机软件开始执行会引发严重后果甚至威胁人类生命的重要任务,如对核反应堆进行监控、飞船的发射以及对一些交通设施进行安全监控等,而这些需求下的软件一般都具有较强的复杂性,在此背景下,在软件本身复杂性不断增加的基础上保证软件在执行任务时的精确、安全和可靠是十分重要的内容,而形式化方法就是为了满足这样的需求而产生。形式化软件开发方法所依据的是计算与数学模型来对软件系统的特性以及行为作出验证和描述,其中这些特性与行为包括设计、需求规格以及实现等,由此可见,严格的数学是形式化软件开发方法的重要基础特征。但是形式化软件开发方法也有其自身的缺陷,如在过程中所使用的数学模型或者数学工具并不能保证完全的安全与正确,并且是对同样的数学规范,在不同的软件工程背景下也会产生不同的后果,这种情况是由于不同领域在解释和相容规范过程中的不同而产生的。

二、软件工程中软件开发方法的趋势

在软件工程发展的过程中,繁琐复杂的开发过程、文档维护难度的加大以及软件开发过程中的反馈问题等逐渐的暴露出来,并且人们对软件提出了智能化的需求,而面对这些问题和需求的出现与改变,软件方法的研究与更新也引起了很大的重视与关注,许多新的方法出现并体现出了很大的发展潜力。

(一)敏捷软件开发方法

敏捷软件开发方法包括ASD、FDD、DSDM、XP等,敏捷软件开发作为一种以人为核心、循序渐进、迭代的开发方法,它把软件项目的整体构建划分为许多个子项目,而这些子项目本身在测试后也验证具有可运行以及集成的特征。敏捷软件开发方法强调了人的作用以及对变化情况的使用,同时强调反馈有效性和简单化,同时重视生产效率的提高,在软件开发过程中,小项目可以分别完成并可以独立运行,软件可以始终处于能够进行使用的状态。它的12条实践原则能够在一定程度上体现出它自身的特性:一是获得客户的满意最为优先,需要持续的、尽早的交付有使用价值的软件;二是在软件开发过程中的后期也可以改变对软件的需求;三是交付可使用的软件要具有经常性,交付的时间需要控制在最短的时间范围之内;四是开发人员以及业务人员在项目开发中需要始终共同工作;五是需要为被激励的个人提供必要的支持与环境,并信任他们能够完成软件开发工作;六是在团队工作中,面对面交谈是左右效率的信息传递方法;七是首要的进度标准是可以工作的软件;八是可持续的提高开发速度;九是强调优秀设计与技能在提高敏捷能力方面的作用;十是简单;十一是最好的需求、构架与设计来源于自组织的工作团队;十二是在一定时间内,工作人员要针对如何提高工作有效性进行反省并对工作行为作出调整。当前敏捷软件开发方法尚处于发展阶段,所以并不如面向对象方法成熟。

(二)面向Agent的软件开发方法

在互联网不断发展的背景下,规模大以及复杂性高成为了软件开发中最明显的趋势,人们对计算机软件的需求要开始重视其智能化,但是原来的软件开发方法并不能胜任开发具有智能特性软件的工作。Agent的概念来源于资源分布式人工智能领域,自主性、驻留性以及灵活性是其最重要的三个特征。自主性是指Agent能够以外部环境以及内部状态为根据来对自身的状态进行决定,在此过程中并不需要外部进行控制和干涉。驻留性是指Agent能够感知到外部环境产生的变化。灵活性是指Agent能够与其他的Agent进行比较复杂的协同交互行为。凭借Agent自身的优势,它在以后的发展中可以应用于交通管理、医疗护理、游戏娱乐、电力电讯甚至国防军事等众多领域,虽然Agent仍旧处于探索阶段并且并不成熟,但是已经得到了广泛的重视与关注,并且也会成为软件工程在软件开发方法方面的重要趋势之一。(本文作者:樊莉丽单位:九江学院)