面向对象分析与设计
UML面向对象分析设计,就是利用UML建模表现面向对象开发中的分析和设计。
也就是你需要用UML中的各种框图从不同角度描述你的系统。
如下图是UML用例图,描述的是系统业务中用户管理的部分。
一、总述
面向对象分析的输入是用户的功能需求,输出是简单的、理性化的分析模型,此阶段的工作更多侧重于如何理解软件的功能需求;
面向对象设计的输入是面向对象分析的结果,蔬菜水果最终的、细化后的设计模型,此阶段的工作更多侧重于如何得到一个合适的、完整的解决方案。
二、主要区别
(1)
在侧重点上,面向对象分析侧重于理解问题,描述软件要做什么,而面向对象设计侧重于理解解决方案,描述软件要如何做。
(2)
面向对象分析一般只考虑理想饿设计,不关心技术和实现层面的细节,而面向对象设计需要得到更具体、更详尽,更接近于真实的代码的设计方案。
(3)
在设计结果的描方式上,面向对象分析阶段侧重于描述对象的行为,而面向对象设计阶段侧重于描述对象的属性和方法。
(4)
面向对象分析只关注功能性需求,而面向对象设计既关注功能性需求,也关注非功能性需求。
(5)
面向对象分析产生的系统模型通常规模较小,而面向对象设计产生的系统模型规模较大,内容也比较详尽、完整。
三、分析设计工具(RationalRose
+
UML)
1、需求分析阶段
常借助于“用例图”、“顺序图”对功能模型进行建模;
用例描述,一般包括:用例名称,系统范围,用户目标,前置条件,执行过程,扩展情况,后置条件。
顺序图着眼于整个系统。
2、面向对象分析阶段(包含需求分析阶段的用例建模)
常借助于“类图、对象图”,“顺序图、协作图”,“状态图”进行静态模型建模和动态模型建模。
这里的类图主要指通过用例分析得到的实体类、控制类和边界类。
顺序图也着眼于各个分析类对象间的协作。
3、面向对象设计阶段
常借助于“类图”,“顺序图、协作图”,“状态图”来细化各个类以及对象间的协作、关系的可见性;
这里的类图,要具体到属性、方法,类之间的关系依赖(继承、组合、聚合)
这里的顺序图要具体到各个类的实例之间的消息传递、函数调用。
面向对象设计阶段常借助一些设计模式达到软件的可扩展行,应对软件的可预测到的变化。
设计强调的是问题的逻辑解决方案,即系统怎样才能达到要求。例如,图书信息管理系统如何实现远程查询?设计最终可以用硬件或软件方法来实现。
面向对象的分析与设计的精髓是按照对象的观点考虑问题域和逻辑解决方案。分析旨在发现并描述问题域中的对象。例如,在图书馆信息系统中,这些对象包括图书、借阅者、图书管理员等。
设计的重点在于定义逻辑软件对象,这些对象(具有属性和方法)最终能够用面向对象程序设计语言实现,即编写它们的类。
有区分为面向对象的程序设计,也有面向过程的程序设计。
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。