软件工程导论第10章 面向对象分析

合集下载

软件工程导论第10章面向对象分析

软件工程导论第10章面向对象分析

易于理解,同时减少了代码冗余和重复,提高了开发效率和代码质量。
03
提高软件的可重用性
面向对象分析鼓励使用抽象和封装技术,使得软件组件更加模块化和可
重用,减少了重复开发的工作量,提高了软件开发的效率。
02
面向对象分析的主要步骤
问题识别
总结词
明确问题的本质和范围
详细描述
在面向对象分析中,问题识别是首要步骤,它要求对问题进行深入理解和明确, 包括确定问题的范围、目标、限制条件等,以便为后续的分析和设计工作提供 清晰的方向。
面向对象分析的优势与不足
过度抽象
面向对象分析有时会过度抽象,导致 系统过于复杂,难以理解和实现。
缺乏对系统流程的关注
面向对象分析更关注静态结构,可能 忽略系统流程和动态行为。
面向对象分析与传统分析方法的结合使用
在实际软件开发中,可以结合 面向对象分析和传统分析方法, 取长补短,提高软件开发的效
率和成功率。
05
面向对象分析与传统分析方法的 比较
传统分析方法的问题与挑战
缺乏对系统整体结构的考虑
传统分析方法往往只关注单个功能或模块,忽略了系统整体的结 构和关系。
难以处理复杂系统
对于复杂系统,传统分析方法难以有效地进行抽象和建模。
难以维护和扩展
由于缺乏整体结构和面向对象的思维,传统分析方法构建的系统往 往难以维护和扩展。
对象是指系统中具有明确边界和状态 的结构,它可以包含数据和操作,并 且具有封装性、继承性和多态性等特 征。
面向对象的基本特征
封装
封装是将对象的属性和操作封装 在一起,形成一个独立的实体, 对外隐藏内部实现细节,只通过 接口与外界交互。
继承
继承是指子类可以继承父类的属 性和方法,并且可以扩展或修改 它们,从而实现代码的重用和扩 展。

软件工程第10章 面向对象分析(简)

软件工程第10章 面向对象分析(简)

