APP下载

基于敏捷方法的校友系统开发

2012-12-17玉溪师范学院信息技术工程学院

电子世界 2012年7期
关键词:业务流程校友实例

玉溪师范学院信息技术工程学院 杨 扬 韩 杰

1.引言

敏捷软件开发过程建侧重于开发成员的协作开发、协作机制的建立和实际的开发步骤,是基于构想、探讨和适应的基础之上。敏捷开发的目标不是“重复”的过程,而是“可靠”的过程[1],以上特性使得如今敏捷开发颇受中小型开发团队的青睐。

2.软件工程与敏捷开发

2.1 传统软件工程与面临的问题

早期的软件开发充满着个人主观色彩,缺乏相关规范标准,但经历了60年代的软件危机之后,采用软件工程原理来组织开发软件项目成为业内一种重要手段。但在随后的时间里,软件工程知识体系正被不断发展和完善,在进入90年代以后,卡耐基梅隆大学软件学院推出CMM[2],为软件开发过程提出了明确的管理衡量标准。许多人认为,随着软件开发的各个方面中不断增多的规则和方法,程序员能更好的开发出软件产品。但随着越来越多的规则和方法的加入,软件工程变得庞大和复杂,在现行的实际环境下,软件开发如果遵循那些详细制定的规则和方法是非常困难的,过于复杂且难以理解的开发流程和规则,使得完全使用传统软件工程方法来开发软件产品变得越来越难以实现。为了完成开发计划,开发者往往会省略一些流程以节省时间,程序员越来越希望制定出一套更简洁的开发流程和规则,删除一些不必要的步骤以应对不同的开发需求,从而让软件开发变得更灵活、快速,而敏捷开发正是因此而诞生的。

2.2 敏捷开发与极限编程

敏捷方法是一种在面对不断变化的需求中,采用以人为本、迭代、循序渐进的方式快速开发软件产品的方法。为获取这种敏捷性,在开发过程中应把软件项目分割为多个子项目,采用必要的纪律和反馈实践,保证每个子项目的完整性,具备集成和执行的特性,从而体现让整个软件项目具有灵活、适应性的设计原则和设计模式。

当前,常见的敏捷方法有极限编程(XP eXtreme Programming)、SCRUM、动态系统开发方法(DSDM Dynamic System Development Method)、水晶方法(Crystal Methodologies)、自适应软件开发(ASD Adaptive Software Development)、特征驱动软件开发(FDD Feature Driven Development)、开放式源代码(Open Source)等[3]。其中XP以它特有方式,大受青睐。

1999年,Kent Beek提出了“极限编程(XP)”这一创新理念[4]。进入21世纪以来,极限编程成为最流行的敏捷方法,多使用于为中小企业开发需求处于快速变化的软件。XP提供了一个全局的、价值驱动的开发过程视图,体现了4个价值目标:交流(communication),简单(simplicity),反馈(feedback)和勇气(courage),并遵循5个原则:快速反馈、简单假设、逐步修改、提倡更改和优质工作[5]。

3.敏捷建模过程

本次校友网站的开发是玉溪师范学院2011年大学生科研立项的项目之一,笔者作为指导教师首先考虑到的问题就是组员均为缺少实际开发经验的学生,若采用传统的软件开发方式,极有可能让学生在冗长复杂的开发流程中失去兴趣,从而影响项目进度与质量。而极限编程作为一种轻量、高效、低风险、可预测且充满乐趣的软件开发方式,更适合作为本次校友网站的开发模式。校友网站的开发目的,是为建立一个能让各级校友沟通交流的平台。因此开发出的校友网系统应贴切符合学生的应用需求,但在校学生对校友网的功能需求是一个笼统而模糊的概念,并且人数众多、喜好各异,若要能短期获得符合公众真实意愿的需求分析是非常不现实的。而XP中快速反馈、逐步修改的理念正好让组员能不断收集完善学生需求,并修改反馈到系统中去。

图1 需求分析流程图

图2 校友网基本业务流程

图4 后台系统管理展示

3.1 需求分析

图3 校友网系统功能模块

按照敏捷建模的思路,设计了图1所示的需求分析以及总结流程。通过对各个模块的建模应用,作为下一阶段的建模基础。通过模块间的相互举证,确保需求获取的准确和高效。用户故事(Story)是极限编程(XP)中的重要方法之一,体现了交流、反馈、简单等原则,它通过精简、独立、可靠的素材替代描述,提高沟通效果。

在校友网系统的需求收集过程中,为了使学生能够更好地表达他们的需求,需求获取分为两个阶段:第一阶段采用问卷调查方式,对不同专业和年级的学生以及部分教师发放问卷,并抽取问卷中类似需求的学生进行归类;第二阶段,通过整体分析问卷,随机抽取同一类的部分学生完成设计人员所设计的任务,期间不断沟通,询问用户的想法和意图,完善用户需求。业务流程建模在需求获取后,对需求信息进行分析与细化,将业务流程进行提取与整理让其能体现的整个系统的业务处理过程,使用户理解全局的逻辑。用户也能确认是否存在遗漏和特殊流程,从而生成了如图2所示校友网基本业务流程。

