架构师知识梳理(七):软件工程-工程管理与开发模型

news2024/9/20 7:24:26

软件工程概述

软件开发生命周期

  • 软件定义时期:包括可行性研究详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。
  • 软件开发时期:就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。
  • 软件运行和维护:就是把软件产品移交给用户使用。

软件系统文档

软件系统的文档可以分为用户文档系统文档两类,

  • 用户文档主要描述系统功能和使用方法,并不关系这些功能是怎样实现的;
  • 系统文档描述系统设计、实现和测试等各方面的内容。

软件工程过程

  1. P(Plan)——软件规格说明。规定软件的功能及其运行时的限制。
  2. D(Do)——软件开发。开发出满足规格说明的软件。
  3. C(Check)——软件确认。确认开发的软件能够满足用户的需求。
  4. A(Action)——软件演进。软件在运行过程中不断改进以满足客户新的需求。

软件系统工具 

软件系统工具通常可以按软件过程活动将软件工具分为:

  • 软件开发工具:需求分析工具、设计工具、编码与排错工具、测试工具等。
  • 软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。
  • 软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。
  • 软件设计四个活动数据设计、架构(体系结构)设计、人机界面(接口)设计和过程设计

能力成熟度模型

能力成熟度模型CMM

能力等级特点关键过程区域
初始级 (Initia l)软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用。
可重复级 (Re peatable)建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。软件配置管理、软件质量保证、软件子合同管理、软件项目跟踪与监督、软件项目策划、软件需求管理
已定义级(De fined)管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有项目都采用根据实际情况修改后得到的标准软件过程来发和维护软件。同行评审、组间协调、软件产品工程、集成软件管理、培训大纲、组织过程定义、组织过程集点
已管理级(M anaged)制定了软件过程和产品质量的详细度量标准。对软件过程和产品质量有定量的理解和控制。软件质量管理和定量过程管理
优化级(Opti mized)加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进

能力成熟度模型CMMI

CMMI是若干过程模型的综合和改进,不仅仅软件,而是支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率。

能力等级特点关键过程区域
初始级过程不可预测且缺乏控制
已管理级过程为项目服务需求管理、项目计划、配置管理、项目监督与控制、供应商合同管理、度量和分析、过程和产品质量保证
已定义级过程为组织服务需求开发、技术解决方案、产品集成、验证、确认组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境
定量管理过程已度量和控制组织过程性能、定量项目管理
优化级集中于过程改进和优化组织级改革与实施、因果分析和解决方案

 

软件开发模型

瀑布模型

瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段。

 特点

  1. 从上一项开发活动接受该项活动的工作对象作为输入
  2. 利用这一输入,实施该项活动应完成的工作内容。
  3. 给出该项活动的工作成果作为输出传给下一项开发活动
  4. 对该项活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复。以相对来说较小的费用来开发软件。

螺旋模型

螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。在螺旋模型中,软件开发是一系列的增量发布。 

特点 

开发过程具有周期性重复的螺旋线状。四个象限分别标志每个周期所划分的四阶段:制订计划、风险分析、实施工程和客户评估。螺旋模型强调了风险分析特别适用于庞大而复杂的、高风险的系统。

V模型 

V模型从整体上看起来,就是一个V字型的结构,由左右两边组成。左边的下画线分别代表了需求分析、概要设计、详细设计、编码。右边的上画线代表了单元测试、集成测试、系统测试与验收测试。

特点

  1. 单元测试的主要目的是针对编码过程中可能存在的各种错误;
  2. 集成测试的主要目的是针对详细设计中可能存在的问题;
  3. 系统测试主要针对概要设计,检查系统作为一个整体是否有效地得到运行;
  4. 验收测试通常由业务专家或者用户进行,以确认产品能真正符合用户业务上的需要。
  5. V模型用于需求明确和需求变更不频繁的情形。

