笔记 | 软件工程02:软件工程概述

news2025/1/22 18:55:41

1 软件工程产生背景

1.1 历史发展

image.png

1960s的个体作坊式软件开发带来的问题

image.png

1.2 软件开发需要解决的问题

image.png

代码规模增长带来的影响:
image.png

1.3 软件开发面临的挑战

指挥信息系统中的软件:规模大、质量要求高
装备中嵌入式软件系统:规模大、质量要求高
信息化需要多样化和高质量的软件!使命伟大!责任重大!

1.4 软件危机的出现

image.png

  1. 开发成本高:软件成本高,软硬件投资比发生急剧变化
  2. 进度难以控制:项目延期比比皆是,由于进度问题而取消的软件项目较常见,只有一小部分的项目能够按期完成
  3. 质量难以保证:人总是会犯错误的,软件开发的错误表现为多种形式(软件开发的错误表现为多种形式,编写的代码在功能上存在错误,实现了功能但是性能达不到要求,所开发的软件交互界面用户不喜欢),有些软件错误可能是致命的
  4. 软件维护困难:读懂程序比较困难,尤其是他人程序,程序非常脆弱,牵一发而动全身,改了以后易引入错误,有了错误后难以发现
  5. 失败风险很大
1.4.1 软件危机产生的根源

image.png

2 软件工程基本内涵

2.1 软件工程的诞生

image.png
提出了软件工程的概念及思想,标志着软件工程的诞生

2.2 软件工程产生的动机

解决软件危机。开发快速,高效,低成本,高质量的软件产品

2.3 何为软件工程

image.png

2.3.1 软件工程对软件开发的新认识

image.png

2.3.2 软件开发方式的改变

image.png

2.4 软件工程的三要素

image.png

2.4.1 过程(Process)

image.png

2.4.2 方法学(Methodology)

image.png

2.4.3 工具(Tool)

image.png

2.5 计算机辅助软件工程(CASE)

2.5.1 CASE定义

image.png

2.5.2 CASE工具和环境

image.png

2.6 软件开发的本质

理解:智慧+规范

image.png

2.7 软件工程的目标

在成本、进度等约束下,指导软件开发和运维,开发出满足用户要求的足够好软件。

2.8 软件工程原则

2.8.1 抽象和建模

image.png
image.png

2.8.2 模块化

image.png

2.8.3 软件重用

image.png

2.8.4 信息隐藏

image.png|350

2.8.5 关注点分离

image.png

2.8.6 分而治之

image.png

2.8.7 双向追踪原则

image.png

2.8.8 工具辅助

image.png

3 软件工程发展历程

3.1 总体发展历程

image.png

  • 20世纪50-60年代

image.png

  • 20世纪70年代

image.png

  • 20世纪80年代

image.png

  • 20世纪90年代

image.png

  • 21世纪前十年

image.png

  • 近十年

image.png

3.2 我国软件工程发展

image.png

3.3 软件工程发展的时代特点

image.png

3.4 软件工程发展的技术特点

image.png

3.5 软件工程的多学科交叉

image.png

4 软件工程教育特点

4.1 软件工程师的培养

image.png

4.2 软件工程的知识领域

image.png

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

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

相关文章

【MySQL数据库】索引与事务

🔥个人主页: 中草药 🔥专栏:【MySQL】探秘:数据库世界的瑞士军刀 目录 🗳️一.索引 📮1.工作原理 📬2.类型 📭3.作用 📪4.优缺点 📫5.使用…

一维时间序列突变检测方法(小波等,MATLAB R2021B)

信号的突变点检测问题是指在生产实践中,反映各种系统工作状态的信号,可能因为受到不同类型的噪声或外界干扰而发生了信号突变,导致严重失真的信号出现,因此必须探测突变出现的起点和终点。研究目的在于设计出检测方案,…

python-字符替换

[题目描述] 给出一个字符串 s 和 q 次操作,每次操作将 s 中的某一个字符a全部替换成字符b,输出 q 次操作后的字符串输入 输入共 q2 行 第一行一个字符串 s 第二行一个正整数 q,表示操作次数 之后 q 行每行“a b”表示把 s 中所有的a替换成b输…

docker 存储 网络 命令

文章目录 1 docker存储1.1 目录挂载2.1卷映射2.1.1卷映射和目录挂载的区别2.1.2卷映射的使用 2 docker网络2.1查看docker的默认网络2.2查看容器的IP2.3容器互通2.4自定义网络2.4.1 创建自定义网络2.4.2创建容器的时候加入到自定义的网络2.4.3使用域名进行容器之间的访问2.4.4re…

