首页 > 其他分享 >软件工程与实践(第四版 新形态)第3章习题答案详解

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

时间:2024-03-24 20:33:10浏览次数:18  
标签:分析 继承 新类 面向对象 论域 新形态 第四版 习题 既存

第三章

一、填空题

(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图详解

标签:分析,继承,新类,面向对象,论域,新形态,第四版,习题,既存
From: https://blog.csdn.net/a1234567822/article/details/136978266

相关文章

  • Scala函数练习题
    1、定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作比如:Array(“hh”,“red”,“java”,“hadoop”)规则:对集合中每个元素进行操作,得到集合每个元素的长度objecttest{defmain(args:Array[String]):Unit={vallist=Array("hh","red","ja......
  • Scala练习题
    1、定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作比如:Array(“hh”,“red”,“java”,“hadoop”)规则:对集合中每个元素进行操作,得到集合每个元素的长度packageljobjectaaa{defmain(args:Array[String]):Unit={vallist=Array("......
  • 习题4-11 兔子繁衍问题
    探索--题目集索引一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?输入格式:输入在一行中给出一个不超过10000的正整数N。输出格式:在一行......
  • AcWing基础语法课第二讲习题
    第二讲判断语句665.倍数#include<iostream>usingnamespacestd;intmain(){inta,b;cin>>a>>b;if(a%b==0||b%a==0)cout<<"SaoMultiplos"<<endl;elsecout<<"NaosaoMul......
  • PTA基础编程练习题目集 7—4 BCD解密
    题目描述:BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!现在,你的程序要读入这个错误的十进......
  • SAM 练习题
    两个技巧:SAM匹配,删除最前面字符后缀树路径上,字符串长度连续一个区间的子串可以倍增得到线段树合并维护\(\text{endpos}\)SP687link考虑周期转Border,一个存在的Border为\(\text{lcp}(i,j)\),对应周期为\(|i-j|\),周期出现整次数为\(\dfrac{|i-j|}{\text{lcp}(......
  • 多项式习题
    P3338[ZJOI2014]力给定数组\(q\),有:\[E_j=\sum\limits_{i=1}^{j-1}\frac{q_i}{(i-j)^2}-\sum\limits_{i=j+1}^{n}\frac{q_i}{(i-j)^2}\]求数组\(E\)。首先把数组从\(0\)开始编号。然后如果有数组\(g_i=\dfrac{1}{i^2}\),\(g_0=1\),我们发现:\(E\)的前半部分就是\(q\)......
  • 山东大学23强基班计算机导论第三次习题答案
    山东大学23强基班计算机导论第三次习题答案7-1计算分段函数[1]分数10作者颜晖单位浙大城市学院本题目要求计算下列分段函数f(x)的值:输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x)=result”的格式输出,其中x与result都保留一位小数。输入样例1:10......
  • 第一章 计算机网络概述——提纲 + 练习题(体系结构相关习题、时延计算相关习题)
    文章目录第一章计算机网络概述1.2因特网概述1.3三种交换方式1.4计算机网络的分类1.5计算机网络的性能指标1.6计算机网络的体系结构(重点、难点)第一章-习题第一部分-体系结构相关1、2、3、4、5、6、7、8、9、10、练习题第二部分-时延相关1、2、3、4、5、第一......
  • 栈和队列章节课后习题答案集锦
    目录4.34.44.54.84.94.114.124.3#include<stdio.h>#include<stdlib.h>//定义栈的最大容量#defineMAX_SIZE100//定义栈结构typedefstruct{chardata[MAX_SIZE];inttop;}Stack;//初始化栈voidinitStack(Stack*s){s->top=-1;......