【软考论文】论软件架构复用及应用

【软考论文】论软件架构复用及应用

本文以该项目建设为例,讨论了软件架构复用的基本过程、以及在本系统中的具体应用以及遇到的问题和解决方案。项目于2021年11月顺利通过验收上线运行,已稳定运行2年多的时间,获得用户一致好评。

摘要

2021年初,我所在的研发部承担了公司自研XXXX管理平台项目的建设,为客户公司提供一站式的股权管理服务。我在该项目中中承担架构设计师的职务,主要负责该项目的系统架构、技术方案评估与实现、项目立项论证等工作。平台为上市公司提供资金管理、财富管理、税务服务等一站式XXXX相关服务的支持,涵盖股权管理、估值管理、多样化激励方案信息化管理、税务与财务咨询服务及系统个性化定制服务等。

本文以该项目建设为例,讨论了软件架构复用的基本过程、以及在本系统中的具体应用以及遇到的问题和解决方案。项目于2021年11月顺利通过验收上线运行,已稳定运行2年多的时间,获得用户一致好评。

正文

国务院发布的《关于支持浙江高质量发展建设共同富裕示范区的意见》中提到了浙江到2025年和2035年要实现的共同富裕相关目标。越来越多的上市企业选择对员工开展XXXX计划。我所在的某集团公司,为了集团的发展,需要在XXXX相关服务这一赛道上保持竞争力,根据这一目标,XXXX管理平台这一项目应运而生。2021年初,我所在的研发部承担了公司自研XXXX管理平台项目的建设,为客户公司提供一站式的股权管理服务。我在该项目中中承担系统分析师的职务,主要负责该项目的系统分析和设计工作。整个平台为上市公司提供资金管理、财富管理、税务服务等一站式XXXX相关服务的支持,涵盖股权管理、估值管理、多样化激励方案信息化管理、税务与财务咨询服务及系统个性化定制服务等,更高效、更便捷地为企业客户提供“一篮子”金融解决方案。整个平台涉及证券、税务、银行、电子签署等过个复杂业务逻辑,业务流程复杂、系统可靠性和可扩展性要求较高,影像的范围比较广。整个平台以多租户的模式,进行统一的管理及日常运营,通过组织机构管理提供给上市公司进行业务的管理和服务。

软件架构复用的基本过程可以分为三个主要阶段:第一阶段是构造或获取可复用的软件资产。在这个阶段,开发者需要创建或寻找那些可以被多次使用的软件组件。这些资产必须是经过验证的,确保它们的可靠性。同时,这些资产应该具有广泛的适用性,使其能够适应不同的应用场景。此外,它们还需要易于理解和修改,能根据新项目的需求对它们进行调整和优化。第二阶段是管理这些可复用的软件资产。在这一阶段,构件库的作用至关重要,它是支持软件复用的关键基础设施。构件库的主要功能包括存储、管理和检索构件,以及提供库的浏览和维护等服务。为了帮助用户有效地找到所需的可复用构件,构件库应该具备强大的搜索和分类功能。构件分类是将大量的构件按照某种特定的逻辑或标准进行组织,以便于用户查找。而构件检索则是在给定一系列查询条件后,能够迅速准确地定位到相关的构件。第三阶段是针对特定需求的定制和集成。在这个阶段,开发者从已有的资产中筛选出可以复用的部分,并根据新项目的具体需求对这些资产进行修改、扩展或配置。这可能涉及到调整构件的功能,增强其性能,或者改变其与其他构件的交互方式。完成这些工作后,开发者将这些资产组装和集成起来,形成最终的系统。这个过程不仅提高了开发效率,还有助于保证软件的质量和一致性。

