题目:论软件系统架构评估

        对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,在系统被构建之前分析现有系统架构对于系统质量的影响,提出系统架构的改进方案。架构评估是软件开发过程中的重要环节。 请围绕“论软件系统架构评估”论题,依次从以下3个方面进行论述。
1.概要叙述你所参与架构评估的软件系统,以及在评估过程中所担任的主要工作。
2.分析软件系统架构评估中所普遍关注的质量属性有哪些?详细阐述每种质量属性的具体含义。
3.详细说明你所参与的软件系统架构评估中,采用了哪种评估方法,具体实施过程和效果如何。

摘要

        在2022年3月,我有幸加入公司的新智慧公交平台项目,担任架构师一职,负责项目的整体架构设计与评审。在项目的启动阶段,我们运用再工程技术深入分析了现有公交调度平台,成功提炼出需求模型和设计模型。随后,我们通过ATAM 软件架构评估方法,对是否沿用老平台的基础架构以及新提出的架构方案进行了深入讨论和严格评审,最终确定了一个最优的架构方案。截至2022年12月,该项目顺利上线,至今已稳定运行两年,项目以其卓越的性能和高度的可扩展性,赢得了用户和开发人员的一致好评。这一成果归功于项目初期我们采用的科学架构设计和评估方法,确保了项目架构的完善性,并根据设计和评估编制了详尽的文档资料,为后续的开发和测试工作提供了清晰的指导。

正文

        在当今“互联网+” 的时代背景下,城市公共交通行业作为一个传统行业,由于其本身所具有的业务复杂性,技术进步长期受限,行业整体技术水平相对较低。为应对公交行业在技术发展层面遇到的挑战,同时满足公众对高品质交通服务的期望,我们全新打造的公交智慧平台系统应运而生。新一代的智慧公交系统,以物联网作为基础,通过互联网作为门户,提供以云原生技术为背景的Saas 化服务平台。并通过当下主流的大屏、小程序、手机端APP操作程序等技术手段,给与用户多元化的使用和体验。2022年3月,公司所组织的新智慧公交平台项目正式启动,我在其中担任系统架构师的角色,参与了项目的整体架构设计与评审工作。该项目预计总投资达3000万元,计划在9个月内完成。我们的目标是通过这一创新平台,推动公共交通行业的技术革新,提升服务品质,满足现代城市交通的多元化需求。

        在项目启动初期,我们采用再工程技术对老公交调度平台的需求和设计进行了深入分析。我们主要利用UML图,将老平台的整体架构设计和需求整理成基于面向对象分析方法的系统架构文档和需求文档。随后,我们的产品经理扮演系统分析师的角色,详尽阐述了老平台的问题、技术瓶颈等,为新平台的架构决策提供了依据。经过分析,我们确定老平台采用的是C/S架构,并遵循面向对象的设计风格。根据公司老总的要求,我们的目标是将其改造为B/S架构,以简化客户端安装和部署流程,使用户通过浏览器即可访问平台。基于这一需求,我提出了以B/S架构为基础,结合云原生技术的Saas化服务平台设计方案。该方案融入公司中台战略,复用了网关、单点登录、S17平台服务等现有构件,并引入了面向对象与事件驱动相结合的架构风格,以提升系统的可修改性和灵活性。

        针对新系统架构与老系统架构的显著差异,我们决定进行一次完善的系统架构评估工作。首先,我们确定了本次架构设计所重点关注的几个系统质量属性:性能、可修改性、安全性和可用性。性能是指系统的响应能力,及要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件的个数;可用性是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示;安全性是指系统在为合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力;可修改性是指能够快速地以较高的性价比对系统进行变更的能力。

        随后,针对我们关注的核心质量属性,我们选择了ATAM架构评估方法来执行本次架构评估任务。在评估会议中,准备阶段,我们首先详细介绍了ATAM评估流程,并确立了性能、安全性、可修改性和可用性作为本次评估的重点系统质量属性。接着,我们概述了项目的业务驱动因素,明确了项目需求,即从传统的C/S(客户端/服务器)架构向更现代的B/S(浏览器/服务器)架构转变。为了迎合公司高层对于简化部署流程的要求,我们决定采用以租户为中心的SaaS(软件即服务)平台架构方案。在会议中,我们还介绍了即将评估的架构方法,包括B/S架构和基于隐式调用的事件驱动架构。针对可用性、可修改性、性能和安全性等关键质量属性,我们制定了一系列评估标准,并构建了质量属性效用树。这个效用树将作为我们后续架构评估工作的基础,确保我们能够系统地评估和优化架构设计。

        在分析阶段,我们发现事件驱动架构可能会对性能产生轻微影响,因为其中增加了生产者到消费者的交互过程,我们需要增加消息中间件构件来实现这一过程。但事件驱动架构可以显著提高项目的可修改性,将业务流程解耦,使得整体的项目架构更清晰易读。而采用B/S架构因为需要使用面向互联网的Http 协议,必然会面临互联网病毒,主动攻击等安全威胁,从而增加了系统的安全风险,但它简化了客户端管理,使得后续的架构设计不再需要关注客户端,只需要针对服务端进行高可用设计即可,从而使系统提升了可用性。我们将这些分析结果整理成风险列表,包括系统敏感点和权衡点,为后续评估提供参考。

        在复审阶段,我们邀请了公司老总参与评估。我们讨论了风险列表和权衡点,并通过头脑风暴探讨了新架构的适用性和质量属性的优先级。我们得出结论,通过精心设计和选型,事件驱动架构最终能满足性能要求,并提升系统的可读性和可修改性。而对于B/S架构的安全风险,我们决定直接利用公司现有资源,如接入公司网关构件来加强项目的安全防护。最后我们做了会议总结和ATAM评估报告,本次的ATAM评估工作顺利结束。

        2022年12月,新智慧公交项目成功上线,并已稳定运行两年。回顾项目整体的研发过程,我们通过再工程技术和面向对象设计分析方法,有效复用了老平台的设计和需求。通过ATAM评估,我们确立了新平台的架构,为后续设计和开发奠定了坚实基础。这次项目不仅提升了我们的架构设计和评估能力,也为未来的工作积累了宝贵的实践经验。

09-27 05:08