软件工程——第12章面向对象实现知识点整理

news2024/11/25 16:34:11

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明!

文章目录

1. 面向对象语言技术的特点?

2.选择面向对象程序设计语言时主要应该考虑哪些因素?

3.面向对象设计结果只能用面向对象语言实现吗?

4.面向对象实现应该选用哪种程序设计语言?为什么?

5.面向对象程序中特有的封装、继承和多态等机制给面向对象测试带来了哪些新特点?

6.良好的面向对象程序设计风格主要有哪些准则?

7.提高可重用性的准则有哪些?

8.提高可扩充性的准则有哪些?

9.提高健壮性的准则有哪些?

10.面向对象的单元测试最小的可测试单元是?

11.面向对象的集成测试主要有哪两种不同的策略?

12.面向对象的确认测试主要根据什么来确认测试用例?

13.面向对象测试关注于哪两点?

14.主要有哪些设计单元测试用例的方法?(即测试类的方法)

 15.主要有哪些设计集成测试用例的方法?

16.主要有哪些设计确认测试用例的方法?

章末小结


1. 面向对象语言技术的特点?

  1. 支持类与对象概念的机制
  2. 实现聚集(整体-部分)结构的机制
  3. 实现泛化(一般-特殊)结构的机制
  4. 实现属性和服务的机制
  5. 提供实用的类库
  6. 利用类库,实现高效率
  7. 持久保存对象

2.选择面向对象程序设计语言时主要应该考虑哪些因素?

  1. 将来能否占主导地位:为了使自己的产品在若干年后仍然具有很强的生命力
  2. 可重用性:采用面向对象方法开发软件的基本目的和主要优点是通过重用来提高软件的生产率
  3. 类库和开发环境:决定可重用性的因素,不仅仅是面向对象程序语言本身,开发环境和类库也是非常重要的因素
  4. 其他因素:对用户学习面向对象分析、设计和编码技术所能提供的培训服务;在使用这个面向对象语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台、发行平台;对机器性能和内存的需求;集成已有软件的容易程度等。

3.面向对象设计结果只能用面向对象语言实现吗?

不是。面向对象设计结果既可以用面向对象语言实现,也可以用非面向对象语言实现

4.面向对象实现应该选用哪种程序设计语言?为什么?

应该选择能够更完整、更正确地表达问题域语义的面向对象语言。

因为面向对象语言相对于非面向对象的语言,其突出的优点是:

  1. 一致的表示方法
  2. 可重用性
  3. 可维护性

5.面向对象程序中特有的封装、继承和多态等机制给面向对象测试带来了哪些新特点?

增加了面向对象测试和调试的难度

6.良好的面向对象程序设计风格主要有哪些准则?

  1. 提高可重用性
  2. 提高可扩充性
  3. 提高健壮性

7.提高可重用性的准则有哪些?

  1. 提高方法的内聚
  2. 减小方法的规模
  3. 保持方法的一致性
  4. 把策略与实现分开
  5. 方法应全面覆盖所有可能的结果
  6. 尽量不使用全局信息
  7. 利用继承机制

8.提高可扩充性的准则有哪些?

  1. 封装实现策略
  2. 不要用一个方法遍历多条关联链
  3. 避免使用多分支语句
  4. 精心确定公有方法

9.提高健壮性的准则有哪些?

  1. 预防用户的操作错误
  2. 检查参数的合法性
  3. 不要预先确定限制条件
  4. 先测试后优化

10.面向对象的单元测试最小的可测试单元是?

面向对象的单元测试最小的可测试单元是封装起来的类和对象

测试面向对象软件时,不能孤立地测试单个操作,而应该把操作作为类的一部分来测试

11.面向对象的集成测试主要有哪两种不同的策略?

  1. 基于线程的测试
  2. 基于使用的测试

12.面向对象的确认测试主要根据什么来确认测试用例?

面向对象的确认测试主要根据动态模型和描述系统行为的脚本来设计确认测试用例

13.面向对象测试关注于哪两点?

  1. 适当的操作序列
  2. 检查类的状态

14.主要有哪些设计单元测试用例的方法?(即测试类的方法)

  1. 随机测试
  2. 划分测试
  3. 基于故障的测试

 15.主要有哪些设计集成测试用例的方法?

        集成测试方法必须对类间协作进行测试,可用随机测试方法和划分测试方法,以及基于情景的测试和行为测试来完成

16.主要有哪些设计确认测试用例的方法?

