应用建模教案.docx
《应用建模教案.docx》由会员分享,可在线阅读,更多相关《应用建模教案.docx(23页珍藏版)》请在冰豆网上搜索。
![应用建模教案.docx](https://file1.bdocx.com/fileroot1/2023-7/8/47fe769f-6dc0-4256-bad9-463de4eea7c0/47fe769f-6dc0-4256-bad9-463de4eea7c01.gif)
应用建模教案
《4.1对象图和包》
本节目标
⏹本节主要学习以下内容:
✧对象图的基本概念
✧包的基本概念
⏹通过教学使学生理解对象图和包的相关概念,能够使用对象图对一个简单系统进行描述,并独立完成本节提出的任务。
本节重点
⏹对象图的基本概念
⏹包的基本概念
本节难点
⏹无
授课课时
⏹2课时
教法建议
在讲述本节内容时要注意理论联系实践。
目标概述[5分钟]
本章主要讲述运用面向对象技术对系统进行应用建模,通过对象图、包、组件图和部署图,来描述系统的实施和实现视图,以及学习如何使用建模工具来实施模型和代码间的双向工程。
本节将讨论系统静态设计视图中的对象图以及如何使用包来管理UML中的模型元素。
并提出了本节应该完成具体任务。
回顾[5分钟]
回顾在第三章讲述的有关架构建模的知识。
[讲述+提问]
课程知识点讲解
对象图[20分钟]
引入:
在UML中,类图描述的是系统的静态结构和关系,而交互图描述系统的动态特性。
在跟踪系统的交互过程时,往往会涉及到系统交互过程的某一瞬间交互对象的状态,但系统类图并没有对此进行描述。
主题:
在UML中引入对象图,用于描述一个参与交互的对象在交互过程中某一时刻的状态。
对象图(ObjectDiagram)是描述在某一时刻,一组对象以及它们之间关系的图形。
对象图是描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。
对象图中一般包括“对象”和“链”两类基本的模型元素。
1.对象(Object)
“对象”(Object)与术语“实例”(Instance)的含义是一致的,实例是抽象的具体表示。
一般来说,把类的具体表示称为对象,对象是类的实例。
在图形上使用包含带下划线的实例名的矩形框表示一个实例(对象)。
[简单介绍对象的概念和UML中描述方式,实例辅助讲解]
2.链(link)
链是两个或多个对象之间的独立连接,是关联的实例。
通过链可以将多个对象连接起来,形成一个有序列表,称为元组。
通常将两个对象之间的连接称为二元链。
链在图形上使用一条不带箭头的实线表示。
[简单介绍链的概念和UML中描述方式,实例辅助讲解]
3.对象图的建模技术
要对对象结构建模,应遵循以下步骤:
1确定参与交互的各对象的类,可以参照相应的类图和交互图
2确定类间的关系,如依赖、泛化、关联和实现
3确定在某特定时刻各对象的状态值,使用对象图为这些对象建模
根据建模目标,绘制对象的关键状态和关键对象之间的连接关系
[简述对对象建模的基本步骤]
4.提示与技巧
每一个对象图只是系统的静态设计视图或系统的静态进程视图的图形表示。
应使用对象图描述在系统中的重要对象的关键时刻的运行过程。
一个结构良好的对象图,应满足如下的要求:
●只包含关注表达系统静态设计视图或静态进程视图的一个方面
●只包含对理解系统运行关键时刻必不可少的对象
●只显示对象中必不可少的属性值
●不要过分地简化,以免产生误解
包(package)[25分钟]
引入:
当对大型系统进行建模时,经常需要处理大量的类、接口、组件、节点等建模元素,这时有必要这将这些元素进行分组,即把那些语义相近并倾向于一起变化的建模元素组织起来加入同一个“包”,这样方便理解和处理整个模型。
主题:
包是用于把元素组织成组的通用机制。
UML提供了对包的图形表示法,这种表示法允许你对那些能够作为一个整体进行处理的成组元素进行可视化,并在某种程度上控制个体元素的可见性以及对它们的访问。
在图形上,将包画为带标签的文件夹。
1.包的名字
每个包都必须有一个区别于其他包的名字。
模型包的名字是一个字符串,它可以分为简单名(simplename)和路径名(pathname)。
注意:
包名是以不限个数的字母、数字及某些标点符号组成的字符串,通常是取自系统中的名词或名词短语。
2.包拥有的元素
包可以拥有UML中其他元素,包括类、接口、组件、节点、协作、用例、甚至还可以包含其他子包。
包的作用不仅仅是为模型元素进行分组。
它还为所拥有的模型元素构成一个命名空间,这意味着一个模型包内的各个同类建模元素不能具有相同的名字,但不同模型包的各个建模元素能具有相同的名字。
3.包的可见性
包的可见性用来控制包外界的元素对包内元素的可访问权限,这一点和类的可见性类似。
可见性可以分成3种:
公有访问(public)、保护访问(protected)、私有访问(private)
[说明三种可见性的区别]
4.引入(import)与导出(export)
引入(import)使得一个包中的元素可以单向访问另一个包中的元素。
导出(export)指的是包中具有公有访问权限的内含元素,一个包中“导出”部分仅仅只对显示地引入这个包的其他包中的内含元素可见
[简述引入与导出的概念和区别,以及图形表示]
5.泛化关系
在包之间可以有两种关系:
一种关系是引入和访问依赖,用于在一个包中引入由另一个包导出的包元素;另一种关系就是泛化,用于说明包之间的继承关系。
[简述包的泛化关系及图形表示]
6.标准元素
UML的扩充机制同样适用于包元素,可以使用标记值来增加包的新特性,用构造型来描述包的新种类。
UML定义了5种构造型来为其标准扩充,分别是虚包(facade)、框架(framework),桩(stub)、子系统(subsystem)和系统(system)。
[简述包的各种标准元素]
7.包建模技术
对包建模可以遵循以下步骤:
①分析系统的模型元素(通常是对象类),把概念上或语义上相近的模型元素归入同一个包。
②对于每一个包,标出其模型元素的可视性,确定包内每个元素的访问属性,是公共、保护或私有。
③确定包与包之间的依赖联系,特别是“引入”关系。
确定包与包之间的泛化关系。
绘制包图。
对结果进行精化和细化。
[简述包建模的基本步骤]
任务解决[30分钟]
任务:
HNS图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,不过当这份文档提交给图书馆的使用人员审查时,他们认为最好能用一个实例来说明系统的运作,现系统分析部指派您完成该项任务,为系统绘制一张对象图。
1.以借书过程为例绘制对象图;
2.绘制还书过程的对象图。
分析:
[按照对象图建模的基本步骤分析必要条件和解决方案]
实现:
具体见P129-130。
[通过任务实现讲述如何给一个系统绘制对象图]
精练[45分钟]
任务:
[安排学生在课堂上完成]
请您根据本节所学的知识解决项目中的任务2。
分析:
还书业务所涉及的类图与借书过程的类图基本一致,现在请根据图4.1.9所示类图,参照任务1的分析解决过程,绘制读者“S05001”,归还“UMLGuide”一书时,系统的对象图。
实现:
仿照P129-130任务解决实现。
小结[5分钟]
本节学习了以下主要内容:
1.对象图的概念
2.包的概念
考核点
考核点1:
对象图的概念
考核点2:
包的概念
考核点3:
UML中如何绘制对象图
作业答案
1:
什么是对象图,请简述对象的作用?
答:
对象图(ObjectDiagram)是描述在某一时刻,一组对象以及它们之间关系的图形。
对象图是描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。
2:
包的访问可见性有几种?
请描述各访问可见性的区别。
答:
可见性可以分成3种:
公有访问(public)、保护访问(protected)、私有访问(private)
公有访问(public):
包内的模型元素可以被任何引入此包的其他包的内含元素访问。
保护访问(protected):
表示此元素只能被当前包的子包访问。
私有访问(private):
表示此元素只能被当前包内的模型元素访问。
3:
使用包技术对HNS图书馆的设计模型进行组织和管理。
答:
学生问题汇总
(注:
汇总学生在学习过程中容易出现的问题)
对象图的作用。
在RationalRose中如何表示对象图
教学后记
本节重点介绍UML建模中的对象图和包,学生对包概念掌握较好。
实际绘图中对象图有些学生不太理解其含义。
RationalRose对对象的图的支持不是很好,注意给学生解释。
《4.2组件图和部署图》
本节目标
⏹本节讨论系统的实现视图:
组件图和部署图。
本节包括以下主要内容:
✧组件图的基本概念
✧组件图的应用:
逻辑部署
✧部署图的基本概念
✧部署图的应用:
物理部署
⏹通过教学使学生理解实现视图的相关概念,能够使用组件图和部署图对一个简单系统进行描述,并独立完成本节提出的任务。
本节重点
⏹组件图的基本概念
⏹组件图的应用:
逻辑部署
⏹部署图的基本概念
⏹部署图的应用:
物理部署
本节难点
⏹组件图和部署图的区别
授课课时
⏹2课时
教法建议
在讲述本节内容时要注意理论联系实践。
目标概述[2分钟]
本节讨论系统的实现视图:
组件图和部署图。
并提出了本节应该完成具体任务。
回顾[3分钟]
回顾在上一节讲述的有关对象图的知识。
[讲述+提问]
课程知识点讲解
组件图(ComponentDiagram)[25分钟]
引入:
在对软件建模的过程中,可以使用用例图来表示系统的功能,使用类图来描述业务中的事物,使用活动图、交互图、状态图来对系统动态行为建模。
在完成这些设计后,分析人员就需要将这些逻辑设计图转化成实际的事物,如可执行文件、源代码、应用程序库等。
在此过程中,你会发现有些组件必须重新建立,而有些组件则可以进行复用。
因此,可以使用组件图来可视化物理组件以及它们之间的关系,并描述其构造细节。
主题:
组件图是对面向对象系统的物理方面建模时使用的两种图之一(另一种图是部署图),用于描述软件组件以及组件之间的组织和依赖关系。
组件图有利于:
(1)帮助客户理解最终的系统结构。
(2)使开发工作有一个明确的目标。
(3)复用软件组件。
(4)帮助开发组的其他人员理解系统。
构成组件图的元素包括组件(component)、接口(interface)和关系(relationship),还可以包括包(package)和子系统(subsystem)。
1.组件(Component)
组件是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现。
组件常用于对可分配的物理单元建模,这些物理单元包含模型元素,并具有身份标识和明确定义的接口,它具有很广泛的定义,以下的一些内容都可以被认为是组件:
程序源代码、子系统、动态链接库等。
组件的图形表示法是把组件画成带有两个标签的矩形。
每一个组件都必须有一个唯一的名称(name)。
[简述组件的基本概念和图形表示,实例辅助讲解]
一般来组件在许多方面都与类相同:
二者都有名称;都可以实现一组接口;都可以参与依赖、泛化和关联关系;都可以被嵌套;都可以有实例;都可以参与交互。
但是组件和类之间也有一些显著的差别:
①类表示逻辑抽象,而组件表示存在于计算机中的物理抽象。
简言之,组件是可以存在于可实际的运行的计算机上的,而类不可以。
②组件表示的是物理模块而不是逻辑模块,与类处于不同的抽象级别。
组件是一组其他逻辑元素的物理实现(如类及其协作关系),而类仅仅只是逻辑上的概念。
③类可以直接拥有属性和操作;而一般情况下,组件仅拥有只能通过其接口访问的操作。
这表明虽然组件和类都可以实现一个接口,但是组件的服务一般只能通过其接口来访问。
[简述组件与类的异同]
组件可以分为以下三种类型:
①实施组件(DeploymentComponent):
实施组件是构成一个可执行系统必要和充分的组件,如动态链接库(DLL)、二进制可执行体(EXE)、ActiveX控件和JavaBean组件等
②工作产品组件(WorkProductComponent):
这类组件主要是开发过程的产物,包括创建实施组件的源代码文件及数据文件,这些组件并不是直接地参加可执行系统,而开发过程中的工作产品,用于产生可执行系统。
③执行组件(ExecutionComponent):
这类组件是作为一个正在执行的系统的结果而被创建的,如由DLL实例化形成的COM+对象。
[简述组件的类型]
2.接口(Interface)
接口是一组用于描述类或组件的一个服务的操作,它是一个被命名的操作的集合,与类不同,它不描述任何结构(因此不包含任何属性),也不描述任何实现(因此不包括任何实现操作的方法)。
每个接口都有一个唯一的名称。
组件的接口可以分为两种类型。
(1)导出接口(expertinterface):
即为其他组件提供服务的接口,一个组件可以有多个导出接口。
(2)导入接口(importinterface):
在组件中所用到的其他组件所提供的接口,称为导入接口,一个组件可以使用多个导入接口。
[简述接口的概念、类型和图形表示]
3.关系(relationship)
组件图中使用最多的是依赖和实现关系。
[以实例简述组件关系的绘制]
4.补充图标
在Rose中这些特定类型的图标可分为主程序(mainprogram)、包(package)、子程序(subprogram)、任务(Task)等。
[简述几种特定类型的图标]
5.使用组件图对系统建模
组件图用于对系统的静态实现视图建模,这种视图主要支持系统部件的配置管理。
通常可以按下列四种方式之一来使用组件图:
1对源代码建模。
2对可执行体的发布建模。
3对物理数据库建模。
4对可适应的系统建模。
[简述组件图的几种使用方式]
使用组件图建模的步骤可按照下列步骤进行:
(1)对系统中的组件建模;
(2)定义相关组件提供的接口;
(3)对它们间的关系建模;
(4)对建模的结果进行精化和细化。
任务解决[15分钟]
任务:
HNS图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,下一步将完成系统的组件图和部署图,现系统分析部指派您完成如下任务:
1.完成系统的组件图。
分析:
在HNS的图书馆管理系统中,通过分析可以发现类图中的类应分为4个部分:
1.用户接口模块(UI),主要负责系统和用户的交互,包括Frame类,Dialog类等。
2.业务对象模块(BO),主要负责处理系统中的业务计算,如借书,还书等功能的具体操作。
3.数据存储模块(DB),主要负责处理对数据的存储。
4.通用工具模块(UTIL),包括系统中通用函数。
通过一个主程序StartClass来启动。
由于系统中的类较多,这里以业务对象模块(BO)为例来讲解如何创建组件图,BO模块中包括
Item类:
书目类,表示一本实际存在的书籍或杂志
Loan类:
借书业务类,将借阅者和图书馆关联起来,一个Loan对象表示借出的一本书
BorrowerInfomation类:
借阅者信息类,表示一个借阅者。
Title类:
表示一种书或一种杂志。
如《C++编程思想》就是一种书,用1个title表示,如果有2本这样的书,则需要用2个Item表示。
Reservation类:
预定信息类,表示一个预定信息。
Item类和Loan类之间互相依赖,Loan类和BorrowerInfomation类之间互相依赖,BorrowerInfomation类和Reservation类之间互相依赖,Reservation类和Title之间互相依赖,Title和Item类之间互相依赖。
实现:
具体见P138-142。
[通过任务实现讲述如何给一个系统绘制组件图]
部署图[25分钟]
引入:
组件图用于描述系统中软件的构成,但没有描述系统中与硬件有关的构成情况。
部署图则用于描述系统硬件的物理拓扑结构以及在此结构上运行的软件。
主题:
部署图可以显示计算节点的拓扑结构、通信路径、节点上运行的软件、软件包含的逻辑单元(对象、类等)。
部署图是描述任何基于计算机的应用系统(特别是基于Internet和Web的分布式计算系统)的物理配置的有力工具。
构成部署图的元素主要是节点(node)、组件(component)和关系(relationship)。
1.节点(node)
点是存在于运行时并代表一项计算资源的物理元素,一般至少拥有一些内存,而且通常具有处理能力。
它一般用于对执行处理或计算的资源建模,通常具有如下两方面内容:
能力(如基本内存、计算能力和二级存储器)和位置(在所有必需的地方均可得到)。
在建模过程中,可以把节点分成两种类型:
处理器(Processor):
能够执行软件组件、具有计算能力的节点。
设备(Device):
没有计算能力的节点,通常是通过其接口为外界提供某种服务,例如打印机、扫描仪等都是设备。
[简述节点的概念、组成、类型,实例辅助讲解]
2.组件(Component)
部署图中还可以包含组件,这里所指的组件就是4.2.1小节中介绍的组件图中的基本元素,它是系统可替换的物理部件。
节点和组件的关系:
①组件是参与系统执行的事物,而节点是执行组件的事物。
简单的说就是组件是被节点执行的事物,如假设节点是一台服务器,则组件就是其上运行的软件。
②组件表示逻辑元素的物理模块,而节点表示组件的物理部署。
这表明一个组件是逻辑单元(如类)的物理实现,而一个节点则是组件被部署的地点。
一个类可以被一个或多个组件实现,而一个组件也可以部署在一个或多个节点上。
[简述部署图中组件的使用以及节点与组件的关系]
3.关系(relationship)
部署图中也可以包括依赖、泛化、关联及实现关系。
[讲述部署图中的关系以及表示方式]
4.图标
下面以RationalRose为例,介绍几个特定类型的图标。
1处理器(Processor),表示具有运算能力的节点。
2设备(Device),表示没有运算能力的节点。
3通讯路径(Connection),表示节点之间的通讯关系。
5.使用部署图对系统建模
绘制系统部署图,可以参照以下步骤进行:
(1)对系统中的节点建模;
(2)对节点间的关系建模;
(3)对节点中的组件建模,这些组件来自组件图;
(4)对组件间的关系建模;
(5)对建模的结果进行精化和细化。
任务解决[15分钟]
任务:
HNS图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,下一步将完成系统的组件图和部署图,现系统分析部指派您完成如下任务:
2.完成系统的部署图。
分析:
HNS的图书管理系统目前开发的是一个单机版系统,其中所有的运算均在一台机器上完成,但是由于打印报表的需要,系统还应配备一台打印机。
因此得出系统中存在2个节点:
1一台主机,其类型是Processor。
2一台打印机,其类型是Device。
实现:
具体见P145-146。
[通过任务实现讲述如何给一个系统绘制部署图]
精练[45分钟]
任务:
[安排学生在课堂上完成]
请您根据本节所学知识,结合在类图中的设计完成系统的组件图。
提示:
本节书中已完成整体组件图,和BO包的组件图。
还有UI包,DB包和UTIL包3个详细组件图需要完成。
实现:
仿照P138-142任务解决实现。
小结[5分钟]
本节学习了以下主要内容:
1.组件图的基本概念
2.组件图的应用:
逻辑部署
3.部署图的基本概念
4.部署图的应用:
物理部署
考核点
考核点1:
组件图的基本概念
考核点2:
组件图的应用:
逻辑部署
考核点3:
部署图的基本概念
考核点4:
部署图的应用:
物理部署
作业答案
1:
请描述组件图和部署图的关系?
答:
组件图用于描述系统中软件的构成,但没有描述系统中与硬件有关的构成情况。
部署图则用于描述系统硬件的物理拓扑结构以及在此结构上运行的软件。
2:
请叙述类,组件和节点的关系?
答:
组件是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现。
节点和组件的关系:
①组件是参与系统执行的事物,而节点是执行组件的事物。
简单的说就是组件是被节点执行的事物,如假设节点是一台服务器,则组件就是其上运行的软件。
②组件表示逻辑元素的物理模块,而节点表示组件的物理部署。
这表明一个组件是逻辑单元(如类)的物理实现,而一个节点则是组件被部署的地点。
一个类可以被一个或多个组件实现,而一个组件也可以部署在一个或多个节点上。
3:
使用Rose工具完成HNS图书管理系统的组件图和部署图。
答:
扩展练习
运用本节知识完成考试系统的组件图
运用本节知识完成考试系统的部署图
学生问题汇总
(注:
汇总学生在学习过程中容易出现的问题)
组件的含义,在项目中的作用。
教学后记
本节重点介绍UML建模中的组件图和部署图,这是两种描述实际物理关系存在的图,学生能够较牢固理解掌握。
完成绘制情况较好
注意组件图中补充图标的区别。
《4.3正向工程和逆向工程》
本节目标
⏹本节讨论模型的正向工程和逆向工程。
本节包括以下主要内容:
✧正向工程的基本概念
✧利用Rose工具生成代码框架
✧逆向工程的基本概念
✧利用Rose工具从代码中生成模型
⏹通过教学使学生了解正向工程和逆向工程的概念和实现,并独立完成本节提出的任务。
本节重点
⏹正向工程的基本概念
⏹利用Rose工具生成代码框架
⏹逆向工程的基本概念
⏹利用Rose工具从代码中生成模型
本节难点
⏹无
授课课时
⏹2课时
教法建议
在讲述本节内容时要注意理论联系实践。
目标概述[2分钟]
本节讨论系统的实现视图:
组件图和部署图。
并提出了本节应该完成具体任务。
回顾[3分钟]
回顾在上一节讲述的有关对象图的知识。
[讲述+提问]
课程知识点讲解
正向工程(forwardengineering)[30分钟]
引入:
正向过程是通过到实现语言的映射而把模型转换为代码的过程。
主题:
使用Rose生成代码的基本步骤有6步:
(1)检查模型
(2)创建组件
(3)将类映射到组件
(4)设置代码生成属性
(5)选择类,组件和包
(6)生成代码
[以实例讲述利用Rose工具生成代码框架的具体步骤]
逆向工程(ReverseEngineering)[30分钟]
引入:
逆向工程是通过从特定实现语言的映射而把代码转换为模型的过程。
主题:
逆向工程涉及的对象可分为三类:
●数据:
作为学习、推理和讨论基础的实际信息。
●知识:
所知内容的总和,包括数据以及从数据中推导出的关系和规则。
●信息:
相互交织的交流知识。
基于这三类对象,ScottR.Tilley等人给出了逆向工程的三个规范活动:
数据收集、知识组织、信息浏览。
[以实例讲述利用Rose工具实施逆向工程的具体过程]
任务解决[20分钟]
任务:
现在,HNS图书管理系统的分析和设计工作已经基本完成,即将进入编码阶段。
为了加快编码进度,可以利用建模工具执行正向工程,将系统中的模型转换成指定语言类型的代码框架,现系统分析部指派您完成该项任务。
[通过任务实现讲述如何利用Rose工具生成代码框架]
精练[45分钟]
任务:
[安排学生在课堂上完成]
请您根据