koko0303 发表于 2011-5-30 16:02:00

面向对象软件架构设计实践

 
<p align="left">在软件开发项目中,系统架构师是软件项目的总设计师,是软件企业新产品、新技术体系的构建者,是目前软件开发中急需的高层次技术人才,为建立符合中国国情的软件开发架构设计体系,结合我国现有的软件企业开发环境,同时针对软件需求的多种场景进行综合分析,参照国际上规范的软件过程模型,中软培训中心(原信息产业部计算机技术培训中心)特此开展高级系统架构系列培训,以提高企业在软件开发中的系统架构设计能力、使其达到高级系统架构师的基本要求。</p>
<p>&nbsp;</p>
<p>&nbsp; </p>
<p align="left">l <b>培训对象</b></p>
<p align="left">开发团队中的设计人员、系统分析人员,开发、测试主管或项目经理,以及有望或有志成长为以上角色的技术人员。</p>
<p align="left"><b>&nbsp;</b></p>
<p align="left">l <b>培训目标</b></p>
<p align="left">培训内容从实用性、规范性和系统性出发,通过培训使学员掌握软件架构的基础知识、设计原则、设计模式、设计方法,熟悉主流架构技术,了解规范的软件项目管理流程,并且通过一些典型的案例,揉合讲师的大型项目经验,以项目过程中的问题带动原理的描述,从理论和实际的结合上有重点的讲清问题,使其达到高级系统架构师的基本要求。</p>&nbsp;
<p align="left"><b>&nbsp;</b></p>
<p align="left"><b>一、</b><b> </b><b>培训大纲</b></p>
<p align="left"><b>第一单元:软件生命周期与软件架构介绍</b></p>
<p align="left">一、<b>软件架构介绍</b></p>
<p align="left">1. IT行业的人才结构与软件架构师的定位</p>
<p align="left">2. 软件架构师应掌握的知识体系</p>
<p align="left">3. 软件架构设计的特点、层次、分类</p>
<p align="left">4. 软件架构的主要理论、方向和趋势</p>
<p align="left">5. 软件工厂,实现软件开发的产业化 </p>
<p align="left">二、<b>软件生命周期进程模型介绍</b></p>
<p align="left">1. RUP与XP</p>
<p align="left">2. Agile与CMMI</p>
<p align="left">3. MSF<b></b></p>
<p align="left">&nbsp;</p>
<p align="left"><b>第二单元:技术架构视图─面向对象程序设计原则与模式及方法论</b></p>
<p align="left">一、<b>衡量软件系统质量的标准</b></p>
<p align="left">1. 软件系统开始变坏的表现:硬化、脆弱、绑死、胶着。</p>
<p align="left">2. 软件系统关键的质量特性:正确性、健壮性、可扩展性、可复用性、兼容、可移植性、高效性、timeliness、economy and functionality</p>
<p align="left">二、<b>面向对象设计的基本原则</b></p>
<p align="left">1. 类的设计原则:<br/>开闭原则、依赖倒置原则、Liskov替换原则、单一职责原则、接口分离原则、组合复用原则、所知最少原则<br/>例:会议管理系统等、API函数的启示等<br/><br/><br/></p>
<p align="left">2. 包内聚原则:发布与复用等价原则、共同封闭原则、共同复用原则</p>
<p align="left">3. 包耦合原则:无循环的依赖原则、稳定的依赖原则、稳定的抽象</p>
<p align="left">三、<b>用GRASP模式指导架构设计:</b></p>
<p align="left">1. GRASP架构模式:信息专家、创建者、高内聚、低耦合、控制者、多态、间接、纯虚构、保护变化</p>
<p align="left">2. 典型案例分析:<br/>违反信息专家模式案例分析<br/>应用信息专家模式案例分析<br/>应用GRASP模式精化架构设计案例分析<b></b></p>
<p align="left">四、<b>软件架构设计的关键因素</b></p>
<p align="left">1. 什么是架构, 它和系统是如何关联的。</p>
<p align="left">2. 如何获得可维护性、可扩展性、可重用性、互操作性等。</p>
<p align="left">3. 在系统中如何组织组件(Component) 。</p>
<p align="left">4. 如何组织组件(Component)的内部。</p>
<p align="left">5. 如何保持平台相关的细节和应用的分离。</p>
<p align="left">6. 如何应用封装(encapsulation)、抽象(abstraction)和委派(delegation)的原则。</p>
<p align="left">7. 如何应用设计模式来实现好的结构。</p>
<p align="left">五、<b>案例分析:</b></p>
<p align="left">模板容器、Movie查询等。<br/><br/><br/></p>
<p align="left"><b>第三单元:用UML辅助系统分析与设计</b></p>
<p align="left">一、<b>UML</b><b>中的常见疑难问题辨析 </b></p>
<p align="left">1. 用例图</p>
<p align="left">1) 参与者建模中的常见问题。</p>
<p align="left">2) 用例建模中的常见问题。</p>
<p align="left">3) UaseCase的本质讨论。</p>
<p align="left">2. 类设计</p>
<p align="left">1) UML中关系的辨析:</p>
<p align="left">依赖关系、关联关系辨析;聚合,组合辨析。</p>
<p align="left">2) 类设计中的常见问题:</p>
<p align="left">1) 一些常见但易混淆的类关系图;</p>
<p align="left">2)熟悉类的自关联形式;使用关联类;</p>
<p align="left">3)一些易混淆的重数表示方法</p>
<p align="left">4) 建模为对象与建模为属性 / 建模为方法与建模为对象的辨析。</p>
<p align="left">3. 其它辨析</p>
<p align="left">1) 包与组件。</p>
<p align="left">2) 扩展基类与覆盖基类等;自关联、关联多重性、关联角色名辨析。</p>
<p align="left">3) 消除多重继承的常用手段。</p>
<p align="left">二、<b>借鉴RUP的设计过程。</b></p>
<p align="left">1. 全局分析:</p>
<p align="left">选用架构模式;识别关键抽象;标识分析机制;常见的分析机制</p>
<p align="left">2. 局部分析:</p>
<p align="left">提取分析类:<br/>分析类的类型划分:边界类、实体类、控制类,分析类在模型中的位置,边界类的复用,控制类的变通。<br/>分析动态场景:<br/>消息与责任;事件序列在边界、实体及控制类间的原则;控制类在交互图中的表现特征;交互图的正确性。<br/>整理分析类:<br/>分析类的责任和关联关系;动态与静态的关系;确定类的责任;设计类和子系统接口。<b></b></p>
<p align="left">三、<b>实践:<br/></b>投递系统分析设计。</p>
<p align="left">&nbsp;</p>
<p align="left"><b>第四单元:<a name="OLE_LINK1"></a><a name="OLE_LINK2">设计模式与</a>软件设计思想</b></p>
<p align="left">一、<b>GOF</b><b>设计模式。</b></p>
<p align="left">1. 使用GOF设计模式,借鉴前人的经验。</p>
<p align="left">2. 分析创建型模式:<br/>单例模式(Singleton)、工厂模式、抽象工厂模式(Abstractfactory)</p>
<p align="left">3. 分析结构型模式:<br/>桥梁模式(Bridge)、装饰模式(Decorator)、适配器模式(Adapter)、代理模式(Proxy)、组合模式(Composite)</p>
<p align="left">4. 分析行为型模式:<br/>命令模式(Command )、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、访问者模式(Template Method)</p>
<p align="left">二、<b>设计模式深入讨论:</b></p>
<p align="left">1. 设计模式的本质:<br/>隔离变化点;间接;透明;局部双向依赖;逻辑与功能;用接口抹平差异、延迟调用。</p>
<p align="left">2. 模式的推演:<br/>掌握模式的本质,而非形式。</p>
<p align="left">3. 设计模式的高级运用:<br/>高手的选择;神似而非形似;一切以工程实际为标准;可以牺牲掉的特征;简化的模式;防止滥用;自创的模式。</p>
<p align="left">三、<b>常用的软件架构风格及适用情况分析:</b></p>
<p align="left">1. 系统软件<br/>分层(Layer)、管道和过滤器(Pipes and Filters)、黑板(Blackboard) </p>
<p align="left">2. 分布式软件<br/>经纪人(Broker) 、客户/服务器(Client/Server)、点对点(Peer to Peer)</p>
<p align="left">3. 交互软件<br/>模型-视图-控制器(Model-View-Controller)、显示-抽象-控制(Presentation-Abstraction-COntrol)</p>
<p align="left">四、<b>SOA</b><b>的设计思想:</b></p>
<p align="left">1. SOA的概念。</p>
<p align="left">2. SOA的设计目标<br/>异构性Heterogeneity;可伸缩性Scalability;适用性Availability;分布式Distribution; .机动性Flexibility;可见性</p>
<p align="left">五、<b>典型案例分析:<br/></b>媒体显示、数据采集系统、编辑器、文件解析器。</p>
<p align="left">&nbsp;</p>
<p align="left"><b>第五单元:架构设计实践</b></p>
<p align="left"><b>一、</b><b> </b><b>静态设计:</b></p>
<p align="left">1. 按层+高内聚低耦合的原则进行模块划分<br/>高内聚原则;按功能分解;按业务进行分解;以数据转换为中心分解;实际运用中的折中。</p>
<p align="left">2. 划分层次<br/>将模块划入对应的层;分层与分区;逻辑模块与实体组件的对应关系。</p>
<p align="left">3. 为模块进行职责分配</p>
<p align="left">隔离关注面:低耦合原则;适当采用设计模式;</p>
<p align="left">用设计模式优化核心结构:经典模式运用:</p>
<p align="left">用桥接模式作为中心骨架。</p>
<p align="left">用桥接模式作为中心骨架。</p>
<p align="left">用工厂模式进行组装。</p>
<p align="left">用命令模式处理事务。</p>
<p align="left">模块结构的常见形式<br/>容器模块 + 控制者 + 功能模块 + 临时构建的小类;单例模式;命令模式。</p>
<p align="left">核心模块的接口设计。<br/>外观模式;适配器模式;代理模式;中介者模式。</p>
<p align="left">其它形式的的模块结构:变换型模块结构;事务型模块结构。</p>
<p align="left">二、 <b>模块间的通信及耦合设计:</b></p>
<p align="left">1. 组件式编程。</p>
<p align="left">2. 通讯机制:<br/>观察者模式;本地SDK;轮训。</p>
<p align="left">3. 解耦:<br/>针对接口编程;增加间接模块;依赖注入。</p>
<p align="left">4. 设计数据层<br/>数据结构选用的设计;数据访问层的设计</p>
<p align="left">三、 <b>动态设计:</b></p>
<p align="left">1. 抽象与统一不同的因素<br/>根据业务寻找关键因素;统一到复杂的情况。</p>
<p align="left">2. 常用的流程抽象手段:<br/>依赖注入 / 控制反转;表格法;配置文件。</p>
<p align="left">3. 逻辑控制:<br/>控制者模式;信息专家模式。</p>
<p align="left">4. 消息通知机制<br/>MVC模式;观察者模式;责任链模式;中介者模式。</p>
<p align="left">四、 <b>模块调整:</b></p>
<p align="left">1. 调整模块等级。<br/>适当封装;把属性提升为类;将类降为属性;将类提升为组件。</p>
<p align="left">2. 用设计模式优化设计<br/>在主体的框架上进行调整:访问者模式;装饰模式。</p>
<p align="left">3. 编码时构建适当的动态临时类。<br/>命令模式;事务处理类型。</p>
<p align="left">4. 效率的优化<br/>效率与结构的折中:优化效率的3步骤。&nbsp;&nbsp; </p>
<p align="left">&nbsp;</p>
<p align="left"><b>第六单元:软件架构设计案例分析</b></p>
<p align="left">一、 <b>综合架构案例剖析</b></p>
<p align="left">1. 商店POS系统架构设计</p>
<p align="left">2. 薪酬系统架构设计</p>
<p align="left">3. 仓库管理系统架构设计</p>
<p align="left">二、 <b>实战典型案例分析(以实际项目案例为背景)</b></p>
<p align="left">1. 需求分析、领域建模:零售店销售系统</p>
<p align="left">2. 设计模式的综合运用:<i> </i>Dvc文件分析系统</p>
<p align="left">3. 架构分析:<i> </i>互联网商品数据分析系统</p>
<p align="left">4. 综合案例分析:</p>
<p align="left">图像处理系统</p>
<p align="left">基于搜索的二次开发系统</p>
<p align="left">&nbsp;</p>
<p align="left">l <b>培训时间、地点及方式</b></p>
<p align="left"><b>(</b><b>共4天) 滚动开班,每月一期;可做企业内训</b></p>
<p align="left">培训采用讲授、演示与实践相结合,理论与案例相结合的生动而具体的教学方法,突出实践运用,通过实际演练发现并解决问题。</p>
<p align="left">&nbsp;</p>
<p align="left">l <b>培训费用</b></p>
<p align="left"><b>5000</b><b>元/人</b>(含培训费、教材资料费、证书费、午餐茶歇等费用)需要住宿的学员请提前告知,食宿统一安排,费用自理。</p>
<p align="left">&nbsp;</p>
<p align="left">l <b>报名须知 </b></p>
<p align="left">经所在单位确认后填写附件《报名回执表》发送传真至联系人。</p>
<p align="left">电 话:13683248456</p>
<p align="left">QQ:348378632 </p>
<p align="left">联系人: 寇老师 </p>
<p align="left">E-mail:<a href="mailto:wuhuaguo_kou@sina.com">wuhuaguo_kou@sina.com</a> </p>
<p align="left">地 址:北京市海淀区学院南路55号中软大厦B座5层(100081)</p>
页: [1]
查看完整版本: 面向对象软件架构设计实践