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

news2024/12/25 12:29:12

目录

一、 软件开发生命周期

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.coloradmin.cn/o/458784.html

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

相关文章

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

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

crm-day04 分页查询市场活动,刷新市场活动列表

分页插件 分页这个组件前端要写也很麻烦&#xff0c;而且与业务逻辑代码无关&#xff0c;因此我们引入一个分页查询的插件。 进行jsp测试 三大步骤&#xff1a; 1、引入相关的包 2、创建容器来保存插件的运行结果 容器是<input typetext/>或者div。 3、容器加载完成后&a…

猫猫与主人

时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 对猫猫按照友善值进行排序 对主人按照期望友善值进行排序 就可以找到能收养猫猫的主人 对主人的友善值取一个max最后跟猫猫的期望友…

用大佬开发的模板做了“智慧水务”,终于可以和老板谈加薪喽!

为什么各个行业要进行数字化转型&#xff1f; 其实很好理解&#xff0c;这其中很大一部分属于传统行业&#xff0c;以往运营方式较为粗放&#xff0c;信息标准化程度偏低&#xff0c;但同时也意味着数字化的历史包袱轻&#xff0c;此时跟上潮流进行数字化转型&#xff0c;有利于…

美颜SDK的性能测试和优化方案

美颜SDK作为美颜相机、短视频等应用的核心技术之一&#xff0c;对于提升用户体验和增加应用商业价值起到了至关重要的作用。然而&#xff0c;如何对美颜SDK进行性能测试和优化&#xff0c;成为了广大应用开发者们所面临的一大难题。很多开发者也曾经向小编提起过应该如何着手优…

nodejs+python+php+springboot+vue 校园安全车辆人员出入安全管理系统

拟开发的校园安全管理系统通过测试,确保在最大负载的情况下稳定运转,各个模块工作正常,具有较高的可用性。系统整体界面简洁美观,用户使用简单,满足用户需要。在因特网发展迅猛的当今社会,校园安全管理系统必然会成为在数字信息化建设的一个重要方面。 本文阐述了开发的校园安全…

马斯克要告微软 拒绝AI训练“白嫖”数据

“现在是诉讼时间。”4月20日&#xff0c;推特被微软踢出其数字营销平台后&#xff0c;新掌门人马斯克立马发推回击称&#xff0c;微软用推特的数据做“非法训练”。这一怼&#xff0c;直接揭开了AI大模型开发商与数据源的利益之争。 此前&#xff0c;在线社区论坛Reddit与程序…

黑马redis实战篇-商铺缓存

目录 五、实战篇-商户查询缓存 5.1 什么是缓存 5.2 添加Redis缓存 1、不添加redis时&#xff0c;数据查询的作用模型&#xff1a; 2、添加redis时&#xff0c;数据查询的作用模型&#xff1a; 3、业务流程图&#xff1a;​编辑 4、代码实现 5、练习题 5.3 缓存更新策略…

【Android FrameWork (三)】- SystemServer

文章目录 知识回顾启动第一个流程initZygote的流程 前言源码分析1.system_server2.SystemServer.main3,startBootstrapServices4,startService 拓展知识LoadApkcontext 对于Android context 大家是怎么理解的&#xff1f;LocalServices.java: addServece方法中 ArrayMap和HashM…

Matlab 绘制双纵轴三纵轴图

三纵轴图 三坐标的图在前文中有所介绍&#xff1b;这次主要讲绘制双轴。 matlab 绘制三坐标&#xff08;轴&#xff09;图 绘制双纵轴图: yyaxis 简单用法 在MATLAB中&#xff0c;yyaxis可以用于绘制具有两个不同y轴的图形。以下是yyaxis的简单用法&#xff1a; 1.首先&am…

UG NX二次开发(C#)-UIStyler-找不到指定的Dlx文件的错误解决方法

1、项目场景: 在UG NX二次开发过程中,我们为了更好的操作,采用UI Styler设计了软件界面,然后按照UI Styler的编程流程成功的生成了dll,但是在采用Ctrl+U或者用“文件“->“执行”->"NX Open"执行dll时,遇到如下图所示的错误页面,提示内容为:找不到指定…

成就更强大的自己

每一次低谷&#xff0c;都会酝酿向上的力量。 每一次痛苦过后&#xff0c;都会洗涤掉心理深处的灰尘。 人生的路上&#xff0c;坎坷前行&#xff0c;只有保持积极向上的态度&#xff0c;才能把坎坷化为坦途。 走过一段路后&#xff0c;才发现&#xff0c;当内心强大、修养、爱…

Android之 颜色选择器

一&#xff0c;简介 1.1 计算机的颜色通常有两种表示方式&#xff1a; 光源模式RGB(Red红, Green绿, Blue蓝)&#xff0c;数值0-255 印刷模式CMYK(Cyan青, Magenta品红, Yellow黄, Black黑)&#xff0c;数值1-100 任何颜色都是由RGB或CMYK混合出来的&#xff0c;再加上透明度…

2023年产业基金研究报告

第一章 行业概况 1.1 概述 产业基金&#xff0c;又称为产业投资基金&#xff0c;是一种由政府、企业、金融机构等出资设立的&#xff0c;专门用于支持和促进特定产业发展的投资基金。产业基金通常以股权投资和长期投资为主&#xff0c;旨在推动产业结构升级、促进科技创新、提…

算法刷题|139.单词拆分、多重背包

单词拆分 题目&#xff1a;给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 思路&#xff1a;字符串s就是我们的背包…

【移动端网页布局】流式布局案例 ① ( 视口标签设置 | CSS 样式文件设置 | 布局宽度设置 | 设置最大宽度 | 设置最小宽度 )

文章目录 一、视口标签设置二、CSS 样式文件设置三、布局宽度设置1、设置布局宽度2、设置布局最大宽度3、设置布局最小宽度4、查看网页最大最小宽度5、布局宽度设置 四、代码示例1、主界面标签2、CSS 布局设置 一、视口标签设置 参考 【移动端网页布局】移动端网页布局基础概念…

打造卓越游戏 | 2023 Google 游戏开发者峰会

一款游戏从初始构想的开发到辉煌赛季的策划&#xff0c;开发者们每时每刻都在倾注心血潜心钻研&#xff0c;Google 也致力于在整个开发和发布生命周期中为您提供帮助。我们很高兴能在今年如约而至的 Google 游戏开发者峰会中与您分享诸多更新&#xff0c;展示我们为助力您打造精…

JavaScript常用方法整理

文章目录 前言1.栈方法&#xff1a;push()、pop()2.队列方法&#xff1a;unshift()、shift()3.indexof()、lastIndexOf()、includes()4.操作方法&#xff1a;concat()、slice()、splice()5.Array.isArray()6.排序方法:sort()、reverse()7.转换方法&#xff1a;toString()、join…

input 元素 change 事件失效,失去焦点的时候才执行?什么原因导致?如何正确使用?

具体问题如标题所示&#xff0c;不再过多水字数&#xff0c;请看下面的代码&#xff1a; <input :class"[custom-form-item-input, (isFocusUserName && !userName) ? custom-form-item-input-err-active : ]"autoCompletenew-password type"text&…

带着疑问学C语言-C语言常用变量

目录 目录 一、声明变量和定义变量的区别是什么&#xff1f; 二、什么常量&#xff0c;如何区分常量和变量&#xff1f; 三、各数据类型所占的内存是多少&#xff1f; 四、字符与字符串的差别有哪些&#xff1f; 五、为什么会发生数据溢出&#xff0c;如何避免数据溢出&am…