电子科技大学软件工程期末复习笔记(一):概论

2023-11-06

目录

前言

重点一览

软件的定义

软件的特点

软件的双重作用

软件危机

软件工程的概念

软件工程的目标与原则

软件工程的一些误解 

本章小结 


前言

2022年底疫情彻底放开,开始自愿返乡,大面积传染开始,在校生几乎无一幸免。因为自愿返乡后只能等到下学期再参加统一考试,所以留校生都在想先考试再回去,因为学校准备了两次考试,由于不想拖延嘛,很多同学就选择先留校考试。但是疫情放开以后病毒蔓延的实在太快,留校准备考试的学生无一幸免,几乎都感染了病毒,然而就在阳康之后,两三天以后就要考试的时候,学校突然发文件说期末考试全部取消,延迟到下学期考试!我就是留校考试的人之一,感觉到非常的亏。如果回家再阳的话有可能还不会那么难受,至少有人照顾。

说了这么多,还是要面对现实准备考试呀!我也是本寒假才开始写博客,也来写一些复习笔记供自己参阅,也供以后的学弟学妹参考。

我的复习资料是王玉林老师的PPT和复习大纲,下面开始正文。


重点一览


软件的定义

软件由程序、数据和文档组成。

程序应该不陌生,就是编程一系列指令使能够实现预期的功能,这是软件的基础;

数据是程序的数据结构和信息,不是所有程序都需要数据库,但一定都有数据结构;

文档类似开发文档,包括软件的设计、开发、功能、维护等等。 

上图是软件的结构示意图,可执行部分只有程序,而数据和文档都是支撑软件完整性的作用。 


软件的特点

软件特点如下所示:

软件是逻辑的,而不是物理的。

软件是逻辑的而不是物理的,说明软件的复杂性、难以描述性、不可见性、变化性。 

上图下方的九点内容正好印证了上述四点性质。


软件的双重作用

软件是一种产品,也是开发其他软件产品的工具。

我们熟知的软件就是供人们解决问题的工具/产品。然而我们编写软件何尝不需要工具呢,也需要某一些产品来帮助我们开发软件,比如Jetbrains旗下的许多编译软件、Visual Studio、Dev C++等等,这就是开发其他软件产品的工具。还是很好理解的。 

上图是软件一般可以展现的功能。 


软件危机

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

严重问题:多指效率和质量上的问题。 

可以总结为: 周期长、成本高、质量差、维护难。


软件工程的概念

软件工程的定义

IEEE计算机协会将软件工程定义为:(1)将系统化的、科学化的、可量化的方法应用于软件的开发、运行和维护,即针对软件的工程应用。(2)对上述应用方法的研究


软件工程的目标与原则

软件工程的目标

软件工程的目标是在给定的时间和预算内,按照用户的需求,开发易修改、高效、可靠、可维护、适应力强、可移动、可重用的软件 

软件工程的原则

B.W.Boehm总结了开发软件的经验,提出了软件工程的7条基本原理。这7条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合:

  • 使用阶段性生命周期计划的管理
  • 进行连续的验证
  • 保证严格的产品控制
  • 使用现代编程工具/工程实践
  • 保持清晰的责任分配
  • 用更好更少的人
  • 保持过程改进

软件工程的一些误解 

分为三个人群:管理者、客户、开发者

管理者的误区和正解:

M代表误解,R代表现实
-M1:如果我们项目进度落后了,可以加入更多的程序员来赶进度
-R1:软件开发的机制和手工作业不一样。在一个延迟了的软件项目中加入新的开发人员只会让它延迟更多
-M2:如果我们将软件项目外包给第三方,我们就轻松了,让那个公司去完成它吧
-R2:如果组织管理方不懂得如何从内部管理和控制软件项目,即使将项目外包也无济于事

客户的误区和正解:

由于用户不正确的期望,最后导致对开发人员的不满
-M1:对目标的一般陈述就足以开始编程,我们可以今后再补充细节
-R1:前期糟糕的项目需求定义,是导致软件失败的主要原因。项目需求的确在不断变化,但变化所产生的影响是根据变化提出的时间不同而不同的

开发者的误区和正解: 

软件从业者积累了50年的编程文化。在早期的软件开发中,编程被视为一种艺术形式
-M1:一旦我们编程完毕并成功运行,我们的工作就结束了
-R1:“越早开始写代码,我们就会花费越长的时间去完成它”。工业数据显示,软件开发60%-80%的精力将耗费在软件首次提交给用户以后
-M2:当我的程序运行之前,我没有办法评估它的质量

-R2:一个最有效的软件质量保证机制应当在项目的正式开始启动时——可以通过技术报告体现
-M3:唯─可交付的工作成果是一个成功运行的项目程序

