我的软考历程

摘要

2023年2月,我司通过了研发纱线MES系统的立项,该系统为国内纱线工厂提供SAAS服务,旨在提高纱线工厂的数字化和智能化水平。我在本项目中担任系统架构设计师,负责整个项目的架构设计工作。本文结合我在该项目中的实践,详细论述了ATAM(架构权衡分析方法)在本项目中的应用,ATAM分为四个阶段:描述和介绍阶段、调查和分析阶段、测试阶段、报告阶段。本文详细描述了这四个阶段在本项目中的具体应用,并取得了显著的效果。最终,2023年12月,该系统顺利上线并运行至今,目前已经有879家纱线工厂接入我们的系统,各项功能和性能指标均达到客户要求,得到了客户工厂和公司领导的一致好评。

项目背景

随着我国从制造业大国升级为制造业强国以及工厂数字化和智能化的持续推进,我所在的某地某科技公司基于自研的物联网平台相继开发了染整一体化和织布一体化等系统,这些系统上线后,得到了工厂的追捧,也为公司带来了丰厚的经济回报。基于此,我司于2023年2月开始研发纱线MES系统,该系统预算730万,建设工期10个月,涵盖纱线工厂从清花、梳棉、并条、精梳、粗纱、细纱到络筒的全流程工序,将为纱线工厂提供全面的生产管理解决方案以及基于数据的智能决策分析能力。该项目为物联网层次架构,整体分为感知层、网络层和应用层。其中网络层为公司已有的物联网平台,这次重点建设内容为感知层和应用层,感知层使用Golang语言开发,作为联网网关部署在工厂侧,负责工厂数据的采集和云端指令的下发。应用层为纱线MES系统主体,采用Java语言开发,使用Spring Cloud微服务架构,数据库使用Mysql,缓存使用Redis,前端框架使用vue.js,日志、监控和链路追踪采用skywalking、prometheus、grafana和ELK,最终通过devops的方式部署在kubernetes集群中。系统上线后,将提供以下:基础管理、数据接入、工单排产、数字孪生、工资计算、智控中心和数据分析等等功能,通过以上功能,可以全面提升纱线工厂的数字化和智能化水平,使其运营水平和生产效率得到质的提升。

论述内容

由于该项目涉及角色、单位、流程众多,系统极为复杂,所以架构的设计就显得非常重要,在架构设计完成后,架构设计是否合理,里面的缺陷和漏洞是否会影响后面的质量属性,这都需要架构评估去进行验证。我们在架构评估阶段采用了ATAM(架构权衡分析方法),ATAM可以进行多个质量属性的评估和折中,包括性能、可用性、安全性和可修改性。在具体实施过程中,ATAM分为四个步骤:描述和介绍阶段、调查和分析阶段、测试阶段和报告阶段。

一、描述和介绍阶段

首先,我召集了公司的产品负责人、运维部门负责人、业务线专家以及公司内部的领导。然后,我作为该项目的系统架构设计师,为大家介绍了ATAM方法,简单说明了ATAM的作用和效果,以及我们在该项目中使用ATAM的方法和步骤。其后,由产品负责人为大家详细讲了该项目的业务需求和市场分析,让大家对该项目有了更深入的理解。最后,由我为大家详细介绍了该项目采用的架构设计,整体分为三部分:边端、物联网平台、云端(业务端)。边端部署在工厂复杂的网络环境中,需求量大,采用轻量级开发语言Golang,与物联网平台通过MQTT协议交互。物联网平台采用公司现有系统,负责协议解析和路由以及信息的上传和下发。云端采用微服务架构模式,根据领域模型被分为多个微服务:工资域、接入域、数据分析域、基础管理域、工单域等等,页面采用vue.js技术,通过Nginx,对接微服务网关。在大家都对项目有了详细的了解后,公司专家提出了一些质量属性需求:1、页面访问必须在1秒内返回结果;2、工厂的数据到大屏呈现不能超过1分钟;3、当物联网平台出现故障时,应该在5秒内恢复;4、系统必须保证用户的信息安全等等将近200条质量属性。

二、调查和分析阶段

在同事们整理了将近200条系统需要满足的质量属性后,大家又在一起进行分析讨论,把所有的质量属性进行了分类整理,最终发现最重要的质量属性就是安全性、性能、可用性和可修改性。其中关于安全性的有:1、系统安全认证系统要保证99.99%的可用性;2、重要的信息要采用加密措施等等。关于性能的有:1、页面访问必须在1秒内返回结果;2、工厂的数据到大屏呈现不能超过1分钟等等。关于可用性的有:1、当物联网平台出现故障时,应该在5秒内恢复;2、当云端某微服务出现问题时,请求能负载均衡到其他服务上。关于可修改性的有:当有新数据过来时,能在10天内对系统进行改造等等。经过大家的调查和分析,把这些质量属性整理成了效用树,最后根据该系统的特点,对这四种质量属性进行了评估和折中,我们系统重点要关注性能和可用性,安全性和可修改性可以放在后面加固。为了实现性能,我们采用分层处理,在数据层采用了主从分离和分库分表,在应用服务层采用了集群模式,同时加入了缓存来提高返回数据的速度。在网络层,我们采用了CDN和多地部署的方式,降低访问的延迟。

