4面向对象的软件设计方法
面向对象的软件架构设计分析

面向对象的软件架构设计分析在软件开发中,架构设计是非常重要的一环。
在软件架构设计中,面向对象设计模式是一个非常重要的工具。
它可以帮助开发人员设计出可重用、可扩展且易于维护的软件。
本文将介绍面向对象的软件架构设计,并分析它的优势和不足之处。
一、面向对象的架构设计面向对象的架构设计是一种基于面向对象编程的软件构建方式。
它基于封装、继承和多态等概念,将一个问题领域划分为一系列对象,每个对象具有一组特定的属性和行为,它们之间通过消息传递来进行协作。
通过定义良好的接口,对象可以轻松地在应用程序中相互通信。
面向对象的软件架构设计的核心思想是将复杂的问题划分为一系列简单的对象,并将这些对象组合成一个完整的系统。
它可以分离用户界面、业务逻辑和数据存储等方面,从而提高代码的重用性和可维护性。
此外,面向对象的架构设计还可以提高程序的灵活性和可扩展性,允许开发人员轻松地添加新的功能和组件。
二、面向对象的设计模式设计模式是一组为特定上下文提供简单而优化的解决方案的实践经验。
它们可以帮助开发人员解决常见的软件设计问题,并提高代码质量和可维护性。
面向对象的设计模式是为面向对象编程设计的一组标准解决方案。
常见的面向对象的设计模式包括单例模式、工厂模式、观察者模式、装饰者模式和策略模式等。
每个模式都有其独特的特点和用途。
例如,单例模式可以确保类只有一个实例,并提供全局访问机制。
工厂模式可以将对象的创建与其使用分离,并提供灵活的创建方案。
观察者模式可以在对象之间建立一对多的依赖关系,当对象的状态发生改变时通知观察者。
面向对象的设计模式可以帮助开发人员减少代码耦合,提高系统的稳定性和可维护性。
当需要重构和优化代码时,设计模式可以帮助开发人员快速地修改系统的结构和组件,从而提高系统的可扩展性和灵活性。
三、优点和不足面向对象的软件架构设计的优点是显而易见的。
它可以提高软件的重用性、可维护性和可扩展性。
它还可以提高代码质量、提高开发速度和降低项目风险。
面向对象设计技术的使用教程

面向对象设计技术的使用教程面向对象设计技术是一种常用的软件设计方法,它能够提高代码的可重用性、可维护性和可扩展性。
本文将详细介绍面向对象设计的原则、概念和方法,以及如何在实际项目中应用这些技术。
一、面向对象设计的原则1. 单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个修改的原因。
2. 开放封闭原则(Open Close Principle,OCP):一个类应该对扩展开放,对修改封闭。
3. 里氏代换原则(Liskov Substitution Principle,LSP):子类对象能够替换父类对象。
4. 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖低层模块,二者都应该依赖抽象。
5. 接口隔离原则(Interface Segregation Principle,ISP):客户端不应该强迫依赖它不需要的接口。
6. 迪米特法则(Law of Demeter,LoD):一个对象对其他对象的了解应该尽可能少。
二、面向对象设计的概念1. 类和对象:类是一种抽象的概念,用来描述一类具有相同属性和行为的对象。
对象是类的一个实例。
2. 封装:将数据和方法封装到一个类中,并对外提供接口进行访问。
3. 继承:通过继承机制,子类可以继承父类的属性和方法,并能够添加、修改或重写特定的属性和方法。
4. 多态:同一种行为具有多种不同的实现方式或表现形式,提高了代码的灵活性和可扩展性。
5. 抽象:通过抽象类和接口实现对类的更高层次的抽象,可以使代码更加模块化和可维护。
三、面向对象设计的方法1. 定义类的属性和方法:首先确定类的名称和作用,然后根据单一职责原则定义类的属性和方法。
2. 进行类之间的关系分析:根据具体项目的需求,确定类与类之间的关系,包括继承、关联、聚合和组合等。
3. 设计类的接口:根据接口隔离原则,定义一个类应该提供的接口,以便与其他类进行交互。
面向对象的软件开发与设计方法

