当前位置: 首页 > news >正文

软件工程概述

软件工程概述

软件工程指的是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产效率、提高软件质量、降低软件成本。

1. 计算机软件

计算机软件指的是计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。

按照软件的应用领域,将计算机软件分为以下十类,包括:

①系统软件;②应用软件;③工程科学软件;④嵌入式软件;⑤产品线软件;⑥Web应用软件(Web APP);⑦人工智能软件;⑧开放计算;⑨网络资源;⑩开源软件。

2. 软件工程基本原则

美国著名的软件工程专家B.W.Boehm于1983年提出了软件工程的七条基本原理,包括:

①用分阶段的生命周期计划严格管理;

②坚持进行阶段评审;

③实现严格的产品控制;

④采用现代的程序设计技术;

⑤结果应能清楚地审查;

⑥开发小组的人员应少而精;

⑦承认不断改进软件工程实践的必要性。

3. 软件生存周期🌟🌟🌟🌟🌟

同任何事物一样,一个软件产品或软件系统要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期。软件生存周期包括以下七个方面:

3.1 可行性分析与项目开发计划(确定软件开发目标及其可行性,产出可行性分析报告、项目开发计划)

这个阶段主要确定软件的开发目标及其可行性。参与该阶段的人员有用户、项目负责人、系统分析师。产生的文档有可行性分析报告、项目开发计划

3.2 需求分析(确定软件系统要做什么,产出软件需求说明书)

该阶段的任务不是具体的解决问题,而是要确定软件系统要做什么,确定软件系统的功能、性能、数据和界面等要求,从而确定系统的逻辑模型。参与该阶段的人员有用户、项目负责人、系统分析师。产生的文档主要是软件需求说明书

3.3 概要设计(将确定下来的功能转换成需要的体系结构,产出概要设计说明书)

该阶段开发人员把确定的各项功能需求转换成需要的体系结构。概要设计就是设计软件的结构,明确软件由哪些模块组成,这些模块层次结构是怎样的,调用关系是怎样的,每个模块的功能是什么。参与该阶段的人员有系统分析师、软件设计师。产生的文档主要是概要设计说明书

3.4 详细设计(对每一个模块进一步详细具体的描述,产出详细设计文档)

该阶段的主要任务是**对每个模块的功能进一步详细、具体的描述。**参与该阶段的人员有软件设计师、程序员。产生的文档主要是详细设计文档

3.5 编码(根据模块编码实现功能,产出源程序)

把每个模块的控制结构转换成计算机可接受的程序代码,即写成某种特定程序设计语言表示的源程序清单。

3.6 软件测试(测试软件功能和性能,产出软件测试计划、测试用例、测试报告)

测试是保证软件质量的重要手段。参加测试的人员通常是另一部门(或单位)的软件设计师或系统分析师。产生的文档主要是软件测试计划、测试用例、测试报告

3.7 后期维护(生命周期最长的阶段)

软件维护是软件生存周期中时间最长的阶段。软件已交付且正式投入使用后,便进入维护阶段。对软件进行修改的原因包括:

  • 运行中发现隐含的错误而需要修改;(纠正错误)
  • 为了适应变化的(或变化后的)工作环境而修改;(适应环境变化)
  • 需要对软件功能进行扩充、增强而进行的修改;(功能增强)
  • 为将来软件维护活动做预先准备。(维护准备)

4.软件过程🌟🌟🌟

软件开发中遵循一系列可预测的步骤(即路线图),该路线图称为软件过程。过程是活动的集合,活动是任务的集合,软件过程有三层含义:

  • 个体含义:指某产品、系统在生存周期中的某一类活动的集合,如开发过程、管理过程等。
  • 整体含义:指软件产品、系统在所有上述含义下的软件过程的总体。
  • 工程含义:指解决软件过程的工程。

4.1 能力成熟度模型(CMM)

CMM是对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步提高。CMM将软件过程的改进分为五个成熟度级别。

