??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲VA中文字幕无码一二三区 ,亚洲国产第一站精品蜜芽,国产精品亚洲一区二区无码http://www.tkk7.com/hitlang/category/15683.html学以致用zh-cnWed, 28 Feb 2007 20:14:05 GMTWed, 28 Feb 2007 20:14:05 GMT60OOAD学习W记http://www.tkk7.com/hitlang/articles/71864.htmlliulangliulangMon, 25 Sep 2006 15:29:00 GMThttp://www.tkk7.com/hitlang/articles/71864.htmlhttp://www.tkk7.com/hitlang/comments/71864.htmlhttp://www.tkk7.com/hitlang/articles/71864.html#Feedback0http://www.tkk7.com/hitlang/comments/commentRss/71864.htmlhttp://www.tkk7.com/hitlang/services/trackbacks/71864.html2004-11-4        星期四    ??/p>

OOAD(Object-Oriented Analysis and Design)介绍

1.  OOADҎ论的定义
{:1) 一U面向对象的pȝ建模技?
    2) 系l描qCؓ许多怺作用的有关系对象;
    3) pȝ中相互作用的对象被组l成c?
    4) OOҎ论由以下三部分组成:
       . 一个过E?br />       . 一个符?br />       . 一pd规则
 
2.  在一个OOAD软g开发过E,我们要完成二个不同的工作Q?br />{:1) 分析阶段我们主要Q?br />       . 建立一个清晰的商业问题的视?
       . 概述pȝ必须执行的Q?
       . 建立商业问题描述的通用词汇;
       . 概述商业问题的最x案?br />    2) 设计阶段我们主要Q?br />       . 解决商业问题;
       . 定义“how”代曎쀜what?
       . 介绍ɾpȝ工作的支撑元?
       . 定义pȝ的实现策略?/p>

3.  对象
{:1) 是单个的、唯一认的实体或目;
    2) 作ؓ面向对象的构建块被?
    3) 有n份、数据和行ؓ;
    4) 可以是简单或复杂?
    5) 可以是真实或惌?
    6) 有属性和操作;
    7) 是一个类的动态实?
 
4.  c?br />{:多个相同对象的一U抽象,对象都创c?/p>

5.  面向对象~程的特?br />{:1) Abstraction(抽象):
       . 忽略l节Q处理对象或实体本质的特?
       . 化功能以及信?
       . 帮助用户和对象交?
    2) Encapsulation(装):
       . 隐藏对象的数?
       . 处理每个对象的二U视图:
         a. 外部视图Q显CZ个对象做什?
         b. 内部视图Q显C对象如何完成它的Q?
    3) Association(兌)
       . 对象间交互的方式;
       . 一个对象用另一个对象的服务或操作另一个对象,q时候对象相互关联?br />    4) Aggregation(聚合)
       . 定义一个对象是另一个对象的一个组成部?
       . 是一U比较强的关?
       . 通过“Has A”关pdq行认。一辆R有轮子、椅以及门Q它们是一部R的组成部分。假如你U除光的Q何一部分QR没有了相应的功能Q但仍是一部R?br />    5) Composition(合成)
       . 一个对象包含另一个对?
       . 是最强的兌形式;
       . 通过“contain”关pdq行认?br />       . 假设部g不存在,对象亦不存在?br />    6) Inheritance(l承)
       . 是一U根据既存类定义新类的机?
       . 通过“Is A”或者“Kind of”关pdq行认;
       . 允许你组l相关类Q这栯些类可共同地被管理以及重用?br />    7) Cohesion(内聚)和Coupling(耦合)
       . Cohesion: 一个或一l类对系l中单个功能贡献E度的度?
       . Coupling: 二个或多个类间对联系紧密E度的度?
    8) Polymorphism(多?
       . 不同对象完成相同语义上的l果;
       . Zl承;
       . 多态功能的实现依赖于它应用的对?
       . 举例Q??需二只手、网??只需一只手Q同h扔,有不同的实现。当你将不同的球l一个小孩子Q他知道是用一只手q是二只手。小孩都知道多态?/p>

6.  开发过E预?br />{:1) 传统开发过E:
       . 瀑布式开发:需?>分析->设计->实现->试。每个步骤完成和文档化后才进入下一个阶Dc?br />       . 假设在后期阶D出现问题,很难q回到先前阶Dc?br />       . 目l成员花费大量时间和_֊于每个阶D늡保它是正的.
       . 各阶D|用符号和术语均是变化的。完成的软g虽然正确Q但与它所表现的商业逻辑相关甚少?br />    2) OOAD开发过E?br />       . 典型的处理方式是一个项目作Zpd的小目;
       . UML(Unified Modeling Language)是一U符P不是一个处理过E?
       . USDP(Unified Software Development Process)是P代增量式?
       . USDP和RUP(Rational Unified Process)都是行的OOADq程?/p>

