【2023年11月第四版教材】《第5章-信息系统工程之软件工程(第二部分)》

news2024/12/27 11:20:44

《第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+DockerMatrix系统两种
部署层次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级创新引领级通过技术和管理的创新,实现组织业务目标的持续提升,引领行业发展

能力域与成熟度对应关系
在这里插入图片描述

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

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

相关文章

如何使用CSS实现一个渐变背景效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现渐变背景效果⭐ 线性渐变(Linear Gradient)⭐ 径向渐变(Radial Gradient)⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订…

genism word2vec方法

文章目录 概述使用示例模型的保存与使用训练参数详解([原链接](https://blog.csdn.net/weixin_44852067/article/details/130221655))语料库训练 概述 word2vec是按句子来处理的Sentences(句子们) 使用示例 from gensim.models import Word2Vec #sent…

ThreadLocal(超详细介绍!!)

关于ThreadLocal,可能很多同学在学习Java的并发编程部分时,都有所耳闻,但是如果要仔细问ThreadLocal是个啥,我们可能也说不清楚,所以这篇博客旨在帮助大家了解ThreadLocal到底是个啥? 1.ThreadLocal是什么&…

AgentBench::AI智能体发展的潜在问题一

从历史上看,几乎每一种新技术的广泛应用都会在带来新机遇的同时引发很多新问题,AI智能体也不例外。从目前的发展看,AI智能体的发展可能带来的新问题可能包括如下方面: 第一是它可能带来涉及个人数据、隐私,以及知识产权的法律纠纷的大幅增长。要产生一个优秀的AI智能体,除…

ZLMediakit编译(Win32)

ZLMediakit编译流程,本文是编译32位的ZLMediakit 下载OpenSSL 直接下载binary就好了,地址:https://slproweb.com/download/Win32OpenSSL-1_1_1u.msi 也可以根据自己的需求下载其他版本,地址https://slproweb.com/products/Win32…

[oneAPI] 手写数字识别-LSTM

[oneAPI] 手写数字识别-LSTM 手写数字识别参数与包加载数据模型训练过程结果 oneAPI 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI:https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolk…

【C语言】自定义实现strcpy函数

大家好,我是苏貝,本篇博客带大家了解如何自定义实现strcpy函数,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 一. 了解strcpy函数。 函数原型:char* strcpy( char* destination , …

LLM - 大模型评估指标之 BLEU

目录 一.引言 二.BLEU 简介 1.Simple BLEU 2.Modified BLEU 3.Modified n-gram precision 4.Sentence brevity penalty 三.BLEU 计算 1.计算句子与单个 reference 2.计算句子与多个 reference 四.总结 一.引言 机器翻译的人工评价广泛而昂贵,且人工评估可…

【uni-app报错】获取用户收货地址uni.chooseAddress()报错问题

chooseAddress:fail the api need to be declared in …e requiredPrivateInf 原因: 小程序配置 / 全局配置 (qq.com) 解决: 登录小程序后台申请接口 按照流程申请即可 在项目根目录中找到 manifest.json 文件,在左侧导航栏选择源码视图&a…

代码pytorch-adda-master跑通记录

前言 最近在学习迁移学习,ADDA算法,由于嫌自己写麻烦,准备先跑通别人的代码。 代码名称:pytorch-adda-master 博客:https://www.cnblogs.com/BlairGrowing/p/17020378.html github地址:https://github.com…

Vue3 —— watchEffect 高级侦听器

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 前言 Vue3 中新增了一种特殊的监听器 watchEffect&#xff0c;它的类型是&#xff1a; function watchEffect(effect: (onCleanup: OnCleanup) > void,o…

第三届“赣政杯”网络安全大赛 | 赛宁筑牢安全应急防线

​​为持续强化江西省党政机关网络安全风险防范意识&#xff0c;提高信息化岗位从业人员基础技能&#xff0c;提升应对网络安全风险处置能力。由江西省委网信办、江西省发展改革委主办&#xff0c;江西省大数据中心、国家计算机网络与信息安全管理中心江西分中心承办&#xff0…

【负荷频率和电压控制】电力系统的组合负荷频率和电压控制模型研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

CXL 寄存器介绍 (1) - 寄存器分类

&#x1f525;点击查看精选 CXL 系列文章&#x1f525; &#x1f525;点击进入【芯片设计验证】社区&#xff0c;查看更多精彩内容&#x1f525; &#x1f4e2; 声明&#xff1a; &#x1f96d; 作者主页&#xff1a;【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0c…

【贪心】CF1822 E

Problem - 1822E - Codeforces 题意&#xff1a; 思路&#xff1a; 简单复盘一下思路 首先&#xff0c;n为奇数或有一种字符出现次数> n / 2就无解的结论是可以根据样例看出来的 然后就显然的发现&#xff0c;每2个不同的回文对有1的贡献 那么这样匹配之后会有剩余的回文…

JVM - 垃圾回收机制

JVM的垃圾回收机制(简称GC) JVM的垃圾回收机制非常强大&#xff0c;是JVM的一个很重要的功能&#xff0c;而且这也是跟对象实例息息相关的&#xff0c;如果对象实例不用了要怎么清除呢&#xff1f; 如何判断对象已经没用了 当JVM认为一个对像已经没用了&#xff0c;就会把这个…

【C++STL基础入门】string类的基础使用

文章目录 前言一、STL使用概述二、string类概述1.string类的构造函数string输出示例代码 2.string类属性属性是什么属性API示例代码 3.输出输出全部输出单个字符 总结 前言 本系列文章使用VS2022&#xff0c;C20版本 STL&#xff08;Standard Template Library&#xff09;是…

linux平台实现虚拟磁盘驱动(通用的块设备驱动和基于SCSI的磁盘驱动)

by fanxiushu 2023-08-16 转载或引用请桌面原始作者。 实现linux平台的虚拟磁盘驱动&#xff0c;是为了要实现在linux远程无盘启动的。 linux平台下的无盘启动&#xff0c;现成的办法有许多&#xff0c;比如iSCSI&#xff0c;NFS&#xff0c;NBD等都可以&#xff0c; 不过我都没…

JVM中释放内存的三种方法

判断是否需要垃圾回收可以采用分析。 1标记--清除算法 分为两个阶段&#xff0c;标记和清除&#xff0c;先利用可达性分型标记还存活的对象&#xff0c;之后将没有被标记的对象删除&#xff0c;这样容易生成空间碎片&#xff0c;而且效率不稳定 标记阶段&#xff1a; 标记阶段…

C#和Java的大端位和小端位的问题

C#代码里就是小端序,Java代码里就是大端序&#xff0c; 大端位:big endian,是指数据的高字节保存在内存的低地址中&#xff0c;而数据的低字节保存在内存的高地址中&#xff0c;也叫高尾端 小端位:little endian,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存…