软件工程知识梳理0-概述

学好软件工程就必须理解软件工程到底是干什么的,为什么需要软件工程,以及怎么干的!只有理解了软件工程的本质,才能更好的理解软件工程中各种工程手段和方法的目的。

个人开发模式 —> 小作坊开发模式 —> 软件工程开发模式

Why?为什么引入软件工程

What?软件工程是什么

How?软件工程具体要做什么

名词解释:

软件:计算机程序和相关文档。

软件分类:系统软件、支撑软件、应用软件。

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

软件危机表现:质量差,可靠性难以保证;成本难以控制,很少有在预算内完成;开发进度难以把握;可维护性差

软件工程:是一个工程学科,涵盖了软件生产的各个方面,从初始的构想到运行和维护。

软件过程:软件工程中所使用的系统化方法,是实现软件产品开发的活动序列。

软件过程活动:软件规格说明、软件开发、软件确认、软件演化

软件工程是生产软件的系统化的方法,它需要考虑现实成本、进度、可靠性等问题,以及软件客户和开发者的需要。所使用的特定的方法、工具和技术取决于开发软件的组织、软件的类型以及开发过程中所涉及的人。

软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。它包含3个要素:方法、工具和过程。

知识点:

  1. 1968年西德召开的国际会议上正式提出并使用“软件工程”这个术语。
  2. 软件工程7条基本原理:
  1. 用分阶段的生命周期计划严格管理
  2. 坚持进行阶段评审
  3. 实现严格的产品控制
  4. 采用用现代程序设计技术
  5. 结果应能清楚地审查
  6. 开发小组的人员应该少而精
  7. 承认不断改进软件工程实践的必要性

  1. 传统方法学
  2. 面向对象方法学
  1. 软件生命周期:由软件定义、软件开发和软件维护(或运行维护)3个时期。
  2. 软件定义:确定软件开发工程必须完成的总目标,确定工程的可行性
  3. 问题定义、可行性研究、需求分析总体设计、详细设计、编码和单元测试、综合测试、软件维护
  4. 问题定义:明确要解决的问题是什么
  5. 可行性研究:
  6. 需求分析
  7. 总体设计
  8. 详细设计
  9. 编码和单元测试
  10. 综合测试
  11. 软件维护

  1. 软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。什么人(who)在什么时候(when)做什么事(what)以及怎么做(how)以实现某一个特定的具体目标。

  1. 常见软件生命周期模型:

瀑布模型

快速原型模型/演化模型/迭代模型

增量模型

螺旋模型

喷泉模型

RUP模型(Rational统一过程)

敏捷过程与极限编程(XP)

微软过程

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

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

相关文章

zoneId、ZoneOffset、Date、LocalDateTime、ZonedDateTime、OffsetDateTime的区别

1、zoneId 2、ZoneOffset继承了zoneId 3、ZoneOffset 和 TimeZone区别 ZoneOffset 和 TimeZone 是 Java 编程语言中处理时区信息的两个不同的类。 ZoneOffset 类: ZoneOffset 是 Java 8 中引入的日期时间 API 的一部分,位于 java.time 包中。 它代表…

Unity之第一人称角色控制

目录 第一人称角色控制 😴1、准备工作 📺2、鼠标控制摄像机视角 🎮3、角色控制 😃4.杂谈 第一人称角色控制 专栏Unity之动画和角色控制-CSDN博客的这一篇也有讲到角色控制器,是第三人称视角的,以小编…

使用最大边界相关算法处理文章自动摘要

一、需求背景 对于博客或者文章来说,摘要是普遍性的需求。但是我们不可能让作者自己手动填写摘要或者直接暴力截取文章的部分段落作为摘要,这样既不符合逻辑又不具有代表性,那么,是否有相关的算法或者数学理论能够完成这个需求呢&…

【C++】默认成员函数

与普通成员函数差距较大,形式对于我们比较陌生,但这是语法,是我们是必须要掌握的。 目录 类的默认成员函数:构造函数:概念:语法:特性: 析构函数:概念:语法&a…

解决:ModuleNotFoundError: No module named ‘torchvision’

解决:ModuleNotFoundError: No module named ‘torchvision’ 文章目录 解决:ModuleNotFoundError: No module named torchvision背景报错问题报错翻译报错位置代码报错原因解决方法方法一,直接安装方法二,手动下载安装方法三&…