3.2 角色设计与实例建模

建模作为敏捷开发的核心,体现在这里就是关于角色的规划。通过对基本业务流程进行收集整理后,按照特定的角色对操作整理从而对产品经行实例建模,根据图2进行角色设计,并分析设计该系统的三类角色:系统管理员、游客、注册校友。

游客,未进行系统注册的校友或其他在网络上浏览该系统的人员,游客可以正确浏览系统前台所有模块。

注册校友,游客通过在校学号进行系统注册成为注册校友,注册校友享有游客权限外,应具有个性化的个人空间,并且能进入后台进行个人信息的管理。系统管理员,系统管理员是保障校友网系统运行所需要的技术支持和管理维护人员,应具有对各管理模块的管理权限,从而对系统前台各模块的内容进行添加、编辑、删除。

通过对业务流程进行整理后,按照特定的角色实施操作整理,就可对产品的进行实例建模,实例模型是利用对实例和角色的简单描述并对产品需求进行模型化解释,从而确定问题领域的作用。在实例建模过程后,不需给出任务操作细节,含有基本的描述即可。在校友网系统业务流程建模后可以发现,除特定的角色的实例复杂之外,其余角色用例建模都较为简单,在后续功能模块的设计进行上,能够得到充分的利用,提高效率。最终我们得出了图3所示整个校友网的功能流程图。

4.系统设计

在系统开发过程中考虑到今后服务器负载和开发与维护成本,以及基于XP中逐步修改、提倡更改的原则,对平台设计采用了基于B/S应用的.NET三层架构。.NET三层架构,是在客户端与数据库之间加入一个“中间层”。实际项目开发过程中,整个项目分为三层架构分别包含:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。

表示层(UI):负责数据展示,将数据传递给业务逻辑层,为用户提供交互操作界面。

业务逻辑层(BLL):负责关键业务处理和数据传递。复杂逻辑判断和数据库的数据验证都需要在此进行处理,并反馈用户数据和相关逻辑处理。

数据访问层(DAL):实现数据保存与读取,负责数据库数据访问。主要为业务逻辑层提供数据,根据输入数据来操作数据库。

为了保证项目开发效率,我们在项目中建了BLL,DAL,DBUtility,Model四个类库和一个web界面。命名为:业务逻辑层(Business Logic Layer):BLL,命名空间设置为Maticsoft.BLL数据访问层(Data Access Layer):DAL,命名空间设置为Maticsoft.DAL数据层基类:DBUtility,命名空间设置为Maticsoft.DBUtility,此外为了保证了数据传递的效率,添加了一个类库,贯穿于整个三层架构中的,命名为Model为实体类。其中封装的每个类对应着一个实体类,通常为数据库中的一个表,将表中字段都封装成共有属性。这样三层架构的搭建完成并有着如下关系:表示层←业务逻辑层←数据访问层,他们之间的数据传递是双向的,并且通常借助实体类传递数据。这样设计有几个优点:

(1)易于项目修改和维护。

(2)易于扩展,今后如有改动只需将原有类库添加即可。

(3)易于合并和代码的重复使用。

图4展示了开发完成后的后台管理系统界面,其余界面由于篇幅关系不作展示,目前该项目处于结题阶段,未对外开放。结题后可登陆玉溪师范学院网站(www.yxnu.net)进行访问。

5.结束语

本文介绍了使用敏捷开发思想快速开发校友网系统的过程,确保系统开发按期完成,并通过用户故事和原型迭代分析,完善了系统功能模块,保证软件质量。实践证明:应对开发过程中学生不断反馈引发的需求不断变化,敏捷开发及极限编程的思想不失为一种明智选择,由于篇幅关系,本文未能反映采用敏捷思想的软件测试环节的过程,但作为敏捷开发中一个重要环节,不断的测试与反馈才能促使系统的改进才能保证软件质量。

[1]赵熙朝.敏捷软件开发过程改进的行动框架[J].Software Engineering and Standardization.2007.

[2]RobertC.Martin.敏捷软件开发:原则、模式与实践[M].北京:清华大学出版社,2003.

[3]张友生.系统分析师技术指南[M].北京:清华大学出版社,2007.

[4]Kent Beck.Extreme Programming Explained[M].北京:机械工业出版社,1999.

[5]Sillitti A Succi G.Source Code Repositories and Agile Methods .Extreme programming and Agile Processes in Software Engineering:6th International Conference XP[C].2005.

猜你喜欢

业务流程校友实例
安庆师范大学优秀校友
安庆师范大学优秀校友
RPA机器人助业务流程智能化
校友风采
校友风采
企业财务管理、业务流程管理中整合ERP之探索
互联网+背景下物流公司的业务流程再造
基于财务业务流程再造的ERP信息系统构建探析
完形填空Ⅱ
完形填空Ⅰ