高级系统架构师

天数:3 天   类别:项目管理   课程编号:

NX26962

培训对象:

项目经理、系统架构师、系统分析师、高级程序员、资深开发人员。

课程介绍:

本课程是关于软件架构设计的高级课程,所针对的对象是资深软件系统设计人员。作为一门高级课程,我们并不准备详细讨论某些具体的技术手段,而希望学员在已有工作经验的基础上,站在系统架构师的高度,从思考方法与组织方法两个层面深入研究,进一步提升解决系统问题的能力,提升软件架构设计与项目开发水平。课程主要思想如下:

1,软件开发是建立在架构基础之上的,良好的架构可以帮助项目形成一个有远见的设计。如果没有架构支撑,项目很可能会发展到一个无法预测的方向。当我们面对一个抽象需求的时候,或者思维中只是一个混沌设计想法的时候,如何一步步地让它清晰起来?架构设计的思考过程是什么?设计中有哪些关注点?初步的基线架构是如何构造起来的?一些最重要的设计原则到底是什么?良好架构设计的特征又是什么?在架构设计中我们必须努力避免哪些关键性的缺陷?解决这些问题都需要具备站在更高视角思考问题的能力。

2,模式语言是系统设计人员的重要工具。系统设计人员如果过于关注局部问题,而忽略了元素之间的联系,将难以从整体上选择更好或者更合适的解决方案。相比之下,模式将帮助我们从整体上考虑问题。模式是经过命名的、可重复的、被记录的历史经验。它超越了经验,更有利于提炼、交流以及分享架构层次上的知识,并依赖相同经验的支持而不需要重复劳动。那么,我们如何把模式联系起来作为一个整体从而带来巨大价值?如何通过模式之间的网状联系反映设计本性?如何在系统设计中根据不同模式之间综合、重叠、强化和平衡,使我们重新审视最初的设计直觉?如何通过模式语言全面阐述与系统设计相关的技术主题?如何把组织现有经验整合起来形成组织共同的智力资产?模式、模式语言、模式故事、模式序列到底是什么?它们是怎么发挥作用的?不同层次和粒度的模式语言将贯穿整个课程的始终。

3,当今时代,软件产品的生产方式已经发生了很大的变化。人们注意到了在同一领域中各个产品具有极大的相似性,能不能利用这种相似性,使一个领域平台内的资产在多个不同类型系统中使用从而降低成本呢?这就形成了产品线及其架构设计的工程方法。在这个过程中,特别需要识别领域中的各种通用和变化特征,需要对变化的主题和变化的对象有深刻的理解,需要用“可变性管理”来支持产品线工程过程,这都构成了产品线架构设计中相当有特点的内容。架构师应该仔细研究构建产品线架构中的各种问题,除了需要关注技术层面的问题以外,更需要站在组织层面考虑问题。

4,在今天的企业环境下,变化就意味着胜出。在软件设计中,必须解决“高质量”和“需求变化”是两个重要而又互相矛盾的问题。一方面好的产品必须是高质量的,另一方面,在当今软件生态环境中,变化带来了竞争优势,但需求变更又会影响到软件质量水平。优秀的架构设计就是一种平衡矛盾的过程,通过互相配合而得到最佳(或者说最合适)的解决方案,并以此为基础构建高质量软件。系统架构师需要对软件架构的各种优化原则有透彻的理解和应用经验。

5,课程的授课方式是以案例驱动的,但更确切地说是问题驱动的,案例分析仅仅是营造问题讨论背景的一个手段。我们将深入思考在这个案例背景下,如何进行系统思考,如何系统化考虑各种关系,通过一步一步地展现架构的全貌:从基本的基线架构入手,进而审视系统内部各个节点的问题与解决方法,使系统逐步由混沌走向清晰,保证由此产生的软件系统能够满足功能需求、可操作性及开发质量,从而帮助我们更加全面深入地理解软件系统设计方法论。在课程中请关注案例解决问题的过程,但不是生搬硬套。

