当前位置: 首页 > news >正文

系统架构设计师(第二版)学习笔记----软件工程

【原文链接】系统架构设计师(第二版)学习笔记----软件工程

文章目录

  • 一、软件工程
    • 1.1 软件危机的表现
    • 1.2 软件工程的内容
  • 二、软件过程模型
    • 2.1 软件的声明周期
    • 2.2 瀑布模型
    • 2.3 瀑布模型的缺点
    • 2.4 原型模型
    • 2.5 原型模型开发阶段
    • 2.6 开发原型的途径
    • 2.7 螺旋模型
    • 2.8 螺旋模型每个阶段的组成
  • 三、敏捷模型
    • 3.1 敏捷型方法的特点
    • 3.2 敏捷方法的核心思想
    • 3.3 常见的敏捷方法实践
    • 3.4 极限编程的基础和价值
    • 3.5 FDD认为软件开发需要的3要素
    • 3.6 FDD定义了6中项目角色
    • 3.7 FDD的5个核心过程
  • 四、统一过程模型(RUP:Rational Unified Process)
    • 4.1 RUP的生命周期
    • 4.2 RUP中每个循环中的过程
    • 4.3 RUP中的核心概念
    • 4.4 RUP的特点
    • 4.5 RUP的视图模型
    • 4.6 软件开发采用迭代和增量的好处
  • 五、软件能力成熟度模型
    • 5.1 CMMI的5个成熟度等级

一、软件工程

1.1 软件危机的表现

  • 软件开发进度难以预测
  • 软件开发成本难以控制
  • 软件功能难以满足用户期望
  • 软件质量无法保证
  • 软件难以维护
  • 软件缺少适当的文档资料

1.2 软件工程的内容

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

二、软件过程模型

2.1 软件的声明周期

  • 需求分析
  • 软件设计
  • 软件开发
  • 运行维护
  • 淘汰

2.2 瀑布模型

  • 需求分析
  • 系统设计
  • 程序设计
  • 编码实现
  • 单元测试
  • 集成测试
  • 系统测试
  • 运行维护

2.3 瀑布模型的缺点

  • 软件需求的完整性、正确性等很难确定,甚至是不可能和不现实的
  • 瀑布模型是一个严格串行化的过程模型,使得用户和软件项目负责人要相当长时间才能得到一个可以看得见的软件系统。如果出现于用户的期望不一致、或者出现需求变更,将会带来巨大的损失
  • 瀑布模型的基本原则是在每个阶段一次性地完全解决该阶段的工作,不会出现遗漏、错误等情况,二实际上这是不现实或者不可能的。

2.4 原型模型

2.5 原型模型开发阶段

  • 原型开发阶段
  • 目标软件开发阶段

2.6 开发原型的途径

  • 利用模拟软件系统的人机界面和人际交互方式
  • 真正开发一个原型
  • 找来一个或几个正在运行的类似软件进行比较

2.7 螺旋模型

2.8 螺旋模型每个阶段的组成

  • 目标设定
  • 风险分析
  • 开发和有效验证
  • 评审

三、敏捷模型

3.1 敏捷型方法的特点

  • 敏捷方法是“适应性”而非“预设性”
  • 敏捷方法是“面向人”而非“面向过程”

3.2 敏捷方法的核心思想

  • 敏捷方法是适应型,而非可预测型
  • 敏捷方法是以人文本,而非以过程为本
  • 迭代增量式的开发过程

3.3 常见的敏捷方法实践

  • 极限编程(XP)
  • 水晶系列方法
  • Scrum
  • 特征驱动开发方法(FDD)

3.4 极限编程的基础和价值

  • 加强交流
  • 从简单做起
  • 寻求反馈
  • 勇于实事求是

3.5 FDD认为软件开发需要的3要素

  • 过程
  • 技术

3.6 FDD定义了6中项目角色

  • 项目经理
  • 首席架构师
  • 开发经理
  • 主程序员
  • 程序员
  • 领域专家

3.7 FDD的5个核心过程

  • 开发整体对象模型
  • 构造特征列表
  • 计划特征开发
  • 特征设计
  • 特征构建

四、统一过程模型(RUP:Rational Unified Process)

4.1 RUP的生命周期

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

4.2 RUP中每个循环中的过程

  • 初始阶段:定义最终产品视图和业务模型,并确定系统范围
  • 细化阶段:设计及确定系统的体系结构,指定工作计划及资源要求
  • 构造阶段:构造产品并继续演进需求、体系结构、计划直至产品提交
  • 移交阶段:把产品提交给用户使用

