软件架构师的工作流程

通过对视频中的那位装修大师装修时的思考,我想我逐渐懂得了何为一个高级建筑师,与一个软件架构师有异曲同工之妙。若不是管看了本次视频,我想我仍然对软件架构师没有任何了解。现就对如何成为一个软件架构师做一番思考,首先,其与高级建筑师差不多,都应该经历过许许多多的工程,具有丰富的工程经验,初学者是无论如何当不了高级架构师的。与那位王平仲大师一样,要成为一个软件架构师,就血药对全局有一个把握,在一些严肃的方面,绝不能贪小便宜,为图省事而减少工程。就好比冯家的屋顶,已完全没有了屋顶所拥有的功能(保温,保湿,坚固,遮风避雨),甚至存在一定的安全隐患。王建筑师果断将原先的屋顶拆除,重新盖了一个房顶,并且在原先的屋顶基础上还加了一个天窗,设计了一个美丽健康的屋顶。做架构师也应如此,将软件中不合理的部分摒弃,放入更适合的却不改变其功能的程序。在其他地方比如尖角处,王建筑师采用了一般做法,仅有几处地方运用设计,使得房屋更易使居住者舒适而安逸的居住。做软件也是如此,在普通的程序中,运用业界公用的技巧技术,视情况对普通的问题做出相对应的美丽的改变。

作为一个软件架构师,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件架构和关键技术决策的人员。当然架构师最重要的是满足顾客的要求,尽量站在用户的立场考虑问题,就想想若是自己使用这个软件,怎么样回使我更舒适,更加满意。同时,一个高级架构师还要拥有“远见”。思考一个大局观,就好比是国家领导人要思考这个国家该如何做才能够更加兴盛。对未来做一个考虑,否则在未来,仅因为一个小小的功能就重构整个大模块,那样就得不偿失了。总而言之,要成为一个软件架构师很困难,要得到这个饭碗很难,在此阶段的学习是为了在后来打个基础,否则工作了5年10年,连一个架构师都分不清楚,那就贻笑大方了。

接下来的语言都是为了凑字数在网上转的,请不要见怪。确定对架构关键的需求,软件架构师将所有的需求进行筛选,在深思熟虑之后做出合适的需求权衡和取舍,最终确定对软件架构其关键作用的子集,控制架构设计时需要详细分析的用例个数,找到架构的重点非功能需求。要根据需求确定架构目标(即是组成设计过程、确定使用范围并确定什么时候该结束的因素)。并且要了解架构的消费者。要确定架构是否会被其他设计师、开发人员、测试人员、业务人员或管理人员使用。确定架构涉众的需求,以让架构更为成功、更有影响力。了解条件限制。由于软件项目的不同、开发组织结构的不同、开发团队情况的不同,软件架构的设计粒度是不一定的。比如,航天航空领域中的软件系统对系统的可靠性等质量属性要求非常高甚至可以认为是荷刻,这种情况下对架构的设计详细程度的要求也会比较高;象大的团队中又有小的团队共同开发,架构的设计粒度到子系统级就足够了,各个小团队精通的技术各不相同,可以让其对子系统采用敏捷开发,对缩短工期、人尽其材有好处;有类似项目经验或项目团队所有成员整体技术水平较高的团队架构粒度可适当粗犷,而分布团队或涉及外包的情况则更强调架构的明确性。考虑具体技术的运用,设计出实际架构。概念性架构所关注的关键设计要素、交互机制、高层设计决策与具体技术无关,而最终的软件架构设计方案必须和具体技术结合,为开发人员提供足够的指导和限制。必须从系统如何规划、如何开发、如何运行等角度揭示软件系统的结构和机制。

posted @ 2017-02-23 19:08  神坑丶不是我  阅读(218)  评论(0编辑  收藏  举报