软件工程(上)

news2024/11/14 14:01:16

目录

软件过程模型(软件开发模型)

瀑布模型

原型模型

V模型

构件组装模型

螺旋模型(原型+瀑布)

基于构件的软件工程(CBSE)

快速应用开发模型(RAD)

统一过程(UP)/统一开发方法

敏捷开发方法

敏捷方法-xp

敏捷方法-SCRUM

极限编程 -xp

水晶方法

SCRUM

特征驱动开发方法(FDD)

开放式源码

ASD方法

动态系统开发方法(DSDM)

逆向工程

净室软件工程


软件过程模型(软件开发模型)

        软件过程模型也叫软件开发模型,是我们进行软件开发的时候需要遵循的一些思想和规范

瀑布模型

特点:严格区分阶段,每个阶段因果关系紧密相连,但是只适合需求明确的项目

缺点:

软件需求完整性、正确性很难确定

严格串行化、很长时间才能看到结果

瀑布模型要求每个阶段一次性完全解决该阶段的工作,这不现实。

原型模型

原型的思想就是构造一个简易系统,由他来获取需求。原型模式我们一般用在需求分析阶段

V模型

这个模式是强调测试贯穿始终的开发模型。

构件组装模型

优点:

容易扩展、重用、降低成本、安排任务更灵活

缺点:这个要求经验丰富的架构师、设计不好的构件难以重用、强调重用可能牺牲其他的指标(比如性能)、第三方构件质量难控制。

螺旋模型(原型+瀑布)

以快速原型为基础+瀑布模型,这个模型考虑了风险问题。

四个关键字:目标设定、风险分析、评审、开发和有效性验证

基于构件的软件工程(CBSE)

它该具备的特征:

可组装性:所有外部交互必须通过公开定义的接口进行

可部署性:构件总是二进制形式的,能作为一个独立实体在平台上运行

文档化:用户根据文档来判断构件是否满足需求

独立性:可以在没有其他特殊构件的情况下进行组装和部署

标准化:符合某种标准化的构件模型

构件的组装:

顺序组装:按照顺序调用已经存在的构件、可用两个已经有的构件来创造一个新的构件

层次组装:被调用构件的接口和调用构件的请求接口必须兼容

叠加组装:多个构件合并形成新构件、新构件整合原构件的功能、对外提供新的接口

快速应用开发模型(RAD)

多个模型拼装成的新的模型,瀑布模型有标准的开发流程、CBSD有构件的支撑。

统一过程(UP)/统一开发方法

主要用在大型软件开发应用里面

核心特点:用例驱动、以架构为中心、迭代和增量

四大阶段

初始:定义产品的业务模型、确定系统的范围

细化:设计及确定系统架构、制定工作计划以及资源要求

构造:开发剩余构件和应用程序功能、把这些构件集成为产品、并进行详细测试

移交:确保软件对最终客户是可用的,进行测试、制作产品的发布版本.

九大核心工作流

  • 业务建模
  • 需求
  • 分析和设计
  • 编码实现
  • 测试
  • 部署
  • 配置和变更管理
  • 项目管理
  • 环境

敏捷开发方法

是通过迭代而来的

最开始是没有开发方法的,没有顺序、不可空

到了一定的时间出现了传统软件开发方法:预设姓的、以开发过程为本、整体分阶段

最后才出现了敏捷方法:适应性的,以人为本、增量迭代、小不快跑、适合小型项目

敏捷宣言

  • 个体和交互胜过过程和工具,强调了人的重要性
  • 可工作的软件胜过大量的文档
  • 客户合作胜过合同谈判
  • 响应变化胜过遵循计划
敏捷方法-xp

四大价值观:沟通、简单、反馈、勇气

12条过程实践规则

敏捷方法-SCRUM

极限编程 -xp

价值观【交流、朴素、反馈、勇气】、近螺旋式的开发方法

水晶方法

提倡机动性的方法,拥有对不同类型项目非常有效的敏捷过程

SCRUM

侧重于项目管理

特征驱动开发方法(FDD)

这个方法认为有效的软件开发需要3要素【人、过程、技术】定义了6种关键的项目角色:项目经理、首席架构设计师、开发经理、主程序员、程序员和领域专家

开放式源码

程序开发人员在地域上分部很广

ASD方法

核心就是三个非线性的、重叠的开发阶段:猜测、合作和学习

动态系统开发方法(DSDM)

