一、软件工程概述+练习题

news2024/12/23 16:23:47

文章目录

  • 软件工程复习
    • 一、 概述
      • 1.常见考点
        • 1.1 什么是软件?
          • 软件的特点
        • 1.2 什么是软件危机?它的具体表现是什么?
          • 软件危机的概念
          • 软件危机的内容
          • 具体表现
          • 软件危机的原因
          • 消除软件危机的途径
      • 2.软件工程的三要素
          • 软件工程的定义
      • 3. 软件生存周期
      • 4. 软件过程模型
          • 瀑布模型
          • 增量模型
          • 螺旋模型
          • 喷泉模型
    • 二、练习题
      • 1.选择题
      • 2 简答题


软件工程复习


一、 概述

1.常见考点

1.1 什么是软件?
  • 程序+数据+文档
    软件在计算机系统中与硬件相互依存,包含了程序、数据及文档内容
  • 程序:能够完全预订功能和性能的可执行指令序列
  • 数据:使程序能够适当处理信息的数据结构
  • 文档:开发、使用和维护过程中所需要的图文资料
软件的特点

1.软件是一种逻辑实体
2.软件是人类智力产品
3.软件开发过程复杂
4.软件需要长期维护
5.软件成本昂贵
6.软件可以复杂

1.2 什么是软件危机?它的具体表现是什么?
软件危机的概念

在计算机软件开发和维护过程中所遇到的一系列严重问题

软件危机的内容
  • 1.如何开发软件,以满足对软件日益增长的需求
  • 2.如何维护数量不断膨胀的已有软件
具体表现
  • 对软件开发成本和进度估算不准确
  • 用户对已有软件不满意
  • 软件质量不可靠
  • 没有适当的文档资料
  • 软件不可维护
  • 软件成本的比例逐年上升
  • 软件开发生产效率低
软件危机的原因

在这里插入图片描述

  • 1.用户需求不明确
  • 2.缺乏正确的理论指导
  • 3.软件开发规模越来越大
  • 4.软件开发复杂的越来越高
消除软件危机的途径

在这里插入图片描述

  • 1.对计算机软件应该有正确认识
  • 2.吸收借鉴人类长期从事各种工程项目积累的原理、概念 、技术和方法
  • 3.积极开发和使用计算机辅助开发工具
  • 4.探索更好更高效的管理措施和手段对开发过程进行控制和管理

2.软件工程的三要素

软件工程的定义

采用工程的概念、技术、原理和方法来开发维护软件,把经过时间考验并且证明正确的管理技术和当前的技术方法结合起来,经济的开发出高质量的软件并进行维护。

过程、方法、工具
过程:为了获得高质量软件所需要完成的一系列任务框架 when
方法:完成软件开发各项任务的技术方法 how
工具:为运用方法提供的自动、半自动软件工程支撑环境
在这里插入图片描述


3. 软件生存周期

三个时期,八个阶段

1.软件定义时期:

  • 问题定义
  • 可行性研究
  • 需求分析

2.软件开发时期:

  • 总体设计
  • 详细设计
  • 编码和单元测试
  • 综合测试

3.软件维护时期:

  • 运营和维护

4. 软件过程模型

用软件生命周期模型描述软件过程

瀑布模型

在这里插入图片描述

将需求分析、设计、编码、测试、运营维护进行线性顺序连接,按固定顺序,像瀑布一样逐级下落
优点:

1.有利于大型软件开发过程中人员的组织、管理,
2.有利于软件开发方法和工具的研究,从而提高大型软件项目的开发质量和效率

缺点:

1.开发过程一般不能逆转,否则代价太大
2.实际的项目开发很难按照模型进行

增量模型

将需求分段为一系列增量产品,每一增量可以分别开发
在这里插入图片描述

优点:

1.人员分配灵活,刚开始不用投入大量人力资源
2.如果核心产品受欢迎,可以增加人力实现下一个增量
3.可以先发布部分功能给客户

缺点:

1.并行开发构件有可能遇到无法集成的风险
2.软件必须具备开放式的体系结构

螺旋模型

在这里插入图片描述

将开发过程分成几个螺旋周期,每个螺旋周期与瀑布模型相吻合
在每个螺旋周期中:

1.制定计划
2.风险分析
3.实施工程
4.用户评估

优点:

