面向对象分析与设计

1.OOAD 面向对象分析与设计

OO 面向对象
A 分析
D 设计

分析阶段(What to DO)
  • 建立针对业务问题的清晰逻辑视图
  • 列出系统必须要完成的核心任务
  • 针对问题域建立公共词汇表
  • 列出针对此问题域的最佳解决方案
设计阶段(How to DO)
  • 如何解决具体的业务问题
  • 引入系统工作所需的支持元素
  • 定义系统的实现策略
OOP(面向对象编程)的主要特征

抽象、封装、继承、
多态、关联、聚合、组合、内聚与耦合

  • 抽象:忽略对象或实体的细节而只关注其本质特征的过程
  • 封装:隐藏数据和实现,提供公共方法供用户调用
    内部视图:对象如何完成工作
    外部视图:对象如何完成工作
  • 继承:通过存在的类型定义新类型的机制,实现代码重用
  • 多态:一个名称、多种形式,基于继承的方式
  • 关联:对象之间交互时的一种引用方式
  • 聚合:特殊的关联关系,强关联关系,一个对象作为另一个对象的属性而存在,一个对象是另一个对象的组成部分
  • 组合:当一个对象包含另一个对象,外部对象负责管理内部对象的生命周期,最强烈的一种关联,内部对象完全由外部对象控制
OO的相关概念

也可称为设计模型,可以由以下内容组成:

  • 具有状态和行为对象
  • 域对象之间的关系
    关联、依赖、聚集、一般化(泛化)

关联关系:一对多、多对一、一对一、多对多实线、线箭头
依赖关系:一类依赖另一类中的方法虚线、线箭头
聚集关系:整体和部分之间的关系空菱形箭头、实线
泛化关系:类与类之间的继承关系空三角箭头、实线

内聚与耦合:

  • 内聚:一个类独立完成某项工作的能力
  • 耦合:度量系统内或系统之间依赖关系的复杂度
  • 目标:高内聚低耦合
开发模式

瀑布模型:需求-分析-设计-开发-测试
统一软件开发过程(USDP):大项目分解为一些子项目,使用UML工具,是一个迭代递增的过程。

迭代、递增的生命周期:项目周期时迭代、递增的,迭代是指生命周期中的一个步骤,迭代导致递增或者项目周期的增长、大项目分解为子项目。


2.UML

UML结构.png

UML即Unified Modeling Language 统一建模语言,图形化的语言表示

帮助我们在OOAD的过程中标识元素、构建模块、分析过程、并可通过文档说明系统中的重要细节。
熟悉UML的九种基本图形

UML图的分类

静态模型(static model)

创建并记录一个系统的静态特征
反映一个软件系统基础、固定的框架结构
创建相关问题域主要元素的视图
包括有用例(况)图类图对象图组件图部署图

动态模型(dynamic model)

用以展示系统的行为
包括有时序图协作图状态图活动图

UML其他的重要元素
  • 包(package)
  • 扩展机制

注释
构造型
标记值
限制

核心UML图

用例图(Use Case Diagram)
展示系统的核心功能以及与之交互的用户
参与者(actor)用小人图标表示,用例使用椭圆表示,为简化建模过程,用例图可标注优先级
小人用户实线加线箭头指向椭圆用例
actor - directed_association - use_case
有一类特殊的参与者构造型(矩形框,书名号带名称,表示另一个系统扮演的参与者)

类图(Class diagram)

  • 表现类的特征
  • 描述了多个类、接口的特征,以及对象之间的协作与交互
  • 由一个或多个矩形区域构成,包括:
    类型(类名)属性(可选)attributes操作(可选)operation
  • 常用的类与类之间的关系:
    关联关系(directed association)聚合组合依赖泛化(generalization)

未完待续

你可能感兴趣的:(面向对象分析与设计)