火龙果软件-UML建模-第1章.ppt
UML建模语言及工具,-2-,学习目标,掌握UML运用UML进行简单的面向对象分析使用UML工具(IBM Rational Rose2003/Enterprise Architect),-3-,预备知识,掌握某种面向对象程序设计语言(例如Java、C+等)。希望同学们已经初步掌握面向对象的一些基本常识。,-4-,参考书,UML和OOAD快速入门(初级)大象-Thinking in UML(中高级)其它UML和模式应用面向对象分析与设计导论UML软件建模教程Rational.Rose从入门到精通,-5-,考核方式,考试课程结束后安排考试平时成绩(出勤+作业等),-6-,Why?,需要理由吗?我们从事软件行业面向对象是最主流的软件开发思想UML是最主流的建模语言,UML+面向对象,OOAD,系统定义、分析、设计、实现,对于今天的软件开发者来说,UML是他们的面包和黄油,What?,1-学习基本的软件建模理论2-学习基本的UML语言3-利用UML语言进行面向对象的系统建模,Agenda,第一章 软件建模与UML概述第二章 UML可视化建模实践第三章 用例建模第四章 用例分析技术,学习线路图,第二章,第三章,第四章,第一章 软件建模与UML概述,本章目录,1.1 软件模型1.1.1 模型1.1.2 软件模型1.2 软件建模1.3 关于UML1.4 一个UML建模的例子,1.1.1 模型,什么是模型模型的概念模型的作用什么是建模,-13-,建筑模型,什么是模型?,-14-,规划模型,什么是模型?,什么是模型?,设计模型,模型的概念,模型是对现实系统的简化或模拟,是对现实系统本质特征的一种简化、直观、类比和抽象的描述。,模型的作用,帮助理解模型可以帮助人们对复杂问题进行深入理解。方便交流模型可以方便人们讨论和交流。优选方案通过模型帮助人们从多个方案中挑选出优选的方案。缩短开发周期通过建模形象化系统开发内容和开发过程,提高开发效率,缩短开发周期。,什么是建模?,建模就是认识现实世界,客观世界,主观世界,认识世界,改造世界,世界是什么样的呢?,建模的重要性,Paper Airplane,Fighter Jet,Less Important,More Important,1.1.2 软件模型,软件建模的必要性软件模型的概念软件模型在软件开发中的作用软件模型的内容,软件建模的必要性,智能性,软件是人智力劳动的产物,具有极高的智能特性。,无形性,软件没有物理实体的物理形态,而是智能、逻辑和算法的描述。,抽象性,软件具有高度抽象性。,复杂性,软件开发是高度复杂性工作,软件的规模越来越大,功能越来越复杂,服务领域越来越广泛。,结论:软件的开发和生产必须借助于模型,来反映和描述软件中间的开发过程和开发状态。,软件的特性,软件模型的概念,软件模型通过一定的形式和方法用来描述软件的模型。软件建模建立软件模型的过程被称为软件建模。,软件建模的好处:1 系统可视化2 系统结构/行为明确化3 系统模板化4 决策文档化,用户需求,软件模型在软件开发中的作用,1 软件模型是软件的中间形态,2 软件模型是人员交流的媒介,软件模型在软件开发中的作用,-25-,软件模型的内容,描述软件向用户所能够提供的外在特性,包括软件的目标、功能、性能等。,软件模型的内容,立足于系统的抽象逻辑建模.,软件模型的内容,软件设计方案的规范化描述。包括软件的架构、详细设计、界面设计、数据库设计等模型。,软件模型的内容,测试软件的方案描述.,第一章 软件建模与UML概述,1.1 软件模型1.2 软件建模1.2.1 软件建模要素1.2.2 软件建模方法1.2.3 软件建模过程1.2.4 软件建模工具1.3 关于UML1.4 一个UML建模的例子,1.2.1 软件建模要素,建模过程,建模方法,建模语言,建模工具,面向对象的建模方法,支持UML的建模工具,UML,1.2.2 软件建模方法,软件建模方法一览面向对象的软件建模方法和特点对象在三个世界中的含义和关系软件领域中的对象,软件方法学的发展历程,面向对象是软件方法学的返朴归真:面向用户,尽可能模拟人类习惯的思维方式。,使描述问题的问题空间与解决问题的解空间在结构上尽可能一致。,尽可能接近人类认识世界解决问题的方法与过程。,面向对象的软件建模,含义:在软件开发中,采用与人的思维方式相一致的,直接面向客观事物,面向所要解决的需求问题,并用一套对象、类、继承、消息等机制开发软件的系统化软件建模方法。特点:对象是软件建模的重心;包括需求、设计、实现等多种模型;,与人的思维方式相一致?,PUSH EBXMOV EBX,EDXMOV EDX,EAXSHR EDX,16DIV BX,AHare.Run;ALion.Catch(AHare);ALion.Kill(AHare);AHare.Dead;ALion.Eat;ALion.Happy;,在计算机中模拟现实世界的事和物,对象在三个世界中的含义和关系,汽车,灯泡,农村,汽车,客观世界:(客观事物),主观世界:(概念),软件世界:(对象),灯泡,农村,-37-,软件空间,主观空间,事物,概念,对象,软件领域中的对象,软件系统中的一个具有确定语法规则的软件单元;,/定义一个Tree类Class Treepublic String variety;/品种public String root;/根public String leaf;/叶子public Tree(String V,String r,String L)/构造函数 this.variety=V;this.root=r;int i=1;foreach(String s in L)Leafi=s;i+;,public class ProgramStatic void Main(string args)Tree t1=new Tree();/创建一个对象,1.2.3 软件建模过程,软件过程软件建模过程RUP(Rational Unified Process),软件过程,指软件生存周期中一系列相关活动按照确定的次序演进变化的进程。软件过程的发展20世纪80年代之前,不重视软件过程;20世纪90年代开始重视,产生ISO软件过程标准;1998年Rational提出RUP并成为OMG标准;21世纪软件过程成为软件工程一个分支。,软件建模过程,是指根据软件开发的需要,进行业务建模、需求建模、分析建模、设计建模和测试建模的过程。,统一过程模型,统一过程模型-Rational Unified Process-RUP是由Rational公司开发的一种软件过程。RUP认为,软件开发是:一个叠代过程(Iterative and incremental)由Use Case驱动的(Use case driven)以构架设计为中心的(Architecture-centric),RUP的软件开发生命周期,1.2.4 软件建模工具,Rational Rose2003Enterprise ArchitectStarUMLMicrosoft Visio,常见的几种UML建模工具,Rational Rose2003:,美国Raitonal公司推出,是一个强大的UML建模工具,但从2003版之后,并入IBM整体开发平台,称之为IBM rational software architect。,Enterprise Architect:,澳大利亚Sparx公司推出,是目前最强大的UML建模工具,被业界广泛接受。,StarUML:,开源建模软件,被广泛使用。,Microsoft Visio:,第一章 软件建模与UML概述,1.1 软件模型1.2 软件建模1.3 关于UML1.3.1 UML的含义1.3.2 UML的发展历史1.3.3 UML的本质1.4 一个UML建模的例子,1.3.1 UML的含义,UML:Unified Modeling Language 统一建模语言,Unified Modeling Language(统一建模语言)是对象管理组织(OMG)制定的一个通用的、可视化的建模语言标准,可以用来可视化(visualize)、描述(specify)、构造(construct)和文档化(document)软件密集型系统的各种工件(artifacts,又译制品),-51-,1.3.2 UML的发展历史,面向对象建模语言产生于1970年代中期1990年代初,建模语言数量达到50多种众多语言各有千秋,缺乏通用性语言之间的细小差别妨碍了用户的交流1990年代中期,三位主要的OO建模大师:Booch,Rumbaugh,Jacobson开始致力于建立统一建模语言的工作,-52-,Rumbaugh Booch Jacobson,UML的创建人:,OMT方法 Booch方法 OOSE方法,UML,-53-,1.3.3 UML的本质,UML和程序设计语言的关系UML和软件过程的关系建模、OO(Object Oriented)与UMLUML的是与非,-55-,一个比喻:,Java、C+等程序设计语言用来编码实现一个软件系统。UML用于对一个软件系统建立模型。,UML和程序设计语言的关系,-56-,软件过程规定软件开发的阶段、步骤和工作。UML是语言,用来描述软件模型。,UML和软件过程的关系,A Language Is Not Enough to Build a System,-57-,建模、OO(Object Oriented)与UML,建模是目的OO是一种建模理论UML是一种体现OO的建模语言,是将OO理论转化为实践的工具,UML的是与非,The UML is nota process or methodologyobject-oriented analysis and designGuidelines(指导、准则)for designMuch more important:Skill in designing with objects.,第一章 软件建模与UML概述,1.1 软件模型1.2 软件建模1.3 关于UML1.4 一个UML建模的例子1.4.1 问题分析1.4.2 用对象观点认识事物1.4.3 基于UML的分析,-60-,本节目的,通过简单通俗的事例来演绎对象建模的基本概念开阔视野,轻松树立面向对象的观点掌握用面向对象方法分析问题的要领为学习对象建模方法热身,-61-,1.4.1 问题分析,昨天我的一个朋友结婚了,-62-,问题分析-1,A.这里面有什么东东?月老,小伙,姑娘,恋人,玫瑰花B.每个东东看上去是什么样的?月老,看上去有些年纪了,挺热心的小伙,看上去很强壮,很诚实的姑娘,看上去好漂亮,还很温柔恋人,看上去很亲密,当然就结婚了玫瑰花,火红火红的,难怪姑娘动情了,-63-,问题分析-2,C.每个东东能做点什么用?月老:牵线搭桥,介绍认识小伙:追求献花,表达爱意姑娘:仰慕倾情,以身相许恋人:拍拖,结婚玫瑰花:传情示爱,-64-,问题分析-3,D.这些东东都呆在什么地方?月老:婚介所,交友网站小伙:软件园,住唐家姑娘:人民医院,住新香洲恋人:情侣路,电影院,玫瑰花:花店里,小伙手中,姑娘手中,-65-,问题分析-4,E.这些东东之间有什么关系?,-66-,问题分析-5,F.这些东东是怎么成事的?月老牵线搭桥,介绍小伙和姑娘认识姑娘和小伙一见钟情,成为一对恋人一对恋人开始拍拖小伙追求献花,表达对姑娘的爱意姑娘收到999火红玫瑰小伙真心求婚,姑娘以身相许一对恋人终于走入婚姻殿堂,-67-,1.4.2 用对象观点认识事物,-68-,对象观点,A.这里面有什么东东?类与对象B.每个东东看上去是什么样的?类的属性C.每个东东能做点什么用?类的方法D.这些东东都呆在什么地方?类的行为、状态、部署E.这些东东之间有什么关系?类间的关联F.这些东东是怎么成事的?类间的交互,-69-,我的一个朋友结婚了-A,A.这里面有什么东东?Object Class我 本剧与我无关我的朋友小伙我朋友的妻子姑娘月老恋人玫瑰,A,-70-,我的一个朋友结婚了-B,B.每个东东看上去是什么样的?每个事物看上去都有自己的属性,在每个属性上都有一个特征值小伙:体格,特征值:强壮姑娘:性情,特征值:温柔月老:年纪,特征值:较大恋人:关系,特征值:亲密玫瑰:颜色,特征值:火红,D,A,C,B,E,F,-71-,我的一个朋友结婚了-C,C.每个东东能做点什么用?每个事物都具备某种能力小伙:追求、送花、娶亲姑娘:爱慕、相许、出嫁月老:牵线搭桥玫瑰:示爱,D,A,C,B,E,F,-72-,我的一个朋友结婚了-D,D.这些东东都呆在什么地方?每个事物都会有它合理的或者必须的空间位置和逻辑位置。尤其当这些位置对事物的行为造成重要影响的时候,表明他们的位置极其重要本剧列出的位置对故事主要情节没有太大的影响,系统中不予考虑,D,A,C,B,E,F,-73-,我的一个朋友结婚了-E,E.这些东东之间有什么关系?事物之间的关系非常多,面向对象的观点一般分为主要的三类:整体-部分关系(组合和聚合),甲是乙的一个组成部分:如恋人和小伙,恋人和姑娘的关系抽象-具体关系(泛化),甲是乙的一个特例:如人和小伙,人和月老,人和姑娘的关系合作关系(关联),甲会对乙做点什么:如月老和小伙、姑娘,小伙和玫瑰,小伙和姑娘的关系,D,A,C,B,E,F,-74-,我的一个朋友结婚了-F,F.这些东东是怎么成事的?每个事物都会尽量利用伙伴的能力整体事物的能力依靠部分事物的能力抽象事物的属性和能力就是具体事物的属性和能力;此外,具体事物还可以有自己特殊的属性和能力事物分工协作,互通信息,共同完成整体的目标,D,A,C,B,E,F,-75-,俗语和术语间的对应,1.4.3 基于UML的分析,静态类图活动图顺序图协作图状态图,-77-,完整故事情节的静态模型,-78-,搞清过程的活动图,-79-,拍拖过程活动图,-80-,复述情节的顺序图,初次见面顺序图,-81-,求婚过程顺序图,-82-,理清头绪的协作图,定点观察的状态图,初步交往阶段,确定恋爱关系,热恋阶段,热恋阶段,关系稳定阶段,订婚阶段,关系不稳定阶段,拜见双方父母,-84-,作业,安装Rose2003安装Enterprise Architect,