单击此处编辑母版标题样 下图所示为自动取款机(ATM)系统(作为OO分析和OO设计实例) (ATM)系统 OO分析和OO设计实例 下图所示为自动取款机(ATM)系统(作为OO分析和OO设计实例) 式
10.2.2 需求陈述书写举例
ATM系统 图10.2 ATM系统
单击此处编辑母版标题样 自动取款机(ATM)系统需求陈述 P234): (ATM)系统需求陈述( 自动取款机(ATM)系统需求陈述(P234): 某银行拟开发一个自动取款机系统,它是一个由自动取款机、 某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计 式
主题含义:主题是指导开发人员和用户理解大型、 主题含义:主题是指导开发人员和用户理解大型、复杂模型的一种机 实际上, 制。实际上,主题就是对对象模型所涉及的诸多类和对象按照问题空 间的组成范围(方面)进行划分和归类。 间的组成范围(方面)进行划分和归类。 5个层次对应着建立对象模型的5项主要活动:找出类与对象,识别结 个层次对应着建立对象模型的5项主要活动:找出类与对象, 识别主题,定义属性,定义服务。 构,识别主题,定义属性,定义服务。 面向对象分析的一般步骤:寻找类与对象,识别结构,识别主题, 面向对象分析的一般步骤:寻找类与对象,识别结构,识别主题,定 义属性,建立动态模型,建立功能模型,定义服务。 义属性,建立动态模型,建立功能模型,定义服务。
单击此处编辑母版标题样 式
复杂问题的对象模型的5 图10.1 复杂问题的对象模型的5个层次
单击此处编辑母版标题样 对象模型5个层次的含义:类与对象、结构(类或对象之间的关系)、 对象模型5个层次的含义:类与对象、结构(类或对象之间的关系)、 式 属性和服务的概念,已经在第9章介绍过。现在介绍主题的概念。 属性和服务的概念,已经在第9章介绍过。现在介绍主题的概念。

软件工程导论第10章 面向对象分析

软件工程导论第10章 面向对象分析

分行计算机处理针对账户的事务。
隐含的关联 总行由各个分行组成。 分行保管账户。 总行拥有中央计算机。 系统维护事务日志。 系统提供必要的安全性。 储户拥有现金兑换卡。 中央计算机与分行通信
分行计算机维护账户。 柜员终端与分行计算机通信。
将三元关联改造成二元关联
柜员输入针对账户的事务。
分行计根算据机问处题理域针知对识账得户出的的事关务联。
精品课件
从陈述中找出所有名词,作为类和对象的初步候选者
① 某银行拟开发一个自动取款机系统,它是由自动取 款机ATM、中央计算机、分行计算机及柜员终端组 成的网络系统。
② 总行投资购买多台ATM和中央计算机, ATM分别设 在全市各主要街道上。
③ 分行提供分行计算机和柜员终端。柜员终端设在分 行营业厅及分行下属的各个储蓄所内。该软件的开 发成本由各分行分摊。
(14)分行计算机处理针对账户的事务。 分解为:(14-1)分行计算机处理事务。 (14-2)事务修改账户。
(15)ATM与中央计算机交换关于事务的信 息。 分解为:(15-1)ATM与中央计算机通信。
(15-2)在ATM机上输入精事品课务件。
根据问题域知识得出的关联 (11)现金兑换卡访问账户。 (12)分行雇用柜员。
④ 储户可以用现金或支票向自己拥有的某个账户内存 款、取款或开新账户。通常一个储户拥有多个账户 。
精品课件
从陈述中找出所有名词,作为类和对象的初步候选者
⑤ 银行柜员使用柜员终端处理储户提交的储蓄事务, 柜员负责把储户提交的存款或取款事务输进柜员终 端。柜员终端与相应的分行计算机通信,分行计算 机具体处理针对某个账户的事务并且维护账户。
根据问题域知识得出的关联 现金兑换卡访问账户。 分行雇用柜员。

软件工程导论_第十章

软件工程导论_第十章

2. OOA基本任务是:
运用面向对象的方法,对问题域和系统责任 进行分析和理解,找出描述问题域及系统责任所需的 对象,定义对象的属性、服务以及它们之间的关系。 目标是建立一个符合问题域、满足用户功能需求的 OOA模型。
问题域:被开发系统的应用领域,记载现实世界中要
由这个系统进行处理的业务范围。现实世界中系统 所要解决问题的领域为“问题域”,如“银行业务” 属于“银行的问题域”。 系统责任:所开发的系统应该具备的职能。
• “小镇”是牙科诊所的地址属性,不是独 立的对象;“软件系统”和“系统”是 同义词,指的是将要开发的软件产品, 不是问题域中的对象;“就诊时间”、 “预约时间”和“约定时间”在本问题 陈述中的含义相同,指的都是预约的就 诊时间,实际上,预约的就诊时间既包 括日期又包括时间,但是,它们是预约 登记表包含的属性,不是问题域中的独 立的对象;“名字”和“姓名”是同义 词,应该作为病人和预约登记表的属性;
我们目标是尽可能全面的发现属性,宁可多费时, 也不要遗漏所需要的属性。
10.3.5 识别继承关系
继承关系的建立实质上是知识抽取过程,它应该 反映出一定深度的领域知识,因此必须有领域专家密 切配合才能完成。通常,许多归纳关系都是根据客观 世界现有的分类模式建立起来的,只要可能,就应该 使用现有的概念。
10.3 建立对象模型(类图)
1. 描述系统静态的对象模型(类图)是面向对象
的三个模型中的基本模型。 2. 它表述了系统中各个对象的类型及其间存在 的各种关系。在面向对象建模中,建立类图是最 基本的任务;建立类图也是最需要花费精力和时 间的技术活动。
3. 该模型主要关心系统中的:
①对象的结构; ②属性; ④关联; ⑤类的层次。 ③操作和方法;

软件工程中的面向对象分析和设计

软件工程中的面向对象分析和设计

软件工程中的面向对象分析和设计面向对象分析和设计(OOAD)是软件工程中的一种方法论,它强调在软件开发过程中必须将“对象”作为思考和处理的核心概念。

本文将从面向对象分析和设计的定义、原则、流程和工具等方面进行阐述。

一、定义面向对象分析和设计(OOAD)是一种针对于对象的方法,通过把现实世界建模为软件世界中的对象,来确保软件能够更好地解决业务需求。

它主要解决软件问题的复杂性,可用于多种类型的软件开发。

本方法包括对要开发的系统进行分析和设计两个阶段。

面向对象分析(OOA)阶段着重于确定系统所要控制、管理、处理和维护的对象,而面向对象设计(OOD)阶段则涉及如何以对象为核心来设计系统。

二、原则面向对象分析和设计的主要原则包括:1.面向对象:以对象为中心,将系统分解为一系列相互协作的对象,而非由一组基本算法或数据结构来定义。

2.开放封闭原则:开放封闭原则,即软件中的对象应该对扩展开放(即增加一些新的功能),而对修改关闭(即不需修改已经得到的代码)。

3.继承:通过继承机制建立对象之间的关系,共享类之间的属性和方法。

4.封装:数据和函数封装在对象的封闭空间中,仅提供与其他对象交互的公共接口。

5.多态:多态是指在运行时选择对象的行为方式。

同一个消息给不同的对象可以导致不同的行为。

三、流程面向对象分析和设计具有一定的工作流程,如下图:1.确定业务需求;2.分析业务需求,建立一个现实世界模型;3.分析模型,确定系统中的对象,建立对象模型;4.设计对象间的关系,建立关系模型;5.根据对象和关系模型建立系统模型;6.设计系统架构;7.设计类实现;8.生成代码。

四、工具在面向对象分析和设计中,常用的工具有:1. UML(统一建模语言):一种建立系统模型的标准化语言,可以方便快速地进行面向对象分析和设计。

2. Rational Rose:一种基于UML的可视化建模工具,支持用例分析、状态图设计、类图和对象间关系设计。

3. Visual Paradigm for UML:可视化的UML工具,用以支持面向对象的分析和设计。

《软件工程》课件第10章 面向对象的Coad方法

《软件工程》课件第10章 面向对象的Coad方法
(2) 对象层:在分析范围内找出全部的对象。 (3) 结构层:分析类的分类结构和组装结构。 (4) 属性层:描述每个对象的状态特征。 (5) 服务层:描述每个对象所具有的操作。
第10章 面向对象的Coad方法
3. 设计模型 Coad方法中,面向对象设计模型在面向对象的分 析模型的5个层次上由4个组元构成,如图10.1所示。
第10章 面向对象的Coad方法
从根本上统一思维模式的办法是在系统开发各个 环节中,统一采用人类原有的思维组织模式。人类典 型的思维过程是由三部分来进行组织的,即从现实世 界中区分出特定的客体及其属性;对客体的整体和组 成部分加以区分;对不同种类的客体给出表示,在此 基础上加以区分。面向对象的分析方法就建立在这3个 来自人类自己思维组织模式之上,依照客观世界本来 的规律来开发应用系统。
第10章 面向对象的Coad方法
3. 继承 继承是面向对象设计的另一种基本设计原则。 继承用来表示类之间相似性的一种机制,它简化 了与已定义过的相似类的定义,描述了一般和具体化 关系,在类层次结构和类网络结构中明确地说明了共 同的属性和服务。 这个原则构成了显式表达共同性的重要技术和基 础,继承能使设计者一次确定共同的属性和服务,同 时将这些属性和服务扩展到或限制到具体的实例中, 继承也可用于显示表示共同性。
第10章 面向对象的Coad方法 图10.4 分类结构的符号表示
第10章 面向对象的Coad方法
3) 组装结构 组装结构也是3种系统组织方法之一,它是“has a” 结构。例如,台灯有一个电灯泡,则台灯和电灯泡就是 这种结构的例子。台灯是整体,而电灯泡则是台灯的组 成部分之一。组装结构的表示如图10.5所示。整体类放 在图的顶部,部分类放在图的下端,用线把它们连起来, 用三角形表示这是一个组装结构的形式。连线上的数字 和范围表示了整体所包含的部分的数目。