原型模型

 原型化模型第一步就是创建一个快速原型,能够满足项目干系人与未来的用户可以与原型进行交互,再通过与相关干系人进行充分的讨论和分析最终弄清楚当前系统的需求,进行了充分的了解之后,在原型的基础上开发出用户满意的产品

特点

原型法认为在很难一下子全面准确地提出用户需求的情况下,原型应当具备的特点如下: 

  • 实际可行
  • 具有最终系统的基本特征
  • 构造方便、快速,造价低。原型法的特点在于原型法对用户的需求是动态响应、逐步纳入的。 

增量模型 

首先开发核心模块功能,而后与用户确认,之后再开发次核心模块的功能,即每次开发一部分功能,并与用户需求确认,最终完成项目开发,优先级最高的服务最先交付。

 特点

但由于并不是从系统整体角度规划各个模块,因此不利于模块划分。难点在于如何将客户需求划分为多个增量与原型不同的是增量模型的每一次增量版本都可作为独立可操作的作品,而原型的构造一般是为了演示。

其他模型 

喷泉模型

是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。使开发过程具有迭代性和无间隙性

基于构件的模型(CBSD)

利用预先包装的构件来构造应用系统。构件可以是组织内部开发的构件,也可以是商品化成品软件构件。特点是增强了复用性,在系统开发过程中,会构建一个构件库,供其他系统复用,因此可以提高可靠性,节省时间和成本

形式化方法模型

建立在严格数学基础上的一种软件开发方法,主要活动是生成计算机软件形式化的数学规格说明。

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

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

相关文章

解决VSCode文件的中文GBK和UTF-8编码之间乱码问题

