软件架构师的工作职责是什么

软件架构师是开发软件时在用户需求分析与系统设计阶段的灵魂人物,与传统的系统分析员相比,软件架构师的工作能为接下来的代码设计,以及将来的运行都提供更好的指导。有人把架构师的工作定义为分解系统模块以及定义相互之间的关系,也有人认为架构师就是对软件设计核心环节设计的一系列决策;之所以架构师在现代软件开发体系中越来越重要,还与目前流行的软件开发组织结构有一定的关系。

一、“软件人”面临的困惑:

随着软件行业竞争的加剧,有数据显示一个商业软件推出的周期不能超过九个月。客户为了适应市场的变化,业务流程、运营模式都随市场而不断调整,经常有新业务需要支持,开发周期超过九个月,软件即使推出,也面临“市场淘汰”的危险。纠其原因:对于软件的用户来说,软件不再只是办公文件编辑的工具而已,而是业务运营的支撑平台,本来是客户的业务经营快速多变,也就是常说的商家经营压力,现在直接传递给了软件开发者。从前拼的是经营者的“思路”,现在不仅经营者要拼思路,还要拼IT支持部门对经营者新思路的运营支持能力。

如何让软件能够适应快速多变的需求呢?说白了,就是不断修改企业的软件功能与控制流程,软件开发人员也没少下功夫,采用面向对象的重用技术节省代码的编写;采用分层隔离的技术减少需求变化对代码的影响程度;采用业务开发平台技术让用户随意组合自己的业务流程…

为了弥补软件开发人员与业务人员思路的差异,可以快速给客户操作体验、形象式沟通,“极限编程”方式成为很多软件开发者的最爱。

极限编程是众多适应需求变化、小版本开发技术的一个代表,其目的就是避免把软件设计的庞大、复杂,尽快推出用户可见的、功能简单的、够用的小版本软件,让用户先用起来,在实践中体验感觉,再逐渐完善。

当新需求的增加造成实现上难逾越时,就采用“重构”技术,局部调整软件架构,如对象的重构、数据库的重构、功能模块的重构…重构就是在不影响外部调用接口的情况下,对局部程序的重新编写。当然,整个软件架构都不适应的时候,就只好推倒重来,重新开发了。走到这一步,该软件的生命周期就终结了。

二、新方法带来的新问题:

极限编程是一种软件开发的组织模式,需要管理者对软件系统整体架构有清晰的认识,否则软件的开发过程就会随着用户的需求任意“漫游”,成为永远不能最终交付的“大尾巴”工程。其原因有下面两点:

1、软件提供的功能不仅与用户的需求有关,还与其服务质量、约束条件有关。约束一般为计算机硬件、系统软件、网络等;服务质量一般为用户对软件的质量要求,如并发支持量、持续性服务等。

极限编程者非常好地关注了用户的需求变化,但适应这些变化要在软件系统整体架构范围内,在约束条件的许可下、服务质量可接受范围内才可以,否则发布的软件是用户就无法接受的,后者也达不到需要的效果。

2、因为要“敏捷”,很多开发组织者就“缩小”的前期架构设计的时间,在“够用原则”的支持下,简单搭建,甚至对采用的开发工具、中间件、对象的抽象等工作随手捻来,等到了开发的后期,成了烫手的“山芋”,难缠的“鸡肋”,继续保留则用户新需求无法满足,彻底更换则很多工作需要重来,还顾得上什么“敏捷”呢。

因此,采用“敏捷”的开发方法的软件团队,对软件架构的设计应该比传统的方式更加关注,这也是目前软件架构师的职业比从前系统分析员还受欢迎的原因。我很佩服Cisco的65系列交换机,那个机箱结构经历了几代引擎,兼容性让很多厂家非常羡慕。而有些厂家自己的产品,前后判若两人,相似的产品也很难相互配合,每个产品一个新面孔,真是“麻雀随小,五脏具新”。

如何较为完整地进行软件架构设计,温昱在《软件架构设计》中给出了“五视图法”比较全面。

时间: 2024-11-06 02:39:36

软件架构师的工作职责是什么的相关文章

DBA日常工作职责有哪些

Eygle大师对DBA的七点建议 DBA的工作职责是什么?每天DBA应该做哪些工作?稳定环境中的DBA该如何成长与工作? 这是很多人都曾经提出过的问题,我潦潦草草的.随心所欲的记录一下我的观点和建议,供参考: 1.实时监控数据库告警日志 这是必须进行的工作,并且应该根据不同的严重级别,发送不同级别的告警,及时了解数据库的变化与告警. 2.实时监控数据库的重要统计信息 实施监控对于数据库运行至关重要.能够表征数据库重要变化的统计信息,并且据此发送报警信息.那么应当监控哪些统计信息呢?大家可以思考一

