【软件工程与实践】(第四版)第3章习题答案详解

news/2024/4/27 13:37:41/文章来源:https://blog.csdn.net/a1234567822/article/details/136978266

第三章

  • 一、填空题
  • 二、选择题
  • 三、简答题
  • 四、实践题

一、填空题

(1)方法或服务
(2)类 对象
(3)类 对象 继承 消息通信

二、选择题

(1)B
(2)C
(3)C
(4)B
(5)D

三、简答题

(1)什么叫面向对象?面向对象方法OOM的特点是什么?为什么用OOM开发软件?
答:面向对象是一种软件开发方法,它将数据和操作数据的方法封装在对象中,通过对象之间的交互来实现程序的功能
面向对象方法OOM具有以下的特点:
(1)符合人类分析解决问题的习惯思维方式;
(2)各阶段所使用的技术方法具有高度连续性;
(3)开发阶段有机集成有利系统稳定;
(4)重用性好。
使用面向对象方法开发软件可以提高代码的重用性、可维护性和灵活性。

(2)面向对象的开发方法与面向数据流的结构化开发方法有什么不同?

面向对象的开发方法面向数据流的结构化开发方法
强调的是数据和操作数据的行为绑定在一起,形成对象侧重于数据在系统中的流动和处理
面向对象的方法注重于系统的可重用性、可扩展性和可维护性强调程序的逻辑结构,通常使用流程图来表示数据流和控制流
使用类、对象、继承、封装和多态等概念来构建软件使用过程、函数、子程序等概念来组织代码
使用抽象和封装来隐藏内部实现细节,只暴露必要的接口-
适用于复杂的系统开发,特别是那些需要高度模块化和可维护性的系统适用于需求明确、规模较小的系统开发

(3)面向对象的特征和要素是什么?
答:面向对象编程是一种编程范式,它通过封装、继承、多态和抽象等特征,将数据和操作数据的代码组织成对象,以实现代码的重用、扩展和维护

(4)基于复用的面向对象的需求分析过程中主要分为哪两个阶段?它们各自承担什么任务?如何衔接?
答:两个阶段:论域分析和应用分析
论域分析是软件开发的一个基本组成部分,它给出一组抽象,这组抽象是论域知识的高层表示,它常常超出当前应用的范围,可以用来作为特定系统需求开发的参考。
论域分析是一个持续的活动,它所涉及的范围可超出特定应用,当论域变化时,可不断更新相关的抽象和关系。论域分析的结果可积累更多的有关论域的经验和细化的抽象。
应用分析的依据是在论域分析时建立起来的论域分析模型,并把它用于当前正在建立的应用当中。客户对系统的需求可以当作限制来使用,用它们缩减论域的信息量。就这一点来说,保留的信息受到论域分析视野的影响。论域分析产生的模型并不需要用任何基于计算机系统的程序设计语言来表示,而应用分析阶段产生的影响则伴随着某种基于计算机系统的程序设计语言的表示。响应时间需求、用户界面需求和某种特殊的需求,如数据安全等,都在这一层分解抽出。

(5)在类的通过复用的设计中,主要的继承关系有哪几种?试举例说明。
答:在类的通过复用的设计中,主要的继承关系有两大类:
配置:利用既存类来设计类,可能会要求由既存类的实例提供类的某些特性。通过把相应类的实例声明为新类的属性来配置新类。例如,一种仿真服务器可能要求使用一个计时器来跟踪服务时间。设计者不必开发在这个行为中所需的数据和操作,而是应当找到计时器类,并在服务器类的定义中声明它。但如果使用既存类的内部表示来做为新类的内部表示的一部分,这是一-种“针对实现”的继承方式,这种继承方式不好。
演变:要开发的新类可能与一个既存类非常类似,但不完全相同。此时可以从一个既存类演变成一个新类,可以利用继承机制来表示一般化——特殊化的关系。特殊化处理有三种可能的方式。如果新的概念是一个既存类所表示概念的一个特殊情况,特殊化运算可以从该既存类的定义产生新类的初始构造,这是典型的类继承的使用。

四、实践题