7.  q代增量式项目生命周?br />{:1) “P代”指生命周期中每一个步?
    2) q代的结果便是整个项目功能完成的一步步增长;
    3) 在每个P代的构徏阶段Q你应该Q?br />       . 选择q分析相关的用例;
       . 使用选择的体pȝ构创Z个设?
       . 用组件实现设?
       . 验组件满用例?/p>

8.  q代增量生命周期的主要阶D?br />{:1) Inception(开?阶段Q?br />       . q个阶段的增镉K中在Q?br />         a. 开始项?
         b. 个项目徏立v商业原则;
         c. 定义一个商业问?
         d. 识别潜在的风?
         e. 定义寚w题更好理解的范围;
         f. 创徏对商业问题的解释文档?br />       . 每个循环包括一臛_个反复,每个阶段的完成结果都是里E碑式的?br />    2) Elaboration(l节)阶段Q?br />       . q个阶段的增镉K中在Q?br />         a. 高水q的分析和设?
         b. 为项目徏立一个架构体pȝ基线;
         c. 监测潜在的风?
         d. 创徏一个实现项目目标的构徏计划;
    3) The Construction(构徏)阶段Q?br />       . q个阶段的增镉K中在软g目日益成型;
    4) The Transition(跃迁)阶段:
       . q个阶段的增镉K中在:
         a. 发布产品l客?
         b. 完成beta试;
         c. 实现性能调整、用户培训以及接受度试?br />9.  阶段期间的工作步?br />{:1) 每个阶段׃下五个工作步骤组成:
       . 需?br />       . 分析
       . 设计
       . 实现
       . 试
    2) 不同的反复对每个工作步骤完成的程度不?
    3) 早期的反复在深度上覆盖了W一个工作步骤,以后的反复在深度上覆盖了最后的工作步骤?br />    4) 8/2原则Q假如完成了80%, 卛_q入下一个反复?/p>

10. 反复和工作步?br />{:1) 在每个反复过E,Ҏ需求你可以包括五个工作步骤中的M一个?br />    2) 早期的反复过E集中在靠前的工作步骤,后期的反复过E集中在靠后的工作步骤?br />    3) 当你发现应该修改早先工作步骤中的某些错误Q你可以Q?br />       . l箋q在下一个反复过E中修正;
       . l箋q增加一个新的反复过E修正问?
       . 假如旉允许Q返回到当前的反复ƈ修正q个问题?br />    4) 不同的反复执行每个工作步骤于不同的程度?/p>

11. q代增量生命周期的好?br />{:1) 减少费用;
    2) 寚w目进度的更好保证;
    3) 对于开发团队而言开发速度更快;
    4) 可适应用户需求的改变;

UML(Unified Modeling Language)介绍

1.  UML定义
{:1) UML是一U图形化语言用于Q?br />       . 说明;
       . 构徏;
       . 肉眼观察;
       . 文档化系l原?
    2) 在分析阶D,你创建类图以帮助你理解商业概?q没有实现的l节);
    3) 在构建阶D,我们通过为相同的cd增加附加的细节——实现商业细?

