课程名称:软件架构的美
课程规划要点
1. 2. 3.
软件工程理论客观上可以分解为:结构理论、过程理论、管理理论,软件从业人员需要理解学习软件工程的脉络。
了解软件架构发展的驱动力,是学习软件架构的动力,知道软件架构的历史可以预知软件架构的将来。
从宏观上了解软件架构的大气;从微观上理解软件架构的精致。
听众应该具备的技能
1. 具有1年以上的开发经验,最好具有一定的设计经历。 2. 角色可以是开发人员、架构师或项目经理。
期望达到的效果
1. 建立正确的软件架构观念,不盲从也不冷漠。
2. 形成相对完整的软件架构视图,为自己的架构技能学习提供借鉴。 3. 学会欣赏和创新架构,在软件工作中可以找到更多快乐。
培训课程目标:
1. 剖析软件工程领域的基本概念,让大家从实干中抬起头来看看理论的震撼力。 2. 简单浏览软件架构的发展历史(部分),寻找软件架构发展的驱动力。 3. 解剖软件架构,从架构的宏观到架构的微观。
进度安排:
第一节:常见软件工程概念(1小时) ? ? ? ? ? ?
软件及软件质量 软件项目及软件项目质量
拆分软件架构理论、工程过程理论、项目管理理论 软件架构对软件质量的影响. 工程过程理论对软件质量的影响. 项目管理理论对软件质量的影响.
第二节:软件架构的驱动力(1小时) ? ? ? ? ?
第三节:从架构历史理解架构现实(2小时)
驱动力之一:面向机器的表达方法过渡到面向人类的表达方法,架构更加人性化。 驱动力之二:应用在复杂化,架构用来化解复杂度。 驱动力之三:成本是主题,架构是降低成本的工具。 驱动力之四:应变能力也是竞争力,用架构提升应变能力。
驱动力之五:软件的创造性特征,可以将软件打造成一个艺术品,看上去更美。
? 结构化编程的思想,一直都没有过时,只不过作用范围在缩小。
? ? ? ? ?
面向对象的编程,画出了新旧程序员的界限,理论很标准,但是现实很难掌握。 设计模式真的很经典,但已经不需要所有人掌握,逐渐变成少数人的游戏。 软件架构技术,不是纯理论,都是现实中的经验总结,这几年发展很快。 软件框架,是软件架构的一种实现形式,每个项目都要拥有。
软件开发平台,是软件架构沉淀的必然归属,也是企业架构陷入落后的开始。
第四节:从宏观解剖软件架构(2小时) ? ? ? ? ? ? ?
第五节:往微观处解剖软件架构(2小时) ? ? ? ? ?
从编码规范中看架构思想
了解经典的OO建模理论,推动OO建模的标准化。 浏览经典设计模式,理解流行体系架构。 ORMapping的精确化定义。 Web页面技术,也是值得研究的。 RUP中的4+1模型,树立正确的架构概念
经典的MVC,从来没有过时,从j2ee webMVC架构理解web应用中MVC特色。 ORMapping,其发展的根源是解决OO与关系数据库的矛盾,其工具的成熟也经历了一IOC,系统内部的松散耦合技术,划时代
AOP,另类架构技术,在某些时候真的很好,不过不是每个人都需要。 SOA,现在很热闹,它解决的是系统之间的问题,不是系统内问题。 引擎技术是软件平台的组成部分:中间件、工作流、报表、消息等等。
个过程。