4.3 RUP中的核心概念

  • 角色(Role):Who的问题
  • 活动(Activity):How的问题
  • 制品(Artifacts):What的问题
  • 工作流(Workflow):When的问题

4.4 RUP的特点

  • 用例驱动
  • 以体系结构为中心
  • 迭代和增量

4.5 RUP的视图模型

  • 用例视图
  • 逻辑视图
  • 实现视图
  • 进程视图
  • 部署视图

4.6 软件开发采用迭代和增量的好处

  • 在软件开发的早起就可以对关键的、影响大的风险进行处理
  • 可以提出一个软件体系结构来指导开发
  • 可以更好的处理不可避免的需求变更
  • 可以较早得到一个可运行的系统,鼓舞开发团队的士气,增强项目成功信心
  • 为开发人员提供一个能更有效工作的开发过程

五、软件能力成熟度模型

5.1 CMMI的5个成熟度等级

  • Level 1 初始级
  • Level 2 已管理级
  • Level 3 已定义级
  • Level 4 量化管理级
  • Level 5 优化级

相关文章:

系统架构设计师(第二版)学习笔记----软件工程

【原文链接】系统架构设计师(第二版)学习笔记----软件工程 文章目录 一、软件工程1.1 软件危机的表现1.2 软件工程的内容 二、软件过程模型2.1 软件的声明周期2.2 瀑布模型2.3 瀑布模型的缺点2.4 原型模型2.5 原型模型开发阶段2.6 开发原型的途径2.7 螺旋…...

C与C++字符串分割方法示例汇总

在C语言中&#xff0c;没有内置的字符串分割函数。但是&#xff0c;你可以使用其他字符串操作函数和循环来实现字符串分割。这里是使用 strtok 函数在C中分割字符串的示例&#xff1a; #include <stdio.h> #include <string.h> int main() {char str[] "Hel…...

HTTP代理与VPN:网络代理技术的比较

HTTP代理和VPN是两种常见的网络代理技术&#xff0c;它们可以帮助用户隐藏自己的IP地址、保护网络隐私、绕过网络限制等。本文将介绍HTTP代理和VPN的定义、工作原理、优缺点以及使用场景。 一、HTTP代理 HTTP代理是一种通过代理服务器转发网络请求的技术。当用户发起网络请求时…...

免费低代码平台,助企业高效管理任务

编者按&#xff1a;本文主要介绍了免费的低代码平台实现了高效的任务管理系统&#xff0c;助力企业在任务管理方面的效率更上一层楼&#xff01;这个免费的低代码平台&#xff0c;将提高员工的工作效率。它不仅是一个任务管理系统&#xff0c;更是一个能让 企业 摆脱繁琐工作&a…...

基于conda的相关命令

