【2023年11月第四版教材】《第5章-信息系统工程之软件工程(第二部分)》
《第5章-信息系统工程之软件工程(第二部分)》
- 1.3 软件设计
- 1.4 软件实现
- [补充第三版教材内容]
- 1.5 部署交付
1.3 软件设计
1、结构化设计SD是一种面向数据流的方法,它以SRS和SA阶段所产生的DFD和数据字
典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。SD方法的基本思想是将软件设
计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段;
2 、在SD中,需要遵循一个基本的原则:高内聚,低耦合。
♦ 内聚表示模块内部各成分之间的联系程度;
♦ 耦合表示模块之间联系的程度。
3、面向对象设计(00D)是00A方法的延续,其基本思想包括抽象、封装和可扩展性。其
中可扩展性主要通过继承和多态来实现。(18下26)
4、设计模式是前人经验的总结,它使人们可以方便地复用成功的软件设计。设计模式包
含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式等基本要素。
(1)根据处理范围不同,设计模式可分为类模式和对象模式;
♦ 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来, 属于静态关系;
♦ 对象模式处理对象之间的关系,这些关系在运行时刻变化,更具动态性。
(2)根据目的和用途不同,设计模式分为创建型摸式、结构型模式、行为型模式。
| 模式 | 主要用于 | 包括的模式 |
|---|---|---|
| 创建型模式 | 创建对象 | 工厂方法/抽象工厂/原型/单例/建造者模式 |
| 结构型模式 | 处理类或对象的组合 | 适配器/桥接/组合/装饰/外观/享元/代理模式 |
| 行为型模式 | 描述类或对象的交互以及职责的分配 | 职责链/命令/解释器/迭代器/中介者/备忘录/观察者/状态/策略/模板方法/访问者 模式 (18下8) |
1.4 软件实现
1、软件配置管理活动包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。【口诀:计时制,状态审计不符】
| 序 | 配置管理活动 | 解释说明 |
|---|---|---|
| 1 | 软件配置管理计划 | 明确软件配置控制任务 |
| 2 | 软件配置标识 | 识别要控制的配置项 |
| 3 | 软件配置控制 | 管理软件生命周期中的变更 |
| 4 | 软件配置状态记录 | 标识、收集、维护并报告配置管理的配置状态信息 |
| 5 | 软件配置审计 | 独立评价软件产品和过程是否遵从已有的规则、标准、指南、计划和流程而进行的活动 |
| 6 | 软件发布管理和交付 | 需要创建特定的交付版本,完成此任务的关键是软件库 |
2、软件编码就是把软件设计的结果翻译成计算机改以“理解和识别”的形式一用某种程序设计语言书写的程序。
3、软件测试的目的是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、SRS、软件设计说明和软件产品说明等除的软件质量要求。通过测试发现软件缺陷,为软件产品的质量测量和评价提供依据。(19上9)
| 测试分类 | 静态测试 | 文档 | 检查单 |
| 代码 | 桌前检查、代码走查和代码审查 | ||
| 动态测试 | 黑盒 | 等价类划分、边界值分析等 | |
| 白盒 | 逻辑覆盖 |
区别:(18 上 9) (19 下 9) (21 下 11)
| 测试类型 | 作用阶段 | 特征 | 常用技术和方法 |
|---|---|---|---|
| 白盒测试(结构测试) | 用于单元测试 | 考虑程序内部结构和处理算法 | 测试的方法有控制流测试、数据流测试和程序变异测试等最常用的技术是逻辑覆盖,主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖 |
| 黑盒测试(功能测试) | 用于集成测试、确认测试和系统测试 | 完全不考虑(或不了解)程序的内部结构和处理算法 | 等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等。 |
[补充第三版教材内容]
软件测试分单元测试、集成测试、确认测试、系统测试、配置项测试和回归测试等
👉 ①单元测试:也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或oo软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。
👉 ②集成测试:目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已
集成的软件是否符合设计要求。
👉③确认测试:主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下类型:(18下10)
♦内部确认测试:主要由软件开发组织内部按照SRS进行测试。
♦Alpha测试和Beta测试:Alpha测试是由用户在开发环境下进行测试;(21上11)Beta测试是由用户在实际使用环境下进行测试。在通过Beta测试后,才能把产品发布或交付给用户。
♦ 验收测试:指针对5限石交付前以用户为主进行的测试。其测试对象为完整的、集
成的计算机系统蓝一
👉 ④系统测试:对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境
下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发
合同规定的要公
👉 ⑤配置项测试:测试的对象是软件配置项,目的是检验软件配置项与SRS的一致性。
👉⑥回归测试:目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。(22下8)
1.5 部署交付
1、软件开发完成后,必须部署在最终用户的正式运行环境,交付给最终用户使用。这些活动包括软件打包、安装、配置、测试、集成和更新等。是一个持续不断的过程
2、持续部署
| 阶段 | 具体内容 |
|---|---|
| 软件部署与交付 | 软件部署与交付属于软件开发的后期活动,即通过配置、安装和激活等活动来保障软件制品的后续运行。部署技术影响着整个软件过程的运行效率和成本投入, 软件系统部署的管理代价占到整个软件管理开销的大部分。 |
| 持续交付 | 1.持续交付提供了一套更为完善的解决传统软件开发流程的方案,主要体现在: 👉 在需求阶段:抛弃了传统的需求文档的方式,使用便于开发人员理解的用户故事; 👉 在开发测试阶段:做到持续集成,让测试人员尽早进入项目开始测试; 👉 在运维阶段:打通开发和运维之间的通路,保持开发环境和运维环境的统一。 |
| 2.持续交付具备的优势主要包括: 👉 能够有效缩短提交代码到正式部署上线的时间,降低部署风险; 👉 能够自动、快速地提供反馈,及时发现和修复缺陷; 👉 让软件在整个生命周期内都处于可部署的状态; 👉 能够简化部署步骤,使软件版本更加清晰; 👉 能够让交付过程成为一种可靠的、可预期的、可视化的过程。 | |
| 持续部署 | 1.容器技术目前是部署中最流行的技术,常用持续部署方案Kubemetes+Docker和Matrix系统两种 |
| 部署层次 | 1.部署层次:首先要明确部署的目的并不是部署一个可工作的软件,而是部署一套可正常运行的环境。 |
| 2.完整的镜像部署包括三个环节:Build—Ship—Run。 👉 Build:将软件编译形成RPM包或者Jar包; 👉 Ship:将所需的第三方依赖和第二方插件安装到环境中; 👉 Run:在不同的地方启动整套环境。 | |
| 3.制作完成部署包之后,每次需要变更软件或者第三方依赖以及插件升级的时候, 不需要重新打包,直接更新部署包即可。 | |
| 4.不可变服务器是一种部署模式,是指除了更新和安装补丁程序以外,不对服务器进行任何更改。 | |
| 5.在部署原则中提到两大部署方式为蓝绿部署和金丝雀部署。 👉 蓝绿部署是指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使个境切换到新版本中,当出现问题的时候,可以快速地将用户环境切切回旧版本,并对新版本进行修复和调整。 👉 金丝雀部署是指当有新版本发布的时候,先让少量用户使用新版本,并且观察购床是否存在问题。如果出现问题,就及时处理并重新发布;如果一切正常,就稳步地将新版本适配给所有的用户。 |
3、软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力。 包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等方面。
4、成熟度模型CSMM模型由4个能力域、20个能力子域、161个能力要求组成。
| 能力域 | 能力子域 |
|---|---|
| 治理 | 战略与治理、目标管理 |
| 开发与交付 | 需求、设计、开发、测试、部署、服务、开源应用 |
| 管理与支持 | 项目策划、项目监控、项目结项、质量保证、风险管理、配置管理、供应商管理 |
| 组织管理 | 过程管理、人员能力管理、组织资源管理、过程能力管理 |
5、成熟度等级的总体特征
| 等级 | 结果特征 | |
|---|---|---|
| 1级 | 初始级 | 软件过程和结果具有不确定性 |
| 2级 | 项目规范级 | 项目基本可按计划实现预期的结果 |
| 3级 | 组织改进级 | 在组织范围内能够稳定地实现预期的项目目标 |
| 4级 | 量化提升级 | 在组织范围内能够量化地管理和实现预期的组织和项目目标 |
| 5级 | 创新引领级 | 通过技术和管理的创新,实现组织业务目标的持续提升,引领行业发展 |
能力域与成熟度对应关系

