第10章 面向对象的设计方法
结构化和面向对象的系统分析设计方法的对比

结构化方法和面向对象方法的对比1 结构化和面向对象的方法1.1 结构化方法结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界。
用结构化开发能提高软件的运行效率,且能够增加软件系统的可靠性。
结构是指系统内各个组成要素之间的相互联系、相互作用的框架。
结构化的系统分析设计方法是一种传统的系统开发方法。
针对软件生存周期各个不同的阶段,有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
1.1.1 结构化分析结构化分析是面向数据流进行需求分析的方法,主要采用数据流图DFD (Data Flow Diagram)来描述边界和数据处理过程的关系。
结构化分析的主要工作是使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
1.1.2 结构化设计结构化设计是将数据流图表示的信息转换成程序结构的设计描述,和功能的实现方法,并且采用系统结构图表示系统所具有的功能和功能之间的关系。
结构化设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系)。
第二步详细设计,即过程设计。
在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图1.2 面向对象方法面向对象方法是从内部结构上模拟客观世界,其基本思想为:对象是对现实世界客观实体的描述,均由其属性和相关操作组成,是系统描述的基本单位。
面向对象方法更强调运用人类在日常的逻辑思维中经常采用的思想方法和原则,例如抽象、分类、继承、聚合、封装等,这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来。
C--程序设计--第10章-多态性及虚函数

使用重载函数注意:
不要使用重载函数描述不相干的函数 在类中,构造函数和普通成员函数均可以
重载 避免与函数的默认参数产生二义性
二、运算符重载
运算符重载(operate overloading)就是 赋予已有的运算符多重含义。
运算符重载实质是函数重载,运算符重载 的选择与函数重载类似,会根据运算符的 操作数的类型、个数和顺序来进行运算符 函数的选择。
#include<iostream.h> str#iinngc:l:usdter<isntgr(icnhga.rh>*s) v{}ossccsssc{s{{ittohtttolsstlsssls*drruarrrueptrepttepsi1trii3tc{pn=rin=rrn=pmn.<nn.<lprgncngncign=agp<*ggp<auitepgtepnte'irssrssbv\hwy:hwyghwnsit1ssitsla0=(:=(:=(tnr=ttnrit'scssscs:sc)rt1"rrt3scesss~ivci;thpt1hpsih1(.T23(.t::tttsnohn}ra,r.a,tza()gh(()grrrrttiatlrsilrsrer";eass;eiiiirdre[)ne[1i;[Ttt1ttnnnniglnl;gnl.nlhl)rlggggnep*e(e}(gesgeiei;2e(((gtrsnsnstnp(nsns)ncsi(lipg)gthg)ig(;(htn)en;t;tr;t;nti)a)artnthhih}ths<<ri{((;+n++<p<snd))}1g1s1aere*ige;]]i]nonszl{{;&;z;ddgd)&eercseelrl;s=teo1)m;a;/18etu)om/)0ut..;)构sr<""/;pn<造);//;s;/复}lp函构e<制n<数造ge构tn函hd造;l数};重} 载
《面向对象程序设计C++》课程标准

《面向对象程序设计》课程标准一、课程概述《面向对象程序设计》是计算机科学与技术专业的重要专业课程。
当前面向对象方法已逐渐取代面向过程方法成为程序设计领域的主流技术,这是程序设计发展历史的一个里程碑。
本课程的教学目标是以C++语言为工具,向学生介绍面向对象程序设计语言与面向对象程序设计方法。
通过课堂教学、课外练习与上机实习相结合,使学生在程序设计方法、程序设计语言与程序设计工具三方面受到严格、系统的训练,培养学生更系统、更严密地分析问题和解决问题的思维能力,从而能熟练地利用计算机解决实际问题,为后续专业课程打下扎实的基础。
通过本课程的教学,要求学生:(1)牢固掌握C++语言基本数据类型、复合数据类型、基本控制结构、函数以及面向对象程序设计中类与对象、继承、多态性等基本概念;(2)掌握类属机制、C++输入输出机制、程序断言、异常处理等高级机制;(3)对面向对象程序构造方法、抽象数据类型、软件重用思想、其他程序设计风范,其他面向对象程序设计语言有所了解。
本课程的先修课程为“计算机导论”、“C语言”,后续课程主要是“数据结构与算法”、“编译原理”与“软件工程”。
二、课程目标1.知道《面向对象程序设计》这门学科的性质、地位、研究范围、学科进展和未来方向等。
对面向对象程序构造方法、抽象数据类型、软件重用思想、其他程序设计风范、其他面向对象程序设计语言有所了解。
2.理解该门学科的主要概念、基本原理和策略等。
3.掌握C++语言基本数据类型、复合数据类型、基本控制结构、函数以及面向对象程序设计中类与对象、继承、多态性等基本概念;掌握类属机制、C++输入输出机制、程序断言、异常处理等高级机制。
4.能够把所学的原理应用到具体的实践中去,如能利用C++语言编写程序解决一些具体的问题,培养学生发现、分析和解决问题的能力等。
三、课程内容和教学要求这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。
这四个层次的一般涵义表述如下:知道———是指对这门学科和教学现象的认知。
面向对象设计方法主要特征

