【软考速通笔记】系统架构设计师⑤——软件工程基础知识

文章目录

  • 一、前言
  • 二、基础知识点
    • 2.1 软件危机
    • 2.2 软件生命周期
  • 三、软件过程模型(论文)
    • 3.1 瀑布模型
    • 3.2 原型模型
    • 3.3 螺旋模型
    • 3.4 敏捷模型
    • 3.5 软件统一过程模型
    • 3.6 软件成熟度模型
    • 3.7 软件成熟度模型集成
  • 四、需求工程
  • 五、软件测试
    • 5.1 根据程序执行状态分类
    • 5.2 根据是否关注内部实现分类
    • 5.3 根据程序执行方式分类
    • 5.4 根据测试阶段分类
  • 六、项目管理
    • 6.1 软件进度管理
    • 6.2 软件配置管理
    • 6.3 软件质量管理
    • 6.4 软件风险管理

一、前言

笔记目录大纲请查阅:【软考速通笔记】系统架构设计师——导读

二、基础知识点

2.1 软件危机

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

2.2 软件生命周期

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

三、软件过程模型(论文)

3.1 瀑布模型

瀑布模型是一种传统的软件开发模型,结构化开发方法,特点是因果关系紧密相连,前一个阶段工作的输出结果是后一个阶段工作的输入。

缺点:

  • 需求难以一次确定
  • 变更的代价高
  • 结果难以预见
  • 各阶段工作不能并行

瀑布模型的流程是

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

3.2 原型模型

原型模型,又称为快速原型。

  • 解决问题:瀑布模型需求难以一次确定,结果难以预见的问题。
  • 使用方法:它通过快速构建一个可以运行的原型,让用户和开发者更直观地了解系统的功能和外观。

原型模型有原型开发和目标软件开发两个阶段。

  • 在原型开发阶段,开发者会快速构建一个简单的原型,供用户测试和反馈。
  • 根据用户的反馈,开发者会对原型进行修改和完善,直到用户满意为止。
  • 最后,开发者会根据最终的原型开始目标软件的开发。

3.3 螺旋模型

螺旋模型,在快速原型的基础上结合瀑布模型扩展而成。

它把整个软件开发流程分为多个阶段,每个阶段都由目标设定、风险分析、开发和有效性验证、评审等4部分组成。

在螺旋模型中,每个迭代都会进行风险评估和管理,以确保项目的顺利进行。这种模型适用于大型、复杂、高风险的项目,因为它可以帮助开发者更好地管理风险和不确定性。

3.4 敏捷模型

属于敏捷方法使用的模型。

  • 极限编程:高效低风险,测试先行(先写测试程序,再编写程序)。
  • 水晶系列方法:不同的项目,采用不同的策略。
  • 并列争球法:侧重于项目管理。
  • 特征驱动开发方法:将开发人员分类,分为指挥者、类程序员等。

3.5 软件统一过程模型

软件统一过程(Rational Unified Process,RUP)模型。

  • 9个核心工作流:业务建模、需求、分析与设计、实现、测试、部署、配置与变更管理、项目管理、环境
  • 特点:用例驱动、以架构为中心、迭代和增量
  • “4+1”视图模型
    • 逻辑视图:支持功能性需求,常用类图、对象图、状态图、协作图表示。
    • 实现视图(开发视图):描述软件的实现结构,包括代码组织和软件组件的实现。常用包图和组件图。
    • 进程视图(过程视图):考虑非功能性需求,如性能、并发、可用性、容错性、分布式、系统完整性等问题。常用活动图表示。
    • 部署视图(物理视图):反映了部署在硬件上的软件分布和配置情况,包括服务器、数据库、网络设备等资源的分配和连接关系。
    • 用例视图:所有视图都依靠用例视图(场景)来指导它们

3.6 软件成熟度模型

软件成熟度模型(Capability Maturity Model for Software,CMM)