张海藩《软件工程导论》(第6版)(课后习题 第10章 面向对象分析)【圣才出品】

张海藩《软件工程导论》(第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章 面向对象分析

软件工程导论 第10章 面向对象分析

第10章面向对象分析不论采用哪种方法开发软件,分析的过程都是提取系统需求的过程。

分析工作主要包括3项内容,这就是理解、表达和验证。

首先,系统分析员通过与用户及领域专家的充分交流,力求完全理解用户需求和该应用领域中的关键性的背景知识,并用某种无二义性的方式把这种理解表达成文档资料。

分析过程得出的最重要的文档资料是软件需求规格说明(在面向对象分析中,主要由对象模型、动态模型和功能模型组成)。

由于问题复杂,而且人与人之间的交流带有随意性和非形式化的特点,上述理解过程通常不能一次就达到理想的效果。

因此,还必须进一步验证软件需求规格说明的正确性、完整性和有效性,如果发现了问题则进行修正。

显然,需求分析过程是系统分析员与用户及领域专家反复交流和多次修正的过程。

也就是说,理解和验证的过程通常交替进行,反复迭代,而且往往需要利用原型系统作为辅助工具。

面向对象分析(OOA)的关键是识别出问题域内的类与对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。

在用面向对象观点建立起的3种模型中,对象模型是最基本、最重要、最核心的。

10.1面向对象分析的基本过程10.1.1 概述面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。

通常,面向对象分析过程从分析陈述用户需求的文件开始。

可能由用户(包括出资开发该软件的业主代表及最终用户)单方面写出需求陈述,也可能由系统分析员配合用户,共同写出需求陈述。

当软件项目采用招标方式确定开发单位时,“标书”往往可以作为初步的需求陈述。

需求陈述通常是不完整、不准确的,而且往往是非正式的。

通过分析,可以发现和改正原始陈述中的二义性和不一致性,补充遗漏的内容,从而使需求陈述更完整、更准确。

因此,不应该认为需求陈述是一成不变的,而应该把它作为细化和完善实际需求的基础。

在分析需求陈述的过程中,系统分析员需要反复多次地与用户协商、讨论、交流信息,还应该通过调研了解现有的类似系统。

软件工程导论第1章(第4版)

 软件工程导论第1章(第4版)
普通高校本科计算机专业特色教材精选
软件工程导论 (第4版)
张海藩 编著
总目录
第1章 软件工程学概述 第8章 维护
第2章 可行性研究
第9章 面向对象方法学引论
第3章 需求分析
第10章 面向对象分析
第4章 形式化说明技术 第11章 面向对象设计
第5章 总体设计
第12章 面向对象实现
第6章 详细设计
第13章 软件项目管理
测试、综合测试又称为系统实现。 设计出实现目标系统的方案,设计程序的体系结构。 确定实现模块功能所需要的算法和数据结构; 设计出程序的详细规格说明; 用适当的程序设计语言写出正确的容易理解、容易维护的
程序模块并进行单元测试; 根据设计的软件结构,把各模块装配起来并进行测试; 通过对软件测试结果的分析预测软件的可靠性; 写出测试计划和详细测试方案并记录实际测试结果; 按照规格说明书的规定,由用户对目标系统进行验收。
第7章 实现
第1章 软件工程学概述
软件成为独立的商品 计算机应用的普及,促使人们对软件的品种、
数量、功能、质量等提出了越来越高的要求 在1970前,计算机硬件工程技术由于电子技术
的发展而建立 重视软件开发过程、方法、工具和环境的研
究—软件工程
1.1 软件危机 一.软件
1.软件的定义 软件是能够完成预定功能和性能的可执行的计算
2. 产生软件危机的原因
(1)软件开发个体化,采用了错误的方法和技术,无设计资 料留存; (2)软件规模的增长,使得软件的复杂度增加,软件的可靠 性随软件规模的增长而下降,质量保证越来越困难; (3)软件维护费用急剧上升。
据统计,软件维护费用大约占到软件总花费的2/3; (4)软件生产技术进步缓慢,是加剧软件危机的重要原因。

张海藩《软件工程导论》(第6版)(章节题库 第10章 面向对象分析)【圣才出品】

张海藩《软件工程导论》(第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.()对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板。

面向对象分析与设计

面向对象分析与设计

面向对象分析与设计一、引言面向对象分析与设计(Object-Oriented Analysis and Design,简称OOAD)是软件工程中的一种方法论,用于解决复杂系统的设计与开发问题。

本文将介绍面向对象分析与设计的概念、原则和过程,并结合实际案例说明其重要性和应用。

二、概念解析1. 面向对象分析(Object-Oriented Analysis,简称OOA):通过识别和描述系统所涉及的对象及其相互关系,以及对象的属性和行为,从而确定系统需求和问题领域的分析方法。

2. 面向对象设计(Object-Oriented Design,简称OOD):基于面向对象分析的结果,通过定义类、抽象数据类型、方法、接口等概念,设计出系统的结构和组织,以及类之间的关系和交互方式。

三、面向对象分析与设计的原则1. 单一职责原则(Single Responsibility Principle,简称SRP):一个类只负责一项职责,保证类的内聚性和高内聚性。

2. 开放封闭原则(Open-Closed Principle,简称OCP):系统中的类、模块等应该对拓展开放,对修改封闭,通过继承、接口等方式实现。

3. 里氏替换原则(Liskov Substitution Principle,简称LSP):所有引用基类的地方必须能透明地使用其子类的对象,即子类必须能够替换基类。

4. 依赖倒置原则(Dependency Inversion Principle,简称DIP):高层模块不应该依赖于底层模块,二者都应该依赖于抽象;抽象不应该依赖于具体,具体应该依赖于抽象。

5. 接口隔离原则(Interface Segregation Principle,简称ISP):客户端不应该依赖于它不需要的接口,接口应该进行细化拆分以适应不同的场景和客户端需求。

6. 迪米特法则(Law of Demeter,简称LoD):一个对象应该对其他对象有尽可能少的了解,减少耦合性,降低系统的复杂度。

软件工程导论课件第10章-面向对象的分析(第六版)(张海潘编著)

软件工程导论课件第10章-面向对象的分析(第六版)(张海潘编著)
抽取和整理用户需求并建立问题域精确模型的过程.
步骤: 理解----用户、分析员和领域专家 表达----需求规格说明书(对象模型、动态模型、功能模型)
验证----二义性,完善性
对象模型最基本、最重要、最核心。
6
第6页,共63页。
10.1 面向对象分析的基本过程
2、3个子模型与5个层次
3个子模型 在面向对象分析中,主要由对象模型、动态模型和功能模型
10
第10页,共63页。
10.2 需求陈述
10.2.2 实例:自动取款机(ATM)系统
ATM机系统问题描述
银行网络中包含柜员和 ATM,ATM 被共享中心所分享。
每家银行利用自己的计算机维护自己的账户并处理账户所属的交 易,这些交易包括存款和取款。
某些银行拥有自己的柜员站,柜员站直接和该银行的计算机通信, 柜员键入账户数据和交易数据。
29
第29页,共63页。
经过筛选之后,得到ATM系统中各个类的属性,如图所示: 图中还标出了一些限定词:“卡号”、“分行代码”、“账号”、“雇员
号”、“站号”
30
第30页,共63页。
10.3.5 识别继承关系
建立类间的继承是为了共享其公共性质/属性。
继承也对类按层次加以组织。 继承关系反映出一定深度的领域知识,需领域专家密
拥有 ATM
➢ 储户
拥有 帐户
➢ 分行计算机 维护 帐户
➢ ……
…… ……
2)需求陈述中隐含的关联
➢ 分行
组成 总行
➢ 分行
保管 帐户
➢ ……
…… ……
3)根据问题域知识得出的关联
➢ 现金兑换卡 访问 帐户
➢ 分行
雇用 柜员