可以采用传统的黑盒方法,也可以采用基于情景的方法

章末小结

        面向对象方法学把分析、设计和实现很自然地联系在一起了。虽然面向对象设计原则上不依赖于特定的实现环境但是实现结果和实现成本却在很大程度上取决于实现环境。因此,支持面向对象设计范式的面向对象程序语言、开发环境、及类库,对于面向实现来说是非常重要的。

        为了把面向对象设计结果顺利地转变成面向对象程序,首先应该选择一种适当的程序设计语言。面向对象的程序设计语言非常适合用来实现面向对象设计结果。具有方便的开发环境和丰富的类库的面向对象程序设计语言,是实现面向对象设计的最佳选择

        良好的程序设计风格对于面向对象实现来说格外重要。它既包括传统的程序设计风格准则,也包括与面向对象方法的特点相适应的一些新准则

        面向对象方法学使用独特的概念和技术完成软件开发工作,因此,在测试面向对象程序的时候,除了继承传统的测试技术之外,还必须研究与面向对象程序特点相适应的新的测试技术。

面向对象测试的总目标与传统软件测试的目标相同,也是用最小的工作量发现最多的错误。但是,面向对象测试的策略和技术与传统测试有所不同,测试的焦点从过程构件(传统模块)移向了对象类。

        一旦完成了面向对象程序设计,就开始对每个类进行单元测试。测试类时使用的方法主要有随机测试、划分测试和基于故障的测试。每种方法都测试类中封装的操作。应该设计测试序列以保证相关的操作受到充分测试。检查对象的状态(由对象的属性值表示),以确定是否存在错误。

        可以采用基于线程基于使用的策略完成集成测试。基于线程的测试,集成一组相互协作以对某个输入或某个事件作出响应的类。基于使用的测试,从那些不使用服务器类的类开始,按层次构造系统。设计集成测试用例,也可以采用随机测试和划分测试方法。此外,从动态模型导出的测试用例,可以测试指定的类及其协作者。

        面向对象系统的确认测试也是面向黑盒的,并且可以应用传统的黑盒方法完成测试工作。但是基于情景的测试是面向对象系统确认测试的主要方法

下一章:软件工程——第13章软件项目管理知识点整理(完结)

反反复复,扎扎实实;念念不忘,必有回响!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/746742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第三方ipad电容笔哪个品牌好用?平板电容笔推荐

可能很多人都认为,苹果原装的电容笔,是不可取代,但我认为,这还要看个人的预算,以及实际的需求。苹果Pencil对于那些不太讲究画质的用户来说实在是太贵了,要是我们仅用于书写上,其实我们可以用平…

尚硅谷Docker实战教程-笔记13【高级篇,Docker轻量级可视化工具Portainer】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【基础篇,Docker理念简介、官网介绍、平台入门图解、平台架构图解】…

Python 自学 day01 变量,变量命名规则,一些语法

1. Python 的变量的知识 1.1 Python 编程命令的读取时从上到下的。 1.2 Python 变量的命名规则: 1.2.1变量名只能包含字母、数字和下划线。变量名能以字母或下划线打头,但不能以数字打 头。例如,可将变量命名为message…

BATJ 面试 Java 岗:精选 1200+ 面试题及答案

Z 认为,对于 Java 面试以及进阶的最佳学习方法莫过于刷题博客书籍总结,前三者 LZ 将淋漓尽致地挥毫于这篇文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考,…

网络安全(黑客技术)自学路线笔记

一、什么是黑客? 黑客泛指IT技术主攻渗透窃取攻击技术的电脑高手,现阶段黑客所需要掌握的远远不止这些。 二、为什么要学习黑客技术? 其实,网络信息空间安全已经成为海陆空之外的第四大战场,除了国与国之间的博弈&am…

stm32 mpu6050 cubemx 卡尔曼滤波法读取角度

文章目录 前言一、cubemx配置二、mpu6050文件移植mpu6050.cmpu6050.h 三、主函数 前言 本文简述使用mpu6050读取原始数据后解算出角度。 网上大多都是dmp库来解算,但是这种情况操作起来相对复杂。 更方便的方法是使用卡尔曼滤波法来解算出角度,好处是代…

2023网络安全常见面试题汇总(附答案解析+配套资料)

以下为网络安全各个方向涉及的面试题,星数越多代表问题出现的几率越大,祝各位都能找到满意的工作。 注:所有的资料都整理成了PDF,面试题和答案将会持续更新,因为无论如何也不可能覆盖所有的面试题。 目录 一、渗透测试…

