首页 > 其他分享 >软件架构师该如何工作

软件架构师该如何工作

时间:2023-02-18 22:46:12浏览次数:48  
标签:架构 项目 系统 如何 软件架构 构架 设计 师该

软件架构师基本要求:

  1.对项目开发涉及的所有问题领域都有经验,包括彻底地理解项目需求,开展分析设计之类软件工程活动等;

  2.具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策;

  3.拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动,并赢得项目成员的信任;

  4.以目标导向和主动的方式来不带任何感情色彩地关注项目结果,构架师应当是项目背后的技术推动力,而非构想者或梦想家(追求完美);

  5.精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式(例如J2EE架构等);

  6.具备系统设计员的所有技能,但涉及面更广、抽象级别更高;活动确定用例或需求的优先级、进行构架分析、创建构架的概念验证原型、评估构架的概念验证原型的可行性、组织系统实施模型、描述系统分              布结构、描述运行时刻构架、确定设计机制、确定设计元素、合并已有设计元素、构架文档、参考构部署模型、构架概念验证原型、接口、事件、信号与协议等。架、分析模型、设计模型、实施模型。

 

 

  主要任务:

  架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件         开发项目的成败。

  1、领导与协调整个项目中的技术活动(分析、设计和实施等)。

  2、推动主要的技术决策,并最终表达为软件构架。

  3、确定和文档化系统的相对构架而言意义重大的方面,包括系统的需求、设计、实施和部署等“视图”。

  4、确定设计元素的分组以及这些主要分组之间的接口。

  5、为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻。

  6、理解、评价并接收系统需求。

  7、评价和确认软件架构的实现 专业技能。

 

 

  主要职责:

    好的软件架构师不只是一位受到尊敬的资深技术人员,通常也是策略制定和组织协调的高手,称职的顾问与领导者。

  这是因为软件架构规划与设计主要是以宏观的角度切入系统架构,一般所谓的设计则是以微观的角度切入。软件工程师和程序

  员所考虑的是单个构件的功能,而软件架构师必须从全局的角度理解软件项目的业务目的和期望结果,能够定义不同的构件是

  如何组装在一起的。软件架构师规划系统的角度主要是从自上而下的方式着手,而软件设计师则多半从自下而上的方式着手。

  这种从宏观/微观的角度进行划分,在其他学科也常看见,如宏观经济学与微观经济学等。这种宏观角度的本质,就是软件架构师

  专业领域与其他软件开发人员最根本的区别。

    从宏观的角度,举凡架构规格与决策、排定架构审阅时程、解决所有架构相关的问题、所有主要技术决策的核准、维护架构规格等都

  是架构设计的主要工作。通常在项目一开始,需求与初始分析等工作流程会产生规划的企业流程与预期系统完成的功能。有了这些信息

  ,软件架构师就能草拟最初的高层架构蓝图,并列出影晌架构的可能的因素清单。另外,软件架构师也要担负估算项目成本的职责,

  评估项目计划对系统既有基础结构与架构的冲击,以及计算可能付出的成本与所带来的效益。

    除了上述任务以外,检查初期架构规划设计、影响因素与成本,维持与组织架构决策的一致性也是架构设计师的重要职责之一。这通常要找出

  制定项目的架构决策与其优先级的判断基准、定义问题领域、决定可能解决方案的制约条件、确认有关可能解决方法的假设状况以及辨识模块重

  用的可能性。软件架构师也必须负责确保需求的达成,以及硬件、软件、基础结构、性能、安全性、容量、可用性和系统运行、管理与维护

  等属于系统层次相关技术之间的协调与平衡。在某些关键时刻,软件架构师也要做出系统与架构在协调、平衡上种种必须当机立断但又很难判断的决策。

    软件架构师必须设法降低可能的技术风险对系统的冲击。在规划初期,技术风险对一般人来说通常都是不可知、不可验证也不可测的。风险大多与

  系统层次的需求有关,有时也会与组织需求有关。不论任何类型的风险,有经验的架构设计师都可在项目的先期也就是构建架构时期,预先列

  出这些可能的风险,然后在后续的开发时期配合开发人员予以适当地处理与解决。另外,架构设计师也必须领导开发团队,保持与其他成员

  的良好互动,确保开发人员是根据架构蓝图来构建系统。

    总之,软件架构师的主要任务就是规划与系统架构层次相关的事务,评估可能的风险与成本,并有效运用有限的人力、物力资源满

  足系统层次的需求。优秀的软件架构师是保证软件系统强大生命力的核心人物。专业架构师能够帮助组织全面研究现有架构和设计模

  式、评估系统设计的优缺点和可能存在的风险,通过一系列的专题指导和具体案例帮助组织掌握先进的、成熟的设计模式,简化复杂

  的业务逻辑和需求,确定系统最佳方案。在必要的情况下,还可就特定领域或课题,为开发人员提供定制指导。

 

标签:架构,项目,系统,如何,软件架构,构架,设计,师该
From: https://www.cnblogs.com/sanshier/p/17133856.html

相关文章

  • 23春第一周学习总结--软件架构入门
    软件架构(softwarearchitecture)就是软件的基本结构。合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。......
  • 如何在 kitten 里生成动态个数个立方体(水平方向平铺)以及避免闪烁问题
    效果如下:一个立方体:两个立方体:三个立方体:实现思路关键是求出第一个立方体开始绘制的第一个点的水平方向坐标。我引入三个变量,分别是立方体的个数,第一个立方体......
  • 如何在 Kitten 里绘制两个相邻的正方体并响应用户输入事件
    效果:按键盘的上下箭头,可以对正方体的棱长进行缩放。按键盘的左右箭头,可以对最上面的面的倾斜角度进行调整。按住键盘1,2,可以对正方体的斜边长度进行调整。实现原理......
  • JavaScript中数组是如何在内存中存储的?
    前言大家好,我是CoderBin,本次讲讲JavaScript中数组是如何在内存中存储的,希望对大家有所帮助,谢谢。如果文中有不对、疑惑的地方,欢迎在评论区留言指正......
  • 软件架构
      架构所存在就是为了将整体切分为个体所完成的任务,在由人来指挥进行到整体的转变,而架构所能解决的也都是关于人的问题,也只有人的相关复杂问题才需要架构的设计。而切......
  • c++ 11 lamda 如何实现 linq 中 先 where 再 select 的功能
    面向AI编程,回答如下:在C++11中,可以使用lambda表达式和算法库中的std::copy_if和std::transform算法来实现LINQ中先where再select的功能。具体来说,可以先使用......
  • 学生党如何免费领取云服务器?
    最近由于业务需要,在云上进行一些实验。但是苦于是一个学生党(穷得很),而且又不会经常用云服务器,如果买的话用几天,就很浪费。本着不浪费的原则,在网上冲浪时偶然发现一款名......
  • db2存储过程很慢如何查看
    存储过程很慢,如何处理?#查看包的情况selectr.routineschema,r.routinename,r.routinemodulename,rd.bnameaspackagenamefromsyscat.routinesr,syscat.routinede......
  • JS中如何使用emoji及unicode编码理解
    前瞻回顾第一章:同一个字符的两种UTF-8编码正文......
  • JVM解释器与JIT编译器如何并存?
    [1]JVM解释器  JVM设计的初衷仅仅只是为了满足Java程序实现跨平台特性,因此避免采用静态编译的方式直接生成本地机器指令,从而诞生了实现解释器在运行时采用逐行解释字节......