|  
             | 
 
 | 
   
  | 
          
            
              
     
 
 全部课程 >软件设计   |  
 |  
                 
                  
                      
                         
                          软件详细设计实践 
                                     | 
                         
                         
                           
                            
                              
                                  
                                    
3775 次浏览   73 次 
 | 
                                   
                              
                              | 
                         
                        
						 |  
                         
                            | 时间地点:北京 
                              上海 深圳 根据报名开班 | 
                         
                         
                            | 课程费用:5000元/人 | 
                         
                             | 
                           
                           
                            
                            |   | 
                              | 
                           
                          
                             | 
                           
                         
                          | 企业内训:可以根据企业需求,定制内训,详见 
                            内训学习手册 | 
                         
                        
                         
                          
                            
                                 
                              
                             | 
                         
                                 
                                    | 
								  
								  
                                   认证方式: 
                                    培训前了解能力模型。 
                                      培训后进行能力评测: 
                                     在线考试
                                      能力分析,给出学习建议
                                      合格者颁发证书,作为职业技能资格证明 
                                       
                                     | 
									    | 
                                 
                                |  
                         
  
                          
                            
                                 
                              
                             | 
                         
                          如果你是具有多年经验的软件设计师,请问什么是好的设计?  
                              一个好的系统设计应该有如下的性质:可扩展性、灵活性、可插入性。 本课程将透彻解析如下方面: 
                              
                                -  优秀设计的特征?什么是优秀设计?如何实现?
 
                                -  什么是架构?什么是设计?详细设计做的什么程度?编码就是低级工作吗?详细设计产出物是什么形式?
 
                                -  预先设计可以搞定所有问题吗?软件需求为什么老是变化?设计应该怎样应对变化?
 
                                -  设计复用? 如何避免重复劳动,个人重复,小组成员重复?不同小组之间重复.
 
                                -  设计原则/设计模式? 我们为什么学习了设计模式,却根本不会使用?
 
                                -  软件设计实现功能就可以了吗? 怎么考虑设计质量? 我们老是赶进度而忽略软件质量?
 
                                -  为什么我们的软件开发团队整天加班? 软件仍然很难维护?我们做错了什么?
 
                                -  UML到底可以帮助我们做什么?可以提高设计质量吗?为什么我们真正很少使用?
 
                                -  设计如何评价? 如何度量? 为什么我们设计评审经常吵?谁也说服不了谁?
 
                                -  其他大型项目的详细设计是如何做的? 和我们到底有什么不同?有什么值得学习的? 
 
                               
                              本课程注重实战,采用案例贯穿方式完成授课,让学员体验软件详细设计的完整过程,掌握软件详细设计的基本原则和模式,同时课程也以大量失败案例来警示学员,避免重蹈覆辙。  | 
                        
                         
                          |   | 
                         
                          
                            | 培训目标:   | 
                         
                         
                             
                                -  结合电信、电力、税务和金融,互联网等多个项目实战案例进行分析。详细介绍相关项目设计思想.
 
                                -  鉴赏经典的开源项目,如临摹钢笔字贴一样,让我们看看好的设计应该如何去做。该开源项目均出自世界大师之手.
 
                                -  软件设计基本原则:结合案例分析这些原则,特别是一些最基本的设计原则,是如何应用在软件详细设计之中的。
 
                                -  设计模式: 知道模式是什么是一回事,而真正理解如何应用模式就完全是另一回事了。借助真实项目案例,展示如何在实际开发之中正确的选择和运用模式,而不是靠所谓的艺术感而进行设计堆砌。
 
                                -  常见设计的坏症状: 介绍目前我们常见的糟糕的设计坏症状,以告诫学员,今后如何避免出现这样的拙劣设计。
 
                                -  重构和持续集成:软件并不是在一开始就可以设计的完美无缺,因此可以通过预先设计,经过不断的重构进行改善,重构是实现优秀设计的一种重要手段,设计模式往往是重构的目标。
 
                                -  UML建模技术如何在设计之中进行应用。避免目前UML语法式的学习,以避免过度滥用UML。
 
                                -  软件通用机制的设计与实现:介绍常见详细设计之中必备的通用机制(比如异常处理框架,日志处理,事务,Cache,工作流,通信,接口,安全)。
 
                                -  敏捷设计:学习敏捷设计方法的思想,价值观、原则和实践,对敏捷设计有一个清晰全面的认识。
 
                                -  应用框架(Application framework)设计:结合具体案例进行分析,如何应用和设计Framework。
 
                                
                             | 
                         
						
						 
                            | 培训对象:软件设计人员,包括采用面向对象技术的开发与设计人员,采用结构化技术的开发与设计人员。 | 
                 
                 
                            | 学员基础:了解OOP(面向对象)编程相关概念;熟悉Java/C#或者C++语言;简单了解UML基本语法(主要使用类图和顺序图等常见几类UML图)。 | 
                 
						
						
                         
                          | 授课方式: 定制课程 + 案例讲解 
                            + 小组讨论,60%案例讲解,40%实践演练 | 
                         
                         
                          | 培训内容:2天 
                              | 
                         
                         
                            
                                 
                                  | 第一单元 什么优秀设计以及如何实现应对需求变化 | 
                                  内容一:什么是好的设计  
                                    
                                      - 什么是好的软件详细设计和衡量的手段
 
                                      -  世界大师的观点(Robert C Martin , Peter Code,` 
                                        James Shor)
 
                                      -  我们现实项目的情况,随时需求的变化,我们自以为豪的设计,都逐渐变烂,变成纠缠不清的代码浆糊.
 
                                      -  可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标
 
                                      -  灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标
 
                                      -  可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 
                                        结合案例,通过那些手段如何实现该目标
 
                                      -  分析真实项目,如何做的详细设计,给我们哪些启示,我们可以学习到什么
 
                                      -  分析我们在项目之中是那些原因导致了没有实现这些目标. 
 
                                     
                                    内容二:案例- 某省移动基站综合管理项目案例  
                                    
                                      - 某省移动项目,必须考虑支持多种设备厂商
 
                                      -  初始设计的问题分析
 
                                      -  应用何种模式解决问题
 
                                     
                                    内容三:如何应对需求的变化 
                                    
                                      -  设计基本原则
 
                                      -  发现和封装变化的原则
 
                                      -  面向对象的基本原则(OCP/SRP/ DIP等基本设计原则)
 
                                      -  根据共性性分析,进行行为职责或者数据的抽象
 
                                      -  根据可变性分析,进行职责的结构分析和实现
 
                                      -  局部化变更-可修改性战术目标是减少由某个变更直接影响的模块数量.
 
                                      -  防止连锁反应-目标是限制对局部化的模块的修改.减少间接受变更影响的模块.
 
                                      -  推迟绑定时间-尽量不要静态编译,应该运行期间决定组件之间关系
 
                                      -  结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化
 
                                      -  结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化
 
                                     
                                    内容四:案例- 某省电信网管项目  
                                    
                                      - 某省移动项目,必须考虑支持多种设备厂商
 
                                      -  初始设计的问题分析
 
                                      | 
                                 
                                 
                                  | 第二单元 技术债务和软件设计腐化 | 
                                  容一:技术债务  
                                    
                                      - 技术债务概述
 
                                      -  软件债务对软件系统的危害
 
                                      -  软件债务对软件开发人员的危害
 
                                      -  技术债务与破窗效应
 
                                      -  技术债务的解决之道
 
                                      -  通过案例分析,如何解决破窗效应 
 
                                     
                                    内容二:混乱的设计  
                                    
                                      - 目前国内软件项目的设计现状
 
                                      -  大泥球仍然是最常见的设计方式
 
                                      -  通过案例分析,对比2种设计思维带来的维护问题
 
                                     
                                    内容三:案例- 演示系统软件腐化的过程  
                                    
                                      - 某电信项目系统
 
                                      -  初始设计的问题分析
 
                                      -  通过该案例分析,对比有时是因为人员的设计技能导致加速软件的腐化 
 
                                      | 
                                 
                                 
                                  | 第三单元 设计层次---架构/详细设计/编码 
                                    如何交互 | 
                                  内容一:软件架构和设计概述  
                                    
                                      - 软件架构和详细设计关注点和区别
 
                                      -  软件架构师职责
 
                                      -  软件架构视图和软件架构文档
 
                                      -  详细设计师必须知道的架构决策
 
                                      -  软件详细设计师和职责
 
                                      -  结合多个案例进行分析, 根据项目的不同类型,进行合适的架构视图. 展现多个大型项目的架构视图 
                                      
 
                                     
                                    内容二:软件详细设计 
                                    
                                      -  传统详细设计的局限性
 
                                      -  什么是好的软件详细设计和衡量的手段
 
                                      -  软件详细设计的过程和内容
 
                                      -  敏捷设计新思想
 
                                      -  过度详细设计(Over-engineering)问题和注意事项,
 
                                      -  设计不足(Under-engineering)问题和注意事项
 
                                     
                                    分析真实项目,设计与实现的新思想  内容三:源代码就是设计 
                                    
                                      -  传统代码认识的误区
 
                                      -  设计与施工分离的误区
 
                                      -  源代码就是设计
 
                                      -  分析真实项目代码, 认识代码的重要性.垃圾代码的危害
 
                                     
                                    内容四:案例- 多项目详细设计分析  
                                    
                                      - 通过多个零售系统设计分析
 
                                      | 
                                 
                                 
                                  | 第四单元 敏捷设计—预先设计做到什么程度 | 
                                  内容一:软件不可预测性 
                                    
                                      -  软件需求的不可预测性
 
                                      -  预先设计的局限性
 
                                      -  传统瀑布型设计的问题
 
                                      -  案例分析, 根据课程介绍的坏症状,进行重构合理的设计 
 
                                     
                                    内容二:敏捷设计思想---演化式设计 
                                    
                                      -  敏捷设计思想--强调通过提高团队的能力、设计的弹性和流程的灵活性来适应变化。
 
                                      -  演化设计--重构带来了一种新的构设计方法,称为反思性设计(Reflective 
                                        Design)。除了创建一种设计并用代码实现它之外,你现在还可以分析已有代码的设计并改善它。寻求改进的一种最好的方法是通过代码嗅觉(code 
                                        smells).
 
                                      -  在详细设计之中,如何对发现问题的设计进行重构
 
                                      -  案例分析, 根据课程介绍的坏症状,进行重构合理的设计
 
                                     
                                    内容三:案例---某电信项目系统 
                                    
                                      -  故障单管理系统
 
                                      -  流程审核的改变
 
                                      -  故障单类型的增加
 
                                      -  传统设计的问题与如何通过代码进行演化
 
                                      | 
                                 
                                 
                                  | 第五单元 防止变异技术 | 
                                  内容一:防止变异技术 
                                    
                                      -  防止变异技术
 
                                      -  多态(polymorphism)和针对接口的编程
 
                                      -  数据驱动(Data-Driven Design)
 
                                      -  元数据驱动设计
 
                                      -  反射驱动(Meta-data or Reflective )
 
                                      -  解释器驱动
 
                                      -  脚本引擎技术
 
                                      -  结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化 
                                      
 
                                     
                                    内容二:案例---某项目系统防止变异技术的应用分析 
                                    
                                      -  结合多种技术防止变异, 如何做的通用性
 
                                      | 
                                 
                                 
                                  | 第六单元 领域驱动设计--软件核心复杂性应对之道 | 
                                  内容一:领域驱动设计  
                                    
                                      - 业务逻辑层架构模式
 
                                      -  事务脚本模式/领取驱动设计/表模块
 
                                      -  领域驱动设计的优缺点和面临的挑战
 
                                      -  如何建立软件项目的有效模型
 
                                      -  构建基于模型的语言,用来连接领域专家,开发者和代码自身。
 
                                      -  技术人员和业务人员在建模过程中的探索式交互
 
                                      -  案例分析, 通过案例演示, 领取驱动设计与传统事务脚本模式的优缺点 
 
                                     
                                     | 
                                 
                                 
                                  | 第七单元 软件设计复用 | 
                                  内容一:软件复用设计 
                                    
                                      -  在详细设计之中,分析发现共同的行为的抽象和共同的机制来实现
 
                                      -  软件通用服务组件的设计
 
                                      -  复用已有的东西,比自己编写更容易。如果不容易,大家就不会去复用。
 
                                      -  软件复用的管理策略 
 
                                     
                                    内容二:软件通用机制的设计与实现  
                                    
                                      - 异常的机制设计与实现
 
                                      -  系统的配置管理机制的设计与实现
 
                                      -  系统的Cache缓存机制的设计与实现
 
                                      -  异步消息和通知机制的设计与实现
 
                                      -  认证授权以及安全/加解密的机制设计与实现
 
                                      -  事务管理机制的设计与实现
 
                                      -  定时触发的机制设计与实现
 
                                      -  后台批处理机制设计与实现
 
                                      -  校验机制设计与实现
 
                                      -  通信机制设计与实现
 
                                     
                                    内容三:框架(Application framework)设计 
                                    
                                      -  应用框架概述
 
                                      -  框架vs.类库的不同
 
                                      -  在软件详细设计时如何应用框架和设计新的框架
 
                                      -  典型案例分析:结合多个项目实例,在实际项目中如何进行应用和开发框架
 
                                     
                                    内容四:某电信项目案例-异常处理框架设计  
                                    
                                      - 系统的异常处理策略
 
                                      -  设计一个通用异常处理子系统
 
                                      -  分析如何应用设计模式在该案例
 
                                      -  分析通过应用设计模式,带来了哪些好处(表现在软件的灵活性
 
                                      -  分析如何转换为Framework
 
                                      - 典型案例分析:该框架已经在多个大型项目之中应用
 
                                     
                                    内容五:某电信项目案例的详细设计分析  
                                    
                                      - 项目背景(
 
                                      -  使用AOP思想改造项目设计
 
                                      -  AOP与软件复用
 
                                      | 
                                 
                                 
                                  | 第八单元 敏捷建模 | 
                                  内容一:敏捷建模 
                                    
                                      -  UML在详细设计阶段的应用方式(4种方式)
 
                                      -  UML类图和顺序图,在详细设计中,如何协作进行职责分配
 
                                      -  UML图的是否保留和废弃
 
                                      - 结合多个案例项目进行分析,如何正确应用UML建模,以避免过度建模以及怎样保留UML建模成果和代码的同步问题 
                                      
 
                                     
                                    内容二:详细设计的文档和相关工具(根据学员和时间,现场适当调整) 
                                    
                                      -  设计文档撰写 
 
                                      - 设计文档的评审与基线
 
                                      -  设计文档的版本管理
 
                                      -  设计文档的变更控制略
 
                                      -  详细设计转化为代码
 
                                      -  界面设计工具
 
                                      -  数据建模工具
 
                                      -  部署模型设计相关工具
 
                                      - 结合案例进行分析详细设计文档的编写
 
                                       
                                      | 
                                 
                                 
                                  | 第九单元 软件设计质量 | 
                                  内容一:软件的质量属性 
                                    
                                      -  软件开发的4个要素成本,时间,功能范围和质量
 
                                      -  什么是系统质量属性,
 
                                      -  如何进行定义质量属性
 
                                      -  详细设计需要考虑的质量属性
 
                                      -  通过案例分析,如何在设计时考虑设计质量 
 
                                     
                                    内容二:软件的质量属性对详细设计的影响 
                                    
                                      -  软件的可靠性设计策略
 
                                      -  软件的可修改性设计策略
 
                                      -  软件的性能设计策略
 
                                      -  软件的安全性设计策略
 
                                      -  软件的易用性设计策略
 
                                      -  系统质量属性和设计原则和模式的关系
 
                                      -  结合多个案例进行分析,通过那些手段来实现这些质量属性
 
                                      | 
                                 
                                 
                                  | 第十单元 软件设计案例分析 | 
                                  内容一:大型软件项目详细设计案例分析 
                                    
                                      -  软件详细设计最佳实践
 
                                      -  某电信项目详细设计最佳实践
 
                                      -  某电力项目详细设计最佳实践
 
                                      -  某Web互联网项目详细设计最佳实践
 
                                      | 
                                 
                                | 
                         
                         
                          |  
                           
                           | 
                         
                      
                     
                     | 
                 
                
                 
                  
                    
 
   
    |   | 
      | 
 | 
      | 
     | 
  | 
   
   
     
      3775 次浏览   73 次
       | 
   
   
    | 其他人还看了课程 | 
   
   
     | 
   
 
 
                   | 
                 
              
              |