软件工程面向对象分析技术

软件工程面向对象分析技术

的 个问题,才能最终把模型建立进来。




前一页
需求陈述


▪ 书写要点
内 容
▪ 例子
前一页
书写要点
需求陈述的内容包括:
需 求
• 问题范围

• 功能范围

• 性能需求
• 应用环境
• 假设条件等
前一页
书写要点


书写需求陈述时,应该慎重选用名 词、动词、形容词和同义词;不可将实
陈 际需求和设计混为一谈。
软件工程学系列
软件工程面向对象分析技术
面向对象分析
分析的过程都是通过理解、表达和验证,提 取系统需求的过程。
首先,系统分析员通过与用户及领域专家的 充分交流,力求完全理解用户需求和该应用领域 的背景知识,并用某种无二义性的方式把这种理
解表达成文档资料。分析过程得出的最重要的文 档资料是软件需求规格说明(在面向对象分析中, 主要由对象模型、动态模型和功能模型组成)。
型,取款额,账单,访问。
前一页
建 立 对 象 模 型
前一页
筛选的标准
冗余:
如果两个类表达了同样的信息,则保留 在此问题域中最富于描述力的名称。
例如:用非正式分析法得出了34个候选 的类,其中储户与用户,现金兑换卡与磁卡 及副本分别描述了相同的二类信息,因此, 应该去掉“用户”、“磁卡”、“副本”等 冗余的类,仅保留“储户”和“现金兑换卡” 这两个类 。
对 能促使分析员考虑问题域的边缘情况,有
象 助于发现那些尚未被发现的类—&—对象。

