(一)
大型业务应用系统开发的现状
目前,大型业务应用系统正面对来自两方面的挑战:用户和技术。国外有统计,只有16%的信息系统项目开发成功,国内的成功比例将更低。根据SSD的研究,国内很多的信息系统开发失败,编程水平不是主要因素,而是因为:
·
全面质量管理不规范。项目管理和质量是一个项目开发的高层建筑,是目前障碍中国信息技术发展的根本原因。全面质量管理是管理和质量结合的产物。项目管理的任务有项目范围、人力资源、交流、日程、质量、价值六个基本功能。质量体系有开发过程中的监控,产品提交的测试。
·
开发方法不科学。方法是计算机技术的核心。人的思维模式和计算机的工作模式是不同的,所以计算机系统开发服务是个解释过程。使计算机运行时符合人类思维模式的开发方法才是科学的。
·
开发目的不明确。计算机技术开发虽然是以高科技为特点,但它首先是一个典型的服务行为,不是一味追求技术,满足用户需求才是最重要的。
·
开发平台不合理。开发平台的确定首先是满足用户需求,确定需求的工作也就是系统分析。开发平台选择不合理的症结往往是没有进行系统分析。所以,信息系统开发首先是系统分析,然后再考虑平台选择。采用开放可伸缩的主流开发工具要顺应潮流。
·
开发手段不先进。工具是生产力水平的主要标志。长期以来,国内信息技术处于低水平徘徊,开发手段的落后,开发一直依赖人工完成,先进工具迟迟不能推广。没有准确高效的辅助工具是越来越不能适应现代需求。
(二)
信息系统的构架
1.
信息系统的组成
信息工程是一个系统工程,它不仅仅是由计算机技术组成。一个完整的信息系统有三个组成部分,除了计算机技术外,还有组织和管理。
在这三个方面中,往往业务管理模式的建设是主要因素。SSD在信息工程项目的开发中特别重视来自于各方面的因素,强调协调和合作。除计算机系统的建设外,同样非常重视计算机技术在业务模型中的地位,以及算机技术对业务模型所产生的影响。使信息系统在三个方面的权衡中得到最佳解决方案。
2.
信息系统的生命周期
信息系统是一个发展的系统,它的生命周期要超出软件生命周期的范围。信息系统的根本目的是实现业务需求。信息系统开发的源泉来自于业务上的挑战。同时基于管理、计算机技术、组织三方面的参与实现一个新的信息系统。这就是信息系统的生命周期。SSD一直致力于研究信息系统生命周期的发展规律以及各个因素之间的关系。
3.
信息的加工过程和信息系统的层次
计算机是加工信息的机器。信息是客观事物的表现。只有更深入的发现信息加工的内部规律才能更好地构造一个成功的信息系统。SSD把信息系统的按信息加工过程划分为四个层次:Operational
Level、Knowledge
Level、Management
Level、Strategic
Level。
4.
信息系统内部结构
信息系统的建设是为信息系统每一个层次服务的。基于信息系统的层次理论,一般的系统可以划分为:
5.
信息系统对管理的改变
信息系统已经越来越对组织的管理带来深刻地影响。信息系统是企业管理和业务经营强大的生产工具,它标志着企业的现代化程度。生产工具是生产力水平的标志。一方面,任何一个组成部分的改变都会引起其他部分的相应改变。另一方面,信息系统的关系发生了改变,组织的结果和系统项目应用的范围变得更复杂。所以,信息系统也成为企业管理成败的关键。
管理的改变也改变了信息系统的本质;改变了应用的特点;需要对组织的信息结构的规划。信息结构(Information
Architecture)是信息技术吸收到组织中用以完成预定目的或功能的特定形式。
在系统开发中要面临真正的技术挑战有:
·
开放体系
·
客户服务体系
·
可扩充
·
可移植
·
面向对象
快速开发
·
开发工具
·
图形界面
·
分布式数据
·
业务规则处理
·
100%用户需求的满足
·
项目如期完成
·
维护
·
项目完成后的用户自身技术队伍
6.
软件在信息系统开发中的地位
软件位于信息系统和业务管理之间的核心地位。信息系统服务于业务主要是由软件实现。软件开发过程实际上是对业务过程、组织管理体系的认识,然后由计算机实现的过程。系统分析是明确业务需求,然后用计算机的语言(系统描述符号)描述下来;设计阶段则规划计算机的结构;编程是业务的最终实现。所以软件是人的知识体(Knowledgeware)。
信息系统服务于业务需求;硬件、网络服务于软件;数据库服务于开发工具。信息系统的成败不直接依赖于硬件、网络、数据库,信息系统主要的开发工作是在软件上完成的。软件开发要占80%以上的工作量。而且硬件、网络、数据库已逐步走向标准,可以非常容易的移植。认识软件的核心地位,才能摆正位置,确保系统开发成功。
而现在,软件的价值和意义却并没有相对应的地位。重视硬件、网络、数据库,忽视软件开发、软件开发工具的现象仍然存在。这种观点必然会对信息系统的开发带来极其严重的负面影响。
(三)
信息系统的建设策略
1.
规范化高质量管理——TQM
全面质量管理(Total Quality Management)是一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径(ISO 8402)。
系统开发的失败概率是非常高的。国外有统计在控制成本范围内的成功项目比例也只有16%,国内则更低。经验告诉我们系统开发失败原因多种多样,但都是一个多种原因的综合结果。在项目开发中,开发队伍如何协作合作以发挥最大的积极性,多种危险因素如何权衡制约以使对项目的破坏减少到最小,管理和质量体系就成了成败的关键。
Pinto和Slevin(1987)曾提出影响项目成败的10个方面:
·
项目的任务和目的
·
上层管理的支持
·
项目计划
·
客户咨询
·
个人观点
·
技术观点
·
用户承诺
·
项目控制
·
交流勾通
·
排除障碍
对于技术要求特别高的计算机项目,还要考虑到高层次的技术管理战略,
这在计算机项目的管理中居于中心地位。
·
领导
·
危险管理
·
过程控制。
Attributes
of process control
|
Standardization
|
Defined
procedures
Defined
deliverables
|
Quantification
|
Quantifiable
output
Measurement
systems
|
Control
|
Defined
management process
Corrective
action process
|
Coordination
|
Integration
with other processes
|
Attributes
of risk management
|
Attributes
of leadership
|
Understanding
of cause and effect.
|
Understanding
of people.
|
Identification
of risks.
|
Identification
of goals.
|
Deployment
of necessary process.
|
Deployment
of people to achieve goals.
|
Elimination
of unnecessary process.
|
Helping
people improve.
|
但管理模式的确定必须针对于特定类型项目开发中的主要成败因素来确定。计算机技术开发是个高科技领域开发,有着它的特殊规律。SSD根据以上的研究结果的基础上提出了HQSA
(High
Quality Service Architecture)
的管理和质量结合的操作模式。
SSD对自身业务的认识是提供以计算机技术为基本内容的服务。以目的来看,服务是为满足用户需求行为。在HQSA服务体系中,强调服务的起点必然是用户需求。通过逐步求精,最终得到符合用户需求的成果。
质量(Quality)反映实体满足明确和隐含需求的能力的特性总和(ISO
8402)。而SSD则对质量有另一种解释“Quality
is fit for use!"。也就是以客户满意为中心。
在服务中强调标准化策略。过程中以标准为依据采用双重质量保障体系。一个是以项目负责人和高级技术专家为主体的间隙性技术监督(review)为主的质量控制。更为重要是以用户参与的连续性质量保障队伍,实施严格的质量管理。
总之,HQSA是以服务为基本目的,以用户需求为出发点,以质量为核心,以技术为根本保障的服务管理体系。
2.
面向对象方法
面向对象技术的出现是软件发展史上的里程碑。从某种角度上来讲是软件走向工业化的标志。工业化的标志是社会化大分工。在OO出现之前,社会化分工并不普及。其原因在于没有十分成熟的手段来实现软件模块十分清晰的划分。面向对象技术的封装性就很好地解决了这个问题。同时又提供了很好地软件重用。CORBA、ActiveX等标准的先后出台,使软件步入了新的篇章。
OO出现之前,有过很多种软件技术。其中,有些至今仍然发挥着作用。各种开发方法的根本目的都是为了更好地反映这个世界,使得计算机可以帮助我们去处理客观中的各种信息。也就是“REAL
WORLD”。
面向对象方法对客观事物是从两个角度来描述
的:
I.
Representation
把客观事物的表现分为:静态表
现和动态表现。OO方法侧重对事物的静态描述,强调体系结构,以及对象之间的关系。传统的结构化软件开发侧重对事物发展规律的描述,强调功能表现。
II.
Scope
对客观事物的描述范围分为:
宏观表现和微观表现。宏观表现主要是侧重寻找实体对象之间关系的规律。微观表现主要是侧重寻找实体内部的特征。
3.
高效率开发——软件自动化
现代的信息系统发展越来越快,业务越来越复杂,也就带来信息系统的开发规模越来越大,然而开发周期却越来越短。这就使得传统的开发模式受到了严重的挑战。如何从枯燥的代码行和单个对象的手工操作中解脱出来,转而把精力集中到大规模的分析、设计和执行中?
软件自动化是指在软件开发中大量采用辅助工具,减少人力劳动,提高生产力,实现软件开发向工业化生产方式转变的一种开发模式。
开发手段的滞后是长期以来中国软件开发水平不能提高的症结之一。传统的工业发展到今天,为此已积累了丰富的经验。现代化的生产设备、工业自动化流水线已成为现代工业的标志。软件工业的发展也逐步迈向了成熟。软件开发已不再是一项科研技术的工程。软件开发也需要现代化的生产设备来武装软件开发人员。软件开发的自动化生产,大幅度提高开发效率是软件真正的出路!
一个成功的自动化生产应该考虑到:
·
自动化边界划分
·
自动化路径选择
·
自动化效率评估
·
自动化成本/效益估算
·
开发项目的特点
·
开发商的技术水平
·
开发商的经济实力
基于以上的考虑因素,我们就可以设计出各种不同的软件开发的自动化生产方案,以适应不同条件下的各种项目。
|