1高质量架构设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

范钢高质量架构设计案例分析与最佳实践课程内容简介高可靠的架构设计什么是高可靠如何实现高可靠应对大数据架构设计什么是云计算大数据相关技术应对大并发架构设计讲解相关技术讲解设计思路高质量软件架构设计什么是架构设计怎样做架构设计剖析什么是软件架构设计架构师应具备的素质和要求讲解架构设计5视图法•讲解架构设计的逻辑架构•讲解架构设计的开发架构•讲解架构设计的数据架构•讲解架构设计的物理架构与运行架构讲解如何进行恰如其分的架构设计剖析架构设计常见的误区软件架构设计一个值得思考的问题我们为什么要进行架构设计?我们以往没有架构设计,同样设计出了软件现在我们不进行架构设计,又会怎样呢?架构设计是不是可有可无?开发一个简单软件:1个人完成找个大牛就搞定啦从需求分析、设计、开发到测试1个人搞定不需要任何设计开发文档在图纸上设计草图,想清楚了就可以开始了存在的问题设计非常随意开发者一走人就瞎了软件复杂了点儿:5个人完成我们这样开发:首先项目经理划分模块1人分1模块,各自分头干最后集成代码存在的问题各自为政,沟通少代码复用差尽量避免模块间交互现在开会了小魏:库存小王:财会芳芳:统计大一点儿的软件:10个人完成我们得组织一下了:模块间交互越来越多软件系统越来越复杂参与的人越来越多共性的问题越来越多存在的问题软件开始让人抓狂了必须要有人全局思考Oh,shit!软件规模越来越大:10人以上我们不得不思考这些问题分工越来越细:需求分析师、设计师、开发人员、测试人员结构越来越复杂:网络环境、应用部署、软件框架、分层结构难题越来越多:性能效率、可靠性、安全性什么是软件架构?是从宏观上说明一套软件系统的组成与特性软件可以提供的功能软件的代码层次结构软件的部署与网络结构软件的数据结构软件的性能特征逻辑架构开发架构物理架构数据架构运行架构什么是架构设计?软件架构设计是一系列有层次的决策功能与展现的决策技术架构的决策自主研发还是合作商业软件还是开源软件做出正确决策是区分架构师好与坏的关键指标决策不是拍脑门一定要用数据说话剖析什么是软件架构设计架构师应具备的素质和要求讲解架构设计5视图法•讲解架构设计的逻辑架构•讲解架构设计的开发架构•讲解架构设计的数据架构•讲解架构设计的物理架构与运行架构讲解如何进行恰如其分的架构设计剖析架构设计常见的误区软件架构设计什么是架构师?架构师是介于需求与研发的中间人能够统领全局的将军能够将需求转换为技术能够为软件研发提供指导需要全面思考软件系统方方面面的问题能够攻关和搞定重要技术难题良好的沟通能力良好的大局观见多识广的大牛公司可信赖的干城洞悉前沿与市场嗅觉缜密地思考问题架构师应具备的思维能力全局思维战略思维前瞻思维抽象思维逆向思维从业务、市场,到技术实现从软件的过去、现在,到将来从外部客户,到内部研发从软件研发,到硬件部署从功能实现,到运行效率在所在行业的发展战略在业务领域的发展战略在技术方向的发展战略在潜在市场的发展战略市场趋势的发展动向前沿技术的发展动向竞争对手的发展动向合作伙伴的发展动向各项业务需求抽象成功能模块各项功能的实现抽象成软件架构假如不实现会怎样?假如没搞定会怎样?假如没有它会怎样?假如被延期会怎样?架构师应具备的素质熟练的沟通能力丰富的想象与创造能力权衡利弊取舍的能力有广阔的知识与丰富的经验超强的学习能力全方位思考分析的能力架构师的分类解决方案架构师•与客户探讨业务需求•将业务、市场,与技术、产品结合起来•为客户提供解决他们需求的方案系统架构师•最终确认和评估系统需求,并将业务转换为技术•为研发人员制订核心框架与技术规范•为研发工作澄清技术细节并扫清技术障碍基础平台架构师•提炼和优化公司以往的技术沉淀•设计与研发基础性的、可共用的软件开发平台企业架构师•为企业规划未来的技术路线与发展方向剖析什么是软件架构设计架构师应具备的素质和要求讲解架构设计5视图法•讲解架构设计的逻辑架构•讲解架构设计的开发架构•讲解架构设计的数据架构•讲解架构设计的物理架构与运行架构讲解如何进行恰如其分的架构设计剖析架构设计常见的误区软件架构设计架构设计5视图法5视图法分析的意义全面分析软件系统方方面面的问题尽早地发现和排除项目风险与不确定因素从不同角度去展现要设计的软件系统为项目进行中不同的干系人提供指导:逻辑架构描述系统功能,并指导系统测试开发架构规范软件的层次及代码风格数据架构指导数据库的设计运行架构定义了一些关键过程的设计物理架构明确软件如何部署与实施5视图法的设计步骤架构设计往往从逻辑架构开始分析和确认需求逐步开始开展开发架构与数据架构的设计软件分层、分包、技术框架,以及部分质量属性数据库设计对于一些关键性功能进行运行架构设计性能、可伸缩性、可靠性、安全性往往后期逐步开始考虑物理架构设计服务器、网络、安装部署等等逻辑架构开发架构运行架构物理架构数据架构什么是逻辑架构?着重考虑软件功能性需求系统功能划分为几个子系统与功能模块?向什么用户提供什么样的功能?每个功能都是怎样的操作流程与分支?如何通过界面与用户交互?怎样交互?应当设计哪些类与界面?怎样设计?与哪些外部系统接口?怎样接口?系统功能树用例模型用例描述鲁棒分析领域模型接口描述逻辑架构的设计过程粗•整体概况•系统功能树•模块划分•整体概况•系统功能树•模块划分细•每个功能•每个流程•每个类与接口•每个功能•每个流程•每个类与接口粗•重新定义功能•重新划分模块•重新定义功能•重新划分模块一个面向全国的绩效考核系统如何进行用例分析如何进行流程分析如何进行领域分析案例:原始需求系统根据操作规范制定考核指标,通过分析业务系统的数据产生考核结果;过错责任人可以对自己的过错提出申辩,通过申辩受理、调查确认、领导审批后,对过错进行调整;对最终考核结果的过错责任人进行过错追究,根据过错程度进行罚款与行政追究;各级机关对当月工作情况进行通报;工作性质与内容相似的部门相互进行评比整体流程分析执行考核申辩调整责任追究执法通报综合评比是否对考核结果有异议[是][否]只能有一个起点业务操作条件判断同步操作可以有多个终点整体用例分析执行考核每日自动执行-触发申辩调整执行追究生成通报综合评比过错责任人-调查确认系统考核管理员-下达考核指令基层考核管理员-受理、销号-维护结果、人工追究-通报生成-制作通报-制作评比组-下达综合评比指令调查确认人-提出申请参与者:时间参与者:角色用例系统边界申辩调整的用例分析用例描述用例标识XM201117-SBTZ-01用例名称下达考核指令创建人范钢创建日期2011-7-16版本号V1.0用例类型业务功能用例描述系统考核管理员对月底自动考核已经完成的考核年月下达考核指令,标志该考核年月可以开始申辩调整角色系统考核管理员触发事件系统考核管理员进入下达考核指令前置条件月底自动考核已经完成事件流基流1.系统考核管理员进入下达考核指令,输入考核年月,执行指令;2.标志该考核年月已经下达考核指令,可以开始申辩调整。分支流无替代流无后置条件标志该考核年月已经下达考核指令,可以开始申辩调整。非功能需求应当给予提示,避免系统考核管理员误操作假设与约束无补充规格说明书无备注无优先级中事件流主流、成功流:所有步骤都执行成功的情况下执行的流程。可以不走的流程;应当有进入条件。异常流:异常情况的处理流程,应当有异常情况定义。不要有界面描述流程分析与行动图(1)•谁触发执行?•最后存到哪里?•存什么内容?不能回答这些问题:流程分析与行动图(2)流程分析与行动图(3)控制流数据流实体对象领域分析与领域模型+业务发生税务机关•现实世界有什么事物→就有什么对象•现实世界有什么行为→就有什么方法•现实世界是什么关系→就有什么关联•什么是对象?什么是属性?•名称的多重含义细化架构与对象分析(1)细化架构与对象分析(2)细化架构与对象分析(3)细化架构与对象分析(4)分子数:int分母数:int过错数:int正确率:int指标定义:Object指标1:考核指标111111过错标准:Object=标准1过错类型1:过错类型考核年月:int执法信息:Object是否正确:boolean=是是否预警:boolean行为1:执法行为考核年月:int执法信息:Object是否正确:boolean=否是否预警:boolean行为1:执法行为考核年月:int执法信息:Object是否正确:boolean=是是否预警:boolean行为1:执法行为是否过错:boolean=否分数:int过错1:过错行为是否过错:boolean=是分数:int过错2:过错行为11每个执法行为对应一种过错,满足这个过错标准即为过错,不满足即为正确过错标准:Object=标准3过错类型3:过错类型11是否过错:boolean=否分数:int过错3:过错行为11过错标准:Object=标准2过错类型2:过错类型事件流基流1.过错责任人进入申辩申请,输入考核年月,执行查询;2.显示出该责任人在该年月存在的所有类型的过错行为;3.选择某个类型的过错行为,显示该责任人在这个类型下的所有过错行为;4.选择一个或多个要申辩的过错行为,制作申辩申请单;5.在申辩申请单中,对每项过错行为选择申辩请求类型。申辩请求类型可以是无过错调整、过错责任人调整和追加责任人调整;6.填写申辩理由,提交申辩申请单;7.按照过错行为的类型,如果该过错行为是本级受理,则传递给本级考核管理员去受理;如果该过错行为是上级受理,则传递给上级机关的考核管理员去受理。分支流6.1填写申辩理由时,还可以提交相关的资料作为附件;6.2提交申辩申请单前,可以暂存申辩申请单;替代流3.1如果该责任人在这月没有过错行为,则终止不能进入下个环节;4.1如果没有选择过错行为,则不能制作申辩申请单;6.3如果没有为每个过错行为选择申辩请求类型,或者没有填写申辩申请理由,则不能提交申辩申请单;原文分析法分析结果+查询()+年度+月份+受理类型1*+制作()+提交()+暂存()+申辩理由+附件+申辩请求类型111*+受理人*1*1+上级税务机关1*本机受理上级受理无过错调整过错责任人调整追加责任人调整鲁棒性分析与鲁棒图需求确认与可行性分析•需求必须明确•需求必须可行•功能与性能折中动手练习逻辑架构开发架构运行架构物理架构数据架构什么是开发架构?技术框架性能指标前端界面MVC层BUS层DAO层值对象基础平台用户数据库好的分层结构:各司其职界面变更业务变更数据库访问方式变更表结构变更基础平台扩展好的分层结构:支持自动化测试被测程序与Web容器解耦被测程序与数据库解耦一次工资软件的三次演变•看我是如何应对需求变更的•思考我们需要怎样的软件架构案例:最初的业务需求维护一个员工档案表每来一个新员工,录入员工档案根据员工档案每月发放工资人力专员手工录入各个工资项目汇总并计算工资打印出工资报表第一个版本的领域模型设计第一个版本的软件设计与实现需求开始变更…根据规则生成工资表基本工资来源于对员工的职务定级考核工资=职务定级×绩效考核项目提成来源于项目结束后的收益……第二个版本的领域模型设计+新员工录入()+员工档案更新()+员工离职()+编号+姓名+性别+出生日期+文化程度+职务+职称+入职时间+离职时间+工资卡号+工资计算()+工资发放()+打印工资表()+年度+月份+基本工资+考核工资+业务费+项目提成+奖金+个人所得税+住房公积金+医疗保险+工伤保险+失业保险+迟到+早退+旷工+请假+应发工资+实发工资1*+部门编号+部门名称1*+编号+职务名称+编号+职称名称+编号+文化程度1*1*1*+编号+级别名称+职务类型+基本工资+考核工资+业务费11+研发项目录入()+研发项目调整()+计算项目提成()+编号+项目名称+项目经理+起始时间+结束时间+项目收益+项目成本1+项目成员*+奖金录入()+计算奖金()+编号+奖金项目+金额+发放时间10..*+设定员工保险()+计算保险()+编号+住房公积金+医疗保险+工伤保险+事业保险+养老保险11+考勤录入()+计算考勤扣款()+年度+月份

1 / 113
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功