倡导以业务为核心

逆向工程

实现级:包括程序的抽象语法树、符号表、过程的设计表示,这个是最接近代码层面的

结构级:包括反映程序分量之间相互依赖关系的信息、例如:调用图、结构图、程序和数据结构

功能级:包括反映程序段功能及程序段之间的关系的信息,例如数据和控制流模型

领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应的关系的信息,例如实体关系模型

与逆向工程相关的概念是:重构、设计恢复、再工程、正向工程

重构:在同一抽象级别上转换系统描述形式

设计恢复:借助工具从已有程序中抽象出有关数据设计、总计结构设计和过程设计等方面的信息

再工程:对现有系统的重新开发、包括逆向工程、新需求的考虑过程和正向过程的三个步骤

正向工程:不仅从现有的系统中恢复设计信息、而且使用该信息去改变或重构现有系统、以改善他的整体质量。

净室软件工程

净室:无尘室、洁净室、也就是一个受控污染级别的环境

使用盒结构规约或者形式方法进行分析和设计建模、并且强调将正确性验证、而不是测试,作为发现和消除错误的主要机制

使用统计的测试来获取认证被交付的软件的可靠性所必需的出错率信息。

技术手段主要四个方面

  • 统计过程控制下的增量式开发:控制迭代
  • 基于函数的规范和设计:盒子结构:定义三种抽象层次:行为视图(黑盒)——>有限状态机视图(状态盒)——>过程视图(明盒
  • 正确性验证:净室工程的核心
  • 统计测试和软件认证使用统计学原理、总体太大时必须采用抽样方法

缺点:

  • 太理论化,正确性验证的步骤比较困难和耗时间
  • 开发小组不进行传统的模块测试。这是不现实的
  • 脱胎于传统软件工程、不可避免带有传统软件工程的一些弊端

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

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

相关文章

HTTP模块(一)

HTTP服务 本小节主要讲解HTTP服务如何创建服务,查看HTTP请求&响应报文,还有注意事项说明,另外讲解本地环境&Node环境&浏览器之间的链路图示,如何提取HTTP报文字符串,及报错信息查询。 创建HTTP服务端 c…

【TB作品】51单片机 Proteus仿真00016 乒乓球游戏机

课题任务 本课题任务 (联机乒乓球游戏)如下图所示: 同步显示 oo 8个LED ooooo oo ooooo 8个LED 单片机 单片机 按键 主机 从机 按键 设计题目:两机联机乒乓球游戏 图1课题任务示意图 具体说明: 共有两个单片机,每个单片机接8个LED和1 个按键,两个单片机使用串口连接。 (2)单片机…

【高阶数据结构】B-数、B+树、B*树的原理

文章目录 B树的概念及其特点解析B树的基本操作插入数据插入数据模拟 分析分裂如何维护平衡性分析B树的性能 B树和B*树B树B树的分裂B树的优势 B*B*树的分裂 总结 B树的概念及其特点 B树是一颗多叉的平衡搜索树,广泛应用于数据库和 文件系统中,以保持数据…

第2集《修习止观坐禅法要》

请打开补充讲表第一面,附表一、念佛摄心方便法。 我们前面讲到修止,就是善取所缘境的相貌,然后心于所缘,专一安住;心于所缘,相续安住;达到心一境性的目的。 站在修学净土的角度,他…

基于Python API的机械臂UDP上报设置及读取

睿尔曼机械臂提供了1个可持续读取机械臂状态的接口,UDP通信状态反馈接口。 该接口提供了json协议、API的读取,设置通信开启之后无需再进行设置即可以固定频率读取。 Python程序源码可从以下网盘地址获取(地址永久有效)&#xff1…

C# WinForm —— 38 SplitContainer介绍

1. 简介 将页面拆分成两个大小可以调整的区域,中间有一个拆分条,可以拖动拆分条来调整左右区域的大小 2. 属性 属性解释(Name)控件ID,在代码里引用的时候会用到BoderStyle边框样式:None、FixedSingle、Fixed3DAutoScroll当控件…

PyFluent入门之旅(4)算例求解

在网格划分完成或已有网格的情况下,可以进行算例的求解。 1. 切换/打开求解器 一般启动求解器前有两种情况: 已启动FluentMeshing并生成了网格,需要在不退出FluentMeshing的情况下直接切换至Fluent求解器。已经有现成的网格文件&#xff0…

亚信安全发布2024年6月威胁态势,高危漏洞猛增60%

近日,亚信安全正式发布《2024年6月威胁态势报告》(以下简称“报告”),报告显示,6月份新增信息安全漏洞 1794个,高危漏洞激增60%,涉及0day漏洞占67.67%;监测发现当前较活跃的勒索病毒…

Mysql 数据库主从复制-CSDN

查询两台虚拟机的IP 主虚拟机IP 从虚拟机IP服务 修改对应的配置文件 查询对应配置文件的命令 find / -name my.cnf编辑对应的配置文件 主 my.cnf (部分配置) [mysqld] ########basic settings######## server_id 1 log_bin /var/log/mysql/mysql-…

【大模型LLM面试合集】大语言模型基础_LLM为什么Decoder only架构

LLM为什么Decoder only架构 为什么现在的LLM都是Decoder only的架构? LLM 是 “Large Language Model” 的简写,目前一般指百亿参数以上的语言模型, 主要面向文本生成任务。跟小尺度模型(10亿或以内量级)的“百花齐放”…

聊一下Maven打包的问题(jar要发布)

文章目录 一、问题和现象二、解决方法(1)方法一、maven-jar-pluginmaven-dependency-plugin(2)方法二、maven-assembly-plugin 一、问题和现象 现在的开发一直都是用spring boot,突然有一天,要自己开发一个…

VSCode使用ipynb文件高效地进行功能测试

一、ipynb是什么文件 .ipynb文件是Jupyter Notebook的专用格式,它允许用户在一个网页应用中混合编写Markdown文本、执行代码、查看输出结果及图表。Jupyter Notebook的本质是一个Web应用程序,支持运行40多种编程语言,包括Python。它的主要用…

Linux基础: 二. Linux的目录和文件

文章目录 二. Linux的目录和文件1.1 目录概要1.2 目录详细说明 二. Linux的目录和文件 1.1 目录概要 command:ls / Linux的文件系统像一棵树一样,树干是根目录(/),树枝是子目录,树叶是文件; …

阿里云存储的降本增效与运维

小浩负责公司存储架构层,需要确保存储层不会成为公司业务系统的性能瓶颈,让数据读写达到最佳性能。那么小浩可以从哪些方面着手优化性能呢?他继续求助系统架构师大雷。 小浩:雷哥,PD反馈公司系统最近响应很慢&#xff…

C++学习/复习21--多态定义/虚函数与重写/虚函数表/单继承多继承的多态/抽象类/面试题

一、多态的定义及条件 二、虚函数与重写 2.1virtual 注意事项:只有成员函数可以是虚函数 2.2三同与重写 2.3用基类的指针或引用 注意事项:指针指向什么对象就调用其相应的函数 2.4重写条件的例外 协变与重写 析构函数的重写 为什么析构函数需重写 2.5o…

桂花网蓝牙网关X1000:引领物联网新时代的智能连接

在物联网技术飞速发展的今天,蓝牙网关作为连接蓝牙设备与互联网的关键设备,其性能与稳定性直接影响到物联网系统的整体运行效果。桂花网蓝牙网关X1000凭借其卓越的性能和广泛的应用场景,成为了物联网领域的佼佼者。 一、产品概述 桂花网蓝牙…

【WPF】桌面程序开发之xaml页面基础布局方式详解

使用Visual Studio开发工具,我们可以编写在Windows系统上运行的桌面应用程序。其中,WPF(Windows Presentation Foundation)项目是一种常见的选择。然而,对于初学者来说,WPF项目中xaml页面的布局设计可能是一…

【刷题汇总--字符串中找出连续最长的数字串、岛屿数量、拼三角】

C日常刷题积累 今日刷题汇总 - day0071、字符串中找出连续最长的数字串1.1、题目1.2、思路1.3、程序实现 -- 比较1.4、程序实现 -- 双指针 2、岛屿数量2.1、题目2.2、思路2.3、程序实现 - dfs 3、拼三角3.1、题目3.2、思路3.3、程序实现 -- 蛮力法3.4、程序实现 -- 巧解(单调性…

制冷软件SOLKANE单级制冷循环计算

SOLKANE软件下载 单级制冷循环参数介绍 输入数据: 1.蒸发器: 温度:蒸发温度t6(露点温度)。 过热:制冷剂t6-t6在蒸发器中过热。 压力损失:蒸发器入口和出口之间的压力下降。 制冷量&#x…