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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

调用smc为什么就能直接切换到ATF?

快速链接: . 👉👉👉Trustzone/TEE/安全 面试100问-目录 👈👈👈 付费专栏-付费课程 【购买须知】:联系方式-加入交流群 ----联系方式-加入交流群 个人博客笔记导读目录(全部) 背景 插播一个小插曲&#…

大数据在金融行业的深度应用与未来展望

一、引言 随着信息技术的迅猛发展,大数据已经成为推动金融行业创新的重要力量。从精准营销、个性化服务到风险管理和产品创新,大数据的应用正在不断重塑金融行业的格局。本文将深入探讨大数据在金融行业的深度应用,分析其特征特点、解决方案以及面临的挑战与机遇,并展望其…

深度学习 --- stanford cs231 编程作业(assignment1,Q2: SVM分类器)

stanford cs231 编程作业之SVM分类器 写在最前面: 深度学习,或者是广义上的任何学习,都是“行千里路”胜过“读万卷书”的学识。这两天光是学了斯坦福cs231n的一些基础理论,越往后学越觉得没什么。但听的云里雾里的地方也越来越多…

STM32——hal_SPI_(介绍)

SPI(串行外围设备接口)是一种高速的、全双工、同步的通信协议,通常用于短距离通信,尤其是在嵌入式系统中与各种外围设备进行通信。SPI接口由摩托罗拉公司推出,由于其简单和灵活的特性,它被广泛用于多种应用…

云计算百科:类型、服务与业务优势一网打尽

了解云计算的权威指南是至关重要的,掌握云计算的类型、服务、用途以及它们如何为组织带来好处尤为重要。 假设某公司的员工正在办公室工作,突然间火警响起,原来IT部门的主服务器机房着火了,所有服务器都受到了影响。这一消息引发…

【机器学习-09】 | Scikit-Learn工具包进阶指南:Scikit-Learn工具包之高斯混合sklearn.mixture模块研究

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

Nginx配置详细解释:(3)http模块及server模块,location模块

目录 环境概述: http模块中的全局模块 1. root配置主要是对主web页面的路径访问。 2.server虚拟主机 2.1基于IP: 2.2基于域名: 3.alias别名 4.location匹配 5.access模块: 6.验证模块 7.自定义错误页面 8.日志存放位置…

图片裁剪与上传处理方案 —— 基于阿里云 OSS 处理用户资料

目录 01: 通用组件:input 构建方案分析 02: 通用组件:input 构建方案 03: 构建用户资料基础样式 04: 用户基本资料修改方案 05: 处理不保存时的同步问题 06: 头像修改方案流程分析 07: 通用组件:Dialog 构建方案分析 08: 通用组件&…

Transformer学习(4)

上篇文章完成了Transformer剩下组件的编写,因此本文就可以开始训练。 本文主要介绍训练时要做的一些事情,包括定义损失函数、学习率调整、优化器等。 下篇文章会探讨如何在多GPU上进行并行训练,加速训练过程。 数据集简介 从网上找到一份中…

双向链表的讲解与实现

双向链表的讲解与实现 一、双向链表的结构二、顺序表和双向链表的优缺点分析三、双向链表的实现(使用VS2022)1.初始化、销毁、打印、判空2.尾插尾删、头插头删3.查找、指定插入、指定删除 四、代码优化五、完整 List.c 源代码 一、双向链表的结构 带头”跟前面我们说的“头节点…

家政预约小程序13我的订单

目录 1 我的订单页面布局2 全部订单页面3 完善订单状态4 查询订单信息总结 现在我们已经完成了家政预约小程序主体功能的开发,包含服务的查看,在线预约已经登录等功能。预约之后就需要家政公司的客服进行派单,由服务人员进行上门服务。在小程…

gitlabcicd-k8s部署gitlab

一.安装准备环境 存储使用nfs挂载持久化 k8s环境 helm安装 建议helm 3 二.部署gitlab-deploy.yaml nfs的ip是192.168.110.190 挂载目录是/data/data 注意所需要的目录需要创建:/data/data/gitlab/config ,/data/data/gitlab/logs ,/dat…

LeetCode刷题之HOT100之合并区间

雨下了一整天,中午早早就回去吃饭拿快递了,今天拿了很多快递。我的书回来啦哈哈,还有好多零食,爽歪歪啊,放在下面了,然后准备开始做题啦! 图一:左一是xh送我的,非常精彩…

JAVA小案例-99乘法表

JAVA小案例-99乘法表 今天学的一个小案例&#xff0c;主要是为了复习一下嵌套循环。 代码如下&#xff1a; public class Cheng {public static void main(String[] args) {int i;int j;for (i 1; i < 10; i) { //i<10和<9一个意思for (j 1; j < i 1; j) {…

CDH服务红,查看日志发现host有问题

看host后&#xff0c;发现里面节点ip都是127.0.0.1然后全部改成对应的ip&#xff0c; 1.在/etc/hosts里面全部加上了 ip以及对应的角色名称 2然后注释了127.0.0.1 hostname 3.然后重启所有的机器agent和server&#xff0c;在重新登录&#xff0c;点击重新部署。 重启agent sy…

STM32作业实现(八)触摸按键TPAD

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

echarts柱状图的背景动态效果

这里的动态效果实现原理&#xff0c;就是相当于柱状图多了一组同系列数据&#xff0c;其值与数组展示数据一致&#xff08;类似下图&#xff09; 即&#xff0c;柱形图的每一个柱体都有它对应的另外一个柱体 其中白色柱体要与展示柱体重合&#xff0c;效果类似与给柱体做背景…

Linux---网络相关配置

文章目录 目录 文章目录 前言 一.查看网络信息 二.修改网络配置信息 总结 前言 一台主机需要配置必要的网络信息&#xff0c;才可以连接到互联网&#xff0c;需要的配置网络信息包括IP&#xff0c;子网掩码&#xff0c;网关和DNS。 一.查看网络信息 查看IP信息可以通过ifcon…

用单链表实现集合

一、实验题目 &#xff08;1&#xff09;实验题目 用单链表实现集合 &#xff08;2&#xff09;问题描述 用有序单链表实现集合的判等、交、并和差等基本运算。 二、实验内容 &#xff08;1&#xff09;采用有序单链表存储集合&#xff1b; &#xff08;2&#xff09;实现交…

IntelliJ IDEA智能编程插件AI Assistant

IntelliJ IDEA集成开发工具最新版本提供了人工智能AI编程助手的插件&#xff0c;AI Assistant使用手册的文档地址是AI Assistant | IntelliJ IDEA Documentation AI Assistant提供以下的编程能力以及工具特性&#xff1a; 与AI Assistant聊天&#xff0c;提问与项目相关或者与…