【软工视频】第九章面向对象技术

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 【软工视频】第九章面向对象技术

目录

面向对象的概念

什么是面向对象:Coad和Yourdon 给出了一个定义:“面向对象=对象+类+继承+通信”

对象

对象:对象是面向对象开发模式的基本成分;每个对象可用它本身的一组属性和他可以执行的一组操作来定义。属性一般只能通过执行对象的操作来改变。操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其他对象使用

对象是系统中用来描述客观事物的一个实体,是构成系统的基本单位,一个对象有一组属性和这组属性可执行的一组操作构成

消息:消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明

类的定义

是一组具有相同数据结构和相同操作的对象的集合
定义包括一组数据属性和在数据上一组合法操作

一旦标识了一个类,就给出了它的规格说明,其中包括类的实例可执行的操作和它们的数据表示

对每一个,无论是在哪一个阶段标识的类都是如此。

类的规格说明定义了施加于对象的数据存储上的一组操作。

类的实现

通过变量的声明、操作界面的实现以及支持界面操作的函数的实现,可实现一个类的语气行为和状态。

实现是与语言有关的,一个好的面向对象语言应当分离公有界面与其内部实现

类的测试

如果类的定义提供的界面比较狭窄,那么穷举测试有可能实现。

类的测试是在最抽象的层次开始,炎继承关系继续向下进行

已经测试过的部分不需要从新测试

继承

是使用已存在的定义作为基础建立新定义的技术;新类的定义可以是既存类所声明的数据和新类所增加的声明的组合
特殊类的对象拥有其一般类的全部属性与服务就称作特殊类对一般类的继承

面向对象方法的开发过程

面向对象方法改进了在生存期各个阶段之间的接口,因为在生存期各个阶段所开发出来的“部件"都是类。

在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。

对象模型化技术OMT

对象模型是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作及它们之间的关系

在OMT中,类与类之间的关系叫做关联
动态模型:着重于系统的控制逻辑。包括两个图:状态图,事件追踪图

状态图:是一个状态和时间的网络,侧重于描述每一类对象的动态行为

在状态图中,状态是对某一时刻中属性特征的概括。而状态迁移表示这一类对象在何时对系统内外发生的那些事情做出何种响应
操作是一个伴随状态迁移的瞬时发生的行为,与触发事件一起表示在有关的状态迁移之上

动态模型由多个状态图组成。各个状态图并发地执行,并可以独立地改变状态

事件:一个事件发生在某一时刻;每个事件都是单独发生的;我们建立事件类,并非每个事件一个名字,以指明共同结构和行为;事件从一个对象向另一个对象传送信息
事件追踪图:侧重于说明发生于系统执行过程中的一个特定“场景”;场景也叫脚本,是完成系统某个功能的一个事件序列

状态图与事件追踪图关系:状态图叙述一个对象的个体行为;事件追踪图给出多个对象所表现出来的集体行为
功能模型:表明通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行;由多个数据流图组成,他们指明从外部输入,通过操作和内部存储,直到外部输出,这个整个的数据流情况。

数据流图中允许加入控制流,但这样做将于动态模型重复,不建议加入

基于三个模型的分析过程

功能模型着重于系统内部数据的传送和处理

功能模型定义作甚么

动态模型定义何时做

对象模型定义对谁做

构造OOA概念模型的层次

构造和评审OOA概念模型的顺序和有五个层次组成

识别类和对象

面向对象分析的第一个层次主要是识别类和对象;雷和对象是对与应用有关的概念的抽象;这一层工作是整个分析模型的基础

选择类和对象的原则

目标系统必须记住类和对象的某些事情;类和对象应当提供某些服务或处理;多属性;所有属性对于类中所有实例都应有意义

标识结构:面向对象分析的下一步工作;典型的结构:一般化-特殊化结构;整体-部分结构

标识一般化-特殊化结构

对于每一个类和对象,将它看做是一个一般化的类,对它的所有特殊情况,考虑以下问题:他是否在问题讨论中?他是否在系统的职责内?继承性是否存在?他是否能够符合选择类和对象的标准?

标识整体-部分结构的方法和策略

应当寻找什么:1总体-部分;2包含-内含;3收集-成员

标识属性:下一个层次称为属性层,对前面已识别的类和对象做进一步的说明。在这里,对象所保存的信息称为它的属性

类的属性所描述的是状态信息,每个实例的属性值表达了该实例的状态值

标识属性的方法和策略

找出属性;将属性安放到适当的位置;找出实例连接;检查特殊情况;描述属性;考虑取值范围、极限值、缺省值、建立和存取权限、精确度、是否会受到其他属性值等

定义服务的方法和策略

找出每个对象的所有状态,在各种状态需要做的工作。利用状态迁移图;找出必要的操作;建立消息连接;描述服务:利用状态转换图。脚本和事件追踪图,描述服务的功能

消息连接的标识

两个对象之间可能存在着由于通信需要而形成的关系,这成为消息连接;消息连接表示从一个对象发送消息到另一个对象,由那个对象完成某些处理

找出消息连接的方法及策略
对于每一个对象,执行:查询该对象需要哪些对象的服务;查询哪个对象需要该对象的服务

标识主题:主图可以看成高层的模块或子系统;对于面向对象分析模型,主题标识此模型的整体框架

面向对象设计(OOD)

面向对象设计继续做面向对象分析阶段的工作,建立软件的结构。主要工作分为两个阶段:高层设计;类设计