在XXXX管理系统项目中,我们通过精心策划的软件架构复用战略,取得了显著的效益。这一策略不仅大幅减少了重复性的架构设计工作,而且显著提升了架构的开发效率。鉴于XXXX管理系统需要与税务、银行、电子签署等外部系统集成,我们选择利用这些系统提供商的SDK来实现必要的功能对接。这一决策确保了系统间接口的高效和稳定性,同时也简化了开发流程。对于信息系统中通用的基础功能,如用户管理、角色权限管理、日志记录、消息中心等,我们从公司以往的项目开发中提取并重用了经过验证的功能构件。这些模块在公司的多个其他项目中已经得到应用,并且它们的稳定性和可靠性已在实践中得到了充分证明。因此,针对当前项目的需求,这些模块只需进行少量的调整即可完美适配。至于XXXX管理系统特有的功能组件,我们采用了基于微服务架构的开发模式,利用诸如Spring Cloud、Eureka等成熟的基础框架,直接整合第三方开源软件来构建系统。这种方法不仅保证了功能的专业性和定制化,也使得整个系统的扩展性和维护性得到了极大的提升。

在我们完成了可复用构件的获取工作之后,接下来根据项目的具体需求,对已经筛选出来的资产进行必要的修改、扩展和集成。与此同时,我们也会定期对构件库进行评估,并了解客户在使用过程中遇到的问题和需求,以确保构件库的内容仍然符合项目需求,包括审查现有构件的可用性、性能和可维护性,以及确定是否需要添加新构件。这一过程是至关重要的,因为它确保了我们能够灵活地调整和优化我们的系统,以适应不断变化的业务环境。

在进行这些操作的过程中,我们意识到不同的业务类型往往需要不同的处理策略。因此,我们采取了一种差异化的方法,根据业务的特点和需求,选择最合适的编码与集成策略。例如,在资金归集模块,我们的系统需要和银行的查询接口对接,来获取激励计划归集资金的金额,并确认激励计划参与方资金缴纳的状态。我们考虑到了未来可能需要与多个不同银行的系统集成的需求。为了确保系统的灵活性和可扩展性,我们选择了策略模式来实现这一部分的功能。策略模式允许我们在运行时动态地选择算法或方法,这样我们就可以轻松地切换和添加新的银行SDK,而无需修改现有的代码基础。这不仅降低了维护成本,也为未来的扩展提供了便利。另一方面,在激励计划执行模块,公司会批量给员工推送激励计划执行的相关消息通知,但是在我们复用的公司构件库中的消息推送模块中,消息推送逻辑是同步进行的,当我们批量的给大量的员工推送消息时,这个过程会比较耗时,前台页面会等待较长的时间才能得到响应。为了解决此问题,我们对构件进行了更新,引入了消息队列技术。通过使用消息队列,我们可以将这些耗时的操作异步处理,从而避免了阻塞主线程,显著提高了系统的响应速度和用户体验。消息队列还帮助我们实现了操作的解耦,使得各个系统组件可以更加独立地工作,提高了整个系统的稳定性和可靠性。

2021年11月,XXXX管理系统正式上线运行,至今已经稳定地运行了超过两年的时间,期间不仅顺利应对了访问量激增的挑战,还成功处理了紧急情况下客户公司的接入需求,这些都是对我们运维能力的巨大考验。在系统集成对接过程中也出现了一些问题,比如我们在与银行接口对接的时候,选择使用银行提供的SDK进行集成,但是某个银行提供的SDK所用的框架版本,与我们系统所使用的版本不一致,导致我们没有办法复用该银行的SDK来进行集成对接,所以我们为这家银行单独开发了一个新的SDK构件来解决版本冲突问题。实践证明,XXXX管理系统项目能够顺利上线,并且稳定运行,与系统采用了合适的架构设计方法密不可分。经过这次架构复用方法的应用效果后,我也看到了自己身上的不足之处,在未来还会不断地更新知识,完善本系统在各方面的设计,使整个系统能够更加好用。

【软考论文】论软件架构复用及应用

https://www.shuiwh.com/posts/learn-ruankao-011/

作者

水无痕

发布于

2025-07-12

更新于

2025-07-19

许可协议