了解“软件架构师”的工作

电脑杂谈  发布时间:2020-07-12 13:26:40  来源:网络整理

软件开发技术架构_系统架构软件_软件架构师

了解“软件架构师”的工作

翟杰(Jack zhai)

在开发软件时,软件架构师是用户需求分析和系统设计阶段的灵魂. 与传统的系统分析师相比,软件架构师的工作可以提供下一个代码设计和将来的操作. 更好的指导. 有些人将架构师的工作定义为分解系统模块并定义它们之间的关系,有些人认为架构师是有关软件设计核心链接设计的一系列决策. 架构师在现代软件开发系统中越来越重要的原因,它也与当前流行的软件开发组织结构有一定的联系.

首先,“软件人”面临的困惑:

随着软件行业竞争的加剧,有数据表明商业软件的发布周期不能超过9个月. 为了适应市场的变化,客户不断根据市场调整其业务流程和运营模式. 新业务通常需要得到支持. 开发周期超过九个月. 即使启动该软件,它也面临着“淘汰市场”的危险. 纠正原因: 对于软件用户而言,软件不再仅仅是编辑办公文档的工具,而是业务运营的支持平台. 最初,客户的业务运营是快速而多变的,这通常被称为业务运营的压力. 现在直接传递给软件开发人员. 过去曾经是运营商的``想法'',现在不仅运营商需要为该想法而战,而且IT支持部门还需要支持运营商新想法的运行的能力.

系统架构软件_软件开发技术架构_软件架构师

如何使软件适应快速变化的需求?坦率地说,它是不断修改企业的软件功能和控制过程,软件开发人员并未花太多精力,使用了面向对象的重用技术来节省代码编写;使用分层隔离技术来减少需求变更对代码的影响;采用业务开发平台技术可以使用户任意组合自己的业务流程...

为了弥补软件开发人员和业务人员的思维差异,您可以快速为客户提供操作体验和视觉传达. “极限编程”方法已成为许多软件开发人员的最爱.

极端编程是适应各种需求和小版本变化的许多开发技术的代表. 其目的是避免庞大而复杂的软件设计,并引入对用户可见,功能简单且对用户来说足够早的小版本软件. 首先使用它,在实践中体验这种感觉,然后逐步改善它.

当新要求的增加难以实现时,它使用“重构”技术来部分调整软件体系结构,例如对象重构,重构,功能模块重构...当外部调用接口受到影响时,重写本地程序. 当然,当整个软件体系结构不合适时,必须对其进行重新发明和重新开发. 至此,该软件的生命周期结束了.

第二,新方法带来的新问题:

软件架构师_系统架构软件_软件开发技术架构

极端编程是软件开发的组织模型,它要求管理人员对软件系统的整体体系结构有清晰的了解软件架构师,否则软件开发过程将随用户的需求而随意“漫游”,并且永远不会终于交付了. “大尾巴”项目. 造成这种情况的原因有两个:

1. 该软件提供的功能不仅与用户的需求有关,而且与他们的服务质量和约束有关. 约束通常是计算机硬件,系统软件,网络等;服务质量通常是用户对软件质量的要求,例如并发支持,连续服务等.

极端程序员非常关注用户需求的变化,但是对这些变化的适应必须在软件系统的整体体系结构内,在约束条件允许的范围内以及在服务质量的可接受范围内,否则发布的软件是用户无法接受,后者无法达到预期的效果.

2. 由于需要“敏捷”,许多开发组织者在“足够的原理”,简单的构造的支持下,“缩减”了早期体系结构设计的时间,甚至为开发工具,中间件,所使用的对象,抽象等工作很容易扭曲,直到发展的后期,它变成了烫手山芋和困难的鸡肋. 如果继续保留它,将无法满足用户的新需求,而完全替换将需要重复很多工作. 什么是“敏捷”?

因此,采用“敏捷”开发方法的软件团队应比传统方法更加关注软件体系结构的设计,这就是为什么软件架构师的职业比以前的系统分析师更受欢迎的原因. 我很欣赏Cisco的65系列交换机,其机箱结构经历了几代引擎,而兼容性使许多制造商都羡慕不已. 一些制造商自己的产品由两个人评判. 相似产品很难相互合作. 每个产品都有新面孔.

软件架构师_软件开发技术架构_系统架构软件

如何进行更完整的软件体系结构设计,闻宇在《软件体系结构设计》中给出了“五视图法”,比较全面.

三视图和五视图架构方法:

所谓的五种观点是从五个角度给出软件架构设计,避免架构设计不充分,并对软件的开发和设计具有全面的指导意义. 它将软件体系结构分为以下五个部分:

Ø逻辑体系结构: 专注于软件功能. 系统为用户提供什么样的服务?重点是用户行为或责任的划分. 逻辑体系结构是从用户的角度来看软件结构. 该功能不仅是用户的需求,而且是相关的约束和限制

Ø开发架构: 关注软件包的生成过程或源,包括源程序和开发环境(类库,中间件等),这是从开发人员的角度来看的软件结构. 开发架构和逻辑架构具有多对多的映射关系(功能对应的程序,可重用程序对应于多个功能). 开发架构考虑了开发阶段的质量属性,例如可伸缩性,可重用性,可移植性,易于理解,易于测试等.

软件开发技术架构_系统架构软件_软件架构师

Ø操作架构: 从维护人员的角度来看,软件结构是关注流程,线程和对象等概念以及相关的同步,并发和通信问题. 开发体系结构侧重于包的静态生成软件架构师,而操作体系结构侧重于操作后的交互. 运营架构会考虑运营期的质量属性,例如性能,可伸缩性,持续可用性,安全性等.

Ø物理体系结构: 专注于软件的安装和部署. 该操作体系结构专注于目标程序的动态操作. 物理架构重视程序的静态位置. 物理体系结构受软硬件环境的支持,并且软件单元已映射到硬件

Ø数据架构: 专注于数据存储,包括格式和交付,同步,复制等,数据组织和传输. 通常是E-R图和数据流程图的设计

“五视图方法”使软件架构师可以避免综合考虑各种因素的复杂性,并可以根据特定软件的特性专注于某种体系结构,从而降低了设计难度. 在“敏捷”开发组织中,节省时间很重要.

体系结构设计的最终目标是延长软件的生命周期,并更多地“重用”代码. 似乎架构设计和“敏捷”在思想上有一些时间冲突,但是架构设计已经到位,这对于软件是实用的. 开发具有启发性,并且在很大程度上需要“漫游”用户,因此软件开发实际上变得“敏捷”.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-277702-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...