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

news2024/11/26 3:50:28

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

文章目录

  • 一、软件工程
    • 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 优化级

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

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

相关文章

【音视频】ffplay源码解析-PacketQueue队列

包队列架构位置 对应结构体源码 MyAVPacketList typedef struct MyAVPacketList {AVPacket pkt; //解封装后的数据struct MyAVPacketList *next; //下一个节点int serial; //播放序列 } MyAVPacketList;PacketQueue typedef struct PacketQueue {MyAVPacketList …

纯js实现html指定页面导出word

因为最近做了范文网站需要,所以要下载为word文档,如果php进行处理,很吃后台服务器,所以想用前端进行实现。查询github发现,确实有这方面的插件。 js导出word文档所需要的两个插件: FileSaver.js jquery.w…

企业备份解决方案:保护您的企业虚拟机安全!

在目前这个高度数据化的信息时代中,企业对数据的依赖程度更高,以便进行高效的运营和理智的决策。然而,硬件的故障、自然的灾害以及网络的攻击等无法预料的情况,可能会带来大规模的数据丢失,进而造成经济的损失&#xf…

vscode 编译工程问题总结

1.安装NuGet Package出错 The “path” argument must be of type string or an instance of Buffer of URL Received undefined 解决方法: 账号登录,重启vscode (1)找到登录 (2)选择一个登录方式登录 …

打造本地紧密链接的开源社区——KCC@长沙开源读书会openKylin爱好者沙龙圆满举办...

2023年9月9日,由开源社联合 openKylin 社区举办的 KCC长沙开源读书会&openKylin 爱好者沙龙,在长沙圆满举办。这是 KCC长沙首次正式进入公众视野,开展开源交流活动,也是 openKylin 社区长沙首场线下沙龙。长沙地区及其周边的众…

目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)

文章目录 一、演示多分类效果二、PaddleClas介绍三、代码获取四、数据集获取五、环境搭建六、数据格式分析七、模型训练7.1 其他训练指标 八、模型预测九、模型评估十、PaddleClas相关博客 一、演示多分类效果 二、PaddleClas介绍 PaddleClas主要构件: PP-ShiTu&a…

测试与FastAPI应用数据之间的差异

【squids.cn】 全网zui低价RDS,免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 当使用两个不同的异步会话来测试FastAPI应用程序与数据库的连接时,可能会出现以下错误: 在测试中,在数据库中创建了一个对象&#x…

指针笔试题讲解-----让指针简单易懂(2)

目录 回顾上篇重点 : 一.笔试题 ( 1 ) 二.笔试题 ( 2 ) 科普进制知识点 (1) 二进制 (2) 八进制 (3)十六进制 三.笔试题( 3 ) 四.笔试题( 4 ) 五.笔试题( 5 ) 六.笔试题( …

Word中的图片保存后变模糊怎么解决

目录 1.介绍 2.原因 3.解决方案 Word是由微软公司开发的一款文字处理软件,它是Microsoft Office套件的一部分。Word提供了丰富的功能和工具,使用户能够创建、编辑和格式化文档。它支持各种文本处理任务,包括编写信函、报告、论文、简历等。…

C# Onnx Yolov8 Detect Poker 扑克牌识别

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System…

OVS-DPDK学习

安装教程: https://docs.openvswitch.org/en/latest/intro/install/dpdk/ https://docs.openvswitch.org/en/latest/howto/dpdk/ overview和应用 https://www.intel.com/content/www/us/en/developer/articles/technical/open-vswitch-with-dpdk-overview.html OVS…

【网络安全】黑客自学笔记

1️⃣前言 🚀作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。 计算机各领域的知识水平决定你渗透水平的上限🚀 【1】比如:你编程水平高,那你在代码审计的时候就会比…

【Map篇】HashTable详解

目录 成员变量属性构造函数put()remove()get()总结: HashTable的优点?HashTable 是一种基于哈希函数的数据结构。它将每个键Key映射到一个唯一的索引Index,通过这个索引来快速访问数据。底层是一个数组,数组中的每个元素称为桶(bucket)。 当我们需要访问某个元素时,首先会对…

Python 网络爬取的时候使用那种框架

尽管现代的网站多采取前后端分离的方式进行开发了,但是对直接 API 的调用我们通常会有 token 的限制和可以调用频率的限制。 因此,在一些特定的网站上,我们可能还是需要使用网络爬虫的方式获得已经返回的 JSON 数据结构,甚至是处理…

[架构之路-218]- 架构师责权利的定位, 架构师是技术领导者、决策者、激励者、企业家思维、战略思维、理论指导

目录 一、架构的诉求与系统的规模和复杂度强相关 1.1 系统的规模和复杂度对架构的影响 1.2 系统的业务需求对架构的影响 1.3 业架构和软件架构 二、架构师的类型 三、系统架构师 3.1 什么是系统架构师 3.2 系统架构师的技术素质要求 3.3 系统架构师的管理素质要求 3.…

【小程序】九宫格抽奖,页面不是有点丑,功能没啥问题,有需要直接拿去改吧

概述 常用活动抽奖功能,九宫格抽奖,两种方式切换,图片模式和文字模式,带抽奖次数。功能没啥问题,除了有点丑,css样式自己美化一下就可以了... 详细 微信小程序大转盘抽奖 演示图文字: 演示图…

Redis延迟双删-架构案例2021(三十二)

数据库设计 某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的互联网药品销售服务、该系统除了常规药品展示、订单、用户交流与反馈功能外,还需要提供当前热销产品排名、评价分类管理等功能。 通过对需求的分析&#xf…

JVM G1垃圾回收器学习笔记

前言 最近在工作中遇到频繁FullGC且YoungGC时间有时特别长的情况,而自己对JVM的垃圾回收也是一知半解,因此需要对JVM做系统的了解,为快速解决工作中的问题,能有效分析GC日志和业务代码,先从G1垃圾回收器开始学习&…

【论文阅读】检索增强发展历程及相关文章总结

文章目录 前言Knn-LMInsightMethodResultsDomain AdaptionTuning Nearest Neighbor Search Analysis REALMInsightsMethodKnowledge RetrieverKnowledge-Augmented Encoder ExpResultAblation StudyCase Study DPRInsightMethodExperimentsResults RAGInsightRAG-Sequence Mode…

小程序中如何查看会员的访问记录

​在小程序中,我们可以通过如下方式来查看会员的访问记录。下面是具体的操作流程: 1. 找到指定的会员卡。在管理员后台->会员管理处,找到需要查看访客记录的会员卡。也支持对会员卡按卡号、手机号和等级进行搜索。 2. 查看会员卡详情。点…