软件架构
软件过程
软件开发
软件测试
数据库
信息安全
操作系统
项目管理
您的位置:首页 > 企业培训 > 软件架构分析与设计



    课程名称:软件金领面向对象开发专题系列之软件构架分析与设计
    课程描述:
    软件的质量本质上是由其构架所决定的,构架控制着软件的全局,包含软件所有最重要方面的重大决定;而通常情况下,开发团队最缺的就是称职的软件架构师,因而造成系统缺乏整体的设计和控制,使得软件产品的结构混乱(缺乏统一和一致设计),实施风格各异,最终的交付的是一盘散沙的产品;显然成为一个架构师是极其困难的事,这将是一个长期的成长过程;然而通过系统的培训来减缓学习曲线,帮助学员站在较高的起点来了解构架分析与设计的全貌,顺利地入门,和少走弯路,则是完全可能和有必要的。
    本课程包括软件构架分析与设计、构架开发实践两个部分。
    本课程介绍了软件构架的基本理论和实际应用技术,涵盖了构架分析到构架设计的各个步骤。其中包括4+1视图,构架描述和构架文档的作用,如何进行构架分析、确定构架分析机制,如何从分析机制对应到设计机制和实施机制,构架模式的应用,层次模型的开发,包的设计原则、类的设计原则,以及构架模式、J2EE/dot.Net构架框架等。
    为了让学员更深入地掌握相关内容,课程安排了围绕一个简单而完整的软件项目实例的构架建模实践习作。

    课程目的:
    使学员能:基本掌握UP的分析设计门类中的构架分析设计部分,理解4+1视图、构架建模的理论知识,掌握软件构架文档、设计模型、构架机制和包设计原则的应用的基本内容和方法,能够初步按照RUP进行构架开发。

    课程对象:
    该课程主要面向架构师(首要对象)、其他开发人员和项目经理。
    学员基础 要求学员具备一定的OO基础,具有一定的面向对象的分析、设计经验更佳;
    要求学员有使用任何一种面向对象的语言的编程基础;
    培训学员需要具备一定的UML基础知识,对UML的各种概念有一定的了解,知道各种模型图的大致概念和意思。
    最好接受过《面向对象分析与设计》或类似课程的培训。

    课程任务
    深入理解构架的重要性;
    系统地掌握构架开发的技术和方法;
    掌握构架分析的步骤和方法;
    理解构架模式,及其在构架分析、设计中的应用理解软件构架分析的基本概念,理解软件需求特别是非功能需求对构架设计的影响,了解分析机制、设计机制等贯穿构架的重要概念;
    了解软件构架设计的基本概念,理解面向对象之包的设计原则及其在构架设计中的应用;
    了解软件构架的4+1视图概念,熟悉进程视图与进程/线程设计的途径,掌握构件视图和部署视图的建模方法;
    了解面向对象的持久化概念,熟悉数据建模的方法,了解对象—关系映射(Object-Relation Mapping)的基本内容

    授课方式:
    整个课程围绕一个简单的软件项目实例来展开,通过讲解和指导学员完成一系列练习,让学员对构架分析和构架设计的方法和过程等产生较深刻的感性认识;通过答疑和习作评点,使学员进一步深入理解软件构架的理论和方法,并纠正一些错误或模糊的认识。
    课程中还穿插一些讲师与学员的自由交流活动,解答与探讨实际项目中的各类问题。

Day 1

 

实例项目展示

展示以往成功实施UML&OOAD与UP的项目实例,包括Rose模型、RUP工件、项目目录结构等

9:00 – 9:30

UP统一软件过程概论

全面说明UP统一软件过程的内容,包括角色(分析、设计、测试、管理、支持人员),工件(前景文档、构架文档等),和活动(业务、需求等九大科目);

9:30 – 10:50

需求开发与UML用例建模

说明用例的本质是系统对用户的契约,详细讲解用例的组成元素,包括用例目标、执行者(Actor)、前置条件、交互步骤、主事件流、备选事件流、和后置条件等;讲解用例模型,说明用例之间的包含、扩展与泛化关系,并阐释分析人员如何正确使用用例技术来捕获客户的功能需求;说明使用活动图/序列图来描述用例的方法;简要介绍测试用例,及其与用例间的关系

11:00 – 12:00

点评与现场自由交流

点评学员上一次建模实践的习作成果;解答学员的各类疑问,探讨实际项目中的各类问题

13:30 – 14:00

UML行为建模

