求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
 
 
 
开班计划 | 技术学院 | 管理学院 | 嵌入式学院 | 机械 | 军工学院 | 定向培养 | 专家指导  
 电话 English
成功案例   品质保证
 
成功案例
某集成电 多核体系的软件仿真
某电力能 设计模式原理及应用
南方航空 软件设计方法与实践
某跨国公 软件设计原理与实
爱立信( 软件设计
Moto 设计模式
北京 软件设计原理与实践
 

全部课程 >软件设计  
卓越软件设计
2858 次浏览  33 次
张铭益
曾任HP中国资深架构师,连续四届荣获微软最有价值专家
 
地点时间:北京,上海,深圳根据报名开班
课程费用:4500元/人
企业内训:可以根据企业需求,定制内训,详见 内训学习手册


认证方式:
培训前了解能力模型。
培训后进行能力评测:
  • 在线考试
  • 能力分析,给出学习建议
  • 合格者颁发证书,作为职业技能资格证明


    课程亮点:

    1、全真案例,借助案例与设计模式知识的原理,借助最佳实践,帮助您提高设计能力,从而提高开发效率和设计质量
    2、以新视角,揭示模式的本质、思想方法,剖析出模式之“道”,跳出“为模式而模式”的“陷阱”
    3、提升设计能力,使开发人员由“编程小工”到设计专家
    4、结合测试驱动开发与重构,提高软件设计质量,实现卓越软件设计
    5、关注业界内设计模式,以实战训练驱动对设计模式的理解与运用
    在课程中要逐一解决的问题:
    1、员工无法接手遗留系统,原因是代码杂乱,可读性差
    2、团队成员没有设计模式知识与经验,无法实施敏捷开发
    3、系统难以重构,不利于产品的重用与二次开发
    4、开发效率得不到保障,因为详细设计人员不能理解架构文档与详细设计方案
    5、设计方案难于应对需求变更
    6、设计的系统架构缺乏可扩展性、可维护性和可测试性,不能合理地重用
    7、架构、设计、开发三个环节中各个角色不能理解设计意图,很难沟通
    培训对象:软件开发工程师,软件设计师
    学员基础:具有一定的开发和设计经验。
    授课方式: 定制课程 + 案例讲解 + 小组讨论,60%案例讲解,40%实践演练
    培训内容:2天

    卓越软件设计的五个指标
    简单性
    • 简单设计的四个要素
    • 通过所有测试
    • 无重复代码
    • 体现设计意图
    • 较少的类、方法

    可重用性
    • 面向对象的继承与组合
    • 关注点分离原则
    可读性
    • 软件的成本
    • 体现设计意图
    • 体现业务价值
    • 代码的命名与格式
    可测试性
    • 测试驱动开发
    • 合理的职责分配
    可扩展性
    • 抽象
    • 面向接口设计
    案例实践:  
    • Hadoop的版本变迁看简单设计:
      通过比较两个版本的Hadoop实现,讲解如何保证设计的简单性(对Context模式的分析)
    • Email Server代码分析:
      从面向过程式代码分析设计问题,然后运用简单设计的四个要素对代码进行改进(对Observer模式与Chain Of Responsibility模式的探讨、分析与比较)
    • 权限认证系统:
      通过抽象达到可重用设计,并简化客户端调用,协作合理,形成可扩展的认证机制(对Chain Of Responsibility、Template Method模式的探讨与分析)
    设计匠艺的提炼与修行
    职责的分配原则
    • DRY原则
    • 程序等于数据加逻辑
    • 高内聚低耦合
    • 如无必要勿增实体
    职责的合理分配
    • 单一职责原则
    • 信息专家模式
    识别代码的坏味道
    • Chain Method
    • Feature Envy
    • Shotgun Surgery
    • Divergent Change
    • Large Class
    • Middle Man
    职责分配的本质
    • 职责驱动设计
    • 时序图与职责分配
    • 如何识别对象的职责
    探索式方法
    • 方法分组
    • 观察隐藏的方法
    • 寻找变化点
    • 寻找方法和内部变量的关系
    • 寻找主要职责
    架构层级的职责分离
    • 识别包图的坏味道
    • 包的共同复用原则
    • 如何划分组件或包
    • 架构质量属性的考虑
    职责分离的好处
    • 高内聚松耦合
    • 稳定
    • 细粒度
    • 变化可独自演化
    • 避免类爆炸
    案例
    • 代码坏味道识别
      提供多个代码案例,讲解如何识别代码坏味道,并针对代码坏味道进行重构,从而改善代码的设计与结构
    • Web参数处理:
      分析如何寻找对象的职责,讲解如何合理分配对象职责,了解职责分配对设计的改善
    • 报表引擎
      分析如何划分系统模块
      内容:双向依赖与循环依赖和包或模块的重用(对包重用原则的探讨分析)
    • 培训系统
      培训系统对票处理的方式,分析职责的变化与分离(对Bridge模式的探讨与分析)
    抽象的本质
    • 抽象的分类
    • 抽象的层次
    抽象需要遵循的原则
    • 开放封闭原则
    • 依赖倒置原则
    抽象对设计的改善
    • 抽象对设计的简化
    • 抽象能避免重复
    • 抽象保证对设计的一致性
    扩展式设计
    • 分离职责各司其职
    • 利用抽象统一接口
    • 引用接口预留空白
    案例实践:
    • 项目管理系统
      通过对业务模型的分析,理解抽象对于建模的重要性,从而提高设计的质量,内容包括:
    • 软件开发生命周期
    • 领域建模
    • 消息队列
      通过分析JMS、MSMQ、RabbitMQ和NServiceBus的设计,理解抽象的含义,内容包括:
      • 抽象与接口
      • 接口隔离原则
      • 按意图设计
      • Fa?ade模式
      • 企业集成模式
    • CIMS基于消息的分布式架构
      通过对服务的统一抽象,以及对消息处理的职责分配,建立一个协作合理的分布式架构,内容包括:
      • Command模式
      • Publisher – Subscriber模式
      • Message Bus模式
      • Message Translator模式
      • Lookup模式
      • ORM
    • 订单系统
      进一步理解职责分离与抽象应对变化,逐步改善设计。内容包括: Specification模式,Simple Factory模式,Chain Of Responsibility模式
    场景驱动设计
    场景驱动设计的6W原则
    • Who:角色
    • When:时序与协作
    • Where:边界与上下文
    • Why:价值
    • What:功能
    • HOW:实现
    职责的三层图
    • 业务价值:服务层
    • 业务功能:领域层
    • 业务实现:基础设施层
    场景驱动设计过程
    • 识别与分析场景
      • 场景的三个目标层次
      • 概要目标
      • 用户目标
      • 子功能
      • 场景的角色入口
      • 场景的边界与上下文
      • 业务场景的活动流程
    • 识别职责
      • 通过业务的三层图建立职责层级
      • 名词动词法
      • 模型分类
    • 领域建模
      • 构建面向对象的虚拟世界
      • 识别现实世界:业务目标、业务价值与用户意图
      • 抽象:概念分类、统一概念、抽象模型、共性分析与可变性分析
      • 领域驱动设计
    案例实践:多租户服务订阅系统
    • 根据一个真实案例,通过对需求进行分析以及编写用户故事,完整而统一地讲解了场景驱动设计过程中,如何识别场景与职责,如何进行领域建模与设计。
      • 第一次迭代:租户的服务订阅,内容包括:
        • 合理的职责分配
        • 领域驱动设计中的实体与聚合根
        • 时序图
        • Repository模式与Factory模式辨析
      • 第二次迭代:特定用户的服务订阅,内容包括:
        • 抽象的运用
        • Template Method模式
      • 第三次迭代:需求发生变化,需要引入服务套餐。此时应该如何更改之前的设计,使得变化对设计的影响降到最低。内容包括:
        • Change Name重构
        • Extract Interface重构
        • Composite模式
      • 第四次迭代:需要实现如下功能:
        • 订阅者使用服务
        • 使用第三方服务
      内容包括:
      如何合理地运用面向对象设计与设计模式对以上功能进行设计:
      • 抽象接口
      • Command模式
      • Adapter模式
     
    2858 次浏览  33 次
    其他人还看了课程
    软件设计全程演练与最佳实践  1709 次浏览
    软件设计模式最佳实践  10802 次浏览
    软件详细设计、建模与编档  4285 次浏览
    卓越软件设计  2858 次浏览
    Framework设计与应用   2581 次浏览
    多核计算与程序设计  2864 次浏览
    定制内训


    咨询服务:架构评估与优化
    咨询目标
    对现有的架构进行评估,发现问题,并优化
    咨询范围 业务架构,应用架构,数据架构,技术架构
    咨询方式 对现有架构进行建模,然后诊断问题,对问题进行集成分析,设计优化方案,指导团队实施优化,最终效果评估。
    成功案例 中国移动广西分公司,中国电信
    详情咨询:010-62670969, zhgx@uml.net.cn
    课程计划
    MBSE(基于模型的系统工程)4-18[北京]
    自然语言处理(NLP) 4-25[北京]
    基于 UML 和EA进行分析设计 4-29[北京]
    以用户为中心的软件界面设计 5-16[北京]
    DoDAF规范、模型与实例 5-23[北京]
    信息架构建模(基于UML+EA)5-29[北京]