jdk17新特性—— 密封类(Sealed Classes)

目录 一、密封类(Sealed Classes)的概述1.1、概述1.2、特性1.3、注意事项 二、密封类(Sealed Classes)代码示例2.1、密封类(Sealed Classes)代码结构示例2.2、密封类(Sealed Classes)代码示例 三、密封类(Sealed Classes)接口代码示例3.1、密封类(Sealed Classes)接口代码结构示…

go语言标准库flag命令行参数解析

Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单。 os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 package mainimport ("fmt""os" )//os.Ar…

微信小程序~上推加载更多组件

本组件使用的是TaroReact 实现的 ,具体代码如下 一共分为tsx和less文件 //index.tsx /** RefreshLoading* description 上推加载更多组件* param loading boolean* param style* returns*/import { View } from "tarojs/components"; import React, { FC…

springboot(ssm爱心商城系统 爱心捐赠商城系统Java系统

springboot(ssm同城上门喂遛宠物系统 宠物预约系统Java系统 开发语言:Java 框架:springboot(可改ssm) vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7&a…

2023蓝帽初赛

APK取证 1.涉案apk的包名是?[答题格式:com.baid.ccs] 用雷电APP智能分析打开 在基本信息里得到应用包名 答案:com.vestas.app 2.涉案apk的签名序列号是?[答题格式:0x93829bd] 同理,在详细信息里面找到了签名序列号 答案&…

nodejs+vue+mysql校园失物招领网站38tp1

本高校失物招领平台是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了用户和管理员这两者的需求。操作简单易懂,合理分析各个模块的功能,尽可能优化界…

立体边界,让arcgis出图更酷炫一些

就是这样子的那个图—— 本期我们还是用长沙市为例, 来手把手的演示制作立体边界, 就是这个样子的边界—— 第一步—准备底图 其实你准备什么底图都可以哈,例如调用天地图、下载个影像图,或者用其他什么的底图,都是…

在ubuntu22.04中借助docker实现安装、调试ros1.0

一.安装docker 参考:https://www.cnblogs.com/cqpanda/p/16247919.html 使用安装方法1直接安装,没出问题,我就继续了。出问题按方法2安装吧。 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 二.docker中安装ros1.…

基于微信小程序+Springboot线上租房平台设计和实现【三端实现小程序+WEB响应式用户前端+后端管理】

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

MATLAB矩阵的操作(第一部分)

矩阵的基本知识 矩阵概念 矩阵(Matrix)在数学中是一个由复数或实数组成的矩形阵列,其元素按照行和列排列。矩阵的定义可以形式化地描述为: 一个 m 行 n 列的矩阵是一个有序的数表,其中包含 m*n 个数,可以…

HG/T 3830-2022 预涂卷材涂料检测

预涂卷材涂料是指以树脂为主要成膜物质,并加入固化剂、颜料、体质颜料、助剂等配置而成,且以连续涂装方式涂覆在金属薄板上的溶剂型涂料、水性涂料或粉末涂料。 HG/T 3830-2022溶剂型和水性预涂卷材涂料检测项目: 测试指标 测试方法 在容器…

【乳腺肿瘤诊断分类及预测】基于PNN概率神经网络

课题名称:基于PNN的乳腺肿瘤诊断分类及预测 版本日期:2023-06-15 运行方式: 直接运行PNN0501.m 文件即可 代码获取方式:私信博主或QQ:491052175 模型描述: 威斯康辛大学医学院经过多年的收集和整理,建…

Java希尔排序

希尔排序是一种改进的插入排序算法,也称为缩小增量排序。它通过将待排序的数组按照一定的间隔分割成若干个子序列,然后对这些子序列进行插入排序,随着排序进行,逐渐减小间隔,直至间隔为1,最后对整个数组进行…

Selenium处理Alert弹窗

页面弹窗有 3 种类型: alert(警告信息) confirm(确认信息) prompt(提示输入) 对于页面出现的 alert 弹窗,Selenium 提供如下方法: 序号 方法/属性 描述 1 ac…

如何更改Outlook阅读邮件时的默认字体?

如果收到的邮件中未指定字体,outlook默认使用宋体显示。 如果觉得不好看,可以进行更改。但不是在outlook中更改,outlook中只是修改编辑器中的字体,和纯文本邮件浏览的字体,不能更改未指定字体的HTML邮件的显示字体。 …