面向对象设计方法主要特征
面向对象设计方法的主要特征包括:
1. 封装(Encapsulation):将数据和对数据的操作封装在一起,通过定义类来实现。
类中的数据称为属性,对属性的操作称为方法。
封装可以隐藏内部实现细节,提供简化的接口,提高代码的可重用性和可维护性。
2. 继承(Inheritance):通过继承机制,一个类可以派生出子类,子类会继承父类的属性和方法。
继承允许代码的复用,并且可以构建类的层次结构,实现抽象和特化。
3. 多态(Polymorphism):多态是指同一个类的不同对象对同一消息采取不同的行为。
多态提供了一种灵活的方式来处理不同类型的对象,通过动态绑定实现方法的调用。
4. 抽象(Abstraction):抽象是指忽略实现细节,关注事物的本质和共性特点。
通过抽象,可以定义出适用于多个具体类的通用类,提高代码的灵活性和可扩展性。
5. 组合(Composition):组合是指将多个对象组合成一个更大的对象,形成部分-整体的关系。
通过组合,可以构建复杂的结构和功能。
6. 接口(Interface):接口定义了一个类或组件对外提供的操作和属性,而不关心其具体实现。
接口可以约束不同类的行为,实现代码的解耦和可插拔性。
7. 聚合(Aggregation):聚合是指将多个对象聚集在一起,形成所谓的整体。
聚合是一种弱关联关系,整体和部分可以分离存在。
通过运用这些特征,面向对象设计方法可以模拟现实世界中的情景和关系,使系统具有更好的可维护性、可扩展性和重用性。
面向对象的系统分析与设计(山东联盟)智慧树知到答案章节测试2023年山东财经大学

第一章测试1.下面关于功能分解法的优点描述错误的是A:与模块化编程结合使用后,使开发效率有很大提高B:以系统需要提供的功能为中心组织系统C:删除了GoTo语句,使软件能得到有效维护D:具有较强的应对需求变化的能力答案:D2.下面的开发方法能够兼顾功能和数据的是A:面向对象方法B:信息建模法C:结构化方法D:功能分解法答案:A3.结构化方法采用数据流、加工进行建模,需求变化极易引起两者的变动,进而引起其他数据流和加工的变化A:错B:对答案:B4.功能分解法以功能作为系统的构造块,数据组织能力强。
A:错B:对答案:A5.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向对象方法有许多特征,如软件系统是由对象组成的;();对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
A:强调需求分析重要性B:把对象划分成类,每个对象类都定义一组数据和方法C:对既存类进行调整D:开发过程基于功能分析和功能分解答案:B第二章测试1.下列关于UML叙述正确的是()。
A: UML仅是一组图形的集合B: UML仅适用于系统的分析与设计阶段C: UML是一种语言,也是系统设计的方法D:在信息系统开发过程方面,UML是一种建模语言,不是对开发过程的细节进行描述的工具答案:D2.UML的最终产物就是最后提交的可执行的软件系统和()。
A: 类图B: 动态图C: 用户手册D: 相应的软件文档资料答案:D3.UML提供了4种静态图用于对系统的静态方面进行可视化、详述、构造和文档化。
其中()是面向对象系统建模中最常用的图,用于说明系统的静态设计视图。
A: 部署图B: 组件图C: 对象图D: 类图答案:D4.UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。
其当需要显示代码物理结构,并用于实际的编程时,应该选择()。
大一上学期第10章 程序设计基础

