面向对象软件工程建模实例

合集下载

软件工程第8章-面向对象建模

软件工程第8章-面向对象建模
• 执行者的日常工作是否因为系统的新功能 (尤其是目前尚未自动化的功能)而被简化 或提高了效率?
复旦大学计算机科学技术学院 软件工程(第二版) 14
另外还有一些不是目前的执行者回答的问 题: • 系统需要哪些输入/输出?谁从系统获 取信息?谁为系统提供信息? • 与当前系统(可能是人工系统而不是自 动化系统)的实现有关的主要问题是什 么?
一. 定义系统 用况图中的矩形框代表系统,系统的用况 画在矩形框内,代表系统之外的执行者画 在矩形框外
复旦大学计算机科学技术学院
软件工程(第二版)
9
二. 确定执行者 ຫໍສະໝຸດ 执行者是指与系统交互的人或其他系统
• 执行者代表一种角色,而不是具体的某 个人 • 执行者可分成主执行者和副执行者:
主执行者使用系统的主要功能 例如,保险系统中主执行者处理保险的 注册和管理 副执行者处理系统的辅助功能 例如,管理数据库、通信、备份以及其 他管理等系统维护
• 谁需要从系统中得到对他们日常工作的支 持? • 谁需要维护、管理和维持系统的日常运行 (副执行者)? • 系统需要控制哪些硬件设备? • 系统需要与哪些其他系统交互? • 哪些人或哪些系统对系统产生的结果(值) 感兴趣?
复旦大学计算机科学技术学院 软件工程(第二版) 12
三. 确定用况 1. 用况的特征 • 用况总是被执行者启动的(initiated), 执行者必须直接或间接地指示系统去执 行用况 • 用况向执行者提供值,这些值必须是可 识别的 • 用况是完整的,一个用况必须是一个完 整的描述 用况是一个类型,而不是实例,用况的实 例称为场景(scenario)
对同一个项目,不同的开发者选取的用况数 是不一样的。例如一个10个人年规模的项目,有 人选取了20个用况,而在一个类似的项目中,有 人选用了100个用况 似乎20个太少,而100个太多,希望在项目 规模和用况数之间保持均衡

面向对象分析建模之自动售货机案例

面向对象分析建模之自动售货机案例
通过面向对象分析建模,将自动售货机系统的功能需 求和业务逻辑抽象为对象,建立对象之间的关系,为
后续的系统设计和开发提供基础。
PART 02
面向对象分析建模基础
对象与类的概念
对象
现实世界中事物的抽象,具有属性和 行为。

对象的抽象,定义了一组具有共同属 性和行为的对象。
封装与继承
封装:将对象的属性和行为封装在一起,通过 接口对外提供服务。
WENKU DESIGN
WENKU DESIGN
2023-2026
ONE
KEEP VIEW
面向对象分析建模之 自动售货机案例
WENKU DESIGN
WENKU DESIGN
WENKU
REPORTING
https://
CATALOGUE
目 录
• 引言 • 面向对象分析建模基础 • 自动售货机系统分析 • 自动售货机系统设计 • 自动售货机系统实现 • 总结与展望
定期备份系统数据,以防止数据丢失或损坏。
系统升级
根据需求对系统进行升级和维护,确保系统的稳定性和安全性。
PART 06
总结与展望
面向对象分析建模的优势
清晰地表示对象及其关系
通过使用面向对象的方法,我们可以清晰地定义和表示自动售货机中的各个对象及其之间的关系 ,如商品、货币、用户等。
提高可维护性和可扩展性
金融领域
面向对象分析建模可以应用于金融领 域中的账户管理、交易处理、风险管 理等模块,使得金融系统更加安全、 稳定和高效。
WENKU DESIGN
WENKU DESIGN
2023-2026
END
THANKS
感谢观看
KEEP VIEW

面向对象的软件建模与实现

面向对象的软件建模与实现

面向对象的软件建模与实现一、引言软件工程作为一项重要的工程学科,在近年来的发展中越来越受到人们的重视。

面向对象的软件建模与实现是软件工程中的一个重要内容,在软件开发中起着至关重要的作用。

本文将对面向对象的软件建模与实现进行介绍和分析。

二、面向对象的编程思想面向对象的编程思想是一种重要的编程范式,它以对象作为构建程序的基本单元,将数据与处理逻辑封装于对象之中,通过对象之间的相互作用来实现程序的功能。

面向对象的编程思想具有以下几个重要特征:1.封装性封装性是指将数据与操作绑定到一起,通过控制数据的访问来保证数据的安全性和一致性。

通过封装性,对象的内部状态对外部是不可见的,外部程序只能通过对象提供的公共接口来访问对象。

2.继承性继承性是指创建新类时可以借用已有类的属性和方法,使得代码的复用性更高。

通过继承性,子类可以继承父类的属性和方法,并且可以对父类的方法进行重写,使得代码更加灵活。

3.多态性多态性是指同一个接口可以有多种不同的实现方式,使得程序可以更加灵活。

