软件设计统一建模语言UML
- 格式:pdf
- 大小:462.03 KB
- 文档页数:38
uml软件工程课程设计一、课程目标知识目标:1. 掌握UML(统一建模语言)的基本概念、图示及其在软件工程中的应用。
2. 学会使用UML图(如用例图、类图、序列图等)来表达软件系统的结构和行为。
3. 了解软件工程的基本原则,理解UML在软件开发生命周期中的作用。
技能目标:1. 能够运用UML图进行软件需求分析,构建系统的逻辑模型。
2. 能够利用UML图进行软件设计,提高代码的可维护性和可读性。
3. 能够运用UML图进行团队协作,提高沟通与交流效果。
情感态度价值观目标:1. 培养学生对软件工程的兴趣,激发他们探究新技术的热情。
2. 培养学生严谨、细致的工作态度,提高他们解决实际问题的能力。
3. 培养学生团队协作精神,使他们认识到团队合作的重要性。
本课程针对高中年级学生,结合学科特点,注重理论与实践相结合,培养学生运用UML进行软件设计和分析的能力。
课程目标旨在让学生掌握UML的基本知识,提高他们在实际项目中的应用能力,同时培养他们的团队协作和沟通能力,为未来从事软件开发工作打下坚实基础。
通过本课程的学习,学生将能够更好地理解软件工程的概念,提高自身编程素养,形成积极的情感态度价值观。
二、教学内容1. UML基本概念与图示:包括UML的发展历程、基本组成元素、图示类型及用途。
- 教材章节:第一章 绪论- 内容列举:UML的定义、UML图分类、UML的基本元素(类、对象、关系、行为等)2. UML图的应用与实践:- 用例图:描述系统的功能需求,分析用户与系统的交互。
- 类图:表示系统中类的结构及类之间的关系。
- 序列图:描述对象之间的交互过程,展示动态行为。
- 状态图、活动图等其他UML图:分别描述对象的状态变化和活动流程。
- 教材章节:第二章至第五章- 内容列举:用例图、类图、序列图、状态图、活动图等UML图的基本概念、绘制方法及应用实例。
3. 软件工程原则与UML实践:- 教材章节:第六章 软件工程原则- 内容列举:软件工程的基本原则、UML在软件开发生命周期中的应用、UML与敏捷开发等。
简述统一建模语言
统一建模语言(UML):是一种用于对软件密集系统进行可视化建模的标准语言。
它始于1997年,被采纳为OMG标准,是一种非专利的第三代建模和规约语言。
UML独立于任何具体程序设计语言,是面向对象设计的建模工具。
UML为面向对象开发系统的产品进行说明、可视化和编制文档,展现了一系列最佳工程实践,这些实践在对大规模、复杂系统进行建模方面已经被验证有效。
UML可以贯穿软件开发周期中的每一个阶段,从需求分析到规格,到构造和配置。
UML表示法集中了不同的图形表示方法,剔除了其中容易引起的混淆、冗余或者很少使用的符号,同时添加了一些新的符号。
其中的概念来自于面向对象技术领域中众多专家的思想。
总的来说,UML作为一种模型语言,使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。
当模型建立之后,模型可以被UML 工具转化成指定的程序语言代码。
统一建模语言统一建模语言(UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它融入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
1.UML的结构UML的结构包括基本构造块、支配这些构造块如何放在一起的规则(体系架构)和一些运用于整个UML的机制。
(1)构造块。
UML有三种基本的构造块,分别是事物(thing)、关系(relationship)和图(diagram)。
事物是UML中重要的组成部分,关系把事物紧密联系在一起,图是很多有相互相关的事物的组。
(2)公共机制。
公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制四种。
●规格说明:规格说明是事物语义的文本描述,它是模型真正的核心。
●修饰:UML为每一个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息。
●公共分类:包括类元与对象(类表示概念,而对象表示具体的实体)、接口和实现(接口用来定义契约,而实现就是具体的内容)两组公共分类。
●扩展机制:包括约束(添加新规则来扩展事物的语义)、构造型(用于定义新的事物)、标记值(添加新的特殊信息来扩展事物的规格说明)。
(3)规则。
UML用于描述事物的语义规则分别是为事物、关系和图命名。
给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。
UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分、它们的关联性、交互、机制和指导原则等这些提供系统设计的信息。
而具体来说,就是指5个系统视图,分别是逻辑视图、进程视图、实现视图、部署视图和用例视图。
●逻辑视图:以问题域的语汇组成的类和对象集合。
●进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描绘了所设计的并发与同步结构。
UML(UnifiedModelingLanguage统⼀建模语⾔)UML(Unified Modeling Language 统⼀建模语⾔),⼜称标准建模语⾔。
是⽤来对软件密集系统进⾏可视化建模的⼀种语⾔。
UML是⼀种⾯向对象的建模语⾔,它可以实现⼤型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建⽴各种所需的⽂档,是⼀种定义良好、易于表达、功能强⼤且普遍适⽤的建模语⾔。
UML基本内容详述(1)视图 视图是表达系统的某⼀⽅⾯特征的UML建模元素的⼦集;试图并不是图,它是由⼀个或多个图组成的对系统某个⾓度的抽象。
1)⽤例视图(核⼼视图) 强调从⽤户的⾓度看到的或需要的系统功能。
2)逻辑视图 该视图⽤于描述系统内实现的逻辑功能,展现系统的静态或结构组成及特征。
3)组件视图 该视图从系统实现的⾓度来描述模型对象间的关系。
4)配置视图 该视图⽤于说明系统的物理配置。
(2)图表 图表是描述视图内容的图。
1)⽤例图 ⽤于描述外部项与系统提供的使⽤事件之间的联系。
⼀个使⽤事件是系统提供的功能的具体描述,是系统分析⼈员从⽤户⾓度描述系统的功能,是功能与功能之间以及功能与⽤户之间的关系。
使⽤事件定义了系统的功能需求。
简单理解:⽤来描述系统的功能。
2)类图 ⽤于描述系统的静态结构。
类可以⽤不同⽅式连接,主要包括联合、依赖、独⽴和包装。
⼀个系统⼀般有多张类图,⼀个类可在不同的视图中出现。
3)对象图 ⽤于表述系统在某个时刻的静态结构。
对象图也可作为协作图的⼀部分,说明⼀组对象之间的动态协作关系。
对象图与类图的区别:对象图表⽰的是类中的许多对象实例,⽽不是类本⾝。
4)状态图 ⽤于说明类中的对象可能具有的状态,以及由时间引起的状态的改变。
简单理解:描述了系统元素的状态条件和响应。
5)顺序图(时序图) ⽤于描述对象间的动态协作关系。
表达了对象间发⾏消息的时序,同时也表达出对象间的相互作⽤,以及当系统执⾏到某个特定位置时可能会发⽣的事。
uml的特点和用途UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它具有以下特点和用途。
特点:1. 统一性:UML是一种统一的建模语言,它将多种建模技术整合在一起,包括结构建模、行为建模和交互建模等,使得不同的模型之间可以进行无缝的集成和协作。
2. 易学易用:UML采用图形符号和文本描述相结合的方式,使得它的语法和语义非常直观和易于理解,从而降低了学习和使用的难度。
3. 可扩展性:UML提供了一种扩展机制,允许用户根据具体的需求和场景进行定制和扩展,从而满足不同的建模需求。
4. 高度表达性:UML提供了丰富的图形符号和符号组合方式,可以灵活地表达不同的建模概念和语义,使得模型具有更高的表达性和可读性。
5. 易于工具支持:由于UML已成为行业标准,因此有许多建模工具和开发环境提供了对UML的良好支持,便于开发人员进行建模、分析和设计工作。
用途:1. 需求分析:通过使用用例图、活动图和状态图等UML图形,可以帮助分析师和开发团队更好地理解用户需求,明确系统功能和行为,并对需求进行有效的沟通和验证。
2. 系统设计:UML提供了类图、对象图和组件图等建模工具,可以帮助开发人员进行系统结构设计和模块划分,明确系统的组成部分和它们之间的关系,从而指导代码的编写和开发过程。
3. 架构设计:通过使用包图、部署图和组合结构图等UML图形,可以帮助架构师对系统进行整体设计和布局,明确系统的组织结构和部署方案,从而提高系统的可扩展性和可维护性。
4. 测试和验证:UML提供了序列图和协作图等建模工具,可以帮助测试人员进行系统测试和验证工作,明确系统的行为和交互方式,并根据模型生成测试用例和测试脚本,提高测试效率和覆盖率。
5. 文档生成:UML模型可以作为软件系统的文档,包含了系统的结构、行为和交互等信息,可以通过工具自动生成文档,提高文档的可读性和维护性。
6. 项目管理:UML可以作为项目管理工具的一部分,用于描述系统的工作流程、任务分配和资源调度等信息,帮助项目经理进行进度控制和资源管理。
广州传智播客
广州传智播客 讲师:周猛
广州传智播客 讲师:周猛
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
什么是UML
统一建模语言(Unified Modeling Language , UML) 是一种绘制软件蓝图的标准语言,可以用UML 对软件密集的制品进行可视化、详述、构造和文档化
1、可视化:清晰的模型有利于交流
2、详述:可以使用uml 对分析、设计、实现等决策进行详细描述
3、构造:把uml 描述映射成编程语言
4、文档化:系统的所有细节都可以是uml 进行描述。
如:项目计划、发布活动等
应用领域:
1、企业信息系统
2、银行与金融服务
3、电信
4、国防、航天
5、科学
6、基于Web 的分布式服务
广州传智播客
广州传智播客 讲师:周猛
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
1.1.1 可见性与抽象类
UML 预设了四种可见性,分别为公开(public)、私有(private)、保护
(protected)、包(package) 减号(-)为私有可见性,加号(+)为
公
开可见性在UML 中抽象类与普通是同一个是图表示,只是名字会变成斜体。
广州传智播客 讲师:周猛
广州传智播客 讲师:周猛
广州传智播客 讲师:周猛
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
续 单向关联
ClassA 关联于
ClassB
单向关联表现在代码层面,为被关联类B 以类属性的形式出现在关联类 A 中,也可能是关联类A 引用了一个类型为被关联类B 的全局变量;
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客
讲师:周猛
1.2.3 .1 聚合关系(Aggregation)
聚合是关联关系的一种特例,他体现的是整体与部分拥有的关系。
此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如汽车与发动机;表现在代码层面,和关联关系是一致的,只能从语义级别来区分
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
1.2.3.2组合关系(Composition)
组合也是关联关系的一种特例,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;孕妇死了胎儿自然也就死了;表现在代码层面,和关联关系是一致的,只能从语义
级别来区分
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
1.2.3.3 关联关系的多重性
不建议使用双向关联. 关联有两个端点, 在每个端点可以有一个基数, 表示这个关联的类可以有几个实例.
常见的基数及含义
l 0..1:0 或1 个实例.
l 0..*: 对实例的数目没有限制.
l 1: 只能有一个实例.
l 1..*: 至少
有一个实例.
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
1.3接口
接口(interface)如同契约,负责的类必须负责实现它的公开操作,以及负责维
护它的公开属性
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
案例:公司-部门
-员工 类图关系
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
练习
1.用户--员工
2.潜在学员--正式学员
--学员跟踪-收费
广州传智播客 讲师:周猛
广州传智播客
广州传智播客.Net训练营
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
2.1用例图说明
用例图用来表达系统对外提供的服务或功能,适合用来作为需求搜集
阶段的工作。
广州传智播客 讲师:周猛
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
2.3包含关系(include)
包含(include )关系指的是两个用例之间的关系,其中一个用例(称作基本用例,base use case )的行为包含了另一个用例(称作包含用例,include case )的行为。
如图取款的 时候会包
含一个用户验证的用例
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
2.4扩展关系
扩展(extend )关系:将基本用例中一段相对独立并且可选的动作,用扩展(Extension )用例加 以封装,再让它从基用例中声明的扩展点(
Extension Point )上进行扩展,从而使基用例行为更简练和目标更集中。
如图我们在取完款后,可以打印凭条,也可以不用打印凭条。
这个功能就可以使用扩
展来表示
广州传智播客
广州传智播客 讲师:周猛
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
3.1动作与控制流
l 动作(activity )是最重要的组成元素,它代表一个执行步骤
l 带箭头的连接线称为控制流(control flow)。
当来源动作结束之后,控制流会启动目
标动作。
广州传智播客 讲师:周猛
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
3.3决策与合并
决策节点(decision node)与合并节点共用图示,两者都是大的空心菱形。
不过,决策 节点只有一个进入线,但有多条离开线
活动流程中,流程交汇点,称为合并节点(merge node)。
一个合并节点会有多条进入线,但是只有一条离开线,合并节点的图示是大的空心菱形,所有进入合并节点的支流都会经历同
一条
离开线
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
3.4分叉和连接
分叉表示的是一个控制流被两个或多个控制流代替,经过分叉后,这些控制流是并发进行的
连接正好与分叉相反,表示两个或多个控制流被一个控制流代替。
使用分叉需要使用连接把分叉的流
汇聚成一个流
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛3.5发送信号操作与接受事件操作
发送信号操作是一种操作,可以将消息或信号发送给另一个活动。
接受事件操作是一种要在等到消息或信号后才能继续执行的操作。
广州传智播客.Net训练营
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
练习
1、电商购物流程
选商品--->显示促销信息---->加入购物车--->登陆--->结算---->提交订单给仓库--->发货--->签收 -->1、结束 2、拒签 --->重新入库
2、借款流程
添加领款单---〉提交财务--->提交给经理跟老总--->领款--->报销-->1、现金报销2、发票报销--->复核领款流程 --->结束
广州传智播客
广州传智播客 讲师:周猛
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
4.1生命线
生命线(lifeline)代表一个参与交互的实例,它的图示是顶端连接矩形的虚线,虚线顶部的矩形可以放置
生命线的名称。
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
4.2执行发生
对象在接收到消息之后执行一项活动,执行期间称为执行发生(execution occurrence),它的图示是长条矩形。
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
4.3消息
消息(message)的图示是一条带箭头的线段,横跨在两个生命线上,对象之间通过发送消
息来交互。
序列图中有四种常见的消息
l 创建消息(createMessage)用来创建对象的消息称为创建消息,它的图示是带箭头的虚线,箭头指向目标对象。
l 同步调用(synchCall)—这是最常见的消息。
它的图示是箭头的实线,由发送消息的来源对象指向负责执行的目标对象。
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛
续
l 回复消息(replyMessage)目标对象执行结束时,会发出回复消息给来源对象。
它的图示是带箭头的虚线,从负责执行的目标对象反向指回来源对象
l 异步信号(asynchSignle)同步与异步的差别在于,来源对象是否等待目标执行结束才继续往执行。
来源对象如果发送同步消息,会等待,如果发送异步消息,就不等待了。
有很多梦想是遥不可及的,除非,你坚持。
广州传智播客 讲师:周猛4.4终止
生命线有生有灭,终止(stop)就是用来表达生命线终止的时刻。
终止的图示是一个大叉,放置在生命线的虚线底部,代表生命线
已经终止。