软考系统架构设计师-论文模板
摘要:
2022年3月,我所在的公司承接了某企业的供应链管理系统(SCM)的建设工作,该系统需在企业总部的统筹规划下,实现各个省会城市既可以独立运营又可以相互协作。项目包括商品库管理、仓储系统管理(WMS)、订单履约管理、采购和供应商等资源管理,员工通过PC端管理后台选择城市站点进行各项管理和操作,助手小程序端和PDA端用于物流配送履约和仓储系统管理出入库和上下架等操作,用户则通过商城小程序端系统下单等操作。我在项目中担任系统架构师一职,主要负责项目整体架构设计、部分软件开发设计以及架构功能的实现等。
在团队成员11个月的共同努力下,该项目于2023年2月通过验收并投入使用。系统自上线一年以来,系统稳定运行,已吸引70万多名用户注册和使用以及4千多家供应商入驻合作,获得客户一致好评。本文以该项目为例,展示了「呼应题目」的需求。xxx 架构在其中发挥了关键作用,在开发过程中,我们遵循了xxx方法,确保项目顺利实施和成功运行。
正文:
近年来,供应链领域迎来了快速的发展。在2022年3月,我参与了某企业的供应链管理系统(SCM)的开发和架构设计工作。该项目中员工通过PC端进行商品库管理、仓储管理系统(WMS)、订单履约系统、售后管理、采购管理、供应商管理、物流配送管理等功能。员工通过微信小程序助手端和PDA进行WMS出库入库和库存变更操作,司机也可以便捷的进行订单履约等任务。此外,用户通过微信小程序商城端灵活选择城市站点、进行下单操作、查看订单履约情况和售后服务等。
我被委派为此项目的系统架构设计师,承担项目整体架构设计、软件开发的设计工作以及部分架构功能的实现。考虑到项目的复杂性、风险性以及存在的不确定性因素,我们决定采用螺旋模型的方式进行项目的设计和开发工作,以确保项目的顺利推进和最终成功交付。
项目整体采用 「呼应题目」的 xx,以满足项目中的高可用性高并发性等要求
鉴于项目团队规模较大,成员间的开发习惯和风格存在差异,我们针对此问题制定了一套开发和设计的标准,以确保整体项目的一致性和可维护性。根据系统架构设计规范和行业通用标准,我们明确要求团队成员严格按照规范执行各项开发和设计任务。
在开始功能或模块的开发之前,必须编写相应的文档。该文档应包括功能需求、设计方案、接口说明等内容,以便开发过程中的参考和沟通。
在开发过程中,团队成员必须遵守制定的开发守则。这些守则涵盖了代码编写规范、命名规范、注释规范等方面,旨在保证代码的质量和可读性。
开发完成后,代码首先发布到测试平台,供测试人员进行全面测试。测试通过后,才能进行下一步的操作。通过测试的代码需要进行代码审计。审计过程中,将对代码进行详细的检查和评估,以确保代码质量和安全性。
经过代码审计并通过后,才能逐一发布到PC管理后台和微信小程序和PDA中,以确保项目的稳定性和可靠性。最后,发布到生产环境之后,还需要进行生产测试。如果在生产环境中发现了问题,团队需要及时发布修复程序,并对相关文档进行更新和补充,以确保用户体验和系统的正常运行。
这些步骤的严格执行,有助于提高项目的开发效率、降低维护成本,并确保最终交付的产品质量和用户满意度。
在商品库的设计过程中,我们根据商品的用途和管理维度,将商品划分为SPU、SKU和SN三个维度。在定义上,一个SPU包含N个SKU,一个SKU包含N个SN。这三者之间的关系如下图所示:
为解决商品种类繁多、管理难度大的问题,我们引入了商品目录。商品目录是供应链中的重要属性之一,其规范化和健全性不仅有助于对商品属性进行划分,还能提升仓库的出入库管理效率,且有利于用户进行精准的商品选购。此外,健全的商品目录也为未来业务拓展提供了便利。
仓储管理系统(WMS)在供应链管理系统中扮演着比较重要角色。一个合理、高效、规范化的仓储管理系统显得至关重要。在设计WMS时,我们秉承精准、高效、合规的原则。其中,精准要求操作权限分离,精细准确,确保操作可追溯;高效追求降低成本、提升效率,倡导自动化处理;合规要求所有操作合法合规。我们遵循一品一位(每个SKU有独立的货位管理)、一位一签(每个货位有唯一标签地址)、一人一岗(每个操作人员有对应的岗位角色)原则。每个货位都有唯一的货位编号,例如:BG-A01-02-03-04-05,其中BG代表北京站点,A01代表库区,02代表通道,03代表货架(排),04代表层,05代表列(格)。此外,对于需要入库的商品,根据实际库存、货位使用情况和商品属性,自动计算和推荐商品储货位,实现按属性、体积和重量合理分配库位货位。入库环节包括收货、验收和上架环节。
订单履约系统是企业供应链能力的体现,也是建立口碑、增加客户的重要途径。完整的订单履约包括新建订单(用户下单)、订单拆分(根据商品的库区等进行拆分)、订单审核(或订单确认)、仓库拣货、订单合并(将多个仓库的商品调度打包)、物流配送和物流签收等核心环节。此外,记录完整的订单跟踪过程对提升用户体验至关重要。例如,订单创建时间、审核状态、出库情况、最新的配送情况、收货情况等。这些信息可以让用户清晰了解订单过程,减少焦虑等待,减少商品售后问题的发生。
在本系统中,包含了众多的供应商,每个供应商的特点和要求可能会有所不同。特别是在食品、医疗等行业中,对采购供应商和商品的引入通常会有较为严格的审批流程。企业需要确保供应商的登记信息和相关证书完整,以确保商品的安全性。
供应链管理系统中的供应商管理不仅需要对供应商进行综合管理,还需要严格把控商品的质量和安全。为了确保平台能够进行高效的商品调度和销售,需要保持与供应商之间的商品和库存信息同步。此外,还需要建立报价、合同履约、对账与结算等流程化和透明化的管理机制。
综上所述,供应商管理和信息协同是供应链管理系统中的重要组成部分,它不仅关系到商品的质量和安全,也直接影响到平台的运营效率和用户体验。因此,在系统设计和实施中,应该重视供应商管理的细节,并建立完善的信息协同机制,以确保供应链的顺畅运转。
为了确保系统的高可用性,我们采用了以下技术选型和策略:
数据存储方面,我们采用了两级存储策略。首先,核心数据存储选用了MySQL,并配置了主从复制结构架构,以提高数据的可靠性和可用性。其次,我们利用Redis数据库作为数据缓存,结合主从复制和哨兵进行集群部署,从而减轻核心数据库的读压力,解决高并发和高可用性问题。
针对数据备份,我们采用了定时任务和人工介入相结合的方式,进行数据的冗余备份操作,以保障数据的安全性和完整性。
在系统间通信方面,我们选择了基于HTTPS协议的Restful API接口设计。由于REST服务具有出色的灵活性和可读性,这种设计能够有效地实现系统之间的高效通信,并确保数据传输的安全性和可靠性。
综上所述,我们的技术选型和策略旨在提高系统的稳定性、可用性和安全性,从而更好地满足业务需求,为用户提供稳定、高效的服务。
为了确保系统高内聚低耦合的原则,我们采取了以下措施:
合理分层:我们对各个模块进行了合理的分层,以确保每个模块的职责清晰,功能单一。这样可以使得系统的各个部分相互独立,易于维护和扩展。
工厂模式设计:按照工厂模式的设计思想,我们将各个功能独立封装成服务,调用者只需按照相应的文档进行调用,而无需了解内部结构。这种设计方式使得系统更加灵活,易于扩展和替换。
作用域和业务场景分析:我们对各个服务的作用域和业务场景进行了详细的分析,确保每个服务的功能都在自己的作用域内完成,不跨越职责边界。
数据来源和支付平台的处理:针对多个供应商数据来源不一致和支付平台差异等问题,我们在设计时考虑了统一的数据处理和支付接口,通过封装和适配器等设计模式,使得调用者无需关心不同数据来源的细节,也无需处理支付平台的差异,从而确保系统的统一性和可扩展性。
降低功能之间的交叉引用:我们尽量避免不同功能之间的交叉引用,避免一个功能在多个地方进行重复实现,以及功能之间过多的依赖关系。这样可以提高系统的灵活性和可维护性,降低系统的复杂度。
综上所述,我们通过合理的分层、工厂模式的设计、作用域和业务场景的分析等措施,确保了系统的高内聚低耦合,使得系统具有良好的可维护性、可扩展性和灵活性,为用户提供稳定、高效的服务。
结尾:
系统自2023年2月完成交付至今,稳定运行并达到预期目标和要求。目前,系统已经录入了超过6万个商品信息,注册用户超过70万,合作供应商数量超过5千家,得到了用户的一致好评。然而,尽管系统取得了这些成就,仍存在一些改进空间。
通过实践证明,供应链管理系统的顺利交付和持续稳定运行与其采用的架构设计密不可分。此次架构设计过程让我深刻认识到,作为一名合格的系统架构设计师,不仅需要个人优秀在重要环节进行把关,也需要带领团队共同成长。遵循规范的架构设计原则能够使系统更加健壮和高效。
未来,我将更加努力地学习相关专业知识,并将其应用于实际工作中,不断在实践中提升自己的技能水平,以进一步完善系统的性能和功能。
— 2024年5月 昆明