- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件架构师的角色和培养
随着软件系统的规模越来越大,复杂程度越来越高,软件设计的核心已经超越了传统的“算法+数据结构=程序”的设计模式,取而代之的是对系统的总体结构的设计和规范。软件架构在软件系统中充当着重要的角色,软件架构也是软件工程中迅速发展的一个研究实践领域,有很多的文献讨论了如何构架一个好的软件系统。软件架构师作为软件架构的设计者是关系到软件成败的关键因素。然而,有关软件架构师的角色定位以及教育培养问题,仍然比较模糊,没有一致的结论。
作者近年来在软件架构的理论研究和实践方面做了一些工作,也取得了一定的成绩。负责起草了全国计算机技术与软件专业技术资格(水平)考试中的系统分析师和系统架构设计师考试大纲,主编了有关考试教材。本文主要讨论软件架构师的角色和培养问题。
1 软件架构与软件架构师
1.1 软件架构
软件架构(Software architecture,软件体系结构)一词早在20世纪60年代就被E.W.Dijkstra提出,但是直到20世纪90年代初才开始流行起来。为了提高软件需求和软件设计的质量,软件工程界提出了需求分析工程技术和各种软件建模技术。但是在需求和设计之间仍然存在一条很难逾越的鸿沟,即缺乏能够反映作决策的中间过程,从而很难有效地将需求转化为相应的设计。为此,软件架构的概念应运而生,并试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现平坦过渡的问题。
目前,软件架构的研究已发展为软件工程领域的一个独立学科分支,具有比较严格的理论基础和工程指导原则。软件架构已经成为软件工程领域的研究热点以及大型软件系统与软件产品线开发中的关键技术之一。有许多相关的研究人员对软件架构描述语言,软件架构的描述与表示,软件架构的分析与验证,基于架构的软件维护与演化,软件架构的可靠性等方面进行了研究。
1.2 软件架构师
一直以来,绝大多数的软件组织都缺乏软件架构师的编制。架构设计的工作基本上由项目经理、系统分析师与软件设计师兼任或分摊,导致普遍轻视软件架构专业人才的培养与任用。事实上,软件构架师是目前很多软件组织最急需的人才,也是一个软件组织中的高级技术人才。那么,究竟什么是软件架构师、软件架构师在项目开发中起什么作用、如何定位一个软件架构师和如何成为一个软件架构师呢?这是许多组织、技术人员和管理人员都希望知道的或希望参与讨论的话题。下面对软件架构师这一概念作简单的阐述。
所谓架构师,通俗的说就是设计师或结构设计者,这些定义如果用在建筑学上,则是很容易理解的。在软件工程领域中,软件架构师实际上就是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。对一些大型软件产品或项目的开发,这一角色显得很关键,因为缺乏好的软件架构师而导致项目失败的例子不胜枚举,一个没有经验和能力的软件架构师也会使软件项目失败的速度加快。正因如此,Martin Fowler指出:架构师是对所有重要事情作出决定的人。
软件架构师在整个软件开发过程中都起着重要作用,并随着开发进程的推进而其职责或关注点不断地变化。在需求阶段,软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等。此外,架构师还要经常审查客户和市场人员所提出的需求,确认开发团队所提出的设计;在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程的定义上;在软件设计阶段,架构师负责对整个软件架构、关键构件、接口的设计。在编码阶段,架构师则成为程序员的顾问,并且经常性地要举行一些技术研讨会、技术培训班等;随着软件开始测试、集成和交付,集成和测试支持将成为软件架构师的工作重点;在软件维护开始时,软件架构师就要开始为下一版本的产品是否应该增加新的功能模块进行决策。
因此,软件架构师是软件项目的总体设计师,是软件组织新产品开发与集成、新技术体系的构建者,是从宏观上驾驭大型系统的战略家,是对软件项目中所有重要架构事情作出决策的人,是策略制定者、组织协调高手、称职的顾问与领导者。
作为一个软件架构师,在整个软件系统的开发过程中是乐趣无穷的,因为这个角色很具有挑战性,有时需要左右逢源八面玲珑,有时又需要果断坚定不留情面。Philippe Kruchten曾经说过:当一个伟大的架构师领导开发团队时,团队的每个成员都感觉不到他的存在。次一点的架构师使开发团队的每个成员都喜欢他,再次一点的是害怕他,最次的是鄙视他。在国内,软件组织几乎没有独立的架构师,通常一个软件高手身兼数职,既是项目经理,又是软件架构师,甚至还是软件开发者,有时还要客串一个测试人员,这对软件的开发周期和产品质量是不利的。
2 软
您可能关注的文档
- 浅议Delphi程序如何实现自动升级.doc
- 浅议IT审计对我国信息化建设促进作用.doc
- 浅议高校实践教学与现实的碰撞.doc
- 浅议高职Flash课程考核方式改革.doc
- 浅议高职高专计算机网络实验室的建设.doc
- 浅议计算机技术在档案管理中的应用.doc
- 浅议企业数据仓库的实现模式.doc
- 浅议通信施工企业人力资源管理优化.doc
- 浅议网络侦听技术――sniffer.doc
- 浅议网络传输中数据加密技术的研究.doc
- Unit4MyFavoriteSubjectSectionA(1a-Pronunciation)(课件)人教版七年级英语上册.pptx
- Unit4NaturalDisastersListeningandSpeaking课件-高中英语人教版.pptx
- Unit4NaturalDisastersReadingandThinking课件高中英语人教版(1).pptx
- Unit4MyFavouriteSubjectSectionApronunciation课件-人教版七年级英语上册.pptx
- Unit4MyFavouriteSubjectSectionB(1a-1d)(教学课件)人教版英语七年级上册.pptx
- Unit4Lesson1课件冀教版七年级英语上册.pptx
- Unit4Lesson3课件冀教版英语七年级上册.pptx
- Unit4NaturalDisasters词汇笔记清单-高一上学期英语人教版.docx
- Unit4Lesson2课件冀教版英语七年级上册.pptx
- Unit4IusedtobeafraidofthedarkSectionAGrammarFocus-4c课件人教版(2012)九年级英语全册.pptx
文档评论(0)