4.2 能力成熟度模型集成(CMMI)

CMMI提供了两种表示方法:阶段式模型和连续式模型。

4.2.1 阶段式模型

结构类似于CMM,它关注组织的成熟度。CMMI-SE/SW/IPPD 1.1版本中有五个成熟度等级。

在这里插入图片描述

  • 初始级:过程不可预测且缺乏控制。
  • 已管理级:过程为项目服务。
  • 已定义级:过程为组织服务。
  • 定量管理级:过程已度量和控制。
  • 优化级:集中过程改进。
4.2.2 连续式模型

关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级(简称CL)。CMMI中包括六个过程域能力等级。

在这里插入图片描述

  • CLO-未完成级:过程未被执行或未被充分执行。
  • CL1-已执行级:过程已被执行,但未达到所要求的目标或标准。
  • CL2-已管理级:过程已在管理控制之下,并被证明能够满足组织所设定的目标或标准。
  • CL3-已定义级:过程被定义,并被证明能够满足设定的目标或标准,同时该过程记录文档。
  • CL4-定量管理级:过程已被量化管理,并被证明能够满足设定的目标或标准,同时该过程记录文档。
  • CL5-优化级:过程已被优化,并被证明能够满足设定的目标或标准,同时该过程记录文档。

4.3 统一过程(UP)

统一过程(Unified Process,UP)是一种软件过程工程方法,也被称为软件开发过程。它是一种迭代和增量的开发过程,以用例和风险为驱动,以架构为中心,使用UML方法和工具支持。

  • 起始阶段(Inception Phase):此阶段的里程碑是生命周期目标(Lifecycle Goal),主要任务是确定项目的范围和目标,评估风险和可行性。
  • 精化阶段(Elaboration Phase):此阶段的里程碑是生命周期架构(Lifecycle Architecture),主要任务是细化需求,设计和架构。
  • 构建阶段(Construction Phase):此阶段的里程碑是初始运作功能(Initial Operational Functionality),主要任务是实现核心功能,进行单元测试。
  • 移交阶段(Transition Phase):此阶段的里程碑是产品发布(Product Release),主要任务是进行集成测试,修复错误,进行系统测试,最后发布产品。
  • 产生阶段(Production Phase):此阶段没有特定的里程碑,主要任务是将产品投入生产环境,进行维护和升级。

软考学习笔记,欢迎纠错与探讨,不喜勿喷!😘


相关文章:

软件工程概述

软件工程概述 软件工程指的是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产效率、提高软件质量、降低软件成本。 1. 计算机软件 计算机软件指的是计算机系统中的程序及其文档。程序是计算任务的…...

国际网页短信软件平台搭建定制接口说明|移讯云短信系统

国际网页短信软件平台搭建定制接口说明|移讯云短信系统 通道路由功能介绍 支持地区通道分流,支持关键字,关键词通道分流,支持白名单独立通道,支持全网通道分流,支持通道可发地区设置,通道路由分组&#x…...

Java“牵手”阿里巴巴店铺所有商品API接口数据,通过店铺ID获取整店商品详情数据,阿里巴巴店铺所有商品API申请指南

阿里巴巴平台店铺所有商品数据接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取阿里巴巴整店的商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、价格信息等详细信息 。 获取店铺所有商品接口API是一种用于获取电商平台…...

【Sql】把数据库字段用函数根据逗号分裂成列表,然后判断列表中是否包含目标值

【Sql】把数据库字段用函数根据逗号分裂成列表,然后判断列表中是否包含目标值 【1】问题描述【2】Oracle内置函数解决【3】mysql的内置函数INSTR()【4】mysql的内置函数FIND_IN_SET() 【1】问题描述 数据库中【库信息db】和【集群信息cluster】是一对多的关系&…...

docker基本命令记录