高层设计:高层设计阶段开发系统的结构,即构造应用软件的总体模

型。

高层设计阶段标识在计算机环境中进行问题解决工作所需要的概念,并增加了一批需要的类

高层设计可以表征为标识和定义模块的过程;模块可以是一个单个的类,也可以是由一些类组合成的子系统。定义过程是职责驱动的

原则:应使得在子系统的各个高层部件之间的通信量达到最小;子系统应当把那些成组的类打包,形成高度的内聚;逻辑功能分组,提供一个一个单元,识别并定位问题事件。

问题论域部分是指那些执行基本应功能的对象。可以将O0A模型当作问题论域部分的初始版本,逐步地细化这个初始版本,使其最终能解决实现限制特性要求、性能缺陷等方面的问题。

在OOA 阶段得到的概念模型描述了要解决的问题;

人机交互部分

指定了用于系统的某个特定实现的界面技术。在OOA阶段给出了所需的属性和操作。

1.用户分类:按技能层次分类:;按组织层次分类:;按职能分类;:

任务管理部分则指定了那些创建系统时必须建立的操作系统部分。

数据管理部分定义那些与所用数据库技术接口的对象

2.描述人及其任务的脚本

对以上定义的每一类用户,列出对以下问题作出的考虑:什么人、目的、特点、成功的关键因素、熟练程度以及任务脚本

3.设计命令层

研究现行的人机交互活动的内容和准则;建立一个初始的命令层;细化命令层

4.设计详细的交互

用户界面设计有若干原则,包括:一致性:采用一致的术语。一致的步骤和一致的活动;操作步骤少:不要“哑播放”

5.继续做原型

用户界面是用户界面设计的重要工作。使用快速原型工具做出原型让用户使用,通过用户反馈、修改、演示的迭代,使界面越来越有效

6.设计HIC(人机交互)类

窗口需要进一步细化;设计HIC类,首先从组织窗口和部件的用户界面界面设计开始

任务管理部分的设计

任务是进程的别称,是执行一系列活动的一段程序;任务管理包括任务的选择和调制

识别事件的驱动任务
固定时钟驱动任务

识别优先任务和关键任务

识别协调者

评审各个任务


定义各个任务:工作主要包括:他是什么任务,如何协调工作及如何通信。(1)他是什么任务(2)如何协调工作(3)如何通信(4)一个模板

数据管理部分的设计

数据管理部分提供了在数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。他分离了数据管理结构缩管细腻的事项,包括文件、关系型DBMS或面向对象DBMS等

类测试的种类

1基于定义的测试:把类当做黑盒对待,确认类的实现是否遵照它的定义

2基于程序的测试:考虑类的实现,确定代码编写的是否正确

组装测试

类组装:测试一个新类时,需要先测试在定义中所涉及的类,再考虑这些类的组装

总体组装

把所有组成完整软件的各个部分集合在一起;这种测试所选择的测试用例应当瞄准待开发软件的目标,并且应当提供数据给测试者,已确定软件开发是否与它的目标相吻合。

相关文章
|
30天前
|
存储
面向对象技术(第二周)
面向对象技术(第二周)
|
30天前
|
存储 测试技术 数据处理
【软件设计师备考 专题 】定义软件需求的方法:结构化分析与面向对象分析
【软件设计师备考 专题 】定义软件需求的方法:结构化分析与面向对象分析
87 0
|
30天前
|
算法
【编程技巧】精通编程的秘密武器:高效编程技巧揭秘!
【编程技巧】精通编程的秘密武器:高效编程技巧揭秘!
26 0
|
11月前
【软工视频】第七章软件维护
【软工视频】第七章软件维护
|
12月前
|
算法
谈一谈|编程中的数学思维
谈一谈|编程中的数学思维
112 0
|
设计模式 算法 Java
软考——软件设计师:第八章:面向对象技术考点总结(完整篇)
软考——软件设计师:第八章:面向对象技术考点总结(完整篇)
软考——软件设计师:第八章:面向对象技术考点总结(完整篇)
|
小程序 JavaScript 前端开发
兴趣编程六步法
欢迎来到我的小院,在当今时代,科技力量代表一个国家的核心竞争力,其中计算机编程技术尤为重要,可以从中学习逻辑分析能力,业务抽象能力,专注思考能力等等,美国等一些发达国家,已经把编程教育纳入小学课本中,所以我们也需要加快步伐,掌握编程的一些理念和实战技巧。
兴趣编程六步法
|
程序员 C++
当我学会了类,就离领悟面向对象编程不远了(基础)!!(熬夜爆肝)
当我学会了类,就离领悟面向对象编程不远了(基础)!!(熬夜爆肝)
101 0
当我学会了类,就离领悟面向对象编程不远了(基础)!!(熬夜爆肝)
|
设计模式 Java
一起来看引用与现实的邂逅 | 带你学《Java面向对象编程》之二十二
本节通过三则分析为读者介绍了类关联结构、类自身关联等逻辑与合成设计模式的概念,带读者去理解类的灵活性。
一起来看引用与现实的邂逅    | 带你学《Java面向对象编程》之二十二
《数学与泛型编程:高效编程的奥秘》一3.6 毕氏构想中的严重缺陷
本节书摘来自华章出版社《数学与泛型编程:高效编程的奥秘》一 书中的第3章,第3.6节,作者:丹尼尔E.罗斯(Daniel E. Rose),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1389 0

相关实验场景

更多