系统分析师之软件工程(十二)

news/2024/4/26 18:08:01/文章来源:https://blog.csdn.net/qq_42357877/article/details/130356448

目录

一、 软件开发生命周期

1.1 开发阶段工作细分

二、软件开发模型

2.1 瀑布模型

2.2 原型模型

2.3 增量模型与螺旋模型

2.4 V模型

2.5 喷泉模型

2.6 快速应用开发模型RAD

2.7 构件主装模型

2.8 统一过程

2.9 敏捷方法

三、逆向工程

四、净室软件工程


一、 软件开发生命周期

阶段

软件开发阶段工作内容

立项阶段

企业全局、形成概念、需求分析,输出系统可行性研究报告、立项报告

开发阶段

在开发的角度来看,可简化为系统规划,系统分析,系统设计,系统实施,系统验收。其中系统实施阶段工作量最大。

运维阶段

系统通过验收,正式移交用户。分为排错性,适应性,完善性,预防性。

消亡阶段

更新改造、功能扩展、报废重建

1.1 开发阶段工作细分

二、软件开发模型

2.1 瀑布模型

是结构化方法中最常用的开发模型。它把软件开发过程分为六个阶段:软件计划,需求分析,软件设计,程序编码,软件测试,运行维护。它是软件工程最早的模型,它有利于大型软件开发过程中人员的组织与管理,它自上而下呈线性图式。

适用场景:它只适用于需求不怎么变更的项目。

2.2 原型模型

原型模型:特点有实际可行,具有最终系统的基本特征,构造方便快捷,造价低。而对于用户的需求是动态响应随时纳入的。可以将原型开发分为抛弃型原型和演进型原型。

演化模型:在快速开发一个原型的基础上,获得用户反馈后改进,重复这个过程直到演化出新的产品。

快速原型模型:抛弃型原型模型

2.3 增量模型与螺旋模型

螺旋模型:以原型为基础,增加了风险分析。沿着螺旋自内向外旋转。是一个演化的软件过程模型。将原型实现的迭代和线性顺序模型中控制的和系统化的方面结合起来,它有四个阶段构成分别是制定计划,风险分析,实施工程和客户评估。它适用于庞大而复杂的,高风险的系统。

2.4 V模型

以测试为中心的开发模型。它宣称测试并不是一种事后的补救行为,而是一个同开发过程同样重要的过程。V模型描述了一些不同的测试级别,并且说明这些级别所对应的生命周期中不同的阶段。适合与需求明确,或者需求不是频繁变动的场合。

2.5 喷泉模型

主要支持面向对象的开发方法。体现了迭代和无缝隙的特征。无缝隙是指分析设计和编码之间不存在明显的边界。

2.6 快速应用开发模型RAD

快速应用开发模型是一个增量型的软件开发过程模型,强调极短的开发周期。它是瀑布模型的一种高速变种,通过大量使用复用的构件,赢得快速开发。

2.7 构件主装模型

构件库建立:实现代码的构件层次的可复用

构件主装模型将整个系统模块化,并在一定构件模型的支持下复用软件构件,通过组合手段,高效构造应用软件系统的过程。

2.8 统一过程

它是一个通用过程框架。使用UML建模的基于构件的迭代的软件开发过程。适用于大型系统的开发。

统一过程的特点:

  • 用例驱动
  • 以架构为中心
  • 迭代和增量

统一过程规定里四个细分阶段:

初始阶段

确定业务模型并确定项目的边界。系统的阐述项目的范围,选择可行的系统构架,计划和准备业务案例

细化阶段

分析问题领域,建立健全的体系结构基础。细化构想,细化过程和基础设施,细化构架并选择构件

构建阶段

要开发所有剩余的构件和应用程序功能。资源管理,控制和过程最优化。完成构件的开发并依照评价标准进行测试

交付阶段

基线足够完善,可以安装到最终用户实际环境中是,则进入交付阶段。同步并使并发的构造增量集成到一致的实施基线中,与实施有关的工程活动(商业包装,生产,人员培训等),根据完整的构想和需求集的验收标准评估实施基线

2.9 敏捷方法

敏捷方法的特点:

  • 小步快跑,分很多论小迭代
  • 建议一些负荷,文档方面的符合