Docker 是一个开源的容器技术,它允许开发人员将应用程序及其所有依赖项打包到一个容器中,然后轻松地在任何地方部署和运行。以下是 Docker 的一些基本操作: 基础操作: 启动 Docker:service docker start停止 Docker:service docker stop查看 Docker 信息:docker info容器操作…...

web之利用延迟实现复杂动画、animation

文章目录 效果图htmlstyleJavaScript 效果图 html <div class"container"><div class"ball"></div><input type"range" min"0" max"1" step"0.01" /> </div>style body {display…...

TCP 和 UDP 的区别、TCP 是如何保证可靠传输的?

先来介绍一些osi七层模型 分为应用层、表示层、会话层、运输层、网络层、链路层、物理层。 应用层(数据)&#xff1a;确定进程之间通信的性质以及满足用户需要以及提供网络和用户应用&#xff0c;为应用程序提供服务&#xff0c;DNS&#xff0c;HTTP&#xff0c;HTTPS&#xf…...

鼠标悬停阴影的效果被旁边div挡住的解决办法

出现的问题 需求要求鼠标悬停某个图片上有阴影效果&#xff0c;但阴影被旁边相邻的div挡住了&#xff0c;如图所示 解决方案 给悬停的这块div增加2个css属性 $(this).css(position, relative); $(this).css(z-index, 200);新的效果如图所示 一直写后端&#xff0c;前端的…...

Go用两个协程交替打印100以内的奇偶数

方式1&#xff08;使用无缓冲的channel&#xff09; package mainimport ( "fmt" "time")var flagChan make(chan int)func wokr1() { for i : 1; i < 100; i { flagChan <- 666 // 塞入 if i%2 1 { fmt.Println("协程1打印:", i) …...

css 文字单行多行超出长度后显示 ...

0.超出… 1、单行文本超出 <div class"content">测试数据&#xff1a;css单行文本超出显示省略号--------</div><style> .content{width: 200px;height: 200px;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:el…...

C++将派生类赋值给基类

在 C/C++ 中经常会发生数据类型的转换,例如将 int 类型的数据赋值给 float 类型的变量时,编译器会先把 int 类型的数据转换为 float 类型再赋值;反过来,float 类型的数据在经过类型转换后也可以赋值给 int 类型的变量。 数据类型转换的前提是,编译器知道如何对数据进行取舍…...

海外问卷调查是做什么的?

大家好&#xff0c;我是橙河。现在我来给大家简单讲解一下海外问卷调查是做什么的&#xff1f; 多年以前&#xff0c;人们就开始在网上进行海外问卷调查了。最常见的方法是通过问卷网站、做问卷或者论坛进行调查&#xff0c;现在则更多地使用各种渠道进行调查。海外国家对于问…...

Redis——数据结构介绍

Redis是一个key-value的数据库&#xff0c;key一般是String类型&#xff0c;不过value的类型是多样的&#xff1a; String&#xff1a;hello wordHash&#xff1a;{name:"Jack",age:21}List&#xff1a;[A -> B -> C -> D]Set&#xff1a;{A,B,C}SortedSet…...

附录2-将三国演义按章节存储为不同的txt(bs4)

地址 《三国演义》全集在线阅读_史书典籍_诗词名句网 目录 1 项目分析 2 代码 1 项目分析 我们可以在首页中找到所有的章节 每一个章节是一个a标签&#xff0c;a标签连接到该章节的内容 但这个网站他有bug&#xff0c;章节都是乱套的&#xff0c;我们无视这种错误&#…...

现代C++中的从头开始深度学习:【6/8】成本函数

现代C中的从头开始深度学习&#xff1a;成本函数 一、说明 在机器学习中&#xff0c;我们通常将问题建模为函数。因此&#xff0c;我们的大部分工作都包括寻找使用已知模型近似函数的方法。在这种情况下&#xff0c;成本函数起着核心作用。 这个故事是我们之前关于卷积的讨论的…...

Vue——vue3中的ref和reactive数据理解以及父子组件之间props传递的数据

ref()函数 这是一个用来接受一个内部值&#xff0c;返回一个响应式的、可更改的 ref 对象&#xff0c;此对象只有一个指向其内部值的属性 .value。 作用&#xff1a;创建一个响应式变量&#xff0c;使得某个变量在发生改变时可以同步发生在页面上。 模板语句中使用这个变量时…...

新手如何备考PMP考试?

回头看来&#xff0c;从战略上来说&#xff1a; 备考第一重点&#xff1a;要有一个清晰的目标——我要过&#xff01; 第二重点&#xff1a;足够重视它——把它的优先级调整到仅次于工作&#xff1a;万籁俱寂&#xff0c;唯有学习。 第三重点&#xff1a;自律——有了第一点…...

FPGA输出lvds信号点亮液晶屏

1 概述 该方案用于生成RGB信号&#xff0c;通过lvds接口驱动逻辑输出&#xff0c;点亮并驱动BP101WX-206液晶屏幕。 参考&#xff1a;下面为参考文章&#xff0c;内容非常详细。Xilinx LVDS Output——原语调用_vivado原语_ShareWow丶的博客http://t.csdn.cn/Zy37p 2 功能描述 …...

算法面试-深度学习基础面试题整理(2023.8.29开始,每天下午持续更新....)

一、无监督相关&#xff08;聚类、异常检测&#xff09; 1、常见的距离度量方法有哪些&#xff1f;写一下距离计算公式。 1&#xff09;连续数据的距离计算&#xff1a; 闵可夫斯基距离家族&#xff1a; 当p 1时&#xff0c;为曼哈顿距离&#xff1b;p 2时&#xff0c;为欧…...

FireFox禁用HTTP2

问题 最近需要调试接口&#xff0c;但是&#xff0c;Chrome都是强制使用h2协议&#xff0c;即HTTP/2协议。为了排除h2协议排除对接口调用的影响&#xff0c;需要强制浏览器使用HTTP1协议。 解决 FireFox 设置firefox的network.http.http2.enabled为禁用&#xff0c;这样就禁…...

搭建HTTPS服务器

HTTPS代理服务器的作用与价值 HTTPS代理服务器可以帮助我们实现网络流量的转发和加密&#xff0c;提高网络安全性和隐私保护。本文将指导您从零开始搭建自己的HTTPS代理服务器&#xff0c;让您更自由、安全地访问互联网。 1. 准备工作&#xff1a;选择服务器与操作系统 a. 选…...

无人化在线静电监控系统的组成

无人化在线静电监控系统是一种用于检测和监控静电情况的系统&#xff0c;它可以自动地实时监测各个区域的静电水平&#xff0c;并在出现异常情况时发出报警信号。静电监控报警器则是该系统中的一个重要组成部分&#xff0c;用于接收和传达报警信号。 无人化在线静电监控系统通…...

element ui级联选择器数据处理

后端同事返回的级联选择器数据的children是childrens&#xff0c;而组件渲染只识别children&#xff0c;所以需要props自定义传入&#xff0c;代码如下 <el-form-item label"应用页面&#xff1a;" prop"appId"><el-cascader:props"{ child…...

zookeeper-3.6.4集群搭建

1、上传zookeeper安装包并解压 上传路径&#xff1a;/opt/software/ 解压路径&#xff1a;/opt/module/ 2、创建数据目录及日志目录 #数据目录&#xff1a;/data/zookeeper/data/ #3台机器创建存储目录&#xff1a; sudo mkdir -p /data/zookeeper/data#日志目录&#xff1a…...

15种下载文件的方法文件下载方法汇总超大文件下载

15种下载文件的方法&文件下载方法汇总&超大文件下载 15种下载文件的方法Pentesters经常将文件上传到受感染的盒子以帮助进行权限提升&#xff0c;或者保持在计算机上的存在。本博客将介绍将文件从您的计算机移动到受感染系统的15种不同方法。对于那些在盒子上存在且需要…...

Windows安装配置Rust(附CLion配置与运行)

Windows安装配置Rust&#xff08;附CLion配置与运行&#xff09; 前言一、下载二、安装三、配置标准库&#xff01;&#xff01;&#xff01;四、使用 CLion 运行 rust1、新建rust项目2、配置运行环境3、运行 前言 本文以 windows 安装为例&#xff0c;配置编译器为 minGW&…...

【ROS】例说mapserver静态地图参数(对照Rviz、Gazebo环境)

文章目录 例说mapserver静态地图参数1. Rviz中显示的地图2. mapserver保存地图详解3. 补充实验 例说mapserver静态地图参数 1. Rviz中显示的地图 在建图过程中&#xff0c;rviz会显示建图的实时情况&#xff0c;其输出来自于SLAM&#xff0c;浅蓝色区域为地图大小&#xff0c…...

【RapidAI】P0 项目总览

RapidAI 项目总览 ** 内容介绍 ** Author&#xff1a; SWHL、omahs Github&#xff1a; https://github.com/RapidAI/Knowledge-QA-LLM/ CSDN Author&#xff1a; 脚踏实地的大梦想家 UI Demo&#xff1a; ** 读者须知 ** 本系列博文&#xff0c;主要内容为将 RapidAI 项目逐…...

初识c++

文章目录 前言一、C命名空间1、命名空间2、命名空间定义 二、第一个c程序1、c的hello world2、std命名空间的使用惯例 三、C输入&输出1、c输入&输出 四、c中缺省参数1、缺省参数概念2、缺省参数分类3、缺省参数应用 五、c中函数重载1、函数重载概念2、函数重载应用 六、…...

【面试经典150题】跳跃游戏Ⅱ

题目链接 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i]i j < n 返回到达 nums[n…...

中心网站建设/青岛神马排名优化

LeetCode1.两数之和JavaScript 给定一个整数数组和一个目标值&#xff0c;找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案&#xff0c;且同样的元素不能被重复利用。实例&#xff1a; 给定 nums [2, 7, 11, 15], target 9因为 nums[0] nums[1] 2 7 9所…...

个人网站能 做淘客吗/怎么自己创建网站

进大厂本来就很难了&#xff0c;不过做足了准备&#xff0c;你会发现很多问题都迎刃而解了&#xff0c;当然有时候运气也占了一部分&#xff0c;除了运气以外&#xff0c;当然与我自身的努力也是分不开的。运气也是实力的一部分&#xff0c;毕竟天助自助者~ 每次到年底做总结的…...

有没有专业做二手老车的网站/百度下载安装到桌面上

...

织梦网站文章内容模板/北京网站优化校学费

本节目标&#xff1a; 1.掌握流的概念2.掌握字节流与字符流的作用3.掌握文件的标准操作步骤4.掌握字节与字符的操作的区别字节流和字符流之间的相互转换&#xff1a; 参考文章&#xff0c;点击这里 1. 流 在程序中&#xff0c;所有的数据都是以流的方式进行传输和保存的&am…...

对于网站反爬虫如何做/电脑优化系统的软件哪个好

有时候我们在使用pycharm进行python编程的时候&#xff0c;遇到了no python interpreter for the project&#xff0c;怎么解决呢&#xff0c;下面来分享一下方法 工具/原料 pycharm no python interpreter for the project解决方法 方法/步骤 1 第一步我们在使用pycharm进行py…...

网站建设的开多少税率/seo优化培训课程

问题&#xff1a; 给定一个栈&#xff0c;逆置栈中的内容&#xff0c;要求只能只用栈操作push和pop&#xff0c;不能用数组、栈、队列等做过渡。 基本思路&#xff1a; 用递归&#xff0c;先将原来栈中的元素递归出栈&#xff0c;直至栈为空&#xff0c;然后在每次递归向上步…...