conda 查看python版本环境 打开Anaconda Prompt的命令输入框 查看自己的python版本 conda env list激活相应的python版本(环境&#xff09; conda avtivate python_3.9 若输入以下命令可查看python版本 python -V #注意V是大写安装相应的包 pip install 包名5.查看已安装…...

【微信小程序】swiper的使用

1.swiper的基本使用 <jxz-header></jxz-header> <view class"banner"><swiperprevious-margin"30rpx"autoplayinterval"2000"indicator-dotsindicator-color"rgba(0,0,0,0.3)"indicator-active-color"#bda…...

iText实战--PDF和iText 简介

PDF可以做如下事务 iText 5步创建PDF import java.io.FileOutputStream; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter;public class PdfHelloWorld {/*** param args*/public static void main(String[]…...

「大数据-0.1」虚拟机VMware安装、配置、使用、创建大数据集群教程

目录 一、下载VMware Wworkstation Pro 16 二、安装VMware Wworkstation Pro 16 三、检查与设置VMware的网卡 1. 检查 2. 设置VMware网段 四、在VMware上安装Linux虚拟机 五、对安装好的虚拟机进行设置 1. 打开设置 2. 设置中文 3. 修改字体大小 4. 修改终端字体大小 5. 关闭虚…...

【HTTP】GET 和 POST 的区别

GET 和 POST 的区别 首先: GET 和 POST 没有本质区别, 具体来说, GET 的使用场景可替换为 POST,POST 使用的场景也可以替换为 GET. 语义上的区别: GET 通常用来获取数据, POST 通常用来上传数据. 现状是 GET 也经常用来上传数据, POST 也经常用来获取数据. 数据存放的位置不同…...

Unity Asset Bundle Browser 工具

Unity Asset Bundle Browser 工具 您可以在 Unity 项目中使用 Asset Bundle Browser 工具能够查看和编辑资源包的配置。 有关更多信息&#xff0c;请参阅 Unity Asset Bundle Browser 文档。 注意&#xff1a;此工具是不受支持的实用程序。查看极大的资源包可能会导致性能下…...

使用Linkerd实现流量管理:学习如何使用Linkerd的路由规则来实现流量的动态控制

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

1462. 课程表 IV

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;Floyd传递闭包方法二&#xff1a;拓扑排序 思考写在最后 Tag 【拓扑排序】【传递闭包】【并查集】【数组】 题目来源 1462. 课程表 IV 题目解读 给你一个表示课程先决条件的数组 prerequisites&#xff0c;prerequis…...

QTday2

完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两个按钮…...

thrift的简单使用

写在前面 本文一起看下一种由facebook出品的rpc框架thrift。 源码 。 1&#xff1a;开发步骤 1:编写thrift idl文件 2&#xff1a;根据thrift idl文件生成java模板代码 3&#xff1a;继承模板代码的*.Iface接口给出server的具体服务实现 4&#xff1a;使用模板的HelloWorldSe…...

Python实现猎人猎物优化算法(HPO)优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…...

2023年7月京东平板电脑行业品牌销售排行榜(京东销售数据分析)

鲸参谋监测的京东平台7月份平板电脑市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年7月份&#xff0c;京东平台上平板电脑的销量为68万&#xff0c;同比增长超过37%&#xff1b;销售额为22亿&#xff0c;同比增长约54%。从价格上看…...

HTML显示中文空格字符,emsp;一个中文字符,ensp;半个中文字符

&emsp;一个中文字符 &ensp;半个中文字符 <ul><li class"li">姓&emsp;&emsp;名&#xff1a;<input type"text" /></li><li class"li">手&ensp;机&ensp;号&#xff1a;<input type"…...

Python基础指令(上)

Python基础指令上 常量和表达式变量和类型1. 什么是变量2. 变量的语法2.1 定义变量2.2 使用变量 3. 变量的类型4. 为什么要有这么多类型5. 动态类型特性 注释输入输出1. 程序与用户的交互2. 通过控制台输出3. 通过控制台输入 运算符1. 算术运算符2. 关系运算符3. 逻辑运算符4. …...

Python之FastAPI返回音视频流

Python之FastAPI返回音视频流 今天想要记录一下困扰我几天的一个问题&#xff0c;关于FastAPI返回音视频流。首先FastAPI挂载静态资源其实超级简单&#xff0c;但是对于音视频流&#xff0c;如果你想要有播放进度可以拖动&#xff0c;需要单独处理。 有以下几点想跟大家分享&a…...

文件名批量重命名与翻译的实用指南

在日常办公中&#xff0c;我们经常遇到需要批量修改文件名并进行翻译的情况。手动一个一个修改文件名既费时又繁琐&#xff0c;而且还可能出现错误。今天&#xff0c;我们将介绍一种高效的方法&#xff0c;利用文件管理工具“固乔文件管家”&#xff0c;能够快速批量修改文件名…...

上海长宁来福士P2.5直径4米无边圆形屏圆饼屏圆面屏圆盘屏平面圆屏异形创意LED显示屏案例

长宁来福士广场是一个大型广场&#xff0c;坐落于上海中山公园商圈的核心区域&#xff0c;占地逾6万平方米&#xff0c;其中地上总建筑面积近24万平方米&#xff0c;总投资额约为96亿人民币。 LED圆形屏是根据现场和客户要求定制的一款异形创意LED显示屏&#xff0c;进行文字、…...

Linux 企业级夜莺监控分析工具远程访问

文章目录 前言1. Linux 部署Nightingale2. 本地访问测试3. Linux 安装cpolar4. 配置Nightingale公网访问地址5. 公网远程访问Nightingale管理界面6. 固定Nightingale公网地址 前言 夜莺监控是一款开源云原生观测分析工具&#xff0c;采用 All-in-One 的设计理念&#xff0c;集…...

react使用内联css样式的注意点

react使用内联css样式: 就是直接在元素标签的style属性中写css样式&#xff0c;但是这里有三个注意点: 1. style等号后面必须接双大括号也就是 style{{ xx: xx }} 这样 2. css的属性必须写成驼峰型&#xff0c;不能有中横线&#xff0c;比如marginRight, 而不能说margin-righ…...

优先队列PriorityQueue源码解析

基本信息 实现了队列接口&#xff1a;Queue --> AbstractQueue --> PriorityQueue public class PriorityQueue<E> extends AbstractQueue<E> implements java.io.Serializable {public abstract class AbstractQueue<E> extends AbstractCollection…...

前端开发中常见的跨域问题及解决方案

引言 在前端开发中&#xff0c;跨域问题是一个非常常见的问题。本文将详细介绍什么是跨域&#xff0c;常见的跨域场景&#xff0c;以及各种常用的跨域解决方案。 什么是跨域 跨域是指一个网页或者Web应用在浏览器中发起对另一个域名下资源的请求。由于浏览器的同源策略限制&…...

(超详解)堆排序+(图解)

目录&#xff1a; 1:如何建堆(两种方法) 2:两种方法建堆的时间复杂度分析与计算 3:不同类型的排序方式我们应该如何建堆 文章正式开始&#xff1a; 1&#xff1a;如何建堆 在实现堆排序之前我们必须得建堆&#xff0c;才能够实现堆排序 首先在讲解如何建堆之前让我们先来回顾一…...

Hadoop的YARN高可用

一、YARN简介 Hadoop2.0即第二代Hadoop&#xff0c;由分布式存储系统HDFS、并行计算框架MapReduce和分布式资源管理系统YARN三个系统组成&#xff0c;其中YARN是一个资源管理系统&#xff0c;负责集群资源管理和调度&#xff0c;MapReduce则是运行在YARN上的离线处理框架。 Y…...

C++内存检查

内存泄漏是程序中常见&#xff0c;也是最令人痛苦的一种bug。好在有一些检查工具可以帮助我们&#xff0c;这里介绍一个google 提供的简单直接的工具 Address-Sanitizer (ASAN)。 预备条件 ASAN 原来是LLVM 中的特性&#xff0c;后来GCC 4.8中也开始支持。也就是说&#xff0…...

防火墙概述及实战

目录 前言 一、概述 &#xff08;一&#xff09;、防火墙分类 &#xff08;二&#xff09;、防火墙性能 &#xff08;三&#xff09;、iptables &#xff08;四&#xff09;、iptables中表的概念 二、iptables规则匹配条件分类 &#xff08;一&#xff09;、基本匹配条…...

nginx代理故障总结

一、故障现象 今天公司的某个系统文件下载功能失败&#xff0c;报错network error&#xff0c;其他功能正常。 二、故障定位 首先我们检查了公司的网络情况&#xff0c;包括网络路由、防火墙策略、终端安全产品等&#xff0c;均未发现异常。 尝试访问http://X.X.X.X:7002端口&…...

安徽响应式网站建设哪家有/能够免费换友链的平台

https://www.cnblogs.com/onepixel/articles/7674659.html...

横峰县建设局网站/crm系统

0.巨大的地址空间这个已经不用再说了。除了空间巨大&#xff0c;固定长度的前缀分配也使得地址分配更加均衡。1.ICMPv6真正的有了用武之地&#xff1a;地址/路由配置的自动化IPv6使得联网设备真的成了即插即用&#xff0c;一切都是通过自动生成的链路本地地址开始的&#xff0c…...

北京市做网站/企业宣传方式有哪些

高效使用IPython&#xff08;一种交互式python开发环境&#xff09; 作者 easyfly 1 利用tab进行代码自动补全 1.1 代码实例 In[1]: ab5 In [2]: a %alias %automagic add2 any %alias_magic a all apply %autocall ab an_apple as %autoindent abs and assert In [2]: a 2. 利…...

个人网站不备案做经营性质网站/上海网站推广广告

为了我们电脑的安全&#xff0c;一般我们都会给电脑设置开机密码&#xff0c;这样对电脑来说就比较安全了。但是&#xff0c;每次开机都的输入密码才可以进入系统桌面&#xff0c;这样比较麻烦&#xff0c;而且还浪费时间&#xff1b;想取消开机密码&#xff0c;但不知道怎么取…...

徐州小学网站建设/搜索引擎 磁力吧

说明&#xff1a; 本文以nvie的“a successful git branching model”为蓝本&#xff0c;结合我个人理解写成。如有谬误&#xff0c;还请各位指出。多谢&#xff01; Note: This article is highly based on nvies a successful git branching model. Thanks nvie. Git Flow 是…...

做公司做网站有用吗/培训教育

在Qt的model/view中&#xff0c;QStandardItem是可以设置复选效果的&#xff0c;在QTreeView和QTableView等中以QCheckBox的样子显示出来。 item->setCheckable(true); // 设置是否能复选&#xff08;默认只有√和两种形态&#xff09; item->setTristate(true); …...