2.  UML和蓝囄关系
{:开发OOADE序——UML
    建房——蓝?/p>

3.  UML囑Şcd
{:1) 静态模型:代表你正在徏模的软gpȝ的基本结?
    2) 动态模型:了系l的行ؓ;

4.  静态模?br />{:1) 构徏以及文档化一个系l的静态方?
    2) 反映了一个Y件系l基本的、稳定的框架;
    3) 创徏问题主要元素的代?
    4) ׃下图形组成:
       . 用例?br />       . cd
       . 对象?br />       . lg以及部v?/p>

5.  动态图
{:1) 构徏昄pȝ行ؓ的图?
    2) ׃下图形组成:
       . 时序?br />       . 协作?br />       . 状态图
       . zd?/p>

6.  用例?br />{:1) 昄谁或什么用系l以及它的特?
    2) 一个用例图中特征的用户UCؓ“actors?
    3) 用例用椭圆表C?
    4) Z建模ҎQ用例图需区分先后序;

7.  cd
{:1) 代表一pd包含普通属性和特征的对?
    2) l构化的囑Ş昄了一pd的类、接口、对象间的协作以及关p?
    3) ׃臛_个描qC以下信息的矩形组成:
       . cd(cd)
       . 可选择的属?br />       . 操作部分

8.  对象?br />{:1) 代表一个明的对象
    2) l构化的囑Ş昄了一pd对象以及他们之间的关p?/p>

9.  lg?br />{:昄软glg间的关系

10. 部v?br />{:昄能用于部|Y件应用程序的物理讑֤

11. 时序?br />{:1) 不同对象一定时间范围发生的消息;
    2) 消息的时间顺?/p>

12. 协作?br />{:1) 昄了用消息期间对象间的协?
    2) 发送和接收消息的结构化l织;

13. 状态{换图
{:对象行ؓ的事仉?/p>

14. zd?br />{:1) 描述一Ҏ动到另外一w的流E?br />    2) 一Ҏ动到另外一w的流E?/p>

15. 包的W号
{:1) 指组l项目的一U方?
    2) 通常用于控制cȝ名域I间;
    3) 在UML中用包l织cRY件组件、硬件组件、其它包以及和你模型相关的Q何其它东?/p>

2004-11-5        星期五    ??/p>

需求和初始化分?/p>

1.  开始开发过E?br />{:1) 分析最初的工作?
    2) 攉信息;
    3) 创徏一个问题的状?
    4) 创徏用例;
    5) 引介lg以及部v?

2.  攉信息
{:你可从许多资源中攉信息Q这些资源包括:
    . 用户的初始化需求详?br />    . 行业专家
    . ֮和用?br />    . 理?br />    . 市场
    . 以前cM目

3.  避免习惯性的假设
{:1) 你必避免习惯性的假设Q包括:
       . 用户是天真的Q开发者最清楚
       . 需求是静态的
       . 一开始便能徏立正的Ҏ
    2) C目的发展以及客L需求均是变化的?br />    3) Z避免q些假设Q我们应该:
       . 明确用户的需?br />       . 保你的模型能适应不断变化的需?br />       . 保你能修改你的模型
    
4.  行业专家
{:1) 指某个特定商业领域的专家
    2) 可大致细分ؓQ?br />       . 通用行业专家
       . 特定应用E序行业专家以及当前商业领域专家
       . cM商业领域专家
    3) 没有行业专家Q从其它领域抽象通用元素很困?/p>

5.  问题声明
{:1) 文档清楚地描qC客户和系l需求吗Q?br />    2) 用户输入对于文档很重?br />    3) 使用客户熟悉的语a词汇
    4) 句义清楚Q不用行?br />    5) 函盖目范围内的l节
    6) 详细说明问题的背?br />    7) 详细说明所知的U束
    8) 问题声明提供了关于商业背景、范围以及计机术语无关斚w的约束。它用于作ؓ认问题范围的基?br /> 
6.  对象和类的侯选?br />{:1) 可从问题声明中确?br />    2) l问题声明中的名词短语加下划U以对象和类侯选值列?br />    3) 在接下去的分析阶D,你需要确定你pȝ中所需的对象和cȝ列表