NOTE:近日笔者在使用VSCode编码环境的时候,出现了中文和UTF-8两者之间乱码的问题,特编写本片文章,以作学习记录。 1.需求 用VSCode打开外部的GBK2312编码文件,想在VSCode中统一以UTF-8编码查看(笔者推荐U…

作文网源码 范文论文网模板 带会员系统+支付接口+整站数据

织梦CMS仿某中国作文网源码,文章类网站源码数据采集,采集可能会失效哦,非常漂亮的模板程序。模板divcss设计,符合W3C标准,已做好SEO优化,收录爆增,排名好,模板清爽,漂亮。本站修复了…

Java | Leetcode Java题解之第405题数字转换为十六进制数

题目: 题解: class Solution {public String toHex(int num) {if (num 0) {return "0";}StringBuffer sb new StringBuffer();for (int i 7; i > 0; i --) {int val (num >> (4 * i)) & 0xf;if (sb.length() > 0 || val …

力扣每日一题 公交站间的距离

环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i 1) % n 的车站之间的距离。 环线上的公交车都可以按顺时针和逆时针的方向行驶。 返回乘客从出发点 start 到目…

五、Kubernetes中的存储

目录 一 configmap 1.1 configmap的功能 1.2 configmap的使用场景 1.3 configmap创建方式 1.3.1 字面值创建 1.3.2 通过文件创建 1.3.3 通过目录创建 1.3.4 通过yaml文件创建 1.3.5 configmap的使用方式 1.3.5.1 使用configmap填充环境变量 1.3.5.2 通过数据卷使用c…

深度学习自编码器 - 引言篇

序言 在深度学习的浩瀚星空中,自编码器( Autoencoder \text{Autoencoder} Autoencoder)以其独特的魅力闪耀着光芒。作为一种无监督学习技术,自编码器通过构建输入数据的压缩表示(编码)及其重构&#xff08…

鸿蒙开发之ArkTS 基础八 联合类型

联合类型 是一个变量可以存储不同的数据类型 形式灵活 使用场景,比如,考试,结果有两种形式,一种是给出具体的多少分,一种是是给出A、B、C、D、这种等级,在之前的变量中,只能存储要么分数&#…

Docker简介在Centos和Ubuntu环境下安装Docker

文章目录 1.Docker简介2.Docker镜像与容器3.安装Docker3.1 Centos环境3.2 Ubuntu环境 1.Docker简介 Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖项打包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 操作系统上。D…

强制类型转换有哪几种?

目录 1.static_cast 2.dynamic_cast 3.const_cast 4.reinterpret_cast 每种类型转换操作符都有其特定的应用场景和限制,应根据实际需求选择合适的转换方式。特别是 reinterpret_cast,由于它的类型安全性很低,使用时需格外小心。 1.static…

芜湖小孩自闭症寄宿制学校:释放潜能,开启未来

在探索儿童成长的无限可能中,有一群特别的孩子,他们以自己的节奏和方式感知着这个世界,那就是自闭症儿童。自闭症,一个逐渐为社会所熟知的领域,其背后承载着无数家庭的期望与挑战。在广州这座充满温情与活力的城市中&a…

成立LDAR检测公司的条件和投资额度(扩项)-泄漏检测与修复CMA认证

一、成立检验检测机构 1)独立法人:营业执照(经营范围包括检验检测机构服务的相关内容,不得有影响其检验检测活动公正性的经营项目,如:生产,销售等) 2)内设机构&#…

比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程

比传统机器学习更先进的深度学习神经网络的二分类建模全流程分析教程 深度学习介绍和与传统机器学习的区别 深度学习(Deep Learning)是一种机器学习的分支,基于多层神经网络模型,能够自动从大量数据中学习特征并进行预测。深度学…

MES生产执行管理

技术架构: 基于RuoYi前后端分离版本开发 有需要该项目的小伙伴可以添加我Q:598748873,备注:CSDN 功能描述: 系统管理、主数据、物料产品管理、工作站设置、生产管理、生产排产、质量管理、生产排班、节假日/工作日…

自动驾驶自动泊车场景应用总结

自动泊车技术是当前智能驾驶技术的一个重要分支,其目标是通过车辆自身的感知、决策和控制系统,实现车辆在有限空间内的自主泊车操作。目前自动泊车可分为半自动泊车、全自动泊车、记忆泊车、自主代客泊车四种产品形态,其中, 根据搭载传感器和使用场景的不同,全自动泊车又可…

Redis Universe: 探索无边界的数据处理星系

目录 引言 一、NoSQL的崛起 - 数据处理的新纪元 1.1 关系型数据库与NoSQL数据库概述 1.2 NoSQL数据库的兴起 1.3 RDBMS与NoSQL的比较 二、Redis星系导论 2.1 Redis的定义与历史 2.2 Redis的特性 2.3 Redis的应用场景 2.4 Redis缓存实现流程 三、构建你的第一座数据库…

yolo-word复现

github下载代码:https://github.com/AILab-CVC/YOLO-World 配置环境: 官方的方式 当然也可以按照官方给的配置方式去安装库,我也试了,出现小问题了。 我这边是从我本身的yolov8的环境克隆过来的,然后安装我环境里没有…

java坏境搭建

目录 安装 步骤1 步骤2 步骤3 步骤4 环境变量 1、在桌面“计算机”或“此电脑”图标上右键,选择“属性”,进入控制面板的计算机系统页面后,点击“高级系统设置”,不同操作系统可能界面不同: 2、点击“环境变量”…

C++基础知识7 list

list 1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list的迭代器失效 2.1 模拟实现list 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 l…

三步设置NAS的内网穿透

现在的NAS很多,NAS中可以提供的dock服务也很多,博主也试了一下,可以把家里的服务提供到公网上: 1、博主有一个“终身免费的花生壳域名”: 2、博主家有一个华为的AX3 PRO路由器,在路由器中设置花生壳域名的…

DBA运维小技巧之存储篇-Oracle服务器根目录满了怎么处理(2)迁移至新存储空间

1 前情提要 话说上次DBA小倩通过删除home lv,把空间扩给了/分区,问题暂时得到了解决。 没过几天,领导找到小倩下达任务,客户说数据库在本地磁盘空间太小了又快要满了,由于之前用的服务器本地磁盘,性能也比…