软件工程体系概念

软件工程

软件工程是应用计算机科学、数学及 管理科学等原理开发软件的工程。它借鉴 传统工程的原则、方法,以提高质量,降 低成本为目的。

一、软件生命周期

在这里插入图片描述

二、软件开发模型

1.传统模型

瀑布模型、V模型、W模型、X 模型、H 模型

(1)瀑布模型

在这里插入图片描述
瀑布模型的优缺点:

优点:

  • 有利于大型软件开发过程的人员的组织和管理
  • 有利于 开发方法和工具的使用
  • 提高了软件的质量和效率

缺点:

  • 各阶段的划分完全固定,阶段之间产生大量文档,极大的增加了工作量
  • 由于是线性的,用户只有等到末期才能见到开发成果,极大的增加了 开发的风险
  • 早期的错误可能要等到开发后期的测试阶段才能发现,极大的增加了 修复成本
(2)V模型–瀑布模型的变型

在这里插入图片描述

(3)W模型– V模型的升级版

在这里插入图片描述

(4)X 模型

在这里插入图片描述

(5)H 模型

在这里插入图片描述

2.现代模型

原型模型、迭代式开发、增量式开发、组件式开发、敏捷开发

(1) 原型模型

原型开发指的是建立一个系统的早期版本的演习 (practice),它不必反映最终产品的所有性能,而只要反映 感兴趣的一些方面。
在这里插入图片描述
特性:

  • 一个可实际工作的系统
  • 没有固定的生存期,结局可能是用后立即被抛弃,或可能成为 最终系统
  • 可服务于不同的目的,从需求分析到最终产品都可做原型
  • 建立必须快,便宜
  • 是包含修改、评价在内的完整重复过程
(2) 迭代式开发
  • 迭代式开发也被称作迭代增量式开发或迭代进化式开发,是 一种与传统的瀑布式开发相反的软件开发过程,它弥补了传 统开发方式中的一些弱点,具有更高的成功率和生产率。
  • 在迭代式开发方法中,整个开发工作被组织为一系列的短小 的、固定长度(如3周)的小项目,被称为一系列的迭代。 每一次迭代都包括了定义、需求分析、设计、实现与测试。 采用这种方法,开发工作可以在需求被完整地确定之前启动, 并在一次迭代中完成系统的一部分功能或业务逻辑的开发工 作。再通过客户的反馈来细化需求,并开始新一轮的迭代。
    在这里插入图片描述
(3) 增量式开发
  • 增量是指在软件开发过程中,先开发主要功能模块,再开发 次要功能模块,逐步完善,最终开发出符合需求的软件产品。
  • 比如,需要开发一个类似WORD的软件,应该首先开发出文 件管理(保存、读取文件)、基本编辑功能、打印等,而其 它不太常用的功能可以最后开发。
  • 增量式开发,就是首先把大型程序分解成若干小的模块,然 后对每个模块按照某种过程模型进行开发,最后把这些模块 逐步集成为完整的软件产品。
(4) 组件式开发
  • 组件技术:代码复用性高、加快开发速度、 避免UI兼容性问题

在这里插入图片描述

(5) 敏捷开发
  • 敏捷开发以用户的需求进化为核心,采用迭代、循 序渐进的方法进行软件开发。
  • 在敏捷开发中,软件项目在构建初期被切分成多个 子项目,各个子项目的成果都经过测试,具备可视、 可集成和可运行使用的特征
  • 换言之,就是把一个大项目分为多个相互联系,但 也可独立运行的小项目,并分别完成,在此过程中 软件一直处于可使用状态。

三、软件研发流程

在这里插入图片描述
其中软件测试流程包括:

测试需求分析–>测试计划–> 测试方案–>测试用例–>测试执行–> 测试报告

