面向对象建模技术 软件工程系 林 琳.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

《程序设计实践》 孙辉 理工配楼104A
ASP .NET 程序设计(C#版) 第二版 机械工业出版社同名教材 配套电子教案
——Windows98与Office2000(第二版) 林卓然编著 中山大学出版社
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
实用操作系统概念 张惠娟 副教授 1.
UI(用户界面)集训班 Illustrator 高级班.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
第14章 c++中的代码重用.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
《数据结构》课程简介 李武军 南京大学计算机科学与技术系 2016年秋季.
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
《数据库原理及应用》课程介绍 信息工程学院 孙俊国
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
SOA – Experiment 3: Web Services Composition Challenge
管理信息结构SMI.
辅导课程六.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
UML介绍.
PaPaPa项目架构 By:Listen 我在这.
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
整合思维导图的初中英语教学设计 主讲人:卢璐.
Windows 7 的系统设置.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
实验1 信息系统分析与设计工具安装.
第1章 概述 1.1 软件工程 1.2 UML简介 1.3 案例描述 软件工程的定义 软件工程目标
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
项目二:HTML语言基础.
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
数据集的抽取式摘要 程龚, 徐丹云.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
Chapter 18 使用GRASP的对象设计示例.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
面向对象建模技术 软件工程系 林 琳.
计算机绘图 AutoCAD2016.
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第二节 C语言的特点.
UML世界的构成 《UML面向对象建模基础》.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
UML建模案例库之 图书管理系统建模实例.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
位似.
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
Sssss.
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
Presentation transcript:

面向对象建模技术 软件工程系 林 琳

课程介绍 课时安排:35+10 课堂纪律 出勤率 实验情况 总成绩=笔试成绩(70%)+上课出勤(20%)+案例设计 (10%)

自我介绍 林琳 邮箱:JSDXLL@126.com 电话:13852945376 办公室:计算机大楼316

Joseph Schmuller,UML基础、案例与应用(第三版),人民邮电出版社 参考书 Joseph Schmuller,UML基础、案例与应用(第三版),人民邮电出版社 谢星星等,UML基础与Rose建模实用教程,清华大学出版社 http://www-01.ibm.com/software/rational/uml/

为什么要进行建模 建筑工程 交流手段

为什么要进行建模 任何大规模的系统设计都是相当的困难的。从简单的单机桌面程序设计到多层的企业级系统,任何系统都可以分解为多个软件和硬件 面对如此庞大复杂的结构将会出现几个问题:我们如何与客户沟通,了解客户对系统的需求?如何在开发人员之间共享设计,以确保各个部分能够无缝地协作? 在开发复杂的系统时,如果缺乏相应的帮助工具,则很容易曲解或遗忘许多细节。

建模的重要性 建模的使用是软件成功的一个基本因素。 模型的实质:对现实的简化。 建模的目标 : 便于展现系统。 允许指定系统的结构或行为。 提供构造系统的模板。 记录决策。

建模的误区 建模就是写文档 一开始就能考虑到一切情况 必须“冻结”需求 设计不可更改 必须使用CASE工具 建模是在浪费时间 所有的开发人员都知道如何建模

第1章 UML与面向对象 UML(统一建模语言,Unified Modeling Language)是软件和系统开发的标准建模语言,它主要以图形的方式对系统进行分析、设计。 面向对象的软件开发方法是现在软件工程流域的主流方法。 UML是在多种面向对象分析与设计方法相互融合的基础上形成的,是一种专用于系统建模的语言。 11

本章学习要点 理解面向对象概念 了解OO开发 熟悉OO开发的优点 掌握OO开发三层设计 了解模型的作用 了解面向对象的主要概念 了解UML的发展 掌握UML四层结构 了解统一的含义 理解UML视图和图的关系 掌握UML模型元素内容 理解UML通用机制 了解UML建模在软件开发中应用 12

1.1 面向对象开发 面向对象(Objec-Oriented,OO)不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。 面向对象方法的基本思想包括两个主要方面。 一方面是从现实世界中客观存在的事务出发来构造软件系统,并在系统的构造中尽可能地运用人类的自然思维方式。 另一方面是面向对象方法比以往的方法更接近人类的自然思维方式。 13

软件工程的发展历史 1946年,世界上第一台电子计算机在美国研制成功。 50年代,软件诞生,这时的软件开发主要指编程。 60年代中期到70年代中期,“软件危机” 出现。 1968年,“软件工程” 概念提出。

传统软件工程的生命周期 软件开发分为五个阶段: 需求分析阶段 总体设计阶段 详细设计阶段 编程和测试阶段 维护阶段

面向对象的软件工程方法 1967年,第一种面向对象语言Simula-67诞生; 20世纪80年代Smalltalk语言掀起了一场“面向对象”运动; 面向对象语言越来越多,应用越来越广泛; 面向对象技术在软件工程领域得到应用,主要包括: 面向对象的分析OOA 面向对象的设计OOD 面向对象的编程OOP

传统方法与面向对象方法的比较 数据处理方法不同 图1-1 建模手段不同 软件开发方法不同 图1-2

1.1.2 面向对象的基本概念 面向对象技术的基本观点: 客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。 1.1.2 面向对象的基本概念 面向对象技术的基本观点: 客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。 具有相同数据和操作的对象可归纳成类,对象是类的一个实例。 类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。 对象之间的联系通过消息传递来维系。

一个对象的实例图解

1.1.2 面向对象的基本概念 对象 类 封装 继承 消息 多态性 关联 聚合 20

1.1.3 OO开发的优点 1.自然性 在开发中总是以对象的形式来认识世界,因此当人们分析和设计系统需求时,总是很自然地定义各类对象。 2.重用性 一次创建的类和对象能多次使用。 21

1.2 OO开发中三层设计 面向对象的开发中,通常把OO系统中相互联系的所有对象分成三类:问题域类、GUI类和数据访问类。 问题域类是指和用户相关的对象类; GUI类的作用是方便用户与问题类进行交互; 数据访问类,实现问题域类和数据库交互。 在实现系统时按照先确定问题域类,然后实现GUI类,最后再确定数据访问类的顺序逐步实现。一旦完成所有的内容后,它们就可以作为一个完整的系统进行工作了。 优点:降低耦合,提高复用。 22

1.2 OO开发中三层设计 图1-3 图书管理系统的三层结构

1.3 UML简介 统一建模语言(UML)仅仅是一种语言。它不是一种系统设计的方法,而是系统建模的标准。UML经历了多年的研究、发展并不断完善,成为现在诸多领域内建模的首选标准。开发人员主要使用UML来构造各种模型,以便描述系统需求和设计。 24

1.3.1 为什么对系统建模 在系统设计中采用模型化设计的重要原因之一是管理系统设计的复杂性。模型化可以帮助用户从高层理解系统,使用户专注于系统设计的重要部分,收集关键信息,而不需要关心一些无关紧要的部分。 25

1.3.2 UML的发展

1.3.3 UML的构成 UML的四层体系结构 元元模型层 元模型层 模型层 用户模型层 27

1.3.3 UML的构成 UML的核心构成 视图:表达系统的某一个方面特征的UML建模元素的子集; 图:对建模系统的抽象表示,用于描述视图内容; 模型元素:包括事物和事物之间的联系; 通用机制:为模型元素提供额外信息。 28

部署图 部署视图

1.3.4 “统一”的意义 UML的含义为统一建模语言,那么“统一”在UML中的含义具有一些相关联的含义,具体表现在以下几个方面: 1.3.4 “统一”的意义 UML的含义为统一建模语言,那么“统一”在UML中的含义具有一些相关联的含义,具体表现在以下几个方面: 在以往出现的方法和表示法方面 在软件开发的生命期方面 在应用领域方面 在实现的编程语言和开发平台方面 在开发过程方面 在内部概念方面 30

1.4 UML视图 在对复杂的工程进行建模时,系统可由一个单一的图形来描述,该图形精确地定义了整个系统。但是,单一的图形不可能包含系统所需的所有信息,更不可能描述系统的整体结构功能。 UML中使用视图来划分系统各个方面,每一种视图描述系统某一个方面的特性。一个完整的系统由不同的视图从不同的角度共同描述,这样系统才可能被精确定义。 UML中具有多种视图,细分起来共有五种:用例视图、逻辑视图、并发视图、组件视图和部署视图。 31

构成系统模型的几种视图 组件视图

1. 用例视图 用途:描述系统应该具备的功能,即被称为参与者的外部用户所能观察到的功能。 用例视图是几个视图的核心,它的内容直接驱动其他视图的开发。

2. 逻辑视图 用途:描述用例视图中提出的系统功能的实现。 逻辑视图既描述系统的静态结构,也描述系统内部的动态协作关系。 使用者:主要是设计人员和开发人员。 组成:静态结构在类图和对象图中进行描述;动态模型在状态图、时序图、协作图以及活动图中进行描述。

3. 并发视图 用途:考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。 使用者:主要是开发人员和系统集成人员。 组成:状态图、协作图和活动图。

4. 组件视图 用途:描述系统的实现模块以及它们之间的依赖关系。 组成:组件图。 使用者:主要是开发人员。

5. 部署视图 用途:显示系统的物理部署,并描述位于节点实例上的运行组件实例的部署情况,还允许评估分配结果和资源分配。 组成:部署图。 使用者:开发人员、系统集成人员和测试人员。

1.5 UML图 每一种UML的视图都是由一个或多个图组成的,一个图就是系统架构在某个侧面的表示,所有的图一起组成了系统的完整视图。UML1.x提供了九种不同的图,可以分为两大类:一类是静态图,包括用例图、类图、对象图、组件图和部署图;另一类是动态图,包括序列图、协作图、状态图和活动图。 38

UML1.X与2.0的比较 对UML1.X进行了一些扩充。 用更为受限的通信图代替了协作图。 增加了交互概览图、定时图、组合结构图等新图。

1.6 模型元素 UML中每一个模型元素都有一个与之相对应的图形元素。模型元素的图形是表示使UML的模型图形化,图形语言简明和直观使用其成为人们建模的有力工具。模型元素包括事物和事物之间的关系,是UML中重要的组成部分。 40

1.6.1 事物 事物是UML模型中面向对象基本的模块,它们在模型中属于静态部分,代表物理上或概念上的元素。UML中的事物可分为四种,分别是 1.6.1 事物 事物是UML模型中面向对象基本的模块,它们在模型中属于静态部分,代表物理上或概念上的元素。UML中的事物可分为四种,分别是 结构事物 动作事物 分组事物 注释事物 41

1. 结构事物 UML模型中最基本的结构化事物,包括: 类 接口 协作 用例 活动类 组件 节点

(1)类 对具有相同属性、方法、关系和语义的对象的抽象。

(2)接口 为类或组件提供特定服务的一组操作的集合。 描述了类或组件的对外可见的动作。

(3)协作 定义了交互操作,一个给定的类可能是几个协作的组成部分。 代表构成系统的模式的实现。

(4)用例 描述系统对一个特定角色执行的一系列动作。 组织动作事物。

(5)活动类 类对象有一个或多个进程或线程的类。

(6)组件 实现了一个接口集合的物理上可替换的系统部分。

(7)节点 在运行时存在的一个物理元素。 代表一个可计算的资源。 通常占用一些内存和具有处理能力。

2. 动作事物 UML模型中的动态部分,包括: 交互 状态机

(1)交互 一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。

(2)状态机 由一系列对象的状态组成。

3. 分组事物 UML模型中组织的部分。 分组事物只有一种:包。 包是一种将有组织的元素分组的机制。 包只存在于开发阶段。

4. 注释事物 UML模型的解释部分。

1.6.2 关系 关联 依赖 泛化 实现 聚合

1.7 通用机制 通用机制使得UML更简单和易于使用 通用机制可以为模型元素添加注释、信息或语义,还可以对UML进行扩展。 1.7 通用机制 通用机制使得UML更简单和易于使用 通用机制可以为模型元素添加注释、信息或语义,还可以对UML进行扩展。 通用机制中包括了修饰、注释、规格说明和扩展机制等四种。 56

1.修饰 修饰(Adornment)为图中的模型元素增加了语义,建模时可以将图形修饰附加到UML图中的模型元素上。 例如,当一个元素代表某种类型时,名称显示为粗体;当同一元素表示该类型的实例时,该元素名称显示为下划线修饰。 57

2 注释 以自由的文本形式出现的。 信息类型是不被UML解释的一个字符串。 示例:

3 规格说明 UML 中预定义的特性: 文档(Documentation) 职责(Responsibility) 3 规格说明 UML 中预定义的特性: 文档(Documentation) 职责(Responsibility) 永久性(Persistence) 并发性(Concurrency)

4 扩展机制 构造型 标记值 约束

(1)构造型 由建模者设计的新的模型元素。 新的模型元素的设计要以UML已定义的模型元素为基础。 示例:

(2)标记值 附加到任何模型元素上的命名的信息块。 示例:

(3)约束 用某种形式化语言或自然语言表达的语义关系的文字说明。 示例:

1.8 使用UML建模 UML可用于任何面向对象系统开发建模,不仅可以为使用UML进行软件建模,同样可以使用UML对其他非计算机领域系统进行建模,UML常进行以下应用: 信息系统(Information System) 技术系统(Technical System) 嵌入式系统(Embedded Real-Time System) 分布式系统(Distributed System) 商业系统(Business System) 64

建模步骤 需求分析 分析 设计 构造 测试

UML建模工具 绘图工具 Microsoft的Visio 手绘 CASE(Computer Aided Software Engineering, 计算机辅助软件工程)工具 IBM Rational的Rational Rose Sparx Systems的Enterprise Architect(EA) 开源项目StartUML

CASE工具 UML建模CASE工具允许我们应用规范的面向对象分析和设计的方法与理论,远离纠缠不清的源代码,达到构建和设计变得更直观,更容易地理解与修改的层次。 在大型项目中,使用CASE工具更重要。通过使用CASE工具,开发者能快速地将模型转变为一个可运行的应用程序,寻找类和方法的子集,以及理解它们如何交互。

本章完