在分析确定关联的过程中,不必花过

多的精力去区分关联和聚集。事实上,聚 集不过是一组特殊的关联,是关联的一个

软件工程导论面向对象方法学

软件工程导论面向对象方法学

软件工程导论面向对象方法学
面向对象方法学是一种软件设计和开发的方法,它强调了把系统抽象为一个对象的集合,对象之间通过消息来通信和互动。

该方法着重于对象设计和软件设计的整体架构,注重模块化和重用性。

在该方法论中,软件系统起始于一个或多个对象的辨识,这些对象由系统模型中的实体或者概念抽象得到。

每个对象都拥有描述自身信息的属性和操作这些属性的行为。

对象的属性即它的状态,而行为则是要对状态进行操作的方法。

与传统的过程式编程相比,面向对象编程的主要区别在于其依赖数据和行为的组合。

面向对象方法学遵循几个原则,如封装、继承和多态性。

封装是指一个对象隐藏了其内部的状态并通过接口提供与外部交互的操作。

继承允许子类从父类继承其属性和行为,减少了代码的复制和粘贴。

多态性则允许不同的对象实现相同的操作方式,从而增加了代码的灵活性和重用性。

该方法具有以下优点:
1. 提高了复用性:由于设计时注重模块化,提高了组件的可重用性。

2. 提高了灵活性:对象编程提供了较大的灵活性,可以随时增加、修改或删除对象。

3. 提高了可维护性:由于对象间关系清晰明确,修改一个对象不会影响其他对象的运行,因而提高了系统的可维护性。

4. 提高了可扩展性:由于对象可以根据需要增加或删除,因而可以更方便地扩展系统。

总之,面向对象方法学是一种适用于大型软件设计和开发的方法,它强调了系统的模块化和重用性,并具有良好的灵活性、可维护性和可扩展性。

软件工程导论_07解析

