《中科院计算所》由会员分享,可在线阅读,更多相关《中科院计算所(5页珍藏版)》请在金锄头文库上搜索。
1、关于举办“高级系统架构师培训”的通知各有关单位:中国科学院计算技术研究所是国家专门的计算技术研究机构,同时也是中国 信息化建设的重要支撑单位,中科院计算所培训中心是致力于高端IT类人才培 养及企业内训的专业培训机构。中心凭借科学院的强大师资力量,在总结多年大 型软件开发和组织经验的基础上,自主研发出一整套课程体系,其目的是希望能 够切实帮助中国软件企业培养高级软件技术人才,提升整体研发能力,迄今为止 已先后为国家培养了数万名计算机专业人员,并先后为数千家大型国内外企业进 行过专门的定制培训服务。在软件产品的开发组织中,系统架构师是软件项目的总设计师,是软件企业 新产品、新技术体系的构建者,是目
2、前软件开发中急需的高层次技术人才,为建 立符合中国国情的软件开发架构设计体系,培训中心特举办“高级系统架构师 培训班,具体事宜通知如下:一、培训对象项目经理、系统架构师、系统分析师、高级程序员、资深开发人员。二、学员基础1、从事过任何一种平台或嵌入式的项目开发、设计;2、系统地学习过OOP和OOD知识的人员;3、要求熟悉面向对象相关知识。三、师资由业界知名的软件架构师亲自授课:谢新华 培训中心副校长、教授,大型电子对抗项目首席系统架构师杨 德 培训中心高级讲师,军方信息化顾问李云培训中心高级讲师,国家商务部系统架构师四、培训要点在软件组织中,高水平架构师队伍的作用举足轻重,本课程针对企业开发最
3、 关注的问题深入研讨,抓住质量和投入产出比这两个企业的核心价值,讨论软件 架构组织与设计如何使这些核心价值得以实现,其主要的思想如下:1,软件架构设计与软件工程过程具有密切的关系。通过良好的架构设计, 帮助项目在规范性、一致性与可靠性的过程中加入敏捷元素,以避免需求变更的 风险,提升软件系统的品质,是目前软件架构设计思考的热点问题。我们始终需 要问自己的问题是:在规范性与敏捷性两种方法论的混合模型下,如何实现架构 驱动?为此,我们必须研究不同过程下的架构设计特点,通过综合分析寻求更加 完善的设计方法。2,在今天的企业环境下,变化就意味着胜出,因此软件开发中的需求变更 不可避免,而需求变更必然造
4、成设计调整进而使总体投入增加。统计表明,造成 软件项目失败最重要的原因是需求变更,所以我们必须研究架构设计如何更好的 适应变更,通过良好的设计确保变更、维护与升级的成本下降,应用重构技术逐 步优化架构是一个重要的过程。但是,没有原则就没有方向,没有模式就没有方 法,所以优化的过程需要一系列的原则和模式来支撑。作为系统架构师需要对软 件架构的各种优化原则有透彻的理解。3,随着经济全球化进程的不断推进,要增加软件产品的国际竞争力,软件 质量作为企业发展的战略问题变得越来越重要,所以,如何设计高质量的软件产 品,成为软件架构设计的重要主题,质量属性对于设计策略有重大影响。为了解 决这个课题,架构师需
5、要站在系统的角度思考问题,把人、组织、技术以及用户 放到一个统一体中,以统一协调的方式寻求最佳配合,使软件架构设计达到一个 更高的境界。4, 为了创造高的投资回报率,产品线架构的开发与应用是一个重要的方法。 产品线集中体现了软件复用的思想。但是经验表明,单靠技术方法并不能保证产 品线的成功,其中经济、组织、管理和过程在建立和维护产品线中起到了关键作 用。软件架构并不完全是一个纯技术范畴的问题,我们应该站在更广阔的视角, 研究构建软件产品线架构的各种问题,这就要求架构师与普通开发人员有完全不 同的思维方式。5, 为了延长软件架构的生命周期,提高已有架构资产的利用率,软件架构 的恢复已经成为业内的
6、关注点,我们必须研究如何条理化的组织架构恢复工作, 使软件架构恢复和优化重构成为现实可能。对上述一系列问题的深入思考,成为现代软件架构设计的核心思维。这需要 软件架构师具有很高的水平,需要站在全局的的视角想问题,思维层次必须高于 普通开发人员纯技术实现的范畴,才能使设计工作变得更有主动性和想象力。这 一整套思想的实现,也为高质量软件系统提供了坚实的基础。本课程并不准备泛泛讨论软件架构设计一般方法与过程,而是针对上述核心 问题和关键思考点,从系统的角度寻找相应的对策和解决方案。通过本课程学习, 希望学员在今后架构设计的实践中,在完成必须的功能性需求和性能指标的基础 上,进一步优化架构设计,确保以
7、低的开发成本达到高的质量要求,从而大大提 高设计水平,为企业创造更高的可度量价值。五、培训内容(一)从系统工程的角度构建架构1)软件架构的定义与问题2)规范性软件开发过程与软件架构3)面向过程的自顶向下结构化分解4)软件架构的设计过程5)从系统工程的角度分析和设计架构应用系统工程帮助需求分配组织复杂软硬件系统的需求6)迭代的建立架构基线建立弹性软件架构建立架构基线的步骤从质量属性应对策略的视角优化架构从模块划分的视角优化架构从共享分层结构的视角优化架构从软件复用与构件化的视角优化架构(二)软件架构的重构与优化1)架构重构优化与敏捷过程2)面向对象设计的基本原则3)单一职责原则(SRP)职责是变
8、化的一个轴线分离耦合的职责4)开放一封闭原则(OCP) 实现OCP的关键是抽象 预测变化和“贴切的”结构5)依赖倒置原则(DIP)对传统层次结构的倒置依赖倒置原则的设计方法6)接口隔离原则(ISP)接口有可能被污染分离客户就是分离接口7)包的设计与重构原则进行包设计需要考虑的若干问题 包的内聚性原则包的耦合性原则(ADP) 包的稳定依赖原则(SDO) 包的稳定抽象原则(SAP)8)软件开发过程中规范与敏捷的融合9)软件架构优化中的重构技术利用目标最小化准则发现设计重点 软件的腐化与控制方法发现架构的问题及其改进架构、框架与业务层面的复用(三)基于质量属性的架构策略1)质量度量模型与质量属性场景
9、 三层次软件质量度量模型 软件架构质量属性的场景2)应对质量属性的架构设计过程 以核心功能为主进行架构设计 以质量属性为依据进行重构和优化 增量式的完善架构设计以测试驱动架构设计3)可靠性质量解决方案4)基于高可靠性的架构设计 进程间提升可靠性的方法 保证可靠性的分层结构5)基于高可集成性的架构设计结构化模型的架构模式子系统管理部分的模块子系统应用模块6)架构评审与决策(四)模型驱动的架构设计与恢复1)从问题域到业务架构概念问题分析与业务概念建立系统级上下文关系业务架构概念的建立2)利用模式重构问题域与架构3)从问题域到用例模型4)产品用例的细化分析5)概念性架构设计及模型6)行为模型与GRA
10、SP设计模式7)设计模型和实现模型8)封装类或者接口的变化利用外观模式封装类的变化利用适配器模式封装接口变化9)封装业务单元的变化利用模板方法封装业务单元变化 利用工厂模式封装对象变化利用桥接模式封装业务单元变化利用装饰器模式封装核心业务单元10)利用观察者模式处理业务单元的变化11)实现后期装配的通用框架12)代理模式在架构设计中的应用13)软件架构的恢复架构恢复层面的重构技术反向工程和正向工程架构和设计恢复架构恢复阶段的设计重构(五)软件产品线架构组织与原则1)产品线架构的组织方法2)产品线架构的构思与预见形成并统一框架构思阐明风险权衡后果预测产品线架构方向的改变在过程中评估风险与机会3)
11、产品线开发中的节奏与协作保证节拍、过程与进展通过节奏协调明确的活动4)简化架构保持平衡从组织和架构两方面思考简化明确最小需求构建共享核心元素(六)业务敏捷性与面向服务的架构1)从业务的角度思考SOA的应用竞争环境中的企业变革软件即是服务带来的挑战SOA的本质是实现业务敏捷SOA 一些概念的澄清2)SOA项目的路线图与规划3)架构师在SOA设计中需要考虑的问题全面考虑SOA各方面的特征建立服务的基础设施设计企业服务总线建立SOA企业软件模型4)SOA在信息领域中的应用5)SOA与业务流程管理业务流程管理系统组合BPM、SOA与 Web服务编制与编排规范6)SOA的业务效益与构建7)软件架构挖掘(七)大型软件架构设计案例分析1)案例背景介绍和项目小组角色区分2)业务建模和需求分析实战练习和要点分析3)高层架构的选择和设计案例分析4)详细架构设计中的主要矛盾及案例分析5)进度控制和风险管理案例分析