11
• 架构师应当为项目相关的不同角色而设计: – 架构师要为客户负责,满足他们的业务目标和约束条件。 – 架构师要为用户负责,满足他们关心的功能需求和运行期质 量属性。 – 架构师必须顾及处于协作分工“下游”的开发人员。 – 架构师必须考虑“周边”的管理人员,为他们进行分工管理 、协调控制和评估监控等工作提供清晰的基础。
• 三、写作、沟通表达、培训。
24
• 角色 • 软件架构师Software Architect • 定义 • 主导系统全局分析设计和实施、负责软件构架和关键技术决策
的角色
25
• 职责 – 领导与协调整个项目中的技术活动(分析、设计和实施等) – 推动主要的技术决策,并最终表达为软件构架 – 确定和文档化系统的相对构架而言意义重大的方面,包括系统的 需求、设计、实施和部署等“视图” – 确定设计元素的分组以及这些主要分组之间的接口 – 为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风 险,并保证相关决定被有效的传达和贯彻 – 理解、评价并接收系统需求 – 评价和确认软件架构的实现
框架和业务框架) • 二、对系统框架相关技术和业务进行培训,指导开发人员开发。
并解决系统开发、运行中出现的各种问题。
• 系统架构师的目的: • 对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级
的把握。
• 系统架构师能力要求:
• 一、系统架构相关的知识和经验。
• 二、很强的自学能力、分析能力、解决问题的能力。
5
• 软件架构要层次化并隔离关注点 – 复杂性是层次化的。 --《人月神话》 – 好的架构设计必须把变化点错落有致地封装到软件系统的 不同部分(即关注点分离)。 – 通过关注点分离,达到“系统中的一部分发生了变化,不 会影响其他部分”的目标。