一:UML定义了5类,10种模型图UML提供的基本模型图包括:(1)、用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系(2)、类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象,类图用来描述系统中各种类之间的静态结构)(3)、对象图:是类图的一种实例化图(对象图是对类图的一种实例化)(4)、包图:是一种分组机制。在UML1.1版本中,包图不再看作一种独立的模型图)(5)、状态图:描述一类对象具有的所有可能的状态及其转移关系(它展示对象所具有的所有可能的状态以及特定事件发生时状态的转移情况)(6)、顺序图:展示对象之间的一种动态协作关系(一组对象组成,随时间推移对象之间交换消息的过程,突出时间关系)(7)、合作图:从另一个角度展示对象之间的动态协作关系(对象间动态协作关系,突出消息收发关系)(8)、活动图:展示系统中各种活动的执行流程(各种活动的执行顺序、执行流程)(9)、构件图:展示程序代码的物理结构(描述程序代码的组织结构,各种构件之间的依赖关系)(10)、配置图:展示软件在硬件环境中(特别是在分布式及网络环境中)的配置关系(系统中硬件和软件的物理配置情况和系统体系结构)建模过程首先:描述需求次之:根据需求建立系统的静态模型,以构造系统的结构第三:描述系统的行为其中第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包括包图)、对象图、构件图和配置图等六种图。这些图构成了标凖建模语言UML的静态建模机制。第三步中所建立的模型或者可吧执行或者表示执行时的时序状态或交互关系,它包括状态图、活动图、顺序图和合作图等四种图。这些图构成了标准建模语言UML的动态建模机制。可用以下常用视角来描述一个系统:(1)、系统的使用实例:从系统外部的操作者的解度描述系统的功能(2)、系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能(3)、系统的构成:描述系统由哪些程序构件所组成(4)、系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题(5)、系统的配置:描述系统的软件和各种硬件设备之间的配置关系二:软件开发过程(RUP概述):迭代开发过程:由四个阶段构成,每个阶段都包含软件开发的每个过程:分析、设计、实现和测试阶段四个阶段:初始阶段、细化阶段、构造阶段、移交阶段通常在移交阶段后进行总体测试、性能测试、用户培训等1.初始阶段:项目的总体需求、可行性分析等,并确认是否启动该项目2.细化阶段:(1/5周期)启动该项目后,(1)、实际要做什么?(2)、如何做?(3)、将采用什么技术?风险分析和风险管理(1)、需求风险:不能偏离用户需要,要充分了解用户需求及各需求的相对优化程度处理需求风险:用例分析技术。列出该系统的所有用例,安排开发人员与客户交流,以便收集用例。其中要对领域概念模型作充分说明(行业术语,如电信中的产品)。建立域模型:类图、活动图(2)、技术风险:你是否有相关技术经验,熟悉程度如何?使用类图和交互图来描述构件间的通信使用包图来描述构件的高层结构使用配置图来描述系统功能的分配(3)、技能风险:能否得到相关技术人才或专家?(4)、政策风险:是否存在一些政策性因素影响整个项目的进行细化阶段的重要结果之一:建立系统的基线体系结构(1)、用例表:用于描述系统需求(2)、域模型:用于获取应用领域中的关键类的起点,反映你对系统将要提供的业务和服务的理解(3)、技术平台:描述重要的实现技术以及技术间的协作和集成细化阶段何时结束:(1)、开发人员能给项目估算(2)、考虑所有的风险,并制定出相应对策和计划计划:1.第一阶段:用例是制定项目计划的基chu,对用例进行分类:(1)、用户应当列出用例的优先级。通常为三级,首先要实现的,短期内可以没有,长期内可以没有的(2)、对于每一个用例,开发人员都应考虑体系结构风险。三级:高风险,可能的风险,完全不可能的风险(3)、开发人员还应评价自己对每个用例开发工作量的做算,称之为进度风险。三级:确信自己对时间的估算,只能估算到人月,无法估算注意:估算应由开发人员估算,项目经理只是评审复核作用。由些开发人员可以充分理解用例,应估算到人周2.第二阶段:确定每次迭代的开发周期,每次迭代的工作量(迭代次数3至5次)3.构造阶段两个概念:(1)、程序重组:指对程序中与新添功能相关的成分进行适当改造,使其在结构上完全适合新功能的加入。(2)、模式:构造阶段是通过一系列迭代过程建设系统。每次迭代开发都是一个小项目,需要对所有要求的用例进行分析、设计、编码、测试和集成。完成一次迭代后,应向用户演示,并完成系统测试,以表明所要求的用例已正确实现。4.移交阶段:迭代式开发关键在于规范化地进行整个开发过程。在移交阶段,不能再开发新的功能(除了个别小功能或非常基本的以外),而只是集中精力进行纠错工作,优化工作。三:用例用例的基本概念及相关介绍主要方法:与客户交流,一系列用例的集合,就是整个系统的需求如何区分用户目标和系统交互功能用例模型的获取:用例模型是获取需求、规划和控制项目迭代过程的基本工具。是初始阶段首先要做的工作,是细化阶段的主要任务之一。a、获取执行者获取用例首先要找出系统的使用者。(1)、谁使用系统的主要功能(主要使用者)?(2)、谁需要系统支持他们的日常工作?(3)、谁来维护、管理系统使其能正常工作(辅助使用者)?(4)、系统需要控制哪些硬件?(5)、系统需要与其他哪些系统交互?这是系统包含其他计算机系统和其他应用程序。(6)、对系统产生的结果感兴趣的是哪些人或哪些事物?b、获取用例对每个执行者提出一些问题,然后从执行者对这些问题的答案中获取用例(1)、执行者要求系统提供哪些功能(执行者需要做什么)?(2)、执行者需要读、产生、删除、修改或存储系统中的信息有哪些类型?(3)、必须提醒执行者的系统事件有哪些?或者(4)、执行者必须提醒系统事件有哪些?怎样把这些事件表示成用例中的功能?针对系统的问题(1)、系统需要何种输入输出?输入从何处来?输出到何处去?(2)、当前运行系统(也许是一些手工操作而不是计算机系统)的主要问题是什么?UML2定义了13种基本的图,它们被分成两大类:1.结构建模图结构图定义了一个模型的静态架构。它们通常被用来对那些构成模型的‘要素'建模,诸如:类,对象,接口和物理组件。另外,它们也被用来对元素间关联和依赖关系进行建模。类或结构图用来定义模型的基本建立模块:类型、类和构成完整模型的一般素材。对象图显示结构元素的实例间如何关联,以及在运行时如何使用。复合结构图提供了一种对元素结构进行分层的方法,并着重体现了元素内部的细节,结构和关系。组件图被用来构造更高层次或更复杂的结构,通常由一个或多个类构成,并提供一个定义明确的接口。部署图显示现实环境中重要物件的物理配置。包图用来将模型划分成不同的逻辑容器或“包”,并在更高层次上描述它们之间的交互关系。包图(Packagediagrams):用来将模型划分成不同的逻辑容器或“包”,并在更高层次上描述它们之间的交互关系。类或结构图(ClassorStructuraldiagrams)用来定义模型的基本建立模块:类型、类和构成完整模型的一般素材。对象图(Objectdiagrams)显示结构元素的实例间如何关联,以及在运行时如何使用。复合结构图(CompositeStructurediagrams)提供了一种对元素结构进行分层的方法,并着重体现了元素内部的细节,结构和关系。组件图(Componentdiagrams)被用来构造更高层次或更复杂的结构,通常由一个或多个类构成,并提供一个定义明确的接口。部署图(Deploymentdiagrams)显示现实环境中重要物件的物理配置。2.行为建模图行为图用来记录在一个模型内部,随时间的变化,模型执行的交互变化和瞬间的状态;并跟踪系统在真实环境下如何表现,以及观察系统对一个操作或事件的反应,以及它的结果。交互概览图融合活动图和顺序图,使交互部分容易与判断点和流程结合。用例图用来对用户/系统的交互关系建模。用脚本和情形的形式来定义行为,要求和约束。活动图广泛使用于定义基本程序流程和在一般化过程中,记录判断点和动作。状态机图对于了解模型执行时的瞬时状态,即模型的运行状态是重要的。通信图显示协作实例中,对象间实时消息和通信的网络结构与顺序。顺序图与通信图联系紧密,并在垂直时间线上显示对象间消息传递的顺序。时间图融合顺序图和状态图,以提供观察对象随时间变化的状态和改变这个状态的消息。用例图(UseCasediagrams)用来对用户/系统的交互关系建模。用脚本和情形的形式来定义行为,要求和约束。活动图(Activitydiagrams)广泛使用于定义基本程序流程和在一般化过程中,记录判断点和动作。状态机图(StateMachinediagrams)对于了解模型执行时的瞬时状态,即模型的运行状态是重要的。通信图(Communicationdiagrams)显示协作实例中,对象间实时消息和通信的网络结构与顺序。顺序图(Sequencediagrams)与通信图联系紧密,并在垂直时间线上显示对象间消息传递的顺序。时间图(Timingdiagrams)融合顺序图和状态图,以提供观察对象随时间变化的状态和改变这个状态的消息。交互概览图(InteractionOverviewdiagrams)融合活动图和顺序图,使交互部分容易与判断点和流程结合。UML中的模型元素包括事物和事物之间的联系。事物是UML中重要的组成部分,它代表任何可以定义的东西。事物之间的关系能够把事物联系在一起,组成有意义的结构模型。每一个模型元素都有一个与之相对应的图形元素。一、事物1、结构事物结构事物分为:类、接口、协作、用例、活动类、组件和节点(1)类。类是对具有相同属性、方法、关系和语义的对象的抽象,一个类可以实现一个或多个接口。类用包括类名、属性和方法的矩形表示。活动类。活动类是类对象有一个或多个进程或线程的类。在UML中活动类的表示法和类相同,只是边框用粗线条。(2)接口。接口是为类或组件提供特定服务的一组操作的集合。(3)用例。用例描述系统对一个特定角色执行的一系列动作。在模型中用例通常用来组织动作事物,它是通过协作来实现的。UML中,用例用标注了用例名称的实线椭圆表示。协作。协作定义了交互操作。一些角色和其他元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。不常用,和用例的表示区别是它是虚线画的椭圆。(4)参与者。在系统外部与系统直接交互的人或事物。(5)组件。组件是实现了一个接口集合的物理上可替换的系统部分。(6)节点。节点是在运行时存在的一个物理元素,它代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个节点,但也可以从一个节点转到另一个节点。2、动作事物动作事物是UML模型中的动态部分,它们是模型的动词,代表时间和空间上的动作。交互和状态机是UML模型中最基本的两个动态事物元素。(1)交互。交互是一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。在交互中组成动作的对象的每个操作都要详细列出,包括消息、动作次数(消息产生的动作)、连接(对象之间的连接)。(2)状态机。状态机由一系列对象的状态组成。3、分组事物分组事物是UML模型中组织的部分,分组事物只有一种,称为包。4、注释事物注释事物是UML模型的解释部分。二、UML中的关系1、关联关系has关联关系连接元素和链接实例,它用连接两个模型元素的实线表示,在关联的两端可以标注关联双方的角色和多重性标记。2、依赖关系use依赖关系描述一个元素对另一个元素的依附。依赖关系用源模型指向目标模型的带箭头的虚线表示。3、泛化关系extend泛化关系也称为继承关系,泛化用一条带空心三角箭头的实线表示,从子类指向父类。4、实现关系implement实现关系描述一个元素实现另一个元素。下面的图其实有两个实现关系,只是因为在rationalrose中把class的stere