四、软件项目成员

  • 项目经理(PM)
    驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队
  • 架构师 / 系统工程师
    技术专家,负责整个系统的体系架构的设计以及关键模块的设计
  • 需求分析师/产品经理
    将公司业务部门所给予的客户需求进行业务规则、业务范围、业务流 程等方面利用技术分析完之后,把需求输出工程师看得懂的语言
  • 程序员 / 开发人员(DEV)
    Java/C/C++/C#/Python/PHP/GO/Ruby,前端 设计、编写软件,并修复软件中的缺陷。
  • 测试工程师( TM )
    负责找出软件产品存在的问题并报告
  • 运维工程师 / 技术支持 / 实施工程师
    负责编写软件产品附带的文件和联机帮助文档
  • 配置管理员(CMO)
    负责管理程序员写的代码和测试写的文档资料,并组合成一个软件包
  • QA
    质量监管人员(项目管理)–负责整个项目的推进事件

五、软件开发沙龙

  • 软件结构:B/S、C/S
  • WEB服务器:Tomcat、Apache、JBoss、nginx Weblogic、WAS、IIS
  • 数据库:MySQL、MSSQL、Oracle
  • 软件环境:开发环境、测试环境、用户环境 生产环境
  • 软件IDE:Eclipse、EPP,VS
  • 常见开发语言:C/C++、Java、C#、.NET ASP、JSP、PHP、PYTHON、SHELL
  • 常见测试环境搭配:计算机基础知识(二进制、进程/线程)、配置管理
  • C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。通过这 种架构可以充分利用两端硬件环境的优势,将任务合理分配到Client端和 Server端来实现,降低了系统的通讯开销(实际应用:QQ、网游、手机App、火车票窗口购票系统、迅雷播放器)
    在这里插入图片描述
  • B/S结构(Browser/Server),是WEB兴起后的一种网络结构模式,WEB浏 览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能 实现的核心部分集中到服务器上,简化了系统的开发、维护和使用(淘宝、百度、12306购票网站、www.cctv.com、爱奇艺、页游)
    在这里插入图片描述
  • B/S和C/S的不同
    在这里插入图片描述
  • 进程/线程
    在这里插入图片描述
  • 多线程:软件或者硬件上实现多个线程并发 执行的技术,同一时间执行多于一个线程,进而提升整体 处理性能。

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

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

相关文章

我原以为政务类网站不追求漂亮,打脸啦,漂亮得颠覆你认知。

我原本以为政务类网站一定时沉稳、工整、信息量大的,这些和漂流都关联不上,直到最近看了一些网站,发现我的认识狭隘了。 政务类网站的设计风格通常需要注重以下几个方面: 稳重和专业感: 政务类网站需要给人以稳重、正…

【JavaScript】typeof返回值

typeof 用于返回数据类型,共六种返回值: 1.number, 2.string, 3.boolean, 4.object(object, array, null的返回值都为object), 5.function, 6.undefined。 let a hello let b [1, 2, 3] console.log(typeof NaN)//number console.log(typeof (NaN))//…

如何备份和恢复 Docker Desktop 数据

如何备份和恢复 Docker Desktop 数据 在使用 Docker Desktop 进行开发和部署时,备份和恢复 Docker 数据是非常重要的。本文将详细介绍如何在 Docker Desktop 中备份和恢复数据,确保您的容器和相关数据在任何情况下都能得到保护。 为什么需要备份和恢复…

如何检查 Kubernetes 网络配置

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Kubernetes 是一个容器编排系统,可以管理集群中的容器化应用程序。在集群中保持所有容器之间的网络连接需要一些高级网…

iptables(7)扩展模块state

简介 前面文章我们已经介绍了一些扩展模块,如iprange、string、time、connlimit、limit,还有扩展匹配条件如--tcp-flags、icmp。这篇文章我们介绍state扩展模块 state 在 iptables 的上下文中,--state 选项并不是直接关联于一个扩展模块,而是与 iptables 的 state 匹配机制…

长尾问题定义及如何解决长尾分布问题

目录 长尾问题定义主要挑战解决方法应用场景结论 长尾问题 定义 长尾问题(Long Tail Problem)是指在某些数据分布中,少数类别(或事件)出现的频率非常高,而多数类别(或事件)出现的频…

golang 最小堆获取前 n 的数据

背景 大量数据,想获取其中 Num 降序前五的数据 实现 package testimport ("container/heap""fmt""testing" )type Element struct {Content stringNum int }// 定义一个最小堆 type ElementMinHeap []Element// 重写方法 func…