面向对象的软件开发与设计方法随着科技的不断发展,软件已经成为了人们日常生活不可或缺的一部分。
随着软件业的迅速发展,面向对象的软件开发和设计方法被普遍采用。
这种方法从过去的面向过程的开发方法转变成了更加人性化、灵活和可维护的面向对象的软件开发方法。
一、面向对象的软件开发方法的基本概念面向对象的软件开发方法主要基于三个基本概念:封装、继承和多态。
封装是指将属性和方法包装在一起,形成一个独立的单元,保护数据的访问,使得实现细节对客户端是隐藏的。
继承是指从已有的类派生出一个新的类并扩展它的功能,使得父类的特征和行为在子类中能够被复用和扩展。
多态是指允许不同的对象对同一个消息作出不同的响应,使得程序可扩展性更好。
这三个基本概念为面向对象的软件开发方法奠定了基础。
二、面向对象的软件开发方法的优势与面向过程的开发方法相比,面向对象的软件开发方法具有很大的优势。
首先,它使得程序的结构更加模块化,易于维护。
因为程序按照类的形式进行划分,使得代码的复用变得更加方便,同时也可以减少代码的重复,从而提高了程序的可重用性。
其次,它提高了程序的可扩展性。
因为面向对象的软件开发方法将功能划分为不同的类,因此,如果需要新增或修改某个功能,只需要修改自己的类,而不会影响到其他模块。
最后,它增加了程序的安全性。
因为它具有封装的特征,将数据和方法进行封装,防止了数据的被外部访问和修改。
三、面向对象的软件开发方法的基本原则面向对象的软件开发方法有以下的基本原则:开闭原则、单一职责原则、替换原则、依赖倒置原则和接口隔离原则。
开闭原则是指开放扩展,关闭修改。
单一职责原则是指每个类只负责一个功能。
替换原则是指子类可以替换父类,而系统仍然可以正常运行。
依赖倒置原则是指面向接口编程。
接口隔离原则是指不应该强迫客户端依赖于它不需要的接口。
这些原则是面向对象的软件开发方法的基础,按照这些原则进行开发可以保证软件的质量和可维护性。
四、面向对象的软件设计方法的流程面向对象的软件设计方法的流程主要包括以下步骤:需求分析、设计模型、建模、实现和测试。
Chap4-面向对象的软件设计方法

国防科技大学计算机学院
27
用户界面的层次和结构
层次:
屏幕 窗口
用户界面的结构可以由UML类图描述,屏 幕和窗口用类进行表示,并给出它们之间 的关系。 用构造型<<screen>>和<<window>>分别 表示屏幕和窗口。 而屏幕之间的切换过程可以用UML状态图 表示。
国防科技大学计算机学院
国防科技大学计算机学院
25
内容
4.1 基于UML的分析与设计过程
4.2 用例分析与设计
4.3 概念模型和顶层架构设计
4.4 用户界面设计
4.5 数据模型设计 4.6 设计精化 4.7 类设计 4.8 部署模型设计
国防科技大学计算机学院
26
用户界面设计的内容
用户界面包含两方面内容:
首先要完整地包括用户在使用软件过程中所需的各 种元素,例如窗口、菜单、按钮、输入文本框、选 择列表、提示信息等,缺乏这些元素中的某些将会 导致软件功能无法被用户正常完成; 其次要求具有良好的外观和布局,例如背景颜色、 按钮等元素的位置、选择列表中条目的顺序等,这 些因素的不足可能不会影响软件功能的正确使用, 但会给用户带来不便、迷惑甚至反感。
14
细化后ATM用例图
ATM
System Startup InvalidPIN Operator System shutdown
<<extend>>
Session Customer
<<include>>
Printer
Transaction Inquiry Card Reader Transfer Withdrawal Deposit Cash Acceptor Cash Dispenser Bank System
软件设计与体系结构 第四章 面向对象的软件设计方法

