如何成为软件架构师
软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。
主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。
⑴确定软件架构师在软件组织中的职责和充当的角色,确定其相应的必须具备的知识体系,确定软件架构师的职业及其相关制度,制定软件架构师的培养目标和培养方案。
⑵坚持以大学教育为主(特别是各软件学院在这方面可以大施身手),以项目实践为辅的教育方针。
大学可以聘请现有的软件架构师担任核心课程的讲师,通过学校教育,系统学习软件架构师所必需的知识体系;通过项目实践使其具有初步的软件开发和设计经验,逐步成长为一名合格的软件架构师。
⑶作位第2条的补充,聘请现有的软件架构师,个人认为适合以讲座的形式在学校开展。
⑷对国外一些大公司的软件架构师的培训和认证予以支持,但是在认证的过程中必须坚持符合中国实际情况的原则。
例如,在认证考试之前对考生的知识体系进行系统的测试和评估,在通过认证后的适当时间内进行重新认证和继续教育。
⑸建立完善的软件架构师教育和认证制度,使得通过认证的人员能够在实际的软件开发中成为称职的和优秀的软件架构师。
并通过此制度能够为国家培养出更多、更优秀的软件架构师,解决当前软件架构师急缺问题。
...
如何成为软件架构师
【原创回答】我本人是一名软件架构师,这个问题非常大,不太好回答。
我总结一下,软件架构师的能力大概分为三个方面:1.技术,这个应该没悬念,如果没有过硬的开发技术,就不要期望做架构师了;设计模式,系统模式,架构模型,系统理论,甚至编程语言,算法,操作系统,网络,数据库,都需要有扎实的掌握。
2.是业务知识,也即领域知识。
软件架构师实际上是把业务需求落实成开发蓝图的总设计师,如果你对业务一窍不通,空有一身技术也只能望业务兴叹。
3.就是沟通表达的能力,架构师需要推进自己的架构设计理念给开发团队,所以也需要这方面的能力,当然最重要的还是前两部分的能力。
软件架构师介绍
化解技术风险,并保证相关决定被有效的传达和贯彻6,但涉及面更广、抽象级别更高、众多问题交织一团、模糊和矛盾的情况下,软件架构师能迅速抓住问题要害,指导整个开发团队完成这个计划。
主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员在技术全面、成熟练达。
他必须对开发技术非常了解,并且需要有良好的组织管理能力,一个架构师工作的好坏决定了整个软件开发项目的成败。
l、领导与协调整个项目中的技术活动(分析,构架师应当是项目背后的技术推动力,而非构想者或梦想家(追求完美)5、精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式(例如J2EE架构等),并赢得项目成员的信任;4,并最终表达为软件构架3、确定和文档化系统的相对构架而言意义重大的方面、拥有优秀的沟通能力;6、具备系统设计员的所有技能,他需要有丰富的知识背景,这意味着除了他要有技术上的技能外,还要有很好的领导才能、确定设计元素的分组以及这些主要分组之间的接口5、为技术决策提供规则,平衡各类涉众的不同关注点、构架文档、参考构架、设计、实施和部署等“视图”4、设计和实施等)2,构架师是项目的技术总管、组织系统实施模型、描述系统分布结构、事件、信号与协议等,而是从事更高层次的开发构架工作、评估构架的概念验证原型的可行性。
在团队中、洞察力强、经验丰富,用以进行说服、鼓励和指导等活动。
构架师的领导能力在团队中和项目质量控制中起着十分重要的作用,善于把握全局,能够在更高抽象级别上进行思考、推动主要的技术决策,具备在缺乏完整信息、具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策3、实施模型、部署模型、确定设计元素、合并已有设计元素、理解、评价并接收系统需求7、评价和确认软件架构的实现 专业技能软件构架师是技术主管、分析模型、设计模型、描述运行时刻构架、确定设计机制,包括系统的需求: 1、对项目开发涉及的所有问题领域都有经验,项目经理就是制片人(他要确定工作被完成了),并做出合理的关键决定的能力 l。
架构师的主要任务不是从事具体的软件程序的编写; 活动确定用例或需求的优先级、进行构架分析、构架概念验证原型、接口软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,项目经理是来管理项目的资源,开展分析设计之类软件工程活动等2、具备战略性和前瞻性思维能力; 主要包括如下、创建构架的概念验证原型、以目标导向和主动的方式来不带任何感情色彩地关注项目结果,包括彻底地理解项目需求,以便作出技术上的决定。
相对于构架师来说。
可以这样说,时间进度和花费的。
使用电影制作来做类比的话
什么是软件架构师?
软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。
架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。
他必须对开发技术非常了解,并且需要有良好的组织管理能力。
可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。
软件架构师的职责是把需求转换为软件世界的模型。
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.熟悉这些东西的目的,是把这些软件和组件合理并且有机的组织起来成为一个开发的架构。
这个过程是需要创造力和想象力的。
可能很多人认为这个地方正是软件架构师体现能力的地方。
软件架构师证书
系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。
主要着眼于系统的“技术实现”。
因此他/她应该是特定的开发、语言、工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。
系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。
系统架构师综合的知识能力包括9个方面,即:1、战略规划能力。
2、业务流程建模能力。
3、信息数据结构能力。
4、技术架构选择和实现能力。
5、应用系统架构的解决和实现能力。
6、基础IT知识及基础设施、资源调配能力。
7、信息安全技术支持与管理保障能力。
8、IT审计、治理与基本需求分析、获取能力。
9、面向系统可靠性与系统生命周期的质量保障服务能力。
作为系统架构师,必须成为所在开发团队的技术路线指导者;具有很强的系统思维的能力;需要从大量互相冲突的系统方法和工具中区分出哪些是有效的,哪些是无效的。
架构师应当是一个成熟的、丰富的、有经验的、有良好教育的、学习快捷、善沟通和决策能力强的人。
丰富是指他必须具有业务领域方面的工作知识,知识来源于经验或者教育。
他必须广泛了解各种技术并精通一种特定技术,至少了解计算机通用技术以便确定那种技术最优,或组织团队开展技术评估。
优秀的架构师能考虑并评估所有可用来解决问题的总体技术方案。
需要良好的书面和口头沟通技巧,一般通过可视化模型和小组讨论来沟通指导团队确保开发人员按照架构建造系统。
“软件架构师”与“高级程序员”概念的区别:
关于程序员类的考试(不是计算机操作员考试),其实在很多年之前就有了相关的计算机软件等级考试(具体的细分为:初级程序员、程序员、高级程序员三类),当然了,这三个类别的人员从需要掌握的理论难度和编程能力上讲肯定是从易到难的。
但是即使难度再难,也还主要是以编写程序为主。
而软件架构师,除了要求本人能够熟练编写程序源代码之外,还必须要具备:一定的计算机开发的理论基础(例如:数据结构及其算法、计算机操作系统、以及一些数学基础)、并且具有独立承担一个大型软件开发项目的能力。
软件架构师的资格认证
在国外,软件架构师的培养与认证具有严格的过程,明确规定了教育目标、认证的要求和学习课程等方面的内容。
下面,介绍三个组织的软件架构师认证情况。
在UC Irvine的软件架构师认证计划[27]中,为了拿到软件架构师C级认证,学员必须完成11个单元的必修课程和至少4个单元的选修课程。
这些课程包括:·必修课程:软件系统建模和分析概论(2个单元)、系统分析基础(3个单元)、用户需求的分析和文档化(3个单元)、软件架构项目(3个单元)。
·选修课程:信息系统项目管理(2个单元)、系统性能建模(2.5个单元)、管理业务改进项目(2.5个单元)。
UC Irvine的软件架构师认证要求学员具有业务系统建模,决定用户需求,评价业务过程的能力,掌握项目管理技术,能设计完善的、具有最佳可适应性和可扩展性的架构。
该认证程序以一门实践课程结束,在实践课程中,学员从头开始,设计一个大规模软件解决方案的架构。
iCMG对软件架构师的认证强调7个层次的课程学习,如图2所示[30]。
在该认证体系中,上面的3个层次由其合作伙伴完成,iCMG只负责下面4个层次的知识体系。
目前,软件架构师的认证在国内基本上是空白,既没有专业的培训机构,也没有专门的认证指南和权威的教育认证机构。
而软件架构师作为软件的总设计师,其水平和能力直接决定了软件系统的总体性能。
根据教育部2004年9月8日关于紧缺人才的报告,2005年国内软件架构和系统分析人才缺口在6万人以上,是目前软件开发中急需的高层次技术人才。
人事部和信息产业部[2003]39号文件决定在全国计算机技术与软件专业技术资格(水平)考试中设立系统架构设计师级别的认证考试,试图解决软件架构师认证问题。
但是,由于各种原因,该考试未能如期举行,一拖再拖。
其实,这些措施也只是暂时起到一个过渡的作用,只有建立完善的软件架构师教育培训方案和权威的教育认证机构,才是当前急需解决的问题。
网络/软件架构师的区别?
软件架构师——(Software Architec)软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。
主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。
架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。
他必须对开发技术非常了解,并且需要有良好的组织管理能力。
可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。
l、领导与协调整个项目中的技术活动(分析、设计和实施等)2、推动主要的技术决策,并最终表达为软件构架3、确定和文档化系统的相对构架而言意义重大的方面,包括系统的需求、设计、实施和部署等“视图”4、确定设计元素的分组以及这些主要分组之间的接口5、为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻6、理解、评价并接收系统需求 7、评价和确认软件架构的实现 专业技能
“软件架构师”与“高级程序员”概念的区别:
展开全部 关于程序员类的考试(不是计算机操作员考试),其实在很多年之前就有了相关的计算机软件等级考试(具体的细分为:初级程序员、程序员、高级程序员三类),当然了,这三个类别的人员从需要掌握的理论难度和编程能力上讲肯定是从易到难的。
但是即使难度再难,也还主要是以编写程序为主。
而软件架构师,除了要求本人能够熟练编写程序源代码之外,还必须要具备:一定的计算机开发的理论基础(例如:数据结构及其算法、计算机操作系统、以及一些数学基础)、并且具有独立承担一个大型软件开发项目的能力。
...
卖刀了