软件工程导论_07解析
4. 请客户输入密码
钱转5入. 请同后客一置户银条再次件行输的入密不码同账户(称为银行内转账)或 转入6不. 如同主果银事两行件次密流的码/账其不一户他致事(则件回称到流为第4银步行,否间则转继续账)。系统管 理员78负.. 在打责账印系户存统库折中,的添用账加例新结户账束管户 理及业务报表的生成。
▪ 可见性 操作名(参数表):返回值类型{性质串}
▪ 参数名:用参U数M类L型类名图=描缺述省P值oint类
类图
类图中表示关系的图形符号
类图由类及类与类之间的关系构成。类间关系分为四 种:
关联( accociation ) 泛化(继承generalization ) 依赖( dependency ) 细化(实现implementation )
交互在静态视图上的映射,协 作的静态结构通过类注图释来内容描述。
NewClass
实现接口
NewInterfa ce
类图
类图是用来描述业务或软件系统的组成、结构和关 系。
定义类:由于类是构成类图的基础,所以,在构造类 图之前,首先要定义类,也就是将系统要处理的数据 抽象为类的属性,将处理数据的方法抽象为类的操作。
类图
命名:类名是一类对象的名字。
▪ 为类命名时应该遵守以下几条准则:使用标准术语、使 用具有确切含义的名词、必要时用名词短语作名字
描述类的属性:属性是该类对象的共同特征。
▪ 可见性 属性名:类型名=初值{性质串}
描述类的操作:操作是类所提供的服务,通俗地说, 操作就是定义了对象所能做的事情。
对象模型表示静态的、结构化的系统的“数据”性 质。
它是对模拟客观世界实体的对象以及对象彼此间的 关系的映射,描述了软件系统的静态结构。
建立对象模型的目标是从客观世界中提炼出对具体 应用有价值的概念。

计算机科学导论:第十章-软件工程

计算机科学导论:第十章-软件工程

十软件工程软件工程是建立在这样一个基础上,即利用合理的工程方法和原则来获得在真实机器上工作的可靠软件10.1 软件的生命周期软件最初由开发者小组开发。

通常,在它需要修改之前会使用一段时间。

由于软件中会发现错误、设计改变规则或公司本身发生变化,这些都导致需要经常修改软件。

为长久使用考虑软件应该被修改。

使用和修改,这两个步骤一直进行下去直到软件过时。

“过时”意味着因效率低下、语言过时、用户需求的重大变化或其他因素而导致软件失去它的有效性。

开发过程模型开发过程包括4个阶段:分析、设计、实现和测试最常见的两种开发过程模型1.瀑布模型: 开发过程只有一个方向的流动,这意味着前一个阶段不结束,后一个阶段不能开始优缺点–优点:在下一个阶段开始前每个阶段已经完成–缺点:如果过程中一部分有问题,必须检查整个过程1.增量模型(迭代模型): 软件的开发要经历一系列步骤。

开发者首先完成整个系统的一个简化版本,这个版本表示了整个系统,但不包括具体的细节10.2 分析阶段整个开发过程始于分析阶段,这个阶段生成规格说明文档,这个文档说了软件要做什么,而没有说明如何去做分析阶段的两种独立方法•面向过程分析:依赖于实现阶段使用过程编程语言•面向对象分析:依赖于实现阶段使用面向对象编程语言面向过程分析如果实现阶段使用过程式语言,那么面向过程分析(也称为结构化分析或经典分析)就是分析阶段使用的方法。

这种情况下的规格说明有使用多种建模工具•数据流图: 数据流图显示了系统中数据的流动。

•实体关系图: 用于数据库设计•状态图: 它通常用于当系统中的实体状态在响应事件时将会改变的情况下面向对象分析如果实现阶段使用面向对象语言,那么面向对象分析就是分析阶段使用的方法。

规格说明文档至少使用下列几个工具,•用例图: 给出了系统的用户视图:它显示了用户与系统间的交互。

4种组件–系统、用例、动作者和关系。

•系统(用矩形表示)执行功能。

•系统中的行动由用例(圆角的矩形)显示•动作者(线条人物)是使用系统的某人或某事。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

根据问题域知识得出的关联 (11)现金兑换卡访问账户。 (12)分行雇用柜员。
隐含的关联 (1)总行由各个分行组成。 (2)分行保管账户。 (3)总行拥有中央计算机。 (4)储户拥有现金兑换卡。 (5)中央计算机与分行通信
10.3.3 划分主题

在概念上把系统包含的内容分解成若干个范畴
第十章 面向对象分析
10.1 10.2 10.3 10.4 10.5 10.6 10.7 面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务 小结
10.1 面向对象分析的基本过程

