基于SOA的软件过程管理流程改进

2013-06-20 04:37
计算机与现代化 2013年12期
关键词:关键流程阶段

李 明

( 上海青年管理干部学院,上海 200083)

0 引 言

根据SOA(Service-oriented Architecture)的理念,把一个整体事务看作是由多个小事务组成,因此不论使用的是什么软件流程管理模型,都可以把它拆分成许多个小任务[1],并确定每个任务的输入和输出,一旦流程被划分成一个个小任务的时候,系统就可以按照一种特定的需求去重组或者改进流程。本文借鉴RUP(Rational Unified Process)模型为基础,吸收瀑布模型和极限编程等其他模型的优点[2-3],对软件流程管理进行系统分析,使其SOA 化。基于SOA的软件流程管理按照RUP 流程,包含了所有的软件开发所应用到的文档及详细过程,根据RUP 流程,软件过程管理模型如图1所示。整个软件开发分为3个阶段,在第一阶段,项目组成员对项目进行需求调研,直到内部评审通过后,对项目目标、项目范畴进行确定,并对项目进行初步估计[4]。第二阶段,对软件项目进行选择软件过程管理模型,选择范围有RUP、瀑布、原型法等[5],并根据管理模型确定各个阶段的目标,制定里程碑时间,编写人力资源计划,开始在公司寻找相应资源,明确开发环境和软件框架。第三阶段就是项目的正式开始,项目的执行和项目测试。

图1 软件过程管理模型图

在这个软件过程流中,只有在需求调研时期,公司组织有内部评审,当项目不符合,或者公司无法完成项目的时候,在这个阶段可以通过内部评审的机制结束或修订软件项目,而当通过内部评审后,从项目立项到项目执行结束期间,再没有任何修正机制,这是一般软件企业所使用的软件过程方法。众所周知,软件项目固有的复杂性、易变性和不可见性,尤其是在软件项目开发过程中的易变性致使软件开发周期长、代价高和质量低等问题。因此基于这些问题,本文提出一个改进的软件过程管理模型。如图2所示。

改进后的模型在原来的基础上,在项目执行和项目测试之间增加了一个评估的模块,这个模块在项目执行当中,以项目实施各阶段的时间表为基准,对项目实施进行监控,当项目开发出现问题的时候,可以调整软件过程管理,重新部署,使之适应软件项目的开发。

这种需要企业业务灵活应对外部环境变化的行为正迎合了SOA的思想,因此要达到对软件过程的这种改进,就需要在这个基础上对软件过程进行SOA化建模。建模是面向服务体系结构项目,不同于传统的建模方式,第一步是选取的所有事项都和具体的业务相关。基于SOA 建模要确定这些业务所执行的活动或流程实际是什么[6]。对业务体系结构进行记录后,这些记录不仅可以用于规划SOA,还可以用于对实际业务流程进行优化。

依据SOA 思想构建系统的步骤,首先把软件开发过程5 大阶段(需求阶段,环境配置阶段,设计阶段,编码阶段以及测试阶段)进行服务分类分析,并规定每个任务模块有相应的输入和输出以及判定标准[7]。使用SOA的思想,首先对软件过程的每个阶段进行服务鉴别和服务分类,提取出关键的组件,以构件化服务的形式对其进行实现。

图2 改进后的软件过程管理模型图

1 需求分析阶段改进

在软件过程中,需求分析指的是在建立一个新的或改变一个现存的系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件过程中的一个关键过程[8]。在需求分析阶段,项目的任务还是比较少的,主要是收集需求、分析需求和管理需求3个任务,可以作为SOA 思想中所描述的关键组件。这3个任务是整个需求分析阶段的关键工作流,在一些软件公司里还有其他的附加的流程,例如需求阶段审核,但本文认为这样的任务流可作为需求阶段的可选任务,即非关键工作流。需求阶段关键服务流分析结果如表1所示。

表1 需求阶段关键服务流分析表

2 环境配置阶段改进

完成需求分析后,软件项目进入到环境配置阶段,环境配置和需求分析都属于软件开发的前期准备阶段,还不算真正的展开项目[9]。在环境配置阶段中最重要的任务就是根据现有软件项目的种类、规模决定对现有的模型进行裁减,这个阶段同时会影响接下来各个阶段的实施情况。环境配置阶段的任务只有一个就是裁减模型[10]。

这个阶段是整个软件过程管理改进模型的核心部分,因为在这个阶段中,是对软件项目管理模型进行筛选和改进,是整个项目开发中首次对管理框架进行调整,也称为软件过程管理系统实现SOA 化的第一步。项目经理可以根据之前所做的项目需求报告,得到项目的范畴、大小以及完成时间要求,并根据这些要求对项目所采用的管理开发模式进行选择改进。环境配置阶段服务流分析如表2所示。

表2 环境配置阶段关键服务流分析表

3 设计阶段改进

