软件工程与实践(第4版 新形态) 练习与实践1

软件工程与实践(第4版 新形态) 练习与实践1

1.填空题

(1)程序,文档

(2)系统软件,支撑软件,应用软件

(3)系统方法

(4)软件开发和维护

(5)工程的概念、原理、技术和方法

(6)实现软件的优质高产

(7)软件开发技术和软件工程管理

2.选择题

(1)B

(2)D

(3)A

(4)C

(5)B

3.简答题

(1)什么是软件?软件和程序的区别是什么?

答:软件(Software)是计算机及手机等终端设备运行的程序、数据、文档和服务的集合,包括指令程序、数据、相关文档和完善的售后服务的完整集合。即:软件=程序 + 数据 + 文档 + 服务。

软件和程序的区别是:

软件程序
软件主要依赖于操作系统。程序主要依赖于编译器。
软件的各种类别包括应用软件、系统软件、计算机编程工具等。没有这样的程序类别。
软件的大小一般从兆字节(Mb)到千兆字节(Gb)。程序的大小一般从千字节(Kb)到兆字节(Mb)。
软件通常由具有专业知识和经验的人开发,并且在开发软件方面受过培训,也被称为软件开发人员。程序通常是由初学者开发的,没有任何经验。
软件可以是一个通常在计算机上运行的程序。程序不能是一个软件。
如果计算机中不存在软件,那么计算机就没有用处。如果计算机中没有程序,那么由于操作系统的存在,计算机也可以很好地运行。
软件可以通过互联网下载到电脑上,不需要任何程序。如果计算机中没有任何软件,程序就不能在计算机上运行。
软件的特点包括安全、可靠、正确等。程序的特点包括可靠、成本效益、可维护性、盈利性等。
创建软件比创建程序需要更多时间。创建程序所需的时间比软件少。

(2)什么是软件危机?软件危机的主要表现是什么?怎样消除软件危机?

答:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

软件危机的主要表现:

  1. 软件的发展跟不上硬件的发展和用户的需求,软件成本高;
  2. 软件的成本和开发进度不能预先估计,用户不满意;
  3. 软件产品质量差,可靠性不能保证;
  4. 软件产品可维护性差;
  5. 软件没有合适的文档资料。

消除软件危机:

  1. 使用好的软件开发技术和方法
  2. 使用好的软件开发工具,提高软件生产率
  3. 有良好的组织、严密的管理,各方面人员相互配合共同完成任务

(3)什么是软件工程?什么是软件过程?软件过程与软件工程方法学有何关系?

答:软件工程:软件工程是计算机科学的一个重要分支。软件工程是指导计算机软件开发和维护的学科。软件工程采用工程的概念、原理、技术和方法来开发与维护软件。软件工程的目标是实现软件的优质高产,目的是在经费的预算范围内按期交付出用户满意的、质量合格的软件产品。

软件过程:软件过程(software process)ISO9000定义为:将输入转化为输出的一组彼此相关的资源和活动。

软件过程与软件工程方法学的关系:软件过程是软件工程方法学的一部分,它是软件工程方法学中的一个重要组成部分,是软件工程方法学的实施过程。

(4)软件工程学的主要内容是什么?

软件工程原理软件目标、原则、学科基础
软件工程过程开发过程、运作过程、维护过程,如获取、供应、管理、开发、运作、维护、支持、剪裁
软件工程技术开发技术、管理技术、度量技术、维护技术、应用技术
软件工程方法开发方法、管理方法、度量方法、维护方法、应用方法、环境方法
软件工程模型领域模型、需求模型、设计模型、实现模型、测试模型
软件工程管理项目管理、质量管理、文档管理
软件工程度量规模、复杂度、进度、费用、工作量
软件工程环境硬件、网络、支撑软件
软件工程应用应用软件工程基本原理、方法、技术解决特定领域问题

(5)软件工程学的基本原理是什么?

答:

(1)开发小组的人员应该优化组合且少而精。

(2)用分阶段的生存周期计划进行严格管理。

(3)坚持进行阶段评审。软件的质量保证工作不能等到编码阶段结束之后再进行。

(4)实行严格的软件产品控制。

(5)采用现代程序设计技术。

(6)软件工程结果应能清楚地审查。

(7)承认不断改进软件工程实践的必要性。

(6)什么是软件生存周期?软件生存周期为什么要划分阶段?划分阶段的原则是什么?