小米路由器如何设置去广告功能,如何设置小米路由器的自定义Hosts(小米路由器如何去除小米广告、去除小米电视盒子开屏广告、视频广告)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 实现方案 📒📝 操作步骤📝 注意事项⚓️ 相关链接 ⚓️📖 介绍 📖 小米设备的广告一直是用户头疼的问题,无论是开屏广告、应用内广告还是系统广告,都影响了用户体验。本文将详细介绍如何通过小米路由器实现去除广告…

低代码设计中的组织结构的作用与模式

一、组织结构的作用 在低代码设计中,组织结构是系统运作的基石,它定义了系统中的关键元素,包括人员、部门、角色,以及一人多部门、一人多部门多角色的复杂关系。这种定义不仅为系统提供了清晰的运行框架,还确保了系统…

学生问的一道CSS3媒体查询,实现响应式设计的题

目录 题目要求: 解题思路: 解题: 1)大屏、3个DIV水平排列 2)中屏、前2个DIV水平占一半,第三个另起一行,宽度占满 3)小屏,3个DIV铺满,垂直排列 题目要求&…

深入理解计算机系统 家庭作业5.13

A:关键路径在xmm0那条路,书中几条关键路径全部是xmm0,有xmm1时,xmm1也是 B:3 C:1 D:按书中的定义: 关键路径才是下界!按书上的方法根据 图5-12 算出关键路径的CPE即可. 非关键路径把它视为黑盒子.因为是乱序和超标量的,没办法搞清楚处理器具体怎么处理这些指令.

17、Spring系列-SpringMVC-请求源码流程

前言 Spring官网的MVC模块介绍: Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就已包含在Spring框架中。正式名称“ Spring Web MVC”来自其源模块的名称(spring-webmvc),但它通常被称为“ Spring MVC…

PHP 页面报错Warning</b>: Cannot modify header information - headers already sent by

先给出解决方案再解释,如果急着用就不用看解释了。 解决方案一:保存php文件编码为utf-8无BOM码,具体操作可以用notepad等编辑器完成,把 sesstion_start() 放在文档所有输出(包括html标签和php的输出语句,具…

了解可燃气体报警器检验收费,守护企业安全新防线

在工业生产中,可燃气体报警器作为预防火灾和爆炸事故的重要设备,其准确性和可靠性至关重要。为了确保报警器的正常运行,定期的检验工作必不可少。 而关于检验收费,很多企业可能存在疑虑:这项费用是否合理?…

AC自动机(查询)

上面讲了AC自动机是如何建树和建自动机的,这里要讲的是AC自动机的查询和各个数组的功能和作用。 其实AC自动机的查询和KMP算法是及其相近的,都是一个指针跑主串,另一个指针跑ne串(这里就是回跳边)。 话都说到这了&…

C#中字节数组(byte[])末尾继续添加字节的示例

方法一:使用List 使用List可以很容易地在末尾添加字节,然后如果需要,可以将其转换回byte[]。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Lin…

【C++小知识】为什么C语言不支持函数重载,而C++支持

为什么C语言不支持函数重载,而C支持 编译链接过程函数名修饰过程总结 在了解C函数重载前,如果对文件的编译与链接不太了解。可以看看我之前的一篇文章,链接: 文件的编译链接 想要清楚为什么C语言不支持函数重载而C支持,有俩个过程…

大数据学习问题记录

问题记录 node1突然无法连接finalshell node1突然无法连接finalshell 今天我打开虚拟机和finalshell的时候,发现我的node1连接不上finalshell,但是node2、node3依旧可以链接,我在网上找了很多方法,但是是关于全部虚拟机连接不上finalshell&a…

12 - 常用类

那就别跟他们比,先跟自己比,争取今天比昨天强一些,明天比今天强一些。 1.包装类 针对八种基本数据类型封装的相应的引用类型。 有了类的特点,就可以调用类中的方法。(为什么要封装) 基本数据类型包装类b…

目标检测数据集 - 打架检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:打架检测数据集,真实监控场景高质量打架图片数据,涉及场景丰富,比如街道场景打架数据、酒吧场景打架数据、商店场景打架数据、公交车场景打架数据、监狱场景打架数据、空旷地打架数据、两人打架数据、多人群殴数据等。…

mysql中optimizer trace的作用

大家好。对于MySQL 5.6以及之前的版本来说,查询优化器就像是一个黑盒子一样,我们只能通过EXPLAIN语句查看到最后 优化器决定使用的执行计划,却无法知道它为什么做这个决策。于是在MySQL5.6以及之后的版本中,MySQL新增了一个optimi…

【Python】 将日期转换为 datetime 对象在 Python 中

基本原理 在 Python 中,处理日期和时间的库是 datetime,它提供了广泛的功能来处理日期和时间。datetime 模块中有一个 datetime 类,它可以用来表示日期和时间。有时,我们可能会遇到需要将日期字符串转换为 datetime 对象的情况&a…

计算机网络学习记录 运输层 Day5

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner 🌹 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^) 想看更多 那就点个关注吧 我…