OOAD 引论和用例模型(一)

1.1 OOAD 中使用 UML 和模式

         OOAD 的目标是设法生成一个高质量的软件蓝图

         UML 是用来绘制软件蓝图的符号语言

         是一种思考和交流的工具

         模式(Pattern)是已命名的,针对一个问题的,经过反复验证的一种优化解决方案

         软件开发中的一些指导原则(Principles

         UPUnified Process)是一种指导软件开发活动的方法

         本书是在 UP 的指导下,以一个案例(POS)为红线介绍 OOAD

 

1.2   分配职责

         OOAD开发出的软件系统是由一组相互合作的对象组成

         很象现实生活中的团队合作

         应该包含哪些成员? OOA

         各个成员的职责是什么?   OOD

 

         OOAD中最关键,最基本的技能是如何熟练的为软件组件分配职责

         必不可少的一项活动,且对软件质量影响很大

         比较难以掌握的一种技能

         GRASP 模式:关于对象设计和职责分配的一组基本原则

 

1.3 什么是分析和设计?

         分析强调的是对问题和需求的调查研究(What?)

         需求分析 对需求的调查研究

         对象分析 对领域对象的调查研究

         设计强调的是一个能满足需求的(概念上的)解决方案(How?)

1.4 什么是OOAD

         OOA 强调的是在问题领域内去发现对象或概念

         问题领域指的是需要开发的软件系统的背景领域

         问题领域随着软件系统的不同而不同

         问题领域涉及的都是已经存在的实体或概念

         OOD 强调的是如何定义软件对象及他们之间的协作方式来满足需求

         软件对象大都是受领域对象的启发而得到的

         在很多情况下软件对象和领域对象一一对应

         但软件对象之间协作方式的定义却没有这么直观



一个 OOAD 的例子


 1.jpg



2.jpg 


1.5 OOAD
举例: 掷骰子游戏(软件)



3.jpg


        
OOAD 过程的主要活动

     定义用例                  (需求获取)

     定义领域模型           OOA, 对象分析)

     定义交互图        OOD, 对象设计)

     定义设计类图           OOD, 对象设计)

 

 

 

         定义一个用例(简化的例子)

 

       用例名: 玩掷骰子游戏

       参与者: 玩游戏者

       用例描述:      玩游戏者一次掷两个骰子,如果两个骰子的面值相加为七则赢




4.jpg

 

 

         定义领域模型

     在做OOAD, 我们先创建一个问题域的对象模型,然后在此对象模型的基础上构建一个求解域的对象模型(软件蓝图)

     问题域的模型的创建是通过识别问题域中的相关概念,概念的属性和相互关系,并将其用UML符号表示出来而完成的

 

5.jpg 

定义交互图

         利用交互图来探索领域模型中的对象应如何合作来实现软件系统的需求

         交互图有两种形式(语义等价的)

     顺序图(Sequence Diagram

     合作图(Collaboration Diagram

         对象间的合作是通过一个对象向另一个对象发送消息(请求服务)来实现的

 

6.jpg 

定义设计类图

         在领域模型概念类的基础上定义设计类

         设计类与软件实现(Java, C++)类相对应

 

7.jpg 

 

 

 

 

 

 

 

 

posted on 2006-12-11 13:22  Leetle  阅读(2306)  评论(7编辑  收藏  举报

导航