软件工程基本原理与信息系统工程项目管理68
本文关键词:软件工程基本原理与信息系统工程项目管理,由笔耕文化传播整理发布。
软件工程基本原理与信息系统工程项目管理;ProjectManagementforInfo;BasedonPrinciplesofSoftw;冯鐕钊;FengZanzhao;(广东省水利水电信息中心2002年);【摘要】本文结合作者多年从事信息系统项目策划和管;【关键词】软件工程信息系统项目管理;1.引言;国内不少信息系统建设项目都或多或少地经受过“项目;也有
软件工程基本原理与信息系统工程项目管理
Project Management for Information System
Based on Principles of Software Engineering
冯鐕钊
Feng Zanzhao
(广东省水利水电信息中心 2002年)
【摘要】本文结合作者多年从事信息系统项目策划和管理的经验,引申软件工程原理,分析信息系统工程基本任务,探索项目业主对信息系统项目进行有效管理、顺利实现既定目标的一些方法。
【关键词】软件工程 信息系统 项目管理
1. 引言
国内不少信息系统建设项目都或多或少地经受过“项目泥潭”的痛楚:用户需求含糊,技术方案粗糙,计划不严谨,管理不规范,工作难协调,实际效果与用户心目中期望的目标相差甚远,合同纠纷不断、一改再改,到后期变得无章可循、各说各理。整个项目就象一个烂泥潭,离竣工日遥遥无期。 多数业主单位都不是信息技术本行的,不知如何对信息系统项目进行有效管理,听任系统开发商的安排。而不少开发商自身就严重缺乏有效的管理措施。
也有一些业主单位企图照搬有形工程(如土建工程)建设管理的方法对信息系统项目进行管理,结果往往是令人啼笑皆非。
本文结合作者多年从事信息系统项目策划和管理的经验,试图从项目业主的角度出发,探索对信息系统项目进行有效管理、顺利实现既定目标的一些方法,希望起到抛砖引玉的作用。
2. 信息系统工程与软件工程
毫无疑问,现代信息系统的建设是应用驱动型的,
因应业务发展的需要而提出开发各种业务应用软件,进
而确定所需的系统集成方案,即配置怎样的网络运行环
境,以及它们如何有效地集成在一起组成目标系统。如
图1所示。
信息系统建设的成败主要体现在各种业务应用软件
的运行是否达到预期目的。而“项目泥潭”通常就容易
发生在应用软件的开发和集成上。
因此,现代信息系统工程的重点和难点都是软件工
程,软件工程的基本原理对信息系统工程的建设管理将
起主导作用。
3. 软件的主要特点与软件危机
3.1. 软件的主要特点
(1) 软件是一种抽象的逻辑实体,其质量问题是隐蔽的。
(2) 软件在运行使用中不会磨损和老化,但会退化(过时)。
(3) 软件的复杂性使开发人员之间分工困难,增加人手未必能加快进度,却可能带来混乱。
(4) 软件开发需要投入大量、复杂、高强度的脑力劳动,且至今尚未完全摆脱手工艺的开发方式,因而成本相当昂贵。
(5) 软件的开发与运行不仅涉及技术因素,而且相当多地涉及社会因素,涉及机构、体制、管理方式、甚至人的观念和心理。这些非技术因素直接影响到项目的成败。
3.2. 软件危机
在计算机软件技术发展的早期,因程序规模较小,人们心目中只有程序设计的概念,注重个体编程技巧的发挥,缺乏软件系统的概念。
随着程序规模逐步扩大,功能越发复杂,系统化全局性概念要求越来越高,这与那种任由个体发挥的编程方法之间形成了日益尖锐的矛盾,导致了软件危机。
在西方发达国家,“软件危机”是1960、1970年代的历史故事。而在我国,软件危机却还是当前时常发生的事情,这就是本文开头所说的“项目泥潭”。
4. 软件工程的基本原理
约在1970年代以后,许多软件科学家尝试把其它工程领域中行之有效的工程学知识运用到软件开发工作中来,结合软件技术自身的特点,经过不断实践和总结,逐步建立了一套工程化的软件开发组织管理方法。这就是软件工程。
4.1. 软件工程的定义
1983年IEEE给出的定义为:“软件工程是开发、运行、维护和修复软件的系统方法”。
其中,“软件”的定义为:计算机程序、方法、规则、相关的文档资料、以及在计算机上运行时所必需的数据的集合。这里尤其要注意“软件”与“程序”两个概念的区别。
软件工程包括三个要素:方法、工具和过程。
方法为软件开发提供了“如何做”的技术,包括项目计划与估算、需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
工具包括各种软件工具、开发机器和开发过程信息库,提供自动或半自动的软件开发环境。 过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。这是本文讨论的重点。
4.2. 软件工程过程
软件工程过程是为获得软件产品所进行的一系列软件工程活动,通常包含四种基本的过程活动:
(1) P (Plan):软件规格说明。规定软件的功能及其运行限制;
(2) D (Do):软件开发。产生满足规格说明的软件;
(3) C (Check):软件确认。确认软件能够满足用户提出的要求;
(4) A (Action):软件演进。为满足用户的变更要求,软件必须在使用过程中演进。
4.3. 软件生存周期模型
正如任何事物一样,软件也有其孕育、诞生、成长、成熟、衰亡的生存过程。我们称之为计算机软件的生存周期。根据这一思想,把上述基本的软件工程过程活动进一步展开,可以得到软件生存周期的六个步骤。软件生存周期的瀑布模型如图2所示。
(1) 制定计划:确定要开发的软件系统的总目标、
技术要求、技术和经济可行性、实施计划,编制可行性
研究报告,提交管理部门审批。
(2) 需求分析:对待开发的软件提出的需求进行分
析并给出详细定义,编写软件需求说明书或系统功能说
明书、以及初步的系统用户手册,提交评审。
(3) 软件设计:把已确定了的各项需求转换成一个
相应的体系结构,进而对系统内的每个模块要完成的工
作进行具体的描述。编写设计说明书,提交评审。
(4) 软件编码:即程序编写,把软件设计转换成计
算机可以接受的程序代码。
(5) 软件测试:在设计测试用例的基础上检验软件
的各个组成部分。
(6) 运行/维护:已交付的软件投入正式使用,并
在运行过程中进行适当的维护。
实践表明,上述各项活动之间并非完全是自上而
下、呈线性图式的。实际情况是,每项开发活动均处于
一个质量环(输入-处理-输出-评审)中。只有当其工
作得到确认,才能继续进行下一项活动,在图2中用向
下的箭头表示;否则返工,在图2中由向上的箭头表示。
5. 信息系统项目过程及其各阶段任务
参照软件生存周期的瀑布模型,我们可以得出包括
业务应用软件和运行环境网络平台在内的一项完整的、
综合型的信息系统工程的生存期模型,如图3所示。
5.1. 定义阶段
(1) 制定计划:由系统分析人员和用户合作,确定
拟建系统的总目标及其功能、性能、可靠性、接口、运
行管理和维护等技术要求;研究技术、经济和人才的可行性、现有条件和解决问题的可能方案;制定实施计划、运行管理和维护方案;形成完整的可行性研究报告和投资估算,提交主管部门审批立项。
(2) 需求分析:由系统分析人员和用户合作,深入分析拟建系统的应用需求、软硬件需求,给出详细定义,编写需求分析和系统功能技术说明书以及项目概(预)算书,提交管理部门组织专家评审。
通常,建设信息系统的目的是为改善当前业务处理手段。因此,需求分析的任务是要借助当前业务系统的逻辑模型导出目标系统的逻辑模型,对目标系统要“做什么”给出详细定义。如图4所示。
如果系统比较庞大、复杂,甚至涉及多专业业务处
理,则应根据不同专业的主要技术特点对总系统进行一
级或多级分解,导出每个子、孙系统的目标逻辑模型,
并详细定义它们之间的接口关系。
在系统功能技术说明书中,对所需的各种设备及其
配件、系统软件、成品软件、应用软件、软件组件的功
能技术要求、配置、性能技术指标等应作出全面、详尽、
明确和定量的说明。
要注意的是,这些说明应从应用需求角度出发、撇开具体产品型号而提出。这对于需要公开招标的项目尤为重要。
此外,对于行业应用软件的开发或旧系统改造,如果存在某些必须遵守的技术标准或约定,也应在系统功能技术说明书中详细说明。
5.2. 软件开发/系统集成阶段
(3) 软件设计/系统集成设计:
软件设计如前所述。
系统集成设计根据审定的系统功能技术说明书,选择满足要求、性能价格比优的具体型号产品及其配件,详细列出软硬件配置清单,给出详实的系统集成设计方案和软硬件采购、安装调试计划。
软件设计和系统集成设计并非相互独立的工作,它们之间的关系非常密切,必须充分沟通和协调。 此阶段应得到详实的软件设计/系统集成设计说明书,交业主组织专家评审。两者应尽量同时提交给同一批专家评审。
(4) 软件编码/设备采购:
根据审定的软件设计/系统集成设计说明书,分别进行程序编写和设备采购工作。两者之间并无太多联系,但所处时间阶段往往大致相同。此外,两者都属于生产制造阶段,需要特别关注质量控制。尤其对程序编写,加强程序员的质量意识非常重要。
在本阶段,因实际运行环境尚未建立,软件开发单位应自己建立一个能充分模拟实际运行环境的开发环境,在该环境下进行程序编写。
(5) 软件测试/设备安装调试:两者之间也无太多联系,但完成时间最好大致相同,以便能一起进入系统联合调试。
需特别指出,程序代码中不可避免会存在错误,软件测试的目的不是证明软件本身无错或少错,而是尽可能多地发现错误并改正之。测试用例应围绕这个目的而设计。
(6) 系统联合调试:实践表明,通过了各种测试被认为合格的软件,集成到实际运行环境时,往往会出现一些意想不到的问题,其主要原因是开发环境与实际运行环境之间不可避免地存在差异。因此,在软件开发和系统集成的最后阶段,应该使两者集成在一起进行联合调试,或叫做交工试运行,测试系统各组成部分能否顺利结合在一起正常运行,能否达到需求分析阶段所确定的目标。
系统联合调试通过后,可进行系统交工验收,标志一个阶段结束。
(7) 考核运行:系统交工验收后,应安排一段具代表性的时间进行系统考核运行,让用户通过实际使用系统,检验系统是否实现了建设目标。考核运行期长短视系统支持的应用业务性质和复杂性而定。
考核运行期满且验证为合格后,可进行系统竣工验收。
5.3. 运行维护阶段
(8) 运行/维护:竣工验收后系统投入正式使用,并在运行过程中根据业务变化的需要进行适当的维护、调整和修改。
6. 信息系统项目管理基本方法
6.1. 项目建设阶段管理
目前,信息系统项目建设投资计划的报批往往是参照有形工程的思路进行的,因此有必要将两者的项目过程作一些对比,如表1所示。
信息系统工程的基本原理来源于有形工程,,各阶段有大致的对应关系,甚至在必要时可以直接借用有形工程相应阶段的名称,但任务内容及所用方法必须保证按信息系统工程自己的特点执行,不可照搬有形工程的任务内容和方法。 6.2. 两阶段合同管理 在需求分析完成且系统功能技术说明书得到批准之前,项目建设的内容和概(预)算都还是不确定的。如果采用一份合同从头管到尾,则在项目开始所定的合同是一份建设内容不确定的合同,最终会导致“项目泥潭”的结局。
因此,不管是否需要招标,都应该分两个阶段签定
合同:
第一阶段合同的任务是可行性研究、需求分析,其
成果主要是书面报告。这相当于有形工程的可行性研究
和初步设计合同,合同额只占项目总投资的小部分。
第二阶段合同的任务是软件开发/系统集成,其成果是实现具体的目标系统供用户使用。这相当于有形工程的施工合同,合同额将占项目总投资的大部分。注意如果两个阶段的系统开发商不是同一家,则软件设计/系统集成设计(相当于“施工设计”)任务应由本阶段合同的开发商执行,才能做出切合实际的设计。
有了第一阶段合同成果的明确定义,第二阶段合同的执行就可以避免走向“项目泥潭”。
6.3. 技术文档与阶段评审的重要性
智者千虑,必有一失。以抽象、隐蔽为主要特征的信息系统工程的每一个阶段,都应提交充分的技术文档,供用户和专家详细评审,尽可能把需要返工的问题控制在当前阶段内,避免跨越一个或多个阶段的返工。当具体情况改变时,技术文档应得到及时修订。
有些开发商总想以最少的工作量尽快把合同款项赚到手,不愿认真进行各阶段详细文档的编制和评审,结果从头到尾积累了一大堆问题需要跨阶段返工,到最后反而可能要赔本。项目管理者必须对这种“偷工减料”的情况进行严格监控。
6.4. 项目监理的必要性
信息系统工程建设监理是近两年才提出来的,目前尚在探索中,不象有形工程建设监理制度那样完善。从先行者的探索经验来看,这是很有必要而且成效显著的。在目前条件下,可以雇请有直接开发经验的人员充当监理角色,帮助业主监管项目建设的整个过程。
7. 结语
信息系统工程原理来源于有形工程,但又明显区别于有形工程。项目管理人员应该按信息系统工程的特点严格把握各阶段的任务以及衡量其完成的标准,重视各阶段技术文档的编制、评审和修订,避免问题跨阶段积累,使无形、抽象和隐蔽的信息系统工程的建设过程也能象有形工程那样得到有效管理,将项目建设一步一步引向既定目标,取得成功。
【参考文献】
1.《软件工程高级培训教程》,郑人杰主编,清华大学出版社,1999年8月第1版。
2.《实用软件工程》(第二版),郑人杰,殷人昆,陶永雷编著,清华大学出版社,1997年4月。
3. 清华网络学堂软件工程教学课件,殷人昆,2000年3月。
【作者简介】冯鐕钊(1962-),男,广东省北江防洪调度中心(水利水电信息中心)副主任、高级工程师,从事水利信息化建设和管理工作。
三亿文库3y.uu456.com包含各类专业文献、各类资格考试、生活休闲娱乐、行业资料、文学作品欣赏、软件工程基本原理与信息系统工程项目管理68等内容。
12
下载地址:软件工程基本原理与信息系统工程项目管理68.Doc
【】最新搜索
软件工程基本原理与信息系统工程项目管理
70区域可持续发展系统动力学综合协调模型研究
我校举办国学经典诵读展示活动_图文
论我国园林植物造景_田晔林42
78人格测验16PF解析成果
对二叔丁基苯的制备
2016继续教育建设美丽中国答案86分
15小学体育教师业务考试试卷及答案修改版
浅论中国传统园林植物造景技艺特征分析
93中学教育
本文关键词:软件工程基本原理与信息系统工程项目管理,由笔耕文化传播整理发布。
本文编号:162700
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/162700.html