【软件工程】——面向对象技术

【前言】

面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然的描述客观世界中的有关事物。面向对象技术的基本特征主要有抽象性、封装性、继承性、多态性。

【学习】

一、面向对象的概念

1、什么是面向对象:面向对象=对象+类+继承+通信

以客观实际存在,去构思程序
对象:面向对象开发模式中基本成分,每个对象可用它本身的一组属性和它可以执行的一组操作来定义
属性一般只能通过执行对象的操作来改变
操作又成为服务或者方法,它描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。
对象是系统中用来描述客观事物的实体,他是构成系统的一个基本单位,一个对象由一组属性和这组属性进行操作的一组服务构成。

2、消息:

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

3、类:

具有相同数据结构和相同操作的对象的集合,它为属于该类的全都对象提供了统一的抽象和描述,其包括属性和服务。类是模具,对象是成品
类的定义包括一组数据属性和在数据上的一组合法操作

4、继承

:使用已存在的定义作为基础建立新定义的技术
新类的定义可以是既存类所声明的数据和新类所增加的声明的组合

二、面向对象方法的开发过程

1、面向对象分析(OOA)

用生存期:信息系统描述——论域分析——应用分析——高层设计——类开发——实例建立——组装测试——维护

2、论域分析:开发问题论域的模型,建立大致的系统实现环境

应用分析:根据特定应用的需求进行论域分析,应用分析细化在论域分解阶段所开发出来的信息

3、类的实现:通过变量的声明,操作界面的支持界面的操作的函数实现,可实现一个类的预期行为和状态。

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

4、类的测试

如果类的定义提供的界面比较狭窄。那么穷举测试就有可能实现,类的测试在最抽象的层次开始,沿继承关系继续向下进行。
一体机测试过的部分不需要再重新测试。

5、求精和维护

这是一个软件在生存期中最话费时间的不疯魔,传统的维护活动是针对应用的,而求精过程是针对类的,针对把类集成在一起的结构
标识抽象的抽象,使得继承结构通过一般化增加新的层次,即在既存的根类智商增加新的层次。

6、对象模型化技术OMT

对象模型(对谁做) 描述系统的静态结构,在MOT中,类与类之间的关系叫做关联
功能模型(做什么) 通过计算,从输入数据的到什么样的输出数据,不考虑参加计算的数据按什么时序执行,功能模型由多个数据流图组成。侧重于系统内部数据的传送和处理
动态模型(何时做) 控制逻辑,它包括两个图:状态图、事件追踪图
这个模型化过程是一个迭代的过程

7、类之间关联的类型

聚合 代表整体与部分之间的关系,是一种特殊形式的关联
限定 以关联的含义做某种约束
角色 用来说明关联的一端

8、事件

一个事件发生在某一时刻
每个事件都是单独发生法的
给每个事件一个名字,以指明共同结构和行为
事件从一个对象响向另一个对象传递消息

9、OOA面向对象分析

(1)、两个任务
形式的说明我i们所面对的应用问题
明确地规定构成系统的对象如何协同合作,完成制定功能。
(2)、构造OOA概念模型的层次:类与对象、属性、服务、结构、主题
(3)、标识结构
一般化—特殊化结构:如果类A具有类B全部属性和服务,并且具有自身特有的属性和服务,类A叫做类B的特殊类,类B是类A是一般类。
使用继承将较一般化的服务和属性放在一般化的类和对象中

整体—部分结构:如果对象A是对象B的一个组成部分,则称B为A的整体对象,A为B的部分对象,两者之间的关系称为整体和部分关系、

(4)、标识一般-特殊结构的方法和策略
它是否在问题论域中
是否在系统的职责内
继承性是否存在
它是否能够符合选择类和对象的标准

(5)、标识整体-部分结构的方法和策略
应当寻找什么
总体-部分
包含-内含
收集-成员

(6)标识属性的方法和策略
找出属性
将属性安放在适当的位置
找出实例连接
检查特殊情况
描述属性
考虑取值范围

(7)定义服务的方法和策略
利用状态迁移图
找出必要的操作
建立消息连接:两个对象之间可能存在着由于通信而形成的关系
描述服务

(8)、标识主题
主题:是把一组具有较强联系的类组织在一起得到类的集合
主题可以看成是高层的模块或子系统
对于面向对象分析模型,主题标识此模型的整体框架

三、10、面向对象设计(OOD)

1、高层设计

高层设计阶段开发系统的结构,即构造应用软件的总体模型
(1)特点
表征为标识和定义模块的过程
模块可以是一个单个的类,也可以是由一些类组合成的子系统
定义过程是责任驱动

遵循原则
通信量达到最小
高内聚,低耦合
逻辑功能分组

(2)Coad和Yourdon高层设计方法
四个部分
问题论域部分 执行基本应用功能的对象
人机交互部分 指定了用于系统的某个特定实现的,界面技术
任务管理部分 指定了那些创建系统是必须建立的操作系统部分
数据管理部分 定义了那些与所用数据库技术接口的对象

2、用户界面部分的设计

(1)用户分类
按技能层次分类
按组织层次分类
按职能分类

(2)描述人及其任务的脚本
什么人、特点、成功的关键因素
(3)设计命令层
研究现行的人机交互活动的内容和准则
建议一个初始的命令层
细化命令层
(4)设计详细的交互
(5)继续做原型
(6)设计HIC(人机交互)类

3、任务管理部分的设计

任务:进程的别称,是执行一系列活动的一段程序
任务管理主要包括任务的选择和调整
(1)定义各个任务
它是什么任务
如何协调工作
如果通讯
一个模板

4、数据管理部分的设计

文件管理
关系数据库管理
面向对象数据管理

5、面向对象环境下的测试策略

单元测试(类测试):基于定义的测试(黑盒测试功能),基于程序的测试(白盒测试结构)
组装测试(集成测试):基于线索测试,基于应用测试,类之间的关联。类组装、总体组装
确认测试:测试需求,黑盒测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
面向对象的编程中,C语言并不直接支持类和抽象的概念。引用中提到,final关键字用来修饰方法,表示该方法不能在子类中被覆盖。而abstract关键字用来修饰抽象方法,表示该方法必须在子类中被实现。然而,在C语言中,没有对应的关键字来实现类和抽象的概念。 相反,C语言通过结构体来模拟类的概念。结构体是一种用户自定义的数据类型,可以包含多个不同类型的数据成员。通过结构体,我们可以将相关的数据和功能组合在一起。然而,C语言中的结构体不支持继承和多态等面向对象的特性。 在C语言中,我们可以使用函数指针来模拟抽象类和接口的概念。函数指针可以指向不同的函数,通过使用函数指针,我们可以实现多态性,即在运行时根据函数指针指向的具体函数来执行不同的操作。 综上所述,C语言并不直接支持面向对象中的类和抽象的概念,但可以使用结构体和函数指针来实现类似的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [面向对象——类和对象](https://blog.csdn.net/shouyeren_st/article/details/126210622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [面向对象编程原则(06)——依赖倒转原则](https://blog.csdn.net/lfdfhl/article/details/126673771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值