面向对象分析与设计

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)

未完待续

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容