oracle报错-ORA-12638:身份证明检索失败

navicat16连接本地oracle数据库成功后,连接远程数据库,同样是oracle11g,确认网络、用户名、密码都没问题的情况下,报错ora-12638。 解决方法: 这是由于Oracle的认证方式使用了本地操作系统认证(NTS&#x…

记一次服务器崩溃事件

今天在安装Jenkins的时候,进行到插件安装这一步,本来一切顺利,结果最后安装完成之后一直进不去网页,显示连接超时,网上搜索了一圈也没发现什么相似的情况,当我疑惑的时候回到Linux控制台,发现命…

使用pkg -r 命令选项向jail虚拟子系统里安装软件@FreeBSD

刷FreeBSD 论坛的时候,看到这样一招:使用pkg -r选项,往jail等虚拟机子系统里安装软件。jails - How to install a pkg offline into a jail? | The FreeBSD Forums rootfbhost:~ # pkg pkg: not enough arguments Usage: pkg [-v] [-d] [-l…

Java项目:基于SSM框架实现的电子竞技管理平台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的电子竞技管理平台 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…

雨量传感器的分类和选型建议

物理原理分类 机械降雨量计(雨量桶):最早使用的降雨量传感器,通过漏斗收集雨水并记录。主要用于长期降雨统计,故障率较低。电容式降雨量传感器:基于两个电极之间的电容变化来计算降雨量。当降雨时&#xff…

ES6 逐点突破系列 -- 函数的扩展

} f() // 1 var x 1; function foo(x, y function() { x 2; }) { var x 3; y(); console.log(x); } foo() // 3 x // 1 上面代码中,函数foo的参数形成一个单独作用域。这个作用域里面,首先声明了变量x,然后声明了变量y&#xf…

【C#】 读取图像为位图Bitmap

在C#中,要读取路径指定的图像文件并将其加载为Bitmap对象,可以使用Image.FromFile方法或者直接使用Bitmap构造函数。 一、使用 Image.FromFile 方法 using System.Drawing;public class ImageLoader {public static Bitmap LoadImageAsBitmap(string i…

linux桌面运维---第二天

1、启动Linux操作系统: 超级用户(root)的提示符是“#”,普通用户的提示符是“$”【重点】 [rootlocalhost home]# 解析: ​ root-----当前登录的用户的用户名 ​ ---表示地址域名 localhost---表示…

晨持绪科技:开好一家抖音小店运营怎么做

在数字时代,抖音小店以其独特的社交媒体优势迅速崛起,成为许多创业者的新宠。但如何有效运营,却是一门学问。首要任务是确定你的小店定位,这关系到后续的产品选择、目标客户群及营销策略。定位明确后,接下来便是挑选适…

深入解析NFS:原理、架构与实战操作

引言 在网络存储领域,NFS(Network File System)以其稳定性和高效性赢得了广泛的认可。作为一种分布式文件系统协议,NFS允许计算机客户端远程访问服务器上的文件,就如同访问本地文件一样便捷。本文将从技术角度深入探讨…

泡泡玛特携手浦东美术馆 推出SKULLPANDA重磅联名

6月20日,泡泡玛特“SKULLPANDA入画”快闪店在上海浦东美术馆重磅开幕,现场SKULLPANDA x 浦东美术馆联名吊卡“SKULLPANDA入画”重磅上线,这是潮流艺术家熊喵首次和国内顶级美术馆联动合作,除了吊卡以外,现场还有系列衍…

为什么有人说ipfs的核心是上传、下载和 Pin?

人们之所以说 IPFS 的核心是上传、下载和 Pin,主要是因为这些操作是 IPFS 协议的基本功能,同时也是 IPFS 实现分布式文件系统的关键步骤。 1. 上传(Add):在 IPFS 中,上传是指将数据添加到 IPFS 网络中。当你…

IP地址SSL证书快速申请攻略

一、IP地址定义 互联网协议地址(IP地址)是为互联网上的每台设备分配的一个唯一标识符。它就像是设备在网络中的“家庭住址”,使得数据包能够准确地发送到目的地。IP地址有两种主要类型:IPv4和IPv6。IPv4使用32位地址,…