OOAD与UML

1.OOAD(Object Oriented Analysis and Design)面向对象分析和设计

--OOA 分析阶段,主要解决以下问题:

  --建立对业务问题域的清晰视图

  --列出必须要完成的核心业务

  --针对问题域建立公共词汇表

  --列出针对此问题域的最佳解决方案

  --要解决的核心问题:What to do

--OOD 设计阶段,主要解决以下问题:

  --如何解决具体的业务问题

  --引入系统工作所需的支持元素

  --定义系统的实现策略

  --要解决的核心问题:How to do

域模型:

  域模型是面向对象的,在OO中,域模型也称设计模型,主要有以下内容组成:

    --具有状态和行为的域对象

    --域对象之间的关系(关联Association、依赖Dependency、聚集Aggregation、一般化(泛化)Generalization)

关联关系:

  一对一:从Person到IDCard的一对一的单向关联,Person中持有IDCard的标志,如id

  多对一:从Order到Customer的多对一的单向关联,Order中持有Customer的标志,如id

  一对多:从Customer到Order的一对多的单向关联,Customer持有Order的标志集合,如id的List

  多对多:Customer和Order间的双一对多向关联,互相持有彼此的标志集合,如id的List

  

依赖关系:

  一个类A中访问另一个类B中的方法,并构造B类的实例,称A依赖B

  

聚集关系:

  聚集指整体和部分间的关系,在实体域对象间很常见

  

一般化关系:

  一般化关系指类之间的继承关系

   

内聚域耦合:

  内聚:度量一个类独立完成某项工作的能力

  耦合:度量系统内或系统之间依赖关系的复杂度

  设计原则:增加内聚,减少耦合

软件开发过程:

  传统开发过程

    --瀑布模型,不适应多变的需求

  统一软件开发过程(USDP)

 

 OOAD的开发过程

  --大的项目分解为一些子项目

  --使用UML工具

  --统一开发过程是一个迭代的、递增的开发过程,每一次迭代是生命周期中的一个步骤

  --每一个迭代的阶段,应做的工作:

    ---选择并分析相关用例

    ---根据所选的架构进行设计

    ---在组件层次实现设计

    ---验证组件满足用例的需要---每次设计前要预先设计好用例

  --每一次迭代完成目标后,开发将进入下一个迭代周

  迭代的好处:一定程度适应用户变化、每一次迭代周期只是完成既定的特定功能,迭代周期开始后不再加入新的内容,新的功能需求可以在下一个周期加入,每一个周期完成后可以给用户展示获取用户反馈,以方便把握用户需求。

软件迭代过程

  -初始化阶段

    --项目启动

    --建立业务模型

    --定义业务问题域

    --找出主要的风险因素

    --定义项目需求的外延

    --创建业务问题域的相关说明文档

  -细化阶段

    --高层分析与设计

    --建立项目的继承框架

    --监督主要的风险因素

    --质地昂达成项目目标的创建计划

  -构建阶段

    --完成代码及功能的实现

  -交付阶段

    --向用户发布产品

    --beta测试

    --性能调优、用户培训和接收测试,注意,一个项目开始时不应过于考虑性能,任务重点应该防止功能实现上,否则会耽误项目的进度。性能调优往往需要经过大量的测试进行的。

每一个迭代阶段所含工作流:

  -需求-分析-设计-实现-测试-,如此周而复始

  

 

  2 UML中9种基本图形

  UML(Unified Modeling Language),是一种图形化的语言,可以OOAD过程中标识元素、构建模块、分析过程、并可以通过文档说明系统中的重要细节

UML图分类

  -静态模型(static model)

    --创建并记录一个系统的静态特征

    --反映一个软件系统基础、固定的框架结构

    --创建相关问题域的主要元素的视图

    --静态建模包括:

      ---用例图(use case diagrams)

      ---类图(class diagrams)

      ---对象图(object diagrams)

      ---组件图(component diagrams)

      ---部署图(deployment diagrams)

  -动态模型(dynamic model)

    --动态建模用以展示系统的行为

    --动态建模包括:

      ---时序图(sequence diagrams)

      ---协作图(collaboration diagrams)

      ---状态图(state chart diagrams)

      ---活动图(activity diagrams)

 用例图

  -展示系统核心功能及与其交互的用户,用户被成为活动者(Actor),用例使用椭圆表示,为了简化建模过程,用例可以标注优先级

  

  上图表示的意思:不同用户可以进行不同的操作

类图

  -表示类的特征,描述了多个类、接口的特征、以及对象直接的协作与交互,由一个或多个矩形区域构成,内容包括类型(类名)、属性(可选)、操作(可选)

  

对象图:

  对象图用于展现对象的特征和对象间的交互关系

  

组件图:

  表示组件直接的关系

  

部署图:

  表现用于部署软件应用的物理设备信息

  

 

转载于:https://www.cnblogs.com/ShouWangYiXin/p/10575898.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值