面向对象的系统分析与 UML
--KTV 点歌管理系统
摘要:面向对象的系统分析是运用面向对象的方法对系统进行分析。利用面向对
象的信息建模概念,如实体、关系、属性等,同时运用封装、继承、多态等机制
来构造模拟现实系统。OOA 是在一个系统的开发过程中进行了系统业务调查以
后,按照面向对象的思想来分析问题。并且通过 UML 建立各种模型如用例图、
类图、和顺序图等,来可视化的表现它们的关系。
关键字:OOA 对象 属性 操作 UML
1. 引言
类图
随着越来越多的人去 KTV 唱歌,KTV 点歌管理系统也日趋完善。为了满
足广大消费者的需求,进一步完善点歌管理系统,我们开发了这一项具有实
用性、高效性、功能划分细致及较高的灵活性和可扩充性的 KTV 点歌系统。
本文详细论述了系统总体设计思想,功能模块设计等,给出了自动点歌
系统一般流程。该系统主要包括:按拼音点歌、按分类点歌、按歌星点歌等
三大点歌模块。
2. 面向对象的系统分析
在创建一个应用软件系统前,必须进行充分的分析,即明确所要解决的
问题是什么。例如,开发一个图书信息管理系统软件,这个系统要实现什么
样的功能?这就是一个分析问题。 设计强调的是问题的逻辑解决方案,即系
统怎样才能达到要求。例如,图书信息管理系统如何实现远程查询?设计最终
可以用硬件或软件方法来实现。 面向对象的分析与设计的精髓是按照对象的
观点考虑问题域和逻辑解决方案。分析旨在发现并描述问题域中的对象。例
如,在图书管理系统中,这些对象包括图书、借阅者、图书管理员等。 设计
的重点在于定义逻辑软件对象,这些对象(具有属性和方法)最终能够用面向
对象程序设计语言实现,即编写它们的类。
2.1 什么是 OOA
分析阶段所做的主要工作是理解问题和需求构模,将现实世界中的问题
映射到问题域。在该 阶段,要明确用户提出了哪些功能要求,为完成这些要求,
系统应有哪些构件,采用什么样的结构,并写出详细的需求规约。OOA 中引入
了许多面向对象的概念和原则,如,对象、属性、服务 、继承、封装等,并利
用这些概念和原则来分析、认识和理解客观世界,将客观世界中的实体抽 象
为问题域中的对象,即问题对象,分析客观世界中问题的结构,明确为完成系
统功能,对象间 应具有的联系和相互作用。
2.2 OOA 的主要优点
(1)加强了对问题域和系统责任的理解;
(2)改进与分析有关的各类人员之间的交流;
(3)对需求的变化具有较强的适应性;
(4)支持软件复用。
(5)贯穿软件生命周期全过程的一致性。
(6)实用性;
(7)有利于用户参与。
3. UML
3.1 UML 的概念
UML 是统一建模语言(UML 是 Unified Modeling Language 的缩写)是用来
对软件密集系统进行可视化建模的一种语言。UML 为面向对象开发系统的产品
进行说明、可视化、和编制文档的一种标准语言。 统一建模语言 (UML)是非专
利的第三代建模和规约语言。 UML 是在开发阶段,说明,可视化,构建和书写
一个面向对象软件密集系统的制品的开放方法。UML 展现了一系列最佳工程实
践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次
已经被验证有效。 UML 可以贯穿软件开发周期中的每一个阶段。被 OMG 采纳
作为业界的标准。UML 最适于数据建模,业务建模,对象建模,组件建模。UML
作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什
么程序语言和算法实现。当模型建立之后,模型可以被 UML 工具转化成指定的
程序语言代码。 IBM 的 Rational Rose 和 MS 的 Visio 都是 UML 工具。
3.2 UML 提供的基本模型
UML 统一建模语言,是一种建模语言而不是建模方法。通过 UML 可以进
行各种模型的开发,有类图、用况图、包图、顺序图、活动图、对象图、状态图、
组合结构图、通信图、交互概览图、定时图、构件图和部署图。
(1) 用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系
(2) 类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象,类
图用来描述系统中各种类之间的静态结构)
(3) 对象图:是类图的一种实例化图(对象图是对类图的一种实例化)
(4) 包图:是一种分组机制。在 UML1.1 版本中,包图不再看作一种独立的
模型图)
(5) 状态图:描述一类对象具有的所有可能的状态及其转移关系(它展示对象
所具有的所有可能的状态以及特定事件发生时状态的转移情况)
(6) 时序图/顺序图:展示对象之间的一种动态协作关系(一组对象组成,随时
间推移对象之间交换消息的过程,突出时间关系)
(7) 合作图:从另一个角度展示对象之间的动态协作关系(对象间动态协作关
系,突出消息收发关系)
(8) 活动图:展示系统中各种活动的执行流程(各种活动的执行顺序、执行流
程)
OOA 是一种分析方法,UML 是分析方法的描述语言。
3.3 本书的建模机制
建立需求模型
建立基本模型
建立辅助模型
4. KTV 点歌管理系统需求及分工
4.1 KTV 点歌管理系统需求
1. 从顾客使用点歌系统的角度挖掘需求,点歌系统应当具备多种途径的歌曲查
询点播功能,给予方便性与习惯。
2. 该系统针对实际情况,在对人们的需求情况的基础上来进行系统设计和开发。
它的系统功能如下:
管理各种歌曲:暂停、播放,还有对歌曲的添加和删除,对歌手、歌曲等信
息的管理。
3.本点歌系统的总体任务就是点歌,辅助和管理歌曲,可以按不同的方式选择
想要点选的歌曲:如按拼音点歌、按分类点歌、按歌星点歌等。查询到歌曲
后添加到播放列表,然后会按顺序依次播放。
4.2 小组人员分工
经过对系统的分析,得知该系统主要有两大功能模块:
1. 管理员对歌曲的管理
(1) 添加歌曲信息:主要功能是添加歌曲名、选择该歌曲的演唱者、歌曲类
型
(2) 删除歌曲信息:主要的功能是选择要删除的歌曲
2.KTV 点歌功能
(1) 拼音点歌:按歌曲首字母进行查找
(2) 分类点歌:按歌曲的总类惊醒点歌,有经典老歌、流行歌曲等
(3) 歌星点歌:选择按歌星点歌后,显示的该歌星的歌曲信息
5. 需求模型的建立
6. 基本模型的建立
6.1 类
类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供
了统一的抽象描述,它由一个类名、一组属性和一组操作构成。
一般包含 3 个组成部分。第一个是类名;第二个是属性(attributes);第三
个是该类提供的方法( 类的性质可以放在第四部分;如果类中含有内部类,则
会出现第五个组成部分)。类名部分是不能省略的,其他组成部分可以省略。
6.2 系统中的类的设计
1.管理员类(Administrator)
2.歌曲类(Song)
3.点歌接口(Requesting song)
4.顾客类(Customer)
6.3 类图分析
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类
的内部结构以及它们与其他类的关系等。类图不显示暂时性信息。
类图(Class diagram)由许多(静态)说明性的模型元素(例如类、包和它们
之间的关系,这些元素和它们的内容互相连接)组成。类图可以组织在(并且属
于)包中,仅显示特定包中的相关内容。
类图(Class diagram)是最常用的 UML 图,显示出类、接口以及它们之间的静
态结构和关系;它用于描述系统的结构化设计。
类图(Class diagram)最基本的元素是类或者接口。
类图技术是面向对象方法的核心技术,应用非常广泛,其中,类、对象,以
及它们之间的关系是最基本的建模元素。类模型和对象模型揭示了系统的结构。
分类可以有效地使复杂问题简化。建立类模型的过程,是把现实世界中与问题有
关的各种对象以及相互关系进行抽象和分类的过程。
定义类
1.管理员类(Administrator)管理员是本系统中权限最高的级别,直接进入后台,
可对系统后台进行编辑,比如对歌曲的导入、删去、修改。
类名:管理员类(Administrator)
属性:姓名(AdminName)管理员的名字
密码 (Password)管理员密码
操作:管理后台数据,对歌曲进行导入、删除,歌曲信息的修改。
2. 歌曲类:(Song)是系统中重要的对象。
类名:歌曲类:(Song)
属性:歌名(SongName)每首歌的歌名
演唱者(Singer)歌曲的演唱者
类型(SongStyle)歌曲的曲风,如流星、摇滚等
操作:查询歌曲歌名、演唱者、类型。
3.点歌接口:(RequestingSong)由于在系统前台,歌曲的信息由点歌来体现,
并且点歌为顾客提供了选择,是对一组紧凑的公共特征和职责的声明。使歌曲和
顾客轻松的连接起来。
类名:点歌接口(RequestingSong)
操作:歌手点歌
拼音点歌
歌名点歌
4. 顾客类:(Customer)顾客在此系统的权限有限,只能对数据库中的歌曲进行
查询访问,以及在前台进行各种点歌操作,如歌手点歌、拼音点歌、歌名点歌,
删除已选歌曲,还能控制歌曲播放状态,如播放、暂停、切歌、增大音量、减小
音量、优先播放的操作。
类名:顾客类(Customer)
属性:姓名(Name)
年龄(Age)
操作:歌手点歌
拼音点歌
歌名点歌
删除已选歌曲
播放
暂停
切歌
增大音量
减小音量
优先播放
类之间关系的分析
1.管理员类与歌曲类:管理员是此系统最高级别,管理员可以对数据库中的
所以歌曲进行编辑、管理,每首歌曲都有对应的管理者,亦管理员对歌曲负责且
是一对多。所以,管理员类与歌曲类是关联关系。
2.歌曲类和顾客类:顾客在此系统中,权限有限,只能对歌曲进行查询,每
位顾客可选一首或多首歌曲,也可能不选歌曲,而每首歌曲可能不会被顾客选到,
也可能会被任意一位或多位顾客选到,因此,两者是多对多的关联关系。
3.点歌接口与歌曲类、顾客类的关系:
点歌为歌曲提供了一个接口,我们说它实现了这个接口;
同时顾客使用了点歌借口,我们说它依赖这个接口
因此,点歌是“歌曲”类的供接口,又是“顾客”类的需接口。
“歌曲”类实现了这个接口,“顾客”类依赖这个接口。
6.4 类图
详见 KTV 点歌管理系统-.mdl