摘要:300/2
2022年6月,我参与了某省政府线上采购云平台的建设,该平台包含网上超市系统、在线询价系统、电子招投标项目采购系统、基础数据管理系统等多个子系统。
本文以该系统为例,主要论述了统一过程开发模型在该系统中的具体应用。分为三次迭代完成了项目开发任务,其中主要包含如下阶段:
在初始阶段,主要业务建模和需求定义,明确需求;在细化阶段,主要是分析设计,对系统进行整体的架构设计和划分;在构建阶段,进行实施编码和测试,在交付阶段,部署并交付使用。
在该项目中,我担任系统分析师岗位,负责系统分析和设计工作。【该项目总投入约800万元,历时9个月,于2023年3月正式交付使用至今,收到用户一致好评。】
项目背景: 500/2
2022年6月,我所在单位承接参与了某省政府线上采购云平台的建设,我在项目中担任系统分析岗位。
该平台是由某省财政厅牵头与社会企业合作开发建设集“网上交易、网上监管“于一体的政府采购云计算服务平台,平台要涵盖政府采购全流程、各个环节,其中包括新型的电子卖场采购模式和传统与现代相融和的采购模式。电子卖场采购模式,体现了便捷高效、自主灵活的特点,将交易模式创新为网上超市、在线询价等。同时,也将采购监管的流程融入平台,这样才能充分有效解决长期以来政府采购价格高、效率低、服务差的问题。
该平台的应用软件主要由四部分组成,包括网上超市系统、在线询价系统、电子招投标项目采购系统、基础数据管理系统。
网上超市子系统实现了采购单位对采购法中集采目录以外的项目进行灵活自主采购,主要提供交易和订单管理功能。
在线询价子系统负责对金额较大,但未达到公开招标限额标准的项目进行在线询价采购,主要提供询价管理和报价管理功能。
电子招投标项目采购子系统,是采用公开招标投标,电子评标的业务系统。
基础数据管理系统是维护主数据信息的后台业务系统,用于向其他业务子系统提供数据,其中提供了商品管理、供应商管理、用户管理、机构管理等功能。
该平台涉及的子系统采用微服务架构实现。对于庞大的业务流程,多个子系统之间的负责交互,以及海量的数据信息流转,都是我们需要面对的挑战,因此要高质量的完成该平台建设,选择一种合适的软件开发模型至关重要。
论文概述: 300/1
软件开发模型是软件开发全过程、活动和任务的框架,是软件系统开发的重要基础。常见的开的开发模型有以下几种,瀑布模型、快速原型模型、统一过程开发模型。
瀑布模型,严格遵循软件生命周期各个阶段的固定顺序,一个阶段完成再进入另一个阶段。其优点是可以使过程比较规范化,有利于评审,缺点是过于理想化,缺乏灵活性,难以应对需求复杂多变的场景。
快速原型模型,对于很多需求不明确的项目,比较适合采用该模型。它通过快速建立一个反映用户需求的软件原型,可以直观的让用户看到需求呈现出的样子,再根据用户的反馈进行修改,能够充分体现用户的参与和决策。
统一过程开发模型,统一过程是一个通用过程框架,可以用于广泛的软件系统开发中。UP具有三个显著的特点,即用例驱动、以架构为中心、迭代和增量的特点。
经过项目组成员一致讨论,最终决定使用统一过程开发模型作为该项目的开发模型。
三大论点: 1000/3
统一过程开发模型一般分为四个阶段,分别是初始阶段、细化阶段、构建阶段、和交付阶段。本文主要对前三个阶段进行介绍说明。
初始阶段,
初始阶段的主要目标是业务建模和需求。其中用例驱动是UP的特点之一,在该阶段首先识别系统的参与者和关键用例,识别出政府采购中涉及到采购单位、供应商、评审专家库、代理机构、采购监管科等众多实体,以及供应商商品发布、协议框架入围、采购单位交易下单、采购单位委托代理机构在线询价、电子招投标等用例,其中我们采用了用户访谈和联合需求计划JRP的方式来进行需求获取,组织了财政监管人员、政府采购行业的专家、企业的管理层、系统分析师及核心开发共同参与会议,对电子招投标系统中的招标、投标、开标、评标、定标各个环节进行了充分的讨论和对齐,确保每个环节都能做到公平公正,并且符合政府采购法规的要求。最终明确了用户需求,产出需求规格说明书,并请需求方一起评审和确定,建立了需求基线,确定需求的边界。
细分阶段,
细分阶段的主要关注点是分析设计。考虑到平台后续的需要支持的并发访问量和不同子系统需要独立部署和扩展的特性,决定采用微服务架构实现。将每个子系统根据业务领域划分拆分成多个独立的服务,每个服务都有自己的数据库和业务逻辑,这样可以减轻高并发下对数据库的访问压力,服务与服务之间采用RPC通信的方式进行数据交互。不同服务在发布迭代功能的时候不会相互影响,而且服务内部还可以根据实际业务情况采用异构设计,极大的提高了应用程序的可伸缩性、可维护性和灵活性。例如基础数据管理系统根据其包含的多个业务域,拆分出了商品服务、供应商服务、用户服务、机构服务等。其中供应商服务提供了供应商入驻、供应商查询等功能;商品服务提供了商品发布、商品信息维护、商品查询等功能。当商品服务在发布商品时需要审核供应商资质的时候,就通过调用供应商服务的查询接口,获取供应商信息并完成自身所需的业务校验逻辑。
构建阶段,
构建阶段的主要关注点是实施和测试。为了保证系统的交付质量,我们采用多种测试方法进行测试。在某一功能模块开发完成后,对其进行单元测试,确保模块内部的功能是正确的;等一个功能依赖的多个模块完成时,进行集成测试,确保模块与模块之间的交互是正确的;随后进行系统测试,对功能整体进行测试,确保功能正常的同时,系统性能也能达到客户要求。在模拟并发测试的过程中,我们发现在高并发下请求下,网上超市的并发下单会出现并发安全问题,具体的场景是库存被扣减成负数,这个是不符合测试预期的,我们随即对相关问题进行排查,经过对技术方案的重新设计和优化,最终解决了该问题。
总结:400/2
在该项目开发过程中,我们一共经历了三次完整的迭代,在每次迭代过程中的初始阶段、细化阶段、构建阶段和交付阶段均进行相应的技术评审,并采取了相应措施保证系统的质量,如期完成了项目开发。
同时在项目开发过程中也遇到了一些问题,以及存在优化改进的地方,如没有充分考虑到真实用户的使用难度和学习成本,因此我们在后续的迭代中,对复杂的链路进行合并简化,并组织多次的产品功能演示说明,降低用户学习成本。得到了领导、用户的一致好评。
通过对该平台系统的开发,我体会到软件开发模型在实际软件开发过程中的重要性,以及对软件开发生命周期不同阶段的重心有了更深一步的了解。随着国家及企业的信息化程度越来越高,业务系统设计会更加复杂,因此需要我们在今后实践中不断探索,不断总结。