2
程序设计的基本步骤: 程序设计的基本步骤: (1)分析问题,确定数学模型或方法。 分析问题, 分析问题 确定数学模型或方法。 (2)设计算法,画出流程图。 设计算法, 设计算法 画出流程图。 (3)选择编程工具,按算法编写程序。 选择编程工具, 选择编程工具 按算法编写程序。 (4)调试程序,分析输出结果。 调试程序, 调试程序 分析输出结果。
10
10.2.5 算法示例
1.迭代算法 . 迭代是一种建立在循环基础上的算法。在数学中, 迭代是一种建立在循环基础上的算法。在数学中, 迭代经常被用来进行数值计算,例如求方程的解, 迭代经常被用来进行数值计算,例如求方程的解, 不断用变量原来的值递推求新的值的过程。 不断用变量原来的值递推求新的值的过程。 讨论求若干个数之和或乘积的问题。 讨论求若干个数之和或乘积的问题。
15
(2)折半查找 )
作为折半查找的表必须是顺序存储的有序表, 作为折半查找的表必须是顺序存储的有序表,即表采 用顺序结构存储,表中的元素按关键字值递增(或递减) 用顺序结构存储,表中的元素按关键字值递增(或递减) 排列。 排列。 假设表中的关键字值递增排列, 假设表中的关键字值递增排列,则折半查找的实现方 法是:首先取整个有序表的中间元素A 法是:首先取整个有序表的中间元素 m的关键字同给定 比较, 值x比较,若相等,则查找成功;否则,若Am的关键字小 比较 若相等,则查找成功;否则, 于x,则说明待查元素只可能落在表的后半部分中,接着 ,则说明待查元素只可能落在表的后半部分中, 只要在表的后半部分子表中查找即可; 只要在表的后半部分子表中查找即可;若 Am的关键字大 于x,则说明待查元素只可能落在表的前半部分中,接着 ,则说明待查元素只可能落在表的前半部分中, 只要在表的前半部分子表中查找即可。这样, 只要在表的前半部分子表中查找即可。这样,经过一次关 键字的比较,就缩小一半的查找空间,重复进行下去, 键字的比较,就缩小一半的查找空间,重复进行下去,直 到找到关键字为x的元素 或者表中没有待查元素( 的元素, 到找到关键字为 的元素,或者表中没有待查元素(此时 查找区间为空)为止。 查找区间为空)为止。
面向对象分析与设计

2021/4/9
3
面向数据流与面向对象的系统
2021/4/9
4
面向对象的概念
Coad 和 Yourdon给出了定义:
“面向对象=对象+类+继承+消 息”
如果一个软件系统是使用这4类概念设计和实现的, 则认为这个软件系统是面向对象的。一个面向对象的程序 的每一成分应是对象,计算是通过新的对象的建立和对象 之间的信息通信来执行的。
服务、结构和主题。
2021/4/9
18
2021/4/9
19
分析阶段的主要活动
1. 发现对象、定义它们的类; 2. 识别对象的内部特征;
① 定义属性 ② 定义服务 3. 识别对象的外部关系; ① 定义对象之间的一般化----特殊结构; ② 定义对象之间的整体----部分结构 ③ 建立实例连接 ④ 建立消息连接
在OOD阶段,应当继续OOA阶段的工 作,对在OOA中得到的结果进行改进 和增补。
2021/4/9
41
1.复用设计
根据问题解决的需要,把从类库或其 它来源得到的既存类增加到问题解决 方案中去。
标明既存类中不需要的属性和操作 增加从既存类到应用类之间的一般化-
特殊化的关系。 把应用类中因继承既存类而成为多余
Internal State Others... Turn Off
Adjust Volume
被封装的行为和状态
2021/4/9
8
类
类是一组具有相同数据结构和相同操作的 对象的集合。
类的定义包括一组数据属性和在数据上的 一组合法操作。
类定义可以视为一个具有类似特性与共同 行为的对象的模板,可用来产生对象。
③ 对于非常庞大的系统可以建立多级主题词,形成一个层 次结构。
面向对象的分析及设计课件-基础篇

