论文部分内容阅读
摘 要:结合某在线订单管理系统,介绍敏捷软件开发的一般方法和迭代过程以及使用Oracle HTML DB进行系统开发的工程实践. 该项目的成功实施为企业提供1个简捷、可靠的电子商务解决方案,证明敏捷开发技术特别适用于中小型软件工程.
关键词:敏捷开发;订单管理;Oracle HTML DB;迭代
中图分类号:TP311.5 文献标志码:A
Agile development of online order management system based on Oracle HTML DB
SHI Youqun1,ZHANG Hui1,2,YU Yingkai2,
WANG Ang1,ZHENG XiaoQiang1
(1. School of Computer Sci. & Tech.,Donghua Univ.,Shanghai 200051,China;
2. Royal Building Systems (Shanghai) Ltd.,Shanghai 201613,China)
Abstract:The agile software development methodology and its general iterative process,and the development with Oracle HTML DB are introduced combined with an online order management system. The success implementation of the project provides a simple and reliable E-commerce solution for an enterprise,and proves that the agile development technology is very applicable to small and medium-sized software engineering.
Key words:agile development;order management;Oracle HTML DB;iteration
0 引 言
许多应用软件系统或者信息系统交付使用后,往往只能满足用户的部分需要,且生命周期短,其主要原因是没有充分理解用户的需求或者软件系统不能适应需求的变化.事实上,只有变化本身是不变的.在开发软件项目的过程中,即使完全理解用户的需求,需求也一定会出现变化.软件工程人员既然不能够减少或者控制系统将来发生的变化,就应该找到新的方法,更有效地适应这种变化.
2001年2月,17位轻量级软件开发方法的创始人和专家建立敏捷联盟,共同发布敏捷软件开发宣言[1](The Manifesto for Agile Software Development),并将其宣言中表达的基本原理精炼为12条原则(Agile Alliance 2001 b).比如,个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划.希望在这些基础原则之上,成功地实现软件开发.
1 Oracle HTML DB支持敏捷开发
1.1 敏捷开发基本原理
“敏捷开发是1种面临迅速变化的需求仍然能够快速开发软件的能力.”敏捷联盟的发起人、开发宣言的起草人之一MARTIN说,“出于对待变化的不同态度,敏捷开发采用适应性方法,而传统的软件工程学采用预测性方法.”适应性和预测性的区别存在于软件工程学对软件开发过程的描述.一开始软件工程学里设计过程和构建过程就分开进行,于是在最先开始的设计阶段,所有与设计相关的重要决定就已经作出,而开发过程中不断发生的变化使得这样的设计无法发挥作用.相比之下,敏捷开发理论的前提更符合占有绝对多数的定制型软件项目,其基本原理是通过迭代式的开发过程使软件一直处于可使用状态,客户需求引起的变化可以在开发过程中不断满足.客户对软件开发过程的持续参与也可以大大提高软件的成功率.
① 图2是HTML DB 1.6版本截图,名称是Data Workshop.最新的2.0版本中,增强为Administration.1.2 Oracle 10g和Oracle HTML DB
Oracle Database 10g是第1个为企业级网格计算而设计的数据库,支持快速响应业务需求,易于开发和维护.1个重要的体现是Oracle 10g 包含强大的本地开发工具HTML DB,可以将 Oracle 数据库转换为在线开发服务,用于快速开发以数据库为中心的 Web 应用程序.HTML DB既适合经验丰富的Oracle数据库开发人员,又适合能力很强的非开发人员(例如Oracle DBA或者高级用户),只要拥有 Web 浏览器,就能够快速创建基于Web的报表和数据库应用系统.[2,3]
HTML DB包括1个存储应用程序定义的元数据库和1个用于呈现和处理浏览器页面的引擎.[4]该引擎用 PL/SQL实现,通过 Oracle HTTP Server (Apache)和mod_plsql 从Web 浏览器进行访问(见图1).HTML DB包含3个主要的组件[5](见图2).
图 1 HTML DB体系结构
图 2 HTML DB开发界面
(1)Application Builder.使用 Application Builder,可以构建以数据库为中心的交互式 Web 应用程序.
(2)SQL Workshop.SQL Workshop提供友好的图形界面来添加和管理数据库对象,并可以运行 SQL 语句和脚本.
(3)Administration.管理用户和个人设置,获取系统可用性报表①.
1.3 Oracle HTML DB的敏捷特性
HTML DB支持PL/SQL,JavaScript,HTML/CSS模板,Web Service,多种图表,甚至邮件提醒等,也可以用来提供专业的应用程序托管服务,将HTML DB工作区以ASP方式为成百上千的用户使用(如HTMLDB-Hosting.com),这样用户甚至不需要再购买和维护专门的数据库产品.[4]可见,HTML DB是1个优秀的轻量级开发平台,其特有的基于Web,快速开发,所见即所得,轻松迭代和部署,良好的性能和安全等诸多特性,与敏捷开发的特点不谋而合.
HTML DB将集成的Web平台同时提供给开发人员和用户,使得应用程序一直在线,随时可用.任何的变更和版本更新都能实时呈现给项目团队成员,非常便于用户和开发团队的沟通.再加上Oracle数据库本身良好的性能和可靠的安全性,所以它无疑是实现敏捷开发的有利工具.
2 订单管理系统的敏捷开发实践
2.1 敏捷开发过程
某建材生产公司欲在企业站点上实现订单管理系统,支持在线订货、跟踪订单状态、生成销售报表等功能.由于行业和企业本身的发展变化快,需求变更不可避免,所以尝试敏捷开发实践.项目小组由开发人员和企业方关键用户组成,设计与开发过程中随时沟通和交流,并统一受企业方IT技术经理的调度.
在完成前期业务调研和需求分析后,项目团队明确业务流程图、数据流图和第1轮迭代的范围,设计关系数据库模型,从而进入构建阶段.具体构建数据库的方法,使用Oracle 10g提供的企业管理器(EM)结合Oracle HTML DB的“SQL Workshop” 来创建数据库.
第1轮迭代实施周期2个月,搭建整个应用的数据库框架,实现订单的录入流程.本次迭代设计和编码同步进行,在2个月内拿出第1个可用版本,以后的迭代过程中保持软件一直在线可用.
第2轮迭代实施周期1个月,实现库存管理、销售统计功能和多用户权限控制.同时将前期的系统功能向用户做推广使用,实行基本操作培训,并对用户提出的变更意见及时响应和修正.
第3轮迭代实施周期半个月,在不断完善的过程中根据用户对每个功能界面提出的建议进行修改,同时修订完善数据字典、操作说明及其他相关技术文档.
采用迭代式开发,使得业务人员在第1个可用版本完成后,即开始在线录入订单.软件已经开始为业务带来价值.可以把这个问题想得再极端一点:假如明天就要终止这个项目,至少今天提交给用户的是有价值的软件而不是杂乱的文档.
2.2 开发实例
基于HTML DB的应用系统开发,首先使用Application Builder创建工作区.每个工作区可以包含若干个Web应用程序;每个Web应用程序由多个“页面”(Pages)组成;每个页面又包含若干个“区域”(Regions),可以定义区域为数据视图、导航条、HTML区域等,区域中可以添加按钮、输入框、超链接等页面元素提供用户界面.Web元素和区域、页面等容器之间通过定义的参数/变量或SQL过程等进行通信.对于本系统的销售订单项目,客户、产品、订单的相关页面都需要在数据库中读取数据.用户所熟悉的Oracle扩展开发语言PL/SQL在HTML DB中得到全面支持并提供良好的交互.
以产品库存的查询模块为例,开发人员通过向导添加新页面“浏览产品库”(页面编码为P300)构成查询页面.在页面中添加Product区域,定义区域的数据源为下面的PL/SQL函数体.这样,当程序运行时,HTML DB引擎基于函数体生成SQL语句,对Oracle中相应数据表进行查询,最后将查询结果置入P300页面模板中,以Web形式呈现出来.
图3的程序页面中,Product区域的主体就是1个PL/SQL函数体返回的数据库查询结果,其上方包含两个列表框(产品类别P300_CATEGORY,2级类别P300_CATEGORY2)和1个按钮,用来对产品进行筛选.该实例说明HTML DB的SQL查询过程.
图 3 产品管理页面
当用户的需求发生变化时,比如需要显示旧的产品代码(如RP60-S11A,原代码为R60-S11-2.0),只要修改SQL语句,增加“OLDNAME” 旧代码列即可.开发人员修改的同时,用户已经实时获得新的应用程序版本.添加、修改、删除等DML操作,与上例一样,也可以通过SQL语句完成.
迭代过程中对于较大的需求变更也是“拥抱变化”而不是“预测变化”.例如,在用户关于产品的最初描述中,并未指出“特殊规格”的问题,第1个可用版本提交后,用户提出1个重要的业务规则:长度不同的某类产品使用相同的产品编码,而以规格长度来区分管理.此业务规则的变化将影响相关数据表的结构和用户界面.在传统的瀑布式开发方法中,这属于较大变更,需要从可行性、设计、编码整个环节进行项目更改,用户不能快速获取可用版本.而通过敏捷开发,借助Oracle HTML DB工具,在2天内即生成新的可用版本,并实时交付给用户.
3 结 论
本文所介绍内容只是敏捷软件开发原则与方法的初步实践,借助Oracle HTML DB,快速开发与部署以数据库为中心的、健壮性强的、易扩展的Web订单管理系统.HTML DB是非常灵活的数据库开发工具,最终产品的迁移和部署成本接近于0,多次迭代开发对生产和应用的影响接近于0.它提供的在线开发平台使得整个开发过程中软件一直处于可用状态,因此客户的需求变化引起的变更可以在开发过程中快速部署和实现.用户对软件开发过程的持续参与也大大提高软件的易用性和开发进度.该Web应用程序的实施最终帮助用户快速响应客户需求.
参考文献:
[1] MARTIN R C. 敏捷软件开发: 原则、模式与实践[M]. 邓辉,译. 北京: 清华大学出版社,2003.
[2] TERRI W. Oracle HTML DB user’s guide,release 1.6[EB/OL]. [2005-03]. http://www.oracle.com/technology/products/database/htmldb/pdf/B14377_01.pdf.
[3] WINTERS T. Oracle application express 2.0 user’s guide[EB/OL]. [2005-01]. http://www.oracle.com/pls/db102/to_pdf?pathname=appdev.102%2Fb16373.pdf.
[4] SOA Web Services News Desk. Colleges schooled on Oracle HTML DB benefits-efficiency and simplicity make the grade[EB/OL]. [2005-07]. http://itsolutions.sys-con.com/read/113158.htm.
[5] LEUNISSEN S. Oracle HTML DB developing database-centric Web applications[EB/OL]. [2004-10]. http://download.oracle.com/london2004/london2004/7258.ppt.
(编辑 于 杰)
关键词:敏捷开发;订单管理;Oracle HTML DB;迭代
中图分类号:TP311.5 文献标志码:A
Agile development of online order management system based on Oracle HTML DB
SHI Youqun1,ZHANG Hui1,2,YU Yingkai2,
WANG Ang1,ZHENG XiaoQiang1
(1. School of Computer Sci. & Tech.,Donghua Univ.,Shanghai 200051,China;
2. Royal Building Systems (Shanghai) Ltd.,Shanghai 201613,China)
Abstract:The agile software development methodology and its general iterative process,and the development with Oracle HTML DB are introduced combined with an online order management system. The success implementation of the project provides a simple and reliable E-commerce solution for an enterprise,and proves that the agile development technology is very applicable to small and medium-sized software engineering.
Key words:agile development;order management;Oracle HTML DB;iteration
0 引 言
许多应用软件系统或者信息系统交付使用后,往往只能满足用户的部分需要,且生命周期短,其主要原因是没有充分理解用户的需求或者软件系统不能适应需求的变化.事实上,只有变化本身是不变的.在开发软件项目的过程中,即使完全理解用户的需求,需求也一定会出现变化.软件工程人员既然不能够减少或者控制系统将来发生的变化,就应该找到新的方法,更有效地适应这种变化.
2001年2月,17位轻量级软件开发方法的创始人和专家建立敏捷联盟,共同发布敏捷软件开发宣言[1](The Manifesto for Agile Software Development),并将其宣言中表达的基本原理精炼为12条原则(Agile Alliance 2001 b).比如,个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划.希望在这些基础原则之上,成功地实现软件开发.
1 Oracle HTML DB支持敏捷开发
1.1 敏捷开发基本原理
“敏捷开发是1种面临迅速变化的需求仍然能够快速开发软件的能力.”敏捷联盟的发起人、开发宣言的起草人之一MARTIN说,“出于对待变化的不同态度,敏捷开发采用适应性方法,而传统的软件工程学采用预测性方法.”适应性和预测性的区别存在于软件工程学对软件开发过程的描述.一开始软件工程学里设计过程和构建过程就分开进行,于是在最先开始的设计阶段,所有与设计相关的重要决定就已经作出,而开发过程中不断发生的变化使得这样的设计无法发挥作用.相比之下,敏捷开发理论的前提更符合占有绝对多数的定制型软件项目,其基本原理是通过迭代式的开发过程使软件一直处于可使用状态,客户需求引起的变化可以在开发过程中不断满足.客户对软件开发过程的持续参与也可以大大提高软件的成功率.
① 图2是HTML DB 1.6版本截图,名称是Data Workshop.最新的2.0版本中,增强为Administration.1.2 Oracle 10g和Oracle HTML DB
Oracle Database 10g是第1个为企业级网格计算而设计的数据库,支持快速响应业务需求,易于开发和维护.1个重要的体现是Oracle 10g 包含强大的本地开发工具HTML DB,可以将 Oracle 数据库转换为在线开发服务,用于快速开发以数据库为中心的 Web 应用程序.HTML DB既适合经验丰富的Oracle数据库开发人员,又适合能力很强的非开发人员(例如Oracle DBA或者高级用户),只要拥有 Web 浏览器,就能够快速创建基于Web的报表和数据库应用系统.[2,3]
HTML DB包括1个存储应用程序定义的元数据库和1个用于呈现和处理浏览器页面的引擎.[4]该引擎用 PL/SQL实现,通过 Oracle HTTP Server (Apache)和mod_plsql 从Web 浏览器进行访问(见图1).HTML DB包含3个主要的组件[5](见图2).
图 1 HTML DB体系结构
图 2 HTML DB开发界面
(1)Application Builder.使用 Application Builder,可以构建以数据库为中心的交互式 Web 应用程序.
(2)SQL Workshop.SQL Workshop提供友好的图形界面来添加和管理数据库对象,并可以运行 SQL 语句和脚本.
(3)Administration.管理用户和个人设置,获取系统可用性报表①.
1.3 Oracle HTML DB的敏捷特性
HTML DB支持PL/SQL,JavaScript,HTML/CSS模板,Web Service,多种图表,甚至邮件提醒等,也可以用来提供专业的应用程序托管服务,将HTML DB工作区以ASP方式为成百上千的用户使用(如HTMLDB-Hosting.com),这样用户甚至不需要再购买和维护专门的数据库产品.[4]可见,HTML DB是1个优秀的轻量级开发平台,其特有的基于Web,快速开发,所见即所得,轻松迭代和部署,良好的性能和安全等诸多特性,与敏捷开发的特点不谋而合.
HTML DB将集成的Web平台同时提供给开发人员和用户,使得应用程序一直在线,随时可用.任何的变更和版本更新都能实时呈现给项目团队成员,非常便于用户和开发团队的沟通.再加上Oracle数据库本身良好的性能和可靠的安全性,所以它无疑是实现敏捷开发的有利工具.
2 订单管理系统的敏捷开发实践
2.1 敏捷开发过程
某建材生产公司欲在企业站点上实现订单管理系统,支持在线订货、跟踪订单状态、生成销售报表等功能.由于行业和企业本身的发展变化快,需求变更不可避免,所以尝试敏捷开发实践.项目小组由开发人员和企业方关键用户组成,设计与开发过程中随时沟通和交流,并统一受企业方IT技术经理的调度.
在完成前期业务调研和需求分析后,项目团队明确业务流程图、数据流图和第1轮迭代的范围,设计关系数据库模型,从而进入构建阶段.具体构建数据库的方法,使用Oracle 10g提供的企业管理器(EM)结合Oracle HTML DB的“SQL Workshop” 来创建数据库.
第1轮迭代实施周期2个月,搭建整个应用的数据库框架,实现订单的录入流程.本次迭代设计和编码同步进行,在2个月内拿出第1个可用版本,以后的迭代过程中保持软件一直在线可用.
第2轮迭代实施周期1个月,实现库存管理、销售统计功能和多用户权限控制.同时将前期的系统功能向用户做推广使用,实行基本操作培训,并对用户提出的变更意见及时响应和修正.
第3轮迭代实施周期半个月,在不断完善的过程中根据用户对每个功能界面提出的建议进行修改,同时修订完善数据字典、操作说明及其他相关技术文档.
采用迭代式开发,使得业务人员在第1个可用版本完成后,即开始在线录入订单.软件已经开始为业务带来价值.可以把这个问题想得再极端一点:假如明天就要终止这个项目,至少今天提交给用户的是有价值的软件而不是杂乱的文档.
2.2 开发实例
基于HTML DB的应用系统开发,首先使用Application Builder创建工作区.每个工作区可以包含若干个Web应用程序;每个Web应用程序由多个“页面”(Pages)组成;每个页面又包含若干个“区域”(Regions),可以定义区域为数据视图、导航条、HTML区域等,区域中可以添加按钮、输入框、超链接等页面元素提供用户界面.Web元素和区域、页面等容器之间通过定义的参数/变量或SQL过程等进行通信.对于本系统的销售订单项目,客户、产品、订单的相关页面都需要在数据库中读取数据.用户所熟悉的Oracle扩展开发语言PL/SQL在HTML DB中得到全面支持并提供良好的交互.
以产品库存的查询模块为例,开发人员通过向导添加新页面“浏览产品库”(页面编码为P300)构成查询页面.在页面中添加Product区域,定义区域的数据源为下面的PL/SQL函数体.这样,当程序运行时,HTML DB引擎基于函数体生成SQL语句,对Oracle中相应数据表进行查询,最后将查询结果置入P300页面模板中,以Web形式呈现出来.
图3的程序页面中,Product区域的主体就是1个PL/SQL函数体返回的数据库查询结果,其上方包含两个列表框(产品类别P300_CATEGORY,2级类别P300_CATEGORY2)和1个按钮,用来对产品进行筛选.该实例说明HTML DB的SQL查询过程.
图 3 产品管理页面
当用户的需求发生变化时,比如需要显示旧的产品代码(如RP60-S11A,原代码为R60-S11-2.0),只要修改SQL语句,增加“OLDNAME” 旧代码列即可.开发人员修改的同时,用户已经实时获得新的应用程序版本.添加、修改、删除等DML操作,与上例一样,也可以通过SQL语句完成.
迭代过程中对于较大的需求变更也是“拥抱变化”而不是“预测变化”.例如,在用户关于产品的最初描述中,并未指出“特殊规格”的问题,第1个可用版本提交后,用户提出1个重要的业务规则:长度不同的某类产品使用相同的产品编码,而以规格长度来区分管理.此业务规则的变化将影响相关数据表的结构和用户界面.在传统的瀑布式开发方法中,这属于较大变更,需要从可行性、设计、编码整个环节进行项目更改,用户不能快速获取可用版本.而通过敏捷开发,借助Oracle HTML DB工具,在2天内即生成新的可用版本,并实时交付给用户.
3 结 论
本文所介绍内容只是敏捷软件开发原则与方法的初步实践,借助Oracle HTML DB,快速开发与部署以数据库为中心的、健壮性强的、易扩展的Web订单管理系统.HTML DB是非常灵活的数据库开发工具,最终产品的迁移和部署成本接近于0,多次迭代开发对生产和应用的影响接近于0.它提供的在线开发平台使得整个开发过程中软件一直处于可用状态,因此客户的需求变化引起的变更可以在开发过程中快速部署和实现.用户对软件开发过程的持续参与也大大提高软件的易用性和开发进度.该Web应用程序的实施最终帮助用户快速响应客户需求.
参考文献:
[1] MARTIN R C. 敏捷软件开发: 原则、模式与实践[M]. 邓辉,译. 北京: 清华大学出版社,2003.
[2] TERRI W. Oracle HTML DB user’s guide,release 1.6[EB/OL]. [2005-03]. http://www.oracle.com/technology/products/database/htmldb/pdf/B14377_01.pdf.
[3] WINTERS T. Oracle application express 2.0 user’s guide[EB/OL]. [2005-01]. http://www.oracle.com/pls/db102/to_pdf?pathname=appdev.102%2Fb16373.pdf.
[4] SOA Web Services News Desk. Colleges schooled on Oracle HTML DB benefits-efficiency and simplicity make the grade[EB/OL]. [2005-07]. http://itsolutions.sys-con.com/read/113158.htm.
[5] LEUNISSEN S. Oracle HTML DB developing database-centric Web applications[EB/OL]. [2004-10]. http://download.oracle.com/london2004/london2004/7258.ppt.
(编辑 于 杰)