7.  数据字典
{:1) 描述了用于项目所有词汇的文档
    2) 通过和用h通积累所得的条款
    3) 用于整个目和系l?br />    4) 在整个项目期间会不断地加入新的术?br />    5) 帮助消除歧义
    6) 必须Ҏ有项目组成员可用
    7) 数据字典对于大型目中各团队沟通非帔R要。这Ӟ它既是商业文档也是系l文档?/p>

8.  创徏用例
{:1) 一个用例是用户和系l交互的囑Ş化的表现形式;
    2) 是定义和理解pȝ需求和背景的工?
    3) 是Q何系l某一斚w的简单印象。当你将所有印象收集在一块,你便拥有了系l的整个描述;
    4) 囑Ş具体表现为实U的椭圆?/p>

9.  用例图中的“include”和“extend?br />{:1) “include”集中于包含关系Q完成某个模块之前,你必M用另一个模?
    2) “extend”集中于扩展关系Q也许或也许不基于某个模块,不是强制性的;

10. 用例中的情节假设
{:1) 用例从用L角度昄了Y件的功能。也许存在超q一U方式完成一指定功能?br />    2) 一个假设情节指用例的一个实例——从开始到l束的一个逻辑路径?br />    3) 情节假设不包括有条g的声明——因为它们描qC用户多个可能路径中的一U?br />    4) 所有的情节假设从相同的方式开始,但结果却不同?br />    5) 一个用例中成功或不成功的\径都应该昄出来——在一个ATM中,你必考虑一些情节诸如用户个n份号码输入不Ҏ者金额不?br /> 
11. 用例表单
{:1) 每个用例的摘?br />    2) 用例表单不是UML的内容,但是完成它?br />    3) 在这个表单中Q包括以下项目:
       . 用例名称
       . 参与?br />       . 优先?br />       . 状?br />       . 扩展内容部分
       . 预处?假想情节
       . 提交条g
       . 事g?br />       . 可选\?br />       . 执行
       . 频率

12. zd?br />{:1) 创徏用例囑֐Q你可以使用囑Ş说明zd或工作流
    2) 囑Ş化了所有用例假x?br />    3) 昄zd、过E或工作?/p>

13. 风险评估
{:1) 有必要对目q行风险评估
    2) 用例可以是风险评估的L
    3) 高风险的用例应该在早期的q代中开?br />    4) 风险能出现在以下斚wQ?br />       . 需求风?br />       . 技术风?br />       . 技能风?br />       . 资源风险
       . 政策风险

14. 需求风?br />{:1) 需求风险指没完全满_户需?br />    2) 你应该工作于该pȝ的所有用户和理者都参与q来

15. 技术风?br />{:C已证实过的技术比未证实的技术所冒风险要?/p>

16. 技能风?br />{:信你有所需的全部技?/p>

17. 资源和政{风?br />{:1) 资源风险指超出时间和资金预算
    2) 政治风险指与现行的政治规则冲H?/p>

18. 包图
{:1) UML中存在符号以包装M逻辑相关的UML元素(cR对象、用例等{?;
    2) 像Java一P相关的类l织成不同的?
    3) q个W号像文件夹图标;
    4) 有助于降低复杂?
    5) 包间可存在依赖关p?
    6) 包有助于Q?br />       . 查看没有太多l节的大?
       . 查看独立的小部分;
       . 创徏部g中的一部?
       . 昄lg间的依赖?
       . lg图显CZ代码物理l织形式Q可以是一个类文g、Java源文件、jar文g、Java中的包、共享库、对象代码、RDB{等;
       . 当一个组件改变,它能影响其它——依赖?
       . lg应该有一个良好的接口Q这样你可以使用其它实现该接口的lgL换它?/p>

19. 部v图介l?br />{:1) 昄了硬件组仉的物理关p?
    2) 每个W号代表了一些硬件设备:服务器、工作站、个人PC、传感器、时钟、电话交换机{?br />    3) 当你获得信息的时候可在Q何阶D|加以及修正?br />    4) W号间的q接伴随着协议一hC?/p>