1.设计灵活,可以在项目的各个阶段进行变更
2.以小的分段来构建大型系统,方便计算成本

缺点:

1.过多的迭代次数会增加开发成本
2.会延迟提交时间

喷泉模型

以用户需求为动力,以对象作为驱动的模型,适用于面向对象的开发方法 在设计完成后才进行编码,并且允许各个开发活动交叉、迭代的进行

二、练习题

1.选择题

1.哪一种模型是软件的基础模型?

瀑布模型

2.软件生命周期中,所花费用最多的阶段是?

软件维护

3.综合测试是在软件周期的( )阶段制定的,在综合测试完成的

概要设计

4.软件危机通常是指在计算机软件开发和维护时,所产生的一系列严重的问题,这些问题中,相对次要的因素是()

开发进度

5.软件是一种()性工业产品

知识

6.软件的主要功能和结构是在( )阶段决定的

分析设计

2 简答题

1.什么是软件

软件是计算机系统中与硬件相互依存的一部分,包括程序、数据及文档的完整集合

2.软件的特点:

1.软件是一种逻辑实体
2.软件是人类智力产品
3.软件开发过程复杂
4.软件需要长期维护
5.软件成本昂贵
6.软件可以复杂

3.软件的生命周期

1.软件定义时期:问题定义 可行性研究 需求分析
2.软件开发时期:总体设计 详细设计 编码和单元测试 综合测试
3.软件维护时期:运营和维护

4.软件危机的原因和表现
5.解决软件危机的途径
6.软件过程是什么,举例软件过程的模型

见上文

点击移步博客主页,欢迎光临~

偷cyk的图

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

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

相关文章

在软件测试行业这种情况下,凭什么他能拿25k?我却约面试都难?

在当今竞争激烈的软件测试行业中,近期的招聘市场确实面临一些挑战。大量的求职者争相涌入岗位,许多热衷于功能测试的人士甚至难以找到理想的工作机会。更不幸的是,连自动化测试和性能测试这些专业领域也受到了测试开发人员的竞争压力。然而&a…

HashMap遍历之EntrySet————小练习

public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("jack",650);hashMap.put("tom",1200);hashMap.put("smith",2900);System.out.println(hashMap);//将jack的工资更改为2600hashMap.put("jack",…

基于ElasticSearch+Vue实现简易搜索

基于ElasticSearchVue实现简易搜索 一、模拟数据 产品名称描述价格库存数量品牌名称智能手表智能手表,具有健康跟踪和通知功能。199.991000TechWatch4K智能电视4K分辨率智能电视,提供出色的画质。699.99500VisionTech无线耳机降噪无线耳机,…

《低代码指南》——维格云和Airtable的比较

Airtable​ 什么是Airtable​ Airtable 是一个任务管理应用程序,它合并了电子表格、数据存储和模板,以帮助组织构建他们的工作流程。 适用于哪些企业/组织/人群​ 根据 Airtable 网站,该工具被超过 200,000 个组织的团队使用。 维格表与Airtable相比如何​ Airtable作为…

【C语言】善于利用指针(三)

💗个人主页💗 ⭐个人专栏——C语言初步学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读:1. 函数指针1.1 什么使函数指针1.2 用函数指针变量调用函数 2. 返回指针值的函数3. 函数指针数组3.1 实…

asp.net社区医疗辅助诊断网站系统VS开发sqlserver数据库web结构c#编程

一、源码特点 asp.net社区医疗辅助诊断网站系统 是一套完善的web设计管理系统,系统采用mvc模式(BLLDALENTITY)系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver200…

音乐制作软件 Ableton Live 11 Suite mac中文版功能介绍

Ableton Live 11 Suite mac是一款专业级别的音乐制作软件,它提供了多种音乐制作和编辑功能,可以帮助用户创建各种音乐作品。界面简单直观,可以方便地进行各种音乐制作操作。它提供了丰富的音乐制作工具和功能,如录音、采样、编曲、…

C语言实现模拟 strcmp 字符串比较函数,实现字符串大小的比较

完整代码&#xff1a; // 模拟 strcmp 字符串比较函数&#xff0c;实现字符串大小的比较 #include<stdio.h> //strcmp函数是两个字符串自左向右逐个字符相比&#xff08;按 ASCII 值大小相比较&#xff09;&#xff0c;直到出现不同的字符或遇 \0 为止&#xff0c;如果字…