面向对象分析 (1) 其关键是识别出问题域内的类与对象,并 分析它们相互间的关系,最终建立起3种模型。 (2)对象模型最基本、最重要、最核心。
ATM机系统问题描述
⑦ 一张现金兑换卡就是一张特制的磁卡,上面有分行代码。 一张磁卡可以访问储户的若干个账户,但仅属于一个储户 所有。但是同一张卡可以有多个副本,因此必须考虑同时 在若干台ATM上使用同样的现金兑换卡的可能性。 ⑧ 当用户将磁卡插入ATM后,ATM就与用户交互,以获取有 关这次事务的信息,并与中央计算机交换关于事务的信息 。ATM要求用户输入密码,ATM将密码和卡上的信息传给 中央计算机,请求中央计算机核对这些信息并处理这次事 务。中央计算机根据卡的分行代码委托分行验证用户密码 ,若密码正确,则ATM要求用户选择事务类型(取款,查 询等)。当用户选择取款时,ATM请求用户输入取款额。 最后ATM从现金口吐出现金,并且打印账单给用户。
10.3 建立对象模型

10.3.1找出候选类与对象


银行,自动取款机(ATM),系统,中央计算机 分行计算机,柜员终端,网络,总行,分行,软件, 成本,市,街道,营业厅,储蓄所,柜员,储户, 现金,支票,账户,事务,现金兑换卡,余额,磁 卡,分行代码,卡号,用户,副本,信息,密码, 类型,取款额,账单,访问。(共34个名词)
10.3.2 确定关联

3.进一步完善

正名、分解、补充、标明重数
ATM 系 统 原 始 的 类 图
直接提取动词短语得出的关联
(6)分行提供分行计算机和柜员终端。 (7)储户拥有账户。 (8)分行计算机维护账户。同2及13-2 (9)柜员终端与分行计算机通信。 (10)中央计算机确定事务与分行的对应关 系。 同(5)
从陈述中找出所有名词,作为类和对象的初步候选者
⑦ 一张现金兑换卡就是一张特制的磁卡,上面有分行代码,对应总 行下的一个分行。卡号确定这张卡可以访问哪些账户。一张磁卡 可以访问储户的若干个账户,但仅属于一个储户所有。但是同一 张卡可以有多个副本,因此必须考虑同时在若干台ATM上使用同 样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的 访问。 ⑧ 当用户将磁卡插入ATM后,ATM就与用户交互,以获取有关这次 事务的信息,并与中央计算机交换关于事务的信息。ATM要求用 户输入密码,ATM将密码和卡上的信息传给中央计算机,请求中 央计算机核对这些信息并处理这次事务。中央计算机根据卡的分 行代码委托分行验证用户密码,若密码正确,则ATM要求用户选 择事务类型(取款,查询等)。当用户选择取款时,ATM请求用 户输入取款额。最后ATM从现金口吐出现金,并且打印账单给用 户。
10.2 需求陈述

需求陈述是阐明“做什么”,而不是“怎样做” 问题范围 功能需求 性能需求 应用环境 假设条件
10.2 需求陈述 举例

ATM机系统问题描述
① 某银行拟开发一个自动取款机系统,它是由自动取款机 ATM、中央计算机、分行计算机及柜员终端组成的网络 系统。 ② 总行投资购买多台ATM和中央计算机, ATM分别设在 全市各主要街道上。 ③ 分行提供分行计算机和柜员终端。柜员终端设在分行营 业厅及分行下属的各个储蓄所内。该软件的开发成本由 各分行分摊。 ④ 储户可以用现金或支票向自己拥有的某个账户内存款、 取款或开新账户。通常一个储户拥有多个账户。
(13)柜员输入针对账户的事务。 分解为:(13-1)柜员输入事务。 (13-2)事务修改账户。 (14)分行计算机处理针对账户的事务。 分解为:(14-1)分行计算机处理事务。 (14-2)事务修改账户。 (15)ATM与中央计算机交换关于事务的信 息。 分解为:(15-1)ATM与中央计算机通信。 (15-2)在ATM机上输入事务。
10.1 面向对象分析的基本过程

3个子模型
对所解决问题的描述角度进行划分:
对象模型(静态结构) 动态模型(交互次序) 功能模型(数据变换)
3个子模型
10.1 面向对象分析的基本过程

5个层次
指读者理解大型、复杂模 型的一种机制,将一个大 型的、复杂的对象模型分 解成几个不同的概念范畴 (记忆的7+2原则)
ห้องสมุดไป่ตู้
注意:在分析阶段不应该过早地考虑怎样实现目标系统。
10.3.1找出候选类与对象

2.筛选出正确的类与对象(共11个)
ATM 中央计算机 分行计算机 柜员终端 总行 分行 柜员 储户
账户 事务(分为柜员事务和远程事务) 现金兑换卡
10.3.2 确定关联

1.初步确定关联
需求陈述中使用的描述性动词或动词 词组,通常表示关联关系。 (1)直接提取动词短语得出关联 (2)需求陈述中隐含的关联 (3)根据问题域知识得出的关联
类或对象 间的关系
复杂问题的对象模型的5个层次
五个层次像是对象模型的5张水平切片, 一层比一层显示出对象模型的更多细节。
10.1 面向对象分析的基本过程