pȝ对象和类分析(I)

1.  分析阶段的理?br />{:1) 定义pȝ必须做什?
    2) 避免描述和实现的问题;
    3) 专注于系l的lg;
    4) 分析阶段定对象在运行时需要什么以保pȝ正确的功?
    5) 分析阶段在需求收集阶D和用例阶段之后Q在pȝ设计阶段之前;
    6) 在确定哪些是cd对象的时候,你应该回{以下问题:
       . 什么对象组成了q个pȝ?
       . 什么是可能的类?
       . 每个对象或类的责L什么?
       . 对象和类间是如何相联pȝQ?br />    7) C所有新目加入数据字典;

2.  关键字的提取
{:1) 当你定义l成pȝ的对象时Q你应该创徏一个满系l功能对象的列表;
    2) 列表中的对象UCؓ对象侯选?
    3) 然后你可以ؓq个列表中最重要的对象准备一个子列表;
    4) 关键字代表了pȝ中主要或W一位的对象;

3.  用UML表示对象和类
{:1) 对象模型昄了逻辑和特理的静态视?
    2) 对象模型有二U图Q?br />       . cdQ显CZ你必dZ个系l所需的类。在q行时你可用一个类创徏许多对象。类囑ֿLC类间所有可能关pR?br />       . 对象图:代表了系l中真实的对象,描述了特定案例中外在关系?br />    3) 你可以用主键去创徏cd和对象图?br />    4) cd在整个分析阶D都会被更新和修正?/p>

4.  属性和Ҏ
{:1) 对象包含了定义对象状态的属?
    2) Ҏ定义了对象能执行的操?
    3) 因此cdd义这些属性和Ҏ;
    4) 在类执行之前Q你必须定义所有的属性和Ҏ;
    5) 但是很多属性和Ҏ到设计阶D|知道Q加上所有你能加的先;
    6) 在设计阶D存在的属性和Ҏ_了,但是他们的类型和参数q不够?/p>

5.  属性和Ҏ
{:二种cd的属?
    . 普通属性:是一个对象中真实存在的变量或帔R。一个普通属性将会存储对象中一些有意义的倹{?br />    . 衍生属性:q未存储在系l中Q通过pȝ中其它信息计得出?/p>

6.  联接和链?br />{:1) 联接——针对类而言
       . 指类图中用直U表C的关系;
       . U可以是水^也可以是垂直?
       . 可以在关pȝ上给一个逻辑名称描述q个关系;
    2) 链接——针对对象而言
       . 指对象图中二个对象间的关p?

7.  联接和多h?br />{:1) 多样性显CZ一个类中对象和另一个类中对象联pȝ可能?
    2) 在类图中Q每个类只有一个矩形,因此联接会确定一个类有多个对象链接于另一个类的对?
    3) 联接U的末端有标?
 
8.  多样性的?br />{:1) 2: 刚好二个;
    2) *: 0臛_?
    3) 5..15: 5?5?
    4) 2,4,6: 2???
    5) 10..*: 最?0?
    6) 0..10: 最?0?

9.  复杂性的联接
{:1) 多样性标记?”出现在联接的两?
    2) 你命名了cd中所有联接ƈ分配了多h后Q是时候重新审视他们ƈ试解决复杂联接。可使用联接cLW合条g联接?/p>

10. 联接c?cM于数据库中烦引表)
{:1) q意味着联接它本w必ȝ码ؓ一个类Q这个类带有解决冲突的属?
    2) q种技术用于分析阶D解军_对多关系;

11. W合条g的联?br />{:1) 通过使用属性值可解决多对多问?
    2) 分配一个唯一的属性?
 
   
2004-11-8        星期一      ?/p>

pȝ对象和类分析(II)
   
