软件架构师主要是做什么啊?

发布网友 发布时间:2022-02-28 15:18

我来回答

8个回答

懂视网 时间:2022-02-28 19:39

Java系统架构师是需要掌控整体并依据具体的业务场景给出解决方案的团队领导型人物,具体工作内容如下:

1、确认需求:确定并分析客户需求,进行项目风险评估,然后将用户需求转化为软件需求,同时要补充非业务需求。

2、技术选型:需求转化后会形成软件的整体架构,需要根据整体架构进行技术选型。

3、系统分析:将实际项目中的概要设计、详细设计、业务逻辑划分、子系统与主系统的关联、数据库的设计等,从技术的角度完整的拆解业务,把控好技术的细节。

4、保持沟通:在整个过程中要多方面跟踪项目进度,要和开发人员保持沟通,如果发现问题要及时解决。

总结:

1、确定并分析客户需求,进行项目风险评估,然后将用户需求转化为软件需求。

2、需要根据整体架构进行技术选型。

3、将实际项目中的概要设计、详细设计等从技术的角度完整的拆解业务。

4、在整个过程中要多方面跟踪项目进度,如果发现问题要及时解决。

热心网友 时间:2022-02-28 16:47

软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。根据“第三届中国软件工程大会”的报告,在中国,未来五年,高端软件人才需求缺口达20万。而每年自动成长起来的软件架构师只有几百人,可见市场需求的巨大。

扩展资料:

架构师的主要任务:

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

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

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

参考资料来源:百度百科-软件架构师

参考资料来源:百度百科-软件工程

热心网友 时间:2022-02-28 18:05

主要是管理与技术两方面的能力,管理与技术两手都要硬,而技术是基础。技术不行、退化了,那只好做 PPT 架构师、首席布道师之类的。

技术能力

软件架构师是一位具有一定技术、产品、项目和团队等管理能力的高级程序员(编程高手),通常是一个开发团队里面技术最牛(或者比较牛)的少数几个人之一。架构师自身的技术水平和管理水平不行,常常会把团队带沟里,重要性可想而知。

成为架构师需要较长时间的一线开发经验的积累。单纯看工作年限,一般 3-5 年可成为初级架构师,5-8 年可成为中级架构师,8-10 年以上可成为高级软件架构师,当然这只是大致的估计,具体达到何种水平还要看架构师的实际能力。

经年累月,摸爬滚打,一位优秀的软件架构师需要掌握的技术能力很多,先说几个最基本的。

建模

软件开发领域的建模能力,主要是指抽象的思考能力。

普通码农通常用代码思考,负责一个系统中的几个小模块,所以思维常常局限在低层(low-level)、战术(tactic)的层面,考虑的基本上大多是某个功能、某个模块实现的具体细节与技巧。这是应该而且正常的,是团队合理分工的结果。

而架构师,顾名思义,要负责整个系统的架构,尤其是涉及到一个系统(或子系统)全局的整体设计,所以往往需要高层、上层(high-level)的战略(strategic)层面的思考,这样就必然需要架构师经常进行建模(Modeling),对代码、模块、子系统和系统中的各种静态结构、关系和动态行为、交互等等进行抽象。所以,在架构师的日常工作中,经常看到各种各样的图表、图形符号和模型,是很正常的。

可以说,不会建模,不习惯于用模型思考的程序员,是很难成为一名称职的软件架构师的。这里不得不推荐一下动力节点,他们的教学方式和其他机构截然不同:

这里以全栈教学为主,精通前段后端,程序设计思想,并且培养真实企业项目开发经验


系统分析与设计

前面已经说了,系统分析与设计(System Analysis and Design)的主要技术手段是建模,两者是高度重合的。

编程的四门功课


上图画的是任何软件开发、软件工程必然离不开的四门基本功课(四项基本活动或任务):

1、需求分析

2、设计实现

3、测试验证

4、调试纠错

把这四项活动连起来正好组成一个菱形,所以我也把它们叫作“编程之钻”(The Programming Diamond)。

这四门功课既可以看作是一个团队在整个项目开发过程中所连续从事的必不可少的四项基本活动(团队层面),也可以看作是一名程序员在日常开发中为了实现一个需求而需要完成的必不可少的四项基本任务(个体层面)。

从一个功能的需求分析,到程序设计、编码实现,再到测试确认这个功能的完成,以及发现错误后进行调试定位、代码修改、设计重构或优化,再次进行测试和确认,通过后再选择下一个需求进行分析,如此周而复始。。。这四个基本动作正好构成一个功能开发的小循环,也是每个程序员日常工作的标准核心动作。

那么,为什么普通码农的开发不如编程高手,总是比别人慢,往往也不如别人的好?可能有许多种原因。有一个比较简单的办法能帮你找到开发的瓶颈:评估一下以上这四项任务在你的日常开发中的时间占比。

我这 20 年的观察是,国内许多码农的开发效率低、质量不高,是因为他们往往在 Coding、Debugging 上花去了大量时间(人称 code-and-fix),而在“编程之钻”的需求分析、自动测试、架构设计等其他几个重要方面往往草草带过,占比明显不平衡。

什么原因?因为许多人不知道怎么有效率、高质量地去做需求分析、自动测试、架构设计以及调试除错,以为只有 Coding(编程语言的语法技巧和框架 API 如何使用等)最重要,忽视了其他的软件工程关键实践,于是导致个人整体的开发速度和质量降低,老是提不上去。