网络管理员工作职责有哪些

  对于投入正常运转和服务的计算机网络,网络管理员工作职责就是网络的运营.网络维护与网络管理. 现代信息社会中,人们一时一刻也离不开计算机网络的支持.网络管理员工作职责就是保证所维护管理的网络每日24小时.每周7天.一年365天正常运转.网络正常运转的时候人们往往并不注意你的劳动成果和你的重要作用,网络一旦出现故障,你常常成为关注焦点,众矢之的. 因此,作为一个合格的网络管理员,你需要有宽阔的技术背景知识,需要熟练掌握各种系统和设备的配置和操作,需要阅读和熟记网络系统中各种系统和设备的使用说明书

数据中心运维管理人员不可不知的工作职责

随着互联网.信息化产业的不断发展,作为各种信息载体的数据中心发挥着越来越重要的作用.因此保证数据中心的安全运行变得尤为关键,数据中心运维管理工作也变得越来越复杂,技术难度不断被加大.本文主要介绍数据中心运维工作者所应具备的工作职责. 1安全运行 保障系统和设备的正常运行:消防系统的完好:具备防水防火.防鼠措施:健全安全出入管理规定:保持机房清洁:建立供应商联系方式:工具和备件管理:事故应急流程和人员安全应急流程制定等. 2可连续性管理 a.保证所有基础设施设备正常运行 b.特别要注意发电机状态和

DBA日常工作职责 - 我对DBA的七点建议

DBA的工作职责是什么?每天DBA应该做哪些工作?稳定环境中的DBA该如何成长与工作? 这是很多人都曾经提出过的问题,我潦潦草草的.随心所欲的记录一下我的观点和建议,供参考: 1.实时监控数据库告警日志这是必须进行的工作,并且应该根据不同的严重级别,发送不同级别的告警,及时了解数据库的变化与告警. 2.实时监控数据库的重要统计信息实施监控对于数据库运行至关重要.能够表征数据库重要变化的统计信息,并且据此发送报警信息.那么应当监控哪些统计信息呢?大家可以思考一下,对于单机.RAC环境各不相同. 3

DBA职责及日常工作职责

职责 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据 库系统的存储结构预测未来的存储需求,制订数据库的存储方案. 3.根据开发人员设计的应用系统 需求创建数据库存储结构. 4.根据开发人员设计的应用系统需求创建数据库对象 5.根据开 发人员的反馈信息,在必要的时候修改数据库的结构 6.管理数据库的用户维护数据库的安全性 7.控制和监控用户对数据库的存取访问 8.监控和优化数据库的性能 9.制定数据库 备份计划,灾难出现时对数据库信息进行恢复 10.备份和恢复数据库

The Grind 0.1发布 简单逃避工作职责的游戏

The Grind是一个简单的游戏关于逃避工作的职责.我们的目标是获得尽可能少的工作,在整个你的9-5天的工作日中.穿着西装的男子四处流浪隐藏在小隔间当中 - 如果按照他们自己的方式来,意味着他们想给你工作!使用箭头键移动,按空格开始,并开始逃脱至到退出. The Grind 0.1这种最初的alpha版本,建立在48小时之内Ludum Dare到21点将从新开始.它包括基本的游戏和图形. 下载地址: Download for Windows (.zip) Download for http:/

交互设计师的工作流程及不同阶段的职责

  交互设计师的工作,并不仅仅是输出设计方案,我们需要参与前期的需求讨论.后期开发.测试验收等等产品设计与实现的多个环节.本篇将介绍我目前参与交互设计的工作流程以及各个阶段的工作职责. 一.需求分析阶段 这个阶段,对于不同时期的产品讨论.分析的方面侧重点不同. 1.新产品 对于从无到有的心产品,需要了解: 产品的定位是什么? 用户群体是谁?他们有哪些特征?我们的产品需要解决用户的什么痛点?如果有竞品,我们与他们的优势在哪里.差异又在哪里? 这个阶段非常重要,但是也是最难讨论清楚的,即使是产品经理

你是个软件架构师吗?

开发和架构的界限难以捉摸.有些人告诉你它根本不存在,架构只是开发者们所做的设计过程的简单扩展. 另外一些人认为这是一个鸿沟,它只能由那些做到高度抽象,而且不会陷入实现细节的开发者才能跨越.通常,在这两个极端的观点中间某处有个可操作的平衡点:不论如何,怎么从开发转换为架构师都是个有趣的问题. 经常被用来区分软件架构和软件设计开发的关键几点包括 伸缩性和抽象程度的增加以及作出正确设计决策意义的增强.软件架构是通过一个全局的观点,宏观的视角来理解软件系统作为一个整体如何工作. 即使这能够帮助区分软件开

一起谈.NET技术,你是个软件架构师吗?

开发和架构的界限难以捉摸.有些人告诉你它根本不存在,架构只是开发者们所做的设计过程的简单扩展. 另外一些人认为这是一个鸿沟,它只能由那些做到高度抽象,而且不会陷入实现细节的开发者才能跨越.通常,在这两个极端的观点中间某处有个可操作的平衡点:不论如何,怎么从开发转换为架构师都是个有趣的问题. 经常被用来区分软件架构和软件设计开发的关键几点包括 伸缩性和抽象程度的增加以及作出正确设计决策意义的增强.软件架构是通过一个全局的观点,宏观的视角来理解软件系统作为一个整体如何工作. 即使这能够帮助区分软件开