您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 01-北京详细设计培训教材
1®EvolvebycaseEvolvebycaseEvolvebycaseEvolvebycase软件设计过程概论内容�软件设计过程概论2软件开发生命周期—宏观过程�宏观过程的内容维度�需求:对于系统该做什么,建立并保持与客户其他涉众的一致意见,定义系统边界(划定界限)�架构与设计:将需求转化为系统设计,首先形成健壮架构,建立起系统不同元素必须用到的共同机制.设计将作为在特定实现环境中进行实现规格说明.�实现:实现(编程),单元测试以及对设计进行集成,得到一个可执行的系统�测试:对实现进行测试,确保它实现了需求(即需求得到了正确地实现)�部署:确保软件产品能被它的最终用户使用.需求/架构/设计关系3需求工程概论业务需求用户需求系统需求软件功能需求质量属性需求外部界面约束愿景和范围文档用例(场景)文档软件需求规范系统需求分析员4架构和设计�架构关注的是组件之间的关系和系统组件外部可见的属性,那么设计关注这些组件的内部结构.�架构师和设计师(详细设计)面对系统设计的不同方面软件架构师职责和成果�构架设计师负责在整个项目中对技术活动和工件进行领导和协调。构架设计师要确立每个构架视图的整体结构:视图的详细组织结构、元素的分组以及这些主要分组之间的接口。因此,与其他角色相比,构架设计师的见解重在广度,而不是深度5软件详细设计师职责和成果�设计员定义一个或几个类的职责、操作、属性及关系,并确定应如何根据实施环境对它们加以调整。此外,设计员可能要负责一个或多个设计包或设计子系统,其中包括设计包或子系统所拥有的所有类详细设计师能力要求�用例建模技术与系统需求。�软件设计技术-比如面向对象的分析设计技术。�统一建模语言UML。�实现系统时将利用的技术(比如J2EE/,net)�了解软件构架文档中所述的系统构架。�了解测试在系统中的作用。�其他技能如:具有配置管理原理等1®EvolvebycaseEvolvebycaseEvolvebycaseEvolvebycaseSoftwareArchitectureViewTopic�软件架构视图概述�软件架构目的�软件架构视图案例�软件架构视图最佳实践2软件架构定义�什么是架构?如果你问五个不同的人,可能会得到五种不同的答案。�——IvarJacobson,《AOSD中文版》�很多人都试图给“架构”下定义,而这些定义本身却很难统一。�——MartinFowler,《企业应用架构模式》软件架构定义---决策过程派和结果组成派�动词////过程观点Booch、Rumbaugh和Jacobson的定义�架构是一系列重要决策的集合。�名词/结构观点SEI定义�程序或者计算系统的软件架构是该系统的一个(或多个)结构,它由软件元素,元素的外部可见属性以及它们之间的关系组成。�架构={结构,……….}�结构={元素,外部可见属性,关系}3软件架构视图�软件架构是一种无法以简单的一维方式进行说明的复杂实体。�PaulClements《软件架构编档》�多重软件架构视图之所以必不可少,是因为各类涉众(用户,客户,开发人员,测试人员,维护人员,内部操作人员,其他人员)需要从各自的角度理解和使用架构。�BarryBoehm架构师和各类涉众�客户/用户:满足他们的业务目标和约束条件�投资人:他们想知道项目是否能够在给定的资源和进度约束下完成�开发人员:系统的构建和以后的维护与演讲�项目经理:他们组织团队,制定迭代计划�技术支持人员:系统安装/部署/准备/配置4《软件架构设计》中一则笑话1.程序员说,架构就是要决定需要编写哪些类、使用哪些现成框架,程序经理笑了;2.程序经理说,架构就是模块的划分和接口的定义,系统分析员笑了;3.分析员说,架构就是为业务领域对象的关系建模,配置管理员笑了;4.配置管理员说,架构就是开发出来的、以及编译过后的软件到底是个啥结构,数据库工程师笑了;5.数据库工程师说,架构规定了持久化数据的结构,其他一切都不过是对数据的操作而已,部署工程师笑了;6.部署工程师说,架构规定了软件部署到硬件的策略,用户笑了;7.用户说,架构就是决定一个个功能子系统如何划分,程序员又笑了。软件架构的描述------------盲人摸象5某项目架构图软件架构视图�单一的视图无法完整的表达架构,因此需要具备完整的视图集�软件系统架构视图是从特定的视角出发,专注于该视角系统的结构,模块划分,基本组件职责和主要的控制流(协作接口)。同时架构视图应该解释为什么架构是这样。�架构视图四要素�图示化主要元素和元素之间的关系�具有明确的图例,定义和说明元素�每个元素具备明确的接口和行为规范�设计原理和设计决策的信息6SEI-DocumentingSoftwareArchitecture�模块视图�组件和连接件视图�分配视图7AppliedSoftwareArchitectureAppliedSoftwareArchitectureAppliedSoftwareArchitectureAppliedSoftwareArchitecture一书�由Soni等人在AppliedSoftwareArchitecture中发表的另一种视图由四种构成软件架构的主要视图组成:描述如何在开发环境中组织源代码、二进制文件和库代码体系结构视图描述系统的动态结构执行体系结构视图描述功能分解和如何在不同的层中安排软件模块模块互连体系结构视图从主要设计元素及元素间的关系方面描述系统概念体系结构视图描述视图其他架构视图�西门子4种视图(概念,模块,代码,执行视图)�美国国防部C4ISR架构视图(操作,系统架构,技术)�RM-ODP(企业视图,信息视图,计算视图,工程视图)�IEEE-1471-20008““““4+1Views4+1Views4+1Views4+1Views””””ModelModelModelModel9Topic�软件架构视图概述�软件架构目的�软件架构视图案例�软件架构视图最佳实践你做软件架构的目的?�请问大家你做软件架构的目的?10软件架构目的�软件架构是最初设计的决策的体现(宏观决策)�软件架构是风险承担者相互交流的手段�软件架构是系统可重用,可传递的规则架构师清晰表达架构目的�一个人拥有知识,但是却没有能力清晰的表达他自己,这简直就和他从来没有任何思想一样.�希腊哲学家亚里士多德交流不完全是一种知识,而是本领,是生产力——吴建民本领1×交流本领0.3==别人对你印象(本领)0.3本领1×交流本领1.5==别人对你印象(本领)1.511软件架构的强制约束力�软件架构的3层境界�做正确的架构�正确清晰的表达架构�架构被正确的应用到系统(遵守)�西门子做法-架构强制约束力Topic�软件架构视图概述�软件架构目的�软件架构视图案例�软件架构视图最佳实践12常见软件架构视图类型�功能视图�开发视图�进程视图�部署视图�场景视图�数据视图�实现视图FunctionViewsModel�消费者:客户/用户/开发组织管理者�视角:系统的功能元素,以及它们接口,职责,交互�主要元素:系统,子系统,功能模块,子功能模块,接口�决策:�用途:开发组织划分,成本/进度的评估.13DevelopModelView�消费者:开发相关人员/测试人员�视角:系统如何开发实现�主要元素:描述系统的层,分区,包,框架,系统通用服务,业务通用服务,类和接口,系统平台和相关基础框架�决策:�用途:指导开发组织设计和开发实现14基于JavaEESpring架构案例ImplementModelView�消费者:开发相关人员/测试人员/实施人员�视角:系统交付物结构形式和相关实现规范�主要元素:�1:创建可交付物的形式(网页、DLL、可执行文件、源码)以及组织结构�2:开发编程过程必须遵守的相关规范和指南�决策:�用途:15设计和开发相关规范(指南)相关设计规范16DataModelView�消费者:数据架构师/开发相关人员�视角:系统数据模型以及数据存储/存取等�主要元素:�1:系统的核心实体模式以及相应的数据存储模型和存储方式�2:系统的数据存取相关策略�3:系统核心的数据流�决策:�用途:�模型的选择会影响最终产生系统的灵活性和可重用性.�MartinFowler分析模式17数据存取策略18数据处理流图ProcessViewsModel�消费者:性能优化/开发相关人员�视角:系统运行时线程/进程的情况�主要元素:系统进程/线程以及处理队列等�决策:�用途:19WLSProcessViewWeblogicQueues20调整ServerThread数计费系统21PhysicalViewsModel�消费者:系统集成商/系统运维人员�视角:系统逻辑组件到物理节点的物理部署和节点之间的物理网络配置�主要元素:物理节点以及节点的通信�决策:�用途:抽象部署架构22MINDMINDMINDMIND华为智能网业务受理服务器数据库服务器二次开发服务器客服接口帐务接口其他接口操作维护终端通信服务器集中监控台指令反馈联机指令骨干DCN业务受理服务器数据库服务器操作维护终端通信服务器集中监控台业务受理总部业务管理中心业务受理服务器数据库服务器操作维护终端通信服务器集中监控台业务受理……………………指令反馈用户资料帐务接口其他接口帐务接口其他接口拨号/DCNINTERNET拨号/DCNINTERNET分公司远程拨号终端代理商WEB终端分公司远程拨号终端代理商WEB终端ScenariosModelViews�消费者:设计和开发人员�视角:概括了架构上最重要的场景(最典型或者最有风险)及其非功能性需求,通过这些场景的实现,阐明了架构的广度或众多架构元素运行的方式。�主要元素:�用途:23用例视图-(系统之中最重要,最典型,最有风险)Topic�软件架构视图概述�软件架构目的�软件架构视图案例�软件架构视图最佳实践24最佳实践1-1-1-1-架构建模的方式�非标准�标准UML建模�文档描述最佳实践2-2-2-2-结合实际项目情况选择合适的视图�Notallsystemsrequireallviews:�Singleprocess:dropprocessview�VerySmallprogram:dropdeploymentview�Addingviews:�securityview�InterfaceView�ProcessView25最佳实践3-3-3-3-多视图并行设计�多视图的,是分而治之(总架构师负责协调保持一致性)�多视图可以指导不同的团队并行思维最佳实践4-4-4-4-多视图从哪一个优先�根据实际项目情况进行考虑�第一阶段�功能视图�部署视图�第二阶段�开发视图�运行视图�第三阶段�数据视图�场景视图�实现视图26最佳实践5-5-5-5-多视图可以组合�根据实际项目情况进行考虑视图组合1®EvolvebycaseEvolvebycaseEvolvebycaseEvolvebycase软件详细设计过程Topic�软件详细设计过程和成果2什么是好的软件架构,具有哪些共性?�架构由定义良好的抽象层构成,每一层代表了一种内聚的抽象,提供清晰接口,并且建立在同样良好的,受控的低层抽象设施上�每一层的接口和实现之间有清晰的分离关注,让我们能够改变一个层的实现,而不破坏它的客户对它的假设(即接口)�架构很简单:共同的行为是通过共同的抽象和共同的机制来实现.�GradyBooch面向对象分析与设计3版企业应用系统架构层业务逻辑层数据层业务通用服务系统通用服务运行模型用户层3软件详细设计活动----用例驱动�用例驱动�用例分析�用例设计�用户界面设计�类设计(核心业务逻辑)�通用机制设计�数据模型的设计活动:用例分析�用例分析的目的�确定执行用例事件流的类。�使用用例实现,将用例行为分配给那些类。�确定类的职责、属性和关联关系。�记录构架机制的使用情况。�分析步骤�补充用例说明�对每一个用例实现(从用例行为中查找分析类和将行为分配给分析类)�对每一个得到的分析类(说明分析类职责/属性和
本文标题:01-北京详细设计培训教材
链接地址:https://www.777doc.com/doc-954795 .html