当前位置:   article > 正文

可做参考的 软件架构师文章(18/4174)

可做参考的 软件架构师文章(18/4174)

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

具备在缺乏完整信息、众多问题交织一团、模糊和矛盾的情况下,软件架构师能迅速抓住问题要害,并做出合理的关键决定的能力 l、具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考


⒈对项目开发涉及的所有问题领域都有经验,包括彻底地理解项目需求,开展分析设计之类 软件工程活动等
⒉具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策
⒊拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动,并赢得项目成员的信任;
⒋以目标导向和主动的方式来不带任何感情色彩地关注项目结果,构架师应当是项目背后的技术推动力,而非构想者或梦想家(追求完美)
⒌精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架 机制模式(例如J2EE架构等); 

  ⒈领导与协调整个项目中的技术活动(分析、设计和实施等)
⒉推动主要的技术决策,并最终表达为 软件构架
3.确定和文档化系统的相对构架而言意义重大的方面,包括系统的需求、设计、实施和部署等“视图”
⒋确定设计元素的分组以及这些主要分组之间的接口
⒌为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻
⒍理解、评价并接收系统需求
⒎评价和确认软件架构的实现 专业技能

       (1)是否是某一技术领域的专家。 

  (2)能否指导软件设计师的工作,发现并指出设计存在的问题并提出解决方法,评审他们的工作。 

  (3)能否及时有效地解决设计、开发人员所提出的问题,解决技术上的难题。 

  (4)能否经常组织并带领内部人员研究、学习与项目相关的新技术和新方法。 

  (5)能否组织和管理好内部的技术研究和攻关工作。

  (6)能否给项目、产品开发实施团队提供技术保障。

  (7)所设计的软件架构是否合理,技术是否先进,能否满足客户的需求,满足产品的功能和性能要求。

  (8)所设计的软件架构是否具有可扩展性和安全性,能否经受压力测试等。

  (9)是否具有分析、识别并尽可能地回避风险,降低风险所引发问题成本的能力。

  (10)能否为组织降低开发成本,提高开发效率。

  (11)能否与系统分析师和项目管理师协调工作,工作是否和谐。

  (12)是否具有良好的团队意识和协作精神,是否有较强的沟通能力和书面表达能力。  

1、确认需求
在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。
2、系统分解
依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。随后,架构师会确定各层的接口,层与层相互之间的关系。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。
软件架构师的功力基本体现于此,这是一项相对复杂的工作。
3、技术选型
架构师通过对系统的一系列的分解,最终形成了软件的整体架构。技术选择主要取决于 软件架构
Web Server运行在Windows上还是Linux上?数据库采用MSSql、Oracle还是Mysql?需要不需要采用MVC或者Spring等轻量级的框架?前端采用 富客户端还是瘦客户端方式?类似的工作,都需要在这个阶段提出,并进行评估。
架构师对产品和技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时间进度等实际情况进行权衡,最终进行确认。
4、制定技术规格说明
架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照它的架构意图去实现各项功能。
架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至与最终用户保持沟通。所以,对于架构师来讲,不仅有技术方面的要求,还有人际交流方面的要求。  

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号