zoukankan      html  css  js  c++  java
  • 浅谈软件架构师工作流程

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

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

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

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

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

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

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

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

      关于如何为我们将来能够成为一名软件架构师做准备,我根据网上的资料总结了以下几点。

      (1)    做好平时的学习与积累,增加相关书籍的阅读。

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

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

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

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

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

      (7)    有时间可以关注一下别的领域的新鲜事物,加强自己的涉猎。

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

  • 相关阅读:
    归并排序的go语言与C++实现对比
    Telnet服务器和域名系统的端口号 Mac OS X
    kali linux 更新软件源,安装中文输入法,修复Linux与windows引导菜单解决windows引导丢失
    运行CImg库笔记
    解决没有X11/Xlib.h 的错误
    Mac 下office 2013制作组合表
    小程序-极其简单的表单验证使用方式
    小程序-可通用的目录栏组件
    小程序-自定义返回顶部组件
    小程序-获取用户信息
  • 原文地址:https://www.cnblogs.com/crazy-soul/p/6438232.html
Copyright © 2011-2022 走看看