-R3:一个可运行的程序只是软件结构的一部分,它还包含了许多其它因素(数据、文档...)
-M4:软件工程将会让我们去创建大量不必要的文档,并且总是使我们的进度放慢。软件工程仅仅是文档而已
-R4:软件工程并不是创建文档,而是创建质量。更好的质量减少返工的概率。更少返工会让项目更早交付。所有的文档都是提高团队沟通和质量所必须的


本章小结 

-软件工程的目标是提供一个系统框架,用于建立高质量的软件
-软件: 随着解决特定问题和行业自身的信息分析工具变化而演进
-早期的“编程”文化和历史造成了一系列的问题,这些问题延续至今
-需要学习如何建立高品质和大规模的软件

第一章没有什么特别重点的地方,眼熟这些性质,能够分辨误区就好。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

电子科技大学软件工程期末复习笔记(一):概论 的相关文章

  • 软件工程基础知识--需求分析

    软件需求 在进行需求获取之前 首先要明确需要获取什么 也就是需求包含哪些内容 软件需求是指用户对目标软件系统在功能 行为 性能 设计约束等方面的期望 通常 这些需求包括功能需求 性能需求 用户或人的因素 环境需求 界面需求 文档需求 数据需
  • 合肥工业大学 软件学院 软件质量保证与测试 第九章 软件测试

    文章目录 第九章 软件测试 1 软件测试概述 1 1 软件测试的定义 1 2 软件测试的目的 2 软件测试过程 3 软件测试类型 3 1 单元测试 3 2 集成测试 测试方法 3 3 系统测试 3 4 验收测试 3 5 回归测试 3 6 补
  • 代码圈复杂度cogC、ev、iv、v分别是什么含义

    代码圈复杂度cogC ev iv v分别是什么含义 前言 cogC ev iv v分别是什么含义 优化这四个指标的好处 优化方法 过度优化的坏处 书本推荐 文章推荐 工具推荐 前言 你好 在工作中看项目的代码有时明明代码很长却觉得容易阅读
  • 【基于深度学习的生活垃圾分类识别管理可视化系统-哔哩哔哩】 https://b23.tv/0UBohX2

    基于深度学习的生活垃圾分类识别管理可视化系统 哔哩哔哩 https b23 tv 0UBohX2 https b23 tv 0UBohX2
  • 软件工程第五章习题

    软件工程第五章习题 1 为每种类型的模块耦合举一个具体例子 2 为每种类型的模块内聚举一个具体例子 1 为每种类型的模块耦合举一个具体例子 只需要答出什么模块和例子即可 一共5个 数控特环内 数据耦合 两个模块之间通过参数交换信息 信息仅为
  • 软工导论知识框架(五)面向对象方法学

    传统软件工程方法学适用于中小型软件产品开发 面向对象软件工程方法学适用于大型软件产品开发 一 四要素 对象 类 继承 传递消息实现通信 二 概念 1 对象 具有相同状态的一组操作的集合 对状态和操作的封装 2 类 对具有相同状态和相同操作的
  • 服务计算:简单的web程序

    CloudGo 框架选择 看了go的一些框架如beego和iris觉得挺好的 本来想用 但是虚拟机出了点问题装不成 windows上装成了没ab指令 所以使用官方的net http库做简单的实验 看完beego和iris的特性我还是比较想用
  • 一个不错的关于CPU和GPU(CUDA)的性能比较讨论话题

    http topic csdn net u 20081027 23 67ff3857 3c71 4d5c acf6 095f3497c7a9 html这里是今天的一个论坛的一个帖子 大家可以讨论一下 1 那些程序适合用cpu来做 那些适合用
  • 海南大学软件工程原理835考研

    海南大学835考研 2023考研已经落幕 我从2022 05 2023 03 用了大概一年的时间 目前已被海南大学计算机科学与技术学院录取 下面来谈谈我的学习感想 希望能给大家带来帮助 对于专业课 我用的是张海藩的软件工程导论第六版 和史济
  • 软考:中级软件设计师:多媒体基础,音频,图像,颜色,多媒体技术的种类,图像音频视频的容量计算,常见的多媒体标准

    软考 中级软件设计师 多媒体基础 提示 系列被面试官问的问题 我自己当时不会 所以下来自己复盘一下 认真学习和总结 以应对未来更多的可能性 关于互联网大厂的笔试面试 都是需要细心准备的 1 自己的科研经历 科研内容 学习的相关领域知识 要熟
  • 使命、愿景、价值观到底有什么区别

    以前的企业都是在发展到一定成熟阶段 才开始考虑这三个问题 但今天人们越来越多的意识到 哪怕在企业发展的初期 对于创业企业来说 确定公司的使命 愿景和核心价值观也是非常重要的 明确的使命 愿景和核心价值观对于企业的好处在于 形成统一共识目标方
  • 小米盒子打开adb调试模式

    1 先打开开发者模式 进入小米电视设置 gt 进入关于 gt 找到产品型号 gt 在产品型号上面连续多次按ok 确认 键 gt 然后就会提示 您已处于开发者模式 2 开启adb 经过第一步开启开发者模式之后 现在可以返回到设置页面 进入 账
  • 程序员要不断学习

    2016 10 20 计算机技术的发展速度还是很快的 当个人电脑赶上10年前的超算时 我们不得不感叹硬件的发展编程开发带来了很大的影响 对世界带来了很大的影响 知识和工具的更新速度还是比较快的 这就要求程序员始终需要学习 我在知乎上看到一个
  • 系统架构设计师-计算机网络

    目录 一 计算机网络技术概述 1 网络概述 2 网络有关指标 3 网络分类 4 5G技术 二 组网技术 1 交换技术 2 基本交换原理 三 TCP IP协议簇 1 DHCP 2 DNS 四 网络规划与设计 一 计算机网络技术概述 1 网络概
  • 个人技术总结——uview-plus下的Http请求基本使用及相关使用

    这个作业属于哪个课程 软件工程 23年春季学期 这个作业要求在哪里 软件工程实践总结 个人技术总结 这个作业的目标 个人技术总结 其他参考文献 构建之法 CSDN社区 uni app官方文档 uview plus官方文档 目录 一 写在前面
  • 68 | 软件工程的宏观视角

    软件工程 今天开始 我们进入第六章 谈谈软件工程 我理解的架构师的职责其实是从软件工程出发的 也许大家都学过软件工程 但如果我们把软件工程这门课重新看待 这门学科到底谈的是什么 是软件项目管理的方法论 无论如何 软件工程是一门最年轻的学科
  • git 的碎步浪荡,添加仓库子项目,迁移仓库

    1 git仓库迁移 将他人的代码仓库 xxxx 移为自己的 yyyy 仓库 先创建自己的yyyy空仓库 假设url为 yyyy git 将 xxxx 的全部数据 包括分支和 tag 都 download 到本地 git clone recu
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one
  • 掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南

    C 变量 变量是用于存储数据值的容器 在 C 中 有不同类型的变量 用不同的关键字定义 例如 int 存储整数 没有小数点的整数 如 123 或 123 double 存储浮点数 有小数点 如 19 99 或 19 99 char 存储单个
  • 如何打赢稳定性之战?

    文章目录 前言 为什么总会出现问题呢 如何证明你的稳定性做的有效果 既是持久战 也是防御战 1 提前建筑好防御工事 2 以攻为守 3 找外部支援和配合 前言 随着23年年末期间 各大厂争先恐后的出现的各种线上