敏捷方法的分类:

  • XP,极限编程。在一些对费用严格控制的公司中的使用。
  • 水晶系列方法:用最少纪律约束而仍能成功的方法,以人为中心。
  • 开放式源码:突出特点就是差错排障的高度并行性,任何人发现错误都可以将其改正源码的补丁文件发给维护者,有维护者并入源码库。
  • SCRUM:明确定义了可重复的方法过程只限于在明确定义了的可重复的环境中,为明确定义了可重复的人员所用,去解决明确定义的可重复问题。
  • Coad的功用驱动开发方法:它致力于短时的选代阶段和可见可用的功能。在FDD中,一个迭代周期一般是两周。
  • ASD方法,其核心是三个非线性的、重叠的开发阶段: 猜测、合作与学习。

三、逆向工程

逆向工程的级别:

  • 实现级:包括程序的抽象语法树、符号表、过程的设计表示
  • 结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图、程序和数据结构
  • 功能级:包括反映程序段功能及程序段之间关系的信息,例如数据和控制流模型
  • 领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息,例如实体关系模型

四、净室软件工程

形式化的方法:高度严谨的逻辑性,数学层面能验证的

  • 净室即无尘室、洁净室。也就是一个受控污染级别的环境。
  • 使用盒结构规约( 或形式化方法) 进行分析和设计建模,并且强调将正确性验证,而不是测试,作为发现和消除错误的主要机制。
  • 使用统计的测试来获取认证被交付的软件的可靠性所必需的出错率信息。

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

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

相关文章

斯坦福| ChatGPT用于生成式搜索引擎的可行性

文|智商掉了一地 随着 ChatGPT 在文本生成领域迈出了重要一步,Bing 浏览器也接入了聊天机器人功能,因此如何保证 Bing Chat 等搜索引擎结果的精确率和真实性也成为了搜索领域的热门话题之一。 当我们使用搜索引擎时,往往希望搜索结…

电子阅读器市场角力,AI成为关键变量

配图来自Canva可画 近年来,随着国家“书香型社会”建设政策的出台,公众的阅读需求正在逐年增加,各类读书产品和读书活动,也如同雨后春笋般涌现,人们的阅读体验日益得到丰富。比如,昨天世界读书日举行的“不…

更简单的存取Bean方式-@Bean方法注解

