当前位置: 首页 > news >正文

软件架构师 如何工作

  软件架构师工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。

  我查阅了一些资料,做一个软件架构师要求的能力要有以下几点。

  在技术全面、成熟练达、洞察力强、经验丰富,具备在缺乏完整信息、众多问题交织一团、模糊和矛盾的情况下,软件架构师能迅速抓住问题要害,并做出合理的关键决定的能力 l、具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考。主要包括如下:

  ⒈对项目开发涉及的所有问题领域都有经验,包括彻底地理解项目需求,开展分析设计之类 软件工程活动等
  ⒉具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策;
  ⒊拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动,并赢得项目成员的信任;
  ⒋以目标导向和主动的方式来不带任何感情色彩地关注项目结果,构架师应当是项目背后的技术推动力,而非构想者或梦想家(追求完美);
  ⒌精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式(例如J2EE架构等);
  ⒍具备系统设计员的所有技能,但涉及面更广、抽象级别更高; 活动确定用例或需求的优先级、进行构架分析、创建构架的概念验证原型、评估构架的概念验证原型的可行性、组织 系统实施模型、描述系统分布结构、描述运行时刻构架、确定设计机制、确定设计元素、合并已有设计元素、构架文档、参考构架、分析模型、设计模型、实施模型、部署模型、构架概念验证原型、接口、事件、信号与协议等。
  同时对于一个软件架构师,还要应该知道的几件事。

  (1)客户需求重于个人简历
  客户需求至上。为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违。

  (2)简化根本复杂性 ,消除偶发复杂性
  分析问题好比拨云见月、水落石出。

  (3)关键问题可能不是出在技术上
  团队同心,其利断金。

  (4)以沟通为中心,坚持简明清晰的表达方式和开明的领导风格
  沟通应当言简意赅、详略得当,别拖泥 带水。

  (5)架构决定性能
  种瓜得瓜,种豆得豆,架构设计也是一 样道理。

 

转载于:https://www.cnblogs.com/zhouzh/p/8529718.html

相关文章:

  • 常见前端知识摘要
  • 3 - 9 字典里的各种;;;;;集
  • git学习--远程分支删除
  • Hibernate【与Spring整合】
  • Jenkins之发送html附件邮件配置
  • 零散Linux命令
  • 原则类
  • delphi 中如何访问另一个类中到私有方法?(转载)
  • 1-如何自己在eclipse上配置Andriod环境
  • 十大经典排序算法
  • 【BZOJ 4449】[Neerc2015]Distance on Triangulation 多边形分治结构
  • 前端第三篇---前端基础之JavaScript
  • 线段树 Segment Tree
  • Python构造方法、析构方法和单例模式
  • 申请GV以及相关
  • ES2017异步函数现已正式可用
  • interface和setter,getter
  • isset在php5.6-和php7.0+的一些差异
  • JavaScript设计模式系列一:工厂模式
  • Linux链接文件
  • opencv python Meanshift 和 Camshift
  • Redis中的lru算法实现
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Swoft 源码剖析 - 代码自动更新机制
  • 设计模式 开闭原则
  • 使用API自动生成工具优化前端工作流
  • 通过npm或yarn自动生成vue组件
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 优秀架构师必须掌握的架构思维
  • 大数据全解:定义、价值及挑战
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • # .NET Framework中使用命名管道进行进程间通信
  • (zhuan) 一些RL的文献(及笔记)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)Linux——Linux常用指令
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)关于多人操作数据的处理策略
  • *1 计算机基础和操作系统基础及几大协议
  • .libPaths()设置包加载目录
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net Stream篇(六)
  • .netcore 获取appsettings
  • .NET程序员迈向卓越的必由之路
  • .net快速开发框架源码分享
  • .Net语言中的StringBuilder:入门到精通
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @RequestParam详解
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]