UML面向对象需求分析与建模教程基于uml标准

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 2.1 了解面向对象产生的原因
2
2.2 面向对象方法基本概念与特征
3
2.3 面向对象方法学开发过程
4
2.4下一步发展方向
2.1 了解面向对象产生的原因史
• •
俗话说: “天下大势,分久必合,合久必分。”
Grady Booch
Ivar Jacobson
Rumbaugh

起初软件是手工作坊的生产方式,没 有标准化的过程、工具和技术,从而导致 了大量软件错误。之后计算机专家们提出 了各种语言和方法,但还是不能避免错误 的发生。 • 小型的软件(5000行代码以下的软件) 基本能正确的生产出来,但大中型软件 (50000行代码以上的软件是大型软件,其ቤተ መጻሕፍቲ ባይዱ间的为中型软件)项目就很难保证。
• 传统的软件工程方法学曾经给软件产业带来了巨 大进步,部分地缓解了软件危机,使用这种方法 学开发的许多中、小规模软件项目都获得了成功。 但是,当把这种方法学应用于大型软件产品的开 发时,却很少取得成功。
31% 16% 中途取消的项目 出现问题的项目 顺利完成的项目 53% 图1-1 项目的成败
Standish Group Data
• Data on projects complete d in 2006
Just over one in three projects was successful
• 在20世纪60年代后期出现的面向对象编程 语言Simula-67中首次引入了类和对象的概 念,自20世纪80年代中期起,人们开始注 重对面向对象分析和设计的研究,从而逐 步形成了面向对象方法学。到了20世纪90 年代,面向对象方法学已经成为人们在开 发软件时首选的范型。可以说,面向对象 技术是当前最好的软件开发技术。
对象技术的发展历史
Simula 基本思想
1967 1972
C++ 商业化
1980s 1990
UML 统一方法学
1995 2011+
Smalltalk 实用化
Java 编程方法的成熟
构件、 服务、 云计算???
-15-
2.2 面向对象方法基本概念与特征
• 对象:对象是要研究的任何事物。从一本书到图书馆,单 个整数到庞大的数据库、极其复杂的自动化工厂、航天飞 机都可看作对象,它不仅能表示有形的实体,也能表示无 形的(抽象的)规则、计划或事件。对象由数据(描述事 物的属性)和作用于数据的操作(体现事物的行为)构成 一独立整体。 • 类:类是对象的模板。即类是对一组有相同数据和相同操 作的对象的定义,一个类所包含的方法和数据描述一组对 象的共同属性和行为。类是在对象之上的抽象,对象则是 类的具体化,是类的实例。类可有其子类,也可有其父类, 形成类层次结构。 • 消息:消息是对象之间进行通信的一种规格说明。一般它 由三部分组成:接收消息的对象、消息名及实际变元。
例:Windows95有1000万行代码 Windows2000有5000万行代码
Exchange2000和 Windows2000开发人员结构
Exchange2000
项目经理 开发人员 测试人员 25人 140人 350人
Windows2000
约250人 约1700人 约3200人
IE项目
• IE各版本
第一部分 建模理论概述
• 第一部分将介绍面向对象方法的产生、UML的 发展、RUP统一过程的模型、Rose工具及UML的更 多技术细节。 第2章 第3章 第4章 第5章 第6章 面向对象方法 UML统一建模语言 RUP统一过程 Rose建模工具 UML更多细节
• • • • • •
第2章 面向对象方法 目录
2.3 面向对象方法学开发过程
• 现实世界中存在现实对象,然后人们根据 自己的观察角度和要求将现实对象抽象成 现实类,然后软件设计人员基于现实类模 拟出软件类,最后在程序中将软件类实例 化成软件对象,最终的程序就是软件对象 的活动和交互。
学生类 学生实例
李华 陈丽 张涛 刘霞 ... 抽象 属性: 学号 姓名 专业 班级 成绩 ... 行为: 吃饭 睡觉 上课 锻炼 „
• 继承性:继承性是子类自动共享父类数据 和方法的机制。它由类的派生功能体现。 一个类直接继承其父类的全部描述,同时 可修改和扩充。
• 多态性:对象根据所接收的消息而做出动作。同一消息为 不同的对象接受时可产生完全不同的行动,这种现象称为 多态性。利用多态性用户可发送一个通用的信息,而将所 有的实现细节都留给接受消息的对象自行决定,因此,同 一消息即可调用不同的方法实现。

其次就是进行面向对象的设计,即设计 软件的对象模型。根据所应用的面向对象 软件开发环境的功能强弱不等,在对问题 的对象模型的分析基础上,可能要对它进 行一定的改造,但应以最少改变原问题域 的对象模型为原则。然后就在软件系统内 设计各个对象、对象间的关系(如层次关 系、继承关系等)、对象间的通信方式 (如消息模式)等,总之是设计各个对象 应做些什么"。
-25-

首先要行面向对象的分析,其任务是了 解问题域所涉及的对象、对象间的关系和 作用(即操作),然后构造问题的对象模 型,力争该模型能真实地反映出所要解决 的"实质问题"。在这一过程中,抽象是最本 质、最重要的方法。针对不同的问题性质 选择不同的抽象层次,过简或过繁都会影 响到对问题的本质属性的了解和解决。
• Coad和Yourdon将面向对象概念概括为以下方程: 面向对象 = 对象 + 类 + 继承 + 通信 即:面向对象就是既使用对象又使用类和继承等机制,而且 对象之间仅能通过传递消息实现彼此通信。
• 封装性:封装是一种信息隐蔽技术,它体现于类的说明, 使数据更安全.是对象的重要特性。封装使数据和加工该数 据的方法(函数)封装为一个整体,以实现独立性很强的 模块,使得用户只能见到对象的外部特性(对象能接受哪 些消息,具有那些处理能力),而对象的内部特性(保存 内部状态的私有数据和实现加工能力的算法)对用户是隐 蔽的。
学生对象
创建 Li Hua Chen Li Zhang Tao Liu Xia ...
用对象观点认识事物
• A.这里面有什么东西? 类与对象 • B.每个东西看上去是什么样的? 类的属性 • C.每个东西能做点什么用? 类的操作 • D.这些东西都呆在什么地方? 类的行为、状态、部署 • E.这些东西之间有什么关系? 类间的关联 • F.这些东西是怎么成事的? 类间的协作(用例实现) B C E A D F
相关文档
最新文档