资源描述
One Column Text Page,第二章 软件架构师,东北大学信息学院,人工智能与机器人研究所,贾 同,2.1,软件架构师的定义、分类和职责,软件架构代表了一个系统的组织结构,这包括将系统分解为不同的部分、界定它们之间的连接、确定它们之间的交换机制,并且为后续的设计提供指导性的原则,-UML,原创者,James,软件架构表述了一个或一系列组织结构。这包括了软件构件、这些构件的外部可见特征,以及这些构件之间的关系,-,架构的实践作者:,Bass Len,2.1,软件架构师的定义、分类和职责,软件系统架构是根据具有参考意义的实践而定义出来的。主要表述了一个系统的基本组织结构、基本组成构件和相互的关系,以及构件于外部环境间的关系。同时,软件系统架构为后续的设计和架构演化提供了指导性原则,-IEEE 2004,年定义,2.1,软件架构师的定义、分类和职责,解决方案架构师,系统架构师,软件架构师,企业架构师,总工,首席架构师,微软架构师、,Java,架构师、,.NET,架构师,。,2.1,软件架构师的定义、分类和职责,在产品研发相关的业务流程中,一般会有以下四个最重要的流程和一个可选流程:,面向客户的流程,仿真决策和计划流程,产品线开发流程,(,可选,),产品开发流程,人员与技术管理流程,2.1,软件架构师的定义、分类和职责,架构师的角色和职责,桥梁一 面向客户的流程与产品开发流程,桥梁二 方针决策和计划流程与产品开发流程,桥梁三 产品线开发流程与产品开发流程,桥梁四 人员与技术管理流程与产品开发流程,2.2,软件架构师应具备的素质,在我们日常的软件工程活动中,软件架构师是一种越来越稀缺的资源。,-Eberhardt Rechtin 1997,年,架构师综合成长模型:,单一的技术经验,广泛的技术经验,商业经验、流程经验,社会经验,2.2,软件架构师应具备的素质,架构师技术成长模型,技术专家,多项技术专家,某方面的架构师,软件系统架构师,2.2,软件架构师应具备的素质,架构师能力,专业技能,商业经验,沟通技能,平衡决策能力,多任务处理能力,规划能力,驱动能力,2.3,架构师与职能经理,&,开发人员,架构师与职能经理的区别:,职责划分,个性特征,问题解决方案,应对变革,2.3,架构师与职能经理,&,开发人员,架构师与开发人员的区别,概念构建,架构构建,设计实施,2.4,架构师面对的问题,(1),商业问题,问题分析模型,业务容错模型,责任关系模型,企业财务模型,商业计划模型,商业交易模型,业务分解模型,2.4,架构师面对的问题,(2),架构问题,架构模式,一个架构模式表达了一个软件系统基本的组织结构方式或系统构成方式。该架构模式帮助界定了子系统的组成,指定了各子系统的职责,并且包括了组织各子系统间关联关系的规则或指南。,2.4,架构师面对的问题,(2),架构问题,客户端,-,服务器架构风格,分布式计算架构风格,对等计算架构风格,黑板架构风格,隐式调用架构风格,整体化架构风格,三层架构风格,面向服务的架构风格,(SOA,SCA),2.4,架构师面对的问题,(3),设计问题,设计模式,一个,设计模式,提供了构造和优化一个子系统内部结构或一个构件内部结构的,参考框架,。同时也是一个构造和优化构件间关系的,参考框架,。设计模式表述了在一个特定的场景下,为了解决设计时反复出现的有关构件设计和构件间交互这些设计问题而可以参考的通用,经验实践,。,2.4,架构师面对的问题,(3),设计问题,分布式基础框架模式,应用基础框架模式,构件组合模式,并发问题设计模式,同步问题设计模式,事件处理设计模式,构件交互设计模式,行业设计模式,2.4,架构师面对的问题,(4),编码实施问题,IDIOM,设计模式,一个,IDIOM,设计模式是与某种编程语言密切结合的一种低层次的设计模式。一个,IDIOM,可以帮助我们实现一个构件内特定的某方面的功能,或者帮助实现构件间特定的关系。当然,这是由于那种编程语言具有的特性所决定的这种能力。,2.4,架构师面对的问题,(4),编码实施问题,内存管理与参数,对象创建于初始化,枚举与集合,接口应用,异常处理,并发处理,类型安全,性能处理,文档和注释,2.5,工作中的沟通,挑衅式的沟通方式,适应式的沟通方式,领导式的沟通方式,共情式的沟通方式,面谈式的沟通方式,诱导模拟式的沟通方式,聆听式的沟通方式,小结,2.1,软件架构师的定义、分类和职责,2.2,软件架构师应具备的素质,2.3,架构师与职能经理,&,开发人员,2.4,架构师面对的,4,个问题,2.5,工作中的沟通,思考问题,
展开阅读全文