三、测试阶段

当采用ATAM进行了调查和分析后,我们对各种质量属性进行了折中和评估,大家开动脑筋,进行头脑风暴,对各种场景进行模拟和想象,大家充分交流,各抒已见,对架构的优缺点进行点评,在点评过程,由我对大家的意见进行记录,然后进行架构分析,提起架构的优点和缺点以及要改造的点,最终经过调整,该架构设计已经满足了现阶段的要求。

四、报告阶段

在经过前三个阶段之后,我们产生了一系统的文档,包括架构规格说明书和测试架构需求的质量属性说明书,以及质量效用树,需求说明书,一种场景等等。这些文档都非常重要,并且由我为大家做了此次架构评估的报告,最后把整理过的报告上交给公司领导。
经过架构评估后,我们的项目在架构上满足了各种非业务需求,在系统上线后,很好地支撑起了业务的执行,满足了各种性能指标。

总结

通过采用ATAM的方式,我们有效地提升了系统的性能和数据容量,为大量工厂的接入提供了条件。最终在2023年12月,该项目正式投产并对外提供服务,至今稳定运行,各项功能和性能指标均远远超过了客户的预期,得到了客户工厂和公司领导的一致赞扬。虽然项目取得了成功,但是也遇到过一些问题,在项目初期,由于产品经理对纱线业务的不熟悉,导致很多功能的调整和返工,这打击了开发人员的士气,基于此,我提出两个解决方式:1、派产品进入工厂一线,与工人交流,熟悉操作流程,彻底摸清纱线业务,保证需求质量;2、开发人员也要学习纱线业务,遇到问题反馈给产品,同时在做设计时,采用灵活的设计模式,为需求的变动留下可操作的空间。我们通过这两个方法解决了这个问题,保证了项目的进展。通过这次实践,我不仅学习到了ATAM的相关技术,也锻炼了自己的架构和管理能力,我意识到只有不断地学习和实践才能让知识融汇于自己的技术体系之中,才能在未来的工作中游刃有余、勇担大任,为祖国的信息化建设贡献自己的力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86810.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86810.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86810.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-28(服务器端渲染(SSR)简介及其优势)

服务器端渲染(SSR)简介及其优势 服务器端渲染(SSR)是现代网络应用的关键技术,特别是使用 Vue.js 等框架构建的应用。它通过在服务器上渲染初始应用状态来弥补传统单页应用(SPA)的局限性&#x…

工业电子 | 什么是SerDes,为何工业和汽车应用需要它?

重点内容速览: 1. 什么是SerDes? 2. ADI:私有协议的GMSL将向公有协议转变 3. TI:工业和汽车有两套SerDes解决方案 4. Microchip:推出通用协议SerDes芯片 5. 罗姆:主要针对汽车领域 6. 国产SerDes芯…

大事件项目记录4-用户接口开发-更新用户基本信息

4)更新用户基本信息。 UserController.java: UserMapper.java: Update("update user set nickname #{nickname},email #{email},update_time #{updateTime} where id #{id}")void update(User user); UserServiceInterface…

Transformer结构--输入编码(BPE,PE)

在Transformer结构中,输入编码是模型处理文本数据的关键步骤,其中**BPE(Byte Pair Encoding,字节对编码)和PE(Positional Encoding,位置编码)**是两种重要的编码方式,它们…

Confluence-测试用例设计指导方法

测试经验知识库 典型的测试场景验证点各个项目有价值的经验和测试点 测试经验知识库 - 草稿测试用例执行量化指导建议 何时需要进行全量测试和如何定义和执行测试用例量的一些建议和标准 端对端(E2E)测试用例设计指导方案 在测试行业中,端到端…

浅析JVM

一、JVM运行流程 如图: JVM由四个部分构成: 1.类加载器 加载类文件到内存2.运行时数据区 写的程序需要加载到这里才能运行3.执行引擎 负责解释命令,提交操作系统执行4.本地接口 融合不同编程语言为java所用,如Java程序驱动打印…

多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文

基于 context.py 固化 Jenkins Job 上下文的完整方案,适用于你当前的工作流(Python Jenkins Pipeline),解决: 多个 Job 并发运行时共享配置文件导致上下文污染;读取环境变量或 JSON 文件时被其他 Job 修改…

