第1章 面向对象分析和设计

来源:互联网 发布:淘宝关键词挖掘 编辑:程序博客网 时间:2024/06/06 01:15

本文为《UML和模式应用(原书第3版)》读书笔记


为对象分配职责

  在OO开发中,最重要的就是为对象分配职责。因为分配职责是必须进行的一项工作,并且它对软件构件的健壮性、可维护性和可重用性具有重要的影响。
  相比起在OOA/D中的其他技能,职责的分配是一项难以掌握又至关重要的技能,即使在实际项目中,开发人员没有时间进行其他建模活动,而只能完成仓促编码的开发过程,分配职责这项工作却也是必不可少的。

面向对象分析与面向对象设计

面向对象分析

  分析是指对问题和需求的调查研究。
  面向对象分析(object-oriented analysis,OOA),指在问题领域内发现和描述对象。

面向对象设计

  设计是指满足需求概念上的解决方案。
  面向对象设计(object-oriented design,OOD),指的是定义软件对象以及它们如何协作以实现需求。

简单示例

  书中使用“骰子游戏”进行示例。

定义用例

  用例指使用的某些情节或场景,比如说投骰子后,骰子总点数是7,则赢,否则输。

定义领域模型

  将现实世界中的概念和想象可视化。例如下图,玩家(player)投掷了两个骰子(die),骰子游戏中有一个玩家和两个骰子,这些信息都能在图中展示出来。
这里写图片描述

定义交互图

  交互图有很多种,主要表现软件对象之间的消息流和由消息引起的方法调用。在骰子游戏中,骰子游戏给骰子发送了投骰子的消息,虽然在现实世界中是玩家掷出骰子,但是在软件设计中其实是骰子游戏发送出消息。

定义设计类图

  设计类图用来描述对象的属性和方法,例如在骰子游戏中,骰子游戏发送投骰子的消息,那么就需要play方法,同理骰子就需要roll和getFaceValue方法。
这里写图片描述

UML的三种应用方式

UML草图

  非正式的、不完整的图,借助可视化语言,探讨或解决问题的某一复杂部分。

UML蓝图

  相对详细的设计图,主要用于逆向工程和代码生成(前向工程)。
  在逆向工程中,将代码转换为可视化的图,使代码更易理解。
  在代码生成中,代码自动生成工具利用UML图生成一些代码,然后开发者再编写和填充其他代码。

UML作为编程语言

可执行代码可以直接被生成,但是开发者并不能看到或者编辑这些代码,而是去将UML作为编程语言来进行使用。

敏捷建模

  指UML的草图应用形式,通常对时间的投入具有高回报,即费时较短。

应用UML的三种透视图

概念透视图

  用图来描述现实世界或者概念领域中的事物,在这种图中的类,我们称之为概念类。

规格说明透视图

  用图来描述软件的抽象或具有规格说明的构件,在该图中的类称为软件类。

实现透视图

  用图来描述特定技术中的软件实现,该图中的类成为实现类。

0 0