是一种评估和提高组织软件工程能力的标准体系。

CMM把软件开发过程的成熟度由低到高分为五个级别,等级越高,表明该企业软件开发失败风险越低,整体开发时间越短,并能减少开发成本,降低错误发生率,提高产品质量。

3.7 软件成熟度模型集成

软件成熟度模型集成(Capability Maturity Model Integrattion for Software,CMMI)

在CMM的基础上发展而来,将软件过程改进的步骤组织成5个成熟度等级。

  • 初始级:组织的软件开发过程是不可预测的,缺乏稳定性,通常依赖于个别人的经验和技能。
  • 已管理级:组织已经有了基本的过程管理和文档标准的要求,并进行了控制。这些程序通常是项目级别的,而不是组织级别的。
  • 已定义级:组织的过程已经被标准化和文档化,并且在组织中得到了广泛的运用。组织能够自下而上地看到过程,并能进行过程的改进。
  • 量化管理级:组织通过定量的方法评估和控制过程的性能,并对过程进行持续改进。组织不仅需要有标准的软件开发过程,还需要对这些过程进行量化分析和度量,以便更好地了解过程的表现并做出持续改进。
  • 优化级:在优化级别上,组织的过程完全被优化,并且能够实现持续的过程改进和优化。

量化管理级与已定义级的区别是对过程性能的可预测

四、需求工程

需求工程由5个阶段组成

  • 需求获取:方法包括用户面谈、需求专题讨论会、问卷调查、现场观察、原型化方法和头脑风暴。
  • 需求分析:需求被进一步分析和细化。
  • 需求文档化:形成需求规格。
  • 需求确认与验证:确保需求文档准确反映了用户的实际需求。
  • 需求管理
    • 需求变更:问题分析和变更描述、变更分析和成本计算、变更实现。
    • 需求跟踪:建议与维护“需求—设计—编程—测试”。
    • 版本控制:确保需求文档准确反映了用户的实际需求。

五、软件测试

5.1 根据程序执行状态分类

  • 静态测试
  • 动态测试

5.2 根据是否关注内部实现分类

  • 黑盒测试
  • 白盒测试
  • 灰盒测试

5.3 根据程序执行方式分类

  • 人工测试
  • 自动化测试

5.4 根据测试阶段分类

  • 单元测试
  • 集成测试
  • 系统测试
  • 验收测试

六、项目管理

6.1 软件进度管理

工作分解结构(Work Breakdown Structur,WBS)把一个项目,按照一定原则分解成任务,任务再分解成一项项工作,再把工作分配到每个人的活动中,直到分解不下去为止。

  • 活动定义:明确项目需要完成的具体活动或任务。
  • 活动排序:确定活动之间的逻辑关系,即哪些活动需要先完成,哪些活动可以并行进行。
  • 活动资源估计:评估完成每个活动所需的资源,包括人力、物力、财力等。
  • 活动历时估计:预测完成每个活动所需的时间。
  • 制定进度计划:根据活动排序、资源估计和历时估计,制定详细的进度计划。
  • 进度控制:监控项目进度,确保项目按计划进行,并在必要时进行调整。

6.2 软件配置管理

软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。

  • 目的:是使错误降为最小并最有效地提高生产效率。
  • 核心内容:版本控制和变更控制。

6.3 软件质量管理

软件质量管理(Software Quality Assurance SQA),软件质量保证。

  • 目的:使软件过程对于管理人员来说是可见的。
  • 主要任务:SQA审计预评审,SQA报告,处理不符合问题。
  • 软件质量认证:ISO 9001 和 CMM。

6.4 软件风险管理

在软件开发过程中遇到预算和进度等方面的问题,以及这些问题对软件项目的影响。

  • Bochm
    • 风险估计:风险预测、风险辨识、风险分析、风险排序
    • 风险管理:风险管理计划、风险处理、风险监督
  • Charette
    • 风险分成分析:辨识、估计、评价
    • 管理:计划、控制、监督

