系统架构设计师论文
论软件系统架构评估及其应用
题目描述
对于软件系统,尤其是大规模复杂软件系统而言,软件系统架构对于确保最终系统的质量具有十分重要的意义。在系统架构设计结束后,为保证架构设计的合理性、完整性和针对性,保证系统质量,降低成本及投资风险,需要对设计好的系统架构进行评估。架构评估是软件开发过程中的重要环节。
请围绕“论软件系统架构评估及其应用”论题,依次从以下三个方面进行论述。
- 概要描述你所参与管理或开发的软件项目,以及你在其中所承担的主要工作。
- 详细阐述有哪些不同的软件系统架构评估方法,并从评估目标、质量属性和评估活动等方面论述其区别。
- 详细说明你所参与的软件开发项目中,使用了哪种评估方法,具体实施过程和效果如何。
思考知识点
软件架构评估方法:调查问卷、度量法、基于场景的评估方法,考试重点:基于场景的架构评估方法,SAAM和ATAM
软件开发项目:大型制造业公司,OA系统中视频点播功能模块开发的系统架构设计师和项目经理,资金532万元,开发团队20人,采用敏捷开发模型,要求在20天内第一次功能上线。
架构评估方法
- SAAM:基于场景的架构评估方法,场景开发、架构描述、单个场景评估、多个场景交叉评估、总体评估。
- ATAM:在SAAM的基础上发展而来,关注性能、可用性、安全性和可修改性四个质量属性,使用质量效用树对质量属性场景进行分类和权衡。需求收集、架构视图描述、属性模型构造和分析、架构决策和折中。
论文正文
需求收集:从各个子项目模块的组长收集质量属性场景描述,
架构试图描述:对所收集的需求进行质量属性判定,
论文正文
4个论点:背景简述,运用的方法技术【点题】,项目成效。
2023年9月,我参与了某大型国有企业办公平台的流媒体服务基础设施开发工作,在项目中我担任系统架构设计师的岗位,负责系统的设计与建模、系统架构风格与关键技术选型等工作。该项目的目标是构建统一的视频点播基础能力,支撑公司办公平台上视频宣传、内部培训、资源共享等功能。选择合适的软件架构对于保证架构设计的合理性、完整性,保证系统质量,降低生产成本及投资风险,都是很有必要的。项目投资金额为283万元,交付周期为4个月,经过严格、细致的评估并付诸于实施,项目按期上线。后期完善性维护需求开发迭代周期为3周,采用分布式集群部署保证系统可用性达到99.99%,获得了客户的一致好评。
该项目存在覆盖范围广、性能要求高等难度挑战,规划打造为统一能力,以支撑全公司任何模块都能轻松引入视频点播的新模式。经过实践认为【架构评估】是软件开发中的重要环节,主要的【评估方法有体系结构分析方法(SAAM)和架构权衡分析法(ATAM)】等。选择正确的【系统架构评估】方法,对于保证架构设计的合理性、完整性和针对性,保证系统质量,降低生产成本及投资风险,都是很有必要的。视频点播服务项目经过严格、细致的评估并付诸于实施,在各方面取得了成功。
3个论点:展开描述项目概述和价值,挑战,我的职责和工作概述。
随着通信技术及移动互联网技术的发展,随时随地享受视频点播、直播等服务已经成为人们生活不可缺少的一部分。视频以更直观、更易接受的方式很大程度上替代了传统的纸质媒介传播方式,尤其是抖音、快手、bi站等开放视频平台已经成为最活跃的用户娱乐消遣平台。此外,公司IP打造、流量推广、培训教育等依托流媒体平台,也得到了显著的发展,对于快速传播推广具有极其重要的价值。某大型国有企业在2023年起开始启动数智化转型推进工作,其中一项是打造流媒体服务基础设施。因为视频服务具有存储容量大、流量消耗高、性能要求高等服务质量要求,且要以非常灵活的方式接入到公司平台的各个模块,因此非常具有挑战性。2022年8月,作为系统架构设计师,我有幸参与并主导了这个公司级重点项目,其中参与了技术架构选型工作,因为该国企要求软件项目必须满足容器化部署、国产化数据库的约束,因此,微服务架构因其灵活部署、支持技术异构、伸缩性好等特点,且与云原生、容器化技术天然关联,很快通过了系统架构风格选型。此外,考虑到 Java 语言在服务端开发中的流行度,以及国内良好的生态和社区文化,一致确定服务端选用 Spring 生态,前端 Web 选用 Vue3 + ElementPlus 开发框架。根据业务模块以及部署单元,将视频点播服务项目,划分为核心微服务core、认证授权微服务auth、多媒体微服务multimedia、http自适应流媒体编码微服务has、统一网关微服务gateway、评论微服务comment,此外还包括common微服务,基于拦截器实现统一异常处理、数据库隐藏字段自动填充等能力。
并在项目中实践了系统架构评估方法,得到了项目组成员的认可。下面我将阐述我在本项目中的实践。
第二问点题:客观描述
目前主要的架构评估方法有两种,分别详细描述如下:
第一,基于场景的架构评估方法(SAAM)。SAAM把任何形式的质量属性都具体化为场景,使用场景技术为评估技术,以场景代表描述体系结构属性,描述了各种系统必须支持的活动和将要发生的变化。SAAM的目标是对描述应用程序属性的文档,验证基本的体系结构假设和原则。SAAM的评估活动包括:场景开发、架构描述、单场景质量属性评估、多个场景交叉评估、评估。
第二,架构权衡分析法(SAAM)。ATAM主要针对四个关键质量属性:性能、可用性、安全性和可修改行进行评价和折中,其目标是在考虑多个互相影响的质量属性的情况下,从原则上提供一种理解软件体系结构能力的方法。ATAM的主要活动包括需求收集、架构视图描述、属性模型构造和分析、架构决策和折中。
选择正确的系统架构评估模型,能够保证系统架构设计的合理性、完整性和针对性,保证系统质量,降低开发成本和投资风险。在视频点播服务选择架构评估方法时,结合自身的特点,仔细对比了两种方法,最终采用了ATAM为架构评估方法。
工作开展过程
总结、收获、不足与展望
本流媒体服务基础设施项目严格遵循容器化部署、国产化数据库的约束要求,基于微服务架构成功构建了包含核心、认证授权、多媒体等7大微服务模块的系统。项目实现了视频发布、视频点播、评论等核心功能,满足了存储容量大、流量消耗高、性能要求高的服务质量标准,同时通过统一网关与common微服务设计,实现了与公司平台各模块的灵活接入,为企业数智化转型中的视频服务提供了稳定可靠的技术底座,项目于2024年初顺利通过验收并投入使用。
作为项目的主导者,深刻体会到微服务架构与云原生技术的适配价值——通过容器化部署有效降低了服务扩容与运维成本,Spring 生态的成熟性则保障了服务开发效率与稳定性;同时,在模块划分过程中,基于业务域与部署单元的拆分四路,为后续服务迭代与功能扩展奠定了良好基础,也提升了自身在大型企业级项目架构设计中,平衡技术选型与业务需求、合规要求的综合能力。
项目存在一定不足:一是在高并发场景下,has 微服务的编码效率仍有优化空间,峰值时段偶现响应延迟;二是系统监控维度较单一,对视频传输链路的异常溯源能力有待加强。未来,计划引入边缘计算技术提升 has 微服务的分布式处理能力,同时整合 Prometheus 与 Grafana 构建全链路监控体系;此外,还将探索 AI 技术在视频内容审核、个性化推荐中的应用,进一步拓展流媒体服务的业务价值,助力企业构建更智能的视频服务生态。