转自:江南白衣
下面几个What的问题是架构师的入门Question。
1.什么是架构?
如果自问自答,这是个相当鸡肋的问题。看看书里的答案可能有点收获。
架构定义了系统元素的结构与行为,关注最重要的元素,记录决策原理,受涉众利益与环境的影响。
架构不仅是结构,也不是企业架构,系统架构,信息架构,硬件架构.....
架构设计也不是面向对象分析/设计,虽然架构设计基于面向对象设计,但补充了面向对象设计里没有关注的视点。
2.架构有什么用途?
人类所有行为都是目的驱动的,不同目的下架构的过程也会不同,继续看书里的答案,经常的用途有:
培训与沟通
满足系统的质量属性,与涉众沟通达成一致的目标
有效管理复杂性
支持开发日程安排、工作分配、成本分析
3.各个流派用什么视图来表达架构?
最经典的RUP 4+1,ISO/ITU-T联合制定的RM-ODP,Hofmeister在《Applied Software Architecture》中使用的西门子视图,《Documenting Software Architectures》使用的方法(后两者属于学术流派)等。
4.架构师在软件生命周期中的工作和角色?
架构师的工作不只是设计(虽然最重要的的确如是),在分析、设计、实现、测试、维护、技术风险管理、问题域分析、团队技术领导与沟通者等流程里架构师都有自己的角色要担当。
5..架构师的技能?
最好总结一下自己,在看看软件架构师需要那些核心技能
答案:
1.IBM 开发者中文站上有四篇不错的入门文章:
一、什么是软件架构?
二、软件构架师的特点
三、软件架构的过程
四、进行软件架构设计的益处
2. 另外所有和架构沾点边的书都会忍不住浪费篇幅去讨论这些问题。
不过这些答案从字面上看都是大家熟悉的东西,很容易泛泛的看完了,过一阵子脑子里又十室九空,最好是能够看进去产出化学作用,再辛苦一点把它们总结成自己的文档。
接下来? 可以开始一些How的问题了.....