软件设计师笔记——(第七章:面向对象技术)

目录

一、下午题总结(试题三)(⭐⭐⭐)

1、第一问

2、第二问

3、第三问

二、面向对象基本概念(⭐⭐)

三、面向对象开发技术(⭐⭐)

四、UML概述(⭐⭐⭐)

1、事物

2、关系

3、图

五、UML中的图(⭐⭐⭐)

1、类图

2、用例图

3、状态图

4、其余六种图


一、下午题总结(试题三)(⭐⭐⭐)

1、第一问

1.补全用例图中参与者和用例名称

  • ①一般情况下用例图中都会出现英文,注意填写名字时与图中的英文相对应
  • ②注意说明中出现的“如果......那么.......”、“若......那么.......”(出现这种可选可不选的情况)可以理解为是扩展用例,对应扩展extend中的特殊情况。
  • ③如果某一关键词仅仅在某一句中出现,一定要注意此段中的必然联系。

2、第二问

1.给出类图中对应的名称

  • ①注意与图中的英文相对应的名词。

3、第三问

1.简要解释用例之间的include(包含)、extend(扩展)、generalize(泛化)关系的内涵。

  • include(包含):一个用例包含另一个用例,当基本用例执行时,被包含用例一定会执行。包含关系由基本用例指向被包含用例,关系是一条带箭头的虚线,虚线上包含<<include>>
  • extend(扩展):当一个用例执行时,可能会出现特殊情况和可选情况,这个时候就会执行扩展用例。扩展关系由扩展用例指向基本用例,关系是一条带箭头的虚线,虚线包括<<extend>>
  • generalize(泛化):父用例泛化子用例,子用例继承父用例的所有属性和行为,并且子用例可以将父用例替换。空心箭头子用例指向父用例。

2.根据说明中的描述,给出在线购买书籍的用例描述。(用例描述中必须包括基本事件流和所有的备选事件流)

注册成功的顾客可以登录系统在线购买书籍(Buy books)。
购买时可以浏览书籍信息,包括书名(title)、
作者(author)、内容简介(introduction)等。
如果某种书籍的库存量为0,那么顾客无法查询到该书籍的信息。
顾客选择所需购买的书籍及购买数量(quantities),
若购买数量超过库存量,提示库存不足;
若购买数量小于库存量,系统将显示验证界面,要求顾客输入注册码。
注册码验证正确后,自动生成订单(Order),
否则,提示验证码错误。如果顾客需要,可以选择打印订单(Print order)。
----------------------------------------------------------------
一、基本事件流:
顾客登陆系统,顾客浏览书籍信息、顾客选择所需购买是书籍及购买质量、
系统显示验证信息、顾客输入注册码、系统自动生成订单。

二、备选事件流:
1.如果某种书籍的库存量为0,那么顾客无法查阅到该书籍的信息。
2.如果购买数量超过库存量,提示库存不足。
3.注册验证码错误,提示验证码错误。
4.如果顾客需要,可以打印订单。

二、面向对象基本概念(⭐⭐)

  • 面向对象方法包括:面向对象分析、面向对象设计、面向对象实现
  • 面向对象=对象+分类+继承+通过消息的信息
  • 三大特征:封装、继承、多态。
  • 基础:抽象是面向对象的基础(类是对象的抽象,对象是类的实例)。

1.对象:是基本的运行实体,既包括(数据、状态、成员变量)【属性】,也包括作用于数据的(操作、方法、函数)【行为】。

  • 对象是封装一组属性和行为的整体。
  • 对象的特性:具有清晰的边界、良好定义的行为、可扩展性

2.消息:对象之间进行通信的一种构造叫做消息。

3.类:定义了一组大体相似的对象结构。

  • 一个类所包含的方法和数据描述一组对象的共同行为和属性。
  • 类是对象的抽象,对象是类的实例。
  • 类可以分为三种:实体类、接口类(边界类)、控制类。
  • 实体类:对必须存储的信息和相关行为建模的类,应用领域的核心类
  • 边界类:系统内部与系统外部的业务主角之间进行交互建模的类。
  • 控制类:用于对一个或几个用例所特有的控制行为进行建模,充当协调者

4.封装:是一种信息隐蔽技术。

  • 目的:使对象的使用者和生产者分离。
  • 不需要知道软件内部是如何工作的,只需要知道如何使用组件。
  • 当类中设计为private(权限修饰符)时,只有此类中定义的方法才能进行访问。

5.继承:父类和子类之间共享数据和方法的机制(在已存在类中创建新类)。

  • (父类=超类=基类)(子类=派生类)(一个父类可以有多个子类)
  • 一个子类继承父类的属性和操作(不必再重复定义,但前提是非私有化private)
  • 子类可以创建自己的属性和操作,从而覆盖父类的行为。

6.多态:不同对象收到同一个消息可以产生完全不同的结果(由继承机制来支持)。分为如下四类:

  • 参数多态(不同类型参数多种结构类型):比较广泛的多态,最纯的多态。
  • 包含多态(父子类型关系):许多语言中都存在,子类型化。
  • 过载多态(类似于重载,一个名字不同含义):同一名字在不同上下文含义不同。
  • 强制多态(强制类型转换)

7.绑定:在编译时绑定叫做静态绑定,在运行时绑定叫做动态绑定。(动态绑定是和类的继承以及多态相联系的)

