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

          开学第一课我们观看了《梦想改造家》,在这个案例中,冯家的老房子沿街而建,总体呈三角形形状,从某个角度看,老屋单薄得像是纸片。“纸片屋”共有25平方米,对三口之家来说,人均绝对值并不算太低,但被称为最稳固的三角形却带来了一堆麻烦,处处的尖角无可利用,造成了极多的空间浪费,经过设计师王平仲的改造,纸片屋变空中花园。我们在惊叹于设计师的设计外,有没有想过一个建筑设计师的工作流程类似于一个软件架构师的工作流程。

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

          架构师首先要进行需求分析,就像王平仲第一时间去拜访了委托人一样,得到真实可靠的需求。有人认为架构师是在需求规格说明书完成后介入的,只对最终的需求审核和确认,提出需求不清和不完整的部分。但也有人认为架构师要从项目最开始的阶段就参与进来。我个人比较倾向于第二种观点。由于分析人员在与客户交流时,往往不会深入挖掘需求,有很多隐藏的需求客户自己可能意识不到,而架构师则可以依靠敏感的软件嗅觉发现这些需求,另外,分析人员往往脱离开发团队,盲目接受客户需求,而架构师能够清楚把握现有的研发团队能做什么,不能做什么,提前预知风险,降低项目失败的机率。在收集完信息后,架构师需要将用户需求转化为软件需求,同时要补充非业务需求。有了软件需求,便可以决定项目该使用何种架构,开发模型,及依赖选项。架构师对项目的技术选型要提供多种不同的方案,并为每种不同方案提供详细说明文档,用来阐述每种方案的优势,劣势,可行性等内容。这些文档供项目经理或领导决策最终的技术选型。

          依据软件需求和技术选型,架构师需要和软件工程师一起将软件需求落实到软件详细设计说明书中。架构师负责将软件需求分解,重组织为子项目,子系统,组件和模块,以及它们之间的逻辑关系,从而形成不同的逻辑组成部分,最后还需要确定各个子系统及组件间的接口。这些都是作为进一步的团队分工的依据。同系统分解一样,系统设计是考验架构师能力的重要职责。

          在软件详细设计说明书完成后,为保证项目的顺利进行,架构师需要对整个团队进行技术培训,让团队中的每个人明白自己的职责范围,该做什么,不该做什么。在项目实施过程中,架构师需要参与到具体开发过程中,给与每个开发人员有效指导,以避免团队成员对系统设计的误解而造成项目的延误。沟通是保证项目顺利开展的有效保障。架构师要从多方面跟踪项目进度,架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至与最终用户保持沟通。

          设计之后,就要进行开发和测试。开发过程中,架构师到底用不用写代码,这是一个尚存争论的问题。架构师首先是一个技术角色,所以一定是来自于技术人员这个群体,多是来自于运维人员,可能本身代码写得并不多,或者说写不出来很漂亮的代码。软件架构师多是来自于程序员,有着程序员的血统和情怀,所以在项目开发过程中,可能会写一些核心代码。架构师写不写代码,可能取决于公司的规模、文化、开发人员的素质等现实情况。测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。软件测试的意义在于发现软件错误,验证软件是否满足任务书和系统定义文档所规定的技术要求,软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。

        要成为一个软件架构师并不是一夜之间或者一个职位的提升就能简单达到的。这是个进化的过程。

  • 相关阅读:
    关于如何绑定Jquery 的scroll事件(兼容浏览器 Wookmark瀑布流插件)
    HttpHelper类使用方法
    Jquery实现弹出选择框选择后返回,支持多级分类
    让asp.net网站支持多语言,使用资源文件
    关于Android SDK Manager无法获取更新列表的正确设置
    Eclipse使用技巧总结
    配置java环境变量
    sqlserver游标使用和循环
    压缩SQLServer数据库日志的一个存储过程
    Jquery EasyUI封装简化操作
  • 原文地址:https://www.cnblogs.com/qianxia/p/6427445.html
Copyright © 2011-2022 走看看