【论软件需求获取方法及其应用】

摘要

2023 年 3 月,我所在的公司承接了某油企智慧加油站平台的建设工作。该项目旨在帮助加油站提升运营效率、降低运营成本和提高销售额。我在该项目中担任系统架构设计师,负责整个项目的架构设计工作。

本文以该项目为例,详细论述软件需求获取技术在该项目中的具体应用。在该项目中,我们主要运用了用户访谈、现场观摩和原型化方法等技术来获取需求。首先,我们通过用户访谈获取初步的用户需求;然后通过现场观摩获取复杂业务流程的需求;最后通过原型化方法进一步跟客户验证与确认需求。通过以上方法的运用,我们准确地获取了系统的需求,为后续阶段工作的顺利开展提供了有利的支撑。

整个项目历时 10 个月开发完成,并于 2023 年 12 月正式交付并稳定运行至今,各项功能和性能指标均达到了客户要求,得到了客户和各级领导的一致好评。

项目背景

随着国内成品油零售行业竞争日益激烈,某油企为增强市场竞争力,决定建设一个智慧加油站平台,通过引入信息技术来优化运营管理,进一步提升加油站的管理水平和服务质量。我所在的单位成功中标该项目,并于 2023 年 3 月正式启动该项目的建设工作。我被任命为系统架构设计师,负责该项目的系统架构设计工作。

该项目的主要建设内容包括智慧支付、智慧营销、智慧运营等功能模块。其中智慧支付模块提供了对多种支付方式的支持,比如现金支付、油卡支付、微信支付、支付宝支付、云闪付支付、车牌付、人脸付、ETC 支付等,以确保顾客下单支付的便利性和安全性;智慧营销模块支持开展多种形式的营销活动,比如消费返券、趣味抽奖、积分任务、限时秒杀、充值优惠等,以提高顾客复购率;智慧运营模块涵盖了站务管理、运营数据统计分析等功能,以提高加油站运营效率。

该项目选用 Java 作为主要开发语言,采用基于 Spring Cloud Alibaba 的微服务架构进行构建。我们选择 MySQL 作为数据库,Doris 作为实时数仓,Redis 作为分布式缓存,RocketMQ 作为消息中间件,Flink 作为实时流式计算引擎,并最终在 Kubernetes 集群中部署运行。

考虑到该项目的复杂性,经过项目团队成员的充分讨论,我们一致决定采用用户访谈、现场观摩和原型化方法来获取该项目的需求。下文将详细论述这三种需求获取技术在该项目中的具体应用。

用户访谈

首先,我们通过用户访谈获取初步的用户需求。用户访谈的推进过程经历了以下三个阶段:准备阶段、访谈阶段和总结阶段。在准备阶段,我们确定了访谈对象,如企业决策者、加油站站长、加油站员工以及顾客,并根据访谈对象的特点分别制定了个性化的访谈计划,内容包括访谈时间、访谈对象、访谈目的以及访谈问题列表。对于企业决策者,访谈问题主要关注其对智慧加油站平台的期望与目标;对于加油站站长,访谈问题主要关注其在日常运营中所面临的挑战与困难;对于加油站员工,访谈问题主要关注其日常工作流程以及在工作中遇到的各种问题;对于顾客,访谈问题主要关注他们在消费过程中的便捷性和安全性体验。在访谈阶段,我们按照访谈计划逐一进行访谈,在访谈过程中,我们通过开放性问题引导访谈对象表达他们真实的需求和想法,并认真倾听访谈对象的反馈和建议,以便更好地了解他们的需求和期望。在访谈过程中,我们还注意记录访谈对象的回答和反馈,以便后续分析和整理。在总结阶段,我们对访谈结果进行了整理和分析,并为每个访谈对象整理了访谈备忘录。通过对访谈记录的整理和分析,我们得到了初步的用户需求。

现场观摩

