您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件架构案例分析和实践 (内部培训)
1第一篇基础理论一、架构设计的内涵1.概念和定义2.架构原理3.架构的三个层次4.企业架构设计的产物5.大型应用系统架构设计的产物6.详细设计的产物课程目录三、详细设计之职责分配1.GRASP设计模式2.应用案例分析3.构件化设计四、理论提炼与总结1.概念设计与鲁棒图2逻辑架构设计的分层子系统接口和划分原则6.详细设计的产物二、架构设计的外延1.ADMEMS方法体系2.架构与软件工程3.架构与框架4.架构与模式5.架构师职责第二篇详细设计篇(中小型项目案例)一、良好需求是优秀设计的开端1.确定业务模式2.界定业务范围2.逻辑架构设计的分层、子系统、接口和划分原则3.设计模式和应用要点4.数据架构设计的数据分布第三篇网站架构变迁与交互设计(大型网站案例)一、用户体验与交互设计1.基本概念2.6大设计原则3.亚马逊网站案例剖析二、千万级访问量的大型网站架构变迁1.物理分离webserver和数据库2.增加页面缓存3.细化详细需求4.制定开发计划5.敏捷需求方法二、详细设计之领域建模1.识别和分析类2.基本类关系、OR映射及代码实现3.领域模型中的常见问题4.嵌入式项目的特点增加页面缓存3.增加页面片段缓存4.数据缓存5.增加webserver6.分库7.分表、DAL和分布式缓存8.增加更多的webserver9.数据读写分离和廉价存储方案10.大型分布式应用和廉价服务器群时代第五篇企业架构设计(集团企业案例)一、体系结构概述1.基本概念2.主要内容和组成3.作用意义第四篇大型应用系统架构设计综合案例(大型应用系统案例)一、需求分析案例练习1.案例背景介绍2.提出问题,捕获需求3工作量与开发计划制定课程目录(续)二、主流体系结构方法简介1.美国联邦体系结构设计(FEA)2.美军国防部体系结构设计(DoDAF)3.企业架构框架(TOGAF)4.向服务的建模和架构(SOMA)三、企业架构设计要点与案例剖析1.业务架构设计2.数据架构设计3.应用系统架构设计4.1IT基础架构设计3.工作量与开发计划制定二、架构设计案例练习1.典型架构分析与未来架构简介2.架构部署视图设计案例练习3.架构组成视图设计案例练习4.架构质量属性设计案例练习5.详细设计案例练习6.大型应用系统架构设计理论总结三、架构设计与管理1.变更管理与架构产品线2.测试用例与架构3.模式与复用的思想4.各类架构模型的回顾2教学形式和目的多人一组,按公司模拟演练。通过案例的全过程仿真,体,。仿,会项目开发全过程中:•各个阶段的划分方法和里程碑;•设计人员在各个阶段的岗位职责和验收标准;•设计人员与各类角色的配合与衔接;•架构设计在不同案例中的区别(企业架构、网站、应用系统、大型、中小型、嵌入式等)。2013-7-43大型、中小型、嵌入式等)。“软件架构案例分析与实践”课程第一篇基础理论3架构=组成单元的结构+组成单元的关系+原则和指南IEEE的定义:组成单元即包括软件、硬件等物理部件,又包括数据、活动、人员等逻辑部件;系统结构不仅包括系统的物理结构,还包括系统在较高抽象层次上的逻辑结构;组成单元之间的关系架构定义还包括系统在较高抽象层次上的逻辑结构;组成单元之间的关系包括层次、布局、边界、接口关系等。架构框架架构描述制图标准建筑蓝图2013-7-45体系架构建筑结构建筑领域复杂系统领域架构定义•软件架构包含了关于以下问题的重要决策–软件系统的组织;–选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为现的行为;–如何组合这些元素,使它们逐渐合成为更大的子系统–用于指导这个系统组织的架构风格:这些元素以及它们的接口,协作和交互–某个软件的架构是该系统的一个或多个结构,每个结构均由软件元素,这些元素的外部属性,这些元素之间的交互关系组成•软件架构不仅仅注重软件本身的结构和行为,还注软件架构不仅仅注软件本身的结构和行为,注重其他特性:使用,功能性,性能,弹性,重用,可理解性,经济和技术的限制及权衡4架构定义什么是架构•1.什么是架构•2.架构重要性•3.什么是好的架构•4.架构工程师5架构的原理……2013-7-49……架构设计多视图方法示意架构描述视角用户管理人员视点视点……复杂系统视角视角视角视图视图视图2013-7-410……设计人员视点视角模型模型6什么是架构•1.什么是架构•2.架构重要性•3.什么是好的架构•4.架构工程师架构的三个层次顶层顶层顶层顶层系统系统系统系统详细详细设计设计详细详细设计设计企业架构视角设计设计设计设计系统架构视角架构架构设计设计架构架构设计设计开发架构视角设计设计设计设计7做什么(What)如何做(How)在哪里(Where)谁(Who)何时(When)为什么(Why)数据功能网络人员时间动机范围(背景)规划者企业架构的多视角——Zachman框架业务模型(概念)所有者系统模型(逻辑)设计者技术模型(物理)承建者详细表示(背景之外)分包者最终用户Zh框架是个6×6矩阵纵向从规划者所有者设计者承建者分包者Zachman框架是一个6×6矩阵:纵向从规划者、所有者、设计者、承建者、分包者和最终用户六个视角来划分,建立目标/范围、业务模型、系统模型、技术模型、详细表达、运行功能等模型;横向从数据(What)、功能(How)、网络(Where)、人员(Who)、时间(When)、动机(Why)等6个方面的模型,并分别由实体-关系模型(Entity-Relationship)、流程-I/O模型(Input-Process-Output)、节点-链接模型(Node-Link)、人员-工作模型(People-Work)、时间-周期模型(Time-Cycle)、目标-手段模型(Ends-Means)来表达。架构原则、愿景和需求预备阶段架构原则架构愿景业务战略技术战略业务原则架构愿景利益相关者架构需求企业需求约束假设差距业务架构信息架构技术架构技术平台服务逻辑技术构件数据数据实体逻辑数据构件应用信息系统服务逻辑应用构件动机驱动力目标目的测度组织组织位置施动者角色功能业架构内容物理技术构件物理数据构件物理应用构件功能服务流程控制功能架构实现机会及解决方案、迁移规划工作包架构契约实施治理标准指引规格容框架8“4+1”模型如图所示:系统架构的组成体系结构驱动模型Architecture-BasedSoftWareDesign---体系结构驱动,即指构成体系结构的商业、质量和功能需求的组合驱动的求的组合驱动的。9ADMEMS方法体系•多阶段还是多视图ADMEMS方法体系•多阶段还是多视图10ADMEMS方法体系•ADMEMS的三个阶段ADMEMS方法体系•PA阶段:ADMEMS矩阵法11ADMEMS方法体系•CA阶段:重大需求塑造概念架构ADMEMS方法体系•RA阶段:落地的5视图方法12ADMEMS方法体系•持续关注非功能需求ADMEMS方法体系•解决6大困惑13ADMEMS方法体系•质疑驱动的逻辑架构设计的整体思路ADMEMS方法体系•逻辑架构设计的10条经验14ADMEMS方法体系•划分子系统原则农民(8小时产出)牧牛人(8小时产出)架构的本质分析牛肉824土豆3248各自工作,各获所需的方式:农民牧牛人牛肉4(工作4小时)12(工作4小时)2013-7-428牛肉4(工作4小时)12(工作4小时)土豆16(工作4小时)24(工作4小时)——摘自《经济学原理》曼昆(美国)15交换成本的问题架构的经济作用促进分工合作;降低交换成本2013-7-429降低交换成本;项目立项阶段目标:决定干不干需求分析阶段需求分析阶段目标:建立需求基线原型验证阶段目标:通过原型验证迭代实现阶段目标:实现剩余用例交付验收阶段目标:上线使用架构与项目阶段16架构与框架人们对软件架构存在非常多的误解,其中一个最为普遍的误解就是:将架构(Architecture)和框架(Framework)混为一谈。一图胜千言,下图切中肯綮地点出了架构和框架的区别。一句话,框架是软件,架构不是软件。架构与框架框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务可以被最终应用直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。软件架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件框架之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。或许,人们常把架构和框架混为一谈的原因就在于此吧。17架构与模式软件人员常称道的“开发模式”,“架构模式”和“设计模式”中都有模式二字,究竟模式是指什么?三个名词有什么共同点和区别,尤其是架构模式和设计模式的区别在那里呢?应该怎么样给这三个名词下详细定义呢?答:•开发模式:也就是瀑布、敏捷、迭代等四种开发模式•架构模式:层、模型-视图-控制、表示-抽象-控制等•设计模式:开-闭原则、抽象类、合成/聚合原则等•编程模式:结构化编程,面向对象编程,面向方面编程AOP编程模式结构化编程,面向对象编程,面向方面编程架构师IT系统的生命周期的人员职责18架构师架构师国家人力资源和社会保障部的职业资质要求•应能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的特性;•能够对项目的系统架构进行描述、分析、设计与评估;•能够按照相关标准编写相应的设计文档;•能够与系统分析师、项目管理师相互协作、配合工作;19“软件架构案例分析与实践”课程“软件架构案例分析与实践”课程第二篇详细设计篇(中小型项目案例)第一部分良好需求是优秀设计的开端2013-7-43820案例1——订餐系统(中小型项目)员工到食堂用餐,在路途和排队上浪费很多时间并且去晚了经常会吃不到想吃的食多时间,并且去晚了经常会吃不到想吃的食物;员工对食堂的满意度不高,有将近一半的员工会选择去周边饭店用餐。因此,食堂更无法准确预测员工需求,经常会出现有些更无测员工求,现有食物因为没有卖出去只好倒掉,而员工需要的一些食物却已卖完的现象。(一)确定业务模式21主要需求方法1.用户代表访谈(涉众请求文档)1.用户代表访谈(涉众请求文档)2.需求研讨会3.原型法4.问卷调查5.学徒法6.头脑风暴会议6.头脑风暴会议7.文档“考古”需求研讨会法需求研讨会——会前准备阶段工作流程图22需求分析说明书五维三级需求法——业务分析、范围协商过程需求分析说明书需求规格说明书业务流程图业务流程分析示例23•需求分析模型——业务流程图(二)界定业务范围24•项目功能分析:从业务用例到产品用例•项目功能分析:业务边界确定25确定影响架构的关键需求设定需求优先级的方法1,影响优先级的因素下面的因素通常会影响决定优先级:•实现的成本;•顾客或者客户的价值;•实现产品所需的时间;•技术实现的容易程度;•技术实现的容易程度;•业务或者组织机构实现的容易程度;•对业务的好处;•遵守法律的要求。26设定需求优先级的方法2,在设定优先级的过程中典型的参与者有:•项目经理、他指导全过程,解决冲突,并且在必要的时候调整其它参与者的方案。•重要的客户代表,例如产品的代表者,他可以提供受益和损失程度。•开发者代表,例如开发组的技术指导者,他提供了费用和风险程度。和风险程度。需求优先级设定工具“仓库货品跟踪系统”优先级设计的矩阵范例相对权值:21111用例相对利润相对损失总价价值%相对费用费用%相对风险风险%优先级1.查询供应商订单的状态53138424813010753138.424.813.01.072.建立仓库存货清单报表972516.2511.939.10.9873.查看一个特定货品的历史记录55159.737.126.10.9574.打印货品进出数据表2153.212.413.
本文标题:软件架构案例分析和实践 (内部培训)
链接地址:https://www.777doc.com/doc-1910284 .html