本课程是一个系统,其章节安排具有相互支持性,基本的思路是逐步深入形成一种螺旋上升的认识事物过程。在本课程基础上,我们希望学员能根据组织所处领域的不同,通过总结历史形成的经验、教训、方法、模式,进而形成具有本组织领域特色的系统设计范式和模式,并最终形成对本组织有价值的智力资产。

二、课程内容

第一讲系统思考:软件架构设计的方法论

1,软件架构的问题与目标

软件系统架构与架构师

软件架构方法学基础

2,从经济学的角度思考软件架构设计

架构设计对于经济学的贡献

合理划分子系统与功能单元

正确实施分层策略

单元之间的交互策略及接口定义

3,架构的关注点:质量与风险

软件质量模型及其描述

关键质量属性分析

软件架构设计中的风险分析活动

软件的腐化与控制方法

架构的腐化征兆及其重构

4,论软件架构与架构师

什么才是优雅的架构

软件架构师的工作特征

软件架构的规划方法

第二讲模式语言:基于模式语言的架构设计

1,复杂架构设计的模式语言

设计模式起源及内涵

从系统的观点思考设计模式

2,模式语言的表现形式

意图、范畴和对象

模式语言架构

模式的表现

模式语言的实际应用

3,顶层架构设计问题空间

问题域1:从混沌到结构

问题域2:分布式基础设施

问题域3:事件分离和分发

问题域4:接口划分

4,组件设计问题空间

面向对象的设计原则

问题域5:组件划分

问题域6:并发

问题域7:同步

问题域8:对象之间的交互

问题域9:适配与扩展

5,资源应用问题空间

问题域10:资源管理

问题域11:数据库访问

关于模式语言的进一步思考

第三讲案例分析:软件产品线系统设计

1,软件产品线工程概述

软件产品线工程的动机

软件产品线工程框架

面向特征的领域模型

2,案例背景及领域分析

确定领域分析范围

理解流程控制系统

3,构建基线架构

明确架构环境

划分大泥球

职责的层次分解

对象访问接口与封装

确定网络桥接策略

分离用户界面

4,基线架构的细化设计

安排功能分布

支持并发的领域对象访问

解决日志处理的并发性问题

将面向对象与关系型数据库连接起来

领域对象的运行时配置

基线架构总结

5,业务拓扑架构设计

业务拓扑基线

支持软件模型的重新组织

提高访问领域对象的性能

提供组织标准列表

支持重新配置行为策略

实现全局拓扑管理功能

6,业务拓扑的细化设计

业务拓扑的遍历策略

支持业务流扩展

更高效的使用数据库

维护内存中的存储单元数据

业务拓扑的配置方案

接口的详细设计

业务拓扑总结

7,软件产品线系统的开发与组织

开发前的准备工作

在开发过程中的验证与调整

建立合作型组织

8,软件架构分析与评价方法

软件架构的质量评估

ATAM的参与人员

ATAM的结果

ATAM的阶段

9,模式故事背后的故事

10,时代呼唤优秀的软件架构师

讲师简介:

谢老师  教授,大型电子对抗项目负责人、首席系统架构师,组织过多个大型软件项目,GJB 5000A高级咨询顾问,对软件工程管理与过程具有深邃的理论见解和实践知识。

谢老师多年从事软件工程项目以及教学研究,尤其在软件系统架构和需求分析领域,曾作为首席架构师完成大型军用项目并获科技成果奖,作为首席设计师完成石油化工仿真系统,谢老师精通设计与实现,在高速公路管理系统、地铁信息化平台、大型网站、金融信息化、商用软件设计、钢铁信息化等领域担任多家公司顾问,指导开发过程管理、分析和架构设计。

谢老师多年来为企业高端人员讲授的“高级系统架构师”、“高级需求分析师”、“高质量软件项目管理”以及“外包项目管理的理论与实践”等课程,在国内软件企业、军队指挥机构、航空船舶设计研发单位以及金融、保险、证券等行业中有相当大的影响。

相关内训课

华为项目经理的晋级之道_研 赢在源头_成功的产品经理高 课程优化与思维创新(TTT范国玉 用模块化思考系统提升思维能张飙 系统思维方法论课程袁劲松 QSB质量系统基础刘小明