通过多态性,不同的对象可以通过相同的方法名来调用不同的行为,从而实现不同的功能。

三、软件建模软件建模是软件工程中的一个重要环节,它是将软件系统的需求和功能转化为可执行的程序的过程。

在软件建模中,需求分析是非常关键的一步,它是确保软件系统满足用户需求的前提。

面向对象的软件建模主要包括以下几个方面:1.类图类图是面向对象软件建模的重要手段,它用于描述类之间的关系和属性。

类图包含类名、属性和方法,类之间的关系有继承、关联、聚合和组合等。

2.时序图时序图用于描述软件系统中对象之间的交互过程,它描述的是对象之间发生的操作序列和时序关系。

时序图包含对象间的交互消息、时间轴和对象状态等。

3.状态图状态图用于描述软件系统中对象的状态以及状态之间的转换关系。

状态图包含状态、转换和动作等。

四、软件实现面向对象的软件实现需要使用面向对象的编程语言,如Java、C++等。

软件工程实用案例 第7章 面向对象的设计

软件工程实用案例 第7章 面向对象的设计

性应该是最小的。因此位于实体包内的类应该相
对稳定,一般在设计上,实体类的包通常不依赖 其他的包。
Jsp包中存放所有和用户 交互的页面jsp页面,
Jsp
Html页面等等。
Servlet包中存放控制类,
接收用户的请求,负责页
面的跳转。
Servlet
Vo
Vo包中存放实体类,负
责数据的存储和数据的传
递。
(1)从界面层接收请求。 (2)根据业务规则处理请求。 (3)将SQL语句发送到数据访问层或者从数据访问层获
取数据。
(4)将处理结果传回用户界面
数据访问层:其功能主要是负责数据库的访问。简单地 说就是实现对数据表的Select(查询)、Insert(插 入)、Update(更新)、Delete(删除)等操作。如 果要加入ORM的元素,那么就会包括对象和数据表之 间的mapping,以及对象实体的持久化。
软件设计过程中的信息流如图7-1所示。
基基于于场场景的景元的素
用例文本 用例图
活动图
行行为为元元素素 状态图 时序图
基于类的元素 类图 分析包
CRC模型
构件设计 接口设计 体系结构设计 数据/类设计
软件设计的重要性,可以用一个词来表达——质量 设计过程中所做出的决策,将最终影响是否能构建稳 定的系统软件,更重要的是,会影响软件维护的难易 程度(是否易于修改更新)。
区分层次的目的即为了“高内聚低耦合”的思想。
需要注意的是,三层架构并不是按功能来分解软件系 统,而是按类和对象进行分层,将完成同一职责的类 和对象分为一层。
表示层:用于显示数据和接收用户输入的数据,为用户 提供一个人机交互式操作的界面。
业务逻辑层:主要是针对具体的问题的操作,也可以 理解成对数据层的操作,对数据业务逻辑处理,如果 说数据层是积木,那逻辑层就是对这些积木的搭建。

面向对象软件开发事例3

面向对象软件开发事例3

OOA模型—评审者的检查表(续)
OOA 模 型层次 服务 命令约定 语 法 需 求 风 格 约 定
对初始参数层的分层 无‖外部‖访问 消息规格说明 过程描述记号与 至少一个类的服务 风格 至少一个实例的服务 服务与封装属性的一 致性 继承的一致性 类服务的一致性 存储数据的一致性 实例关系的一致性 服务-消息的一致性


好处:评审过程已成为开发过程的一部分。所 生成的管理报告可以监控、跟踪工程进度,保 证每一模型成分的质量。
OOA模型—评审者的检查表
OOA 模 命令约定 型层次 对象-类 唯一性 应用领域 形式 主题 唯一性 应用领域 形式 结构 唯一性 应用领域 形式 语 法 需 求 包含规则 事件识别器 事件响应器 风 格 约 定 响应性 信息封装 单个事件识别器 重载 独立性 包含所有对象-类 整体-部分,类属类 泛化-特化,继承 整体-部分,实例对 实例 重复度和参与度 泛化-特化,类对类 继承一致 唯一性 对初始属性层的分 应用领域 层属性规格说明 形式 (续)

现有的所有检查表都无法保证语义正确性,即 是否建立了‚正确的模型‛。 对语义正确性的评审采用的策略类似于在开发 面向用户的文档时采用的策略,将模型的行为 对照用户描述的场景或用户事例,一一加以确 认。 需要有关人员共同讨论,不一定举行正式的评 审会议。



检查语义正确性从事件-响应模型和EROI图入 手,走查每一个场景或事例,一步一步验证事 件如何识别,相关响应如何产生。
MVC模型
模型 视图
控制 器

我们的OOD体系结构与MVC结构类似,但增 加了一个成分:数据库管理部分。

软件工程实用案例 第6章 面向对象的需求分析