若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。

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

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

相关文章

DICOM医学影像应用篇——伪彩色映射 在DICOM医学影像中的应用详解

目录 引言 伪彩色映射的概念 基本原理 查找表(Look-Up Table, LUT) 步骤 示例映射方案 实现伪彩色映射的C代码 代码详解 伪彩色处理效果展示 总结 扩展知识 LUT 的基本概念 LUT 在伪彩色映射中的应用 示例 引言 在医学影像处理中&#xff0c…

韦东山stm32hal库--定时器喂狗模型按键消抖原理+实操详细步骤

一.定时器按键消抖的原理: 按键消抖的原因: 当我们按下按键的后, 端口从高电平变成低电平, 理想的情况是, 按下, 只发生一次中断, 中断程序只记录一个数据. 但是我们使用的是金属弹片, 实际的情况就是如上图所示, 可能会发生多次中断,难道我们要记录3/4次数据吗? 答:按键按下…

8、运算符

1、运算符相关概念 运算符: 具有一定运算规则的符号 运算符分类: 按照功能分: 赋值运算符 算术运算符 关系运算符 逻辑运算符 其他运算符 位运算符 按照操作数分: 单目运算符 双目运算符 三目运算符 表达式 具有一定意义的式子&…

【Linux网络编程】第二弹---Socket编程入门指南:从IP、端口号到传输层协议及编程接口全解析

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、Socket 编程预备 1.1、理解源 IP 和目的 IP 1.2、认识端口号 1.2.1、端口号范围划分 1.2.2、理解 &q…

算法训练营day08(字符串01:反转字符串,反转字符串2,替换数字,反转字符串里的单词,右旋转字符串)

第四章 字符串part01今日任务 ● 344.反转字符串 ● 541. 反转字符串II ● 卡码网:54.替换数字 ● 151.翻转字符串里的单词 ● 卡码网:55.右旋转字符串详细布置 344.反转字符串 建议: 本题是字符串基础题目,就是考察 reverse 函数…

Java中三种常用布局方式

引言 在Java Swing和JavaFX中,布局管理器(Layout Managers)用于控制组件(如按钮、文本框等)在容器(如窗口、面板等)内的位置和大小。下面介绍Java Swing中常用的三种布局方式: 1. Fl…

如何借助AI生成PPT,让创作轻松又高效

PPT是现代职场中不可或缺的表达工具,但同时也可能是令人抓狂的时间杀手。几页幻灯片的制作,常常需要花费数小时调整字体、配色与排版。AI的飞速发展为我们带来了革新——AI生成PPT的技术不仅让制作流程大大简化,还重新定义了效率与创意的关系…

Leetcode(快慢指针习题思路总结,持续更新。。。)