用户界面设计
用户界面是对于用户的直接表现,直接影响到用
户对软件易用性、友好性的感觉。用户界面包含 两方面内容:
首先要完整地包括用户在使用软件过程中所需的各种 元素,例如窗口、菜单、按钮、输入文本框、选择列 表、提示信息等,缺乏这些元素中的某些将会导致软 件功能无法被用户正常完成; 其次要求具有良好的外观和布局,例如背景颜色、按 钮等元素的位置、选择列表中条目的顺序等,这些因 素的不足可能不会影响软件功能的正确使用,但会给 用户带来不便、迷惑甚至反感。
ATM系统在提供以上服务的过程中,必须满足以下要求 一个顾客可以在最终确认前放弃一项交易 ATM在执行交易过程中将与银行系统进行通信,对是否 允许交易进行验证 ATM为每次成功的交易提供一个打印回执
ATM需要维护一个内部日志,对每次交易进行记录
用例的分析与设计
确定用例—确定场景
从业务需求出发获取参与者(Actor)和场景,对场景进行汇总、分 类、抽象,形成用例 场景是用户与系统之间进行交互的一组具体的动作 获取场景 目标软件有哪些参与者
用例的分析与设计
Startup用例的顺序图描述
用例的分析与设计
Session用例的顺序图描述
用例的分析与设计
Transaction用例的顺序图描述
用例的分析与设计
Withdrawal用例的顺序图描述
概念模型和顶层架构设计
概念模型的设计 标识领域概念模型 分析类:直接服务于用户功能性需求的概念层面的类, 与具体技术没有关系 顶层架构的设计
件进行交互的功能与特性进行封装,使目标软件系统的其余部分
尽右能独立于环境软件。
概念模型和顶层架构设计
ATM系统的概念模型——分析模型图
面向对象的系统分析与设计方法

面向对象的系统分析与设计方法在信息化时代,各种软件系统已经深入到人们日常生活的方方面面。
如何将软件设计得更加高效、安全、易用成为设计人员不断探索的问题。
其中,面向对象的系统分析与设计方法被广泛应用于软件领域,成为当前软件研发中的流行趋势。
一、面向对象思想面向对象思想是一种软件分析、设计和编程思路。
它将现实世界中的实体抽象为对象,通过对象之间的交互和信息处理来实现系统的功能。
对象的行为和属性都与现实世界中的事物相对应,因此可以更加符合人类的思维方式,易于理解和维护。
同时,面向对象的设计还具有可重用性好、扩展性强、易维护等优点,因此被广泛应用于软件开发中。
二、面向对象的系统分析与设计面向对象的系统分析与设计方法采用面向对象思想,以系统的对象为中心,对系统所涉及到的实体进行抽象分析和设计。
其主要步骤包括系统需求分析、面向对象的分析和面向对象的设计。
1.系统需求分析系统需求分析是整个软件开发的关键,需要通过对用户需求、客户需求和用户交互接口需求等方面进行深入分析和调研,明确软件的功能、性能、可靠性和安全性等需求要求,为后续的设计和编码打下基础。
2.面向对象的分析面向对象的分析将系统需求分析的结果转化为面向对象的模型,具体包括对象、类、关系、约束条件等方面的分析。
其中,最重要的是通过实体之间的关系和交互来建立对象模型,理清对象之间的依赖关系和功能流程,同时将软件的功能划分为一个个模块,为后续的设计提供可靠的基础。
3.面向对象的设计面向对象的设计是指基于面向对象的分析结果,对系统进行更加详细的设计。
在设计过程中,需要运用各种通用的面向对象设计模式,如单例模式、工厂模式、观察者模式等,从而提高系统的可维护性、可扩展性和可重用性,同时还需考虑系统安全性、性能等方面的设计。
三、面向对象设计方法的优势1.提高系统的可维护性面向对象设计方法可以将系统中的实体进行模块化的设计,每个模块都可以自行管理本身功能的维护和更新,同时多个模块之间的协调和合作也容易实现,从而提高了系统的可维护性。
面向对象的软件系统建模与设计方法研究