8.函数重载:与覆盖要区分开,函数重载与子类父类无关,且函数是同名不同参数

9.经典例题 

三、面向对象开发技术(⭐⭐)

1.面向对象分析(OOA):侧重于理解问题(抽取和整理用户需求并建立问题域精确模型)。

  • 面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、确定对象的操作、定义对象的内部信息。

2.面向对象设计(OOD):侧重于解决方案。(协作以满足需求、延续分析)

  • OOD在复用OOA的基础上包含了对应的五个活动:识别类与对象、定义属性、定义服务、识别关系、识别包。

3.面向对象测试(OOT):分为算法层、类层、模板层、系统层四个层次设计。

面向对象五大设计原则:

  • ①单一责任原则:就一个类而言,应该仅有一个引起它变化的原因。
  • ②开放-封闭原则:软件实体应该是可以扩展开放的;但是不可修改的 ,即封闭的。
  • ③里氏替换原则:子类型必须能够替换掉它们的基类型,基类出现的地方子类一定可以出现。
  • ④依赖倒置原则:细节依赖于抽象但不依赖于细节。(高层模块不应该依赖于底层模块,二者都应该依赖于抽象)
  • ⑤接口分离原则:依赖于抽象而不依赖于实体。
  • ⑥共同重用原则:如果重用了包中一个类,那么就要重用包中所有的类。
  • ⑦共同封闭原则:一个变化若对一个包产生影响,则将对该包所有的类产生影响, 而对于其它的包不构成任何影响。

四、UML概述(⭐⭐⭐)

UML 是统一建模语言,和程序设计语言并无关系。

  • UML3种构造块:事物(对模型中最具有代表性的成分的抽象)、关系(把事务结合在一起)、图(聚集了相关的事物)。

1、事物

UML中有4种事物:结构事物、行为事物、分组事物、注释事物。

  • 结构事物:是UML模型的静态部分,描述概念或物理元素。(包括:类、接口、协作、用例、主动类、构件、制品、结点)
  • 行为事物:是UML模型的动态部分,描述了跨越时间和空间的行为。(包括:交互、状态、活动)
  • 分组事物:是UML模型的组织部分。最主要的分组事物是包(Package)。
  • 注释事物:是UML模型的解释部分。注解是一种主要的注释事物。

2、关系

UML中有4种关系:依赖、关联、泛化、实现(关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖)

1.依赖:一个事物变化会影响另一个事物(带箭头的虚线,指向被使用者)。

2.关联:对象之间的连接。

  • 组合:部分不可以脱离整体存在(生命周期相同)。
  • 聚合:部分可以脱离整体存在。

3.泛化:是一种特殊和一般的关系(类似继承,带三角箭头的实线,特例指向基类)。

4.实现:一个类指定另一个类,保证执行的契约(带三角箭头的虚线,箭头指向父类)。

3、图

五、UML中的图(⭐⭐⭐)

1、类图

1.类图:静态图,展现一组对象、接口、协作和它们之间的关系。

  • (“+”:表示public)(“-”:表示private)(“#”:表示protected)
  • 系统静态建模时,通常只对如下三种方式使用类图:对系统的词汇建模、对简单的协作建模、对逻辑数据库模式建模。

2.经典例题

2、用例图

1.用例图:静态图,展现了一组用例、参与者以及它们之间的关系。

  • 用例:参与者完成的一系列操作。
  • 参与者:外部实体。
  • 扩展关系《extend》:一个用例执行的时候,可能会发生一些特殊的情况或可选的情况(“如果......那么.......”、“若......那么.......”)可以理解为是扩展用例,对应扩展extend中的特殊情况。
  • 包含用例《include》:一个用例包含另一个用例,当基本用例执行时,被包含用例一定会执行

2.经典例题 

3、状态图

1.状态图:用于描述一个对象之间的交互(反应型对象建模)(事件[监护条件] / 动作)。

  • 转换包括两个状态(源状态、目标状态)、事件监护条件、动作。
  • 活动(动作)可以在状态内执行,也可以在状态转换(迁移)时执行。
  • 事件触发转换。
  • 可以出现多个源状态,也可以没有目标状态,但一定要有源状态。

2.经典例题 

4、其余六种图

1.对象图:静态图,展现了某一时刻一组对象以及他们之间的关系。(类名下面需要加下划线)

2.序列图(顺序图):动态图,强调消息时间顺序的交互图。

  • 序列图有对象生命线,是一条垂直的虚线。
  • 序列图有控制焦点,是一个瘦高的矩形,表示一个 对象执行一个动作所经历的时间段。
  • 同步消息:进行阻塞调用,需要等待返回消息,用实心三角箭头表示。
  • 异步消息:发出消息后继续执行,不引起调用者阻塞,也不等待返回消息,用空心箭头表示。
  • 返回消息:由从右到左的虚线箭头表示。

3.通信图(通信图):动态图,只强调事件之间的通信,和顺序图统称为交互图。

  • 通信图有路径,有顺序号。

4.活动图:动态图,一种特殊的状态图,展现了在系统内从一个活动到另一个活动的流程。

5.构件图(组件图):静态图,展现了一组构建之间的组织和依赖。

  • 半圆是需接口,整圆是供接口。

6.部署图:静态图,展现了系统的软件和硬件之间的关系。

  • 立体的图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大小胖虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值