《UML系统分析与设计.ppt》由会员分享,可在线阅读,更多相关《UML系统分析与设计.ppt(90页珍藏版)》请在三一办公上搜索。
1、2023/2/12,UML系统分析与设计UML-System Analysis and Design,授课:薛均晓,Introduction,分析(Analysis):对问题和需求进行调查研究 设计(Design):满足需求的概念上的解决方案 UML,统一建模语言(Unified Modeling Language)统一的可视化建模语言 统一的含义 可视化图形表示法,以图形化的方法构建系统分析与软件设计模型 工具,Introduction,性质:专业基础课 课时:64学时(32次课)要求:,课前预习、课后复习 保持良好的课堂秩序 理论联系实践,多动手,认真做案例,教材,选用教材:,面向对象分析
2、与设计(UML 2.0 版)/(美)多切蒂(Mike ODocherty)著,俞志翔译。北京:清华大学出版社,2006.4,参考教材:,UML Distilled-Martin Fowler The Unified Modeling Language User Guide(UML用户指南)The Unified Modeling Language Reference Manual(UML参考手册),Web Resources,http:/http:/www.omg.org/uml/http:/,http:/http:/http:/http:/,课程目标,掌握面向对象的软件开发所使用的过程和技术
3、 掌握UML基础知识 学会使用面向对象的技术编写计算机程序 学会使用Rational Rose建模,考核,平时成绩:,30%结合课程进度,安排小作业上机实验,期末考试成绩:,70%学期结束安排期末考试闭卷,总成绩为两者成绩之和,Submit,FTP:,Address:ftp:/202.197.189.197 目录:UML(薛均晓)/作业上载/班级,书面作业由学习委员统一上交,如何学好本课程,做一个角色的转换。把自己当作一名见习的软件工程师。做好课前预习。课前预习是掌握知识的前提,通过预习发现问题,带着问题上课!课堂认真听讲。课堂上讲解的内容除了课本上的知识以外,会有大量课外内容的补充,必须认真
4、听讲,必须记好笔记。大量阅读与思考。扎实掌握基础知识是学好这门课程的关键,同时要养成勤思考的好习惯多想。积极上机实践。所学即所用。这不是一门要求背诵概念的课程!运用所学的知识去真正做一个系统出来!遇到问题并解决问题的过程就是提高自己能力的过程!多写。提高英文能力。Rational Rose是一个全英文的开发环境,这需要在学习这门课程的同时,提高自己的英文能力。,面向对象技术基本概念,编程简史,机器码:使用二进制数字;汇编语言:使用字母数字符号作为机器码的速记方式,通过汇编程序转换为机器码;高级语言:使用有高级结构的语言编程,通过编译程序转换为机器码;结构化编程:自顶向下,逐步细分;面向对象编程
5、(Object Oriented Programming,OOP):以对象为基础,以消息来驱动对象执行处理。,系统开发的问题,为成功地进行系统开发,必须要攻克各种各样的问题,必须正确了解、把握需求 不能满足需求的系统,客户是不会满意的,必须要能应对需求的变化 因为业务环境在迅速变化,所以对系统的需求也会变化,必须缩短开发时间 商务世界竞争激烈,必须能应对系统日益复杂和规模扩大的情况 系统集成、开放化、重叠化、用户数的增加、运行时间的延长等,面向对象的有效性,OOP强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,能更好地满足客户需求。,用户需求的变化大部分是针对
6、功能的,因此,这种变化对于基于过程的设计来说是灾难性的。,应对需求变化的能力强。,在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。,便于理解复杂的系统,并能提高系统维护性。,提高重用性。,面向对象技术的基本概念,对象(Object)封装(Encapsulation)类(Class)继承(Inheritance)多态(Polymorphism)消息(Messessage),对象的概念,什么是对象是“物体”或“概念”:,物体(看得到的东西):我的电脑、手机,他的房子、汽车 概念(看不到的东西):一个合同、我的银行账号、那个游戏方法、某个规则、这个基准,对象的概念,
7、描述对象,描述对象的过程,就是对现实世界中的对象进行抽象的过程。在抽象的过程中,可以为对象赋予对象本身所不具有的特性。在面向对象软件中,使用编程语言对现实世界中的对象进行描述,可以把真实世界中的对象转化为代码。在编程术语中,对象是独立的程序模块,有自己的属性和行为(也可以说有自己的数据和进程)。在描述对象时,不需要描述对象的所有特性,只要描述与问题域相关的特性即可。,对象的概念,对象的特征,属性 具有表示状态或者特性的值,操作(行为)提供某种服务,或更改对象内部的属性 一般用动词表示,关系,识别性,对象具有属性值,对象具有行为,对象会对其他对象发来的要求做出反应,其他对象发来的要求消息 消息的
8、接受窗口接口 对消息的反应操作(行为),对象具有关系,通过连接不同的物体,可描述更加复杂的信息 把多个物体归纳为更大的群组,能便于理解信息 关系的例子,关联 聚合,关联是一种弱连接:对象之间不完全相互依赖。,对象具有关系,关联和聚合,聚合表示把对象放在一起,组成一个更大的对象。聚合形成“部分整体”层次结构,它隐含了较大的依赖性,至少是整体对部分的依赖。,对象具有关系,关联和聚合,树是层次结构的另一个名称。,对象具有关系,树和图,图是对象组之间连接的一个任意集合。关联中的对象常常会形成图。树是图的一种特殊情况:树中的每个节点都只有一个父节点,可以有任意多个子节点。,对象具有关系,树和图,前面图中
9、的连接都称为链接(link)。如果要说明一个对象知道另一个对象在哪里,就可以加上箭头。每个连接都可以看作一个属性:标签或角色,表示属性的名称。,对象具有关系,链接和可导航性,对象可唯一识别,即使对象有相同属性,还是能唯一识别,封装,封装,封装是一个重要原则,是指把属性和操作封装进一个对象里,它的内部信息对外界隐藏,不允许外界直接存取对象的属性,只能通过对象提供的有限的接口对对象的属性数据进行操作。,封装,封装,封装的基本单位是对象,具有两层含义:结合性:即把对象的全部属性和方法结合起来,形成一个独立的不可分割的单位。信息隐蔽性:即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口
10、使之与外部发生联系。,封装,封装,具有封装性应满足的条件:有一个清晰的边界;有确定的接口;受保护的内部实现。封装是编程语言防止程序员相互干扰的一种方式。理解封装的例子:借钱(P13),当创建的对象不再使用时,该怎么办?Java程序有垃圾收集器,查找未连接的对象,并进行清理。,对象的概念,垃圾收集,类的概念,着眼于对象的属性和行为的共同性,并进行分类后形成的,把这个工作称作类化,是抽象化的基本方法之一 反之,把通过类来创建对象的工作称作实例化,类是具有相同属性和操作的对象集合的总称 类封装了客观世界中对象实体的特征与行为,即属性与方法,类的例子,找一下类,找到几个类?,分类状况不同,结果也不同,
11、类和对象的关系,每一个对象都是某一个类的实例 每一个类在某一时刻都有零个或更多的实体 类是静态的;它们的存在、语义和关系在执行前就已经定义好了 对象是动态的;它们在程序执行时可以被创建和删除,类的层次,继承(泛化)关系,继承(Inheritance),继承,一个类可以继承其他类的属性和方法。继承了其它类属性和方法的类称为子类,被继承的类称为父类或超类。子类复用父类属性和方法的过程,称为继承或泛化。,继承,关于继承的详细内容将在下次课堂上(Chapter 3)讲解。,多态(Polymorphism),多态性的例子,多态,关于多态的详细内容将在下次课堂上(Chapter 4)讲解。,UML概述,U
12、ML定义,UML定义,UML定义,可视化建模就是用标准的图形表示法来建模。,UML的结构,UML Structure,构造块building blocks,公共机制common mechanisms,构架architecture,基本UML建模元素、关系和图,达到特定目标的公共UML方法,系统架构的UML视图,UML的结构,构造块,构造块building blocks,物件things,关系relationships,图diagrams,建模元素本身,把物件联系在一起,关系说明两个或多个物件时如何语义相关的,UML模型的视图,它们展现物件的集合,“讲述关于软件系统的故事”,是我们可视化系统将做
13、什么(分析级图)或者系统如何做(设计级图)的方法,UML的结构,物件,物件things,结构物件,行为物件,分组物件,注解物件,UML模型中的名词,如类、接口、协作、用例、活动类、组件、节点,UML模型的动词,如交互、状态机,包,它用于把语义上相关的建模元素分组为内聚的单元,注解,它附加到模型以捕获特殊信息,同黄色便笺很相像,UML的结构,关系,关系relationships,关联association,依赖dependency,泛化generalization,实现realization,描述对象之间的一组链接,物件的改变引起依赖物件的语义改变,一个元素是另一个元素的特化,而且它可以取代更一
14、般的元素,类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约,UML的结构,图,图diagrams,类图class diagrams,对象图object diagrams,构件图component diagrams,部署图deployment diagrams,用例图use case diagrams,顺序图sequence diagrams,协作图collaboration diagrams,状态图statechart diagrams,活动图activity diagrams,静态模型(系统结构),动态模型(系统行为),UML的重要内容九种图形,UML的重要内容九种图形,UML
15、的重要内容九种图形,UML的重要内容九种图形,用例图基本元素,参与者,用例,系统边界,关联,扩展,包含,泛化,注释体,注释连接,UML的重要内容九种图形,UML的重要内容九种图形,类图、对象图基本元素,类图、对象图基本元素,UML的重要内容九种图形,UML的重要内容九种图形,UML的重要内容九种图形,UML的重要内容九种图形,UML的重要内容九种图形,UML的重要内容九种图形,常用建模工具,Visio Rational Rose,Rational Rose 安装过程,Rational Rose 的使用,使用Rational Rose2003的简单流程如下:启动Rational Rose2003
16、创建模型建立各种框图生成代码的框架,启动Rational Rose2003,Create New Model窗体中给出了许多开发语言的模型向导,开发者可以根据自己所采用的语言来进行选择如果不需要特定的语言环境,单击Cancel就可以直接进入主界面,Rational Rose的界面组成,Rational Rose的界面主要有6个部分组成:分别是菜单(menu)、浏览器(browser)、文档窗口(document window)、图窗口(diagram window)、日志窗口(log window)和工具栏(toolbar),菜单:集成了系统中几乎所有的操作浏览器:用于在Rose模型中迅速漫游
17、文档窗口:用于查看或更新模型元素的文档工具栏:用于迅速访问常用命令图窗口:用于显示和编辑一个或几个UML图日志窗口:用于查看错误和报告各个命令的结果,绘制类图,属性的设定方法:右键单击类图,从弹出的菜单中选择open specification然后选择Attributes项,打开属性值的列表双击要设定的属性,从type下拉框中选择数据类型,在Export control分组框中选择可见性类型,操作的设定方法:右键单击类图,从弹出的菜单中选择open specification然后选择Operations项,打开属性值的列表双击要设定的属性,从Return下拉框中选择数据类型,在Export c
18、ontrol分组框中选择可见性类型,绘制类图时的良好习惯,为所有的类、类的属性、类的操作建立文档说明类的文档说明可以通过文档窗口填写属性和操作的文档说明在设定它们的值类型的窗体中,绘制关系,系统之间的类是有关联的,在UML中,可以用关系来描述类之间的关系,类之间的关系主要有以下五种:依赖泛化关联聚合实现,依赖(Dependency),依赖用来描述在系统中,一个类使用到了另外一个类,那么这个类就要依赖与另外一个类才可以完成工作例如,使用电视类改变频道类,因此电视类依赖于频道类使用Rose绘制依赖关系,详见课堂演示,泛化(Generalization),所谓的泛化关系就是面向对象设计思想中的继承例
19、如,Animal(动物)类是Mammal(哺乳动物)类的泛化,而Mammal又是Horse(马)类的泛化;从继承关系上讲,Horse继承自Mammal,而Mammal有继承自Animal使用Rose绘制泛化,详见课堂演示,关联,前面讲过了关联,它用来描述类之间的弱连接关系例如,教师类和学生类之间的关系是,一个教师会同时教授多个学生使用Rose绘制关联,详见课堂演示,聚合,前面讲过了聚合,聚合用来描述一个类是由几个部分类组成的强连接关系例如软件技术学院是郑州大学的一个部分,那么郑州大学就是软件技术学院的聚集,实现,实现用于描述执行接口的操作前面讲过了接口,在电视机的例子中,电视的电子器件组成细节对于用户来说已经被封装隐藏了,如果用户要控制电视机,只需要通过接口遥控器对电视机进行操作就可以了,而不必关心电视机内部的组成结构(也就是电视机类内部的成员属性和操作)在UML中,使用实现来描述对接口的操作,使用Rose绘制实现,详见课堂演示,Thank You!,Introduction111111111111,性质:专业基础课 课时:64学时(32次课)要求:,重用是指多次使用代码 开发更快速、简单 维护更容易(代码较少,认为错误就较少)代码更强壮(每次重用时,都会重复测试,错误就 会越来越少),