相关文章:
【2023年11月第四版教材】《第5章-信息系统工程之软件工程(第二部分)》
《第5章-信息系统工程之软件工程(第二部分)》 1.3 软件设计1.4 软件实现[补充第三版教材内容] 1.5 部署交付 1.3 软件设计 1、结构化设计SD是一种面向数据流的方法,它以SRS和SA阶段所产生的DFD和数据字 典等文档为基础…...
OpenCV(二)——图像基本处理(二)
目录 2.图像的几何变换 2.1 图像平移 2.2 图像缩放 2.3 图像旋转 2.4 仿射变换 2.5 透视变换...
Redis—缓存
目录标题 缓存雪崩发生场景解决方案针对Redis宕机的缓存雪崩解决方案 缓存击穿发生场景解决方案 缓存穿透发生场景解决方案布隆过滤器 数据库和缓存数据一致性 缓存雪崩 大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机时,如果此时有大…...
第三章 图论 No.10无向图的双连通分量
文章目录 定义Tarjan求e-DCCTarjan求v-DCC395. 冗余路径1183. 电力396. 矿场搭建 定义 无向图有两种双连通分量 边双连通分量,e-DCC点双连通分量,v-DCC 桥:删除这条无向边后,图变得不连通,这条边被称为桥 边双连通分…...
Java学习手册——第二篇面向对象程序设计
Java学习手册——第二篇面向对象 1. 结构化程序设计2. 面向对象 第一章我们已经介绍了Java语言的基础知识,也知道他能干什么了, 那我们就从他的设计思想开始入手吧。 接触一个语言之前首先要知道他的大方向,设计思想是什么样的, 这…...
Redis实战:Redis的安装及简单使用
本片将介绍 Redis 的安装及简单使用 文章目录 1、Redis安装1.1、Windows下Redis的安装1.2、Linux下Redis的安装1.3、Mac下Redis的安装(使用Homebrew) 2、Redis使用2.1、启动服务端客户端2.2、Redis简单命令 3、Redis命令大全 1、Redis安装 1.1、Windows…...
Linux学习之初识Linux
目录 一.Linux的发展历史及概念 1.什么是Linux UNIX发展的历史: Linux发展历史: 2. 开源 商业化发行版本 二. 如何搭建Linux环境 Linux 环境的搭建方式主要有三种: 1. 直接安装在物理机上 2. 使用虚拟机软件 3. 使用云服务器 三. …...
神经网络基础-神经网络补充概念-29-为什么使用深层表示
概念 深层表示(Deep Representation)是指在深度神经网络的多个隐藏层中逐层提取和学习数据的特征表示。 使用深层表示的原因 高维特征提取:深层神经网络可以从原始数据中自动学习高维抽象特征。每个隐藏层都对数据进行一些变换,…...
2023最新水果编曲软件FL Studio 21.1.0.3267音频工作站电脑参考配置单及系统配置要求
音乐在人们心中的地位日益增高,近几年音乐选秀的节目更是层出不穷,喜爱音乐,创作音乐的朋友们也是越来越多,音乐的类型有很多,好比古典,流行,摇滚等等。对新手友好程度基本上在首位,…...
边缘计算:下一代计算模式的突破
章节一:引言 随着物联网、人工智能和大数据等技术的不断发展,计算需求变得越来越复杂,传统的云计算模式已经难以满足快速增长的数据处理需求。在这样的背景下,边缘计算作为一种全新的计算模式崭露头角,为我们带来了更加…...
连接不上手机,adb devices为空:
首先说明一下,我是已经安装了android studio,也配置了环境变量,但是还是连接不上手机 解决方案: 1.打开开发者模式 https://product.pconline.com.cn/itbk/sjtx/sjwt/1424/14246015.html 2.开启usb调试 https://baiyunju.cc/10770 最后成功…...
vuex学习总结
一、vuex工作原理 工作流程:需求:改变组件count的sun变量的值,先调用dispatch函数传入jia函数和要改变的值给actions(这个actions里面必须有jia这个函数);actions收到后调用commit函数将jia方法和值传给mut…...
11. Docker Swarm(二)
1、前言 上一篇中我们利用Docker Swarm搭建了基础的集群环境。那么今天我们就来验证以下该集群的可用性。上一篇的示例中,我创建了3个实例副本,并且通过访问http://192.168.74.132:8080得到我们的页面。 2、验证高可用 1)我们可以通过以下命…...
注册中心Eureka和Nacos,以及负载均衡Ribbon
1.初识微服务 1.1.什么是微服务 微服务,就是把服务拆分成为若干个服务,降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。 1.2.单体架构和微服务架构的区别: 单体架构:简单方便&#…...
php+tcpdf生成pdf:中文乱码
亲测成功,感谢分享! 查看原文 TCPDF是一个生成PDF的不错的库,可惜,官方对包括中文在内的东亚字体支持不怎么样的。 场景:某项目需要根据数据库信息生成pdf格式的发票,考虑采用稳定的tcpdf,虽然…...
【AI实战】BERT 文本分类模型自动化部署之 dockerfile
【AI实战】BERT 文本分类模型自动化部署之 dockerfile BERTBERT 文本分类模型基于中文预训练bert的文本分类模型针对多分类模型的loss函数样本不均衡时多标签分类时 dockerfile编写 dockerfilebuild镜像运行docker测试服务 参考 本文主要介绍: 基于BERT的文本分类模…...
深入理解 Flutter 图片加载原理 | 京东云技术团队
前言 随着Flutter稳定版本逐步迭代更新,京东APP内部的Flutter业务也日益增多,Flutter开发为我们提供了高效的开发环境、优秀的跨平台适配、丰富的功能组件及动画、接近原生的交互体验,但随之也带来了一些OOM问题,通过线上监控信息…...
Spring Boot 支持多种环境,包括开发环境、测试环境、预发布环境和生产环境。
Spring Boot 支持多种环境,包括开发环境、测试环境、预发布环境和生产环境。不同的环境具有不同的配置,可以在不同的环境中对应用程序进行测试、验证和部署。以下是每种环境的用途和相应的代码案例。 开发环境 开发环境是开发人员在本地进行开发的环境&…...
Ctfshow web入门 命令执行RCE篇 web29-web77 与 web118-web124 详细题解 持续更新中(预计8.18完成)~
Ctfshow 命令执行 web29 pregmatch是正则匹配函数,匹配是否包含flag,if(!preg_match("/flag/i", $c)),/i忽略大小写 可以利用system来间接执行系统命令 flag采用f*绕过,或者mv fl?g.php 1.txt修改文件名,…...
合宙Air724UG LuatOS-Air script lib API--wifiRil
wifiRil Table of Contents wifiRil wifiRil.regRsp(head, fnc, typ, formt) wifiRil.regUrc(prefix, handler) wifiRil.deRegUrc(prefix) wifiRil.request(cmd, arg, onrsp, delay, param) wifiRil 模块功能:esp8266 wifi模块AT命令交互管理 wifiRil.regRsp(head,…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
