2012年下半年试题一:论基于架构的软件设计方法及应用

论文库链接:系统架构设计师论文


论文题目

基于架构的软件设计(Architecture Based Software Design,ABSD)方法以构成软件架构的商业、质量和功能需求等要素来驱动整个软件开发过程。ABSD是一个自顶向下,递归细化的软件开发方法,它以软件系统功能的分解为基础,通过选择架构风格实现质量和商业需求,并强调在架构设计过程中使用软件架构模板。采用ABSD方法,设计活动可以从项目总体功能框架明确后就开始,因此该方法特别适用于开发一些不能预先决定所有需求的软件系统,如软件产品线系统或长生命周期系统等,也可为需求不能在短时间内明确的软件项目提供指导。

请围绕"基于架构的软件开发方法及应用"论题,依次从以下三个方面进行论述。

1.概要叙述你参与开发的、采用ABSD方法的软件项目以及你在其中所承担的主要工作。

2.结合项目实际,详细说明采用ABSD方法进行软件开发时,需要经历哪些开发阶段,每个阶段包括哪些主要活动。

3.阐述你在软件开发的过程中都遇到了哪些实际问题及解决方法。

论文模板

论基于架构的软件设计方法及应用

摘要

2022年4月,本人所在单位计划研发生态集装箱管理控制平台项目。该平台主要用于现有公司生态集装箱产品做对接,达到远程控制、平台管理,为集装箱生态种植提质提效的目的。本人在项目中担任架构师,负责系统的架构设计。本文以生态集装箱管理平台项目为例,主要论述基于架构的软件设计方法在该项目中的应用。在架构需求阶段,我们采用了用例图、类图等进行用例模型和分析模型的建立,完成需求分析问题。在架构设计阶段,我们采用了架构权衡分析方法(简称ATAM),完成了架构的质量和功能评估,评审架构可能存在的风险以及缺陷。经过合理有效地运用基于架构的软件设计方法,本项目得以成功上线,并获得客户的一致好评。

正文

2022年4月,本人所在的单位按照既定的企业系统战略规划,同时经过市场调研与分析,决定研发生态集装箱管理控制平台。生态集装箱为无尘的水培作物环境,以本地嵌入式系统为核心调控各种环境参数。在产品的使用中,生态集装箱的本地操作与控制,状态检测等工作对使用者极为不便,对其进行物联网化改造成了急需解决的需求问题。生态集装箱管理控制平台项目主要完成集装箱的远程监控、远程操作、协作管理等,在方便用户使用,提高集装箱产物的产量与品质的同时,缩减培育成本,降低损耗。平台系统的主要功能模块包含位置服务模块、事件提醒模块、环境控制模块、统计分析模块、系统配置模块等。位置服务模块包括集装箱定位功能和电子栅栏功能。事件提醒模块主要负责环境参数异常、集装箱故障、集装箱位置异常、控制异常等信息的告警,并将告警信息通知相关的负责人。环境控制模块包含温湿度控制、灯光控制、二氧化碳控制、营养液控制等,其中营养液分别包含PH和EC浓度调控两个子模块。统计分析模块是对生态集装箱的耗能和各模块的控制统计分析。系统配置模块则包含了账号权限、系统规则的设置。本人在该项目中担任系统架构师,负责系统架构的设计工作。

在确定使用基于架构的软件开发方法(简称ABSD)开发生态集装箱控制平台后,项目组对该方法进行了更深入的研究和实践。基于架构的软件开发方法是强调由业务、质量和功能需求的组合驱动的架构设计,该方法将开发过程分为六个阶段:架构需求、架构设计、架构文档化、架构复审、架构实现以及架构演化。其中架构需求的活动包含了需求获取、标识构件和需求评审活动。架构设计的活动包括提出架构模型、映射构件、分析构件相互作用、产生架构、设计评审活动。架构文档化则用于将架构设计的成果进行文档输出,主要输出文档有架构设计规格说明书和用于测试架构需求的质量设计说明书。架构复审则是对架构设计进行复审,找出可能存在的风险和缺陷。架构实现的活动包括了架构分析与设计、构件实现、构件组装、系统测试。架构演化主要包括需求变化归类、架构演化计划、构件变动、更新构件的相互作用、构件组装和测试、技术评审一系列活动。

基于架构的软件设计方法很适合我们这种前期需求不明确、不稳定,后期需要进行不断迭代演化的项目。下面我将结合生态集装箱控制管理平台项目,说明ABSD方法在应用过程中遇到的问题以及实际解决过程。

一、架构需求阶段

