软件工程在博士后网络办公平台开发中的应用
2012-07-12南京军区南京总医院博士后工作站
南京军区南京总医院博士后工作站 田 军
软件工程在博士后网络办公平台开发中的应用
南京军区南京总医院博士后工作站 田 军
本文主要论述了在全国博士后网络办公平台开发过程中,如何利用软件工程的理论和方法指导和实施开发活动,使软件实现快速交付的同时保证了软件的高质量。
软件工程;面向对象;进度计划;质量保证;配置管理
1.引言
我国博士后制度建立二十多年来,博士后规模发展异常迅速。博士后制度凝聚和培养了众多高层次人才,催生了一大批优秀科研成果,为我国的经济社会发展做出了重要贡献。随着博士后事业的发展壮大,我国博士后管理理念不断创新,管理制度不断完善,管理方式不断改进。因此,原有的全国博士后信息系统的功能已无法满足电子化办公的需求,开发一套博士后网络办公平台,为各级地方博士后管理部门(博士后站、设站单位、省市管理部门、博管会)提供规范化的审批、管理,实现电子化办公,显得尤为必要。
自上世纪六十年代以来,计算机软件的开发和维护过程遇到了“软件危机”:开发成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等。究其原因,主要在于所开发的软件规模越来越大,复杂度越来越高,缺乏软件开发方法学和工具方面的支持。这使得人们开始用工程化的方法进行软件的开发、管理和维护,即软件工程。
结合网络办公平台功能复杂度高,扩展性强的特点。也为了更好地提高开发的可见性和规范性,方便后期的运维和扩展,该系统平台开发采用了软件工程的理论方法贯穿设计、开发和运维的整个阶段,取得了不错的效果。
2.系统的需求分析
软件需求是指用户对目标软件在功能、行为、性能、设计约束等方面的期望。通过对问题及其环境的理解与分析,为问题涉及的信息、功能及行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,如图2-1所示,整个活动构成软件开发生命周期的需求分析阶段。需求分析阶段是软件项目开发中其他四个阶段的必备条件。
在软件工程理论诞生之前,传统的软件开发普遍存在这样的问题:1)重视开发,忽视前期的需求分析和设计;2)文档不规范且不完备。这样的做法固然可以将开发的阶段提前,貌似加快了系统开发的进度。其实不然,由于用户的需求在开发的过程中具有渐进性和增量变化的特点,且软件的需求、开发、测试、维护过程中,系统变更的代价呈非线性增长,不完备的需求和文档会大大增加需求变更情况下的工作量,而且也增加了系统交付后培训和维护的工作量。
由于网络办公平台最终目标是满足用户的无纸化办公,平台能否满足用户的日常办公需求是评价软件是否成功的关键因素。我们将需求分析作为了一个重要的阶段,其主要工作是获取用户需求、设计系统模型、编写需求文档。在立项前期,通过调研问卷以及各级管理部门代表研讨的方式分析当前网上办公系统的特点,了解当前博士后网上办公业务需求。从业务需求、用户需求、功能需求、非功能需求四方面完成系统模型的初步设计,并以此为依据编写规范的《项目需求分析说明书》,办公平台的基本功能需求如图2-2。
3.系统的开发方法
系统常见的开发方法主要有结构化方法、原型法、面向对象的设计方法。
结构化方法是一种广泛运用的开发方法,是设计人员、开发人员以及最终用户按照用户至上的原则,自顶向下分析与设计和自底向上逐步实施的建立计算机信息系统的一个过程,是组织、管理和控制信息系统开发过程的一种基本框架。其特点有:1)自顶向下整体地进行分析与设计和自底向上逐步实施的系统开发过程;2)用户至上是影响成败的关键因素,整个开发过程中,要面向用户,用户需求需要在系统建立之前就能被充分了解和理解;3)严格区分工作阶段,把整个开发过程划分为若干工作阶段,每一个阶段有明确的任务和目标、预期达到的工作成效,以便计划和控制进度,协调各方面的工作。前一阶段的工作成果是后一阶段的工作依据;4)充分预料可能发生的变化。其缺点是开发周期长,耗费大,若用户需求并不明确,会大大影响开发效率。
原型法是20世纪80年代提出的一种从设计思想、工具、手段都全新的系统开发方法。其特点有:1)系统开发循序渐进,需要反复修改原型;2)开发周期短,费用相对少;3)由于有用户的直接参与,系统更加贴近实际;4)应变能力强,减少用户的培训时间。但缺点也比较明显:不适合大规模系统的开发;开发过程管理要求高,整个开发过程要经过“修改—评价—再修改”的多次反复;开发人员易将原型取代系统分析;缺乏规范化的文档资料。
面向对象的开发方法是一种常见的系统开发方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。其特点是:1)封装性。面向对象方法中,程序和数据是封装在一起的,对象作为一个实体,其操作隐藏在方法中,从外界无从得知。封装性构成了面向对象方法的基础。简单地说,面向对象就是“对象+属性+方法”;2)抽象性。面向对象方法中,把从具有共同性质的实体中抽象出的事物本质特征概念,称为“类”。类中封装了对象共有的属性和方法,通过实例化一个类创建的对象,自动具有类中规定的属性和方法;3)多态性。多态性是用一个操作名称实现不同数据类型的多种操作,运算符重载、函数名重载都是多态性实现的主要方法。由于多态性这一特性,增强了软件的灵活性和重用性。
根据需求分析,可以看出本办公平台开发具有以下特点:1)系统功能复杂;2)开发过程管理要求高,需要规范化的管理;3)软件复用要求高;4)需求功能相对明确。
因此,针对上述开发方法的特点,我们采用了面向对象和结构化方法相结合的开发方式。
4.系统的进度管理
众所周知,项目的成功很大程度上归功于开发者在项目过程中对进度的有效管理和控制。在软件工程中,项目进度管理包括6个管理过程,即活动定义、活动排序、活动资源估算、活动历时估算、制定进度表、进度控制。
活动,是实施项目时安排工作的最基本的工作单元。活动定义过程就是要把完成项目的所有活动都找出来。在活动定义活动中,最基本也是最重要的工作就是工作分解结构(WBS),工作结构分解是对项目范围的一种逐级分解的层次化结构编码,它以可交付成果为导向对项目要素进行的分组,归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义。
工作分解结构应按照实际工作经验和系统工作的方法、工程的特点、项目管理者的要求进行,其基本原则是:1)应在各层次上保证项目内容的完整性,不能遗漏任何必要的组成部分。2)一个项目单元只能从属于某一上层单元,不能同时属于两个上层单元。3)项目单元应能区分不同的责任者和不同的工作内容,应有较高的整体性和独立性。4)应考虑WBS与承包方式、合同结构的影响。5)能够符合项目目标管理的要求,能方便的应用工期、质量、成本、合同、信息等手段。6)WBS不要太多层次,以四至六层为宜。最低层次的工作包的单元成本不宜过大、工期不要太长。
根据工作分解的基本原则,办公平台的开发工作从分析、设计、开发、测试、验收、运维几个方面被细分为50个基础活动,通过活动资源估算和活动历时估算,我们制定了详细的进度计划,如图4-1所示。
表5-1 工程活动审核表
表5-2 工作产品审核表
图4-1
项目进度计划最终以甘特图方式进入项目配置库,作为项目进度控制的依据。如上图所示,项目进度计划定义了项目中每一个主要任务,并估算其所需时间和资源,为项目管理的评估和控制提供了一个清晰可见的框架。正因为实施了有效的进度管理,平台开发工作顺利地如期完成。在项目某一阶段出现延迟时,规范的项目进度计划帮助我们及时发现延迟,找出延迟的原因,针对性地调整开发计划,从而保证了项目的整体进度。
5.系统的质量保证
软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被项目所采用,如表5-1、5-2。它是贯穿于整个软件过程的第三方独立审查活动,其目的是使软件过程对于管理人员来说是可见的。如果将一个软件开发类比于一种产品的生产。那么生产线就是过程,产品按照生产线的规定过程进行生产。软件质量保证的职责就是保证过程的执行。
在本办公平台的项目组中,根据需要配备了专门的SQA人员。SQA人员活动贯穿了开发各个阶段。在项目启动阶段,SQA人员就参与到制定《软件开发计划》的过程,根据项目的内容制定了《软件质量保证计划》。在软件质量保证过程中,SQA人员的主要工作包括:1)评审软件工程活动,对其是否符合定义好的软件过程进行核实,记录、跟踪与过程的偏差。2)评审软件工作产品,对其是否符合事先定义好的需求进行核实,对产品进行评审,识别、记录和跟踪出现的偏差并将工作结果向项目管理者报告。3)完成工程活动审核表、工作产品审核表,确保软件工作及产品中的偏差已记录在案,并根据预定的规程进行处理。
6.系统的配置管理
我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。软件配置管理作为软件工程中一项重要活动,应用于整个软件工程过程。软件配置管理是一种标识、组织和控制修改的技术,目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。软件配置管理可以提炼为两个方面 的内容:Version Control-版本控制;Process Support-过程支持。
博士后网络办公平台采用的配置管理工具为VSS,VSS的全称为Visual Source Safe,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。VSS通过将有关项目文件(包括文本文件、图像文件、二进制文件、声音文件、视频文件、代码文件)存入数据库进行项目配置管理工作。用户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS,它的每次改动都会被记录下来,用户可以恢复文件的早期版本,项目组的其他成员也可以看到有关文档的最新版本,并对它们进行修改,VSS也同样会将新的改动记录下来。
VSS可以同Visual Studio开发环境以及Microsoft Office应用程序集成在一起,提供了方便易用、面向项目的版本控制功能。VSS可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。在提倡文件再使用的今天,用户可以同时在文件和项目级进行工作。VSS面向项目的特性能更有效地管理工作组应用程序开发工作中的日常任务。
用VSS来组织管理项目,项目组的所有工作成果被完整地保留下来,使得项目组间的沟通与合作更简易而且直观。开发的资源可以很好地被项目组成员分享利用,每一位成员获取的代码和文档都是最新的且是同步的。VSS也能很好地解决传统开发中容易出现的版本错乱问题,使得版本的维护变得简单、清晰。
7.结束语
随着电子办公模式的迅速发展,网上办公的应用越来越广泛,用户需求越来越复杂,采用传统的软件开发方法往往会失效。相对于传统的软件开发方法.软件工程将软件开发看成一项系统工程,一项需要需求分析、软件开发过程、规范化的文档和进度管理、系统配置管理、系统质量保证等方面工作互相配合,贯穿始终的工程,是人们在长期的软件开发和维护的过程中积累下来的宝贵经验。我们应当把它应用到具体的开发过程中,进行集成化开发,工程化管理,只有这样才能提高软件开发的成功率,缩短开发周期,减少重复开发,用较少的开发成本满足用户业务之需。
[1]夏雪刚.基于软件工程的数据库应用系统开发[J].科技信息,2009(1).
[2]王巍,周沫.软件工程在软件开发中的应用[J].软件导刊,2010(9).
[3]王维国.浅谈软件工程中的面向对象方法[J].科协论坛,2012(3).
[4]谷铁涛.两类软件工程的浅析——传统软件工程和面向对象软件工程[J].科技创新导报,2009(14).
[5]唐勇.建立规范的软件文档提高软件工程化程度[J].燕山大学学报,2002(2).