**软件生存周期:**软件生命周期(Software Life Cycle)是从设计软件产品开始,到产品不能使用为止的时间周期。软件生命周期通常包括软件计划阶段、需求分析阶段、设计阶段、实现阶段、测试阶段、安装阶段和验收阶段以及使用和维护阶段,有时还包括软件引退阶段。

软件生存周期为什么要划分阶段:

阶段划分是软件工程的核心实践,通过降低复杂度、明确目标、控制风险、优化资源、保障质量,确保软件开发过程可控、高效且可预测。不同项目可根据需求选择适合的模型(如瀑布、敏捷、螺旋模型),但阶段化管理的核心理念始终贯穿其中。

划分阶段的原则是:

  1. 各阶段的任务彼此间尽可能相对独立。这样便于逐步完成每个阶段的任务,能够简化每个阶段的工作,容易确立系统开发计划。
  2. 同一阶段的工作任务性质尽可能相同。这样有利于软件工程的开发和组织管理,明确系统各方面开发人员的分工与职责范围,以便协同工作,保证质量。

(7)什么是软件开发方法?软件开发方法有哪些主要方法?

答:软件开发方法是指系统化、规范化的流程和技术的集合,用于指导软件从需求分析到维护的全过程。

软件开发方法有瀑布模型、快速原型模型、增量模型、喷泉模型、统一过程模型。

(8)比较各种软件开发模型(模式)的特点。

模型流程特点核心优势主要挑战典型适用场景
瀑布模型线性不可逆管理简单,文档完备无法应对需求变化需求明确的小型传统项目
快速原型模型原型迭代验证需求快速明确用户真实需求原型可能误导开发方向需求模糊的创新产品
增量模型分阶段交付可用版本用户早期参与,风险分散架构设计需前瞻性需快速占领市场的模块化系统
喷泉模型面向对象阶段重叠高灵活性,适应复杂系统管理难度大面向对象的分布式系统开发
统一过程模型迭代分阶段风险优先平衡灵活性与规范性实施成本高需求复杂的大型企业级项目

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

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

相关文章

基于遗传算法的无人机三维路径规划仿真步骤详解

基于遗传算法的无人机三维路径规划仿真步骤详解 一、问题定义 目标:在三维空间内,寻找从起点到终点的最优路径,需满足: 避障:避开所有障碍物。路径最短:总飞行距离尽可能短。平滑性:转折角度不宜过大,降低机动能耗。输入: 三维地图(含障碍物,如立方体、圆柱体)。起…

LIUNX学习-线程

线程概念 一个进程需要访的大部分资源,诸如自身的代码、数据、new\malloc的空间数据、命令行参数和环境变量、动态库、甚至是系统调用访问内核代码…都是通过虚拟地址空间来访问的。换而言之,进程地址空间是进程的资源窗口!!   …

1.Big-endian/ little endian大端对齐、小端对齐

