项目实践精解:IT项目的面向对象开发及管理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 面向对象的开发及管理概述

信息化系统的建设虽然重要,但它并不是一项简单的工作。1995 年,美国斯坦迪申(Standish)咨询公司对美国365位信息技术高层经理人员管理的8380个项目进行调查研究,得到如下结论:

● 信息技术项目正处于一个混沌的状态;

● 平均成功率为16%;

● 50%的项目需要补救;

● 34%的项目彻底失败;

● 平均超出时间为222%;

● 实际成本是估计成本的189%;

● 性能与功能只达到要求的61%。

我们从中可以看到,大多数信息化建设项目是以失败告终的。这其中一个重要原因就是没有贯彻软件工程思想和面向对象的开发及管理等原理和方法。接下来我们介绍这些重要概念。

我们知道,软件工程是研究软件开发和管理的一门工程科学。这里一是强调开发,二是强调管理。当然,开发中有管理,管理是为了更好地开发。所以,开发和管理是相辅相成的两个方面。

关于现代软件工程研究的内容,至今没有统一的说法。可以认为,现代软件工程研究的内容涵盖了“软件开发模型、软件开发方法、软件支持过程、软件管理过程”4个方面,如表1-1所示。

表1-1 现代软件工程研究的内容

本书就是围绕这4个方面展开的。在软件开发模型方面,主要讲解目前最流行的一种迭代模型:RUP(Rational Unified Process);在软件开发方法方面,主要讲解面向对象的方法;在软件支持过程方面,主要讲解Rational Rose、Power Designer、MS Project等工具;在软件管理过程方面,主要讲解软件配置及变更管理、CMM软件过程管理、项目管理等。

首先我们了解一下面向对象的软件工程方法论。到目前为止,软件工程中常用的开发方法主要有两种:面向过程的方法和面向对象的方法。

1.面向过程的方法

面向过程的方法习惯上被称为传统的软件工程开发方法。面向过程的方法包括面向过程需求分析、面向过程设计、面向过程编程,面向过程测试、面向过程维护及面向过程管理。面向过程的方法又被称为结构化方法,习惯上叫做结构化分析、结构化设计、结构化编程、结构化测试、结构化维护。

面向过程的方法特点是:程序的基本执行过程主要不是由用户控制,而是由程序控制,并且按时序进行。面向过程的方法优点是简单实用,缺点是维护困难。

面向过程的方法开始于20世纪60年代,成熟于70年代,盛行于80年代。该方法的基本特点是强调“自顶向下、逐步求精”,编程实现时强调程序的“单入口和单出口”。这种方法在国内曾经十分流行,大量应用,非常普及。

对于软件行业来说,某一种方法论往往来自于某一类程序设计语言。面向过程的方法来自于20 世纪60~70 年代流行的面向过程的程序设计语言,如 ALGOL、Pascal、FORTRAN、COBOL.C 语言等,这些语言的特点是:用顺序、选择(if-then-else)、循环(do-while或do-until)这3种基本结构来组织程序编制,实现设计目标。

面向过程的方法已经不能适应目前软件项目的需要了,一种更好、更强大的软件工程开发方法是下面要介绍的面向对象的方法。

2.面向对象的方法

面向对象的方法被称为现代的软件工程开发方法。面向对象是认识论和方法学的一个基本原则。人对客观世界的认识和判断常采用由一般到特殊(演绎法)和由特殊到一般(归纳法)两种方法,这实际上是对认识判断的问题域对象进行分解和归类的过程。

面向对象的方法(Object-Oriented Method,OOM)是一种运用对象、类、消息传递、继承、封装、聚合、多态性等概念来构造软件系统的软件开发方法。

面向对象的方法包括面向对象需求分析、面向对象设计、面向对象编程、面向对象测试、面向对象维护、面向对象管理。面向对象,或者说面向类的方法开始于20世纪80年代,兴起于90年代,目前已经走向成熟,并且开始普及。面向对象的方法基本特点是:将对象的属性和方法(即数据和操作)封装起来,形成信息系统的基本执行单位,再利用对象的继承特征,由基本执行单位派生出其他执行单位,从而产生许多新的对象。众多的离散对象通过事件或消息连接起来,就形成了软件系统。

面向对象的方法优点是易于设计、开发和维护,缺点是较难掌握。

面向对象的方法来源于20 世纪80 年代初开始流行的面向对象的程序设计语言,如Java、C++等。80年代末,微软Windows操作系统的出现,使得它产生了爆炸性的效果,大大加速了它的发展进程。

面向对象的方法实质上是面向功能的方法在新形势下(由功能重用发展到代码重用)的回归与再现,是在一种高层次上(代码级)的新的面向功能的方法论,它设计的“基本功能对象(类或构件)”不仅包括属性(数据),而且包括与属性有关的功能(或方法),如增加、修改、移动、放大、缩小、删除、选择、计算、查找、排序、打开、关闭、存盘、显示和打印等;它不但将属性与功能融为一个整体,而且对象之间可以继承、派生及通信。因此,面向对象设计是一种新的、复杂的、动态的、高层次的面向功能设计。它的基本单元是对象,对象封装了与其有关的数据结构及相应层的处理方法,从而实现了由问题空间到解空间的映射。简而言之,面向对象的方法也是从功能入手的,将功能或方法当做分析、设计、实现的出发点和最终归宿。

业界流传的面向方面的方法、面向主体的方法和面向架构的方法,都是面向对象的方法的具体应用。

本书主要以电子政务理论和实践为例,介绍面向对象的开发和管理。我们首先介绍一些IT项目开发的背景知识。