软件工程--面向对象设计与UML
《面向对象分析与设计(UML)》课程大作业大纲
《面向对象分析与设计(UML)》课程大作业大纲一、课程简介《面向对象分析与设计(UML)》是一门是软件工程专业重要的、实践性很强的一门必修课。
UML是一种定义良好、易于表达、功能强大且适用于各种应用领域的建模语言,已被OMG采纳为标准。
目前UML已成为面向对象技术领域内占主导地位的标准建模语言。
掌握UML 语言,不仅有助于理解面向对象的分析与设计方法,也有助于对软件开发全过程的理解。
通过该课程的学习,使学生能基本掌握面向象技术基本概念和面向对象分析与设计方法,能够使用UML 语言来进行初步的系统分析与设计。
二、课程目标结合专业培养目标,本课程大作业要达到的目标如下:1.知识与技能目标通过本课程的学习,使学生掌握面向对象分析与设计基本理论和使用统一建模语言(UML)实现软件生命周期模型的六大阶段(需求分析,概要设计,详细设计,编码,测试,维护)的一般性原理、主要思想、关键技术;了解和掌握各阶段的规范文档书写格式,通过实验项目实践活动,培养学生理解和应用相关的知识技能,开发软件项目。
2.过程与方法目标了解面向对象分析与设计的发展历史及趋势,掌握运用UML 理论及方法解决实际问题的分析步骤。
通过具体方法的学习与运用,理解它们的优势与不足,从而锻炼和提高思维分析能力(归纳能力,演绎能力,对比分析能力,变通能力,总结能力,抽象能力)。
3.软件工程文档写作目标通过面向对象程序设计实践,培养作为一个软件工程技术人员必须具备的文档写作能力,严谨治学的科学研究态度,为未来的学习、工作和科研奠定良好的理论基础和实践基础。
通过本课程的大作业的训练,使学生在分析问题、解决问题等方面得到锻炼,增强学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
三、作业设计任务由指导教师向学生提供一定数量的设计题目,每一题目所用到的知识至少要覆盖《面向对象分析与设计(UML)》教学大纲中的大部分内容,主要包括利用UML2进行面向对象分析与设计的方法,运用面向对象的一般原则和模式进行应用系统的分析和设计建模。
UML课后习题答案
UML课后习题答案UML习题答案第⼀章⾯向对象设计与UML1.填空题(1)基本构造块UML规则公共机制(2)名字属性操作(3)封装继承多态(4)继承(5)瀑布模型喷泉模型基于组件的开发模型XP开发模型2. 选择题(1)C(2)A B C D(3)A B C D(4)A B C(5)A3.简答题(1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,⽽对象是某⼀类的具体化实例,每⼀个类都是具有某些共同特征的对象的抽象。
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,⽽对⼀类对象的抽象就是类.类描述了⼀组有相同特性和相同⾏为的对象。
(2)1.UML是⼀种语⾔。
2. UML是⽤来建模的。
3.UML是统⼀的标准。
(3)建模能够帮助我们按照实际情况或按我们需要的形式对系统进⾏可视化;提供⼀种详细说明系统的结构或⾏为的⽅法;给出⼀个指导系统构造的模板;对我们所做出的决策进⾏⽂档化。
在建模时应遵循以下原则:选择要创建什么模型对如何动⼿解决问题和如何形成解决⽅案有着意义深远的影响;每⼀种模型可以在不同的精度级别上表⽰;最好的模型是与现实相联系的;单个模型不充分;对每个重要的系统最好⽤⼀组⼏乎独⽴的模型去处理。
(4)UML和⾯向对象软件开发之间有紧密的关系,可以说是⾯向对象软件开发促使了UML 的产⽣。
但是由于在UML标准化的过程中,吸收了业务建模、⼯作流建模和数据库建模等领域的标准规范,形成了适应性很强的标准。
(5)在软件设计过程中,使⽤UML建模是为了能够更好地理解正在开发的系统。
通过UML 建模,可以达到以下⽬的:有助于按照实际情况或按照所需要的样式对系统进⾏可视化;能够规约系统的结构或⾏为;给出了指导构造系统的模板;对做出的决策进⾏⽂档化。
第⼆章UML通⽤知识点综述1.填空题(1)依赖泛化关联实现(2)视图图模型元素(3)实现视图部署视图(4)构造型标记值约束(5)规格说明修饰通⽤划分2. 选择题(2)C(3)A(4)A B(5)D3.简答题(1)在UML中,定义了四种基本的⾯向对象的事物,分别是结构事物、⾏为事物、分组事物和注释事物等。
软件工程 第5章--UML
UML的定义
UML定义有两个主要组成部分:语义和表示法。 语义用自然语言描述,表示法定义了UML的可 视化标准表示符号,这决定了UML是一种可视 化的建模语言。 在语义上,模型是元模型的实例。UML定义给 出了语法结构的精确定义。 使用UML时,要从不同的角度观察系统,为此 定义了概念“视图(View)‖。视图是对系统的模 型在某方面的投影,注重于系统的某个方面。
独立于过程
系统建模语言,独立于开发过程。
9
容易掌握使用 概念明确,建模表示法简洁明了,图形结 构清晰,容易掌握使用。 着重学习三个方面的主要内容: (1) UML的基本模型元素 (2) 组织模型元素的规则 (3) UML语言的公共机制 与程序设计语言的关系 用Java,C++ 等编程语言可实现一个系统。 一些CASE工具可以根据 UML所建立的系 统模型来产生Java、C++ 等代码框架。
31
UML事物 — 注释事物
11) Note(注释)
依附于一个元素或一组元素之上,对其进
行约束或解释的简单符号。没有语义影响。
See policy8-5-96.doc for details about these algorithms.
CashAccount presentValue()
32
15
UML定义 9 种图,表达UML中的 5 种视图,各 视图在静态和动态方面表示系统模型。
结构 视图 静态 方面
动态 方面
行为 视图 同左
实现 视图 构件图
环境 视图 部署图
同左
用例 视图 用例图
同左
类图 对象图
顺序图 同左 顺序图 合作图 (注重 合作图 状态图 进程、 状态图 活动图 线程) 活动图
UML与面向对象设计的关系与对比解析
UML与面向对象设计的关系与对比解析在软件开发领域,UML(统一建模语言)和面向对象设计是两个重要的概念。
它们之间存在着密切的关系,同时也有一些区别。
本文将对UML与面向对象设计的关系进行分析,并对它们的对比进行解析。
1. UML的概述UML是一种用于软件开发的图形化建模语言,它提供了一套丰富的符号和图形表示方法,用于描述软件系统的结构、行为和交互。
UML可以帮助开发人员更好地理解和沟通软件系统的设计和实现。
它包括了用例图、类图、时序图、活动图等多种图形表示方法,每种方法都有其特定的用途和表达能力。
2. 面向对象设计的概述面向对象设计是一种软件开发方法,它以对象为基本单位,通过封装、继承和多态等特性来组织和管理软件系统。
面向对象设计将系统分解为一系列的对象,每个对象都具有自己的属性和行为,并且可以通过消息传递来进行交互。
面向对象设计强调系统的可扩展性、可维护性和可重用性,它使得软件系统更易于理解和修改。
3. UML与面向对象设计的关系UML与面向对象设计有着密切的关系,它们可以相互促进和支持。
首先,UML提供了一种通用的建模语言,可以用于描述和分析面向对象设计中的各个方面。
开发人员可以使用UML来绘制类图、时序图等,以更好地理解和表达系统的结构和行为。
同时,UML也提供了一些规范和准则,可以帮助开发人员在进行面向对象设计时遵循一定的原则和约束。
另外,UML还可以作为面向对象设计的工具,帮助开发人员在系统设计和实现过程中进行可视化建模。
通过使用UML工具,开发人员可以快速创建和修改类图、时序图等,从而更好地组织和管理系统的结构和行为。
UML工具还提供了一些辅助功能,如代码生成、自动化测试等,可以提高开发效率和质量。
4. UML与面向对象设计的区别尽管UML与面向对象设计密切相关,但它们之间仍然存在一些区别。
首先,UML是一种建模语言,它更多地关注于系统的描述和分析,而不是具体的设计和实现。
UML提供了一些符号和图形表示方法,用于描述系统的结构和行为,但它并没有规定具体的设计和实现方式。
软件工程-电子教案第9章
9.3.2 设计用户界面 9.3.3 画UML顺序图或活动图
【例9.4】画出招聘考试管理系统的顺序图 某市人事局举行统一招聘考试。首先,各招聘 单位向人事局登记本单位各专业的招聘人数, 由人事局向社会公布招聘情况;考生报名、填 志愿;人事局组织安排考试;录入考试成绩; 向考生和招聘单位公布成绩;招聘单位进行录 用;发录用通知书。这里,共有三个对象类: 人事局、考生和招聘单位。
《软件工程》 陆惠恩主编
3
9.2.2 确定类的相互关系 1. 类的一般-特珠关系
《软件工程》 陆惠恩主编
4
2. 聚集关系
“整体-部分”关系
90 80 70 60 50 40 30 20 10 0 第一季度 第三季度 东部 西部 北部
《软件工程》 陆惠恩主编
5
3. 关联关系
阶 链属性
限定
《软件工程》 陆惠恩主编
《软件工程》 陆惠恩主编 18
9.7 UML的应用
9.7.1 UML模型 1. 用例模型 2. 静态模型 3.动态模型 4.实现模型
《软件工程》 陆惠恩主编
19
9.7.2 UML视图
视图域 视图 静态视图 结构分类 用例视图 实现视图 部署视图 状态视图 动态行为 活动视图 交互视图 图 类图 用例图 构件图 部署图 状态图 活动图 顺序图 协作图 模型管理 可扩展性 模型管理视图 类图 所有 所有 主要概念 类、关联、泛化、依赖关系、实现、接口 用例、执行者、关联、扩展、包含、用例 继承 构件、接口、依赖关系、实现 结点、构件、依赖关系、位置。 状态、事件、转换、动作 状态、活动、转换、分叉、连接 交互、对象、消息、激活 协作、交互、角色、消息 包、子系统、模型。 约束、版型、标签值
面向对象方法与UML
用例之间的泛化关系描述用例的一般与特 殊关系,不同的子用例代表了父用例的不 同实现。
5.3 静态建模机制
• 5.3.2 类图和对象图 类图使用类和对象描述系统的结构,展示了系统中类的
静态结构,即类与类之间的相互关系。类之间有多种联系方 式,如关联(相互连接)、依赖(一个类依赖于或使用另一 个类)、泛化(一个类是另一个类的特殊情况)。一个系统 有多幅类图,一个类也可以出现在几幅类图中。
5.2 统一建模语言UML
• 5.2.1 UML简述
统一建模语言(Unified Modeling Language,UML)是一种通用的可视化建 模语言,可以用来描述、可视化、构造和文档化软件密集型系统的各种工件。它由 信息系统和面向对象领域的三位著名的方法学家Grady Booch、James Rumbaugh 和Ivar Jacobson提出的。它记录了与被构建系统的有关的决策和理解,可用于对 系统的理解、设计、浏览、配置、维护以及控制系统的信息。这种建模语言已经得 到了广泛的支持和应用,并且已被ISO组织发布为国际标准。 UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示 UML用来捕获系统静态结构和动态行为的信息 UML是独立于过程的,它适用于各种软件开发方法、软件生命周期的各个阶段、
5.3 静态建模机制
• 类与类之间的关系有关联、依赖、泛化和实现等。
1)关联(Association)表达模型元素间的一种语义关系, 对具有共同的结构特性、行为特性、关系和语义的链的描述。 UML中使用一条直线表示关联关系,直线两端上的数字表示 重数。关联关系还分为二元关联、多元关联、受限关联、聚 集和组合等。
对象图是类图的实例,它展示了系统在某一时刻的快照。 对象图使用与类图相同的符号,只是在对象名下面加上下划 线。
面向对象与UML
类B
类A
44
约束与派生
范畴: 表示法:
约束和派生机制能应用与仸何模型元素
用花括号括起放在模型元素旁边 典型的属性约束是该属性的取值范围 通常在派生属性前面加一个“/”表示 可由其它属性通过某种方式计算得到
约束属性: 派生属性
关联关系可以被约束(班级由学生组成,管理关 系的班干是学生的子集),也可以被派生 (公司 的VIP客户)
关注交互的时间顺序
打印文件 计算机 打印服务器 打印机 打印队列
打印文件 异步模式
[打印机就绪] 打印文件 [打印机忙] 保存文件
51
协作图(Collaboration Diagram)
关于交互的静态链接
计算机 打印队列
[打印机忙] 2.2:保存文件 1:打印文件
打印服务器
[打印机就绪] 2.1:打印文件
8
面向对象的模型表示法
9
模型的特征优势是什么?
10
模型的特征优势
1. 反映性——模型用来反映客观实体
2. 简化性——以简化的方式来反映客观事物 3. 直观性——方便、直观的方式反映客观
4. 抽象性——以抽象的方式描述客观事物及 其规律
11
从抽象角度看,模型分为哪几种?
12
从抽象角度看,模型分为
55
活劢图的作用
活劢图具有广泛地用途,在软件建模中,活劢图 可以用来
描述工作流
35
建立用例图
保险商务系统
签定保险 单
销售统计
客户
客户统计
保险销售员
36
用例乊间的关系
扩展关系
根据指定的条件,一个用例中有可能加入另一个 用例的劢作
uml 基础教程 第一章--uml与面向对象
2020/6/13
基础内容:类和对象的关系 重点掌握:面向对象的四个特征 一般了解:面向对象项目的设计
2020/6/13
1.1 面向对象开发
1.1.1 理解面向对象
一、对象
• 面向对象认为客观世界是由各种各样的对象组成, 每个对象都有自己的数据和操作,对象和对象之间 是通过对象暴露在外的接口进行调用的,不同对象 之间的相互作用和联系构成了各种系统。
2020/6/13
•面向对象概念中,这种关系叫继承。每个Appliance 的子类都继承了Appliance的特征。同时,要重点注 意下,每个子类都增加了自己的属性和操作。 •因此,继承是一种连接类与类之间的层次模型,是 指特殊类的对象拥有其一般类的属性和行为。特殊 类中不必重新对已经在一般类中所定义的属性和行 为进行定义。特殊类自动地、隐含地拥有其一般类 的属性和行为。
0/6/13
• 在设计阶段,要考虑的是定义软件系统中技术细 节的类(如处理用户接口、数据库、通信和并行性 等问题的类),把分析阶段的结果扩展成技术解决 方案。
• 构造阶段,把设计阶段的类转换成某种面向对象 程序设计语言的的代码(工具可以完成)。
• 测试阶段,系统通常需要经过单元测试、集成测 试、系统测试和验收测试。不同的测试小组使用不 同的UML图作为测试依据:单元测试使用类图和类 规格说明;集成测试使用构件图和协作图;系统测 试使用用例图来验证系统的行为;验收测试由用户 进行,以验证系统测试的结果是否满足在分析阶段 确定的需求。
2020/6/13
1.2 UML简介
1.2.1 对系统建模的必要性
UML具体有哪些作用:
• (1)对于软件系统用户,软件的开发模型向他们 描述了软件开发者对于软件系统需求的理解。
UML--面向对象分析与设计 第一部分 基础知识
面向对象方法的优点
按照人类的自然思维方式,面对客观世界建立软件系 统模型。有利于对问题域和系统责任的理解,有利于 人员交流。
对需求变化的适应性。把最稳定的部分,即对象作为 构筑系统的基本单位,而把容易发生变化的部分,既 属性与服务,封装在对象之内,对象之间通过接口联 系,使得需求变化的影响尽可能地限制在对象内部。
可维护性好。
支持软件重用。对象所具有的封装性和信息屏蔽等特 性,使它容易实现软件重用。对象类可以派生出新类, 类可以产生实例对象,这些就实现了对象类的数据结 构和操作代码的软构件重用。
面向对象的软件开发语言与工具
1981推出的Smalltalk-80 面向对象的C/C++、Basic、Pascal、Fortran、
开发的目标、开发方法、开发过程、软件文档、质量标准等都给 出了明确的规定。
软件开发管理模型—瀑布模型(Waterfall Model)
瀑布模型的优点
使早期的手工作坊式的软件开发转变为软件工程 消除非结构化软件、降低软件复杂度 有一套严格的计划、步骤、规格、方法,保证软件产
品达到预期的质量要求 20世纪70年代以来得到广泛的传播
类是对象的抽象,它给出了属于该类的全部对象的抽 象定义。(从对象产生类)
– 问题域:类是一组具有相同特性和行为的对象的集合 – 系统: 共同的特性通过属性表现出来 (数据)
共同的行为通过操作表现出来 (功能)
类是对象的模板,用它可以产生多个对象,一个具体 的对象只是类的一个实例。(从类产生对象)
一个好的软件开发方法和技术要能有效的应付 系统需求的变化。
4、软件重用:
面向对象分析与设计UML实验报告
(此文档为word格式,下载后您可任意编辑修改!)《面向对象分析与设计UML》实验报告实验及作业一一、实验目的了解软件工程等基础知识,为后续的统一建模语言UML知识的学习做好准备工作。
二、实验设备与环境装有Visio、RationalRose的计算机。
三、实验内容1、复习阐述“软件工程开发模型”的相关概念,并分析各种模型的优缺点,写成实验报告。
2、熟悉UML软件设计工具Visio、Rational Rose的安装及环境四、实验过程及结果经过上网搜索相关信息进行了解软件工程开发模型的相关概念与优缺点一,什么是软件工程概念模型模型就是抽象,就是有意识地忽略事物的某些特征。
抽象带来的好处是能够反映模型中元素之间的关系,清晰把握大局。
概念模型是模型的一种,简单说就是抽象程度极高的一种模型。
软件工程概念模型是对软件工程领域进行抽象描述的模型,它能够使我们对软件工程有一个完整把握。
二,软件工程开发模型的种类以及优缺点瀑布模型由W.Royce于1970年首先提出。
根据软件工程生存周期各个阶段的任务,瀑布模型从可行性研究开始,逐步进行阶段性变换,直至通过确认测试并得到用户确认的软件产品为止。
瀑布模型上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密联系。
一个阶段的失误将蔓延到以后的各个阶段。
为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。
评审过程发现错误和疏漏后,应该及时反馈到前面的有关阶段修正错误或弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段。
瀑布模型如图1.1所示。
瀑布模型有许多优点,如可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证等。
但瀑布模型也存在缺点,其主要表现在:①在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。
《软件工程概论》郑人杰版 第5章 面向对象方法与UML
节不能从类外访问。
继承
• 继承。继承是一种联结类的层次模型,为类的重用提供
了方便,它提供了明确表述不同类之间共性的方法。 • 我们将公共类称为超类(superclass)、父类(father
class)、祖先(ancestor)或基类(base class),而 从其继承的类称为子类(subclasses)、后代( deslendane)或导出类(derived class)。
对象之间的交互
行为事物
(2)状态机(state machine)── 描述了一个对 象或一个交互在生存周期内响应事件所经历的状 态序列,单个类或者一组类之间协作的行为都可 以用状态机来描述。 状态机涉及到状态、变迁和活动,其中状态用圆角 矩形来表示。
对象
(2) 角色(Roles)── 一个实体的角色也可 以抽象成一个单独的对象。角色对象的操 作是由角色提供的技能。
• 例如,一个面向对象系统中通常有“管理器”对象,它履 行协调系统资源的角色。一个窗口系统中通常有“窗口管 理器”对象,它扮演协调鼠标器按钮和其他窗口操作的角 色。特别地,一个实际的物理对象可能同时承担几个角色 。
清晰,容易掌握使用。 (6)与编程语言的关系
支持UML的一些CASE工具(如Rose)可以根据 UML所建立的系统模型自动产生Java、C++ 等代 码框架。
UML的基本模型
➢ UML符号为开发者或开发工具使用这些图形符号 和文本语法为系统建模提供了标准。 ➢ 这些图形符号和文字所表达的是应用级的模型, 在语义上它是UML元模型的实例。 ➢UML模型由事物、关系和图组成 。
第5章 面向对象方法与UML
《UML面向对象分析、建模与设计》教学大纲
UML面向对象分析、建模与设计课程教学大纲01课程说明课程代码:课程名称:UML面向对象分析、建模与设计/UML object-oriented analysis, modeling and design开课学期:4学分/学时:3/32+16课程类型:必修02课程的性质、目的与任务《UML面向对象分析、建模与设计》是软件工程专业中一门综合性很强的基础课程,主要内容包括软件工程与面向对象方法、UML的定义和背景、UML基础(UML构造块、UML通用机制、UML“4+1”架构、UML建模工具)、UML系统动态建模(用例图、活动图、状态机图、顺序图、通信图)、类图、对象图、包图、组件图、部署图、统一软件开发过程、UML具体实例等。
本课程的目的与任务是使学生通过本课程的学习,从UML的基本概念入手,由浅入深地认识和学习软件工程核心要素,以体系化、工程化的方法思考软件工程过程。
本课程除要求学生掌握UML的图示语法和语义,重点要求学生掌握设计软件的逻辑能力以及对软件内部各种组织结构的表达能力,掌握对事物的抽象能力和建模的基本思想,为更深入地学习和今后的实践打下良好的基础。
03教学内容及教学基本要求1.软件工程与面向对象方法(2学时)了解软件工程的概念和历史,了解软件工程的目标和原则;了解面向对象方法的概念和历史,了解面向对象方法的优点。
2.统一建模语言UML(2学时)了解UML的定义和历史背景;了解UML的目标和应用范围。
3.初识UML(2学时)掌握UML构造块,分别是事物、关系、图;掌握UML的通用机制;了解“4+1”架构;了解常用的UML建模工具。
4.用例图(2学时)了解用例的概念、设计方法和注意事项理解用例图的组成元素,分别为参与者、用例、用例图中的关系;理解并掌握用例图中的关系,分别为参与者间的泛化关系、参与者与用例的关联关系、用例间的泛化关系、用例间的依赖关系;理解用例描述的概念;掌握用例说明文档的书写;掌握用例图建模,分别为对系统的语境建模和对系统的需求建模;了解用例图的使用环境。
《UML面向对象分析和设计》教学大纲
软件高职《UML面向对象分析和设计》教学大纲课程名称: UML面向对象分析和设计英文名称:总学时:48 学分:3课程类型:专业基础课适用专业:计算机科学与技术专业先修课程:无1.课程性质《UML面向对象分析与设计》是所有软件开发类专业中重要的理论和技术专业课之一。
其任务是使学生利用UML图形化工具结合面向对象的思想对软件系统进行建模。
通过系统建模工具的使用的技巧和系统设计的基准,使得学生能掌握OOAD的基本知识并且能利用建模语言内功能强大的模型元素进行软件系统逻辑模型的架构,更好地进行计算机软件系统的设计,更有助于学生掌握计算机软件系统的开发流程与步骤。
这门课程对于培养具有素质好,技术强的软件设计能力的高级软件开发人才是必不可少的。
2.课程教学目的和要求通过本课程的学习,学生应能掌握UML建模语言的9种视图模型的构造原理知识。
提高面向对象的抽象思维能力,并能结合面向对象的原理知识熟练使用建模9种图形化工具对系统进行分析与设计,最终得到系统的整个模型。
在教授学生9种视图模型的基本元素使用技巧后,学生应能轻松浏览案例项目的视图模型并理解图形所表达的分析设计思路。
3.教材及主要参考书教材:《UML基础、案例与应用(第三版)》,(美)Joseph Schmuller 著,李虎赵龙刚译,人民邮电出版社,2010.74.课时说明课程总课时为48学时,其中理论课共24学时,实验课共24学时。
周进度4学时,3学分,开课学期为第五学期。
5.教学内容与学时安排6.实验教学安排本课程共24个学时的实验,在教学中同时进行,可分为如下:撰写人:院(系)公章:院(系)教学主管签字(盖章):×××时间:。
UML面向对象的分析与设计
定义用例
定义领域模型
定义交互图
定义设计类图
24
OOAD
OOA/D的简单示例-骰子游戏
• 软件模拟游戏者掷两个骰子,如果总点数是7 则赢得游戏,否则为输
25
OOAD
定义用例(需求阶段)
定义用例
定义领域模型
定义交互图
定义设计类图
• 需求分析可能包括人们使用应用的情节或场景, 这些情节或场景可以被编写成用例。
由用例描述可初步得出领域模型
Player
1
name
1
Plays 1
DiceGame
1
Rolls
2
Die
faceValue
2
Includes
图1-3 骰子游戏的局部领域模型
28
OOAD 分配对象职责并绘制交互图(OOD)
定义用例
定义领域模型
定义交互图
定义设计类图
• OOD关注的是软件对象的定义——它们的职责 和协作
• 顺序图(sequence diagram,UML的一种交互 图)是描述协作的常见表示法。
• 顺序图展示出软件对象之间的消息流,和由消 息引起的方法调用。
29
OOAD 骰子游戏:游戏者请求掷(两个)骰子。系统展示结果:如 果骰子总点数是7,则游戏者赢,否则游戏者输。
顺序图动态的展示了系统如何实现用例, 展示了对象的职责和协作
• 培养OO开发的重要能力:识别领域对象,设 计软件对象(为软件对象分配职责)
7
OOAD
资源: 教材及参考书
8
OOAD
教材结构安排
•教材编排特色: •不像传统教材按主题编排 •而是遵循UP(统一过程)中”Iterative”(迭代)思 想。
《面向对象分析与设计UML》课程教学大纲
《面向对象分析与设计(UML)》课程教学大纲一、课程与任课教师基本信息二、课程简介《面向对象分析与设计(UML)》是一门是软件工程专业重要的、实践性很强的一门必修课。
UML是一种定义良好、易于表达、功能强大且适用于各种应用领域的建模语言,已被OMG采纳为标准。
目前UML已成为面向对象技术领域内占主导地位的标准建模语言。
掌握UML 语言,不仅有助于理解面向对象的分析与设计方法,也有助于对软件开发全过程的理解。
通过该课程的学习,使学生能基本掌握面向象技术基本概念和面向对象分析与设计方法,能够使用UML 语言来进行初步的系统分析与设计。
三、课程目标结合专业培养目标,提出本课程要达到的目标。
这些目标包括:1.知识与技能目标通过本课程的学习,使学生掌握面向对象分析与设计基本理论和使用统一建模语言(UML)实现软件生命周期模型的六大阶段(需求分析,概要设计,详细设计,编码,测试,维护)的一般性原理、主要思想、关键技术;了解和掌握各阶段的规范文档书写格式,通过实验项目实践活动,培养学生理解和应用相关的知识技能,开发软件项目。
2.过程与方法目标了解面向对象分析与设计的发展历史及趋势,掌握运用UML 理论及方法解决实际问题的分析步骤。
通过具体方法的学习与运用,理解它们的优势与不足,从而锻炼和提高思维分析能力(归纳能力,演绎能力,对比分析能力,变通能力,总结能力,抽象能力)。
3.情感、态度与价值观发展目标通过本课程的学习,培养作为一个软件工程技术人员必须具备的坚忍不拔的学习精神,严谨治学的科学态度和积极向上的价值观念,为未来的学习、工作和科研奠定良好的理论基础和实践基础。
四、与前后课程的联系本课程是软件工程专业的重要专业课程。
其内容是软件测试概论、软件质量保证与管理、软件需求工程、小组软件工程、软件测试管理及工具、软件配置管理及工具等后续课程的基础,对学好上述后续课程的影响很大。
五、教材选用与参考书1.选用教材《面向对象分析与设计(UML)》,侯爱民、欧阳骥、胡传福编著,清华大学出版社,2015 年,第1 版。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12
§4. 系 统 分 解
② 垂直块组织: 将系统垂直分解成若干独立的子系统,一个子 系统相当于一块,每块提供一种类型的服务。
典型应用系统的组织结构
应 用 软 件 包
人机对 话控制
窗口图形 HCI 图形 屏幕图形 处理 象素图形
仿真 软件包
操 作 系 统 计 算 机 硬 件
38
封包
年个
编辑器 控制器 图组件
见、、 、图组件见、源自 、图形核心窗口系统
基本图形 核心 窗口核心
基本图形 微软窗口
39
活动图:磁盘
40
构件分布图
41
构件图的组合
42
配置图:主机与外围设备
43
应用生存期
系统 描述
论域 分析
客户输入
应用 分析
高层 设计
维护
组装 测试
21
UML
任何方法都应由建模语言和建模过程两部分构成。 建模语言提供了用于表示设计的图形符号,建模 过程描述了进行设计时所需遵循的步骤。 UML则统一了面向对象建模的基本概念、术语及 其图形符号,建立了便于交流的通用语言。 在UML中用5种不同的视图来表示一个系统,这些 视图从不同的侧面描述系统。 • 每一个视图由一组图形来定义。
打印机空闲 打印输出文件 打印机忙 输出文件 入队列
35
时序图:打电话
访客 a {b-a<1} b {c-b<10} c {e-d<5} 铃响信号 拿起话筒 蜂鸣音 拨号码 ... d
<10
交换机
远程交换机
访客
路径 e 铃响 拿起话筒 铃响停止信号 铃响停止
36
协同图:打印
37
状态图:电梯
公司
find_skill
1+ 雇用
雇员
1+ 1+ 具有技能
技能
18
§7. 优化
方法1:嵌套查询 —— 遍历雇员2000次,而对每个 雇员遍历技能10次。命中率为1/4000。 方法2:用Hash Table实现技能,使“会讲日语”对 应唯一的技能对象,则命中率上升为1/400。
方法3:增加一个额外的限定关联“精通语言”, 即可立刻查得结果。
§1. OOD准则
2、抽象Abstraction:抽出事物的本质特性, 暂不考虑其 细节,使设计从具体实现方法中超脱。 3、信息隐藏Information hiding = 对象封装 Encapsulation of object 4、耦合Coupling: 交互耦合(interactive coupling):通过传递message发生 要求降低参数个数和参数复杂性
2、设计实现方法 ⑴ 算法设计:要求做到易修改,并且复杂度低(即 效率高) 易理解,易实现。
⑵ 数据结构设计:需要考虑具体的物理结构的选择。 ⑶ 新添用于存放内部处理中间结果的class;引入新 的低层操作,进一步细化。
15
§6. 设计关联
1、单向关联 例:
雇员 1+ 被雇用 公司
由雇员找其所属公司, 则设雇主为其属性, 即一单向指针
11
§4. 系 统 分 解
2、系统组织方案 ① 水平层次组织: 将系统组织成hierarchy,同一层中的objects相 互独立,而上、下层间有 client-server关系。
一个client只能调用其相邻下层的server —— 封闭式(closed) 一个client可调用其下任一层的server —— 开放式(open)
解之。
一般-特殊内聚
6、复用性Reusability
5
§2. 启发式规则
1、设计结果清晰易懂,应做到: ① 用词一致 —— 按习惯用法命名。不同classes中 相似的methods最好取同一名字。 ② 使用已有的protocol。 ③ 尽量减少message模式的数目。 ④ 避免模糊定义。
2、一般-特殊结构的深度应适当(约100个classes,则 设计7±2层)
需求 属性 获得 普通 术语
开发 规划 导出 相关 需求
详述使用 实例
寻找行为者 和使用实例 构造行为者 和使用实例 模型
25
分析与设计方法图
使用实例分析 结构分析
类设计 数据库设计
子系统设计
结构设计
使用实例设计 结构评审
流程描述
分布描述
设计评审
26
UML方法中的基本模型
系统 视图 使用图形 用户 使用实例图, 活动图 模型 结构 类和对象图, 状态图, 时序图, 模型 协同图, 活动图 行为 状态图, 时序图, 协同图, 模型 活动图, 构件图, 配置图 实现 构件图 模型 环境 配置图 模型 适用对象 用户, 设计者, 实现者, 测试者 设计者, 实现者 实现者, 组装者 实现者 实现者, 组装者, 测试者
③ 分析重用 —— 当需求未变,而系统结构改变时
重用效果的衡量: 额外代价: 创建可重用成分的专门投资 多花2 ~ 4倍时间测试以保证质量 构件库的建立与维护需要投资 以上投资将分摊到重用这些构件的新系统成 本中。重用次数越多,分摊成本越少。
9
§4. 系 统 分 解
回顾SD:从DFD出发 OOD模型分解:
公司 雇员
语 1+ 1+ 言 精通语言
19
§7. 优化
建立这样的索引必然多占空间,而且基关联改 变时也必须相应地修改索引。因此,应只给那些经 常执行并且开销大、命中率低的查询建立索引。 ② 调整查询次序,优化算法 例如公司有5名会日语的雇员,有200名会法语 的雇员。现要找日、法语均会的雇员,则应先找 的 会日语 雇员,再从中找 会法语 的雇员。
29
• 类图用于表示类的存在和类与类之间的相互关 系,是从系统构成的角度来描述正在开发的系 统。 • 类的表示 类的名称 属性 属性 :数据类型 属性 :数据类型 = 初值 操作 操作(参数表):结果类型
30
限定关联
关联名称
类1 角色1
限定词
类2 角色2
聚合、导航和个体数目
整体 类名
聚合,单向导航
27
事 务 模 型 分 析
使用实例图 事件流 脚本
相互作用图(时序图,协同图) 对象&类
面 向 对 象 分 析
对象图,类图 类分组 封包图
UML规划 操作分析过程
状态图
构件图 配置图
28
类图
人 持有人 财产 * 借方 * 抵押 本金 利率 到期 债权人 * 金融机构
信贷银行 *{有序}
银行
* 房屋
13
§5. 设计类中的服务 —— 细化object model中的 methods
1、确立服务
⑴ 从 dynamic model出发:
Event Status 1 do: Action 1 Status 2 do: Action 2
……
⑵ 从function model出发:
I
P
O
14
§5. 设计类中的服务
I
P O
Category
问题域
Application Domain
人机交互 任务管理 数据管理
HumanTask Data Computer Management Management Interface (HCI)
Class-&-Object Structure Attribute Method
10
知识 工程
重用软件成分有三个级别: ① 代码重用: • 源码剪贴 —— 无法溯源,无配臵管理 • Include —— 修改后所有包含了此段代码的程 想象一下,stdio.h 被改动之后…… 序都须重新编译。
• Inheritance —— 无须改动原有代码
8
§3. 软件重用
② 设计重用 —— 当移植系统时
雇员 雇主
公司
由公司找其下属某一雇员,则有两种方法:
方法1:遍历所有雇员,找雇主匹配且满足特征的雇 员。(省空间)
16
方法2:设公司 的属 性雇员 为 一指针集。 (快速) 2、双向关联
雇员
公司 雇员
§6. 设计关联
指针集
方法1:将上述两种单向 关联结合使用
雇员 雇主 公司 雇员
方法2:另设关联类(特 别适用于链属性)
公司
关联类
雇主 雇员 工资
指针集
雇员
17
§7. 优 化
1、确定优先级: 必须站在全局高度确定各项质量指标的优先级, 在优化设计时制定折衷方案。切忌各子系统自以为 是,导致最终优化目标对立。 最常见的情况是在效率与清晰性之间的折衷。
2、提高效率的技术
① 增加关联(类) 例:设某公司有2000名雇员,平均每名雇员会 10种技能,其中有5人精通日语,现要查询 公司中会讲日语的雇员是哪些人
6
§2. 启发式规则
3、设计简单的class(定义不超过一页纸或两屏)。 应注意: ① 避免过多attributes; ② 能用简单的语句描述一个class的任务; ③ objects之间合作关系要简单; ④避免过多methods( 7个)。
问题:设计出大量的classes,使结构复杂度增加。 解决:划分主题,提高可理解性。 4、使用简单的protocol,减少message 中传递的
§4. 系 统 分 解
1、子系统之间的交互方式(collaboration) ① 客户-供应商(client-server)关系:
Client subsystem request Server subsystem contract
② 平等伙伴(peer-to-peer)关系: