面向对象分析与设计之概念

[size=large][color=red]在OO开发中,至关重要的能力就是熟练地为软件对象分配职责。[/color][/size]

《UML和模式应用》这本书给我们了9中基本指导原则,并将他们称之为GRASP,这些原则都有各自的名称,如信息专家和创建者等。

首先我们需要明确一点,什么是分析和设计:

[b]分析[/b]强调的是对问题和需求的调查研究,而不是解决方案。例如,如果需要一个新的在线交易系统,那么,应该如何使用它?它应该具有哪些功能。

[b]设计[/b]强调的是满足需求的概念上的解决方案,而不是其实现。

那么什么是面向对象分析和设计呢?

在[b]面向对象分析[/b]过程中,强调的是[color=blue]在问题领域内发现和描述对象(或概念)[/color]。例如,在航班信息系统里包含飞机、航班和飞行员等概念。

在[b]面向对象设计[/b]过程中,强调的是[color=blue]定义软件对象以及它们如何协作以实现需求[/color]。例如,软件对象Plane可以有tailNumber属性和getFlightHistory方法。

[color=blue]最后在实现或面向对象程序设计过程中,会实现设计出来的对象,如java中的Plane类。[/color]

定义用例

用例不是面向对象制品,而是对情景的记录。[color=blue]但用例是需求分析中的一种常用工具[/color]。

定义领域模型

面向对象[b]分析[/b]关注从对象的角度创建领域描述。面向对象分析需要鉴别重要的概念、属性、和关联。

面向对象分析的[b]结果[/b]可以表示领域模型,在领域模型中展示重要的领域概念或对象。

需要注意的是,领域模型并不是软件对象的描述,它是真实世界领域中的概念和想象可视化。因此被称为[b]概念对象模型[/b](conceptual object model)。

面向对象[b]设计[/b]关注软件对象的定义——它们的[color=blue]职责和协作[/color]。顺序图是描述协作的常见表示法。它展示出软件对象之间的消息流,和由消息引起的方法调用。

定义设计类图

与领域模型表示的是真实世界的类,设计类图表示的是软件类。

要注意的是,尽管设计类图不同于领域模型,但是其中的某些类名和内容还是相似的。从这一方面讲,OO设计和语言能够缩小软件构件和我们所设想的领域模型之间的差距,即实现低表示差距。(这一点应该是我认为四色原型跟类图相似的原因吧)

最后列出3个概念名词:

[b]概念类[/b]——现实世界中的概念或事物。在概念或本质透视图中使用。UP领域模型中包括概念类。

[b]软件类[/b]——无论在过程还是方法中,都表示软件构件在规格说明或实现透视图中的类。

[b]实现类[/b]——特定OO语言(java)中的类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值