软件工程实用案例 第6章  面向对象的需求分析
(3) 类可以派生出子类,子类继承父类全部特性(数据和 操作),又可以有自己的新特性。子类与父类形成类的 层次结构。
(4) 对象之间通过消息传递相互联系。类具有封装性, 其数据和操作等对外界是不可见的,外界只能通过消 息请求进行某些操作,提供所需的服务。
6.1 面向对象的基本概念
软件工程学家Codd和Yourdon认为:
bus306.showG(); }
//执行自有方法showG
类的继承是软件重用的一种形式,通过继承的属性和行为扩充原有类的功能, 节省了程序开发时间。
6.1 面向对象的基本概念
3. 多态性(Polymorphism) 多态性的概念可以被说成“一个方法,多种实现”。
1) 重写(Overriding)
消息的基本格式为:对象名.方法名(参数)
Katie.shaketail()
在面向对象中,所有的功能都是通过对象之间互发消 息来实现的,消息机制可以像搭积木一样,快速开发 出一个全新的系统。
6.1 面向对象的基本概念
6.1.2 封装、继承和多态性
1. 封装(Encapsulation)
封装是面向对象方法的一个重要原则,它把对象的属 性和服务结合成一个独立的系统单元,是一种信息隐 藏技术,将对象的外部特征(可用的方法)与内部实现 细节(属性、方法如何实现)分开,对象的外部特征对 其他对象来说是可访问的,而它的内部细节对其他对 象是隐蔽的。
运行结果:
public class shapeTest
半径为:2 面积为:12.57 底为:3 高为:4 面积为:6
{ public static void main(String args[])
{ Shape c=new Circle(2);

面向对象软件工程建模实例

面向对象软件工程建模实例
理员把书借回去
• 参与者:学生,图书管理员 • 频率:每天可能会有很多次。最繁忙的情况是,借书的
人非常多,按照现在的速度,大约每分钟完成一个人的结 束工作
• 前置条件:无 • 后置条件:修改所借出的图书的剩余数量 • 假设:借书者总是从图书馆找到书,然后才能拿书办理
借书手续,因此,总是有足够的书可以出借
ManageInterface
Manage
Student
整( 个省 系略 统掉 的属 静性 态和 分方 析法 模) 型
图书管理员
(from Use Case ...) View)
ReturnInterface
Return
BorrowInfo
BorrowInterface
Borrow
Book
SearchInterface 学生
面向对象建模实例
——图书管理系统 面向对象的软件工程,同传统的面向过程的 软件工程相比,在需求的获取、系统分析、设计 和实现方面都有着很大的区别。UML是OOA和 OOD的常用工具。使用UML来构建软件的面向对 象的软件工程的过程,就是一个对系统进行不断 精化的建模的过程。这些模型包括用例模型、分 析模型、设计模型,然后,我们需要使用具体的 计算机语言来建立系统的实现模型。
1:打开借书界面 2:输入借书信息 3:提交借书请求
4:Borrow()
5:检借书数目
6:有效 7:记录借书信息 8:修改图书数目 9:撤销预定 12:借书成功
显示书成功

可选操作流程:所借图书超出最大借书数量 1)学生将所借图书和借书证交给图书管理员 2)图书管理员将学生借书证号码和所借图书输入系 统 3)系统校对借书信息,比对该学生以往借书情况和 当前借书情况,发现已超出最大借书数量,则停 止当前交易,并且提示用户错误原因 4)图书管理员可以应学生的意见,减少借书数量, 并重新提交系统

UML业务建模实例分析四例

UML业务建模实例分析四例

UML业务建模实例分析在我国十年前ATM(自动取款机)还是一个很新鲜的事物,现在在城市的大街小巷随处可见。

我们在日常生活中也经常和ATM打交道。

本章我们将以简化的ATM系统为例将前面几章中学到的用例图、类图、顺序图、状态图、活动图及协作图知识运用到此例中。

参与者"银行储户"和ATM机。

简化后的ATM机仅有取款、存款及其余功能。

其余功能不做详细说明。

图5.1 自动取款机(ATM)系统用例图银行储户在ATM机上完成取款、存款及其他业务。

图5.2所示的银行系统类图和图3.5是类似的,只是将工作人员换成了ATM。

整个银行系统包括了帐户库、银行储户库及ATM系统。

许多单个的帐户组成了帐户库。

帐户具有帐户类型、帐户号、余额三个属性,均为private,其类型分别为char,int,double。

六个操作分别为setType、getType、getAccountNumbe、setAccountNumbe、caculateBalance、getBalance,除caculateBalance为protected其余均为public。

setType设置帐户类型,返回类型为void,参数类型为char,输入帐户类型。

getType获取帐户类型,返回类型为char,无参数。

setAccountNumbe设置帐户号,返回类型为void,参数类型为int,输入帐户号。

getAccountNumbe获取帐户号,返回类型为int,无参数。

caculateBalance计算余额,返回类型为void,参数为double,第一个参数为输入存取款数额,第二个参数为存款余额,既为输入也为输出。

getBalance获取帐户余额,返回类型为double,无参数。

许多银行储户组成了储户库。

ATM系统包含了许多ATM机。

