OOA/D(Object-Oriented Analysis and Design)
【引用】"拥有一把锤子未必能成为建筑师",了解面向对象编程语言是创建对象系统必要但并不充分的第一步,了解如何"用对象进行思考"同样重要.
OOA/D中最关键、最基本的能力是熟练的为软件组件分配职责。因为分配职责是必须要执行的一项活动,并且它对软件组件的健壮性、可维护性和可重用性具有重要影响。
Analysis:强调的是对问题和需求的调查研究,而不是解决方案。
Design:强调的是满足需求的概念上的解决方案,而不是其实现。
他们可以概括为:做正确的事(Analysis)和正确地做事(Design)
在OOA的过程中,强调的是在问题域内发现和描述对象和概念。
在OOD的过程中,强调的是定义软件对象和这些软件对象如何协作来满足需求。
最后在实现或面向对象编程过程中会实现设计对象。
什么是UML?
【引用】"统一建模语言(UML)是说明、可视化、构造和文档化软件系统工件的语言,也可用于业务建模和其他非软件系统"
UML是Unified Modeling Language的首字母缩写词,从字面来理解它是一种统一建模语言。也就是说,它只是一种语言,一种用来对构建的模型进行表达的可视化语言。尽管UML常常用来建模OO软件系统,但是UML它本身并不是一种软件建模的方法论,它仅仅提供可以用于创建模型的一种可视化语法。我们在构建OO软件模型时常用的方法论应该是UP(Unified Process,统一过程),它告诉我们为了建模一个软件系统所需要利用、执行或者创建的工作者(worker)、活动(activity)和制品(artifact)。那么,UML名称中的"U"就是Unified(统一),它到底统一了什么呢?UML统一了几种不同领域。
-
开发生命期——UML提供用于从需求分析工程到实现,贯穿整个软件开发生命期的可视化建模语法。
-
应用领域——UML已被用于从关键实时嵌入系统到管理决策支持系统中任何事务的建模
-
实现语言和平台——UML中立于语言和平台。
-
开发过程——尽管UP及其变体可能是OO系统的首选开发过程,UML能够支持很多其他软件工程过程。
-
它本身内部概念——UML在其内部概念的一个小集合的应用上,勇于尝试保持一致和统一
-