该阶段使用用例图和类图解决需求分析问题。在项目开发过程中,我们遇到了如何有效而又准确地完成需求分析问题。面对已经获取的需求,完成准确有效的分析是项目开发的重要步骤之一。我们建立用例模型和分析模型,对需求进行深入而细致的分析。用例模型由用例图实现。根据需求说明,首先我们识别出参与者,即系统使用的人员,之后合并需求获得用例。使用文档对用例进行详细描述,便于其他人员的阅读与理解。最后进行用例的调整与优化。用例模型表明了我们系统所需要实现的功能。

完成了用例模型的建立,我们可进一步地完成分析模型,分析模型由类图实现。我们通过定义概念类,即识别出系统地实体类、边界类与控制类。随后分析研究各种类之间的关系,同时抽取公共类,优化类设计。然后建立文档说明类的职责,便于开发人员的理解和交流。架构需求阶段的最后以交互图的形式体现相互关系。经过用例模型,分析模型的分析与研究后,我们将研究完成的类进行分组,并打包成构件,完成架构需求中的标识构件工作。

二、架构设计阶段

该阶段使用面向对象设计方法解决系统设计问题。在架构设计阶段,重点是完成一个好的架构设计。好的系统设计能减少大量的开发工作,提高开发效率。经过讨论分析,我们决定采用面向对象的设计方法。面向对象的设计方法技术成熟,应用广泛,可以给系统的设计予以很好的指导。例如在进行异常消息提醒和控制调控设计时,我们采用了观察者模式。监控模块作为事件的发布者,消息提醒模块和控制调控模块作为订阅者联动响应。当生态集装箱内部由于夜间植物呼吸作用导致二氧化碳浓度过高,而有可能威胁人的安全时,监控系统采集实时数据后发布异常信号,消息提醒模块订阅后收到消息推送给相关工作人员进行提醒警示。而控制调控模块收到订阅消息则立即打开换气风扇进行换气以降低室内二氧化碳的浓度。面向对象的设计方法能更好地让系统与现实世界对应,便于对系统地理解与实现:同时系统可具有更好地复用性,松耦合性。

三、架构复审阶段,使用ATAM方法完成架构评估

该阶段使用ATAM方法完成架构评估。在架构复审阶段,需要一个有效地方法来指导我们完成架构的评审,尽可能早地发现系统架构可能存在的风险以及缺陷。在充分对比了SAAM与ATAM方法之后,我们最终选择以ATAM方法来指导架构复审工作。ATAM方法,全称为架构权衡分析法,是在SAAM的基础上发展而来的,主要针对性能包括可用性、安全性和可修改性,在开发前对这些质量属性进行评价和折中。ATAM方法分为四个阶段,分别是场景和需求收集阶段、架构视图和场景实现阶段、属性模型构造和分析阶段以及折中阶段。我们通过场景来获得用户对非功能质量属性的要求,例如控制命令下达后,2秒之内集装箱要能实现控制的性能要求。同时按照当前的架构视图,研究该场景在视图中是否能实现。通过构造质量属性效用树,识别系统的敏感点、权衡点、风险点和非风险点,完成属性的优先级别排序。最后按照一系列结果进行折中。我们使用ATAM方法完成了架构的评审,为系统的有效开发提高了保障。

得益于ABSD方法的指导,系统研发工作有条不紊地进行,项目的质量和进度得到了有效的保障,也为公司节省了很多经费。该项目最终在2023年2月完成上线运行,获得了客户的一致好评。系统维护过程中业出现了一些典型问题,比如本地服务器故障导致服务的不可用。事后,我们经过讨论决定将服务部署到云服务器上以获得可靠的弹性服务。

相关推荐
车载诊断技术8 小时前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
武子康8 小时前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
Hi-Dison10 小时前
详细分析openharmony的这个配置文件
系统架构
9527华安13 小时前
FPGA多路MIPI转FPD-Link视频缩放拼接显示,基于IMX327+FPD953架构,提供2套工程源码和技术支持
fpga开发·架构·音视频
三桥彭于晏19 小时前
B/S 跟C/S架构的区别
架构
科技互联人生1 天前
微服务常用的中间件及其用途
微服务·中间件·系统架构
小蜗牛慢慢爬行1 天前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
不止会JS1 天前
软考:系统架构设计师教材笔记(持续更新中)
系统架构·软件工程·软考
小扳1 天前
微服务篇-深入了解 MinIO 文件服务器(你还在使用阿里云 0SS 对象存储图片服务?教你使用 MinIO 文件服务器:实现从部署到具体使用)
java·服务器·分布式·微服务·云原生·架构
盛派网络小助手1 天前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#