这种模式,有一个非常出门的名字,叫龟兔赛跑。这种算法的两个指针的在数组上(或是链表上,序列上)的移动速度不一样。快的一个指针肯定会追上慢的一个(可以想象成跑道上面跑得快的人套圈跑得慢的人&#xff0…

基于时间维度优化“开源 AI 智能名片 S2B2C 商城小程序”运营策略:提升触达与转化效能

摘要: 随着数字化商业生态的蓬勃发展,“开源 AI 智能名片 S2B2C 商城小程序”融合前沿技术与创新商业模式,为企业营销与业务拓展带来新机遇。本文聚焦于用户时间场景维度,深入剖析如何依据不同时段用户行为特征,精准适…

【消息序列】详解(8):探秘物联网中设备广播服务

目录 一、概述 1.1. 定义与特点 1.2. 工作原理 1.3. 应用场景 1.4. 技术优势 二、截断寻呼(Truncated Page)流程 2.1. 截断寻呼的流程 2.2. 示例代码 2.3. 注意事项 三、无连接外围广播过程 3.1. 设备 A 启动无连接外围设备广播 3.2. 示例代…

二刷代码随想录第15天

513. 找树左下角的值 找到深度最大的点,遍历方式左边节点在右边节点前面,找到就返回,一定就是最左下角的值了 class Solution { public:int max_depth -1;int result 0;int findBottomLeftValue(TreeNode* root) {traversal(root, 0);ret…

vue3的prop

- 父组件需要传多个值给子组件 把值放对象&#xff0c;通过v-bind传整个对象 父组件 <script setup> import BlogPost from ./BlogPost.vue import { reactive } from vue; // 要传给子组件的所有值&#xff0c;用reactive包了该对象后&#xff0c;父组件的值变了&#…

Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成

Ubuntu下的DoxygenVScode实现C/C接口文档自动生成 1、 Doxygen简介 Doxygen 是一个由 C 编写的、开源的、跨平台的文档生成系统。最初主要用于生成 C 库的 API 文档&#xff0c;但目前又添加了对 C、C#、Java、Python、Fortran、PHP 等语言的支持。其从源代码中提取注释&…

uniapp强制修改radio-group内单选组件的状态方法

在uniapp开发中&#xff0c;需要在radio-group内部切换时做判断&#xff0c;提醒客户是否要变换radio的值&#xff0c;但是大家知道radio是单选组件&#xff0c;往往你点击后&#xff0c;是不能再修改状态的&#xff0c;就算你在点击后做判断&#xff0c;修改current的值&#…

Python plotly库介绍

一、引言 在数据可视化领域&#xff0c;Python提供了众多强大的库。其中&#xff0c;plotly是一个功能强大、交互式的可视化库&#xff0c;可以创建各种类型的图表&#xff0c;包括线图、散点图、柱状图、饼图、3D图表等。它不仅提供了美观的可视化效果&#xff0c;还支持交互式…

中国高铁、中兴通讯和中国 装备制造业的发展中能分别获得哪些启示

题目 【2015 年国考省级以上第四题】阅读“给定资料 4”,谈谈你从中国高铁、中兴通讯和中国装备制造业的发展中能分别获得哪些启示。(20 分) 要求&#xff1a;(1)紧扣材料,重点突出&#xff1b;(2)观点明确,表述有条理&#xff1b;(3)不超过 500 字。 材料 材料4&#xff1a…

Java全栈开发:宠物医院管理系统项目实战

Java全栈开发:宠物医院管理系统项目实战 项目介绍 本文将介绍一个基于Spring Boot + Vue.js的宠物医院管理系统的开发过程。该系统主要用于帮助宠物医院管理日常运营,包括患者管理、预约挂号、处方开具等功能。 技术栈 后端技术 Spring Boot 2.7.xSpring SecurityMyBatis…

BERT的中文问答系统36-2

为了使聊天机器人在生成答案时不依赖于特定的训练数据集&#xff0c;我引入其他方法来生成答案。例如&#xff0c;可以使用预训练的语言模型&#xff08;如BERT&#xff09;直接生成答案&#xff0c;或者使用搜索引擎来获取答案。以下BERT的中文问答系统36-1改进后的代码 1.引入…

升级智享 AI 直播三代:领航原生直播驶向自动化运营新航道

在瞬息万变的数字商业世界&#xff0c;直播行业恰似一艘破浪前行的巨轮&#xff0c;原生直播作为初始 “航船”&#xff0c;在历经风雨后&#xff0c;终于迎来智享 AI 直播三代这股强劲 “东风”&#xff0c;校准航向&#xff0c;开启自动化运营的全新航道&#xff0c;驶向一片…

鸿蒙多线程应用-taskPool

并发模型 并发模型是用来实现不同应用场景中并发任务的编程模型&#xff0c;常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。 Actor并发模型作为基于消息通信并发模型的典型代表&#xff0c;不需要开发者去面对锁带来的一系列复杂偶发的问题&#xff0c;同…