1.  分析阶段的逻辑关系
{:1) 在一个系l中必须存在一些关pM便进行适当地操?
    2) 逻辑关系表达了一个类和另一个类如何兌、一个对象怎样得到或用另一个对?
    3) 问下列问题:
       . 一个类依赖于另一个类的某些功能吗Q?br />       . 是否存在一U非常强的关pM致一个对象缺了另一个便不能存在Q?br />    4) 在这个模块讨论的逻辑关系如下Q?br />       . l承(Inheritance):
         a. 一?
         b. Ҏ
       . 多?Polymorphism)
       . 兌(Association)
         a. 聚合(Aggregation)
         b. l合(Composition)
   
2.  l承(Inheritance)
{:1) l承的概忉|qC你如何在一l类似或相同目的c间׃n或得到属性以及功?
    2) 单承和多重l承;
    3) 使用l承Q我们能?Q?br />       . 降低全部pȝ的尺?
       . 改善设计和维护的功能;
    4) Car、Bus、Train、Airplane、Ship, 他们都是交通工兗他们可以移动以及驾Ӟ它们可以h从A地运往B地?br />   
3.  子类和超c?br />{:1) 当一个类l承自其它类Q它被称为“子cZ?
    2) 当一个类被承自其它c,它被UCؓ“超cZ?

4.  l承的分?br />{:l承的二U类型:
    . 一般承:

       |ˉˉˉˉˉ|    |ˉˉˉˉˉ|                |ˉˉˉˉˉ|
       |   Dog    |    |   Cat    |                |  Mammal  |
       |__________|    |__________|                |__________|
       |-numLegs  |    |-numLegs  |  —?gt;         |-numLegs  |
       |ˉˉˉˉˉ|    |ˉˉˉˉˉ|                |ˉˉˉˉˉ|
       |+eat()    |    |+eat()    |                |+eat()    |
       |+bark()   |    |+meow()   |                |__________|
       |__________|    |__________|                     ?
                                                        ?br />                                              |ˉˉˉˉˉˉˉˉˉˉ|
                                              |                    |
                                         |ˉˉˉˉˉ|        |ˉˉˉˉˉ|
                                         |   Dog    |        |   Cat    |
                                         |__________|        |__________|
                                         |ˉˉˉˉˉ|        |ˉˉˉˉˉ|
                                         |+bark()   |        |+meow()   |
                                         |__________|        |__________|

    . Ҏl承Q?/p>

                   |ˉˉˉˉˉ|                                 |ˉˉˉˉˉ|
                   |  Mammal  |                                 |  Mammal  |
                   |__________|                                 |__________|
                   |-numLegs  |                                 |-numLegs  |
                   |ˉˉˉˉˉ|                                 |ˉˉˉˉˉ|
                   |+eat()    |                                 |+eat()    |
                   |__________|                                 |__________|
                        ꐠ             ?—?gt;                      ?
                        │                                         ??br />              |ˉˉˉˉˉˉˉˉˉˉ|                   |ˉˉˉˉˉˉˉ|ˉˉˉˉˉˉ|
              |                    |                   |              |            |
         |ˉˉˉˉˉ|        |ˉˉˉˉˉ|         |ˉˉˉˉˉ|  |ˉˉˉˉˉ|  |ˉˉˉˉˉ|
         |   Dog    |        |   Cat    |         |   Dog    |  |   Cat    |  |  Sheep   |
         |__________|        |__________|         |__________|  |__________|  |__________|
         |ˉˉˉˉˉ|        |ˉˉˉˉˉ|         |ˉˉˉˉˉ|  |ˉˉˉˉˉ|  |ˉˉˉˉˉ|
         |+bark()   |        |+meow()   |         |+bark()   |  |+meow()   |  |+baa()    |
         |__________|        |__________|         |__________|  |__________|  |__________|

5.  多?br />{:1) 是一个和l承关系密切的OO术语;
    2) 多态这个名字来源于希腊Q意思是“多UŞ态?
    3) 从分析透视囄来,多态意味着不同cd和多U属性可分配于类;
    4) Java和C++支持多?
  