ELK 企业级日志分析系统(三)

ELK 一、Zookeeper理论部分zookeeper的定义与工作机制zookeeper的特点Zookeeper 数据结构Zookeeper 应用场景Zookeeper 选举机制 二、zookeeper部署实验三、Kafka消息队列为什么需要消息队列(MQ)使用消息队列的好处消息队列的两种模式 Kafka 定义Kafka 简…

layui树形菜单的实现

前言 继续上一篇博客的内容,在原来代码的基础上实现树形菜单功能 一. 树形菜单是什么? 在layui中,树形菜单是通过 Tree 组件实现的。Tree 组件提供了一种树形结构展示数据的方式,常用于显示层级结构的菜单、目录等。开发者可以…

虚拟机中安装RabbitMQ及使用(超详细)

目录 1. 安装Socat 2. 安装Erlang 3. 安装RabbitMQ 4. 开启管理界面及配置 5. 启动 6. 配置虚拟主机及用户 6.1. 用户角色 6.2. Virtual Hosts配置 6.2.1. 创建Virtual Hosts 6.2.2. 设置Virtual Hosts权限 1. 安装Socat 在线安装依赖环境: yum install g…

数据结构【二叉树】

数据结构之二叉树 二叉树的定义二叉树的5种基本形态二叉树的抽象类型定义二叉树的特殊类型二叉树的性质二叉树的存储结构1、顺序存储2、链式存储 遍历二叉树前序遍历中序遍历后序遍历遍历算法的分析 线索二叉树 二叉树的定义 在数据结构中,二叉树是n(n&…

uniapp 封装公共方法(无需每个页面引用,直接调用)

封装方法: 1. 在根目录下建立common文件夹 创建com.js 2.在main.js中挂载(写在定义vue之后) import $com from /common/com.js Vue.prototype.$com $com 3.在com.js中按照以下格式定义方法 export default {//定义需要的方法 } 4.使用 click"$com.已经定义的方法名&q…

分布式定时任务xxl-Job

目录 前言 项目介绍 1.源码目录介绍 2 “调度数据库”配置 3 架构设计 3.1 设计思想 5.3.3 架构图 实战 1.服务端部署 2.执行端配置 3.任务开发 3.1 基于方法注解任务 3.2 基于api任务 3.3 分片广播任务 4.任务执行 4.1 单任务执行 4.2 子任务执行 4.3 分片广…

高并发的哲学原理(二)-- Apache 的性能瓶颈与 Nginx 的性能优势

每一名后端开发可能都知道 Nginx 比 Apache 性能强,但是为什么强,强在哪里,接下来我们动手实验解答这个问题。 Nginx 利用了新的 Linux kernel API Nginx 利用了 Linux 内核引入的 epoll 事件驱动 API,大幅降低了海量 TCP 连接下…

IDEA+springboot+ssm+layui+mysql高校宿舍管理系统源码

IDEAspringbootssmlayuimysql高校宿舍管理系统源码 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.宿舍列表3.预分配宿舍4.宿舍分配信息5. 留校管理6. 报修管理7. 留言管理8.卫生管理9.我的宿舍10.我的报修11.卫生检查记录12.离校登记13.留校申请14.返校登记15.留言板16.…

IDEA+springboot + ssm +shiro+ easyui +mysql实现的进销存系统

IDEAspringboot ssm shiro easyui mysql实现的进销存系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.首页3.修改密码4.系统日志5. 用户管理6. 角色管理7. 进货入库8.退货出库9.进货单据查询10.退货单据查询11.当前库存查询12.销售出库13.客户退货14. 销售单据查询15…

消息中间件选型RabbitMQ基础入门

1. 消息中间件(MQ) 1.1 概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构 目前使用较多的消息队列有ActiveMQ&#xff…

使用 Docker 在 Windows、Mac 和 Linux 系统轻松部署 PostgreSQL 数据库

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

本地运行Segment Anything

按原项目GitHub - facebookresearch/segment-anything: The repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.步骤 Ins…

Apache Phoenix(1):Phoenix介绍

Phoenix官方网址:http://phoenix.apache.org/ 1 简介 Phoenix官网:「We put the SQL back in NoSQL」 Apache Phoenix让Hadoop中支持低延迟OLTP和业务操作分析。 提供标准的SQL以及完备的ACID事务支持通过利用HBase作为存储,让NoSQL数据库具…