第10章面向对象分析
软件工程-面向对象分析
3)需求陈述作用:需求陈述仅仅是理解用户需求的出发点,千万不可 将此陈述当成完整、准确、有效和一成不变的文档。
单击此处编辑母版标题样 10.2.2 需求陈述书写举例 式 下图所示为自动取款机(ATM)系统(作为OO分析和OO设计实例)
单击此处编辑母版标题样
10.3 建立对象模型
式对象模型的作用:对象模型描述问题域中的“类与对象”以及它
们之间的相互关系,表示了目标系统的静态数据结构。
建立对象模型的信息来源:需求陈述、应用领域的专业知识以及 关于客观世界的常识,是建立对象模型时的主要信息来源。
单击此处编辑母版标题样 式建立对象模型的步骤:由于对象模型有5个层次。典型的工作步骤是:
动态模型和功能模型中都包含了对象模型中的操作(即服务或方法)。
单击此处编辑母版标题样 2)对象模型的5个层次:主题层、类与对象层、结构层、属性层和服务 式层,如下图所示。这5个层次按照从上到下或从抽象到具体的层面一
层比一层更细地给出了对象模型的更多细节。在概念上,这5个层次 是整个模型的5张水平切片。
分析抽取和确定问题域中的对象类; 确定对象类之间的关系(关联或结构); 对于大型复杂问题还要进一步划分出若干个主题; 确定对象类和关联类中的属性; 利用适当的继承关系进一步合并和组织类; 对类中操作需等到建立了动态模型和功能模型之后再确定。 注意:上述建立对象模型的步骤顺序是不严格限定的,因为分析建模过
图10.2 ATM系统
单击此处编辑母版标题样 式自动取款机(ATM)系统需求陈述:
某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计 算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总 行投资购买。总行拥有多台ATM,分别设在全市各主要街道上。分行负 责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属 的各个储蓄所内。该系统的软件开发成本由各个分行分摊。
软件工程导论第10章面向对象分析
易于理解,同时减少了代码冗余和重复,提高了开发效率和代码质量。
03
提高软件的可重用性
面向对象分析鼓励使用抽象和封装技术,使得软件组件更加模块化和可
重用,减少了重复开发的工作量,提高了软件开发的效率。
02
面向对象分析的主要步骤
问题识别
总结词
明确问题的本质和范围
详细描述
在面向对象分析中,问题识别是首要步骤,它要求对问题进行深入理解和明确, 包括确定问题的范围、目标、限制条件等,以便为后续的分析和设计工作提供 清晰的方向。
面向对象分析的优势与不足
过度抽象
面向对象分析有时会过度抽象,导致 系统过于复杂,难以理解和实现。
缺乏对系统流程的关注
面向对象分析更关注静态结构,可能 忽略系统流程和动态行为。
面向对象分析与传统分析方法的结合使用
在实际软件开发中,可以结合 面向对象分析和传统分析方法, 取长补短,提高软件开发的效
率和成功率。
05
面向对象分析与传统分析方法的 比较
传统分析方法的问题与挑战
缺乏对系统整体结构的考虑
传统分析方法往往只关注单个功能或模块,忽略了系统整体的结 构和关系。
难以处理复杂系统
对于复杂系统,传统分析方法难以有效地进行抽象和建模。
难以维护和扩展
由于缺乏整体结构和面向对象的思维,传统分析方法构建的系统往 往难以维护和扩展。
对象是指系统中具有明确边界和状态 的结构,它可以包含数据和操作,并 且具有封装性、继承性和多态性等特 征。
面向对象的基本特征
封装
封装是将对象的属性和操作封装 在一起,形成一个独立的实体, 对外隐藏内部实现细节,只通过 接口与外界交互。
继承
继承是指子类可以继承父类的属 性和方法,并且可以扩展或修改 它们,从而实现代码的重用和扩 展。
第十章 C++ 基础
华厦职业学院
C语言程序设计
其中public是成员的属性说明,表示公有成员, 类的成员还可以声明为private(私有成员)或 protected(保护成员),不同属性的成员在访问时 规则不同。 类定义好之后,可以像结构那样定义变量,方 法是: 类的名称 变量名称;
华厦职业学院
C语言程序设计
在C++中类定义的变量称为对象(object),在定 义对象时,也可以用类名来定义类变量的指针,注 意在使用时类名称之前不写class。例如: time t; // t是类time的一个对象; time *pt; // pt是一个指向类对象的指针
华厦职业学院
C语言程序设计
关于成员函数,有以下规则: (1) 成员函数是类的函数,不能独立执行,必须要 用一个对象或对象指针来调用执行,什么对象调用 成员函数,成员函数就作用于什么对象,既成员函 数的执行结果依赖于具体的对象; (2) 成员函数中可以存取同一个类中的成员变量, 这些成员变量就是相应对象的成员变量;成员函数 也可以调用同一个类中的其它成员函计
10.3
构造函数与析构函数
10.3.1 构造函数 用类来定义对象变量时,往往需要让对象有一个初始值, 完成这种功能的函数就是构造函数。构造函数是与类同名的 函数,但函数没有任何返回类型,也不是void类型,例如: class time { public: int h,m,s; time() { h=0; m=0; s=0; } void set(int th,int tm,int ts) { h=th; m=tm; s=ts; } void show(); };
华厦职业学院
C语言程序设计
10.1 类与对象 10.2 this指针 10.3 构造函数与析构函数 10.4 引用与复制构造函数 10.5 动态内存分配 10.6 类成员的访问规则 10.7 对象的赋值 10.8 运算符重载
《软件工程导论》课后习题答案
作业及解答(第3章)
• 数据结构的描述 符 号
= +
含 义
x = a+b
举
例
被定义为 与 或
[...,...] 或 [...|...] { ... }或 m{...}n (...) “...” ..
23:59:38
x = [a , b],x = [a | b] 重复 x = {a}, x = 3{a}8 可选 x = (a) 基本数据元素 x = “a” 连结符 x = 1..9
P1 记录存款信息
P2 打印存单 F5存款信息 F3存单 E1 储户 F4利息
F5存款信息 D1存款信息 F7密码 F2取款单
F5存款信息 P3 核算密码
F4利息 F4利息 F6取款信息 P6 设置利率 P4 计算利息
P5 打印利息清单 F8储蓄利率
E2 业务员
23:59:38
F8储蓄利率
F8储蓄利率
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
23:59:38
重庆工学院计算机科学与工程学院 李梁(liliang@) 李梁
作业及解答( 作业及解答(第3章)
• 3-6 复印机的工作过程大致如下:未接到复印 命令时处于闲置状态,一旦接到复印命令则进 入复印状态,完成一个复印命令规定的工作后 又回到闲置状态,等待下一个复印命令;如果 执行复印命令时发现没纸,则进入缺纸状态, 发出警告,等待装纸,装满纸后进入闲置状态, 准备接收复印命令;如果复印时发生卡纸故障, 则进入卡纸状态,发出警告等待维修人员来排 除故障,故障排除后回到闲置状态。 • 请用状态转换图描绘复印机的行为。
第10章 面向对象分析
第10章 面向对象分析
第10章 面向对象分析
• 面向对象软件开发技术
– 面向对象分析(OOA) – 面向对象设计(OOD) – 面向对象实现(OOP)
面向对象技术是一个有全新概念 的开发模式,其特点是:
(1)方法是对软件开发过程所有阶段进 行综合考虑而得到的; (2)从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连 续性;
取消交易
顾客可在按下选择键前任何一个时刻,拉动退币杆取 消交易收回硬币。
自动售货系统系统
-端1 * -端2
自动售货系统::售货
*
顾客
-端2
-端1 *
自动售货系统::供货
*
供货人
-端1 * -端2
自动售货系统::取货款
*
收银员
自动售货系统系统
-端1 *
-端2
售货
*
<<extends>>
售散装饮料
顾客
• 业务中的执行者扮演什么角色?这些角色可以 看作类,如客户、操作员等。
(2)筛选对象类,确定最终对象类 我们可以用以下选择特征来确定最终的对象: 1) 保留的信息:仅当必须记住有关潜在对象的 信息,系统才能运作时,则该潜在对象在分 析阶段是有用的; 2) 需要的服务:潜在对象必须拥有一组可标识 的操作,它们可以按某种方式修改对象属性 的值; 3) 多个属性:在分析阶段,关注点应该是“较 大的”信息(仅具有单个属性的对象在设计 时可能有用,但在分析阶段,最好把它表示 为另一对象的属性);
定义服务
• 对象=属性+操作(服务) • 因为在动态模型和功能模型中更明确地描 述了每个类中应该提供哪些服务,所以在 建立了这两个模型后才能最终确定类中应 有的服务。 • 事实上,在确定类中应有的服务时,既要 考虑该类实体的常规行为,又要考虑在本 系统中特殊需要的服务。
第10章-C++面向对象程序设计(Visual C++ 2010版)-温秀梅-清华大学出版社
基本控件的共同属性
(1) ID属性 用于指定控件的标识符,Windows依靠ID来区分不同 的控件。
(2) Caption(标题)属性 对控件将要实现的功能进行文字说明。如果控件标题 中包含字符&,则紧跟其后的字符在显示时会有一条下划 线,通过这样的设置,按(Alt+带下划线的字符)组合键, 将触发控件被单击的事件或切换到相应的控件。
单击“下一步”按钮,弹出如图10.3所示的“MFC 应用 程序向导-ch10_1”之“应用程序类型”对话框,在该 对话框中选择“基于对话框”的应用程序类型。应用程 序有以下四种类型:单个文档(Single document)、 多个文档(Multiple documents)、基于对话框( Dialog based)和多个顶级文档。选择不同的应用程序 类型时,对话框左上角会显示不同风格的应用程序窗口 图标,不同类型应用程序的具体说明如表10.2所示。
图10.8 ch10_1应用程序的运行结果
使用AppWizard 工具生成的 程序和改变了的复选框
组合框 分组框 静态文本框
命令按钮 编辑框 列表框 单选按钮 图片框
10.3 基本控件
水平滚动条 滑块
进度条
列表框
选项卡控件
垂直滚动条 微调器 热键
树型列表框
IP地址
允许用户产生一个多文档界面(MDI)结构的应用程序。该项为默认选项。在 多文档界面应用程序中允许同时操作多个文档。在界面中可以同时打开多个文 件(同时也就为每个文件打开一个窗口),并通过切换窗口激活相应的文档进 行编辑
允许用户产生一个基于对话框的应用程序。基于对话框结构的应用程序,主要 用于人机对话,为用户传送一些消息给计算机
图10.3 “MFC 应用程序向导-ch10_1”之“应 用程序类型”对话框
软考系统分析师指定教材
软考系统分析师指定教材很多考生在学习的时候,不知道哪本教材才是真正适合考试用的教材。
下面希赛小编为大家整理了一般软考系统分析师指定教材,希望对大家有帮助。
具体内容如下:图书信息书名: 系统分析师教程作者:张友生出版社:清华大学出版社出版时间:2010年02月01日ISBN:9787302219743开本:16开定价: 89.00元内容简介本书由全国计算机专业技术资格考试办公室组织编写,是系统分析师考试的指定教材。
本书围绕系统分析师的工作职责和任务而展开,对系统分析师所必须掌握的理论基础和应用技术做了详细的介绍,重在培养系统分析师所必须具备的专业技能。
本书内容既符合系统分析师考试总体纲领性的要求,也是系统分析师职业生涯所必需的知识与技能体系。
准备参加考试的人员可通过阅读本书掌握考试大纲规定的知识,把握考试重点和难点。
本书可作为系统分析师的工作手册,也可作为系统分析与设计技术的培训和辅导教材,还可以作为计算机专业教师的教学参考用书。
图书目录第1章绪论第2章经济管理与应用数学第3章操作系统基本原理第4章数据通信与计算机网络第5章数据库系统第6章系统配置与性能评价第7章企业信息化战略与实施第8章软件工程第9章系统规划第10章系统分析第11章软件需求工程第12章软件架构设计第13章系统设计第14章系统实现与测试第15章系统运行与维护第16章新技术应用第17章嵌入式系统分析与设计第18章系统安全性分析与设计第19章系统可靠性分析与设计第20章项目管理参考文献图书信息书名: 系统分析师考试全程指导作者:张友生王勇出版社:清华大学出版社出版时间:2009年08月01日ISBN: 9787302204084开本:16开定价: 62.00元内容简介本书作为计算机技术与软件专业技术资格(水平)考试参考用书,着重对考试大纲规定的内容有重点地细化和深化,内容涵盖了最新的系统分析师考试大纲(2009年修订版)的所有知识点,分析了近4年的系统分析设计案例考试的试题结构,给出了试题解答方法和实际案例。
计算机科学与技术专业课课件_软件工程SE_Chapter10
拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过 ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取 款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将 来可能还要求使用ATM办理转账、存款等事务。
2013-8-31
上海大学计算机学院
7
ATM系统的需求陈述
择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输 入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用 户。
2013-8-31
上海大学计算机学院
8
建立对象模型
◆面向对象分析首要的工作,是建立问题域的对象 模型。 ◆对象模型描述了现实世界中的“类-&-对象”以 及它们之间的关系,表示了目标系统的静态数据 结构。
上海大学计算机学院
12
候选类—&—对象
银行,自动取款机(ATM),系统,中央计算机,分行计算机, 柜员终端,网络,总行,市,街道,分行,营业厅,储蓄所, 软件,成本,柜员,储户,现金,支票, 账户, 事务,现金兑 换卡,余额,磁卡,分行代码,卡号,副本,访问,用户,信息, 密码,类型,取款额,账单。
●找出所有候选的类-&-对象; ●筛选候选的类-&-对象。
2013-8-31
上海大学计算机学院
11
找出候选的类-&-对象
◆ 非正式分析方法
● 以用自然语言书写的需求陈述为依据,把陈述中的
1) 名词作为类-&-对象的候选者, 2) 形容词作为确定属性的线索, 3) 动词作为服务(操作)的候选者。
2013-8-31
去除冗余
银行,ATM,中央计算机,分行计算机,柜员终端,网络,总行, 市,街道,分行,营业厅,储蓄所,软件,成本,柜员,储户,现 金,支票, 账户,事务,现金兑换卡,余额,分行代码,卡号, 访问,信息, 密码,类型,取款额,账单,通信链路,事务 日志。
第10章 C++语言的输入与输出-面向对象程序设计(C++语言)(第二版)-程磊-清华大学出版社
设置状态标志flags 清楚状态标志,并返回前状态标志 测试状态标志 设置标志flags, 并返回前状态标志 返回当前的宽度设置值 设置域宽w,返回以前的设置 设置小数位数p,返回以前的小数位数 返回当前的填充字符 设置填充字符ch,返回当前的填充字符
13
下面分别介绍这些成员函数的使用方法;
(1)设置状态标志:
cout<<”x_width=”<<cout.width( )<<endl; cout<<”x_fill=”<<cout.fill ( )<<endl; cout<<”x_precision=”<<cout.precision( )<<endl; cout<<123<<” ”<<123.45678<<endl; cout<<”______________________________\n”; cout<<”*** x_width=10,x_fill=, x_precision=4 ***\n”; cout.width(10); cout.precision(4); cout<<123<<” ”<<123.45678<<” ”<<234.567<<endl;
1. C++的流概述 ❖ 在C++中,输入输出流被定义为类,称为流类。 ❖ I/O 系 统 仍 然 是 以 字 节 流 的 形 式 实 现 的 , 流
(Stream)实际上就是一个字节序列,流总是 与某一设备相联系的,它既可以从输入设备 (如键盘、磁盘等)流向计算机内存,亦可以 从计算机内存流向输出设备(如显示器、打印 机、磁盘等)。 ❖ 输入输出的字节可以是ASCII字符、内部格式 的原始数据、图形图像、数字音频、视频等。
面向对象分析与设计
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
类
类是一组具有相同数据结构和相同操作的 对象的集合。
类的定义包括一组数据属性和在数据上的 一组合法操作。
类定义可以视为一个具有类似特性与共同 行为的对象的模板,可用来产生对象。
③ 对于非常庞大的系统可以建立多级主题词,形成一个层 次结构。
软件工程_张海蕃
应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和 方法,尽快消除在计算机系统早期发展阶段形成的 一些错误概念和做法。 应该开发和使用更好的软件工具。正如机械工具可 以“放大”人类的体力一样,软件工具可以“放大” 人类的智力。在软件开发的每个阶段都有许多繁琐 重复的工作需要做,在适当的软件工具辅助下,开 发人员可以把这类工作做得既快又好。如果把各个 阶段使用的软件工具有机地集合成一个整体,支持 软件开发的全过程,则称为软件工程支撑环境。
与软件开发和维护有关的许多错误认识和作法的形 成,可以归因于在计算机系统发展的早期阶段软件 开发的个体化特点。错误的认识和作法主要表现为 忽视软件需求分析的重要性,认为软件开发就是写 程序并设法使之运行,轻视软件维护等。
事实上,对用户要求没有完整准确的认识就匆忙着 手编写程序是许多软件开发工程失败的主要原因之 一。只有用户才真正了解他们自己的需要,但是许 多用户在开始时并不能准确具体地叙述他们的需要, 软件开发人员需要做大量深入细致的调查研究工作, 反复多次地和用户交流信息,才能真正全面、准确、 具体地了解用户的要求。对问题和目标的正确认识 是解决任何问题的前提和出发点,软件开发同样也 不例外。急于求成,仓促上阵,对用户要求没有正 确认识就匆忙着手编写程序,这就如同不打好地基 就盖高楼一样,最终必然垮台。事实上,越早开始 写程序,完成它所需要用的时间往往越长。
另一方面还必须认识到程序只是完整的软件产品的 一个组成部分,在上述软件生命周期的每个阶段都 要得出最终产品的一个或几个组成部分(这些组成 部分通常以文档资料的形式存在)。也就是说,一 个软件产品必须由一个完整的配置组成,软件配置 主要包括程序、文档和数据等成分。必须清除只重 视程序而忽视软件配置其余成分的糊涂观念。 作好软件定义时期的工作,是降低软件成本提高软 件质量的关键。如果软件开发人员在定义时期没有 正确全面地理解用户需求,直到测试阶段或软件交 付使用后才发现“已完成的”软件不完全符合用户 的需要,这时再修改就为时已晚了。
软件工程第10章 面向对象分析
10.1 面向对象分析的基本过程
10.1.1.概述
面向对象分析,就是抽取和整理用户需求并建立问题域 精确模型的过程。 面向对象分析过程从分析陈述用户需求的文件开始。 接下来,系统分析员应该深入理解用户需求,抽象出目
标系统的本质属性,并用模型准确地表示出来。 在面向对象建模的过程中,系统分析员必须认真向领域
首先,面向对象分析通过控制读者能见到的层次数目 来控制可见性。
其次,面向对象分析增加了一个主题层,它可以从一 个相当高的层次描述总体模型,并对读者的注意力加 以指导。
10.1 面向对象分析的基本过程
在概念上可以认为,面向对象分析大体上按照下列顺 序进行:
寻找类与对象,识别结构,识别主题,定义属性, 建立动态模型,建立功能模型,定义服务。 但是,分析不可能严格地按照预定顺序进行,大型、 复杂系统的模型需要反复构造多遍才能建成。 分析也不是一个机械的过程。系统分析员必须与领域 专家及用户反复交流,以便澄清二义性,改正错误的 概念,补足缺少的信息。
主要内容
10.1 面向对象分析的基本过程 10.2 需求陈述 10.3 建立对象模型 10.4 建立动态模型 10.5 建立功能模型 10.6 定义服务
10.2 需求陈述
10.2.1. 书写要点
需求陈述应该阐明“做什么”而不是“怎样做”!
应该描述用户的需求而不是提出解决问题的方法。 应该指出哪些是系统必要的性质,哪些是任选的性质。 应该避免对设计策略施加过多的约束,也不要描述系
10.3 建立对象模型
10.3.1. 确定类与对象
类与对象是在问题域中客观存在的,系统分析员的主 要任务就是通过分析找出这些类与对象。 首先找出所有候选的类与对象; 然后从候选的类与对象中筛选掉不正确的或不必
软件工程 第10章 面向对象的方法
第10章例题分析与解答作者:不详来源:2006年9月4日发表评论进入社区一、填空题1.面向对象方法认为系统是由应用域的___对象___组成。
2.对象具有状态,描述对象的状态用它的_属性值_____。
3.对象的抽象是_类_____。
4.类之间有两种结构关系,它们是分类关系和__组装____关系。
5.面向对象程序设计语言与其他程序设计语言的最主要差别是它具有_继承性_____。
6.动态模型描述了系统的__动态行为____。
二、选择题1.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是( D)关系。
A.组装B.整体成员C.has aD.一般具体2.面向对象分析阶段建立的三个模型中,核心的模型是( C )模型。
A.功能B.动态C.对象D.分析3.对象模型的描述工具是( C)。
A.状态图B.数据流图C.对象图D.结构图4.在有多重继承的类层次结构中,它的类层次结构是(B )层次结构。
A.树型B.网状型C.环型D.星型5.描述类中对象的行为,反映了状态与事件关系的是( B )。
A.对象图B.状态图C.流程图D.结构图6.在确定属性时,所有( C)是候选的属性。
A.动词B.名词C.修饰性名词词组D.词组三、应用题1.建立窗口系统的对象模型。
问题陈述如下:窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项、正文项三种,选择项中有若干对话项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、矩形、多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。
2.在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种查询的交互行为。
答案:一、填空题1.对象2.属性值3.类4.组装5.继承性6.动态行为二、选择题1.D2.C3.C4.B5.B6.C三、应用题1.2.第10章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.对象2.类3.属性4.操作5.消息6.消息传递7.方法8.关系9.关联10.一般具体关系 11.整体部分关系12.继承13.单重继承 14.多重继承15.多态性 16.角色17.受限关联 18.封装19.对象模型20.动态模型21.功能模型 22.事件23.状态24.事件追踪25.状态图26.动作27.活动28.处理29.数据流30.动作对象31.数据存储对象 32.重用性二、填空题1.对象具有封装性,实现了__数据与操作____的结合。
张海藩《软件工程导论》(第6版)(课后习题 第10章 面向对象分析)【圣才出品】
第10章面向对象分析1.用面向对象方法分析研究本书第2章第2题中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
答:(1)对象模型储蓄系统的对象模型,如图10-2所示。
图10-2储蓄系统的对象模型(2)动态模型①编写脚本a.正常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额吻合;第三,存款单生效;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,确定储户存款金额>=取款金额;第六,审核通过,取款单生效;第七,系统打印利息清单,业务员把本金和利息返回储户。
b.异常情况脚本第一,储户有存款要求,填写存款单,包含储户个人信息,存款金额和存款类型;第二,业务员查收存款,审核存款与存款单存款金额不符;第三,存款单作废;第四,储户有取款要求,填写取款单,包含个人账号、密码(待定)和存款金额;第五,业务员审核存款,验证储户身份,发现储户存款金额<=取款金额;第六,取款单作废。
②事件追踪图储蓄系统的事件追踪图,如图10-3所示。
图10-3储蓄系统的事件追踪图(3)功能模型储蓄系统的数据库流图,如图10-4所示。
图10-4储蓄系统的数据库流图2.用面向对象方法分析研究本书习题2第3题中描述的机票预订系统,试建立它的对象模型、动态模型和功能模型。
答:略。
3.用面向对象方法分析研究本书习题2第4题中描述的患者监护系统,试建立它的对象模型、动态模型和功能模型。
答:略。
4.下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:自动售货机系统是一种无人售货系统。
售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。
有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。
其他货币都被认为是假币。
机器拒绝接收假币,并将其从退币孔退出。
第10章---面向对象分析
(2) 与问题无关的或应在实现阶段考虑的关联
• 如: “系统处理并发的访问”
(3) 瞬时事件
• 关联应该描述问题域的静态结构,而不应该是一个瞬时事 件。 • 如: “ATM读现金兑换卡”
确定关联
(4) 三元关联
三个或三个以上对象之间的关联,大多可以 分解为二元关联或用词组描述成限定的关联。
• “柜员输入针对账户的事务”可以分解成“柜员 输入事务”和“事务修改账户”这样两个二元关 联。 • “ATM与中央计算机交换关于事务的信息” , 隐含了“ATM与中央计算机通信”和“在ATM上 输入事务”这两个二元关联。
一个事务包含对账户的若干次更新, 如(取 款、存款或查询)。
3. 把“分行”与“分行计算机”合并 参见图10.6(见书238页)
第十章面向对象分析
10.1 10.2 10.3 10.4 10.5 10.6 面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务
建立动态模型
确定类与对象
(3) 笼统
如“银行”、“网络”、“系统”、“软件”、 “信息”、“访问”等
(4) 属性
如:“现金”、“支票”、“取款额”、“账单”、 “余额”、“分行代码”、“卡号”、“密码”、 “类型”等
(5) 操作
本身具有属性需独立存在的操作,应该作为类与对 象。
(6) 实现
如:“事务日志”, “通信链路”
确定类与对象
2. 筛选出正确的类与对象
筛选标准
• (1) 冗余-----两个类表达了同样的信息 • (2) 无关--仅需要把与本问题密切相关的类与 对象放进目标系统中。 • (3) 笼统 • (4) 属性--有些名词实际上描述的是其他对象 的属性。 • (5) 操作--有时可能使用一些既可作为名词, 又可作为动词的词 • (6) 实现--不应该过早地考虑怎样实现目标系 统
张海藩《软件工程导论》(第6版)(章节题库 第10章 面向对象分析)【圣才出品】
第10章面向对象分析一、选择题1._____是系统一个特定执行期间所发生的事件序列。
【答案】脚本2.功能模型描述系统内的计算,它和_____、_____共同构成系统模型结构的三大支柱。
【答案】对象模型;动态模型3.状态是对象的_____、_____的一种抽象。
【答案】属性值;链接4.在对象模型中,访问操作是直接从类的_____和_____中导出的。
【答案】属性;关联5.对象模型为建立_____和_____,提供了实质性框架。
【答案】动态模型;功能模型6.功能模型由多个_____组成,每个_____说明了操作和结束的含义。
【答案】数据流图;数据流图7.功能模型由多张数据流图组成。
数据流图中包含_____、_____、_____对象和_____对象。
【答案】处理;数据流;动作;数据存储8.事件跟踪图用来表示_____、_____对象和_____对象。
_____和_____可用一条垂直线表示,各_____用水平箭头表示,箭头方向是从_____对象指向_____对象。
【答案】事件;事件的接收;发送;接收对象;发送对象;事件;发送;接收9.状态转换图是_____的重要工具。
【答案】启发分析员认识对象服务10.说明一个状态可采用_____、_____、_____、_____、_____等内容描述。
【答案】状态名;状态目的描述;产生该状态的事件序列;表示状态特征的事件;在状态中接收的条件二、填空题1.一个()能用不同的方法表示它的特征。
A.事件B.抽象C.状态D.脚本【答案】C【解析】状态是对象的属性值和链接的一种抽象。
根据影响对象总的行为的性质,一系列组合在一起是一个状态。
它能用不同的方法表示它的特征。
2.在对象模型中,访问操作是直接从类的属性和关联中导出的。
下列不是对象模型的访问操作的是()。
A.查询B.动作C.抽象D.活动【答案】C【解析】对象模型的访问操作主要包括三大类:查询、活动和动作。
3.()对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板。
精品文档-软件技术基础(鲍有文)-第10章
第10章 面向对象软件工程
2) 建立对象之间的联系 各个对象在系统中并非独立存在,只有定义和描述了对象 类之间的关系,各个对象类才能构成一个完整的系统模型。 对象模型图中,对象及类间的关系主要有4种:一般/特殊 关系、整体/部分关系、实例关联和消息连接。
第10章 面向对象软件工程 (1) 一般/特殊关系。识别类之间的一般/特殊关系要考虑
第10章 面向对象软件工程
把众多的事物归纳并划分为不同的类是人类在认识客观世 界时经常采用的思维方法,分类的原则是抽象,从那些与当前 目标有关的本质特征中找出事物的共性,并将具有共同性质的 事物划分成一类,得出一个抽象的概念。例如,学生、教师、 学校等都是一些抽象的概念。类的概念使我们能对属于该类的 全部个体事物进行统一的描述,“学生具有学号、姓名、性别、 年龄,能够入学注册、选课等”,这个描述适合所有学生,而 不必对每一个具体的学生进行描述。
在一般/特殊关系中,可以将共同的属性放在上层,将特 有的属性放在下层,将共同的方法放在上层,而将特有的方法 放到下层,如图10-4所示。
第10章 面向对象软件工程 图 10-4 一般/特殊关系举例
第10章 面向对象软件工程
第10章 面向对象软件工程 2) 类 类(Class)是具有相同属性和服务的一组对象的集合,它
为属于该类的全部对象提供了统一的抽象描述,其内部包括属 性和服务两个主要部分。类好比是一个对象模板,用它可以产 生多个对象。类所代表的是一个抽象的概念或事物,在客观世 界中实际存在的是类的实例,即对象。例如,在学校教学管理 系统中,“学生”是一个类,其属性具有学号、姓名、 性别 等,可以完成的操作有“入学注册”、“ 选课”等。学生 “王平”是一个具体的对象, 也是“学生”类的一个实例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章 面向对象分析
2013-6-18
本章目标
?掌握面向对象分析的过程 ? 掌握对象建模、 动态建模、功能建模方法 ?了解服务定义方法 ?能够根据需求陈述建立分析模型
2013-6-18 上海大学计算机学院
1- 2
2
主要内容
面向对象分析的基本过程 需求陈述 建立对象模型
属性(Attribute Layer)
方法(Service Layer)
2013-6-18 上海大学计算机学院
1- 6
6
面向对象分析的基本过程… 对象+关联
识别类与对象 需求 陈述
识别 结构
识别 定义 主题 属性
识别 结构
建立动态模型、功能模型、行为
2013-6-18 上海大学计算机学院
1- 7
7
银行柜员使用柜员终端处理储户提交的储蓄事务。 储户可以用现金或支票向自己的某个帐户内存款或 开新帐户。储户也可以从自己的帐户取款。
2013-6-18 上海大学计算机学院
1- 12
12
…ATM系统的需求陈述…
通常,一个储户可能拥有多个账户。柜员负责把 储户提交的存款或取款事务输进柜员终端,接收储 户交来的现金或支票,或付给储户现金。柜员终端 与相应的分行计算机通信,分行计算机具体处理针 对某个账户的事务并且维护账户。 拥有银行账户的储户有权申请领取现金兑换卡。 使用现金兑换卡可以通过ATM访问自己的账户。目前 仅限于用现金兑换卡在ATM上提取现金(即取款), 或查询有关自己账户的信息(例如,某个指定账户 上的余额)。将来可能还要求使用ATM办理转账、存 款等事务。
2013-6-18 上海大学计算机学院
35
Rose的使用[2]
工具栏 Diagram 窗口
Browser 窗口
Specification 对话框
Document 窗口 工具箱
2013-6-18 上海大学计算机学院
1- 36
36
Rose的使用[3]
Browser窗口
有四个视图:
Use
Case Logical Component Deployment
2013-6-18 上海大学计算机学院
1- 37
37
Rose的使用[4]
在Use Case视图的图的类型有:用例图、顺 序图、协作图和活动图。
2013-6-18
上海大学计算机学院
1- 38
38
Rose的使用[5]
在Logical视图中的类型有:类图和状态图。
2013-6-18
上海大学计算机学院
协 作 图
活 动 图
2013-6-18
上海大学计算机学院
1- 42
42
Rose的使用[9]-逻辑视图
类图 状态图
2013-6-18
上海大学计算机学院
1- 43
43
Component视图和Deployment视图
构件图 部署图
2013-6-18
上海大学计算机学院
1- 39
39
Rose的使用[6]
在Component视图的图的类型有:构件图。
2013-6-18
上海大学计算机学院
1- 40
40
Rose的使用[7]
在Deployment视图的图的类型有:部署图。
2013-6-18
上海大学计算机学院
1- 41
41
Rose的使用[8]-用例视图
用 例 图 顺 序 图
ATM
帐户
帐户
1- 11
11
2013-6-18
上海大学计算机学院
ATM系统的需求陈述…
某银行拟开发一个自动取款机(ATM)系统,它是由 一个自动取款机、中央计算机、分行计算机及柜员 终端组成的网络系统。ATM和中央计算机由总行投资 购买。总行拥有多台ATM,分别设在全市各主要街道 上。分行负责提供分行计算机和柜员终端。柜员终 端设在分行营业厅及下属的各储蓄所内。该系统的 软件开发成本由各分行分摊。
30
受限关联
2013-6-18
上海大学计算机学院
1- 31
31
关联类
2013-6-18
上海大学计算机学院
1- 32
32
聚集
Polygon Polygon 1 Contains 3..* points Point 聚集
Window
1
1
1
2 Scrollbar 1 Title Slider Header 组合
建立动态模型
建立功能模型 定义服务
上海大学计算机学院
2013-6-18
1- 3
3
内容线索
面向对象分析的基本过程
需求陈述
建立对象模型
建立动态模型 建立功能模型
定义服务
2013-6-18 上海大学计算机学院
1- 4
4
面向对象分析概述…
面向对象分析,就是抽取和整理用户
…面向对象分析的基本过程
识别类与对象(找出问题中的实体) 识别结构(类或对象之间的关系) 识别主题(指导读者理解大型、复杂模型 的一种机制) 定义属性(对象的属性) 建立动态模型 建立功能模型 定义服务(类所能提供的服务,即行为)
1- 8
2013-6-18
上海大学计算机学院
对象”以及它们之间的关系,表示了 目标系统的静态数据结构
通常使用类图表示对象模型
类图描述类及类与类之间的静态关系
2013-6-18 上海大学计算机学院
1- 17
17
类图的基本符号
类 名
属 性
2013-6-18
行 为/ 服 务
上海大学计算机学院
1- 18
18
类间关系
关联(Association) 2. 聚集(Aggregation) 3. 泛化(Generalization ) 4. 依赖和细化(Dependency and Realization)
2013-6-18 上海大学计算机学院
1- 15
15
内容线索
面向对象分析的基本过程
需求陈述
建立对象模型
建立动态模型 建立功能模型
定义服务
2013-6-18 上海大学计算机学院
1- 16
16
对象模型
面向对象分析首要的工作,是建立问
题域的对象模型
对象模型描述了现实世界中的“类与
(1)尽量做到语法正确,而且应该慎重
选用名词、动词、形容词和同义词 (2)尽量把需求与实现策略区分开
需求陈述仅仅是一个理解用户需求的 1- 10 上海大学计算机学院
2013-6-18 10
ATM系统网络拓扑图
柜员终端 储户 ATM 分行 计算机 分行 计算机 柜员 帐户 帐户
ATM
储户
中央 计算机
2013-6-18 上海大学计算机学院
1- 13
13
…ATM系统的需求陈述…
所谓现金兑换卡就是一张特制的磁卡,上面有 分行代码和卡号。分行代码唯一标识总行下属的一 个分行,卡号确定了这张卡可以访问哪些账户。通 常,一张卡可以访问储户的若干个账户,但是不一 定能访问这个储户的全部账户。每张现金兑换卡仅 属于一个储户所有,但是,同一张卡可能有多个副 本,因此,必须考虑同时在若干台ATM上使用同样 的现金兑换卡的可能性。也就是说,系统应该
WorkFor
Salary JobTitle StartDate
2013-6-18 上海大学计算机学院
1- 21
21
2、聚集
文本 类与类之间的整体与部分的关系(Part (1) 共享聚集 (2) 组合聚集
of)
*
项目组
*
1 窗口 1
列表框 * 按钮 * 菜单
1..*
组员
1 1
2013-6-18
需求并建立问题域精确模型的过程 三个子模型
静态结构(对象模型) 交互次序(动态模型) 数据变换(功能模型)
2013-6-18
上海大学计算机学院
1- 5
5
…面向对象分析概述
对象模型的五个层次
主题(Subject Layer)
类-对象(Class与Object Layer)
结构(Structure Layer)
1
Body Panel
2013-6-18
上海大学计算机学院
1- 33
33
泛化
2013-6-18
上海大学计算机学院
1- 34
34
课外阅读:Rose的使用[1]
ROSE是美国Rational公司的面向对象建 模工具,利用这个工具,我们可以建立用 UML描述的软件系统的模型,而且可以 自动生成和维护C++、Java、VB、 Oracle等语言和系统的代码 ROSE的界面分为三个部分——Browser 窗口、Diagram窗口和Document窗口 Browser窗口用来浏览、创建、删除和修 改模型中的模型元素;Diagram窗口用来 显示和创作模型的各种图;而Document 窗口则是用来显示和书写各个模型元素的 1- 35 文档注释
Point1 Point2 Point3
ComputerArea
2013-6-18 上海大学计算机学院
Draw
ComputerArea 1- 23
23
不同理解
照相手机
普通手机
照相机
照相手机
普通手机
照相机
照相手机 照相手机 普通手机 照相机 照相机
(1)