为什么要学习这门课程?
“拥有一把锤子未必能成为建筑师”。
这门课程学习的是面向对象分析和设计的核心技能的重要工具。对于使用面向对象技术和语言来,创建设计良好、健壮且可维护的软件来说,这门课程所授予的技能是基本要求。对于创建对象 系统来说,了解面向对象语言例如JAVA或者C++是必要的,但不是首先要做的。了解“对象思想”才是关键所在。
学习的内容:UML与对象思想
UML只是图形表示法,并不能代表OOA/D,也不是方法。
学习“对象思想”才是这门课程的重点与难点。
如果没有掌握如何创建优秀的面向对象设计,如何评估和改进现有设计,那么学习UML或者UML CASE作图技巧就显得毫无意义。
UML的意义在于它是一种应用于OOA/D和“软件蓝图”的语言,
它最重要的意义有两点:
1.我们可以把它当作一种思考的工具
2.它也可以是一种沟通的形式
通过这门课程的学习,我应该达到的目标是:
应用原则和模式来创建更好的对象设计;
基于作为是反的UP敏捷方法,在分析和设计中迭代地遵循一组公共的活动;
创建在UML表示法中常用的图;
最低学习目标(也就是最重要的学习目标):
至关重要的能力是熟练地为软件对象分配职责。这项技能是必须要执行的一项活动,无论是画UML图还是进行程序设计,并且直接关乎到软件构件的健壮性、可维护性和可重用性。在实际项 目。中,如果只能仓促编码,即使在这种情况下,分配职责也是必不可少。这门课程中,将持续学习分配职责的原则。
什么是分析与设计?
分析强调的是对问题和需求的调查研究,而不是解决方案。
“分析”一词含义广泛,最好加以限制,如需求分析或面向对象的分析。
设计强调的是满足需求的概念上的解决方案(在软件方面和硬件方面)而不是其具体实现。
最终设计可以实现,而实现(如代码)则表达了真实和完整的设计。
也可以概括为:做正确的事(分析)和正确地做事(设计)。
什么是面向对象分析与设计?
在面向对象分析过程中,强调的是在问题领域内发现和描述对象(或概念)。
例如航班信息中包含了飞机,航班和飞行员等概念。
而在一个电影售票系统中,概念就有电影院,电影,场次甚至电影院座位等概念。
在面向对象设计过程中,强调的是定义软件对象以及它们如何协作以实现需求。
示例流程(也是学习流程):
定义用例——定义领域模型——分配对象职责并绘制交互图——定义设计类图