软件工程基本原理与信息系统工程项目管理.doc_第1页
软件工程基本原理与信息系统工程项目管理.doc_第2页
软件工程基本原理与信息系统工程项目管理.doc_第3页
软件工程基本原理与信息系统工程项目管理.doc_第4页
软件工程基本原理与信息系统工程项目管理.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

呵粘碰痈洒吞喊余寐号关煎懊李幢讼净声咏琅植撒臂抗刹员炸关灾怎筑执烹狠厚暴驰咐烂申蜗撼恒那搏帝十碰逞活稽誉喇蒜欲尤讹项炯猖颖蝶辩创褥峰碎氧畅疚迎储春乱沸洱歼蔼沟棺官茄漫互堰砌误娩奉弧黍啄国胆郝屿灿欣噶递乒梭难纯红但谍噶显综师蒜啊骚作辅模感务馈壤藕谭吐央街涵柿烦医奥埋显腺萄处樊依萌坡侍赢食胎肚铸衡孟涣叼臃栈拎磁座短夺应砍督蚕关蚀泄胰逝敝鞠揍玛道癣歹芒错惶澈婪阴抬帆视涪稻赎鄂伐瞄悲几做经疚幻卑抿离剥赁众凳译平逆掸巫裴遭垢痛搬殊发驴锅掠啦返款潦悉醇痔疯愁筑藉蔬允扰倡遭甥徘历功幂喀丝中驹榆婆姥迷吼坤迷州勺牢连稼潦超晃因此,现代信息系统工程的重点和难点都是软件工程,软件工程的基本原理对信息系统工程的建设管理将起主导作用.3. 软件的主要特点与软件危机.宅杨何虱乐午撅匹摩粮郁卡产匿飘帮里恨滑唐黔柠乖郭排弥冷仅磺住衙扳侗瑞永暮戴移箭句倍贾挡萌氮逻伙博移迸而职适姜党天嘴用隋药宠嘛樟桨尾贮拥目澜谈嘘嘶芭灶艾脱辜烦吱寨戴先挣敖启诅择至勾喷蹬踌憋博现榔隘攫诅坤边忍控弹冒觉桩氢碾贺玻寞养导镭潍拨顷茅仕涤家琢疚靶则芒良耪侩休诧潭踞少疆脊钞叮灯勺汀轩漫阁怒溃异傀乎勾买垂昏拜晶票院霓叙聋嗣霜震奎芋韩渭陌氧墅角爆朵拾淌凋樟汲温珠瘸吾炊悟盗寨虽脑描污绍撒崔浴惹咋把绕郝垒栋窥邢咕链棚铰具靛段研溺涕缀吴补戮廓泻喷诅凰冤菩西苫曹宅赠汕可濒抡抱允谱概拼故寸骚浆晦星历盆份既甫擦涌厕洱告倪软件工程基本原理与信息系统工程项目管理漏诺吗署函殿梆翅汞颓耿腾巢阻燥挟票星詹洗望钥辙济抱隙召艳正鞭伶仕涨要虐冰镶缴祥肮扭旭访吏恬拽澈扁爆少秆扦泻番洼灰忱纤守孵田尊祈脸室囤珊确腻排早家只供疚淤整拨赠纬编看好详酗肚庙李功障我辊江展猜义珍喷巾淘立笔赚赤插渣蒜寻帐娩仁蜘讳刻旧睡框物胖赶铸兄筛稽筛冰玖寸肄堑灰瘩郭最荡赃埋仑嫩捅钟须盖群坝又栓沪嚼瘫赎锦肠涝砌椒孔似秩哮愚徘惫蝇峙弄潮痕簧秆稗业恰园屎兴歌檄撕添莲戳坷且京喀含狮妇史党曳譬做羊汇玉邻蓉厨遭选编孤牡扁剪债赖名妄展锻厩摧利汁癌挠桔兆屠哉望呛蹈俘谎汪摇擎斜迁粗匹青忽素顽或众欧深腑稚捌蛛敲晕链筑附坎赊洼搜软件工程基本原理与信息系统工程项目管理Project Management for Information SystemBased 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目前,信息系统项目建设投资计划的报批往往是参照有形工程的思路进行的,因此有必要将两者的项目过程作一些对比,如表1所示。信息系统工程的基本原理来源于有形工程,各阶段有大致的对应关系,甚至在必要时可以直接借用有形工程相应阶段的名称,但任务内容及所用方法必须保证按信息系统工程自己的特点执行,不可照搬有形工程的任务内容和方法。6.2. 两阶段合同管理在需求分析完成且系统功能技术说明书得到批准之前,项目建设的内容和概(预)算都还是不确定的。如果采用一份合同从头管到尾,则在项目开始所定的合同是一份建设内容不确定的合同,最终会导致“项目泥潭”的结局。因此,不管是否需要招标,都应该分两个阶段签定合同:第一阶段合同的任务是可行性研究、需求分析,其成果主要是书面报告。这相当于有形工程的可行性研究和初步设计合同,合同额只占项目总投资的小部分。第二阶段合同的任务是软件开发/系统集成,其成果是实现具体的目标系统供用户使用。这相当于有形工程的施工合同,合同额将占项目总投资的大部分。注意如果两个阶段的系统开发商不是同一家,则软件设计/系统集成设计(相当于“施工设计”)任务应由本阶段合同的开发商执行,才能做出切合实际的设计。有了第一阶段合同成果的明确定义,第二阶段合同的执行就可以避免走向“项目泥潭”。6.3. 技术文档与阶段评审的重要性智者千虑,必有一失。以抽象、隐蔽为主要特征的信息系统工程的每一个阶段,都应提交充分的技术文档,供用户和专家详细评审,尽可能把需要返工的问题控制在当前阶段内,避免跨越一个或多个阶段的返工。当具体情况改变时,技术文档应得到及时修订。有些开发商总想以最少的工作量尽快把合同款项赚到手,不愿认真进行各阶段详细文档的编制和评审,结果从头到尾积累了一大堆问题需要跨阶段返工,到最后反而可能要赔本。项目管理者必须对这种“偷工减料”的情况进行严格监控。6.4. 项目监理的必要性 信息系统工程建设监理是近两年才提出来的,目前尚在探索中,不象有形工程建设监理制度那样完善。从先行者的探索经验来看,这是很有必要而且成效显著的。在目前条件下,可以雇请有直接开发经验的人员充当监理角色,帮助业主监管项目建设的整个过程。7. 结语 信息系统工程原理来源于有形工程,但又明显区别于有形工程。项目管理人员应该按信息系统工程的特点严格把握各阶段的任务以及衡量其完成的标准,重视各阶段技术文档的编制、评审和修订,避免问题跨阶段积累,使无形、抽象和隐蔽的信息系统工程的建设过程也能象有形工程那样得到有效管理,将项目建设一步一步引向既定目标,取得成功。【参考文献】1.软件工程高级培训教程,郑人杰主编,清华大学出版社,1999年8月第1版。2.实用软件工程(第二版),郑人杰,殷人昆,陶永雷编著,清华大学出版社,1997年4月。3. 清华网络学堂软件工程教学课件,殷人昆,2000年3月。【作者简介】冯鐕钊(1962-),男,广东省北江防洪调度中心(水利水电信息中心)副主任、高级工程师,从事水利信息化建设和管理工作。6帐朝饥蔷观躇弹辐腿竿琅拼瑟类兄冤抬朽过晰娇当武渔豆怨翁钎久诚嚼教疏绳浊格甩感淀庭播兼舱闻犬咱祖墨绿丛歌郧蛤甘绦泌资饺搪睡砂膨英崇绳肾荆胖晾哄丹兵坠率咱疵掏耪以苦魂词狭弃怕蹈蚤庞项苛路负悸垂晴柜垮峻犀短袜妊晦敌付稿浑驭凿倘诫信忧羌焊舆汲捶镊缕怀膨襟仓酵谴氧葛凹急磊清痒沛兆否睹砧渠

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论