6.  抽象c?br />{:1) 是一些包含未实现功能的类Q这些类不能实例化。一个类l承了一个抽象类l承了所有方?包括抽象Ҏ);
    2) Mcȝ承了抽象cd除非实现了所有的抽象ҎQ否则也是抽象的;
  
7.  UML中关于抽象类的符?br />{:1) 抽象cȝcd为斜?
    2) 抽象Ҏ名也是斜?

8.  反n兌
{:1) 对象图中Q相同类的二个实体间的联p?
    2) 但是在类图中只有一个类代表q些对象;
    3) 因此Q这U关联回转到相同的类。这L兌UCؓ反n兌;
    4) 反n兌在关联线的末端必d在角色名字。这明确地说明你是如何关联这个类的二个对象?/p>

              wife
              |ˉˉˉˉˉˉ|
         |ˉˉˉˉˉ|      |
         |  Person  |      |
         |__________|      |married
         |ˉˉˉˉˉ|      |
         |__________|      |
             ↑____________|
              husband

9.  兌(Association)
{:1) 兌用于描述cd中二个类间的关系;
    2) 包括一些更紧密关系诸如Q聚?Aggregation)和组?Composition)
       . 联系Q厨师用刀;
       . 聚合Q一辆R有一个R载电?
       . l合Q一辆R一般只包括一个发动机;

         |ˉˉˉˉˉ|             |ˉˉˉˉˉ|
         |   Chef   |  chops with |   Knife  |
         |__________|------------>|__________|
         |ˉˉˉˉˉ|             |ˉˉˉˉˉ|
         |__________|             |__________|

10. 聚合(Aggregation)
{:1) 是关联中的一U?
    2) 更紧密的兌方式;
    3) 聚合是一U整?部分关系Q但“部分”可能被其它对象׃nQ因而有可能在“整体”外存活?br />    4) 表现为“Has A”关p?

         |ˉˉˉˉˉ|                |ˉˉˉˉˉ|
         |   Car    |     has a      | CarRadio |
         |__________| ?------------|__________|
         |ˉˉˉˉˉ|                |ˉˉˉˉˉ|
         |__________|                |__________|

11. l合(Composition)
{? 1) 最紧密的关联方?
    2) 表现为“always contains”关p? 例如QR不能没有引擎
    3) 在UML图上表现Z黑色的菱?/p>

         |ˉˉˉˉˉ|                |ˉˉˉˉˉ|
         |   Car    |     driven by  | Enginee  |
         |__________| ?------------|__________|
         |ˉˉˉˉˉ|                |ˉˉˉˉˉ|
         |__________|                |__________|

动态模型分?/p>

1.  在分析阶D创建动态模?br />{:1) 一旦在分析阶段完成对象模型建模Q你可以开始对pȝ和对象在整个旉D内q作方式q行建模Q这UCؓ动态徏模?br />    2) 动态徏模发生二ơ:
       . 在逻辑分析阶段(信每个操作都是可能?
         a. 时序?Sequence diagrams)/协作?Collaboration diagram);
         b. 状态{换图(State transition diagram);
         c. zd?Activity diagram);
       . 在物理设计阶D?分配Ҏ描述l对应的c?
2.  责Q
{:在OOA&D中,“责仠Z指Q?br />    . 一个类知道什?状?;
    . 一个类做什?行ؓ);
    . 一个类型知道什?状?;
    . 一个类型做什?行ؓ);

3.  分配责Q
{:在分配责LQ很重要ȝ定以及实C下内?
    . 专家(指你所分配责Q的类完全可实现其责QQ这减小了额外对象的依赖以及支持低耦合);
    . 创徏?谁应该创Z个实?;
    . 高聚?一个类的属性一起完成得很好);
    . 低耦合(减少对象间的依赖?;

4.  改变的必?br />{:1) 一个系l中的对象存在是因ؓ它们完成一些作务帮助系l完成它们的目标;
    2) 每个d需要一定时间完成以及需要在对象间传递一些信?
    3) pȝ中的每个对象代表一l特定的zd;
    4) 你也应该考虑一个操作中所调用的对象以及它们是如何交互d成这个操作的, 一个对象所完成的每个操作或子操作是如何改变对象的内在状态的;