银行储户及ATM机两个类包含哪些属性,哪些操作,它们的可见性及操作的返回类型、参数个数、参数类型从类图上都一目了然。

面向对象的软件设计实践

面向对象的软件设计实践

面向对象的软件设计实践随着现代信息技术的高速发展,软件开发已经成为了人们生活和工作中不可或缺的一部分。

而面向对象的软件设计方法已经成为了一种被广泛采用的设计方法,它可以有效地提高软件的可维护性、可扩展性和可重用性。

面向对象的软件设计方法以对象为中心,将实体的抽象化作为核心思想,利用类、继承、多态等概念,来描述系统中的各种实体对象及其相互关系。

采用这些概念,可以将系统中的复杂对象进行有效地分解,并将它们之间的关系以及行为特性进行描述,然后将这些描述用软件工具来实现。

面向对象的软件设计方法是一个非常重要的概念,也是软件开发工程学科中的基础概念。

下面,本文将从各个方面来介绍面向对象的软件设计实践。

一、面向对象的设计原则在进行面向对象的软件设计时,我们需要尊重一些基本原则。

这些原则可以提高我们软件设计的质量和效率。

以下是一些重要的面向对象的设计原则:1、单一职责原则(SRP)这一原则也叫“单一功能原则”。

它指出一个类应该只有一个单一的职责。

也就是说,一个类只应该有一个引起它变化的原因。

SRP原则可以帮助我们提高代码的可重用性和可维护性。

2、开闭原则(OCP)这一原则指出“开放-封闭”原则。

软件的设计应该是开放扩展的但是封闭修改的。

换句话说,对于那些高度可变的需求,我们应该保持系统的灵活性以使之适应这些变化,但是我们不应该去打破那些已经运作良好的模块。

3、接口隔离原则(ISP)这一原则指出,应该为每一个客户端定制一个接口,而不是为一个类定制一个庞大而臃肿的接口。

这个原则可以帮助我们提高系统的可扩展性和可维护性。

4、依赖倒置原则(DIP)这一原则指出,应该依赖于抽象而不是具体的实现。

通过DIP原则,我们可以减小不同模块之间的关联度,从而提高系统的模块化程度。

二、面向对象的设计模式面向对象的设计方法是建立在设计模式之上的,设计模式可以视为软件设计界的调配图谱。

在面向对象软件设计中,有很多模式可以提高我们的设计效率和质量。

实验六_面向对象建模new

实验六_面向对象建模new

软件工程实验六:面向对象建模1.提交期限和方法期限:第16周周二(2011-12-13)23:59 pm方法:由各班学习委员收集所有学生的实验报告,以电子档的形式提交给任课教师(可发邮箱:9867941@)。

2.实验任务任务一:Rational Rose基本操作以图书管理系统为例,在Rational Rose 中创建以下系统模型,熟悉Rational Rose的基本操作。

功能模型(用例图)借阅者用例图借阅者能够通过该系统进行如下活动:(1)查询书籍信息。

借阅者可以通过图书名称或ISBN/ISSN号查找图书的详细信息。

(2)登录自助系统。

借阅者能够根据自己图书证编号和相关密码登录自助机器,查询图书信息、个人信息和进行图书预定。

(3)查询借阅者信息。

每一个借阅者都可以通过自助机器在登录后查询自己的信息,但是不允许在未授权的情况下查询其他人信息。

(4)预定图书。

在登录自助机器后,借阅者可以预定相关书籍内容。

(5)借阅书籍。

借阅者可以通过图书管理员借阅相关书籍。

(6)归还书籍。

借阅者通过图书管理员归还书籍,如果未按时归还,需要交纳罚金。

对象模型/静态模型(类图)动态模型(序列图、交互图、状态图)1.借阅者查找图书序列图和交互图工作流程如下:(1)借阅者希望通过系统查询某本图书的信息。

(2)借阅者通过自助系统用户界面SearchBookWindow录入图书的ISBN/ISSN号请求查找图书信息。

(3)用户界面SearchBookWindow根据图书的ISBN/ISSN号将Book类实例化并请求图书信息。

(4)Book类实例化对象根据图书的ISBN/ISSN号加载图书信息并提供给用户界面SearchBookWindow。

(5)用户界面SearchBookWindow向读者显示图书信息。

2.借阅者查询个人信息序列图和交互图工作流程如下:(1)借阅者希望通过系统查询个人信息。

(2)借阅者通过自助系统用户登录界面LoginWindow录入图书证编号请求查找个人信息。

面向对象建模-用例图

面向对象建模-用例图

福建农林大学计算机与信息学院实验报告实验六、面向对象建模-用例图一.实验项目名称:面向对象建模-用例图二.实验目的和要求:目的:1.熟悉用例图的基本功能和使用方法。

2.掌握如何使用建模工具绘制用例图方法。

要求:(1)确定图书管理系统的用例。

(2)绘制图书管理系统的用例图。

(3)对图书管理系统的用例进行描述。

