基于组件的非线性软件开发过程研究*

2012-02-28 05:10臧影
网络安全与数据管理 2012年16期
关键词:组件协同流程

臧影

(云南科技信息职业学院,云南 昆明 650224)

1 软件开发方法的演变

软件开发方法经历了从结构化程序设计到面向对象设计、分布式对象/系统设计等方法的演变过程,近年又产生了基于组件的开发方法。组件是可以插入系统中的对象。基于组件的开发(CBD)是一种软件开发方法,采用这种方法开发,生命周期中的所有问题和阶段,包括需求分析、体系结构、设计、构建、测试、部署、支持技术和项目管理,都是基于组件进行的。

然而,现有的软件工程体系颠倒了人与软件开发过程的主次关系,放任软件缺陷的引入与传播,盲目进行软件的修改维护,分不清软件工程的主要和次要矛盾,导致软件产品不完整、软件开发效率低、软件质量差、开发费用高昂。造成这些问题的根源在于,现有的软件工程体系都是采用了线性增量单向迭代模型,都是线性思维和简单科学的产物,而软件是由开发团队和客户这些非线性的人组成的复杂系统所创造的逻辑思维的产物,其本身也是一个复杂的、非线性的系统,两者存在根本性的矛盾,这在很大程度上削弱了基于组件开发方法带给软件企业的好处[1]。

因此,为了最大限度地发挥基于组件开发方法的优点,必须摒弃传统的线性软件工程体系,取而代之以非线性、整体性、相关性、关键性、层次性、目的性、开放性、动态性、适应性等原则和综合设计、增量集成、双向迭代、主动防错、全程评审、协同开发、信息共享、实时沟通等扩展原则的非线性软件工程体系[1]。

2 基于组件的非线性软件开发

虽然非线性软件工程体系具有诸多优点,但是其实现需要一定的软件开发平台支持。现在,国内外已有一些软件企业在这个领域进行了有益的探索,例如上海艾赛软件科技有限公司所开发的艾赛银弹Panorama++软件开发、测试、维护支撑平台就是其中的代表。不过,这类软件开发平台产品的价格不菲,通常一套完整的产品需要200~300万元人民币,这对于经营规模小、资金匮乏、利润空间狭窄、管理水平低的广大中小型软件公司来说,无疑并非适宜的选择。

针对中小型软件企业的现状,作者认为企业可以通过组织结构再造和开发流程再造,利用现有的软件工具,同样可以在相当高的程度实现非线性软件工程体系核心思想,达到较好的效果。

2.1 软件企业组织结构再造

针对非线性软件工程体系多轨并行的特点,软件企业应从原有的职能型组织结构转化为面向客户的矩阵型组织结构。

如图1所示,企业将客户的每个或每组需求各视为一个项目,为每个项目设立项目经理,并与各个职能部门的特定员工组成相应的项目组。为了进一步体现非线性软件工程体系的整体性和开放性原则,项目组必须与客户紧密联系,并将相应的客户人员纳入到项目团队,从而构成面向客户的矩阵型组织。

面向客户的矩阵型组织结构为在软件工程中体现非线性软件工程体系的整体性、开放性、动态性、综合设计、双向迭代、全程评审、协同开发、信息共享、实时沟通等原则思想,提供了组织基础和保证。

2.2 软件企业开发流程再造

非线性软件工程体系的核心思想是强调双向迭代、增量集成、全程评审、协同开发。软件企业应调整原有职能型组织结构基础上的工作流程,在新的面向客户的矩阵型组织结构基础上,构建实现上述思想的基于组件的非线性软件开发流程。

如图2所示,基于组件的非线性软件开发流程由软件企业开发部门的分析构建组、组件开发组、品质保障组、组件管理组的相关成员及相关用户组成。其中,根据企业软件产品的构成,可以设立针对不同组件的组件开发组。

用户提出对软件产品的需求后,组件管理组首先在企业内、外的组件库中寻找可用的组件。如果没有,将由分析构建组牵头,协同组件n开发组和用户共同对需求进行必要的分析,建立相应的模型,制订规约,并产生需求说明文档。

品质保障组对模型和规约进行审核。如果审核未能通过,需要完善需求分析;如果审核通过,将由分析构建组和组件n开发组共同进行组件n的构架设计,即总体设计,并产生组件构架设计文档。

品质保障组对组件n的构架设计进行审核。如果审核未能通过,需要根据未能通过的原因,追溯到组件n的架构设计,甚至需求分析阶段,进行必要的修改和完善工作;如果组件n的构架设计审核通过,开发工作将逐步进行组件 n详细设计(组件 n开发组完成)、编写程序和单元测试 (组件n开发组和品质保障组协同完成)、组件n测试 (组件n开发组和品质保障组协同完成)、集成测试(组件 n开发组、品质保障组和组件管理组协同完成),并在各阶段产生相应的文档[6]。在每个阶段中,阶段性成果都要经过品质保障组的审核通过,开发工作才能进入下一阶段。如果审核未能通过,开发工作都将依据造成错误的原因追溯到以前的相应阶段,并进行改进和完善。

如果针对用户的需求,组件管理组在企业内、外组件库中找到了可用的组件,软件开发工作随即进入组件测试工作阶段。

针对用户需求的各个需要创建或完善的组件的开发工作并行推进并互为独立的开发项目。最后,对所有的组件一起进行集成测试。

当系统集成测试工作顺利通过审核后,组件管理组将对组件及其附属文档进行归档,以便日后复用或进一步完善。

基于组件的非线性软件开发过程,不仅具有基于组件开发的软件复用、部署简单等优点[7],同时也通过企业组织结构再造和软件开发流程再造实现了非线性软件工程体系的核心理念,提高了软件开发质量和效率,降低了开发成本,适用于中小型软件企业的产品开发工作中。

[1]熊继光.新一代软件工程体系与实践—基于现代系统科学与复杂性科学的非线性整体软件工程体系及其应用[M].北京:清华大学出版社,2008.

[2]Jay Xiong,Jonathan Xiong.The DP&T System:The defect prevention and traceability-driven system for software engineering[R].The 2006 International Conference on Software Engineering Research&Practice,2006.

[3]Jay Xiong,Jonathan Xiong.The DP&T model:the defect prevention and traceability-driven model for software engineering[R].The 2006 International Conference on Software Engineering Research&Practice,2006.

[4]Jay Xiong,Jonathan Xiong.The DP&T methodology:the defect prevention and traceability-driven methodology for software engineering[R].The 2006 International Conference on Software Engineering Research&Practice,2006.

[5]李伟波,刘永祥,王庆春.软件工程[M].武汉:武汉大学出版社,2006

[6](美)PRESSMAN R S.软件工程——实践者的研究方法(第 5版)[M].梅宏,译.北京:机械工业出版社,2005.

[7](美)HERZUM P,SIMS O.基于组件的企业级开发[M].韩柯,等译.北京:机械工业出版社,2005.

猜你喜欢
组件协同流程
无人机智能巡检在光伏电站组件诊断中的应用
家校社协同育人 共赢美好未来
吃水果有套“清洗流程”
蜀道难:车与路的协同进化
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
“四化”协同才有出路
违反流程 致命误判
三医联动 协同创新
本刊审稿流程