随机推荐

  • 【C++】一文详解lambda表达式用法及发展历程

    文章目录 1 lambda表达式语法 2 捕获列表 2 1 作用域 2 2 捕获值与捕获引用 2 3 特殊捕获方法 3 lambda表达式实现原理 4 无状态lambda表达式 5 在STL中使用lambda表达式 6 广义捕获 7 泛型l
  • 域名系统中的本地域名服务器、根域名服务器、顶级域名服务器以及权限域名服务器。

    根域名服务器 是最高层次的域名服务器 也是最重要的域名服务器 所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址 顶级域名服务器 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名 权限域名服务器 负责一个区的域名服务器
  • 资源服务器验证Token的几种方式

    资源服务器验证Token的几种方式 在微服务中 除了eureka config 网关等基本的微服务还有认证服务和资源服务 上图描述了使用了 OAuth2 的客户端请求验证token的流程 是通过资源服务向认证服务验证token 过程就是客户
  • 消息队列原理及选型

    什么是消息队列 消息队列 Message Queue 是一种进程间通信或同一进程的不同线程间的通信方式 什么时候需要消息队列 异步处理 例如短信通知 终端状态推送 App推送 用户注册等 有些业务不想也不需要立即处理消息 消息队列提供了异步
  • Redis主从复制架构和Sentinel哨兵机制

    一 redis主从复制原理 redis主从同步策略 slave刚加入集群会触发一次全量同步 全量复制 全量同步之后 进行增量复制 slave优先是增量同步 如果增量同步失败会尝试从master节点进行全量复制 全量复制 slave初始化阶段
  • 华为OD机试真题- 数值同化-2023年OD统一考试(B卷)

    题目描述 存在一个m n的二维数组 其成员取值范围为0 1 2 其中值为1的元素具备同化特性 每经过1S 将上下左右值为0的元素同化为1 而值为2的元素 免疫同化 将数组所有成员随机初始化为0或2 再将矩阵的 0 0 元素修改成1 在经过足
  • IDEA连接SSH以及上传项目文件到指定远程服务器文件夹

    一 IDEA连接SSH 确认你的密码输对了 还好我保存了我的远程服务器的密码 原先我一直以为我输对了 导致一直报错Auth fail 点击ok 连接上了 二 将项目文件传输到 远程服务器的指定文件夹 name随意起个名字 1 是你的本地项目
  • 什么叫异步通信?同步通信与异步通信的区别是什么?

    异步通信 又称为起止式异步通信 数据帧与数据帧之间没有固定时间间隔约定 可以是不定时长的 空闲位 异步通信是在内部约定好时钟 芯片设计设定好的时钟 用起始位开头 中间包含数据位后面随效验位和停止位的格式 我们称之为 帧 整个数据帧的位组成是
  • 【云服务器】阿里云服务器部署web项目前的准备(安装Nginx,jdk,Tomcat,MySQL)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 一 首先得有一台云服务器 白嫖党可以去看看鱼皮的视频或者百度搜索如何白嫖阿里云服务器 二 安装nginx反向代理服务器 二 Jdk和Tomcat的安装 1 jdk
  • 集团服务器 系统,开创集团云服务器

    开创集团云服务器 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 本节操作介绍通过华为云APP连接Linux实例的操作步骤
  • umi搭建的react项目——如何mock数据

    umi搭建的react项目 如何mock数据 1 本地配置打开 本地配置umirc local ts中的mock配置打开 export default defineConfig mock 2 配置接口 在项目配置接口的文件中添加接口 例如
  • eclipse 设置系统变量和运行参数

    在开发时 有时候可能需要根据不同的环境设置不同的系统参数 我们都知道 在使用java jar命令时可以使用 D参数来设置运行时的系统变量 同样 在Eclipse中运行java程序时 我们怎么设置该系统变量呢 另外 如果我们的程序需要输入运行
  • mysql 游标

    who 游标是什么 游标 cursor 官方定义 是系统为用户开通的一个数据缓冲区 存放sql执行结果 每个游标区都有一个名字 用户可以通过sql语句逐一从游标中获取记录 并赋值给变量 交由主语言进一步处理 个人理解 感觉游标和指针相似 指
  • 手写函数柯里化(Curry)--原理剖析

    函数柯理化的作用 前端使用柯里化的用途主要就是简化代码结构 提高系统的维护性 一个方法 只有一个参数 强制了功能的单一性 很自然就做到了功能内聚 降低耦合 函数柯理化的优点 降低代码的重复 提高代码的适用性 在后面实现应用部分 ajax 会
  • webpack打包速度优化

    优化WebPack打包速度 在开发过程中 WebPack的打包速度是一个非常重要的考虑因素 随着项目规模的增长 打包时间也会越来越长 影响开发效率和用户体验 本文将循序渐进地介绍一些优化WebPack打包速度的方法 先分析打包瓶颈 然后逐步
  • 超分(Super-Resolution, SR )

    知乎有一篇帖子总结了几篇超分的论文 写的很好 https zhuanlan zhihu com p 25532538 utm source tuicool utm medium referral 下面针对上面没有提到的论文进行补充 6 PR
  • 数据库学习笔记(2)——workbench和SQL语言

    1 workbench简介 登录客户端的两种方法 在cmd中 只能通过sql语句控制数据库 workbench其实就是一种图形化数据库管理工具 在workbench中既可以通过sql语句控制数据库 也可以通过图形化界面控制数据库 通过wor
  • ubuntu pytorch 深度学习环境配置

    目录 一 Ubuntu20 04下用ppa源安装NVIDIA显卡驱动 1 先查询适用自己电脑型号的英伟达驱动版本 官网查选 官方 GeForce 驱动程序 NVIDIA 2 禁用默认驱动 nouveau 3 打开 软件与更新 点击 附加驱动
  • 物理磁盘的四种使用方式

    一 物理磁盘整个直接使用 把整个物理磁盘直接格式话成文件系统 然后mount 二 通过分区使用 把整个物理磁盘通过fdisk dev sdx这样分区 通过格式化各个分区来使用磁盘 三 通过逻辑卷使用 可以把整个物理磁盘作为一个物理卷pvcr
  • 电子科技大学软件工程期末复习笔记(一):概论

    目录 前言 重点一览 软件的定义 软件的特点 软件的双重作用 软件危机 软件工程的概念 软件工程的目标与原则 软件工程的一些误解 本章小结 前言 2022年底疫情彻底放开 开始自愿返乡 大面积传染开始 在校生几乎无一幸免 因为自愿返乡后只能