1、单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,西安邮电学院计算机系 舒新峰,shuxf,单击此处编辑母版标题样式,本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。,知识点总结舒新峰 shuxf西安邮电学院计算机系 秋,统一建模语言,1/55,第一章 OO&软件建模概述,1.,软件开发模型,:,软件开发模型是软件开发全部过程、活动和任务结构框架。,软件开发模型能清楚、直观表示开发全部过程,明确要求了要完成主要活动和任务,能够作为软件项目开发工作基础。,常见模型:,瀑布模型、增量模型、迭
2、代模型、原型模型、螺旋模型、,UP,。,2/55,西安邮电学院计算机系 舒新峰,shuxf,第一章 OO&软件建模概述,2.,软件开发方法,(1),结构化方法。,(2),面向对象方法,:对象类继承通信。,特点:继承、封装、多态、消息,面向过程,VS.,面向对象,OOM,与人类习惯思维方法一致,OOM,稳定性好,OOM,可重用性好,可维护性好,较易开发大型软件产品,3/55,西安邮电学院计算机系 舒新峰,shuxf,第一章 OO&软件建模概述,3.,UML,(,Unified Modeling Language,),通用标准建模语言,能够对任何含有静态结构和动态行为系统进行建模,。,标准建模语言
3、UML,适合用于以面向对象技术来描述任何类型系统,而且适合用于系统开发不一样阶段,从需求规格描述直至系统完成后测试和维护。,统一标准,面向对象,可视化、表示能力强,独立于过程,UML,很适合于以体系结构中心、用例驱动、迭代式和渐增式软件开发过程,4/55,西安邮电学院计算机系 舒新峰,shuxf,第二章 UML组成,1.,UML,“4+1,视图”,从某个角度观察系统组成系统一个视图,每个视图都是系统描述一个投影,说明了系统某个侧面特征。,(,1,)用例视图,(,2,)逻辑视图,(,3,)组件视图,(,4,)进程视图(并发视图),(,5,)配置视图(布署视图),5/55,西安邮电学院计算机系
4、舒新峰,shuxf,第二章 UML组成,2.UML,模型图:,模型图是一组,UML,模型元素组成有向图表示,它通常由一组,节点,(,UML,基本模型元素),及,节点之间连线,(关系)组成。,(1),用例视图:用例图,(2),静态模型:类图、对象图、包图、构件图和配置图,(3),动态模型:活动图、次序图、状态图和协作图,6/55,西安邮电学院计算机系 舒新峰,shuxf,第二章 UML组成,3.,用例图,.,用例图,是表示用例和参加者及其关系载体。关系包含:,关联关系,,,依赖关系,,,实现关系,:,7/55,西安邮电学院计算机系 舒新峰,shuxf,第二章 UML组成,3.,用例图,(,续,)
5、用例之间关系,1,(包含与扩展),.,8/55,西安邮电学院计算机系 舒新峰,shuxf,第二章 UML组成,3.,用例图,(,续,),用例之间关系,2,(泛化),.,9/55,西安邮电学院计算机系 舒新峰,shuxf,第二章 UML组成,3.,用例图,(,续,),用例与参加者,用例,Use Case,:,一组用例实例(场景),其中每个实例都是系统执行一系列活动,这些活动产生了对每个参加者而言可观察返回值。,描述了从参加者角度看系统做了什么,用例模型本身不是面向对象建模技术,。,参加者,Actor:,是指在系统外部与系统交互人或其它系统,以某种方式参加了系统内用例执行。,10/55,西安邮电
6、学院计算机系 舒新峰,shuxf,第二章 UML组成,4.,交互式视图图,(,次序图、协作图,),1,),协作图,:,采取图形式展示对象间交互,object,link,次序号,消息,1:makePayment(cashTendered),1.1:create(cashTendered),:Register,:Sale,:Payment,makePayment(cashTendered),消息方向,11/55,西安邮电学院计算机系 舒新峰,shuxf,第二章 UML组成,4.,交互式视图图,(,次序图、协作图,),(续),2)次序图,:采取栅栏格式展示对象间交互,:Register,:Sale,
7、makePayment(cashTendered),makePayment(cashTendered),:Payment,create(cashTendered),12/55,西安邮电学院计算机系 舒新峰,shuxf,4.,交互式视图图,(,次序图、协作图,),(续),次序图,Vs.,协作图:,次序图,(优点)强调消息时间次序及对象生命线,(优点)大量详细表示法选项,(缺点)强制在右侧增加新对象,消耗空间大,协作图,(优点)强调结构组织,复杂交互表示更轻易,(优点)空间利用率高,和方便添加新对象,(缺点)不宜查询消息次序,表示法选项少,第二章 UML组成,13/55,西安邮电学院计算机系 舒新
8、峰,shuxf,5,活动图,活动图用于表示完成一个操作所需要活动,或者是一个用例实例(场景)活动。活动图适合描述动作流和并发处理行为。,第二章 UML组成,活动名,起点 终点 迁移 活动,判断 并发分劈,并发结合,14/55,西安邮电学院计算机系 舒新峰,shuxf,第二章 UML组成,5,活动图,实例,15/55,UML系统建模与分析设计,5,活动图,泳道图,泳道将活动图中活动化分为若干组,并把每一组指定给负责这组活动业务组织即对象。,泳道区分了负责活动对象,明确地表示了哪些活动是由哪些对象进行。,每个活动只能明确地属于一个泳道。,第二章 UML组成,16/55,西安邮电学院计算机系 舒新峰
9、shuxf,6,状态图(状态机),状态图,(State Diagram),一个对象在其生存期间动态行为,表现对象响应事件所经历状态序列以及伴随动作。,并不是全部类都有对应状态图。状态图只适合用于:,含有若干个确定状态,类行为在这些状态下会受到影响且被不一样状态改变。,第二章 UML组成,17/55,西安邮电学院计算机系 舒新峰,shuxf,状态图活动图区分与联络,(,1,)相同图形符号。,(,2,)描述一个系统或对象在生存周期状态或行为。,(,3,)描述系统或对象在多进程中同时或异步操作并发行为。,(,4,)用条件分支来描述系统或对象行为控制流。,(,1,)触发状态(活动)发生迁移机制不一样
10、活动状态迁移不需要事件触发,活动执行完成能够直接进入下一个活动状态。,(,2,)描述多个对象共同完成一个操作机制不一样。,活动图置于责任区(泳道)中,责任区将活 动按责任目标和组织归属标准分类。,状态图采取状态嵌套方式描述多对象协作。,第二章 UML组成,18/55,西安邮电学院计算机系 舒新峰,shuxf,7,、类图,类图表示系统中类及类和类之间关系,用于对系统静态结构进行描述。类用来表示系统中需要处理事物,.,类关系,(1)关联:关联表示两个类对象之间存在某种语义上联络。,(,2,)聚集:聚集也称为聚合,关联特例。聚集表示类与类之间关系是整体与部分关系。,(3)泛化:,UML,中泛化关
11、系就是通常所说继承关系,它是通用元素和详细元素之间一个分类关系。,(4)依赖和细化,。,第二章 UML组成,19/55,西安邮电学院计算机系 舒新峰,shuxf,2),类关系,关联,订货,用户,*,1,Person,Company,+employer,+employee,第二章 UML组成,20/55,西安邮电学院计算机系 舒新峰,shuxf,2),类关系,关联,2,用户,供给商,商品,订货,商品编号,商品名,单价,*,*,*,第二章 UML组成,21/55,西安邮电学院计算机系 舒新峰,shuxf,2),类关系,聚集,聚集也称为聚合,是关联特例。聚集表示类与类之间关系是整体与部分关系。,(1
12、共享聚集(聚合):,聚集关系中处于部分方对象可同时参加多个处于整体方对象组成。,(2)组合聚集(组合):,部分类完全隶属于整体类,部分与整体共存,整体不存在部分也随之消失。,第二章 UML组成,22/55,西安邮电学院计算机系 舒新峰,shuxf,2),类关系,聚集,Company,Department,*,1.1,多边形,点,圆,格式,颜色,填充否,1,*,1,*,1,3*,ordered,第二章 UML组成,23/55,西安邮电学院计算机系 舒新峰,shuxf,2),类关系,泛化,UML,中泛化关系就是通常所说继承关系(或普通与特殊关系)。,第二章 UML组成,24/55,西安邮电学院计
13、算机系 舒新峰,shuxf,2),类关系,依赖,两个类之间有依赖,表明其中一个类(客户类)依赖于另一个类(供给类)所提供一些服务,。,FilmClip,Channel,客户类,服务类,第二章 UML组成,25/55,西安邮电学院计算机系 舒新峰,shuxf,2),类关系,细化,当对同一个事物在不一样抽象层次上描述时,这些描述之间含有细化关系。细化用来协调不一样阶段模型之间关系。,第二章 UML组成,26/55,西安邮电学院计算机系 舒新峰,shuxf,第七章 模式与对象设计,8,构件图(,Component Diagram,),构件图由构件、接口及构件之间关系组成。构件图主要用于系统静态实现视
14、图模型,经过构件依赖关系描述系统软件组织结构,展示系统不一样物理构件及其关系。,系统业务模型:业务过程和文档。,系统开发管理模型:开发期间产物及关系,系统实现模型:系统实现构件建模,系统物理配置模型:数据文件、日志、安装,/,卸载等文件构件建模,集成系统模型:对,API,建模,帮助利用已经有组件。,27/55,西安邮电学院计算机系 舒新峰,shuxf,第七章 模式与对象设计,8,构件图(,Component Diagram,),(1),构件,:,系统中遵从并实现一组接口物理、可替换软件模块,。构件是软件复用基本物理实现单元,是逻辑元素模型(类、接口、协同等)物理包,28/55,西安邮电学院计算
15、机系 舒新峰,shuxf,第七章 模式与对象设计,8,构件图(,Component Diagram,),(2),构件接口,:,一个构件能够定义对其它构件可见接口。构件间依赖经过指向所使用构件接口来表示。接口描述一个构件能提供服务操作,是一个有操作而无实现类。包含输入和输出接口。,29/55,西安邮电学院计算机系 舒新峰,shuxf,第七章 模式与对象设计,9,布署图(,Deployment Diagram,),由节点和节点之间联络组成,描述了处理器、设备和软件构件运行时体系结构。,。,30/55,西安邮电学院计算机系 舒新峰,shuxf,9,布署图,结点,节点是存在于运行时代表计算资源物理元素
16、能够代表一个物理硬件设备或软件元素。,包含:处理器和设备两种类型,第七章 模式与对象设计,31/55,西安邮电学院计算机系 舒新峰,shuxf,10,布署图,结点间联络,节点间经过物理连接发生联络,以从硬件方面确保系统各节点之间协同运行。包含通讯关联、依赖联络等。,第七章 模式与对象设计,32/55,西安邮电学院计算机系 舒新峰,shuxf,第六章 从需求到设计,11.,包图,(,Package Diagram,),概念性模型管理工具,用于将,大型软件系统中大量建模元素有序组织起来,。,利用包能够把,语义上相近,可能一起变更模型元素组织在同一个包中,对包中元素作为一个整体对待,而且控制它们可
17、视性和存取。,包拥有内容,包含类、接口、组件、节点、协同。,Use Case,、图,甚至其它包。,33/55,西安邮电学院计算机系 舒新峰,shuxf,第三章 Unified Process,34/55,西安邮电学院计算机系 舒新峰,shuxf,第三章 Unified Process,UP,组成:,二维面向对象开发模型,兼顾技术和管理,。,9,工作流,:6,过程工作流,(,业务建模需求分析与设计实施测试布署,),和,3,个支持工作流(,配置和变更管理项目管理环境,),4,个阶段:,初始细化结构交付,UP,迭代策略。,UP,迭代开发策略,:,以体系结构为中心,以质量管理和风险控制为目标,以用例为
18、驱动,采取迭代式以螺旋上升模式进行软件开发,。,35/55,西安邮电学院计算机系 舒新峰,shuxf,第四章 初始阶段(Inception),1.,初始阶段目标和任务:,做适当调研,以形成对新系统整体目标和可行性形成一个合理意见。,建立项目标软件范围和边界条件,包含一个操作“前景”,“接收准则”和产品中包含什么,不包含什么,确定关键用例,这是系统运行主要场景,它将决定系统设计方案,针对主要场景,确定或者演示最少一个备选系统结构,对整个项目预计总成本和计划,(,更详细预计将安排在细化阶段中,),预计可能风险,(,不可预计性起源),为项目准备支持环境,36/55,西安邮电学院计算机系 舒新峰,sh
19、uxf,第四章 初始阶段(Inception),2.,初始阶段制品:,用例模型用例描述,词汇表,补充性规格说明,前景,业务规则,37/55,西安邮电学院计算机系 舒新峰,shuxf,第四章 初始阶段(Inception),3.,用例描述,摘要:介绍描述用例,通常只给出主成功场景。,非正式:用若干非正式段落来描述用例,通常给出多个不一样场景。,详述:详细描述用例,通常给出全部步骤及场景,并给出前置和后置条件等细节,注意:用例描述方法,38/55,西安邮电学院计算机系 舒新峰,shuxf,第四章 初始阶段(Inception),4.,用例获取过程,(1),选择系统边界,(2),寻找参加者,(3),
20、确定每个参加者目标,(4),定义用例,5.,用例定义,:,普通为每一个用户目标定义用例,确定用例经验方法:,(1),老板测试:必须看到可量化价值,(2)EBP,:能够增加可量化业务价值,而且以持久状态留下数据,(3),规模测试:,39/55,西安邮电学院计算机系 舒新峰,shuxf,第四章 初始阶段(Inception),6.RUP,与用例,(1),意义:统计,功效需求;迭代计划主要部分,预算关键输入;实现驱动设计;影响用户手册和测试,(2),初始阶段:确定系统目标、范围、涉众;绝大部分摘要描述、,10,20,详述;确定是否继续开发,(3),细化阶段:,80,90,被细化描述;分屡次迭代,(4
21、),结构阶段:屡次时间定量迭代;补充次要用例,40/55,西安邮电学院计算机系 舒新峰,shuxf,第五章 细化阶段(Elaboration),1.,细化阶段目标和任务,:,构建关键,体系,架构,处理高风险问题,完成绝大部分需求定义,并预计,并预计总体计划和资源,确保架构,需求和计划足够稳定,风险被充分躲避,确定和处理项目中全部与架构亲密相关风险,从与架构亲密相关场景中确定一个基准体系架构,产生一个到达产品级质量水准演化性原型,也能够是一个或更多个探索型,抛弃型原型,能够展示基准体系架构以合理价格和适当时间支持系统需求,建立一个支持环境,41/55,西安邮电学院计算机系 舒新峰,shuxf,第
22、五章 细化阶段(Elaboration),2.,关键活动,:,尽快定义和验证体系架构,并确定体系架构基线,细化构想(,Vision,),为结构阶段建立详细迭代计划并建立基线,细化开发用例并将其布署到开发环境中,细化体系架构并选择组件,3.,关键思想和实践,实施短时间定量、风险驱动迭代,及早开始编程,对架构关键和风险部分进行适应性设计,实现和测试,尽早,频繁,实际测试,基于来自测试,用户,开发者反馈进行调整,经过一系列讨论会,详细编写大部分用例和其它需求,每个细化迭代举行一次,42/55,西安邮电学院计算机系 舒新峰,shuxf,第五章 细化阶段(Elaboration),4.,制订迭代计划,:
23、经过风险、覆盖范围和关键程度组织需求和迭代。,风险:,技术复杂性;其它原因,覆盖性:,在早期迭代中,系统中主要部分都有所包括,关键性:,含有高业务价值功效,在每个迭代前将用例和特征进行排序,迭代单位:,(1),用例;,(2),场景,43/55,西安邮电学院计算机系 舒新峰,shuxf,第五章 细化阶段(Elaboration),5.,细化阶段制品,:,领域模型,设计模型,软件架构文档,数据模型,用例示意板,用户界面模型,44/55,西安邮电学院计算机系 舒新峰,shuxf,第五章 细化阶段(Elaboration),6.,领域模型,(,Domain Model),领域模型是对真实世界中概念类
24、表示,而不是软件对象表示。它不是用来描述软件类、软件架构领域层或有职责软件对象一组图。,领域模型用一套类图表示,但,类没有操作,。,领域模型能够显示:领域对象或者概念类;概念类之间关联;概念类属性,概念类起源:现实(组织、地点、设备等)对象;业务(业务实体和概念)对象;过程(需要统计时间)对象。,45/55,西安邮电学院计算机系 舒新峰,shuxf,第五章 细化阶段(Elaboration),8.,系统次序图,表述系统是什么,而不解释它是怎样做,将系统作为黑盒子,系统次序图,它展示了对一个特定用例,外部参加者产生事件,它们次序以及系统内事件,46/55,西安邮电学院计算机系 舒新峰,shuxf
25、第五章 细化阶段(Elaboration),8.,系统次序图(续),enterItem(itemID,quantity),:Cashier,endSale(),makePayment(amount),system boundary,:System,makeNewSale(),47/55,西安邮电学院计算机系 舒新峰,shuxf,第五章 细化阶段(Elaboration),9.,操作契约,经过,领域模型,中对象,状态变换,(,实例创建或删除,;,属性修改,;,关联形成或者打破,),,定义了,系统操作执行后,详细系统行为,.,契约,CO2:enterItem,操作,:enterItem(item
26、ID:ItemID,quantity:integer),前提(,Preconditions,),:There is a sale underway,后置条件(,Postconditions,),:,一个,SalesLineItem,实例,sli,被创建;,Sli,与当前,Sale,对象相关联;,sli.quantity,数值被赋值,依据,itemID,匹配,,sli,与,ProductSpecification,相关联,48/55,西安邮电学院计算机系 舒新峰,shuxf,第六章 从需求到设计,1.,软件逻辑体系结构,逻辑架构(,Logical Architecture,),是软件类宏观组织结
27、构,它将软件类组织成包(命名空间),子系统和层等。,层(,Layer,),:对类、包或子系统粗粒度分组,含有对系统主要方面加以内聚职责。较高层能够调用较低层。,常见层:,用户界面,应用逻辑和领域对象,技术服务,49/55,西安邮电学院计算机系 舒新峰,shuxf,经典分层模式,Domain,UI,Swing,not the Java,Swing libraries,but,our GUI classes,based on Swing,Web,Sales,Payments,Taxes,Technical Services,Persistence,Logging,RulesEngine,50/55
28、西安邮电学院计算机系 舒新峰,shuxf,第六章 从需求到设计,2.,软件架构,架构,是一组主要决议,其中包括,软件系统组织,,对结构元素及其组成系统接口选择,这些元素特定于其相互协作行为,这些结构和行为元素到规模更大子系统组成,以及指导该组织结构架构格调。,3.,分层设计模式(模型,-,视图分离,如,MVC,架构),系统大型逻辑结构组织为独立,职责相关离散层,含有,清楚内聚,关注分离,。较低层是低级别和普通性服务,较高层则是与应用相关。,协作与耦合从较高层到较低层进行,防止从较低层到较高层耦合,51/55,西安邮电学院计算机系 舒新峰,shuxf,第七章 模式与对象设计,1,职责和职责驱动
29、设计,类契约和责任,分为:,行为职责,和,认知职责,。,在对象设计中,职责被分配给对象,称为,RDD,。,2,设计模式,设计模式:对被用来在特定场景下处理普通设计问题类和相互通信对象描述。即,对特定问题描述或处理方案。,目标,:,易于了解,维护,扩展和重用,52/55,西安邮电学院计算机系 舒新峰,shuxf,第七章 模式与对象设计,3,GRASP,模式,控制器(,Controller,),创建者(,Creator,),信息教授(,Information Expert,),高度内聚(,High Cohesion,),低耦合(,Low Coupling,),53/55,西安邮电学院计算机系 舒新
30、峰,shuxf,4,命令,查询分类标准,CQS,(,Command-Query Separation Principle,)是针对方法经典,OO,设计标准,Meyer88,。该标准指出,任何方法都可能使以下情况之一:,执行动作,(更新、调整,,)命令方法,这种方法通常含有改变对象状态等副作用,而且是,void,(没有返回值)。,向调用者,返回数据查询,,这种方法没有副作用,不会永久性改变任何对象状态。,一个方法不应该同时属于以上两种类型。,第七章 模式与对象设计,54/55,西安邮电学院计算机系 舒新峰,shuxf,5,对象可见性,可见性,Visibility,是对象看到或引用其它对象能力,.,为了使发送者对象能够向接收者对象发送消息,发送者必须含有接收者可见性,即发送者必须拥有对接收者对象某种引用或指针,属性可见性,:B,是,A,属性,参数可见性,:B,是,A,方法中参数,局部可见性,:B,是,A,中方法局部对象(不是参数),全局可见性,:B,含有某种方式全局可见性,第七章 模式与对象设计,55/55,西安邮电学院计算机系 舒新峰,shuxf,