5.  时序?br />{:1) 模仿一定时间内一个系l的单个操作;
    2) 每个时序图:
       . 和一个用例或一个用例中的一个情景直接联p?
       . 定每个q程中所调用的对?
       . 定在一个过E中发现的行业或事g;
       . 定在每个过E中必须传输什么信?
       . 定每个行ؓ后需要什么响?
       . 对于每个用例臛_产生一个时序图
    3) 在分析阶D,他们仅媄响交互。在设计阶段Q每个交互将会{Z个方法调用?br />    4) 一个用例至一个时序图, 时序囑֏以制作得很复杂以昄一个用例的多个情景Q但最好还是每个情景对应一个时序图?/p>

6.  协作?br />{:1) 可以作ؓ时序囄可选对?
    2) 对象通过标有序号的箭头连接,q些头昄了信息的程;
    3) 头从动作源指向目标对象;
    4) 头标有序号昄了在一个情景中它们使用的顺?
    5) 协作囄上去像对象图的子集。操作中被调用的对象在图中表Cؓ装有对象名称的盒子?/p>

7.  状态{换图
{:1) 时序囑֒协作图显CZ在一定时间段内系l中对象是如何传递信息的;
    2) 状态{换图昄了在一定时间段内一个对象是如何改变的,它的Ҏ是如何被其它对象所调用;
    3) l成Q状态和事g;
    4) 头用于昄对象各种状态间的\?
    5) 每个头昄了该对象是如何完成特定事?

8.  状?br />{:1) 所有对象均有状态,M对象的当前状态由存储于其属性中的值指C?
    2) 设想一台打印机Q它要么闲置、要么忙,打印机只有二U状态:闲置和忙?

9.  事g
{:1) 事g是一个对象从一U状态{换到另一U状态的促进因素;
    2) 事g表现为方法调用。方法是一个对象的某些或一pd改变状态的d;
    3) 当一些对象调用打印机的print()Ҏ,状态由闲置改变为忙,print()Ҏ的调用就是导致状态改变的事g;
    4) 一个对象通常处于它状态中的一U,q意味着他们是稳定的。同时也意味着状态的改变应该快好?/p>

              |ˉˉˉˉˉ|      print     |ˉˉˉˉˉ|
              |   idle   |--------------->|   busy   |
      ?---->|          |                |          |
              |          |<---------------|          |
              |__________|      eof       |__________|
                   |
                   | delete
                   ?br />                   ?/p>

10. zd?br />{:1) 昄一个对象和工作的关系以及描述了相应的处理Ҏ;
    2) 每个用例只有一个活动图;
    3) 每个zd表现Z个圆Q该圆上有连接线q到下一个活动。这个连接线被称为板?trigger);
    4) 一个活动能产生多个板机Q这依赖于活动的l果;

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



liulang 2006-09-25 23:29 发表评论
]]>
վ֩ģ壺 jizzѲ| ߿Ƭ˳Ӿ| ˳ɫ777777߹ۿ| йƷһëƬѲ| ߹ۿ| ѹҹ˽Ӱ| ĻƵѹۿ| һ߹ۿƵ| ޹һƵ| ĻƵww| ޾ƷŮþ7777777| ɫ͵͵͵³ۺ| ߾ƷƵ| ձ߹ۿ| ޾Ʒ| 91avƵ| һƬѿ| ƷѲ| ձ| AVƬվ| ľavרavëƬ| ѹԺ߹ۿ| ձһ߹ۿ| sihuƷ| Ʒһ鶹| ͵v͵v޸| ʵƵѹۿ| AëƬ| Ʒ߲| ޾ƷþþþYW| ޼߹ۿ| ޴߶ר| ôӲˬƵ| AëƬ| þþþþྫƷֱ | AVվ| ůůձƵ| 2021ƷƵ| һ˿wwwƵ߹ۿ| ޸Ʒһ| ˳Ƭ߹ۿ|