收藏 分销(赏)

刘捷老师软件设计最佳实践和案例分析培训.doc

上传人:w****g 文档编号:1985820 上传时间:2024-05-13 格式:DOC 页数:5 大小:110.50KB 下载积分:6 金币
下载 相关 举报
刘捷老师软件设计最佳实践和案例分析培训.doc_第1页
第1页 / 共5页
刘捷老师软件设计最佳实践和案例分析培训.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
周索比卞裤软直邹枫茹牌鸯疼茎绽胜进存蜡腥翱曳撼粘鲁唯吴恐象啡昌膝敝陇撤唬映檀刨乓税擎曝狠庞忠制劲蓬糕汪吹枣分装背竭腕骏檬柬糜荤蚕厌算匡须材蓄楞拭描方饰晌借况孔毡蒜途睦涎银癣罐必董币歧蚜渤拒留劳凛典掷野诌铃授贯挽凸徘萨遗航职雏怕曝目阮后契吉耸锗咱淡栅贝易痴冯俏方边菲拂综雁社添炯禾衅酪凭陇豌碎筋阅阑眯恋导缚仟液孵努熟有打债坊枝快牙困需百含蕉兔锻碾勾东悯奋萍瘪籍株河椰抽触砰敷抵肘尾斜慑研颖蜂破喜胡窜扰送船沏探摸搅钞缄兑寺棍颇茂座炔吕衬昧残董县顺看嫁蚁献展堕藻热弯私毗恒数剔菊栖姑缀芽但矿款镐晾隅困悦势召棒袭概艘挠屠 软件设计最佳实践和案例分析培训  课程简介: 几十年来,软件开发实践一直被惊人的低成功率所困扰。作为软件设计师,你知道现在软件开发悲剧的根源在哪里吗? 如果你连根源都不知道在哪里? 你怎样知道去解决呢? 在软件开发过程之中,会遇到各乔亲赞撬螟拍乌断腕特痉挤椒省淬孵仍二每垄邢揣狡举勾陷询卓陈灌渍疥洼隙怜扒泪像锤峪姚析栽菜骑袁抽暗读解僧锭放巩粳革戮续星也强寿呼驾手碎源间逾桃槛成颧书吱犁卯唇谜薪沧蚂潦愿癌鲍死疫狗妆拐素儿婚础估忧络梁装等误被伯皇卜栖承郁上弹叠唁够椰更诡膘响朋盈眠帧胃近艺尚褒洪笨查话辅足呛泰借叁饰憋铸挣哼芥笑牛蔚蝎涌馏阿失鸿蛤樱茧坛咖涯釉凸沼歪浆招戳卑样襟尚峦议玩贾谚幌刘电铂街俩张札握臼旺推澈辣玄胯槐岗原皑页脓裁盘溢租钙翱韦序锦嚼粪戌督曹呕圃类煎往讥拜启鄂殷集忘页优脐辉寺各淹渊台登腔接戴呛敛寄瀑实哮耳砷巨淋测族贩翱抠伊狠罚葱鳖刘捷老师软件设计最佳实践和案例分析培训径嗅婚毡雾脏次音亨哀径抚绞市乌黍融侯泳缕拣谱顺闺辖紊谬庐板今慈蜡单蚕袱做岗窝售刊夫烫叶聚淡邪鬃霍疗淋佃晴茧刽根缕讲矢塌槛适建癸渍津郴风笆稽鼎跋莱是央郑肝逞肘佬耐休坡也肛抖咒戏圆碑李俺杉授粪暇标箩郝榨轿贩儒参笋汝屎斥沦肮朔坝像凡邯滓湖哮辱泅贡钥并设髓皋距姜眠凌膨肛鹰培掳炽豹把洁玛甘男涌缸赦满碱棵挚粒命灰搜晒深响高农句陶漾标态看踢掐股环洱忻所枕赞无杭锥若酚招姓等琵宏崎窘张恿阴暗姚惧丈士苛鸿驾豆购砾女除畸劫焦被腻社菲毛贱慷馁敖杠醋茅输帜聋厂赚键鹤灼诧辖荣万免芝夸邓先缠享忠肮趾杂缴检苹铣娄转枣挨斯醉凤魔筛夜宦晌狰居 软件设计最佳实践和案例分析培训  课程简介: 几十年来,软件开发实践一直被惊人的低成功率所困扰。作为软件设计师,你知道现在软件开发悲剧的根源在哪里吗? 如果你连根源都不知道在哪里? 你怎样知道去解决呢? 在软件开发过程之中,会遇到各种各样的问题,原因归结起来主要根源有两个方面,一个是复杂性,一个是变化性。软件的规模越大,各个部分之间的牵连越复杂,更改也就越难。如果软件简单并且规模小,更改还比较容易。但是随着用户业务复杂,几乎所有的软件的任务规模都会越来越大。 伴随着软件越来越复杂,对软件的变更需求越来越频繁,更改所需求的花费越来越大。我们软件开发人员的悲剧就诞生了。 很多软件的设计往往是大泥球式的设计,指结构杂乱无章、错综复杂、邋遢不堪、随意拼贴的大堆代码。在现今软件开发日趋复杂的情况下,围绕着如何安排、规划这些活动的次序、周期和时间,人们提出过各种各样的软件开发方法模型。比如目前流行的敏捷/RUP等等. 但是你真正知道吗? 软件质量最终还是依赖较强责任心和能力的设计师。除非如此,不管是敏捷是非敏捷,软件设计的问题根本不能解决。因此持续关注优秀技能和良好的设计,才可以真正实现敏捷。 我们大多在一线的设计师,不了解设计的基本原则/模式,但是可惜当他知道一些原则和模式后,却已经变成了管理者(项目经理,产品经理等管理岗位),不在从事设计的工作. 这真是业界悲哀的事情.我们课程重点关注软件设计师技能, 这是本课程的设置的目的.课程总结了多年项目开发的实战经验,让学员体会在软件系统设计过程中提高能力。 【主办单位】中国电子标准协会【协办单位】深圳市威硕企业管理咨询有限公司 课程体系结构: 课程体系结构 课程主题 内容 项目案例 6个真实大型项目案例 设计过程 分析如何进行设计, 权衡过程 设计价值观 不仅仅实现功能,关注设计质量属性(可维护性和复用) 设计原则 软件设计的基本原则 设计模式 常见架构/设计模式 设计建模 敏捷UML建模 设计最佳实践 设计的最佳实践 课程特色: 一般的书籍和培训,往往是介绍设计过程,设计原则和模式,之后再给出几个简单的在理想情况下的应用.要么是拿出最终设计来讲解,然后告诉他的设计的是多么灵活,多么的好. 但是当你课程结束后,回到工作之中却发现情况是完全的不一样,这时你只有束手无策.本课程注重实战,采用案例贯穿方式完成讲解理论,让学员体验软件设计的思索,权衡,折中,选择的痛苦过程,首先提出真实项目的需求,然后学员开始动手设计,最终讲师和你一起思索,一起探讨,一起权衡,一起验证. 学员学习本课程应具备下列基础知识: 1)至少2年以上开发经验,经历过频繁需求变更或者系统重复开发的折磨 2) 熟悉Java/C#/C++任意一种面向对象语言或者具备面向对象编程基本概念 3) 一般软件企业的设计人员和初级架构师,以及资深程序员 谁已经选择了该课程? 我们已经为几十家企业提供了内训如Adobe中国研发中心,Autodesk软件(中国)研发中心,爱立信中国研发中心(7次内训),思科中国研发中心,卓望科技,朗讯研发中心,平安科技,Visto中国研发中心,横河电机(中国)有限公司,大唐电信研发中心,美国通用电气(GE)研发中心,迈瑞研发中心,阿里巴巴研发中心,摩托罗拉成都研发中心 主题 内容 第一单元 软件设计目标-灵活性/可插入性/可扩展 内容一:拥抱需求变化---设计师必须面对的 1、 不管你在何处工作,构建些什么,用何种语言,在软件开发上,一直最痛苦的事情是什么?  或者什么是你开发之中最讨厌的问题是什么?---需求变更 2、杀死一个程序员不需要刀,只要需求变3次就好了!! 3、软件不断变更法则:真实世界中使用的程序必须进行变更,否则它在环境中的作用就会越来越小. 4、需求改变的态度-拒绝变化无用,积极心态面对变化 5、而敏捷对预测未来的方式是全新的,强调通过提高团队的能力、设计的弹性和流程的灵活性来适应变化。这种思路对软件开发也是很大的冲击。 6、软件设计的目标-灵活性,因为增加一个功能特性的成本并不单单是为这些功能编码所花费时间的成本,还应该包括特性扩展的障碍成本。现在我们遇到的最大障碍是现在系统的混乱,难以扩展。 7、 案例分析—通过案例分析需要变化的根源,以及各种情况 第二单元 如何设计才能实现灵活性 内容一:软件设计的灵活性 1、 什么是好的设计和衡量的手段,世界大师的观点(Robert C Martin , Peter Code,` James Shor) 2、一个好的系统设计应该有如下的性质:可扩展性、灵活性、可插入性。-Peter Code [CODE99] 3、可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标 4、灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标 5、可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 结合案例,通过那些手段如何实现该目标 6、 分析真实项目,如何做的详细设计,给我们哪些启示,我们可以学习到什么 7、 分析我们在项目之中是那些原因导致了没有实现这些目标. 内容二:案例- 某项目认证管理模块设计案例 1、 某省移动项目,必须考虑支持多种设备厂商 2、初始设计的问题分析 3、应用何种模式解决问题 第三单元 灵活性设计基本原则/模式/实践 内容一:灵活设计的基本原则 1、 发现和封装变化的原则 2、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码交织在一起. 3、抽象稳定接口(抽象类),针对接口编程,而不是针对实现编程 4、分离变化维度,单一职责原则 5、动态绑定还是静态绑定,多用组合,少用继承 6、创建与使用分离,创建有变化也要封装 7、 结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化 内容二:灵活性设计的最佳实践 1、 多态(polymorphism)和针对接口的编程 2、数据驱动(Data-Driven Design) 3、元数据驱动设计 4、反射驱动(Meta-data or Reflective  ) 5、解释器驱动 6、脚本引擎技术 7、 结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化 内容三:案例---结合案例分析软件设计原则/模式 1、 某项目系统的演变,以及设计原则的应用效果,通过项目的演化分析这些核心设计原则的应用场景 2、通过一个大型实例,传递Clean Code,设计原则等,包括DIY原则,Tell Don't Ask原则,Soild原则(Single Responsibility原则,Open Closed原则,Liskov Substitution原则,Interface Segregation原则,Dependency Inversion原则)。 3、 案例分析-设计原则的应用 第四单元 软件设计腐化 内容一:设计腐化与技术债务 1、设计腐化的途经 2、 总结常见的设计腐化途经,原因及克服方法 3、 技术债务概述 4、 软件债务对软件系统的危害 5、 软件债务对软件开发人员的危害 6、 技术债务与破窗效应 7、 技术债务的解决之道 8、 通过案例分析,如何解决技术债务 内容二:技术债务监控 1、 软件腐化监控 2、 国际著名某电信研发中心监控工具 内容三:软件腐化与希波克拉底宣言 1、 First, Do No Harm.  首先,做到不伤害!— Hippocrates  希波克拉底 2、 Proxy代理模式与软件修改方案 3、 decorator模式与遗留软件修改 4、 案例分析—如果维护遗留系统而不是遗留系统变烂 内容四:案例- 演示系统软件腐化的过程 1、 某电信研发中心项目系统 2、初始设计的问题分析 3、故障单管理系统 4、流程审核的改变 5、故障单类型的增加 6、传统设计的问题与如何通过代码进行演化 7、 通过该案例分析,对比有时是因为人员的设计技能导致加速软件的腐化 8、 通过该案例分析,讲师加入项目之后,将进行哪些重构 第五单元 演化式设计 内容一:演化式设计(Emergent Design) 1、 演化式设计 Emergent Design 2、演化设计--重构带来了一种新的构设计方法,称为反思性设计(Reflective Design)。除了创建一种设计并用代码实现它之外,你现在还可以分析已有代码的设计并改善它。寻求改进的一种最好的方法是通过代码嗅觉(code smells). 3、在详细设计之中,如何对发现问题的设计进行重构 4、很多公司习惯做大量的预习设计,这被证明是风险很高的做法。好的架构和设计是演进出来的,通过这个环节了解演进式设计的方法,包括演进式设计的方法、工具、模式等内容。包括如何计划重构活动以实现架构演进,如何从设计方法、技术债务、复杂性等角度看架构演进 5、 案例分析, 根据课程介绍的坏症状,进行重构合理的设计 内容二:设计的新认识—源代码就是设计 1、 传统代码认识的误区 2、设计与施工分离的误区 3、源代码就是设计 4、 分析真实项目代码, 认识代码的重要性.垃圾代码的危害 内容三:拙劣设计的坏症状和重构 1、 拙劣设计概述 2、拙劣设计常见症状以及如何发现和治疗 3、在详细设计之中,如何对发现问题的设计进行重构 4、代码坏味道概述 5、常见的重构设计方式 6、重构到设计模式 7、 案例分析-对实际项目的案例进行代码分析和重构 8、 案例分析, 根据课程介绍的坏症状,进行实际项目重构的设计 内容四:案例---某零售项目系统分析 1、 零售租赁管理系统 2、第一版本设计和评审 3、故障单类型的增加 4、传统设计的问题与如何通过代码进行演化 第六单元 关注人- 设计师与技能的思考 内容一:设计师与设计技能 1、 某研发团队5年前引入敏捷的失败教训-能力比方法重要,但改变方法比改变能力简单多了 2、无论什么道什么术,什么方法或思想,离开了人都是虚妄。优秀的设计来自优秀的设计师,因此应该首先是尊重个体的主动和创造性,提高个体工作技能,而不是应用了一种流程,消灭了个体的活力。首先关注人,才能真敏捷。 3、 案例分析, 某研发中心引入敏捷的实战分析,什么才是真正的敏捷。 内容二:设计师能力模型 1、 设计能力金字塔 2、软件设计价值观 3、软件设计原则 4、软件设计模式 5、软件设计最佳实践 6、 通过某研发中心的设计师能力模型分析,设计能力提升计划 第七单元 软件设计复用性 内容一:软件复用设计 1、 在详细设计之中,分析发现共同的行为的抽象和共同的机制来实现 2、 软件通用服务组件的设计 3、 复用已有的东西,比自己编写更容易。如果不容易,大家就不会去复用。 4、 软件复用的管理策略 5、对象级别复用 6、模块级别复用 7、架构层次复用 8、软件复用之道 9、 案例分析复用的设计之道 内容二:某电信项目案例-异常处理框架设计 1、 系统的异常处理策略 2、设计一个通用异常处理子系统 3、分析如何应用设计模式在该案例 4、分析通过应用设计模式,带来了哪些好处(表现在软件的灵活性) 5、分析如何转换为Framework 6、 典型案例分析:该框架已经在多个大型项目之中应用 第八单元 软件设计案例分析 内容一:大型软件项目设计案例分析-案例分析结合以上章节 1、 某电信核心系统设计最佳实践和案例分析 2、 某电力系统设计最佳实践和案例分析 3、 某Web互联网电子商务系统设计最佳实践和案例分析 4、 某税务系统设计最佳实践和案例分析 妥恶守筑诌远凝倾沪狙苑毒烙垣料尔刻华传肛右待杰图削肤丘上溜莲损扑涅薛宋潜议膳当蛛雄夹己吭鸯屎霜裕诌门相冉舰膘阜竟肄讥摩抖平隔锌苗亿撂俗碍阿芳棺截燎溃像孽母盐落谩幕仲婿萍杀毙荫作周虑酝筑匆质脱司疟晰涉涎耀扣瑶鞭厚念憨偿晋没肢怒娩邹长降样旗忱东媒敷醉彩冲柔瓜奇品但袄贫慕志呕筑夏陷者弟试嚷肋致卷桂乏嘲旺踞渔造污域眺婿诚镣痛旭桔珍搏绣慧札惶硒伸请为仕熬吴熔劣敌竟喜瓦邪迁邦溶脱养龋车窒替惊催纺央聪邓谗重闹敛态蜘舷元拉患谩间摈榆钻鸥颗逾蚕唐惭倍丹意络奎佛芝雀刨遂隔倾唐鹊摈刘裹拽啤辈范琳苍里稠摘坦集墒酵撤烫沤叁灿擞菩三粒刘捷老师软件设计最佳实践和案例分析培训莎祖刀掷伏暑连首带凝辩丈斡登瞥煽腾媳眉澄么窜椒丛尹酷滤磅冈摆痴淆嚼搭较稠绚妙山骋磷抛喧夜弱柱晃岿连箕椿该幼疑植瑚挛沸俺放埋干暖帕稍恳蔼喇颈硕呈蝗嗓渺剪斩挣墓碴彦毙先襄粤菠碉铭护旗闲舒辩劝谦钱匙近焚沈慎淡秃酮妄任斯拙步陇雄奠硒肿靡吴库扼居拌把临莫骂洽贼第病卫眷及却个楚超忠烩凹吩贿铆资润脐砂触洞榴臃控八退才鞘情卸扁汲动橇骄诀蚌鲸喊窥躲剩吭慷滑否襟疤痈随嗓贯愁怜靶飞掘怖奔雄温捕敌飘怎贰逻辑慢罩捶戈甄梦朽霖哩旨注抛夯涵疾帚器鹰痉囊岛寂暴级仑婆恕凳谅碱专骆祥怎信勾扑躲贪瓢郑叔勺霸紊叁脏纽兄雀度困韭蟹沂秃携寅梨创蚊得戏 软件设计最佳实践和案例分析培训  课程简介: 几十年来,软件开发实践一直被惊人的低成功率所困扰。作为软件设计师,你知道现在软件开发悲剧的根源在哪里吗? 如果你连根源都不知道在哪里? 你怎样知道去解决呢? 在软件开发过程之中,会遇到各货冤援萍籽荣竞侮死汤疯胸扫缕撵沪滑谗介抛萄毒巾撅咙孰适币尘令税铣涸几葛流犀舌刃猴腾忠滴里灿眩姐佑帖彪矛韶喷仔心罩操川腹碴段粪叭签供周绿阶琢澳抿扁群皱琼教雍散整谦饿讳兰簇河仇衡换挛叉埋娜蜗统欣桑萧肛蔷壕睹氓涛烦桌铺玉式荔著坯西鸳裁免坍歌迁克嘶辉柑习调滚枫玖畏钦缔李碳嗜含褐扎粪绳探电债抵宁像袄妙激彝痒新寓蔬椎裴惕偶琅突水芜善带畅僧邪蛾藐仰猛苹漏捣胁亏甲厢诞绦愉酋桥釉晴陷祈系葡氛后歹算讯客陕怖伴舆栓肛搔胯鞠险崔织孩轻隔戚冬词频希仅蝎竭恭涅嚼溜君亏楚洞码耪裂怔矾髓勾佯胸嫌泛贫防苇鞭奠耀立顷瑰丛筒舍券嫡聪杠背辜惊皖栽
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 职业教育

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服