面向对象编程方法学是C#编程的指导思想。进行C#编程的第一步是利用对象建模技术(Object Modeling Technique,OMT)来分析目标问题,抽象出相关对象的共性,对它们进行分类,并分析各类之间的关系,再用类来描述同一类对象,归纳出类之间的关系。Coad和Yourdon在对象建模技术、面向对象编程和知识库系统的基础之上设计了一整套面向对象的方法,分为面向对象分析(Object-Oriented Analysis,OOA)和面向对象设计(Object-Oriented Design,OOD)。对象建模技术、面向对象分析和面向对象设计共同构成了系统设计的过程,如图6-1所示。这是编写代码的基础。
图6-1  系统设计流程
在进行对象建模、面向对象分析和设计的过程中,需要使用建模语言来描述分析的过程和结果。统一建模语言(Unified Modeling Language,UML)是为了这个目标而设计的一种标准通用的设计语言。任何想要真正理解面向对象编程思想的人,都需要具备一定的UML知识。
限于本书的篇幅和目的,本章只能蜻蜓点水式地简单介绍对象建模技术、面向对象分析、面向对象设计和UML的基础知识。这些知识能够满足学习本书后面内容的需要,但是并不足以使你成为面向对象技术方面的专家。志存高远的读者应该进一步阅读这方面的专著。

 UML基础

1997年,对象管理组织(Object Management Group,OMG)发布了UML。UML的目标之一就是为开发团队提供标准通用的设计语言,以便更有效地开发和构建计算机应用。UML提出了一套统一的标准建模符号,便于人们交流系统架构和设计规划。UML现在已经获得了业界的认同,成为一种事实的标准,已广泛应用于系统设计中。

 简介

UML不是一种方法学,而是一种描述语言,它提供了多种类型的模型描述图(diagram),当在某种给定的方法学中使用这些图时,人们就能更容易理解和交流设计思想。UML的图可划分为如下三种类型。
— 静态图(static diagram):描述了那些不发生变化的软件元素的逻辑结构,描绘了类、对象、数据结构及其存在于它们之间的关系。
— 动态图(dynamic diagram):展示了在运行期间的软件实体的变化,描绘了执行流程、实体改变状态的方式。
— 物理图(physical diagram):显示了软件实体的不变化的物理结构,描绘库文件、字节文件、数据文件等,以及存在于它们之间的关系。
表6-1说明了三类图中最常用的一些UML图,以及它们适用的软件开发阶段。本节将主要介绍其中的用例图(use case diagram)、类图(class diagram)、对象图(object diagram)、序列图(sequence diagram)、状态图(statechart diagram)、活动图(activity diagram)、组件图(component diagram)和部署图(deployment diagram)。
表6-1  常用的UML图
   
   
分析阶段
设计阶段
实现阶段
静态图
用例图
ü
 
 
 
对象图
ü
ü
 
 
类图
ü
ü
ü
 
组件图
 
ü
ü
 
部署图
 
 
ü
动态图
协作图
ü
ü
ü
 
序列图
ü
ü
ü
 
活动图
ü
 
 
 
状态图
ü
ü
ü
物理图
文件、数据库等
ü
ü
ü
提示  Microsoft Visio可以用来方便地绘制UML图。Visual Studio 2005的类关系图也可以显示类似UML的图,但是与标准的UML稍有不同。