封装带来的问题: 编程的麻烦 执行效率的损失 解决办法: 不强调严格封装, 实行可见性控制。 (混合型OOPL) 例如: C++
12 12
抽象,类,一般类,特殊类
抽象与分类:忽略事物的非 本质特征,只注意那些与当 前目标有关的本质特征,从 而找出事物的共性,叫做抽 象。抽象是形成概念的基本 手段。把具有共同性质的事 物划分为一类,叫做分类。 类是具有相同属性和操作的 一组对象的集合,它为属于 该类的全部对象提供了统一 的抽象描述,其内部包括属 性和操作两个主要部分。类 的作用是用来创建对象,对 象是类的一个实例。
4 4
主要特点:
北京大学信息学院研究生课程 面向对象的分析与设计
用类和对象作为系统的基本构成单位。对象对应 问题域中的事物,其属性和操作刻画了事物的静 态特征和动态特征,它们之间的继承关系、聚合 关系、关联和消息如实地表达了问题域中事物之 间实际存在的各种关系。 因此,无论系统的构成成分,还是通过这些成分 之间的关系而体现的系统结构,都可直接地映射 问题域。
系统中需要表明每一门课程由哪位教师承担、有哪些学生 选修,因此需要在教师和课程之间定义一个关联,在学生 和课程之间也定义一个关联。 该系统的教务员要为学生做注册、登记成绩等工作,但是 不需要区别是哪个教务员为哪个学生做的,因此就不需要 在教务员和学生这两个类之间定义关联。
1 * * *
教师
课程
学生 «call»
北京大学信息科学技术学院研究生课程
面向对象的分析与设计
第一部分:基础篇
主讲教师:邵维忠
北京大学信息学院研究生课程 面向对象的分析与设计
课件说明
这组课件是本人多年来在北京大学讲授“面向对象的 分析与设计”课程时制作的,随着该领域理论与技术的发 展而逐年改进。目前的最新版本所适应的教材是邵维忠、 杨芙清合写的著作《面向对象的分析与设计》(清华大学 出版社2013年1月)。 为了促进学术交流和资源共享,现将这套课件无偿提 供给国内讲授同类课程的教师和同行,欢迎他们在教学工 作中使用或作为参考。课件共包括“基础篇”、“分析篇 ”和“设计篇”三部分,是按照54学时研究生课程制作的 ,各位教师可根据自己的授课对象及教学计划,对原课件 进行剪裁或重新组织。 北京大学信息学院 邵维忠 电子信箱:wzshao@ 2013年7月2日
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10.2 设计技术支撑方案—与用例实现方案的融合 与用例实现方案的融合
技术支撑方案常包含数个公共技术服务子系统,它们为所有 的上层应用功能提供数量较少的外部接口。 融合技术支撑方案与用例实现方案:在UML交互图中添加 必要的公共技术服务子系统接口,让控制类与该接口所代表 的公共服务对象进行消息交互。这些接口在交互图中的布局 位置依据其提供服务的性质不同而有所变化:
第十章 面向对象的设计方法
齐治昌《软件工程》 齐治昌《软件工程》第二版
1. 设计用例实现方案 2. 设计技术支撑方案 3. 设计用户界面 4. 精化设计模型
10.0 概述
OOA、OOD模型过渡平滑 分析以问题为中心,设计面向计算机实现。 OOD使得从问题空间到解空间的变换直观合理。 OOD更自然地遵循抽象、信息隐藏、模块化原则。 OOD完成信息和处理的双重模块化。 OOA、OOD、OOP阶段间反复迭代
10.4 精化设计模型
精化的任务:p244
① ② ③ ④ ⑤
以顶层架构图为基础,精化目标软件系统的体系结构。 精化类之间的关系。 精化类的属性和操作。 针对具有明显状态转换特征的类,设计状态图。 针对比较复杂的类方法,设计活动图。
状态图:描述一个特定类的对象的所有可能状态以及因事 件而引起的状态转移。
状态图的节点包含状态名和活动(可选) 活动的分类:(1)-(4) p245 转移边上可以附加信息:p245 一张状态图可以包含一个初态和一到多个终态。 UML状态图是一种结构化的状态图。 例:p245 图10.9
10.4 精化设计模型——精化体系结构 精化体系结构
目的:寻找一种理想的包划分方案,使得每个包中直接包含 的类的数量规模适中,包的边界清晰、自然,并且包间的耦 合度较低。 类间耦合:从高到低p246 :继承关系、构成关系、聚合关 系、关联关系、依赖关系、两个类的对象受同一执行者变化 的影响。 包的合并和分拆的目标:强内聚,松耦合 完全排除包间的依赖关系既无必要,也不合理。但是以下原 则要尽量遵守:
10.3 设计用户界面
用户界面设计的策略和步骤p243-244 :
① ② ③ ④ ⑤ ⑥
熟悉用户并对用户分类。 按用户类别分析用户工作流程与习惯。 设计并优化命令系统。 设计用户界面的各种细节。 增加用户界面专用的类与对象。 利用快速原型演示,改进界面设计。为人机交互部 分构造原型,是界面设计的基本技术之一。
10.1 设计用例实现方案——精化类图 精化类图
利用交互图精化分析模型中的类图
交互图中,对每个类的对象都规定了它必须响应的消息(对应类的操 作)以及对象之间的消息传递通道(对应类间的连接关系) 。 方法/操作:原则上,每个类都应有一个操作来响应交互图中指向其 对象的那条消息。设计人员应尽量使用已有操作来响应新消息,并 尽量使用已存在的连接路径作为消息传递通道。 属性:类的操作完成消息响应责任的能力来源于两方面的知识:类 本身具有的信息(属性),其它类的协助。
10.1 设计用例实现方案——构造交互图 构造交互图
用例描述中,事件流中的事件直接对应于交互图中的消息, 事件的顺序体现为交互图中的时序… 用分离的交互图分别表示事件流和每个备选事件流 顺序图的布局规则:p236,典型 图10.4 协作图的布局规则:p237,典型 图10.5 例:图10.6、10.7
活动图适于表示用例中的事件流和过程,也可以表 示复杂的算法以及并发处理的进程。 针对比较复杂的处理过程并且比较重要的方法设计 活动图,如果需要强调处理过程中的并行性,可使 用活动图。 例:图10.17 例:图10.18
公共服务。 ③ 设计用户界面。 ④ 针对分析模型中的领域概念模型,以及第(2)、第(3)两个步骤引进的新类,完 整、精确地确定每个类的属性、操作,完整地标示类之间的关系。
设计过程:图10.1
10.1 设计用例实现方案
用例实现方案用交互图描述,交互图包括:顺序图、协作图 顺序图:描述对象之间动态的交互关系,着重表现对象间消息传递的时 间顺序。例:p233图10.2
元素:对象、时间、生命线、生命终结、活跃期、消息(序号、条件表达 式)、迭代标记*、描述信息等。 UML消息的四种类型:p232-233
① 简单消息:以一种简单、抽象的函数表示对象之间的信息传递,不考虑通信过程的
内部细节。简单消息在UML顺序图中用普通的有向箭头表示。 ② 同步消息:消息源发出消息后必须等待消息处理过程完毕并返回处理结果后,消息 源才可继续执行后续操作。前面所述的自调用消息应该是同步的。同步消息的表示 图元与简单消息相同,这表明UML在缺省情形下认为简单消息即为同步消息。 ③ 异步消息:消息源发出消息后不必等待消息处理过程的返回,即可继续执行自己的 后续操作。异步消息主要用于描述实时系统中的并发行为。异步消息在UML顺序图 中用一种特别的单向箭头表示。 ④ 返回消息: 表示前面发送的消息的处理过程完结之后的返回结果。返回消息应该是 同步的。在许多情况下,可以隐藏返回消息,但也可显式标出返回消息以示强调。 返回消息用虚线有向箭头表示,
协作图:描述相互合作的对象间的交互关系和链接关系,强调交互对象 间的静态链接关系。例:P234 图10.3
元素:现方案——提取边界类、 提取边界类、 提取边界类
实体类和控制类
边界类:用于描述目标软件系统与外部环境间的交互,功能:
① ② ③
界面控制:包括输入数据的格式及内容转换,输出结果的呈现,软件运行 过程中界面的变化与切换等。 外部接口:实现目标软件系统与外部系统或外部设备之间的信息交流和互 操作。主要关注跨越目标软件系统边界的通信协议。 环境隔离:将目标软件系统与操作系统、数据库管理系统、应用服务器中 间件等环境软件进行交互的功能与特性封装于边界类之中,使目标软件系 统的其余部分尽可能地独立于环境软件。
10.4 精化设计模型——精化类的属性和操作 精化类的属性和操作
10.4 精化设计模型——设计状态图 设计状态图
状态图适于表示跨越多个用例的单个对象的行为。 只需针对有明显的状态特征并且具有比较复杂的状 态-事件-响应行为的类设计状态图。 例:p252 图10.16
10.4 精化设计模型——设计活动图 设计活动图
避免包间的循环依赖关系 ② 在层次结构中,位于较低层次的通用包不应当依赖于较高层次中的 专用包。 ③ 在层次结构中,较高层次的包可以依赖于较低层次的包,但此种依 赖应尽量在相邻的层次间发生。 ④ 如果针对某些子系统专门划分了接口包和实现包,那么,其他与该 子系统相关的包只能依赖于接口包,不能依赖于实现包
10.2 设计技术支撑方案——数据持久存储服务 数据持久存储服务
目的:将目标软件系统中依赖于系统运行环境的数 据存取部分与其它部分相分离。 数据持久存储服务的设计包括:
定义数据格式 定义数据存取操作
10.2 设计技术支撑方案——并发与同步控制服务 并发与同步控制服务
目的:将目标软件系统中依赖于系统运行环境的并 发与同步控制部分和其他部分相分离。 功能:进程/线程的定义与启动、终止、状态查询、 同步点设置及其在同步点的信息交换等。
①
10.4 精化设计模型——精化类间关系 精化类间关系
详细研究类之间的关系:(1)-(3) p247 对象间实现消息传递的四种手段:
(1)-(4) p247 前三种具有暂时性:依赖关系;最后一种具有稳定性,可表示为: 构成关系、普通聚合关系、普通的关联关系
关联类:关联关系本身具有属性和操作,P247 图10.10 UML的依赖、聚合和构成关系的方向性很明显。对关联关 系,尽量将它单向化。进一步考虑对象间的数量对应关系 及对象在关联中扮演的角色。图10.11 面向重用的类结构调整:抽取公共父类,图10.12;类之 间建立单向的委托,图10.13 利用继承关系精化设计模型:引入父类 多继承化解为单继承,图10.14 按“强内聚、松耦合”、简单性、自然性等原则优化: p250
10.4 精化设计模型——精化类间关系 精化类间关系
10.4 精化设计模型——精化类间关系 精化类间关系
10.4 精化设计模型——精化类的属性和操作 精化类的属性和操作
属性的描述内容:名称、类型、初始值、取值范围、属性 说明(后三项可选) 操作的描述内容:名称、参数表(参数名称及类型)、返 回值类型、功能描述 属性和操作的作用范围:public, protected, private,原则: 尽量缩小作用范围,属性不宜公开 属性和操作可区分为类级和实例级 为了提高运行效率,有时需要在对象的生命周期中保存一 些中间结果,可引入导出属性作为类的私有属性。 设计模型精化的例子:p251 图10.15
先考虑数据持久存储服务 再考虑安全控制服务 最后考虑分布式事务管理、并发与同步控制、可靠消息等服务
技术支撑方案的类图与其它类图的融合:p243
如果前者比较简单,直接与其他类图合并,并建立公共技术服务类 与其他类之间的必要连接。 如果公共技术服务子系统中包含较多的服务类,它们应单独构成类 图,利用UML的包机制进行适当分组,并将这些包置于系统的体系 结构图中的较低层次。
10.2 设计技术支撑方案
应用功能往往都需要一组技术支撑机制为其提供服 务。 技术支撑方案是整个目标软件系统中全局性的公共 技术平台。 技术支撑方案应具有良好的稳定性、开放性、可扩 充性。 技术支撑方案的设计一方面取决于目标软件系统对 公共技术服务的需求,另一方面取决于设计人员对 软件技术手段的把握和选取。
10.0 基于 基于UML的OOD概述 的 概述
分析模型:顶层架构图、用例与用例图、领域概念模型。 设计模型:体系结构图、交互图、类图、状态图、活动图等。 任务:p231
① 针对分析模型用例,设计用UML交互图表示的实现方案。 ② 设计技术支撑设施。非业务需求的一部分,但却为多种业务需求的实现提供
实体类:表示目标软件系统中具有持久意义的信息项及其操作。 控制类:完成用例任务的责任承担者,协调、控制其它类共同完 成用例规定的功能或行为。 提取方法: