当前位置: 首页 > 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;能够快速批量修改文件名…...

Windows Defender移除工具终极指南:如何彻底禁用Windows Defender提升系统性能

Windows Defender移除工具终极指南&#xff1a;如何彻底禁用Windows Defender提升系统性能 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://git…...

Kali Linux 2026.1 发布 (2026 主题 BackTrack 模式) - 领先的渗透测试发行版

Kali Linux 2026.1 发布 (2026 主题 & BackTrack 模式) - 领先的渗透测试发行版 The most advanced Penetration Testing Distribution 请访问原文链接&#xff1a;https://sysin.org/blog/kali-linux/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&…...

《QGIS快速入门与应用基础》239:指北针样式选择(预设/自定义)

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...

魔兽世界游戏插件开发从入门到实战:工具详解与效率提升指南

魔兽世界游戏插件开发从入门到实战&#xff1a;工具详解与效率提升指南 【免费下载链接】wow_api Documents of wow API -- 魔兽世界API资料以及宏工具 项目地址: https://gitcode.com/gh_mirrors/wo/wow_api 作为魔兽世界玩家&#xff0c;你是否曾想过通过自定义插件提…...

首款支持AI渗透的WebShell管理工具,聊个天就能实现免杀|实现高隐蔽内网渗透

0x01 工具介绍 金刚狼首款支持 AI 渗透的 WebShell MCP&#xff0c;也是一款支持多层内网级联的 ASPX、ASHX 高级 WebShell 管理工具。工具采用 AES 加密通信&#xff0c;无需代理即可实现内网穿透&#xff0c;支持内存加载各类渗透工具&#xff0c;做到无文件落地隐蔽渗透目标…...

【adb端口5555】烽火hg680系列安卓9线刷全攻略:告别强制升级与花屏困扰

1. 烽火HG680系列机顶盒的痛点与解决方案 最近在折腾烽火HG680-GY和HG680-GC这两款机顶盒的朋友应该都深有体会&#xff0c;官方系统用着用着就会弹出强制升级提示&#xff0c;有时候还会莫名其妙出现花屏问题。作为一个折腾过不下20台烽火盒子的老玩家&#xff0c;我太理解这种…...

美团、腾讯、字节怎么选?3个真实案例告诉你答案

美团、腾讯、字节怎么选&#xff1f;3个真实案例告诉你答案 2026校招季&#xff0c;三个朋友的不同选择 大厂直通车-校招大礼包&#xff1a;入口入口 写在前面 2026届秋招结束了。 我的三个朋友小A、小B、小C都拿到了心仪的offer。有意思的是&#xff0c;他们分别选了字节、腾…...

职场“对错陷阱“:为什么你越是讲理,领导越不待见你?

导语&#xff1a;小时候老师教我们"明辨是非"&#xff0c;长大后却发现——在职场里太较真的人&#xff0c;往往混得最差。一、拍桌子的代价2023年春天&#xff0c;我亲眼看见林哥在会议室拍了桌子。"这需求根本不合理&#xff01;数据库设计违反第三范式&#…...

OpenClaw定时任务管理:Qwen3.5-4B-Claude模型驱动智能提醒系统

OpenClaw定时任务管理&#xff1a;Qwen3.5-4B-Claude模型驱动智能提醒系统 1. 为什么需要AI驱动的定时任务系统 上个月我连续错过了三个重要会议&#xff0c;直到同事发消息询问"人到哪了"才猛然惊醒。这种尴尬促使我开始寻找解决方案——传统日历提醒太被动&#…...

SEO_从入门到精通,掌握SEO的核心操作步骤

<h2>SEO从入门到精通&#xff0c;掌握SEO的核心操作步骤</h2> <p>在当今的互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为任何网站或网页希望获得高流量、高曝光的关键技能。无论你是一个初学者&#xff0c;还是已经有一些SEO基础的…...