说明类图在不同层面(分析模型、设计模型、实施模型)的作用和意义;讲解分析类的概念,说明边界类、实体类和控制类的划分与职责分配方法;讲解对象、消息、序列图、协作图的概念和基本要素;讲解序列图与协作图各自在用例分析中的作用和特点;讲解序列图、协作图用于表达用例实现的途径
讲解用例设计的概念与途径;说明如何将分析类组织成分析包和服务包;讲解对象内部行为建模,包括状态图等的应用;

14:00 – 15:30

UML用例分析习作

依照项目实例已建立的需求模型,讲解进行用例分析的过程;指导学员识别边界类、控制类和实体类,并分配相关的职责,最终使用序列图或协作图来描述基于这些分析类来实现用例的步骤;

15:40 – 17:00

Day 2

 

软件构架与OOAD

讲解为什么需要软件构架,阐述构架基线的概念,并分析风险驱动的迭代开发模式是如何依赖于构架基线的;阐述软件构架是什么,理清对构架的认识误区,说明构架包含结构和行为两个范畴;介绍UP的分析设计流程,说明构架分析、设计在其中的关键位置

9:00 – 10:50

软件构架分析-PartI

阐述4+1视图的概念,说明如何开发软件构架概貌;讲解如何利用可用资产(例如第三方产品或构件等)来加速软件构架的搭建;说明如何开发初始的构架层

11:00 – 12:00

点评与现场自由交流

解答学员的各类疑问,探讨实际项目中的各类问题

13:30 – 14:00

构架模式与框架

讲解构架模式和框架,以及如何应用构架模式与框架来创建健壮的构架;重点讲述层次模式,深入探讨应用层次模式来帮助开发系统初始的构架层

14:00 – 15:00

软件构架分析-PartII

分析关键的系统概念在构架分析中的核心作用;并给出解决方案中技术选择的考察因素;讲解分析机制,说明使用分析机制来修饰非功能需求的途径;

15:00 – 16:00

构架分析习作

指导学员确定系统主要的分析机制,为主要的分析类修饰分析机制;并开发系统初始的构架层

16:10 – 17:00

Day 3

 

软件构架设计

阐述软件构架设计及其在分析设计过程中的地位;讲解设计与实施机制,说明它们如何帮助将分析类映射到设计元素;给出解决方案中如何进行技术选择的指南(包括Swing/JDBC/J2EE等实例);讲解类与子系统的设计技巧;阐述构架设计中如何识别和利用复用机会;说明如何设计模型的组织结构

9:00 – 10:30

面向对象设计原则

讲解面向对象设计中的最重要的原则,包括类的设计原则和包的设计原则;结合实例阐述在实际设计特别时构架设计中应用设计原则的方法、途径

10:40 – 12:00

点评与现场自由交流

点评学员上一次建模实践的习作成果;解答学员的各类疑问,探讨实际项目中的各类问题

13:30 – 14:00

J2EE与dot.Net构架框架

介绍当前业务密集型软件系统的主流构架应用框架;讲解J2EE与dot.Net如何帮助我们更加高效地开发出健壮、有弹性的系统

14:00 –15:00

构架设计习作

指导学员将系统主要的分析机制对应到设计和实施机制;精化系统初始的构架层,以体现设计、实施机制的实现,以及在复用策略的指导下引入第三方构件等;具体设计一些包的接口

15:10 – 17:00

Day 4

 

软件构架文档与4+1视图

进一步深入阐述4+1视图的概念,讲解RUP的软件构架文档;讲解进程视图、实施视图和部署视图的作用和意义;结合一个实例说明软件构架文档的内容,并给出编写软件构架文档,和用它来指导目标系统开发的指南

9:00 – 10:50

获取团队协作成功的关键

分析团队协作与个人独立开发的根本差异;讲述保持概念的完整性和一致性对团队协作的极端重要性;介绍双向工程的概念,说明如何保证项目设计与实施的一致性

11:00 – 12:00

现场自由交流

解答学员的各类疑问,探讨实际项目中的各类问题

13:30 – 14:00

项目开发目录结构

讲解如何定义项目开发目录结构,以支持团队的协作开发;说明目录结构的设计原则和方法

14:00 –15:00

对象持久化与数据建模

阐述对象持久化的概念;描述持久化机制,包括分析、设计和实施机制;讲解对业务密集系统意义重大的数据建模;阐述Object-Relationship Mapping对象关系映射的概念,并结合实例说明实现对象关系映射的途径和方法

15:10 –16:30

总结

对4天的课程进行总结

16:40 – 17:00