三.实验使用的主要仪器设备和软件:1.计算机一台。

2.Rational Rose 工具软件。

四.实验的基本理论和方法:在初始的用例图中,只表示参与者与用例之间的关系,即它们之间的通信关联。

然后应对用例图进行调整,描述参与者与参与者之间的泛化,用例与用例之间的包含,扩展和泛化关系。

利用这些关系来调整已有的用例模型,把一些公关的信息抽取出来重用,使得用例模型更易于维护。

五.实验内容与步骤:学院针对本校的图书馆使用情况,开发一个图书馆管理系统。

根据学院的图书管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程。

根据系统的需求分析,已经基本确定了图书管理系统涉及的总体信息。

现系统分析部指派您完成该项任务。

借阅者;图书馆管理系统需要从图书管理员获得相应的操作请求信息; 也需要从系统管理员进行通信以获得有关用户账号的相关信息; 图书馆管理系统与系统管理员进行通信,并为借阅者提供数据; 图书馆管理系统由维护人员负责维护 3 确定系统的用例(1)a.借阅者请求服务的用例图书籍预定借阅者b. 借阅者请求服务的书面用例(描述借阅者借书用例) 用例名称:借阅者借还书籍 执行者:借阅者目的:完成一次借阅者借还书籍的完整过程。

类型:主要的、基本的 c. 过程描述:“借阅者借书”用例的用例描述:(1) 借阅者身份验证;(2) 如果身份出错,则显示出错信息,返回步骤(1),如果正确则继续; (3) 借阅者查找书籍; (4) 登记借阅信息; (5) 结束。

分析:在图书管理系统中,借阅者首先要通过图书馆的身份验证后才能进入图书馆,而后到对应的书籍放置打点去查找所需数据,然后通过证件进行借阅请求,若请求通过,则借阅者借书成功。

软件工程 面向对象的技术

软件工程 面向对象的技术

1. Coda方法的OOA
类与对象层 属性层 服务层
类的边界 实例的边界 实例连接
属性 消息连接
服务
结构层
主题层
泛化与特化结构 主题
整体与部分结构
图4.10 分析过程的五个层次
在Coda方法中, 构 造 和 评 审 OOA 概 念模型的顺序由五 个层次组成:类与 对象、属性、服务、 结构和主题
这五个层次表 示分析的不同侧面。
继承是使用现存的定义作为基础,建立新定义的 技术。是父类和子类之间共享数据结构和方法的机制, 这是类之间的一种关系。
继承性分:
单重继承:一个子类只有一个父类。即子类只继承 一个父类的数据结构和方法。
多重继承:一个子类可有多个父类。继承多个父类 的数据结构和方法。
基类
现存类定义 父类(基类)
继承
图 4.3 继承性
良好的接口,子系统内的类相互协作。标识问题本身 的并发性,为子系统分配处理器。
系统内部
保险单 填写界面
保险单
客户
数据库界面 (abstract)
Oracle 界面 Sybasec界面
子系统的分解是关键,可以有分层和分块:
分层:将软件系统组织为层次结构,每层是一个子系 统。分层结构又分为封闭式和开放式。
类具有属性,用数据结构来描述类的属性, 类具有操作,它是对象的行为的抽象,操作实现 的过程称为方法(method) ,方法有方法名,方法体 和参数。
由于对象是类的实例,在进行分析和设计时, 通常把注意力集中在类上,而不是具体的对象上。
对象和类的描述
类和对象一般采用“名字”、“属性”和“运算”来描 述。
基本概念: 问题域(problem domain) — 被开发系统的应用领域。 系统责任(system responsibilities) — 所开发的系统应 具备的职能。

软件工程+仓储物资管理系统+面向对象建模

软件工程+仓储物资管理系统+面向对象建模

软件工程仓储物资管理系统面向对象建模淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目: 仓储物资管理系统班级:学号: 姓名:《软件工程》实验报告 - 1 -1、实验目的与要求(1)熟悉Visio软件或Power Designer软件或Rational Rose软件的UML建模工具;(2)按照OOA、OOD方法建立实验项目的对象模型(类图)、动态模型(状态图)、功能模型(用例图)。

