软考架构师论文:论软件架构评估

摘要:

xxxx年x月,我参加了xxx项目,并担任系统架构设计师,负责项目的需求分析、架构设计、架构评估等工作。该项目是xxx的项目,合同金额xxx万,建设工期x个月。该项目的目标是xxx。架构评估是软件开发过程中的重要环节。架构评估有基于调查问卷或检查表的评估方法、基于场景的评估方法、基于度量的评估方法,其中基于场景的评估方法又包括SAAM(软件架构分析方法)、ATAM(架构权衡分析方法)。ATAM主要针对性能、安全性、可用性、可修改性进行评价和折中,比较适合本项目。我们采用ATAM保证了架构设计的合理性、完整性和针对性。项目完成的非常顺利,基本达到了预期目标。

正文:

项目背景xxx。xxx进行公开招标,我司以较高分数中标,中标价位xxx万,建设工期为x个月。该项目团队有x个人,包括项目经理、产品经理、系统架构设计师、开发工程师、测试工程师等角色,我有幸担任项目的系统架构设计师,负责项目的需求分析、架构设计、组织架构评估等工作。

xxx的主要功能是xxx。建设内容包括xxx,以及提供x年维护服务。xxx对该项目非常重视,对系统的质量提出了很高的要求。

软件系统架构对于确保最终系统的质量具有十分重要的意义。在系统架构设计结束后,为保证架构设计的合理性、完整性和针对性,保证系统质量,降低成本及投资风险,需要对设计好的系统架构进行评估。架构评估是软件开发过程中的重要环节。

系统架构评估的方法通常可以分为三类:基于调查问卷或检查表的方法、基于场景的评估方法、基于度量的评估方法。基于调查问卷或检查表的方法关键是设计好调查问题,充分利用系统相关人员的经验和知识,获得架构的评估,该方法的缺点是在很大程度上依赖评估人员的主观判断。基于度量的评估方法是建立在软件度量的基础上的,涉及3个活动,首先需要建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的质量属性。基于场景的评估方法包括SAAM(软件架构分析方法)、ATAM(架构权衡分析法)。SAAM最初用于比较不同软件体系的架构,以分析系统架构的可修改性,后来也可用于分析其他质量属性如可移植性、可扩充性等。SAAM的评估活动包括5个步骤:场景开发、架构描述、单个场景评估、场景交互和总体评估。ATAM是在SAAM的基础上发展起来的,主要针对系统的性能、安全性、可用性、可修改性,在系统开发之前,进行评价和折中,评估活动包括描述和介绍阶段、调查和分析阶段、测试阶段和报告阶段。我们经过需求分析,发现客户对系统的性能、安全性、可用性和可修改性比较关注,因此我们决定采用ATAM进行架构评估。下面将介绍具体实施过程和效果。

在完成架构设计后,我们组织了客户代表、项目经理、架构设计师、产品经理、开发人员、测试人员进行架构评估。

  • 描述和介绍阶段。首先,我向评估人员介绍了ATAM方法,包括ATAM方法的评估活动、评估过程中使用的分析技术以及评估的预期结果。然后我向评估人员介绍xxx系统的业务动机,xxx系统主要是为了解决xxx的问题,需要对xxx进行管理。xxx系统的用户是xxx。最后我对xxx系统的架构进行了描述,xxx系统要部署在政务云上,操作系统使用的CentOS,数据库使用了MySQL,分布式缓存使用Redis,通过k8s容器化部署,主要交互的系统是对接xxx,对接方式主要是HTTP协议的API接口对接。
  • 调查和分析阶段。首先我们确定了架构方法,我作为架构师向评估人员介绍了架构采用的风格,整体上采用了分层的架构,从上到下分别是表示层、功能层、数据访问层、数据存储层,表示层和功能层按照业务功能分为多个微服务,表示层的微服务采用JavaScript + Vue开发,功能层的微服务采用Java + SpringBoot开发,数据存储层采用MyBatis提供数据访问服务。接着我们生成了质量效用树,经过分析,得到的质量效用树如下:安全性包括xxx,性能包括xxx,可用性包括xxx,可修改性包括xxx,其中安全性和可用性的优先级比较高,需要重点关注。然后我们分析架构方法,针对安全性采用对关键操作接口认证的方式,同时采用流程引擎进行审批控制。针对可用性我们采用MySQL主从复制,并对主数据库进行监控,后台服务采用分布式集群部署,同一个服务的不同实例部署在不同的服务器节点上。经过分析,得出敏感点有xxx,权衡点有xxx,风险点有xxx。
  • 测试阶段。我们对讨论了xxx系统的用例场景,并通过投票表决的方式对场景进行了分级,发现高优先级场景在上一阶段都已经分析过。接着我们进行了用例场景的测试,保证测试结果符合预期结果。

四、报告阶段。最后我们对评估结果进行了描述,包括架构描述、业务目标、质量属性效用树、敏感点、权衡点和风险点列表。

通过使用ATAM进行架构评估,保证了xxx系统架构设计的合理性、完整性和针对性,保证了平台的质量。xxx系统按时上线,试运行3个月后运行稳定,得到了客户和我司领导的认可。但是我们仍然不满足现状,由于项目工期比较紧,发现了第一版中存在的不足,客户关于xxx的需求没有得到很好的满足,在项目二期中,我们考虑通过增加构件的方法来解决。

你可能感兴趣的:(笔记)