随着科学技术的进步,各种新型软件开发方法逐步兴起,传统软件开发方法受到了强有力的冲击。我们都知道,软件开发过程决定了需求的变化和需求变化决定了软件的开发过程,这是软件开发的两个大的类别。传统软件开发方法中最主要的是结构化的开发方法,是一种以使用功能作为其构造块的软件开发方法。它非常适合于科学计算领域的方法,因此,目前软件开发的大部分还是会采用这一传统的开发方法,特别是在科学应用中。但是一旦涉及到要处理庞大信息的信息管理领域时,传统软件开发方法就不再适合,因为传统软件开发方法的开发过程是属于前者,它要求的项目变化不大,甚至是很小的情况下才可以,但是这并不能满足信息管理领域的开发过程要求。由此可知,传统软件开发方法并不灵活,不太适用于现代的其他领域,对大多数领域来说,我们还是需要一个与之不同的开发方法来弥补其不足。从这一点上分析,以面向对象的开发方法的存在就非常有必要,甚至是不可或缺。
一、软件工程的发展
软件工程常常被用于计算机科学等原理中,是一种用来求得解决方法软件的工程,把传统软件工程的一部分作为基础,得到新的软件。通过这样的方式来达到高质量和低成本的目的。从十九世纪60年代末到80年代初,软件系统的规模在飞速的扩大中,整个软件工程也在进一步的复杂化,不仅如此,它还不断的加深在关键领域中的应用,促进了软件开发过程中采纳工程化的方法进行管理,产生了瀑布模型和结构化语言、结构化方法、各种管理方法等成果。在之前一段时间以研究系统实现为主,后一段时间以管理和软件的质量为主。而从80年代初到现在,提出了软件工厂的概念,产生了被广泛应用的面向对象的方法和相关的编程语言,在工业实践中建立起一种特有的量化评估程序,用以判定软件的成熟程度。目前,软件工程的研究从过程管理逐步转向产品开发,更加注重新程序开发和软件生产,随之软件的应用范围也将继续扩大,成为信息社会的必要基础设施。金融、电信、航空航天等将会成为软件的集中营。随着社会的进步,更多的领域也将应用到软件工程,我们的生活中将会随处可见软件工程的身影。
二、现代软件工程开发方法
社会每时每刻都是在向前发展,通过众多专家的不懈努力,我们在原有软件开发方法上,又进一步发展了新的软件开发方法。总的来说,软件工程的开发方法主要有:Parnas方法、SASA方法、面向数据结构的软件开发方法、Warnier方法、问题分析法、面向对象的软件开发方法、可视化的软件开发方法等。Parnas方法是最早期的软件开发方法,它主要成果就是信息隐蔽性原则,这个原则在之后的面向对象的软件开发方法中也同样的存在。Jackson方法在考虑输入数据结构的同时还考虑输出数据结构,在商业应用中的文件表格处理中非常有效;Warnier方法与Jackson方法的区别在于,使用的图形工具和伪代码,但是最重要的是Warnier方法只考虑输入数据结构,而不考虑输入结构。问题分析法中的PAM方法是专注于输入、输出和系统,但是由于其固有的局限性,仍然只适用于中小型问题,并且也只对其有中小问题有效。而纵观当代的各个不同的领域,我们采用最主要的软件开发方法是面向对象的软件开发方法。它具有独到的优势,其不仅提供支持系统的所有视觉的范型,而且以纵横的方式管理软件的复杂性。总之,所谓的现代软件工程就是以对象为主,对对象问题所进行的一系列的操作,具有强烈的类似人处理问题的色彩,这是它的闪光之处,是它的优势,也是与传统软件开发最不同的地方。
三、面向对象的软件开发方法
随着需求一再提高和各种软件开发方法的逐步发展,甚至是完善,面向对象开发方法越来越成为现代各个领域关注的重点。与之相比,传统软件开发方法的软件重用性能非常差,开发出一个软件并不能被多次重复使用;软件的可维护性也达不到需求,一旦文档资料丢失之后,就很难修复,即使最后能被修复,其代价和成本非常高昂。最重要的是,利用传统软件开发方法开发出来的软件不能满足用户的需求,这是传统软件开发方法最大的缺憾。面向对象的软件开发方法有Booch方法、Coad方法和OMT方法。Booch方法是面向对象软件开发方法的基础,它提出是以对象为单位进行问题分析,可以将问题的结果反映到问题域中,更接近人处理问题的方法。Coad方法是二十世纪提出的一种新型的软件开发方法,它完成了从需求角度进行类和类层次的结构认定。OMT方法是也是一种新型的方法,它主要是对真实问题进行建立模型,这样建立起来的软件系统对问题的描述更为清晰,对出现的问题更容易进行维护和解决。从理论上考虑,面向对象的开发方法更适用于飞速发展的信息化社会。
四、现代软件开发的有效运用
(一)软件开发过程中的常见问题
二十一世纪以来,一种新兴的面向对象的软件工程开发方法在我国越来越流行,大多数软件开发者不再采用传统软件开发方法,而是选择新的方法。传统软件开发方法被认为是墨守成规,使用它被认为是一种守旧的象征,是止步不前。他们普遍认为,面向对象的软件开发方法足以解决软件开发中出现的一切问题,传统的软件开发方法不必再被使用。这样的想法和做法无疑是错误的,通过一段时间的检验,我们就不难发现,所谓新型的软件开发方法并不是适用于所有,它根本不具备普适性,它只是在某些领域中有着不可替代的作用。其结果就是,很多企业突然采用了与自己开发领域不相适应的软件开发方法,产生了一系列的问题,却无人质疑是新的软件开发方法的问题。这样一来,也就导致了新的面向对象软件开发方法的盛行,但是市面上传统软件开发方法依旧流行。书店里面向对象软件开发方法的书籍被摆在显眼的位置,但是传统的软件开发方法的书籍却是占据着大量的书架。因此,虽然采用新型的面向对象的软件开发方法已经不可阻挡,但是依然不能完全抛弃传统软件开发方法。传统软件开发过程的工具如数据字典和实体-关系图等在使用数据库的过程中仍然具有不可替代的作用。
(二)开发方法在软件体系结构中的有效性
软件体系结构有C/S结构和三层结构两种。C/S结构是指客户机与服务器的结构,主要是通过这个客户机与服务器的结构充分利用两端硬件环境的优势,将任务合理的分配给客户端和服务器,提高效率,减小开销。它的基本原则是将任务分解成多个子任务,由多台计算机分工完成,客户端处理数据、数据表和用户接口功能,而服务器完成DBMS的核心功能。因此在C/S结构的开发过程中,结合开发过程的实际需求,我们只需要采用之前所说的传统软件开发方法中的可视化开发方法,建立好一个清晰可视的用户交互界面,这只需要通过可视化软件开发方法进行一个简单的设计即可,不需要采用面向对象的方法。退一步说,不适合的方法即使你想勉强使用,那么给我们带来的有可能是难以解决的问题,这样甚至会导致整个项目的破裂。所以,对C/S结构来说,只单纯地采用传统可视化软件开发方法就可以。接着,我们再来说三层结构,三层结构主要有表现层、业务逻辑层和数据访问层。从本质上来说,三层结构其实就是在客户和数据之间添加的一个中间组件。数据访问层是对数据进行操作,业务逻辑层是操作具体的问题,表示层就是将所得的结果用界面的形式呈现给用户。经过对三层结构的具体分析我们可以知道,三层结构主要是面向数据,是面向对象,因此,对于开发者的开发过程而言,三层结构应该采用的是新兴的面向对象软件开发方法。面向对象软件开发方法在此时无疑显露出不可阻挡的优势,虽然在实际开发过程中仍然需要传统的软件开发方法作为辅助,但更多的却是要采用面向对象软件开发方法。对此,需要面向对象的方法。
(三)UML的有效运用
UML是一种建模语言,需要建模的时候,就可以使用UML。UML就是在面向对象的分析与设计高潮中的产物,它统一了上述阐述的Booch,Jackson以及Rumbaug的表示方法,逐渐的成为大众所接受的一种建模的标准语言。在软件无线电系统的开发过程中,UML甚至可以在整个的设计周期中进行使用,不仅能缩短设计时间,还可以降低成本提高效率。UML消除了各种语言之间的不同,成为了一种通用的语言,被大众使用,它的建模能力比面向对象的其他建模方法更为实用和有效。因此,我们可以看出它在软件领域和机械系统、企业机构和需要处理复杂数据的工业系统和工业过程中是有效的,有着无可比拟的优势。
(四)4对RUP的评价
RUP指的是一个过程。这个过程在被人们称赞的同时也会对它的缺点而惋惜。RUP的软件生命周期在时间上被分为初始、细化、构造和交付四个阶段。每一个阶段结束之后,就要进行阶段评估,只要评估结果满意,才能进入下一个阶段。RUP中有商业建模、需求、分析设计、实现、测试、部署、配置和管理、迭代开发环境等几个部分,其中迭代开发环境是其的核心。在迭代的开发过程中,需求管理、基于组件的体系结构等方面,给每个参加开发活动的成员都提供了一定的准则和指导,大家彼此之间共享相同的知识和信息,提高了团队的生产力。RUP不仅能提高生产力,还建立了一个简洁清晰的开发过程,有很大的通用性能。但是,RUP也有很大的不可忽略的缺点,比如它不能支持多个项目的同时开发,并且它指的是一个开发的过程,重要的是过程,并不是软件的全部内容。总之,RUP是面向对象软件开发过程的一种,是面向对象软件开发方法的主要实践者,虽然有缺点,但是瑕不掩瑜,在整个过程中,更多的是其闪光之处。
五、结论
在信息技术高速发展的社会,我们应该合理有效地运用不同开发方法,综合不同开发方法的优势,摒弃其劣势,让整个的开发过程效率更高,成本更低。此时最需要我们做的就是坚定自己的信念,无论对传统的软件开发方法,还是面向对象为代表的新型软件开发方法,都不能被潮流所左右,要择其优点,摒弃不足。另外,不同的领域适合不同软件开发方法,两者之间的地位是等价的。不能因为流行或者是什么别的原因,就随意否定任何一个的存在意义。只有正确的按照软件系统结构来挑选适合的软件开发方法,才是对软件开发方法最好、最有效地运用,才是更长久的方法。
作者:苏警 单位:安徽电子信息职业技术学院