SE4__第二章软件建模语言(3)
NX4_03Solid_Modeling_Base_2
圆有三个自由度:两个在中 心、一个是对半径 弧有五个自由度:两个在中心、 一个是对半径、两个对起始和 终止角 椭圆有五个自由度:两 个在中心、一个对它的 方位、两个对长半径与 短半径
过极点样条有四个自 由度:在它的每个端点 上两个 过定义点样条在它的每个 定义点上有两个自度度
草图约束
约束:精密地控制在草图中的对象。有两种类型约束: 尺寸约束(又称草图尺寸) 尺寸约束建立一草图对象的尺寸(如一直线的长度、一圆弧的半径等)或在两对象间 关系(如在两点间距离)。一个尺寸约束看上去如同在一工程图上的一个尺寸,改 变草图尺寸值改变由草图点控制的草图对象和/或尺寸。它也改变草图曲线控制的 实体模型的特征。
注意:
1. 这些被投射对象必须有一个早于激活草图的时间戳记。 2.从相关曲线投射的线串维持对原几何体的一个相关的链接。 3.投射的曲线是被固定的曲线, 一个草图不能同时含有定位尺寸和投射的对象。
草图操作 (续)
偏置抽取的曲线
偏置抽取的曲线 (Offset Extracted Curve)相 关地在草图中偏置投射的曲线,并建立一偏置约
练习1∶编辑尺寸
cdt_sketch_1.prt
练习1∶(续)
练习2:创建一个草图
练习3:利用投射
cdt_project.prt
Project 代替先前的Add Existing Curve • 非相关地投射一曲线到草图中
• 移去在草图中一投射一曲线的相关性
有什么问题吗?
© UGS Corp. 2004. All rights reserved.
草图操作
镜像 (Mirror)
过在草图中任一已存直线, 镜像草图几何体。 镜像几何约束作用到与镜像操作相关的所有几何 体_原来选择的几何体与新的拷贝
E4.0基础教程精讲中文野火版课程设计
Pro/E4.0基础教程精讲中文野火版课程设计课程概述Pro/E软件是目前工程设计中最为流行和应用最广泛的一种三维图形建模软件,它适用于机械、航空、汽车等领域的产品设计和制造。
本课程将以Pro/E 4.0版本为基础,向学生介绍Pro/E软件的各种功能和使用方法,帮助学生快速入门和掌握Pro/E软件的使用技巧。
课程目标本课程旨在:•让学生了解Pro/E软件的基础知识和操作方法;•培养学生运用Pro/E软件进行产品设计和制造的能力;•提高学生在工程设计、制造等领域的技术水平和竞争力。
课程安排第一章 Pro/E软件基础知识本章主要介绍Pro/E软件的基础知识,包括软件界面、工作区、基本操作等,让学生对Pro/E软件有一个整体的认识。
第一节 Pro/E软件介绍•Pro/E软件的发展历程;•Pro/E软件的应用领域;•Pro/E软件的功能特点。
第二节 Pro/E软件界面•Pro/E软件的界面布局;•Pro/E软件的菜单栏、工具栏等基础元素介绍;•Pro/E软件的操作方式。
第三节 Pro/E软件基本操作•Pro/E软件的文件操作;•Pro/E软件的图形操作;•Pro/E软件的零件设计和装配操作。
第二章 Pro/E软件实例讲解本章将以实际的产品设计和制造为例,分析Pro/E软件的使用方法和技巧,让学生更好地理解和掌握Pro/E软件的各种功能。
第一节 Pro/E零件实例•零件特征的设计与分析;•零件工艺的制定和规划。
第二节 Pro/E装配实例•装配特征的设计与分析;•装配工艺的制定和规划;•部件之间的相互作用和配合问题。
第三章 Pro/E软件扩展功能本章将介绍Pro/E软件的一些高级功能和扩展功能,包括模拟仿真、快速建模等,帮助学生更好地应对各种产品设计和制造挑战。
第一节 Pro/E模拟仿真•Pro/E模拟仿真的概念和原理;•Pro/E模拟仿真的使用方法和技巧;•Pro/E模拟仿真的应用领域和实例。
第二节 Pro/E快速建模•Pro/E快速建模的概念和原理;•Pro/E快速建模的使用方法和技巧;•Pro/E快速建模的应用领域和实例。
javase的知识点
javase的知识点JavaSE(Java Standard Edition)是Java平台的标准版本,它为开发和部署桌面、嵌入式和服务器应用程序提供了基础。
以下是一些JavaSE的重要知识点:1. 数据类型和变量:JavaSE中包括基本数据类型(如int、double和boolean)和引用数据类型(如字符串和数组)。
了解各种数据类型的特性以及变量的声明和初始化方法很重要。
2. 控制流语句:JavaSE支持常见的控制流语句,如条件语句(if-else和switch)、循环语句(for、while和do-while)和跳转语句(break和continue)。
熟悉这些语句的用法能够编写更具有逻辑性和可读性的代码。
3. 面向对象编程(OOP):JavaSE是一门面向对象的编程语言,包括类、对象、继承、封装、多态等概念。
理解OOP的基本原则和常用设计模式,能够编写可重用、可维护和可扩展的代码。
4. 异常处理:JavaSE使用异常机制来处理运行时错误。
了解异常的类型、如何捕获和处理异常以及如何定义自定义异常类,能够使程序具备更好的错误处理机制。
5. 输入输出(I/O):JavaSE提供了灵活的I/O类和接口,用于读写数据流、文件和网络通信。
熟悉常用的输入输出操作能够使程序与外部环境进行数据交互。
6. 集合框架:JavaSE提供了丰富的集合类和接口,如List、Set、Map等。
了解集合的特性和常用操作,能够高效地处理和组织数据。
7. 线程编程:JavaSE支持多线程编程,可以同时执行多个任务。
了解线程的生命周期、同步机制和线程池的使用方法,能够提高程序的并发性和性能。
8. 常用类库:JavaSE提供了许多常用的类库,如字符串处理、日期时间操作、数学计算等。
熟悉这些类的用法,可以方便地实现各种常见功能。
以上仅是JavaSE中的部分重要知识点,掌握这些知识可以帮助开发人员编写高质量、可靠和可维护的Java程序。
软件工程导论第4版第2章
2.4 数据流图
数据流图(DFD)是一种图形化技术,它描 绘信息流和数据从输入移动到输出的过程中所 经受的变换。在数据流图中没有任何具体的物 理部件,它只是描绘数据在软件中流动和被处 理的逻辑过程。数据流图是系统逻辑功能的图 形表示,即使不是专业的计算机技术人员也容 易理解它,因此是分析员与用户之间极好的通 信工具。此外,设计数据流图时只需考虑系统 必须完成的基本逻辑功能,完全不需要考虑怎 样具体地实现这些功能,所以它也是今后进行 软件设计的很好的出发点。
图2.1 基本符号
2.3.2 例子
介绍系统流程图的最好方法可能是通过一个 具体例子说明它的用法。下面是一个简单的例子。 某装配厂有一座存放零件的仓库,仓库中现 有的各种零件的数量以及每种零件的库存量临界 值等数据记录在库存清单主文件中。当仓库中零 件数量有变化时,应该及时修改库存清单主文件, 如果哪种零件的库存量少于它的库存量临界值, 则应该报告给采购部门以便定货,规定每天向采 购部门送一次定货报告。
图2.3 库存清单系统的系统流程图
2.3.3 分层
面对复杂的系统时,一个比较好的方法是分 层次地描绘这个系统。首先用一张高层次的系统 流程图描绘系统总体概貌,表明系统的关键功能。 然后分别把每个关键功能扩展到适当的详细程度, 画在单独的一页纸上。这种分层次的描绘方法便 于阅读者按从抽象到具体的过程逐步深入地了解 一个复杂的系统。
2.2 可行性研究过程
典型的可行性研究过程有下述一些步骤: 1. 复查系统规模和目标 分析员访问关键人员,仔细阅读和分析有 关的材料,以便对问题定义阶段书写的关于规 模和目标的报告书进一步复查确认,改正含糊 或不确切的叙述,清晰地描述对目标系统的一 切限制和约束。这个步骤的工作,实质上是为 了确保分析员正在解决的问题确实是要求他解 决的问题。
SE(4)
4.5 需求分析最佳实践
4.5.4 UML需求分析技术 基于用例模型进行需求分析的主要步骤如下: 1. 2. 3. 4. 5. 6. 7. 分析需求的质量属性。 确定各需求条目的优先级,选取优先分析的用例。 精化领域概念模型。 用例分析。 构造状态图、活动图。 构建快速原型。 评审分析模型。
4.5 需求分析最佳实践
4.2 软件需求与需求过程
4.2.2 需求工程
用UML活动图表示的需求工程中单个子过程的工作流
单次子过程中的缺陷追踪及返工
4.2 软件需求与需求过程
4.2.2 需求工程
Elicitation Analysis
Commitment Planning
Commitment Acceptance
SSS SSDD SRS SDD
成本效益分析:该项目的投资规模较小,但是可以大大提高 教学管理,方便教务人员、教师和学生开展课程相关的教学与 管理,投入小,效益大。 长远利益分析:系统能够有效记录课程教学的相关信息,能 够便于未来实施有效的教学监督、管理与改革。 技术可行性分析:该系统采用成熟的系统开发技术,技术可 行。 综上所述,该系统是可行的。
4.5 需求分析最佳实践
4.5.2 需求建模基础
课程注册管理系统的对象模型示例
4.5 需求分析最佳实践
4.5.2 需求建模基础
[
<
]
[ 初始 开放
>=
] 关闭
[ 2:00]
取消
动态模型示例
4.5 需求分析最佳实践
4.5.3 流行的需求分析方法论
(1)结构化分析方法 结构化分析方法(Structured Method,结构化方 结构化分析方法 法)是强调开发方法的结构合理性以及所开发软件 的结构合理性的软件开发方法。
Illustrator CS4实战教程讲义
三、使用页面辅助工具
• • • • 标尺 网格 参考线 智能参考线
思考与练习
一、思考题:
1.数字图像有哪些类型?它们有何不同? 2.Illustrator CS4有哪些类型的工具? 3.简述Illustrator基本文件操作的方法。
二、上机实训:
1.新建一个画板大小为B5,取横向,颜色模式为CMYK的画 板,然后置入一幅JPG格式的图像,对它进行命名并保存。 2.分别绘制如图1-19、1-20、1-21所示的图形,并分别将 其导出为JPG格式文件 3.尝试绘制如图所示的图形。
1.3 初识Illustrator CS4
2.增强功能:
• 剪切蒙版,具有更简洁的外观,更易访问
• 在面板内进行外观编辑
• 更丰富的“图形样式”面板
• 支持Flex扩展功能
• 多画板导出支持
1.4 Illustrator CS4工作区
一、Illustrator CS4工作区简介
1.4 Illustrator CS4工作区
二、路径的编辑
• 添加或删除锚点 • 转换锚点 • 连接路径、闭合路径、修改路径
3.1 关于VI设计
VI系统:
• 基本要素系统:如企业名称、企业标志、企业造型、标准 字、标准色、象征图案、宣传口号等。 • 应用系统:产品造型、办公用品、企业环境、交通工具、 服装服饰、广告媒体、招牌、包装系统、 公务礼品、陈 列展示以及印刷出版物等。 一套VI设计的主要内容: • 基本要素系统:标志、标准字、标准色、标志和标准字的 组合 • 应用系统
1.1 图形设计思维
图形设计思维从本质上讲,是一种运用视觉 形象进行创造性的思维活动,而创造性思维是创 造力和想象力的结合。对图形设计而言,这种思 维过程非常复杂,带有很大的偶然性,因此为了 尽可能地解释图形设计的有关思维活动,为了能 从自然的体验中获得超自然的设计思维,研究思 维的心理因素和心理过程是非常必要的。 1.独特飘逸的思维活动——灵感 2.设计思维的心理反应——情感 3.图形创意思维的基础——联想 4.图形创意思维的原动力——视觉想象
ProE4.0基础教程课件完整版
zpofrp 2013-10-27
Pro/ENGINEER Wildfire 4.0的新增功能
5. Mathcad-Pro/ENGINEER综合化改进 Pro/ENGINEER Wildfire 4.0增加了与Mathcad的兼容性,并做
出了其它改进。 6. 改进ProductView接口
Pro/ENGINEER Wildfire 4.0改进了ProductView接口,现在支 持ProductView数据输入作为确切的几何表示法。 7. AutoCAD DXF和DWG改进
zpofrp 2013-10-27
Pro/ENGINEER Wildfire 4.0核心设计思想
参数化设计: Pro/ENGINEER引入了参数化设计思想,创
建模型以尺寸数值为设计依据。设计者可以在 绘图时暂时舍弃大多数繁琐的设计限制,只需 抓住图形的某些典型特征绘出图形,然后通过 向图形添加适当的约束条件规范其形状,最后 修改图形的尺寸数值,经过再生后即可获得理 想的图形,这就是重要的“尺寸驱动”理论。
图2.1 工具栏
zpofrp 2013-10-27
2.2 文件操作
常用的文件操作: 1 新建文件 2 打开文件 3 保存文件 4 文件另存为 5 拭除文件 6 删除文件
zpofrp 2013-10-27
2.3 文件类型
1. 草绘:建立2D草图文件,其后缀名为“.sec”。 2. 零件:建立3D零件模型文件,其后缀名为“.prt”。 3. 组件:建立3D模型安装文件,其后缀名为“.asm”。 4. 制造:NC加工程序制作、模具设计,其后缀名为
zpofrp 2013-10-27
Pro/ENGINEER Wildfire 4.0的新增功能
精品课件-CoreIDRAWX4中文版标准-第2章
2.1 矩形、正方形、圆角矩形、平行四边形 2.2 椭圆形、正圆形、饼形、扇形与弧线 2.3 多边形、星形和复杂星形 2.4 图纸与螺旋 2.5 使用预置图形 2.6 思考与练习
第2章 绘制基本图形
本章主要内容: ● 矩形绘制——矩形、正方形、圆角矩形和平行四边形
的绘制; ● 圆形绘制——椭圆形、正圆形、饼形、扇形、弧线的
第2章 绘制基本图形
2) 改变矩形大小 改变矩形大小,是指改变矩形对象的宽度或高度。 改变矩形大小的具体操作方法如下: (1) 点选矩形,使矩形处于被选择状态,激活矩形周边 控点。 (2) 根据具体需要,采用下列方法之一:
第2章 绘制基本图形
★ 改变矩形宽度──移动鼠标指针到矩形左右侧边控点, 使鼠标指针变成水平双箭头光标 ,横向拖放光标。
绘制; ● 多边形绘制——多边形、星形、复杂星形、图纸网格
和螺旋形的绘制; ● 预置图形绘制——基本形状、箭头形状、流程图形状、
标题形状和标注形状的绘制。 任何复杂的图形,都是由最基本的几何图形拼合、加工、
整理而成的,在本章中,我们将着重探索各种基本图形的具体 绘制方法。
第2章 绘制基本图形 2.1 矩形、正方形、圆角矩形、平行四边形
(5) 沿垂直于矩形边线方向移动鼠标,拉出矩形高度, 如图2-6 所示。
(6) 当矩形高度符合需要时,单击鼠标,结束矩形绘制。
第2章 绘制基本图形 图2-5 沿需要的方向拉出矩形的边线
第2章 绘制基本图形 图2-6 沿边线垂直方向拉出矩形高度
第2章 绘制基本图形 这样,一个可以用任意角度放置的斜向矩形,通过【3点 矩形工具】而被创建出来。 轻语相告:在拖动鼠标绘制矩形边线过程中,不要松开鼠 标左键,在到达目的地后才能松开。
SE研第4章3
Destination Panel
电梯控制
Floor
Elevator Event
Summons Panel
Arrival Summons Destination
Event
Event
Eቤተ መጻሕፍቲ ባይዱent
主题一:电梯管理,主 要用于控制硬件; 主题二:电梯控制,是 检测时间的发生,并对 电梯进行相应调度。
高级软件工程
第四章 软件开发的面向对象方法
4.2.3 建立结构
前面定义了对象,比较深入 地认识了对象的内部特征。
但是对象之间还存在着更为 复杂的外部特征,建立结构就是 从对象的外部研究其结构特征, 从而从更深层次达到认识对象的 本质和规律的目的。
第四章 软件开发的面向对象方法
4.1 面向对象方法概述 4.2 面向对象分析 4.2.1 00A方法概述 4.2.2 确定对象 4.2.3 建立结构 4.2.4 建立主题 4.2.5 确定属性 4.2.6 确定消息和服务 4.2.7 实例连接
属性和服务的定义是: 属性是描述对象静态特征的数据项。
服务是描述对象动态特征(行为)的操作序列。
在OOA过程中,只有给出对象的属性和服务, 才算对这个对象有了确切的认识和定义。属性和服 务也是对象分类的根本依据——一个类的所有对象 ,应该具有相同的属性和相同的服务。
按照OO方法的封装原则,一个对象的属性和服务
Motor
Sensor
Panel
Panel
Floor
Summons Panel
高级软件工程
第四章 软件开发的面向对象方法
4.2.4 建立主题
可以通过建立多个主题来处理规 模比较大的复杂模型。每个主题可 以看作一个子模型或是一个分系统。
java se 知识点总结
java se 知识点总结一、Java SE 概述Java SE(Java Platform, Standard Edition)是Java 编程语言的基础版本,用于开发桌面应用程序、控制台应用程序以及一些简单的中小型Web 应用。
它包括了Java 编程语言的核心库和Java 虚拟机(JVM)。
二、Java 基本语法学习Java 编程首先需要掌握Java 基本语法,例如变量声明、数据类型、运算符、流程控制等。
此外,还需了解Java 编码规范,如命名规则、注释、代码格式等。
三、数据类型与变量Java 中有8 种基本数据类型(byte、short、char、int、long、float、double 和boolean),以及引用类型(如String、Integer 等)。
变量在Java 程序中扮演着重要角色,了解变量的生命周期、作用域以及内存分配等知识点至关重要。
四、控制流程控制流程是Java 编程的核心部分,主要包括条件语句(if、else)、循环语句(for、while)、分支语句(switch)以及异常处理等。
五、面向对象编程Java 是一门面向对象的编程语言,了解类、对象、封装、继承、多态等概念对于Java 程序设计至关重要。
六、数组与字符串数组是Java 中的一种重要数据结构,可用于存储同一类型的数据。
字符串在Java 中非常重要,熟练掌握String 类、StringBuilder 类以及字符串操作方法是Java 编程的基本功。
七、异常处理与输入输出Java 异常处理机制可以帮助我们处理程序运行过程中的错误,提高代码的健壮性。
输入输出操作包括文件读写、网络通信等,掌握IO 操作方法对于实际项目开发很有帮助。
八、集合框架与泛型Java 集合框架提供了多种数据结构,如List、Set、Map 等,了解它们的实现原理和使用方法有助于编写高效的代码。
泛型是Java 面向对象编程的重要组成部分,掌握泛型编程可以提高代码的复用性和类型安全。
SE4__第二章软件建模语言(3)
区别操作与方法
– 在具有多态性的定义中,操作只有一个,方法却有 多个。
©Copyright FJNU倪友聪
19
5.2 类
类和对象
属性 操作 类的种类
©Copyright FJNU倪友聪
20
5.2.4 类的种类
类图的三个抽象层次,对于画类图和理解类图都 是至关重要的。
©Copyright FJNU倪友聪
5
5 .1 类图概述
建立类图的过程实际上是对现实世界的一个抽象
过程。它可以对现实世界中与问题有关的各种对 象及其相互之间的各种关系进行分类描述。
通过分类,可以有效地发现复杂问题的内在规律, 更深刻地了解问题的本质,进而找到解决问题的
32
关联的导航性
在关联上增加一个箭头表示导航性。导航主要用于 说明层和实现层,在概念层中用处不大。
导航指示
学生
1
学习
1..*
课程
– 说明层:学生对象知道自己学习了哪些课程,但课
程对象不需要知道哪些学生对象学习它。
– 实现层:学生对象包含指向课程对象的指针数组,
但课程对象没有指向学生对象的指针数组。
学生设计类
T
<<bind>>
集合
©Copyright FJNU倪友聪
学生集
(3)绑定依赖
45
5 类图
类图概述
类 类之间的静态关系 使用类图的建议
©Copyright FJNU倪友聪
46
5.4 使用类图的建议
软件建模课后习题解答
第4章 用例图 章节练习4.4 练习罚款记录还书信息用例间的关系有包含关系,泛化关系,拓展关系。
拓展关系在完成某个功能的时候有时会执行另一个功能。
4.5 练习用例名称:登陆 用例标识号:01 参与者:ATM 用户 简要说明:ATM 用户通过插入银联卡登陆ATM 机。
前置条件: 无后置条件:系统提供取款、查询余额、转账、修改密码的选项。
事件路径:(1)用户插入ATM 卡;(2)系统 验证卡有效;(2a )卡无效(2a1)系统提示卡无效;(2a2)系统退卡// (3)系统提示输入密码;(4)用户输入密码;(5)系统验证密码正确;(5a)密码无效,输入次数少于3次(5a1)系统提示密码错误,要求用户重新输入密码(5a2) 返回3(5b)第三次输入密码错误(5b1)系统提示密码错误(5b2)系统退卡//(6)系统提供选项实战模拟实战模拟A 家教网上发布系统的用例模型注册学生信息登记家教信息对于用例描述,篇幅有限,我在这里只列了后台管理系统中的“发布网站公告”这个用例的描述用例名称:发布网站公告用例标识号:202参与者:管理员简要说明:管理员填写和修改家教网站首页的公告,公告最终显示在家教网站的首页上。
前置条件:负责人已经登陆家教网站管理系统后置条件:网站首页的公告信息被更新事件路径:1.管理员选择“修改公告”选项;2.系统显示公告信息;3.管理员选择编辑公告3a.管理员选择删除公告3a1. 系统提示是否删除3a2. 管理员选择是3a2a. 管理员选择否3a2a1. 返回23a3. 系统清除公告4.系统提供编辑界面5.管理员编辑公告6.管理员提交公告7.系统记录最新公告8.系统在首页更新显示扩展事件流:3~5a.管理员取消对公告的修改3~5a1.系统提示是否取消修改公告3~5a2.管理员选择是3~5a3.用例终止补充说明:无实战模拟B 超市收银系统的用例模型记账系统库存系统管理员用例文档: 用例名:收银主要参与者:收银员项目相关人员及其兴趣: ● 收银员:希望能够准确、快速的输入,而且没有支付错误,因为收银员如果少收了钱,就要从他的薪水中扣除相应的金额。
SE(2)
Model
Mapping
Application-of 1
Mapping Technique
MDA中的元模型、模型和映射之间的关系
2.6 软件开发方法概述
2.6.3 模型驱动的开发
PIM UML
抽象
转换
转换
具体
C#/.Net PSM 转换
Web Service PSM 转换 Web Service 应用
EJB/J2EE PSM 转换 EJB/J2EE 应用
具体
C#/.Net 应用
支持MDA的软件开发过程
2.6 软件开发方法概述
2.6.3 模型驱动的开发
PSM(XMI 文档) <Car> <Name> JRT </Name> <Engine> 2 </Engine> <Speed> 240 </Speed> </Car>
第二章第二章软件工程概述软件工程概述教学目标教学目标??????理解软件的概念掌握软件工程的概念掌握软件过程软件过程模型软件生命周期的概念掌握软件实践中的典型项目角色理解常见的软件生命周期模型了解软件开发方法理解面向对象的开发方法教学重点教学重点???软件工程的概念软件过程的概念模型和软件生命周期模型软件开发方法教学难点教学难点??面向对象的开发方法模型驱动的开发方法学生任务成果学生任务成果??确定课程注册管理系统的项目组人员确定课程注册管理系统的开发方法2
2.4 软件开发过程概述
2.4.2 软件开发过程 软件过程(Software Process) 是指一套关于项目 软件过程 的阶段、状态、方法、技术和开发、维护软件的人员 以及相关Artifacts(计划、文档、模型、编码、测试、 手册等)组成。 软件过程(Software Procedure) 软件过程 所涉及的一系列相关过程。 是指软件生存周期
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
class Set <T> { void insert (T newElement); void remove (T newElement); … } Set<employee> empolyeeSet empolyseeSet.remove(…)
©Copyright FJNU
12
©Copyright FJNU
5.2.3 操作
在概念层,用操作去定义类的职责,而不是接口。
在说明层,主要描述重要的公有操作。 在实现层,主要描述一些私有的和受保护的操作。
©Copyright FJNU
13
5.2.3 操作
类职责是从高层次描述的类的目的,它从对属性
和方法的描述中摆脱出来,用几句话来定义类的 目标。
©Copyright FJNU
42
授权
泛化
聚合
类List成为类Stack的私有成员
©Copyright FJNU
43
5.3.3 实现关系
实现关系用于在说明层和实现层表示类与被该类实现 的接口之间关系。
注意与泛化关系图符 的区别
©Copyright FJNU
44
5.3.4 依赖关系
依赖关系表示一个类以某种形式依赖另一个类。常见 的依赖关系有:
– 不是用图,而是用卡片来描述类。 – 不是描述类的属性和方法,而是描述类的职责。
©Copyright FJNU
15
CRC卡片
CRC卡片实例
类名
协作
职 责
订单 检查库中是有否此项产品 确定价格 检查付款方式是否有效 …… 订单项 订单项 客户
©Copyright FJNU
16
CRC卡片
何时使用CRC卡片
6
5 .1 类图概述
©Copyright FJNU
7
5.2 类
类和对象
属性 操作 类的种类
©Copyright FJNU
8
5.2.1 类和对象
对象
– 是对应用问题中或软件系统中事物或概念的一种抽 象描述。 – 所有对象都是独立的实体,都有其唯一的标识。 – 同类对象具有相同的特征。
对每项职责而言,可指定其它类作为 协作者来完 成类的此项职责。
CRC卡片(Class-Responsibility-Collaborator
责。
,“类-职责-协作者”)可用于在概念层定义类的职
©Copyright FJNU 14
CRC卡片
CRC卡片是由美国Tektronix实验室两位著名的
Smalltalk程序员在80年代末设计 的。
©Copyright FJNU
5
5 .1 类图概述
建立类图的过程实际上是对现实世界的一个抽象
过程。它可以对现实世界中与问题有关的各种对 象及其相互之间的各种关系进行分类描述。
通过分类,可以有效地发现复杂问题的内在规律, 更深刻地了解问题的本质,进而找到解决问题的
有效方法。
©Copyright FJNU
– 在软件开发的早期,清理问题领域所涉及的类的时 候。 – 当类缺乏清晰定义的时候。 – 当开发人员在定义类时,过早地陷于到太多的细节 中的时候。
©Copyright FJNU
17
5.2.3 操作
在UML中,操作的语法定义:
可见性 名称(参数表):返回类型 {约束特性} – 可见性:表示该操作对于类外的元素是否可见。
关联类
©Copyright FJNU 35
关联类
关联类也可以用普通(正式)的 类来表示。
– 这种表示在描述一个对象与另一个对象之间,需要 有多于一个的关联类实例时,是可行的。(此时使 用关联类是不行的,因为那样就违反了UML的规定)
©Copyright FJNU
36
两种特殊的关联关系
有两种特殊的关联关系,它们是聚合关系和组合 关系。
©Copyright FJNU
23
接口和抽象类
一个接口是一个不带实现的类,它 只规定类的外
部特性。 接口可通过抽象类来描述。 UML用斜体表示抽象元素(包括类、属性、方法 等)的名称。
©Copyright FJNU
24
接口和抽象类
©Copyright FJNU
25
参数化类
参数化类就是模板,特别适合定义抽象的集合。
– 一个父类的任何子类都必须具有其父类的所有行为。 这种行为的一致性要求类中的操作不仅在语法上一 致,而且在语义上也要一致。 – 语义上的一致意味着每个对象都应该是其父类的一 个对象,父类中的所有属性和操作都完全适用于子 类对象。
©Copyright FJNU
40
继承
即便子类重载父类中的操作,必须保证这个操作
软件工程学 之
第2章
软件建模语言——UML
©Copyright FJNU
用工程化的方法来开发软件
1
5 类图
类图概述
类 类之间的静态关系
使用类图的建议
©Copyright FJNU
2
5 .1 类图概述
类图技术是面向对象方法的核心技术。
它定义了很多的概念,并提供了丰富的表示法。 类图的表达能力强,应用范围广。
21
接口
OO方法十分注意接口和类的区别,将接口本身称
作类型,将接口的实现称作类。以强调这种区别。 但面向对象程序设计语言通常将接口和类混为一 团。新的OO语言,如Java、C#和CORBA就改变 了这种状况。
©Copyright FJNU
22
接口
接口的两种表示方法
Iterator
next() haveNext()
UML表示“+” 保护 UML表示“#” 私有 UML表示“-”
公有
– – – –
名称:是一个字符串,表示操作的名称。 参数表:操作所需的参数。 返回类型:返回值的类型 约束特性:描述对操作的约束。(前置、后置条件)
18
©Copyright FJNU
5.2.3 操作
操作的基本类型
– 获取型操作,不改变类状态的操作。 – 设置型操作,改变类状态的操作。
学生在学习关联中 扮演学习者角色 课程在学习关联中 扮演学习对象角色
©Copyright FJNU
31
关联的多重性
关联的角色可以具有多重性。一个角色可以由多个
对象来扮演。关联的多重性表示参与角色的对象的 数目的上下界。
一门课程可由零到 多个学生学习
©Copyright FJNU
一个学生学习一到 多门课程
©Copyright FJNU
9
5.2.1 类和对象
类
– – – – 是对一类具有相同特征的对象的描述。 类的特征包括属性和行为。 任何对象都是某个类的实例。 用类的概念来划分问题中涉及的各种对象,并组织 系统的结构。
©Copyright FJNU
10
5.2.2 属性
在三个不同的抽象层次,属性也具不同的含义。以
在UML中,可从三个不同的抽象层次来看待类图。
– 概念层:概念层类图描述的是应用领域中的概念或 事物。概念层类图与实现它的软件没有直接的联系。 – 说明层:说明层类图主要关注的是软件的接口部分, 而不是软件的实现部分。 – 实现层:实现层类图揭示了软件实现体的构成情况。
类图的三个抽象层次,对于画类图和理解类图都 是至关重要的。
– 限定
©Copyright FJNU
29
关联的名称
关联的名称用于描述关联的性质,可以使用动词
或动词短语给关联命名。在含义十分明显时,名
字可以省略。
关联的名称 阅读方向指示符
©Copyright FJNU
关联
30
关联的角色
关联的两个端点被称为角色,表示关联所连接的
两个类各自在此关联中的作用。
学生
<<use>>
数据库访问类
(1)使用依赖 (2)抽象依赖
学生分析类
<<trace>>
学生设计类
T
<<bind>>
集合
©Copyright FJNU
学生集
(3)绑定依赖
45
5 类图
类图概述
类 类之间的静态关系 使用类图的建议
©Copyright FJNU
46
5.4 使用类图的建议
32
关联的导航性
在关联上增加一个箭头表示导航性。导航主要用于 说明层和实现层,在概念层中用处不大。
导航指示
学生
1
学习
1..*
课程
– 说明层:学生对象知道自己学习了哪些课程,但课
程对象不需要知道哪些学生对象学习它。
– 实现层:学生对象包含指向课程对象的指针数组,
但课程对象没有指向学生对象的指针数组。
26
5 类图
类图概述 类 类之间的静态关系 – 关联 – 泛化 – 依赖 – 实现
使用类图的建议
27
©Copyright FJNU
5.3 .1 关联
关联表示类之间存在的某种关系,它是对对象之
间存在的某种具体关系的抽象。
– 在概念层,属性与关联可以互换。即一个概念既可 以用属性来表达,也可以用关联来表达。