摘300
背景500
论述300
正文1000
总结500
2022年6月,我参与了x省政务线上采购云计算服务平台的建设,该系统主要包含了网上超市、在线询价、电子在线招投标项目采购、基础数据管理等多个子系统。
本文以该系统为例,主要论述了面向对象需求分析方法在该平台建设中的应用。主要是分为三个部分来论述该分析方法的建模工作。面对对象分析方法在分析阶段主要建立两大模型,分别是用例模型和分析模型,其中分析模型又可以细分为静态分析模型和动态分析模型。对于用例模型的建立,我们是通过用例图来实现的,该模型是一种用可视化的方式来描述系统需求的方法,我们还使用类图来构建静态分析模型,去展示系统是由哪些对象和类组成;动态分析模型方面是,用到了状态图来反应对象状态变化。
在该项目中我担任系统分析师的岗位,负责系统的分析和设计工作,该项目总投入共计900万,历史8个月,于2023年2年交付使用至今,收到领导和用户的一致好评。
2020年6月,我所在的单位承接了某省政府线上采购云计算法务平台的建设,我在项目中担任系统分析师岗位。
该平台是由X省财务厅牵头和社会企业合作共建的集“网上交易、网上监督、网上服务”于一体的政府采购平台,该平台涵盖了政府采购的全流程、各个环节,其中包含了新型的传统和现代相结合的电子招投标项目采购方式。电子卖场模式体现了自助灵活、便捷高效的特点,其交易方式有,网上超市和在线询价,同时,该平台还将采购管理中的监督和监管流程融入进了平台的交易流程中,方便监督部门在不同场景下对采购流程的监管,有效的解决了以往政府采购“价格高、效率低、服务差”的问题。
该平台主要由4部分组成,包括网上超市、在线询价、电子招投标项目采购,基础数据管理:
- 网上超市实现了采购单位对政府采购法中集采目录以外的商品进行灵活采购,像超市买东西一样便捷,该子系统主要包含商城前台大厅模块和购物车管理模块。
- 在线询价负责的采购范围是对集采目录以内,金额较大,但未达到招投标最低标准金额的项目进程询价采购,该子系统包含了询价管理和报价管理。
- 电子在线招投标项目采购是对专业性较强、金额数较大,对传统招投标采购流程,进行了电子化和信息化,通过线上的方式就可以完成招标、投标、开标、评标、定标。
- 基础数据管理子系统则是其他业务系统的底层依赖。包括商品管理、供应商管理、用户管理、机构管理、交易订单管理等模块。
该平台的业务流程较为复杂,不同流程之间相互依赖关联度高,业务的专业性强,需求分析存在不小的挑战。因此要高质量的建设该平台,选择一种合适的需求分析方法至关重要。
需求分析是为了将杂乱无章的用户要求转换为用户需求的过程,具体的需求分析工作主要包含下面几个方面:
- 确定系统上下文范围边界来确定需求的边界
- 创建用户界面模型方便用户理解系统
- 分析需求的可行性
- 确定需求优先级和迭代
- 建立数据字典
- 为需求建立模型
- 使用QFD,常规需求、期望需求、意外需求
常见的需求分析方法分为结构化需求分析方法和面向对象的需求分析方法。两者的区别主要在与思想和方法论不同,结构化需求分析方法,侧重于流程和数据,适合需求明确的情况,面向对象的需求分析方法更重注对象与对象的关系,适合于需求较为复杂的情况。经过项目组分析人员的一致讨论,最终才用了面向对象的需求分析方法。
本文主要需求建模方面,从用例模型、静态分析模型和动态分析模型对面向对象分析方法进行论述。
一、通过用例图来表示,用例建模的过程,首先是对参与者进行识别
识别参与者,根据分析,识别出与系统进行交互的实体有采购单位、供应商、代理机构、平台运营、监管机构。
合并需求获得用例 通过前期的需求获取,将需求分配到每一个参与者,在合并之前确认为什么要合并、合并完需求会产生用例,如发布商品的需求需要发布价格和发布商品的库存,那么这几个需求可以合并成一个发布商品的用例,系统中这些步骤不能单独对外提供服务,只能作为用例的包含的事件流。
细化用例描述,通过自然语言的描述,对用例进行内容规划。例如包含用例的名称、用例的解释说明、包含的事件流、前置的条件和用例的优先级。
调整用例模型,在建立初步的用例模型后,根据用例关系对模型进行调整,比如泛化、包含、扩展的关系,使用例更简洁和容易维护。
二、通过类图建立静态分析模型,
识别概念类,库存实体类,价格实体类,商品实体类
找类和类的关系,商品实体类和价格更库存是关联关系中的组合关系,商品跟企业实体是依赖关系,商品实体跟产地实体是聚合关系
给类定义职责 库存实体包含哪些职责,如库存扣减和库存释放的职责,也是就类中的方法,方法内部还封装了对日志流水的操作。体现高内聚低耦合
三、通过状态图建立动态分析模型,它主要描述了系统状态和事件,以及事件引发的状态转换。我们对该系统商品的生命周期状态建立了对应的行为模型,商品在系统中会经历新品、正常、停供、停售和退供五个阶段,每个阶段所表示的商品状态和所支持的业务操作是有所
不同的,例如正常发布的商品首先会处于新品阶段,创建后会触发一个延时事件,延时事件到期后会将商品的状态从新品改为正常。当供应商停售商品供货时,触发停售事件,商品的状态会转为停售状态,停售的商品对于采购单位不可见,不能进行正常的交易。状态转换图的建立可以帮助我们对于系统中事件及事件的影响进行分析,同时也有助于开发人员根据状态流程保证业务流程健壮性。
该平台业务流程负责,且项目具有较高的需求风险,由于在开发过程中采用了UML的用例图、类图、状态图等,使得我们能从多个方面对需求进行掌控,有效的保证了需求的质量,同时项目在开发过程中也遇到了一些问题和有待改进的地方,例如我们没有充分考虑到用户的使用成本和学习成本,因此在后续的迭代中,我们复杂的需求用例点进行了需求合并和简化,并且组织多次产品演示,最终成功降低了用户的使用成本和,得到了领导、客户的一致好评。
通过对该平台的建设开发,我体会到了合适的需求分析方法对于软件开发工程的重要性,随着国家的信息化程度越来越高,业务系统也会变得越来越复杂,因此需要我们在今后的实践中,不断总结,不断提高。