范型的意思是指模型或模式;而在软件工程学科中,范型用来表示一套涵盖整个软件生产过程的技术的集合。目前使用得最广泛的软件工程方法学,分别是结构化开发范型和面向对象开发范型。
结构化开发范型自1968年被提出,经过了多年的发展,形成了一套完整的体系。构成结构化开发范型的技术包括结构化分析、结构化设计、结构化编程和结构化测试,这些技术在以数据为主的系统或小型系统方面得到广泛应用。采用结构化技术来完成软件系统开发的各项任务,并使用适当的软件工具或软件系统开发环境来支持结构化技术的运用。这种范型把软件的生命周期依次划分为若干个阶段,然后顺序地完成每个阶段的任务。采用这种范型开发软件的时候,从对问题的抽象逻辑分析开始,一个阶段接一个阶段地进行开发,从而降低了整个软件开发工程的困难程度。引入结构化开发范型所带来的主要改进体现在软件工业上。结构化开发范型在工业领域的运用是软件工程被大规模采纳的主要原因。结构化开发范型获得成功的原因是,结构化技术考虑问题要么面向行为,要么面向数据。软件的基本组成部分包括软件的行为和这些行为操作的数据。有些结构化技术,如数据流分析是面向行为的,这些技术集中处理产品的行为,数据则是次要的。反之,有些结构化技术,如JSP系统开发技术是面向数据的,这些技术以数据为中心,在数据上操作的行为则是次要的。
随着软件系统的规模不断扩大,结构化开发范型越来越难以应付。也就是说,结构化开发范型处理5000行或50 000行代码是有效的,然而,当今的软件系统,50 000行或5 000 000行甚至更多行代码的产品非常普遍。面向对象开发范型把数据和行为看成同等重要,即将对象视作一个融合了数据及在其上操作的行为的、统一的软件组件。对象的概念符合业务或领域的客观实际,反映了实际存在的事物,也符合人们分析业务本质的习惯。面向对象技术自20世纪90年代提出以来得到快速发展,并被应用于各种各样的软件开发中。面向对象技术将数据和数据上的操作封装在一起,对外封闭,实现了信息隐藏的目的。使用这个对象的用户只需知道其暴露的方法,通过这些方法来完成各种各样的任务,完全不需要知道对象内部的细节,保证了相对独立性。面向对象技术的优势主要体现在维护阶段。相对于结构化技术,面向对象开发范型无论对象的内部细节如何变化,只要对象提供的方法(即接口)保持不变,则整个软件产品的其他部分就不会受到影响,不需要了解对象内部的变化。因此,面向对象开发范型使维护更快、更容易,同时产生回归错误的机会也大大降低。面向对象开发范型使开发变得相对容易。大多数情况下,一个对象对应物理世界中的一个事物。软件产品中的对象和现实世界的同等对应物之间的密切对应关系,促进了更优化的软件开发。对象是独立的实体,因此面向对象开发范型促进了复用,降低了开发维护的时间和费用。目前,传统的结构化开发范型仍然是人们在开发软件时使用得十分广泛的软件工程方法学。广大软件工程师对这种范型比较熟悉,而且在开发某些类型的软件时也比较有效,因此,在相当长一段时期内这种方法学还会有生命力。此外,如果没有完全理解传统范型,也就不能深入理解这种范型与面向对象开发范型的差别以及面向对象开发范型为何优于传统范型。在使用结构化开发范型时,分析阶段和设计阶段过渡太快,而面向对象开发范型是一种迭代的从一个阶段向另一个阶段过渡的范型,比结构化开发范型平滑得多,从而降低了开发过程中的故障数。
相关资源:目前软件组织常采用的几种范型