然后,我们通过现场观摩获取复杂业务流程的需求。虽然之前的用户访谈为我们提供了一些用户需求的基础信息,但由于项目团队成员缺乏对相关领域知识的了解,对一些关键的业务流程如加油付款、员工交接班、营销活动等的理解仍然不够清晰。为了更直观地理解这些业务流程,在获得高层领导的支持和加油站站长的协助后,我们选择在加油低峰时段对这些业务流程进行了现场观摩。我们重点观察了员工和顾客的操作流程,比如顾客如何支付、领取优惠、使用优惠等,员工如何收款、交接班、核销优惠等。同时,我们也注意到了一些之前用户访谈中未能提及的细节和问题,例如,在加油付款的过程中,我们发现一些顾客对支付方式和优惠的选择存在困惑,他们不确定应该怎么选择才能享受最大的优惠。针对这个问题,我们提出了一个改进建议:自动选择最大的优惠,该建议得到了客户的认可和支持。通过现场观摩,我们直观、清晰地了解了这些业务流程,进一步地加深了我们对加油站运营的理解和认识。

原型化方法

最后,我们通过原型化方法进一步跟客户验证和确认需求。通过用户访谈和现场观摩,我们已经获取到了基本的用户需求。但是为了确保我们与客户对需求的理解完全一致,我们决定采用原型化方法来进一步验证和确认需求。首先,我们根据之前收集的信息和需求,设计了一个初步的原型,并邀请了一些典型的用户来试用原型,同时观察他们的操作过程和反馈。通过原型测试,我们发现了一些之前未能注意到的问题和细节,例如一些用户在加油过程中遇到了操作上的困难,他们不知道应该如何选择油品和数量。针对这个问题,我们优化了原型。此外,我们还发现了一些用户对优惠活动存在误解,他们不清楚优惠的具体规则和条件。针对这个问题,我们在原型中增加了一些说明和引导,帮助用户更好地理解优惠活动。在原型测试结束后,我们根据用户的反馈和建议,对原型进行了多次修改和优化,最终,我们得到了一个符合用户需求、操作流畅、用户友好的原型。通过原型化方法,我们不仅进一步了解了客户的需求和细节,还提高了该系统的可用性和用户体验。

总结与感悟

通过微服务架构的应用,我们有效提高了系统的可扩展性和可维护性。最终,经过 10 个月的研发,该项目于 2023 年 12 月完成并交付上线,至今运行稳定,各项功能和性能指标均达到客户要求,得到了客户和各级领导的一致好评。虽然项目取得了成功,但我们也看到了一些不足之处,其中需求频繁变更导致项目团队经常加班是比较突出的问题。针对这个问题,我们采取了以下两个措施:一是规范需求变更流程,提升变更成本,以避免过度的需求变更;二是通过灵活的配置和架构设计,低成本响应需求变更。

通过该项目的开发,我在系统分析与设计方面积累了不少宝贵的经验,为我后续的工作提供了很大的帮助。这也激励着我不断学习,不断丰富自己的知识体系,为将来能够应对更复杂的工作做好准备。

来源

相关推荐
weixin_464838158 小时前
grep命令如何实现正则表达式搜索?
linux·运维·服务器·网络安全·系统架构
傻傻虎虎12 小时前
【系统架构设计】基于中间件的开发
中间件·系统架构
AmHardy1 天前
系统架构设计师 需求分析篇二
系统架构·需求分析·面向对象分析·分析模型·uml和sysml
我叫啥都行1 天前
计算机基础知识复习9.13
linux·笔记·后端·系统架构
程序员古德1 天前
《系统安全架构设计及其应用》写作框架,软考高级系统架构设计师
安全·系统架构·系统安全
程序员古德2 天前
《论负载均衡技术在Web系统中的应用》写作框架,软考高级系统架构设计师
前端·系统架构·负载均衡
傻傻虎虎2 天前
【系统架构设计】安全性和保密性设计(一)
系统架构
unclejet2 天前
如何做系统架构?从动态系统思考的角度
系统架构
AmHardy3 天前
系统架构设计师 需求分析篇一
架构·系统架构·需求分析·结构化分析·核心模型
lfsun6663 天前
【60天备战软考高级系统架构设计师——第十九天:运维与服务管理——系统监控】
运维·系统架构