简木易支付系统 功能齐全,对接接口超多

简木易支付系统,作为一款引领行业潮流的卓越支付解决方案,依托先进的 PHP MySQL 技术架构精心打造。在开发过程中,它巧妙运用了功能强大的 ThinkPHP8 框架,完美融合前端主流技术 Vue、Element 以及 Layuiadmin,共同铸…

【软考高项论文】信息系统项目的人力资源管理

摘要 本文围绕信息系统项目的人力资源管理展开论述。以我在2024年参与的为大型国有企业构建供应链管理系统项目为例,阐述了项目人力资源管理的主要流程,包括规划、组建、建设和管理团队四个过程,以及所运用的工具和理论。同时,分…

【EI会议征稿】东北大学主办第三届机器视觉、图像处理与影像技术国际会议(MVIPIT 2025)

一、会议信息 大会官网:www.mvipit.org 官方邮箱:mvipit163.com 会议地点:辽宁沈阳 主办单位:东北大学 会议时间:2025 年 9 月 27 日-9 月 29 日 二、征稿主题 集中但不限于“机器视觉、图像处理与影像技术”等其…

从零开始的云计算生活——第二十三天,稍作休息,Tomcat

目录 一.故事背景 二.Tomcat概述 1、Tomcat介绍 2、Tomcat历史 二、Tomcat原理分析 1、Http工作原理 2、Tomcat整体架构 3、Coyote连接器架构 4、Catalina容器架构 5、Jasper处理流程 6、JSP编译过程 7、Tomcat启动流程 8、Tomcat请求处理流程 三、Tomcat安装与配…

几种基于Doherty结构的GAN氮化镓功放设计方法介绍

功率放大器是现代无线通信系统中最重要的组件之一。理想情况下,它们能够以高线性度和高效率提供高输出功率。但通常在这三个关键的功率放大器性能参数之间需要进行权衡取舍,而且具有最高输出功率和线性度的放大器往往会牺牲效率。 在支持宽带宽和高数据…

前端打印计算单位 cm、mm、px

A4 纵向 宽:21cm,210mm,793.698px 高:29.7cm,297mm,1122.520px A4 横向 宽:29.7cm,297mm,1122.520px 高:21cm,210mm,793.698px …

c# sugersql 获取子表数据排序

在C#中使用Sugar ORM(一个流行的.NET ORM框架)获取子表数据并进行排序,可以通过以下几种方式实现: 1. 使用HasMany或HasOne配置 首先,确保你在配置实体时已经正确设置了HasMany或HasOne关系。例如,假设你…

【nRF52832】【环境搭建 3】【如何新建一个纯单片机开发的工程】

1. 前言 笨叔,又要开始扯淡了!!! 不感兴趣的同学,可以跳过了!!! 笨叔之前在大学里面, 刚接触单片机时。就被 windows 平台 例如 keill 5 、IAR 等一堆开会环境差点劝退。 当时也是坚持咬牙一点点摸索过来的。刚摸索明白,觉得单片…

Spring-loC与DI

目录 1 loC控制反转思想 2 DI依赖注入 3 loC详解 3.1 存储Bean (1)Controller (2)Service (3)Repository (4)Component (5)Configuration &#xf…

职业本科单片机与嵌入式技术实训室建设设想

一、引言 在当今数字化与智能化飞速发展的时代,单片机与嵌入式技术作为信息技术领域的关键支撑,广泛应用于工业控制、智能家居、物联网、汽车电子等众多行业,成为推动产业升级和创新发展的核心驱动力。职业本科教育旨在培养适应生产、建设、…

传统消防演练与 VR 消防演练的区别有哪些

演练形式:传统消防演练往往依托真实的场地,像空旷的广场、废弃的建筑物或是专门的消防训练基地等。参与者能触摸并使用实实在在的消防设备,例如干粉灭火器、二氧化碳灭火器、消防水带等。在演练时,会通过点燃模拟火源、释放烟雾等…

【零基础学AI】 第6讲:数据可视化基础

本节课你将学到 理解数据可视化在AI中的重要作用 掌握Matplotlib的基本架构和核心概念 学会创建各种类型的图表(线图、柱状图、散点图、饼图等) 掌握图表美化和自定义技巧 完成销售趋势图表制作实战项目 开始之前 什么是数据可视化? 数据可…

基于SSM+JSP 的旅游管理系统

【旅游景点管理系统】【送文档】|SSM | JSP 【运行开发环境】 jdk1.8 idea mysql maven tomcat 【技术栈】 Spring SpringMVC mybatis JSP 【项目功能】 两个角色;管理员功能有游客管理、轮播图管理、景点管理、景点类型管理;普…