1.Bean方法存储 类注解是添加在某个类上的,那么方法注解是添加在某个方法前的 public class UserBeans {Beanpublic User user1(){User user new User();user.setUid(001);user.setUname("zhangsan");user.setAge(19);user.setPassword("123123");retur…

【分布式搜索引擎ES01】

分布式搜索引擎ES 分布式搜索引擎ES1.elasticsearch概念1.1.ES起源1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引 1.3.es的一些概念1.3.1.文档和字段1.3.2.索引和映射1.3.3.mysql与elasticsearch 1.4.1安装es、kibana、IK分词器1.4.2扩展词词典与停用词词典 2.索引库操作2.1.mappi…

Springcloud连接nacos集群,nacos地址配置为nginx,报错:requst nacos server failed

先说下版本: Spring cloud: Hoxton.SR12 spring.cloud.alibaba: 2.2.9.RELEASE spring.boot: 2.3.12.RELEASE Linux Centos7 nacos-server:2.1.0 nginx: 1.20.2 环境说明: nacos正常搭建三个集…

supervisor安装

说明 Supervisor翻译过来是监管人,在Linux中Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类Linux/unix的机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通…

【虚幻引擎】UE4/UE5科大讯飞文字合成语音

一、链接地址 链接:https://pan.baidu.com/s/15Qoc48x3DLpw4eW1qHXInQ 提取码:jqpx B站视频链接:https://space.bilibili.com/449549424?spm_id_from333.1007.0.0 二、案例介绍 第一步:首先进入讯飞开放平台注册一个账号&…

ThreadPoolExecutor源码阅读流程图

1.创建线程池 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,Executors.defaultThreadFactory(), def…

Automa函数学习(三)

从变量中获取数据 当我们想要用automa获取文本标签获取到网页的文本内容后,想要将获取到的文本内容当做参数往后面的标签里进行传递时就需要用到automa提供的传参格式 {{ variables.自定义参数名}} 举例: 先建立打开百度首页工作流 前面自定义的变量名为text,所以这里参数拼接…

开放式耳机有什么好处,盘点几款性能不错的开放式耳机

随着人们对生活质量要求的提高&#xff0c;大家在运动的时候都喜欢戴上耳机&#xff0c;享受运动的乐趣。但是传统耳机戴久了之后就会出现耳朵酸痛的情况&#xff0c;这是因为传统耳机佩戴方式是通过空气振动来传递声音&#xff0c;而人在运动时就会伴随着大量的汗水&#xff0…

深入学习RabbitMQ五种模式(一)

1.安装erlang 下载otp_win64_25.3.exe https://www.erlang.org/downloads erlang安装完成&#xff0c;需要配置erlang环境变量 ERLANG_HOMEE:\software\Erlang OTPPATH%PATH%;%ERLANG_HOME%\bin; 2.安装RabbitMQ 下载rabbitmq-server-3.11.13.exe https://www.rabbitmq.com/dow…

【Python 协程详解】

0.前言 前面讲了线程和进程&#xff0c;其实python还有一个特殊的线程就是协程。 协程不是计算机提供的&#xff0c;计算机只提供&#xff1a;进程、线程。协程是人工创造的一种用户态切换的微进程&#xff0c;使用一个线程去来回切换多个进程。 为什么需要协程&#xff1f; …

IntelliJ IDEA 接入ChatGPT (免费,无需注册)生产力被干爆了!

IntelliJ IDEA 接入ChatGPT 前言 : 今天给大家介绍一款好用的 IntelliJ IDEA ChatGPT 插件 可以帮助我们写代码&#xff0c;以及语言上的处理工作&#xff0c;以及解释代码。让我们的生产力大大提高&#xff01; 一. ChatGPT-Plus 功能介绍 支持最新idea版本AI询问功能,写好…

Adobe Photoshop 软件下载

Adobe Photoshop&#xff0c;简称“PS”&#xff0c;是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。 时至今日&#xff0c;Adobe Photoshop 已经成为当今世界上最流行、应用最广泛的图像处理软件。不但设计专业的学生要系统的学习这个…

智能建筑中电力监控系统的应用与产品选型

摘要&#xff1a;近几十年&#xff0c;中国现代化经济不断发展&#xff0c;计算机技术、信息技术等相关产业也取得了飞跃性的进步。随着商业、生活以及公共建筑不断提高智能管理和节能的要求&#xff0c;电力监控系统开始逐渐渗入人们的日常生活&#xff0c;发挥着不可替代的作…

算法刷题|0-1背包问题、416.分割等和子集

0-1背包问题 什么是0-1背包&#xff1f; 有i个物品和一个容量为j的背包&#xff0c;每个物品有重量和价值两个属性&#xff1b;求容量为j的背包能装的物品的最大价值是多少。每个物品智能使用一次。 二维dp数组 dp[i][j]的含义&#xff1a;表示从前i个物品中&#xff0c;当前…

C++中引用的基本内容

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】 引用&#xff0c;其实没啥特别的&#xff0c;就是起外号&#xff0c;或者说起小名。就比如说孙悟空就有很多外号&#xff0c;如…

为何C语言的函数调用要用到堆栈,而汇编却不需要自定义栈

一 ≠ 汇编不需要堆栈 汇编中一般不初始化&#xff0c;也就是直接使用系统的堆栈而已&#xff0c;自己定义堆栈还是要初始化的。 之前看了很多关于uboot的分析&#xff0c;其中就有说要为C语言的运行&#xff0c;准备好堆栈。 而自己在Uboot的start.S汇编代码中&#xff0c…

一文详细介绍查看和启用nginx日志(access.log和error.log),nginx错误日志的安全级别,自定义访问日志中的格式

文章目录 1. 文章引言2. Nginx访问日志(access.log)2.1 简述访问日志2.2 启用Nginx访问日志2.3 自定义访问日志中的格式 3. Nginx错误日志(error.log)3.1 简述错误日志3.2 启用错误日志3.3 Nginx错误日志的安全级别 4. 文末总结 1. 文章引言 我们在实际工作中&#xff0c;经常使…

学习spark笔记

✨ 学习 Spark 和 Scala 一 ​ &#x1f426;Spark 算子 spark常用算子详解&#xff08;小部分算子使用效果与描述不同&#xff09; Spark常用的算子以及Scala函数总结 Spark常用Transformations算子(二) Transformation 算子(懒算子)&#xff1a;不会提交spark作业&#…