常用Web安全扫描工具合集

漏洞扫描是一种安全检测行为,更是一类重要的网络安全技术,它能够有效提高网络的安全性,而且漏洞扫描属于主动的防范措施,可以很好地避免黑客攻击行为,做到防患于未然。那么好用的漏洞扫描工具有哪些? 1、AWVS Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名…

网站、小程序常见布局样式记录

文章目录 &#x1f380;前言&#xff1a;&#x1f415;网页样式展示小程序&#xff1a;《携程网》&#x1f380;持续更新... &#x1f380;前言&#xff1a; 本篇博客会收藏一些作者见到的网页、小程序页面&#xff0c;目的是用来寻找制作项目网页页面的灵感&#xff0c;有需要…

Java高级编程---Java多线程

Java多线程 线程概述进程线程比较 线程的创建继承Thread类创建多线程实现Runnable接口创建多线程两种实现多线程方式的对比 线程的生命周期及状态转换线程的调度线程的优先级线程休眠线程让步线程插队多线程同步死锁问题 线程概述 计算机能够同时完成多项任务&#xff0c;例如…

[MIT 6.1810]Lab7-networking

Lab7 networking https://pdos.csail.mit.edu/6.828/2023/labs/net.html 目录 Lab7 networking背景驱动程序E1000手册接收描述符发送描述符寄存器约定环形队列 代码实现发送接收坑 背景 为E1000实现驱动&#xff0c;补全kernel/e1000.c中的两个空函数。 为了达成目的&#xff…

【RuoYi移动端】HbuilderX实现底部弹窗示例

一、单选样式弹窗选择 1、View页面代码 <uni-popup ref"textBox" type"bottom"><view class"select_box"><view class"select_row" v-for"(item,index) in status" click"selectClick(item.id)"&g…

FPGA时序分析与约束(6)——综合的基础知识

在使用时序约束的设计过程中&#xff0c;综合&#xff08;synthesis&#xff09;是第一步。 一、综合的解释 在电子设计中&#xff0c;综合是指完成特定功能的门级网表的实现。除了特定功能&#xff0c;综合的过程可能还要满足某种其他要求&#xff0c;如功率、操作频率等。 有…

Fiber Golang:Golang中的强大Web框架

揭示Fiber在Go Web开发中的特点和优势 在不断发展的Web开发领域中&#xff0c;选择正确的框架可以极大地影响项目的效率和成功。介绍一下Fiber&#xff0c;这是一款令人印象深刻的Golang&#xff08;Go语言&#xff09;Web框架。以其飞快的性能和强大的特性而闻名&#xff0c;…

2023-mac brew安装python最新版本,遇见的问题和处理方式

#### 创建Python3.11.6符号链接我现在遇见这个问题了&#xff1a;python --version -bash: python: command not found 192:bin wangyang$ python3 --version Python 3.9.6 192:bin wangyang$ /usr/local/bin/python3 --version Python 3.11.6我要怎么做&#xff0c;我才可以直…

Spring-AOP 讲解

1、为什么会出现AOP思维 我们知道&#xff0c;在我们的项目中&#xff0c;会出现核心代码和非核心代码&#xff0c;对于非核心代码&#xff0c;在各个方法中可能是冗余的&#xff0c;此时为了解决这种非核心代码的冗余以及不方便管理的问题&#xff0c;就出现了AOP思维。 2、…

模拟批量转换和报警功能块(博途SCL源代码)

单通道模拟量转换FC算法和源代码,请参考下面文章链接: PLC模拟量采集算法数学基础(线性传感器)_plc3秒采集一次模拟量_RXXW_Dor的博客-CSDN博客模拟量采集库如何设计,具体算法代码请参看我的另一篇博文:PLC模拟量输入 模拟量转换FC:S_ITR_RXXW_BOSS的博客-CSDN博客_s_i…

路由器的路由过程

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家来访。 路由器是连接不同的局域网的一个设备&#xff0c;它一开始的目的是互联异构网络的。 前言 这里…

langchain agent简单使用;文档总结load_summarize_chain

1、langchain agent简单使用 参考&#xff1a;https://zhuanlan.zhihu.com/p/643868934?utm_id0 from langchain.agents.agent_toolkits import create_python_agent from langchain.agents import load_tools, initialize_agent from langchain.agents import AgentType fr…