参考链接:UML概述及UML图详解

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达深度学习笔记:神经网络的编程基础2.5-2.8

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第二周:神经网络的编程基础 (Basics of Neural Network programming)2.5 导数(Derivatives)2.6 更多的导数例子(More Derivative Examples&…

Node.js学习(一)

版权声明 本文章由B站上的黑马课程整理所得,仅供个人学习交流使用。如涉及侵权问题,请立即与本人联系,本人将积极配合删除相关内容。感谢理解和支持,本人致力于维护原创作品的权益,共同营造一个尊重知识产权的良好环境…

【二叉树】Leetcode 543. 二叉树的直径【简单】

二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例1: 输入:root [1,2…

C语言实现顺序表(增,删,改,查)

目录 一.概念: 1.静态顺序表:使用定长数组存储元素。 2.动态顺序表:使用动态开辟的数组存储。 二.顺序表的实现: 1.顺序表增加元素 1.检查顺序表 2.头插 3.尾插 2.顺序表删除元素 1.头删 2.尾删 3.指定位置删 3.顺序表查找元素 …

使用Qt生成图片

Qt之生成png/jpg/bmp格式图片_qt生成图片-CSDN博客 (1)使用QPainter 示例关键代码: QImage image(QSize(this->width(),this->height()),QImage::Format_ARGB32);image.fill("white");QPainter *painter new QPainter(&image);painter->…

深入浅出:探索Hadoop生态系统的核心组件与技术架构

目录 前言 HDFS Yarn Hive HBase Spark及Spark Streaming 书本与课程推荐 关于作者: 推荐理由: 作者直播推荐: 前言 进入大数据阶段就意味着 进入NoSQL阶段,更多的是面向OLAP场景,即数据仓库、BI应用等。 …

TCPView下载安装使用教程(图文教程)超详细

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:更多干货,请关注专栏《网络安全自学教程》 TCPView是微软提供的一款「查看网络连接」和进程的工具,常用来查看电脑上的TCP/UDP连接…

【Leetcode】2580. 统计将重叠区间合并成组的方案数

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 给你一个二维整数数组 ranges ,其中 ranges[i] [starti, endi] 表示 starti 到 endi 之间(包括二者)的所有整数都包含在第 i 个区间中。 你需要…

MappedByteBuffer VS FileChannel:从内核层面对比两者的性能差异

本文基于 Linux 内核 5.4 版本进行讨论 自上篇文章《从 Linux 内核角度探秘 JDK MappedByteBuffer》 发布之后,很多读者朋友私信我说,文章的信息量太大了,其中很多章节介绍的内容都是大家非常想要了解,并且是频繁被搜索的内容&…

ubuntu 中安装docker

1 资源地址 进入ubuntu官网下载Ubuntu23.04的版本的镜像 2 安装ubuntu 这里选择再Vmware上安装Ubuntu23.04.6 创建一个虚拟机,下一步下一步 注意虚拟机配置网络桥接,CD/DVD选择本地的镜像地址 开启此虚拟机,下一步下一步等待镜像安装。 3…

Git bash获取ssh key

目录 1、获取密钥 2、查看密钥 3、在vs中向GitHub推送代码 4、重新向GitHub推送修改过的代码 1、获取密钥 指令:ssh-keygen -t rsa -C "邮箱地址" 连续按三次回车,直到出现类似以下界面: 2、查看密钥 路径:C:\U…

银行监管报送系统介绍(十一):金融基础数据报送系统

为了全面落实和实现国务院办公厅下发《关于全面推进金融业综合统计工作的意见》中的综合统计工作的总体目标,中国人民银行调查统计司于2020年6月12日下发了《关于建立金融基础数据统计制度的通知(试行)》。 2020金融基础数据采集报送 报送时…

Kubernetes概念:服务、负载均衡和联网:2. Gateway API

Gateway API 官方文档:https://kubernetes.io/zh-cn/docs/concepts/services-networking/gateway/ Gateway API 通过使用可扩展的、角色导向的、 协议感知的配置机制来提供网络服务。它是一个附加组件, 包含可提供动态基础设施配置和高级流量路由的 API…

9.windows ubuntu 子系统,centrifuge:微生物物种分类。

上次我们用了karken2和bracken进行了物种分类,这次我们使用centrifuge. Centrifuge 是一种用于快速和准确进行微生物分类和物种鉴定的软件。其主要功能包括: 快速分类和物种鉴定: Centrifuge 可以对高通量测序数据(如 metagenomic 或 RNA-Se…

[NLP] 初窥000001

NL(natural language)–自然语言 人类的语言–中文,英语,法语 NLP(Natural Language Processing)–自认语言处理 计算机处理人类语言的技术,它包含翻译、智能问答、文本分类、情感分析等常见应用。 CV(Computational Vision) 感知NLP 认知…

【Java程序设计】【C00388】基于(JavaWeb)Springboot的校园竞赛管理系统(有论文)

Springboot的校园竞赛管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 博主介绍:java高级开发,从事互联网行业六年,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,博客…

2024/3/27打卡更小的数(十四届蓝桥杯)——区间DP

目录 题目 思路 代码 题目 思路 题目说求数组某个区间中的数进行翻转,由于区间选择多,首先想到DP问题。 第一版想到的方法(错误的),当进行状态计算的时候,无法判定区间是否翻转后满足要求,…

js改变图片曝光度(高亮度)

方法一: 原理: 使用canvas进行滤镜操作,通过改变图片数据每个像素点的RGB值来提高图片亮度。 缺点 当前项目使用的是svg,而不是canvas 调整出来的效果不是很好,图片不是高亮,而是有些发白 效果 代码 …

阿里云ECS选型推荐配置

本文介绍构建Kubernetes集群时该如何选择ECS类型以及选型的注意事项。 集群规格规划 目前在创建Kubernetes集群时,存在着使用很多小规格ECS的现象,这样做有以下弊端: 网络问题:小规格Worker ECS的网络资源受限。 容量问题&…

验证码/数组元素的复制.java

1,验证码 题目:定义方法实现随机产生一个5位的验证码,前面四位是大写或小写的英文字母,最后一位是数字 分析:定义一个包含所有大小写字母的数组,然后对数组随机抽取4个索引,将索引对应的字符拼…