设计阶段承接了需求分析阶段的要求,对软件项目的框架、技术、数据库及接口进行了从言语描述到程序实现的设计[11]。这个阶段主要由软件设计师完成,前台设计人员根据需求文档实现用户界面接口,高级程序员再根据需求设计选择框架以及确认技术风险,然后确定用户行为细节和数据库设计。根据SOA 思想对其过程进行服务组件鉴别,可以得到关键服务组件——构建框架、软件行为详细设计、数据库设计、用户接口设计、开发平台设计和设计检验。设计阶段关键服务流分析结果如表3所示。

表3 设计阶段关键服务流分析表

4 编码阶段改进

编码阶段是整个软件过程流中真正开始编写代码的时段。该流程任务包括明确项目按计划完成的情况和测试阶段的前期准备。此任务开始的标志是,程序员编码开始、管理计划正在进行中[12-13]。其主要分为3个同时进行的工作流:构建代码、检查代码、发布版本。在每个工作流中包含的关键组件有:建立流程、系统集成、集成计划和构建发布版本。编码阶段关键服务流如表4所示。

表4 发布阶段关键服务流分析表

5 测试阶段改进

测试是保障软件质量的重要途径,是针对软件这一特殊产品的一道生产工序,是软件质量保证的重要一环。也就是说,软件测试不是项目管理过程的需要,而是软件过程的需要[14]。软件测试阶段的关键过程有执行开发测试、代码检查、软件测试准备、测试计划、设计测试、执行测试。测试阶段关键服务流如表5所示。

表5 测试阶段关键服务流分析表

6 结束语

现在的市场已经不允许企业再花大量的时间去适应瞬息万变,因此企业需要做到灵活应对。尤其是对于软件服务的需要,将来的系统应该是非原子性的,是可以分割的,这种系统组合可以随着市场需求的变化而做出相应的变化,而不是单一地针对某一方面的市场,或者制作庞大的期望能涵盖所有功能的系统。把软件过程管理模型分块进行分析,进而划分成各个小任务,并对每个任务实施进行输入输出控制,使整个管理过程SOA 化,这样基于SOA 软件过程管理就形成了初步的框架,然后明确什么时候、什么状态下管理人员需要对本身的软件过程管理进行裁减、修正,有助于企业避免重复工作,真正地实现软件服务的灵活性,同时还可以支持在各个领域彼此关联的服务,增强对元数据的管理。

[1]杨昌锋,王冠,司建辉.基于SOA 构建新一代的企业应用集成[J].计算机应用与软件,2005,22(10):122-123.

[2]徐赛华.软件需求分析研究[J].吉林师范大学学报:自然科学版,2006,27(1):104-105,110.

[3][英]Hubhes B,[英]Cotterell M.软件项目管理(第4 版)[M].廖彬山,王慧译.北京:机械工业出版社,2007.

[4][美]Futrell Robert T,[美]Shafer Donald F,[美]Shafer Linda I.高质量软件项目管理[M].袁科萍,樊庆红,陈河南译.北京:清华大学出版社,2006.

[5]Anne Mete,Jonassen Hass.Configuration Management Principle and Practice[M].Addison Wesley,Inc.,2002.

[6]Sean Kenefick.Real-World Software Configuration Management[M].Addison Wesley,Inc.,2002.

[7]张力,薛惠锋,许振华,等.基于遗传算法的软件工程资源配置优化模型[J].计算机仿真,2007,24(12):166-169.

[8]倪晓峰,赵文耕,张婕.构件软件配置管理及其版本控制技术研究[J].计算机工程与应用,2005(2):94-96,145.

[9]Buckley C D,Pulsipher D W.The Art of ClearCase Deployment:The Secrets to Successful Implementation[M].Addison Wesley,Inc.,2003.

[10]Bellagio D E,Milligan T J.Software Configuration Management Strategies and IBM Rational ClearCase:A Practical Introduction (2nd ed.)[M].Addison Wesley,Inc.2004.

[11]Bellagio D,Giordano A.UCM Stream Strategies and Best Practices[C]// Rational User’s Conference.2004.

[12]Per Kroll,Philippe Kruchten,Grady Booch.The Rational Unified Process Made Easy:A Practitioner’s Guide to Rational Unified Process[M].Addison Wesley,Inc.2002.

[13]李娜,钱乐秋,赵文耘,等.可变粒度及面向过程的软件配置管理系统[J].计算机工程,2006,32(1):64-66,150.

[14]方滔.需求变更管理中的可视性问题及其解决方法[J].自然杂志,2003,25(6):332-334.

猜你喜欢
关键流程阶段
硝酸甘油,用对是关键
关于基础教育阶段实验教学的几点看法
吃水果有套“清洗流程”
高考考好是关键
在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。
违反流程 致命误判
本刊审稿流程
析OGSA-DAI工作流程
大热的O2O三个阶段,你在哪?
两岸婚恋迈入全新阶段