一、軟體架構師的工作內容:
1. 决定何时以及如何交付软件
2. 确保软件能够满足业务目标
由图可见,软件架构师是集业务、技术、面向用户于一身的。具体职责:
1. 从工程角度定义问题。 关注质量属性和那些影响架构设计方向的约束和特性。
2. 分解系统,分配职责。 模块化分解系统。
3. 关注大局。 人员、过程、业务需求以及其它技术和非技术因素都将影响最后的软件系统。
4. 在质量属性之间做出取舍。 找出备选方案,再与各方一起协商如何取舍最合理。
5. 管理技术债务。 将业务需求与技术决策放在一起考虑。
6. 提升团队的架构能力。 结对设计,写文档,批评,当作社交活动
二、什麼是軟件架構
软件架构:关于如何组织软件 一系列重大设计决策的集合
影响到:
质量属性
开发进度
成本
很多人
其他软件系统
如何做:
Software Architecture in Practice
定义基本结构:
元素是软件的基本组成部分,关系则描述了元素如何协作完成。
三種類型的元素和關係:
模塊結構:
1. 在於設計階段。
2. 即使軟件沒有運行,模塊結構存在於文件系統中。
組件連接器 (C&C):
1. 運行階段。
2. 組件可以創建與其它組件的連接、產生新進程以及實例化新物件。
分配結構
1. 展示模塊元素與組件連接器,以及這些元素與現實的物件元素之間的協同與響應關係。
2. 某個元素運行在客戶端, 還是運行在服務器
动手练习:元素、关系、结构。 元素命名要明确具体、考虑模块结构、运行时结构、分配结构。
推演质量属性和其他系统属性:
质量属性包括:可伸缩性、可用性、可维护性、可测试性等。
三、成为团队的架构师
引入团队的设计讨论
指明团队何时应该进行取舍
撰写设计决策
接受更多架构设计职责
从程序员向架构师转变。 任何人一旦做出了影响软件系统结构的决定,都充当了临时架构师
四、开发出色的软件
架构将大问题分解为容易处理的小问题
软件架构告诉大家如何协同工作
软件架构为讨论复杂设计提供了基本词汇
软件架构关注的不仅仅是功能。 还有成本、约束、进度、风险、团队交付能力、质量属性
软件架构让你避免犯重大错误。 架构师并非无所不知,而架构可以帮助我们发现那些今后可能带来麻烦的地方
架构让软件更灵活
https://githubhot.com/repo/icehoo/me/issues/54
No comments:
Post a Comment