浅谈软件架构师工做流程

  在本学期的学习过程中,咱们主要是学习软件体系架构。在学期的第一堂课中,老师并无为咱们讲解太多的知识内容,而是让咱们观看了“梦想改造家”这个节目。而观看节目的目的就是让咱们以此为出发点,简单了解软件架构师的工做流程。编程

  对于这学期咱们将要开始软件体系架构的学习,再弄清楚了什么是软件体系架构以后,咱们要知道如何进行软件体系架构,也就是软件架构师的工做流程。根据从网上找到的资料,大体了解了软件架构师的进行软件架构的要求与步骤。架构

  第一,软件架构是用来沟通的,软件架构必须知足软件项目全部步众表明都有本身立场与视角的模型、文档说明,且这些模型文档说明仅清晰包含本身立场与视角关注与有关的事物,不能有任何遗漏,也最好不要有多余。框架

  第二,软件架构的每一步都是决策过程,并且关键需求决定架构,软件架构必须充分清楚地表达出这些决策与决策理由。众多的需求中为何这些需求是关键需求?为知足这些关键需求,采用了什么样的关键机制、核心技术与第三方框架?什么选择这些关键机制、核心技术与第三方框架而不选用其它的?为何说它们是可行的?编程语言

  第三,软件架构必须为之后的开发提供足够的指导与限制,所以软件架构必须肯定系统各元素间的关系、职责、交互接口与协做机制。仅仅划出几个层与层中包含的元素而不约束它们间的关系、职责、交互接口与协做机制,就如同一个公司,它的组织结构图就挂在墙上——再清晰不过了,但若是接口不清、机制不明,来了任务、出了事情不清楚找谁、如何汇报、怎样处理。函数

  第四,软件架构必须突出强调通讯机制、持久化机制和消息机制等公用模块的深刻设计。通讯机制、持久化机制和消息机制等公用模块较多的涉及软件的不一样部分之间的交互,对系统的功能实现、非功能知足等成功因素起着举足轻重的做用。工具

  第五,因为软件项目的不一样、开发组织结构的不一样、开发团队状况的不一样,软件架构的设计粒度是不必定的。好比,航天航空领域中的软件系统对系统的可靠性等质量属性要求很是高甚至能够认为是荷刻,这种状况下对架构的设计详细程度的要求也会比较高;象IBM这样的大的团队中又有小的团队共同开发,架构的设计粒度到子系统级就足够了,各个小团队精通的技术各不相同,可让其对子系统采用敏捷开发,对缩短工期、人尽其材有好处;有相似项目经验或项目团队全部成员总体技术水平较高的团队架构粒度可适当粗犷,而分布团队或涉及外包的状况则更强调架构的明确性。总之,架构设计对软件的不一样部分的设计程度不该是整齐划一的,特别是具体的业务功能模块在架构设计中每每设计程度不深。学习

  接下来大体了解一下如何进行架构拿到软件需求后,通过一翻囫囵吞枣式的通读(并且是一边看一边脑子里飞速的转达:这块按个人经验应该如何实现),而后打开建模工具,根据需求上提到的几块功能模块要求,画上几个用例与时序图;再从需求中摘下几个事物创建类,填上类的属性,又从时序图中分出几个函数方法,最后根据经验,依MVC分几层,套用已有的示例将最近新学的几个流行的框架添加上去。这就基本上完成了架构,而后再根据要求撰写文档。开发工具

  关于如何为咱们未来可以成为一名软件架构师作准备,我根据网上的资料总结了如下几点。架构设计

  (1)    作好平时的学习与积累,增长相关书籍的阅读。设计

  (2)    课余时间学习一些课外的编程语言。

  (3)    选择一个领域进行深刻得学习。

  (4)    将学习的经验知识发表到博客园,积累起来。

  (5)    平时多浏览一些优秀软件工做人员的博客,学习一些经验。

  (6)    多了解一些开发工具。

  (7)    有时间能够关注一下别的领域的新鲜事物,增强本身的涉猎。

  综上所述,做为一个软件架构师所应具备的基本职业素质则能够大体包括:较强的沟通能力和自我表达能力、有必定的魄力和感染力、有广阔的知识领域、有过硬的技术能力和丰富的编程经验、多方位思考分析能力、需求整理分析能力、系统分解能力、领导决策技术选项、系统设计能力、对团队的培训与指导能力。能在千丝万缕的问题中迅速找到核心问题,而且可以快速对于核心问题提出初步的解决方案或计划,把握全局进行思考。可见要想成为一名合格的软件架构师,就必须对各个方面进行细致的学习培养,只有经过自身的不断努力才能有所成就和收获。

相关文章
相关标签/搜索