面向对象分析的过程
寻找类与对象 识别结构 定义属性 建立动态模型 定义服务
面向对象分析不可能严格地按预定顺序进行,大型、复 杂系统的模型需要反复构造多遍才能建成。 先构造模型的子集,再到完全地理解整个问题,最终建 立整个模型。
隐含的关联 (1)总行由各个分行组成。 (2)分行保管账户。 (3)总行拥有中央计算机。 (4)储户拥有现金兑换卡。 (5)中央计算机与分行通信
根据问题域知识得出的关联 (11)现金兑换卡访问账户。 (12)分行雇用柜员。
(13 ( )柜员输入针对账户的事务。 6)分行提供分行计算机和柜员 分解为:( 终端。 13-1)柜员输入事务。 (13-2)事务修改账户。 (7)储户拥有账户。 (14 )分行计算机处理针对账户的事务。 ( 8)分行计算机维护账户。同2 分解为:( 及13-2 14-1)分行计算机处理事务。 (14-2)事务修改账户。 ( 9 )柜员终端与分行计算机通信。 (15)ATM与中央计算机交换关于事务的信息。 (10)中央计算机确定事务与分 分解为:( 15-1)ATM与中央计算机通信。 行的对应关系。 同( 5) (15-2)在ATM 机上输入事务。
10.3.2 确定关联
2.筛选
(1)根据下述标准删除候选关联: 已删去的类之间的关联。 与问题无关的或在实现阶段考虑的关联。 瞬时事件。 派生关联。 (2)三元关联:将三元关联改造成二元关联。
直接提取动词短语得出的关联 去掉已删去类的关联 ATM、中央计算机、分行计算机及柜员终端组成网络。 总行拥有多台ATM。 隐含的关联 去掉派 ATM设在主要街道上。 总行由各个分行组成。 生关联 分行保管账户。 分行提供分行计算机和柜员终端。 总行拥有中央计算机。 柜员终端设在分行营业厅及储蓄所内。 系统维护事务日志。 分行分摊软件开发成本。 系统提供必要的安全性。 储户拥有账户。 储户拥有现金兑换卡。 分行计算机处理针对账户的事务。 中央计算机与分行通信 分行计算机维护账户。 将三元关联改造成二元关联 柜员终端与分行计算机通信。 柜员输入针对账户的事务。 分行计算机处理针对账户的事务。 根据问题域知识得出的关联 ATM与中央计算机交换关于事务的信息。 分解为: 分行计算机处理事务。 现金兑换卡访问账户。 事务修改账户。 分行雇用柜员。 中央计算机确定事务与分行的对应关系。 柜员输入针对账户的事务。 ATM读现金兑换卡。 分解为:柜员输入事务。 去掉瞬时事件 ATM与用户交互。 事务修改账户。 ATM吐出现金。 ATM与中央计算机交换关于事务的信息。 去掉与问题无关的或应该 ATM打印账单。 分解为: ATM与中央计算机通信。 在ATM机上输入事务。 系统处理并发的访问。 在实现阶段考虑的关联
ATM机系统问题描述
⑤ 银行柜员使用柜员终端处理储户提交的储蓄事务, 柜员负责把储户提交的存款或取款事务输进柜员终 端。柜员终端与相应的分行计算机通信,分行计算 机具体处理针对某个账户的事务并且维护账户。
⑥ 拥有银行账户的储户有权申请领取现金兑换卡,使 用现金兑换卡可以通过ATM访问自己的账户。目前 仅限于用现金兑换卡在ATM上提取现金或查询自己 账户的信息。将来还可能要求使用ATM办理转账、 存款等事务。
10.2 需求陈述

自动取款机(ATM)系统
ATM系统
10.3 建立对象模型

10.3.1找出候选类与对象 1.找出候选的类与对象 寻找以下五类客观事物 可感知的物理实体 人或组织的角色 应该记忆的事件 两个或多个对象的相互作用,通常具有交 易或接触的性质 需要说明的概念
从陈述中找出所有名词,作为类和对象的初步候选者
① 某银行拟开发一个自动取款机系统,它是由自动取 款机ATM、中央计算机、分行计算机及柜员终端组 成的网络系统。 ② 总行投资购买多台ATM和中央计算机, ATM分别 设在全市各主要街道上。 ③ 分行提供分行计算机和柜员终端。柜员终端设在分 行营业厅及分行下属的各个储蓄所内。该软件的开 发成本由各分行分摊。 ④ 储户可以用现金或支票向自己拥有的某个账户内存 款、取款或开新账户。通常一个储户拥有多个账户 。
从中筛选出正确的类与对象) 2.筛选出正确的类与对象
筛选时主要依据下列标准,删除不正确或不必要的类 与对象!!!! (1)冗余 (储户、用户;现金兑换卡、磁卡和副本) (2)无关 (3)笼统 (4)属性 (5)操作
相关文档
最新文档