面向对象的软件系统建模与设计方法研究面向对象的软件系统建模与设计方法是一种在软件开发中广泛应用的方法,它能够更好地满足现代软件系统的复杂性和可扩展性需求。
本文将探讨面向对象的软件系统建模与设计方法的研究现状、原则和实践。
一、研究现状面向对象的软件系统建模与设计方法已经成为当前软件开发中的主流方法之一。
其核心理念是将系统的各个模块抽象成对象,通过对象之间的消息传递和交互来实现系统功能。
在建模和设计过程中,常用的方法有UML(统一建模语言)和设计模式。
UML是一种用于建模和描述软件系统的标准化语言。
它提供了统一的语法和符号,能够清晰地表达软件系统的结构、行为和交互关系。
在UML中,主要包括用例图、类图、时序图和活动图等。
不同的图形表示了系统的不同方面,方便开发人员进行系统分析、设计和实现。
设计模式是一种在软件设计过程中经过验证和重复使用的解决问题的方法。
它提供了一种高效的设计思路和经验,让开发人员能够更好地应对实际开发中遇到的各种问题。
常见的设计模式有工厂模式、单例模式和观察者模式等。
这些设计模式能够提高系统的灵活性、扩展性和可维护性。
二、设计原则在面向对象的软件系统建模与设计方法中,有一些重要的设计原则,可以帮助开发人员更好地进行系统设计。
1. 单一职责原则(SRP):一个类应该只有一个变化的原因。
这个原则要求将一个类的功能划分清楚,确保每个类只负责一项特定的职责,这样可以提高可维护性和可测试性。
2. 开闭原则(OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。
这个原则要求在设计中要尽量使用抽象和接口,让系统能够方便地扩展新功能,同时对已有功能的修改做到最小化。
3. 里氏替换原则(LSP):子类必须能够替换掉父类,并且不改变程序的正确性。
这个原则要求在继承关系中,子类要能够完全替代父类,保持系统的一致性和可靠性。
4. 接口隔离原则(ISP):客户端不应该强制依赖它不需要的接口。
这个原则要求在设计接口时,要根据实际需求进行细粒度的划分,避免接口的冗余和臃肿。
软件设计与体系结构-第四章-面向对象的软件设计方法课件

l 概念模型与顶层架构设计:
l 在用户需求和相关的业务领域中,概念及概念关系的抽取
l 用户界面设计:
l 设计每个界面中的所有界面元素,确定初步的界面布局,定义用户界面动作对软件系统中设计元
素的要求
l 数据模型的设计:
l 确定设计模型中需要持久保存的类的对象及其属性,定义持久持久存储数据之间的组织方式,并
.
26
概念模型和顶层架构设计
l 边界类: 其职责包括: l 边界控制: l 包括定义数据的格式及内容转换,输出结果的呈现,软件运行过程中界
面的变化与切换等。 l 外部接口: l 实现目标软件系统与外部系统或外部设备之间的信息交流和互操作,主
要关注跨越目标软件系统边界的通信协议 l 环境隔离: l 对目标软件系统与操作系统、数据库管理系统、中间件等环境软件进行
事件流中步骤(1)
l (3)如果账户余额小于取款金额,则显示信息“账户余额不足,请重新输入”,并返回主事件流
中步骤(1)
l (4)顾客在确认取款金额前右以选择取消交易。
l 后置条件: 如果取款成功,系统从账户余额中减去相应数额,并返回等待状态;如果顾客取消交易,
则返回等待状态
.
19
用例的分析与设计
体技术没有关系 l 顶层架构的设计 l 目的: 为后续的分析和设计活动建立一种结构和划分
.
24
概念模型和顶层架构设计
l 关键概念来源: l 为建立以UML类图表示的领域概念模型,首先必须标识关键概念。关键
概念的来源包括: l (1)业务需求描述、用例说明; l (2)业务领域中的相关规范、标准、术语定义。 l (3)反映业务领域知识的既往经验。 l 业务需求描述 l 业务领域中的相关规范、标准、述评呼定义 l 反映业务领域知识的既往经验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
精化后的Withdrawal顺序图
详细研究类之间的连接关系 精确判定关系:依赖、关联、聚合、构成
精化类之间的关系
确定连接的方向吸参与连接的类对象之间的数量对应关系 根据软件复用的要求及软件结构简洁化、清晰化的要求,优化类之间的关系 连接关系,主要是构筑消息通道。面向对象的程序设计机制提供4种手段: 引用全局对象:obj1直接引用 作为全局对象的obj2 通过参数传递: obj2作为obj1的某项操作的实际参数 引用局部对象:在obj1的 某项操作的 数数体中创建或获取obj2 通过类的成员变量: obj2作为 obj1所属类的司性的取值 利用继承关系精化设计模型 寻找类之间的公共属性和操作,引进父类捕获公共性,简化模型 将类划分为集合,针对每个集合特性设计一个父类,让集合中的所有类成为该父 类的子类 可能需要将多重继承化解为间重继承 对业务逻辑、界面、数据模型等不同的设计模型进行整理和融合 合交相似类 消除设计模型之间的冗余 保证一致性
屏幕结构类图
屏幕变化的状态图
InputPIN屏幕结构类图
CustomConsole UserInterface包的结构
CIardInserted UserInterface
4.5数据模型设计
数据模型设计包括数据结构设计数据库设计、数据文件设计等,主要关注 持久存储数据的设计。 持久数据模型设计主要包括以下几个步骤 (1)确定设计模型中需要持久保存的类的对象及属性,其中实体类是 主要关注对象 (2)确定持久存储数据之间的组织方式 (3)确定数据模型中的操作行为,例如数据完整性验证、数据读取、 存储与更新、数据求和、求数据平均值等 (4)进一步优化持久数据操作的性能,例如使用数据索引、存储过程、 触发器等方式 类对应于关系数据模型中的表格,对象对应于记录,属性对应 于表格中的 字段或者列 派生属性不持久存储 关键字字段
ATM系统在提供以上服务的过程中,必须满足以下要求 一个顾客可以在最终确认前放弃一项交易 ATM在执行交易过程中将与银行系统进行通信,对是否 允许交易进行验证 ATM为每次成功的交易提供一个打印回执 ATM需要维护一个内部日志,对每次交易进行记录
确定用例—确定场景
从业务需求出发获取参与者(Actor)和场景,对场景进行汇 总、分类、抽象,形成用例 场景是用户与系统之间进行交互的一组具体的动作 获取场景 目标软件有哪些参与者 参与者希望系统执行的任务有哪些? 参与者希望获得哪些信息?这些信息由谁生成?由谁修改? 参与者城要通知系统哪些事件?系统响应这些事件时会表现 出哪些外部行为? 系统将通告参与者哪些事件?
精化过程中新增加的类
精化交互模型
交互图进行精化时,需要考虑以下内容 软件架构的组成类被迫调整之后对交互模型产生的影响,新 出现的对象可拆分后的对象如何参与交互过程,在其中起到 什么样的作用 对象在交互过程中的消息传递需要哪些参数和返回值 交互过程是否需要细化,例如如增加必要的消息,或对局部 引用 一个更加具体的交互图
概念模型设计
关键概念来源 业务需求描述 业务领域中的相关规范、标准、述评呼定义 反映业务领域知识的既往经验 分析类: (1)边界类:负责目标软件系统与参与者之间的交互。 (2)控制类:完成用例任务的责任承担者,负责协调、控制其他类 共同完成用例规定的功能 或行为。 (3)实体类:负责保存目标软件系统中具有持久意义的信息项并向 其他类提供读、写信息项内容的必要操作接口,一般不涉及业务逻 辑。
确定用例—确认参与者和责任 确认参与者和责任
不同的参与者 系统管理员、程序员、会计、 系统管理员、程序员、会计、出纳员 与系统通信的其他系统 不同的责任 系统配置、程序设计、财务管理、 系统配置、程序设计、财务管理、现金管理 分析参与者的工作: 分析参与者的工作:使用案例 各种使用过程、 各种使用过程、步骤
4.2 用例分析与设计
确定用例 生成用例图 用例设计描述
银行ATM自动柜员机需求简述
提供以下服务: 取款。顾客用银行卡从对应的账户中支取现金,现金必须是 存款。顾客可以把现金存入银行卡对应的账户中 转账。顾客可以把一个银行卡对应的赂中的款项转账到另一个银行 账户中 查询。顾客能够查询一个银行卡对应的账户中的余额 该ATM系统包括以下组成部分: 读卡器 交互的控制台 存款的插槽 打印机 启动和关闭ATM系统的开关键盘 ATM系统与银行服务通过特定的网络连接进行通信
用例的确认
围绕系统的一个工作过程, 围绕系统的一个工作过程,确认参与交互过程的参与者 如:系统管理员、域控制器(计算机) 系统管理员、域控制器(计算机) 用系列动作步骤描述交互过程 参与者的动作、 参与者的动作、系统的执行步骤 要点 忽略内部细节, 忽略内部细节,仅考虑外部因素
ATM案例——参与者
边界类:其职责包括: 边界控制: 包括定义数据的格式及内容转换,输出结果的呈现,软件运行过 程中界面的变化与切换等。 外部接口: 实现目标软件系统与外部系统或外部设备之间的信息交流和互操 作,主要关注跨越目标软件系统边界的通信协议 环境隔离: 对目标软件系统与操作系统、数据库管理系统、中间件等环境软 件进行交互的功能与特性进行封装,使目标软件系统的其余部分 尽右能独立于环境软件。
构件图
用例分析与设计: 需求获取,分析和描述的过程,它将利用例及用例图表示需求。 概念模型与顶层架构设计: 在用户需求和相关的业务领域中,概念及概念关系的抽取 用户界面设计: 设计每个界面中的所有界面元素,确定初步的界面布局,定义用户界面动作对软 件系统中设计元素的要求 数据模型的设计: 确定设计模型中需要持久保存的类的对象及其属性,定义持久持久存储数据之间 的组织方式,并明确数据模型中的操作行为。 设计的精化: 对上面的逻辑、界面、数据模型等不同侧重点的设计结果进行整理,合并相似的 类,保证各模型之间的一到处性,并消除冗余,为了提高整全后模型的质量,可 能需要引入继承、聚集等关系对类设计进行组织和精化,并可能需要引入新的关 键类和控制类。交互图等设计模型进行精华,以更具体地描述场景交互过程。
Startup用例的顺序图描述
Session用例的顺序图描述
Traction用例的顺序图描述
Withdrawal用例的顺序图描述
4.3 概念模型和顶层架构
概念模型的设计 标识领域概念模型 分析类:直接服务于用户功能性需求的概念层面的类, 与具体技术没有关系 顶层架构的设计 目的:为后续的分析和设计活动建立一种结构和划分
顾客(Customer) 操作管理员(Operator) 银行服务员(Bank System) 读卡器(Card Reader) 存款器(Cash Acceptor) 打印机(Printer)
ATM系统—用例
取款(Withdrawal) 存款(Deposit) 转账(Transfer) 查询余额(Inquiry) 开机(System Startup) 关机(System Shutdown)
用类图进行关系数据库表格设计
Receipt
4.6设计精化
精化任务: 精化软件架构 调整软件构成的类 精化交互模型 精化类之间关系
精化软件架构
目的:寻找理想的包划分方案,包中类数量适中,边界清晰的,自然,耦合 度低 降低耦合度 拆分成子包 调整类的摆放位置,移到另外的包 合并包或合并后重新划分 原则 避免包间的循环依赖 位于较低层次的通用包不应当依赖于较高层次中的专用包 在层次结构中,较高层次的包可以依赖较低层次的包,但应尽量在相邻的 层次间发生 如果针对某些子系统专门划分了接口包和实现包,那么,其他与该子系统 相关的包吸能依赖于接口包,不能依赖于实现包
类设计: 对类进行细化设计,精化类之间的关系以及类的操作和属性,使 它们能够直接提交给软件构造阶段进行编码实现。对重要控制类, 采用状态图描述类的实例在生存周期中对外部事件的响应笔状态 变化过程,并可以采用活动图对重要的方法过程开算法进行描述。 部署模型设计: 对软件最终的元素结构以及运行的具体环境进行描述,包括刻画 最终可能生成的运行文件、库文件或软件包以及这些元素之间的 静态关系,软件最终运行的物理平台拓朴结构,描述其中的物理 节点以及它们之间的通信和交互方式,并说明软件包、运行文件, 子系统等元素在物理节点上的部署方案
用例建模步骤 用例建模步骤 建模
1) 描述各种使用案例 描述交互过程的动作序列 描述交互过程的动作序列 模拟系统工作的交互过程 2)确认动作 ) 检查使用案例, 检查使用案例,引入并描述动作 覆盖所有可能发生的动作 覆盖所有可能发生的动作
用例建模步骤 用例建模步骤 建模
3) 跟踪执行过程 跟踪执行 执行过程 为每个使用案例制作序列图 为每个使用案例制作序列图 使用案例制作 描述对象之间的消息传送过程 描述对象之间的消息传送过程 消息 4) 构造状态转移图 为每个对象构造的状态转移图 每个对象构造的状态转移图 构造 反映对象接受和发送的消息 反映对象接受和发送的消息 考虑所有使用案例中的所有消息 考虑所有使用案例中的所有消息 使用案例中的所有
ATM系统初步用例图
用例名称:Withdrawal
用例设计描述
参与者:Cudtomer,kBankSystem,Card Reader,Cash Dispenser,Printer 前置条件:顾客已插入银行卡,密码验证正确,顾客按下“取款”按钮 主事件流: (1)顾客输入取款金额,并确认。 (2)系统认可取款金额,并发送指令给取款器 (3)取款器把相应金额的现金送出 (4)打印机打印回执 辅事件流: (1)如果取款金额不是100的整数倍,则显示信息“输入金额必须是100的整数倍, 请重新输入”,并返回主事件流中步骤(1) (2)如果取款金额超过2000元,则显示信息“输入金额不能超2000元,请重新输 入”,并返回主事件流中步骤(1) (3)如果账户余额小于取款金额,则显示信息“账户余额不足,请重新输入”, 并返回主事件流中步骤(1) (4)顾客在确认取款金额前右以选择取消交易。 后置条件:如果取款成功,系统从账户余额中减去相应数额,并返回等待状态;如果 顾客取消交易,则返回等待状态