大学时曾经开过《UML和模式应用》的课程,当时没有引起足够的重视,只为了应付考试并没有真正掌握书中的内容;现在工作中经常要用到UML及设计模式,决定每周花点时间重新对书中的内容进行学习;本文章是对面向对象分析和设计内容进行简单的记录;
1:什么是分析和设计
分析:强调的是对问题和需求的调查研究,而不是解决方案。
设计:强调的是满足需求的概念上的解决方案(在软件方面和硬件方面),而不是其实现;
有益的分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)
2:什么是面向对象的分析和设计
面向对象分析:强调的是在问题领域内发现和描述对象(或概念)。例如航班信息系统里包括飞机(Plane)、航班(Flight)、飞行员(Pilot)等概念;
面向对象设计:强调的是定义软件对象以及它们如何协作以实现需求。对应对象的属性及方法;
3:简单示例:(骰子游戏)
示例的内容:软件模拟游戏者掷两个骰子,如果总点数是7则赢得游戏,否则为输
此时我们要将其为分四个步骤进行:
(1)定义用例的:用例不是面向对象的制品,而只是对情节的记录;此处的用例场景为:游戏者请求掷骰子。系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输
(2)定义领域模型:在领域模型中展示重要的领域概念和对象,领域模型并不是对软件对象的描述,它使真实世界领域中的概念和想象可视化;因此它也被称为概念对象模型;
(3)定义交互图:面向对象设计关注软件对象的定义--它们的职责和协作;顺序图是描述协作的常见表示法,它展示出软件对象之间的消息流,和由消息引起的方法调用。
(4)定义设计类图:设计类图有效地表示类的静态视图,这样可以描述类的属性和方法;与领域模型表示的是真实世界的类,设计类图表示的是软件类。下图实例的部分类
感谢您的阅读,附件是本人关于此文UML的Visio源文件,只为练习自个画图的能力,若有错误或者不足欢迎指正;[附件下载]