而这又是什么原因造成的?因为一方面“软件工程无用论”长期存在,加上浮躁和急功近利的社会风气,影响了人们的观念和意识,导致追求短平快、糙快猛;而另一方面仅通过大学短短的四年,常常很难全面、扎实地学到并掌握“编程之钻”的关键技术,而工作以后又常常忙于加班应付、各种赶工期,缺少足够的时间来学习提高自己的开发水平。

热心网友 时间:2022-02-28 19:40

在转载下面百科里的介绍前,我先推荐一下动力节点这个学校,我本人亦是这里毕业的,毕业后在公司从事物流系统架构^

软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员

职业名称

软件架构师——(Software Architect)

优势

根据信息产业部的有关文件,高端人才匮乏是中国软件产业当前发展最致命的阻碍因素之一,多数企业的高端职位一直空缺但招不到合适的人才。

高端职位的空缺,导致企业技术层次一直在低水平徘徊。而众多低水平软件开发人员让中国大多数软件企业陷于严重的低层次重复开发状态,无法形成自己的产品研发和技术优势,导致国内90%以上的软件企业中的开发人员不到50人,所以很难发展壮大。

根据“第三届中国软件工程大会”的报告,在中国,未来五年,高端软件人才需求缺口达20万。而每年自动成长起来的软件架构师只有几百人,可见市场需求的巨大。

在如此形势下,怎样抓住机遇,快速适应新的形势变化,快速提升职场竞争力,实现个人价值,是需要认真思考的事情。

能力要求

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

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

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

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

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

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

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

主要任务

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

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

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

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

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

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

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

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

参考资料:软件架构师百度百科

热心网友 时间:2022-02-28 21:31

工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。

根据信息产业部的有关文件,高端人才匮乏是中国软件产业当前发展最致命的阻碍因素之一,多数企业的高端职位一直空缺但招不到合适的人才。
高端职位的空缺,导致企业技术层次一直在低水平徘徊。而众多低水平软件开发人员让中国大多数软件企业陷于严重的低层次重复开发状态,无法形成自己的产品研发和技术优势,导致国内90%以上的软件企业中的开发人员不到50人,很难发展壮大。
根据“第三届中国软件工程大会”的报告,在中国,未来五年,高端软件人才需求缺口达20万。而每年自动成长起来的软件架构师只有几百人,可见市场需求的巨大。

在如此形势下,怎样抓住机遇,快速适应新的形势变化,快速提升职场竞争力,实现个人价值,是需要认真思考的事情。

热心网友 时间:2022-02-28 23:39

你既然已经工作了,我觉得你就应该多少了解一点把,一般公司也都有架构师的存在呀。
架构师主要工作算是系统分析师,制定架构,以及开发时使用框架,类似于工程里面的总设计师。
确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。
要求你就必须从程序员转型到架构师,可以看看一些架构师的书,其实最做的来源于你平时的积累。对技术理解很透彻。另外就是对框架特别熟悉。当然这些都必须你拥有很丰富的项目经验

热心网友 时间:2022-03-01 02:04

沟通能力是最重要,最普遍的素质。想成为架构师却不能忽略。架构师要做的第一件事就是与团队成员、项目经理、客户认同沟通,获得认同。这对于做技术,想转架构的人会很难。沟通是双向的,一方面要能够理解对方的意思,另一方面也要让对方理解你的意思。要成为架构师,要勇于表达自我,仔细聆听对方的话语。  架构师要与很多人打交道,有领导,客户,技术。架构师有职无官,要推动整个团队的技术进展,能在压力下作出决策,并贯彻到底。这需要架构师具有一定的魄力和感染力,来排除工作的不利影响,保证工作顺利进行。架构师的职责特殊,有创新的要求。虽然有很多现成的架构,但放到具体行业又各有不同,不能生搬硬套。这时候就需要专业的知识,丰富的业务领域知识,开阔的眼界。依此才能跳出业务,看清楚事实,将理论架构与实际业务完美结合,搭建最合适项目的开发架构。做的这点,不仅要努力学习架构和业务知识,也要不断扩大知识面……
原文链接:http://www.codingbefore.com/sarticle/aid/1586515023149

热心网友 时间:2022-03-01 04:45

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

软件架构师的职责是把需求转换为软件世界的模型。4+1视图中以use case作为核心,其中功能性需求以及部分非功能性需求会被软件架构师通过分析和设计,映射为各种软件设计模型。从OOA/OOD角度说,use case 在这个过程中是要转换为各种UML,其中类图,序列图,状态图是最常用到的。这个转换过程是需要智慧的,use case是目的,各种OO的原则是指导,设计模式是经验,灵活运用是能力。里面蕴涵了设计的美感,我觉得这个过程是衡量一个软件架构师的最重要的指标。

当然这个过程是迭代和反馈的,我觉得概要设计和详细设计只是思考同一个问题的粒度不同而已。

另外就是我们要熟悉语言,详细设计是要转换为代码的,而且跟语言是有关系的。语言比如java/c++等,详细设计的模型是有很多不同的。就需要软件架构师有过这个过程,并且是非常良好的映射。

除了语言就是要熟悉某个技术领域,比如J2EE/DOTnet.从J2ee来说,可能需要了解比如jsp/servlet/ejb/jndi/jta/jdbc等。还需要了解各种web framework,o/rmapping,ioc/aop容器等等。还有的就是一些技术组件和业务组件,不如workflow,rules engine等等。另外比如各种database.熟悉这些东西的目的,是把这些软件和组件合理并且有机的组织起来成为一个开发的架构。这个过程是需要创造力和想象力的。可能很多人认为这个地方正是软件架构师体现能力的地方。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com