品。通过这些规范的文档可以有效的,快速的指导整个软件开发,给项目管理一个指导性的大纲。在有了正确的管理,高效的开发过程后才能为企业和组织带来更多,更快的效益。
2.软件过程实践
下面就一个开发零售百货业ERP项目的公司作为例子来研究一下软件过程的实践,包括分析企业开发过程的现状,制定改进计划,实施和评估。
2.1.分析企业现有软件过程的现状
2.1.1.业务分析及企业背景
这个开发零售百货业ERP系统的公司是一个由35人组成的小型企业,是隶属于某大型卖场的开发团队。
拥有一批对零售业务具备多年经验的需求,开发和测试人员。
公司内部组织分成四个独立项目组:需求组、开发组、测试组、系统组。
各个项目组职责明确。
使用J2EE架构,JAVA、JSP语言进行WEB页面开发。
使用SYBASE数据库/数据仓库产品进行数据存储及处理,可支持大数据量。
在开发过程中使用CVS、Bugzilla Bug追踪系统及自主研发的更新工具支持项目开发。
行业领域比较专业,有很多公式、业务规则、合同规则来指导开发工作。
具有稳定的客户群,分布全国都有客户分店,但是零售业客户的需求不断变化、新需求层出不穷。
整个软件产品对客户的管理工作起到决定性作用。客户的订单、进退货、财务、付款、合同等管理流程全部需要由软件来完成,因此直接关系到客户的经济效益。
软件质量和开发效率极其重要,直接影响公司的命运。
已经有成功发布并运行正常的软件产品。
2.1.2.项目风险分析
客户需求不断变化,给开发过程的进度控制带来很大困难业务范围广、流程复杂、专业程度高(例如财务方面的业务分析及建模),需要具备一定的行业知识。
客户的数据安全性、完整性、可靠性、正确性需要得到百分百保证。
系统分为总部和全国各分店系统,需要通过网络交换数据,网络安全需要考虑。
服务器访问量大,需要硬件支持。
2.1.3.内部环境
内部组织结构
公司内部分成四个项目组:需求组、开发组、测试组、系统组。
根据开发的模块大小从需求组、开发组、测试组抽调部分组员组成模块开发小组。
系统组负责环境架设、程序更新等工作。
公司拥有一批业务经验、行业知识丰富的人员。
公司拥有多名开发经验超过5年的开发人员。
开发过程
使用比较传统的开发过程:需求分析—》设计开发—》系统测试—》发布新版本。
基本类似于瀑布式开发过程,其中会使用些增量式开发。
测试方面依据业务流程做黑盒测试,主要依靠业务经验来测试产品,无自动测试工具。
需求阶段有详细的需求文档作为开发依据,开发过程中没有规范的设计文档,很多情况下
仅仅是根据需求文档直接做开发。
有些设计文档是开发项目结束后才补写的。
没有固定去做测试计划,有时仅仅是开发完成后就开始分工测试。
有做测试案例但没有固定的规范约束,测试案例交由开发和需求人员确认。
有BUG系统追踪需求变更及BUG处理情况,但无系统的测试报告给开发人员参考,大部分情况下是口头和开发/需求人员沟通BUG的问题点。