2、实验内容1(需求陈述按XX公司的要求,现要建立仓储物资管理系统,用来管理该公司日常的出入库的活动.要求系统有员工的登陆与注销管理,对员工、供应商、客户、仓库、物品的基本信息进行管理。

其中,一个员工可以管理多个仓库,但一个仓库只能由一个员工管理。

一个供应商可以提供多种物品,一种物品也可以由多个供应商进行供应。

一种物品可以放在多个仓库中,一个仓库也可以存放多种物品.一个客户可以购买多种物品,一种物品可以被多个客户购买。

对于入库操作,每一笔入库都要进行登计,为方便日后的查询操作,每笔入库有且只有一个唯一的入库编号.对于销售(出库),也要进行登计,每笔销售有且只有一个唯一的销售编号。

对于销售退货,也要进行相应的处理。

同时,系统还要具有当日、当月的销售统计功能。

2(建立对象模型2(1 找出类与对象由上述的需求陈述可初步得到如下的类与对象:员工、供应商、物品、仓库、客户2(2 找出关联1(一个供应商可以提供多种物品,一种物品也可以由多个供应商进行供应.2(一种物品可以放在多个仓库中,一个仓库也可以存放多种物品。

3(一个客户可以购买多种物品,一种物品可以被多个客户购买。

4(一个员工可以管理多个仓库,但一个仓库只能由一个员工管理。

2(3 原始类图《软件工程》实验报告— 2 —3(建立动态模型3(1系统的事件跟踪图3(2系统的状态图《软件工程》实验报告— 3 -4(建立功能模型4(1系统的用例图4(2系统的功能级数据流图《软件工程》实验报告 - 4 -5(确定对象与类的属性与服务(1)类客户 KH(2)类货物 HW(3)类仓库 CK(4)类员工 YG(5)类供应商 GYS(6)类入库 RK(7)类销售 XS(8)类退货 TH(8)类统计 TG《软件工程》实验报告 - 7 - 3、结果分析与实验体会通过本次实验,我掌握了如何按照OOA、OOD方法建立实验项目的对象模型,巩固了老师课堂上所讲的内容。

面向对象软件开发事例1

面向对象软件开发事例1


建立OOA模型的任务

形式地说明我们所面对的应用问题,最终成为 软件系统基本构成的对象,还有系统所必须遵 从的,由应用环境所决定的规则和约束。 明确地规定构成系统的对象如何协同合作,完 成指定的功能。这种协同在模型中是以一组消 息连接来表示的,它们承担了各个对象之间的 通信。

构造OOA模型的层次
什么是类和实例?

把具有相同特征和行为的对象归在一起就形成 了类(class) 。
李杰 属性 李杰 男 广东 软件 1988.4 9#楼129室 服务 看书 实验 吃饭 睡觉 王辉 属性 王辉 男 湖南 计算机控制 1989.1 9#楼320室 服务 看书 实验 吃饭 睡觉 杨芳 属性 杨芳 女 北京 系统结构 1989.12 5#楼418室 服务 看书 实验 吃饭 睡觉 学生 属性 姓名 性别 籍贯 专业 出生年月 住址 服务 看书 实验 吃饭 睡觉
易增加新类 只须描述不同部分

怎样建立一个好的继承层次

类可以从父类继承,父类又可以从它的父类 继承,形成多层次的继承结构。
当增加一个新类时,不一定在最低层,可能 需要插在中间层,这样可能需要调整原来的 层次结构。

汽车
大轿车
运货车
救火车
起重车
现要建立一个新类起重车。它的 底盘、发动机、轮胎、驱动装置 等都在既存类汽车中。关系如右 图所示。新类是既存类的特殊情 形。这时直接让起重车类作为汽 车类的子类即可。



同一概念在不同应用领域中抽象出来的基本构 造块是不同的。
一个典型的软件开发生存期
t
工作产品与里程碑
需求定义 模型
分析模型
设计模型
实现模型

面向对象建模实验报告

面向对象建模实验报告

实验项目:软件工程—面向对象建模姓名: 学号:实验地点:实验时间:1 实验目的与要求:通过实验,使学生理解需求分析的重要性,掌握面向对象的分析技术(OOA)。

要求学生根据分析结果,使用类图建立系统的对象模型,并建立用例模型描述系统功能。

2 实验工具和环境Word / Visio / PowerDesigner3 实验内容和步骤问题的描述:在医院ICU病房里,将病症监视器安置在每个病床,对病人进行监护。

监视器将病人的组合病症信号实时地传送到中央监护系统进行分析处理。

在中心值班室里,值班护士使用中央监护系统对病人的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。

根据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。

(1)通过名词识别和系统实体识别等方法分析确定系统的十二个类,补充并标识类的名称、属性和操作。

(2)分析类之间的关系,使用类图建立系统对象模型。

(3)分析上述目标系统,通过下列问题识别并确定系统执行者(角色)。

●谁使用系统主要功能?答:值班护士、医生、病人●谁需要系统的支持以完成日常工作任务?答:值班护士、医生●系统需要应付(或处理)哪些硬件设备?答:监护器、报警系统、网络、打印机●系统需要和哪些外部系统交互?答:标准的病症信号库、病历库●谁(或什么)对系统运行产生的结果感兴趣?答:值班护士、医生根据上述分析,最终确定与系统直接相关的执行者为:值班护士、医生、病人、标准病症信号库(4)回答下列问题,并识别用例。

●与系统实现有关的主要问题是什么?●系统需要哪些输入/输出?这些输入/输出从何而来?到哪儿去?答:输入:病症信号、标准病症信号输出:报警信号(中央监护系统)、病情报告(医生要求或者病症信号异常时病情报告管理自动打印)●执行者需要系统提供哪些功能?答:医生和值班护士:查看病情报告和病历并且进行打印●执行者是否需要对系统中的信息进行读、创建、修改、删除或者存储?答:需要因此,得到的系统用例有:.中央监护、病症监护、提供标准信号、病历管理、病情报告管理(5)确定用例之间的关系(<<include>>、<<extend>>),画出该系统的高层用例图。

面向对象程序设计实践案例

面向对象程序设计实践案例

面向对象程序设计实践案例面向对象程序设计(Object-Oriented Programming,简称OOP)是一种将现实世界中的事物抽象成对象,通过对象之间的交互来实现程序设计的方法。

它具有封装、继承和多态三大特性,可以使程序结构更加清晰,代码更加可复用。

在实践中,面向对象程序设计可以应用于各种领域,例如软件开发、游戏开发、嵌入式系统等。

以下将通过一个简单的实例来说明面向对象程序设计的具体应用。

案例描述:假设我们正在开发一个图书管理系统,系统需要实现对图书馆中书籍的管理和借阅功能。

在这个系统中,书籍被抽象为一个对象,它具有书名、作者、ISBN码等属性。

系统还需要记录每本书的借阅状态,包括是否被借出以及借出时间等。

为了实现上述功能,我们可以设计一个Book类,该类作为图书的模板,包含书名、作者、ISBN码等属性,并提供相应的getter和setter方法。

另外,为了记录借阅状态,可以在Book类中添加一个borrowed属性,表示该书是否被借出。

当该书被借出时,还需要记录借阅者和借出时间。

在Book类中,可以定义借书和还书的方法。

借书方法会将borrowed属性设置为True,并记录借阅者和借出时间。

还书方法则将borrowed属性设置为False,并更新借出时间。

除了Book类,我们还可以设计一个Library类,表示整个图书馆。

Library类中可以包含一个Book对象的列表,记录所有的书籍。

通过Library类的方法,可以实现对图书的添加、删除和搜索功能。

例如,添加书籍的方法可以接收Book对象作为参数,并将其添加到书籍列表中。

搜索书籍的方法可以根据书名或作者进行查找,并返回符合条件的书籍列表。

通过上述的面向对象设计,我们可以很方便地实现图书管理系统的功能。

每个对象都具有独立的属性和方法,通过对象之间的交互来实现系统的各项功能。

例如,某位读者想要借阅一本书,可以通过调用Book对象的借书方法来完成操作。

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

这些对象就是所谓的Entity(实体类)。
然后我们需要识别为了完成系统业务逻辑而需要的 业务逻辑对象,以及同用户进行交互的界面类, 即 Control(控制类)和View(边界类)。在分析阶段, 这些对象通常都按照比较自然的方式来组织,例如,为 了完成一个业务功能,我们通常需要一个控制类和一个 边界类,控制类执行业务逻辑,边界类同客户进行交 互。
关于这个图书馆系统,基本的需求比较简单, 就是允许学生可以在图书馆借阅和归还图书,另 外,也可以通过网络或者图书馆的终端来查阅和预 订书。当然,图书馆管理员也可以对图书进行管 理。
一、用例模型——系统需求的获取
用例模型定义系统做什么,是用来获取系统需求 的有效手段。用例模型由“角色”和“用例”组成。我 们在构建一个用例的时候,通常要做的第一件事情 是识别角色,或者说,参与者。然后我们需要识别 系统为参与者提供的服务,或者说,参与者的行 为,也就是用例。最后,我们确定角色和用例之间 的关系。
面向对象建模实例
——图书管理系统 面向对象的软件工程,同传统的面向过程的 软件工程相比,在需求的获取、系统分析、设计 和实现方面都有着很大的区别。UML是OOA和 OOD的常用工具。使用UML来构建软件的面向对 象的软件工程的过程,就是一个对系统进行不断 精化的建模的过程。这些模型包括用例模型、分 析模型、设计模型,然后,我们需要使用具体的 计算机语言来建立系统的实现模型。
在这个图书馆系统中,我们可以识别出的角色有 学生和图书管理员。整个用例模型包含的用例有: 借书、还书、查阅图书、预订图书,以及图书维 护。用例模型可以用用例图表示如下:
预定图书 学生 查阅图书
借书
还书
图书管理员
管理图书
确定有效用例的关键是,检查用例是否包含了一个 完整的功能。用例不能定的过细,不能把一个完整的功 能的一个部分作为一个用例,也不能在一个用例中包含 过多的功能 。例如,用户的登录。学生在预定图书的时 候,可能会需要首先登录系统,这是系统的一个功能。 但是,这个功能只是预定图书这个完整的功能中的一个 步骤,或者说一个子功能,就不适于做成一个用例。另 一方面,借书和还书,都是相对完整的功能,如果把这 两个用例合并成一个类似于“处理图书”的用例,显然 是 不能明确的表达用例需要表达的含义的。
首先来分析借书这个用例 在这个用例中,首先可以识别出一些直接的对象, 包括图书管理员(BookAdmin)、学生(Student)、图书 (Book),然后,稍作分析,我们会发现我们需要一个 实体对象来记录图书的借还信息(BorrowInfo)。最后, 我们发现,在借书的过程中,我们会使用到预定图书的 信息(SubscribrInfo)。 然后,发现我们需要一个借书的控制类(Borrow)来 执行借书的动作,以及一个用户界面(BorrowInterface) 来接受用户的输入。

基本操作流程:借书成功 1)学生将所借图书和借书证交给图书管理员 2)图书管理员将学生借书证号码和所借图书输入 系统 3)系统校对借书信息,比对该学生以往借书情况 和当前借书情况,如果不存在不允许借 书的情 况,则记录借书交易的信息,并且修改相应的 馆藏图书的数量信息 4)如果该学生已经预订了这本图书,则撤销该预 定 5)报告交易成功
Student
BorrowInfo 图书管理员
(from Use Case ...) View)
BorrowInterface
Borrow SubscribrInfo
借书类图
Book
在分析模型中,我们也需要识别出类的一些属性和 方法。同样的,为了避免过早的陷入细节中,以及适应 将来在设计时类的变化,在分析模型中,我们一般只把 一些主要的属性和方法标识出来。 例如,对于Student类,我们只需要Name和CardNo (借书证号)属性,对于Book,我们只需要BookID、 AllCount(书的总数)、CurrentCount(当前数量)等 属性。现在,为类图添加上述属性,就可以得到下面的 结果:
ManageInterface
Manage
Student
整( 个省 系略 统掉 的属 静性 态和 分方 析法 模) 型
图书管理员
(from Use Case ...) View)
ReturnInterface
Return
BorrowInfo
BorrowInterface
Borrow
Book
SearchInterface 学生
(1)描述用例
需要了解的是,使用UML进行面向对象的系统建 模,并非只是意味着画UML图形,对UML图的文档说 明是同样重要的。在描述用例时,我们可以用文字来描 述,也可以用其他图形来描述,例如,顺序图或者活动 图等等。 下面,我们对借书这个用例来做描述:
• 名称:借书 • 说明:学生在图书馆挑选好需要的图书后,通过图书管
(1)静态模型的建立
进行分析建模的第一步,通常是识别对象,然后提 取出类。对象识别的结果,就是我们所需要的静态模 型,通常表现为类图。
首先识别出实体对象,这些对象通常来说是比较明 显的,例如系统中的角色,系统需要处理的资料,如本 系统中需要处理的图书资料等;有些实体对象需要稍微 分析一下才能得到,例如,在本系统中,为了记录图书 借还的信息,我们可能需要一个对象来专门记录这一信 息。
用活动图进行描述
显示借书界面
输入借书证号 码和所借图书
验证借书数量
修改借书信息
Hale Waihona Puke 借 书 活 动 图借书数量超出
通知用户
借书数量未超出
修改馆藏图书数量
记录本次交易信息
已预定 未预定
撤销预定
借书成功
二、分析模型
用例模型是从最终用户的角度来看待问题,而分析 模型是从开发者的角度来描述问题。用例模型的主要工 作是描述现实世界的业务流程,而很少会涉及系统的概 念。分析,则是从系统的角度来来看待软件应该为用户 提供的服务。 分析仍然停留在“做什么”的层次。
理员把书借回去
• 参与者:学生,图书管理员 • 频率:每天可能会有很多次。最繁忙的情况是,借书的
人非常多,按照现在的速度,大约每分钟完成一个人的结 束工作
• 前置条件:无 • 后置条件:修改所借出的图书的剩余数量 • 假设:借书者总是从图书馆找到书,然后才能拿书办理
借书手续,因此,总是有足够的书可以出借
(from Use Case ...) View)
Search
SubscribeInterface
Subscribe
SubscribrInfo
(2)动态模型的建立
在面向对象的系统中,业务流程表现为对象之间的 交互。我们有了上面分析的得到的对象后,就可以来描 述他们是怎么进行交互和协作的了。在UML中,我们 可以使用顺序图、活动图或者状态图来建模这些动态的 过程。 一借书的Use Case为例
1:打开借书界面 2:输入借书信息 3:提交借书请求
4:Borrow()
5:检借书数目
6:有效 7:记录借书信息 8:修改图书数目 9:撤销预定 12:借书成功
显示借书成功

可选操作流程:所借图书超出最大借书数量 1)学生将所借图书和借书证交给图书管理员 2)图书管理员将学生借书证号码和所借图书输入系 统 3)系统校对借书信息,比对该学生以往借书情况和 当前借书情况,发现已超出最大借书数量,则停 止当前交易,并且提示用户错误原因 4)图书管理员可以应学生的意见,减少借书数量, 并重新提交系统
在借书这个用例中,有两个事件流:借书成功(正 常事件流)和所借图书超出最大借书数量(非正常事件 流)。我们首先来做“借书成功”这个事件流,下面是 这 个事件流的顺序图:
顶层包::管理员
:BorroeInterface
:Borrow
:Student
:Book
:BorrowInfo :SubscribrInfo
相关文档
最新文档