一、大端模式、小端模式的介绍 Little endian:是低位字节排放在内存的低地址端、高位字节排放在内存的高地址端。 Big-endian:是高位字节排放在内存的低地址端、低位字节排放在内存的高地址端。 西门子是大端模式,因为比如 MW100 MB100(高位…

[mybatis]resultMap详解

resultMap Mybatis中提供了resultMap功能,可以将数据库查询结果映射到Java对象,用于解决 字段名与属性名不一致 或 复杂关系(如一对多)的映射问题。 比如一个User类,在它的属性里还有另一个子对象(或者多…

SpringBoot Actuator

SpringBoot Actuator 一、简介二、入门1、依赖2、默认监控指标3、查询监控指标4、全量监控指标 三、Spring Boot Admin1、主要功能2、Admin3、Client4、应用墙5、其他 四、定制化1、定制Health端点2、定制Info端点3、定制Metrics端点4、定制Endpoint端点 一、简介 SpringBoot自…

python标识符

在 Python 中,标识符(Identifier)是指用来标识变量、函数、类、模块等的名称。标识符的命名规则如下: 1. 标识符的命名规则 字母、数字和下划线:标识符可以由字母(a-z, A-Z)、数字(…

06 HarmonyOS Next性能优化之LazyForEach 列表渲染基础与实现详解 (一)

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 目录 一、代码结构概览二、详细代码解析1. 数据源管理实现2. 数据结构定义3. 优化的列表项组件4. 主列表组件实现 一、代码结构概览 本文将详细解…

vscode 查看3d

目录 1. vscode-3d-preview obj查看ok 2. vscode-obj-viewer 没找到这个插件: 3. 3D Viewer for Vscode 查看obj失败 1. vscode-3d-preview obj查看ok 可以查看obj 显示过程:开始是绿屏,过了1到2秒,后来就正常看了。 2. vsc…

excel 斜向拆分单元格

右键-合并单元格 右键-设置单元格格式-边框 在设置好分割线后,你可以开始输入文字。 需要注意的是,文字并不会自动分成上下两行。 为了达到你期望的效果,你可以通过 同过左对齐、上对齐 空格键或使用【AltEnter】组合键来调整单元格中内容的…

家政保洁维修行业有没有必要做小程序?

【家政创业必看】家政行业小程序值得做吗?4大核心优势告诉你! 随时随地下单:客户手机一键预约,告别找电话/翻页面的麻烦 品牌专业升级:精美界面服务详情用户评价,打造可信赖形象 营销神器&#xff1…

利用Python爬虫按图搜索1688商品(拍立淘)

在电商领域,按图搜索商品(拍立淘)已成为一种重要的功能,尤其适合用户通过图片快速查找相似商品。1688开放平台提供了按图搜索商品的API接口,允许开发者通过图片获取相关的商品信息。本文将详细介绍如何使用Python爬虫技…

20250305随笔 HTML2Canvas 详解与使用指南

1. 简介 html2canvas 是一个用于将 HTML 页面或特定 DOM 元素转换为 Canvas 画布的 JavaScript 库。它通过解析 HTML 和 CSS,生成等效的 Canvas 图像,从而实现网页截图功能。 2. 安装 可以使用 npm 或 yarn 安装 html2canvas,也可以通过 C…

【初探数据结构】链表OJ算法——哨兵位(合并两个有序链表详解)

文章目录 哨兵位(Sentinel Node)的作用实战演练思路讲解详细步骤1. **处理特殊情况(边界条件)**2. **创建哨兵节点**3. **初始化两个指针,遍历两个链表**4. **合并两个链表**5. **处理剩余节点**6. **返回合并后的链表…

libcoap在Ubuntu下的编译(基于CMake)

引言 libcoap 是一个开源的轻量级 C 语言库,用于实现 CoAP(Constrained Application Protocol,受限应用协议)。CoAP 是一种专为资源受限设备设计的轻量级通信协议,适用于物联网(IoT)和嵌入式系…

命名管道实现传递数据到二进制文件

一 前言: 在做项目的过程中,一般来说我们的信息输入是有固定的端口/来源的,但是在当前的越来越快的开发节奏下,往往会出现输入源还未完全确定的情况下需要我们先实现功能逻辑,信号接受端后面再对接。或者数据接受端和功…

VSCode知名主题带毒 安装量900万次

目前微软已经从 Visual Studio Marketplace 中删除非常流行的主题扩展 Material Theme Free 和 Material Theme Icons,微软称这些主题扩展包含恶意代码。 统计显示这些扩展程序的安装总次数近 900 万次,在微软实施删除后现在已安装这些扩展的开发者也会…

如何快速的解除oracle dataguard

有些时候,我们为了使oracle dg的standby库另做他用,需要解除oracle dataguard数据同步。我本地因为standby库存储出现故障,导致dg存在问题,故需要解除。今天,我们通过使用部分命令,实现dg的快速解除。 1&a…

Windows系统编程(七)HotFixHook

InoolineHook需要读写两次内存(先HOOK,再还原),这种Hook方式,性能比较低,具有局限性。今天所讲的HotFixHOOK(热补丁)是InlineHook的升级版 Win32 API特殊性 Win32API的实现代码有这…

Python Web应用开发之Flask框架——基础

一、前言 在即将开启的 Flask 学习之旅中,为了能够顺利掌握并运用 Flask 进行 Web 开发,您需要具备一定的基础知识,同时了解相应的运行环境。 需要你具备的知识:Python 编程语言、HTML、CSS、HTTP协议、数据库(如:MySQL、MongoDB) 本文所使用的环境:操作系统Windows…

TCP通讯与基于C#TCP通讯,跨窗收发消息Demo

TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它广泛应用于互联网中的数据通信,如网页浏览、文件传输、电子邮件等。以下是TCP通信的基本概念和工作原理: 1. TCP的特点 面向连接:通信前…