软件工程期末复习(3)

软件生命周期

一般问题的解决过程:

  • 问题的阐述:界定问题,用较宽的范围而不是细节来定义和描述待解问题;

  • 问题的分析:问题定义的提炼,把问题分成可以理解和处理的子问题,进而提供基本细节;

  • 寻找解法:收集问题的一组可能解法;

  • 判定:每一种可能解法的评估和比较,直至获得最佳解法;

  • 设计规格说明:对选中解法的细节描述;

  • 实现:由设计到构造出结果产品,包括把分解过的各部分综合成一个有机的整体。

如同任何事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡、演化的生存过程;

为了用工程化方式有效地管理软件的全过程,软件的生存过程也可以划分为几个阶段,由此逐步形成“软件生命周期”的概念;

它是一个从用户需求开始,经过开发、交付使用,在使用中不断增补修订,直至让位于新软件的全过程;

概括地说,软件生命周期由软件定义软件开发运行维护3个时期组成,每个时期又进一步划分成若干个阶段

软件定义时期:

  • 问题定义阶段:界定问题的范围,确切地定义问题;

  • 可行性研究阶段:研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法;

  • 需求分析阶段:确定目标系统必须具备哪些功能; 还要估计完成该项工程所需要的资源和成本,制定工程进度表。

软件开发时期:

具体设计和实现在前一个时期定义的软件。

  • 总体设计阶段:设计出实现目标系统的几种可能的方案,权衡利弊推荐一最佳方案,并制定实现最佳方案的详细计划,以及设计软件的体系结构;
  • 详细设计阶段:设计出程序的详细规格说明;
  • 编码和单元测试阶段:写出正确的、容易理解、容易维护的程序模块;
  • 综合测试阶段:通过各种类型的测试使软件达到预定的要求。集成测试/验收测试/现场测试/平行运行

运行维护(软件维护)时期:

通过各种必要的维护活动使软件系统持久地满足用户的需要。

通常的4种维护活动:

  • 改正性维护:诊断和改正使用过程中发现的软件错误;
  • 适应性维护:修改软件以适应环境的变化;
  • 完善性维护:根据用户需要改进或扩充软件使之更完善;
  • 预防性维护:修改软件从而为将来的维护活动做好准备。

软件开发中的各种角色:

  • 需求分析师:弄清客户想要什么
  • 设计师:系统该如何去做
  • 程序员:用代码实现设计师的想法
  • 测试员:按照需求清单给系统挑毛病
  • 培训人员:教用户如何使用系统
  • 维护人员:这个角色可能包括上面所有角色
  • 文档库管理员:组织和维护项目文档、记录软件的开发过程
  • 配置管理小组:维护变更、控制变更、确保变更正确实现、报告变更

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

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

相关文章

小区物业管理系统

文章目录 小区物业管理系统一、项目演示二、项目介绍三、部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 小区物业管理系统 一、项目演示 小区物业管理系统 二、项目介绍 基于springbootvue的前后端分离物业管理系统 系统角…

Java锁事

1.1 大厂面试题 一、Synchronized相关问题 1.Synchronized 用过吗,其原理是什么? 2.你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的领? 3.什么是可重入性,为什么说Synchronized是可重入锁? 4.JVM对Java的原生锁做了哪些优化…

到底什么是ASIC和FPGA?

ASIC(Application Specific Integrated Circuit,应用特定集成电路)和FPGA(Field Programmable Gate Array,现场可编程门阵列)都是集成电路(IC)的重要类型,它们在电子设计…

上海市计算机学会竞赛平台2022年3月月赛丙组正负数判断

题目描述 给定一个整数 𝑛n,若 𝑛n 为正数,输出 Positive,若 𝑛n 为负数,输出 Negative,若 𝑛n 恰好为零,输出 Zero。 输入格式 单个整数:表示…

Ubuntu 24 换国内源及原理 (阿里源 清华源 中科大源 网易源)

备份原文件 sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak 编辑源文件 sudo gedit /etc/apt/sources.list.d/ubuntu.sources 粘贴到文本(其中一个即可): (阿里源&#xff09…

数据结构与算法学习笔记之线性表三---顺序表的动态分配存储表示和实现(C++)

目录 前言 1.顺序表的动态分配存储表示 2.顺序表的静态存储表示 1.初始化 2.销毁 3.清空 4.判空 5.表长 6.数据元素 7.获取下标 8.前驱节点 9.后继节点 10.插入 11.删除 12.遍历 13.测试代码 前言 这篇文章讲的是线性表的动态分配存储表示。 1.顺序表的…

【JAVA进阶篇教学】第十三篇:Java中volatile关键字讲解

博主打算从0-1讲解下java进阶篇教学,今天教学第十三篇:volatile关键字讲解。 在 Java 中,volatile关键字是一种轻量级的同步机制,用于确保变量的可见性和禁止指令重排序。本文将详细解释volatile关键字的工作原理、可见性保证以及…

买卖股票的最佳时机 II(LeetCode 122)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

react组件渲染性能优化之函数组件-memo使用

函数组件赋值相同的值视图不会渲染&#xff0c;类组件会&#xff0c;因为函数组件默认就阻止了 import {useState} from react export default function App() {const [counter, setCounter] useState(1)console.log(App组件渲染了);return(<div><h1>{counter}&l…

已解决java.lang.AbstractMethodError: 抽象方法错误的正确解决方法,亲测有效!!!

已解决java.lang.AbstractMethodError: 抽象方法错误的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 更新和重新编译依赖 确认类和接口的版本一致性 类加载器配置检查 总结 问题分析 java.lang.…

防城港知识付费系统,教学活动在设计中需要注意什么?如何进行教学设计?

老师们的教学能否让学生学到知识&#xff0c;让学生懂得书本上的道理&#xff0c;那么教学活动很重要&#xff0c;因此在设计的时候&#xff0c;一定要根据教学的目的以及孩子的特点来进行设计。 假设老师为学生进行美术绘画的教学活动设计&#xff0c;那么需要注意以下三个方面…

实现字符串复制(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i 0;char a[100], b[100];//获取字符串&#xff1b;printf("请为数组a输入字符串…

使用模拟SPI接口驱动串行接口的LCD( STM32F4)

目录 概述 1. 硬件介绍 1.1 ST7796-LCD 1.2 MCU IO与LCD PIN对应关系 2 代码实现 2.1 STM32CubeMX 6.11生成工程 2.2 IO模拟SPI接口 2.3 实现LCD的驱动 3 测试 测试代码下载地址&#xff1a; stm32-f407-lcd-ft6336-proj资源-CSDN文库 gitee下载地址&#xff1a; h…

「PHP系列」PHP AJAX运用之数据库实例/XML实例

文章目录 一、AJAX 数据库实例1. 创建数据库和表2. HTML页面 (index.html)3. PHP脚本 (search.php)4. 配置和运行 二、AJAX XML实例1. PHP 脚本 (get_data.php)2. HTML 页面 (index.html)3. 配置和运行 三、相关链接 一、AJAX 数据库实例 一个PHP和AJAX结合使用来从数据库获取…

【Spring】验证 @ServerEndpoint 的类成员变量线程安全

文章目录 前言猜想来源验证方法Controller 的情况ServerEndpoint 的情况 后记 前言 最近有 websocket 的需求。探索 ServerEndpoint 的类成员变量特点。 这里类比 Controller 讨论 ServerEndpoint 类成员变量是否线程安全。 猜想来源 网上的教程大多数都这么展示程序&#…

祝融传火(试水)

一段时间没写代码了&#xff0c;今天试水一道直接寄了 #include <bits/stdc.h> using namespace std; typedef long long ll; ll n, m, h, w; ll a[1010][1010]; int main() {cin >> n >> m;for (int i 1; i < n; i){for (int j 1; j < m; j){cin &…

HR4988内置转换器和过流保护的微特步进电机驱动芯片

描述 HR4988是一款内部集成了译码器的微特步进电机驱动器&#xff0c;能使双极步进电机以全、半、1/4、1/8、1/16步进模式工作。步进模式由逻辑输入管脚MSx选择。其输出驱动能力达到32V和2A。 译码器是HR4988易于使用的关键。通过STEP管脚输入一个脉冲就可以使电机完成一次步进…

C语言——文件缓冲区

一、用户缓冲区和系统缓冲区 缓冲区的概念确实可以分为多个层次&#xff0c;其中最常见的两个层次是用户缓冲区和系统缓冲区。 这里的用户缓冲区和系统缓冲区都包括输入输出缓冲区。 1、用户缓冲区&#xff08;User-space Buffer&#xff09; 用户缓冲区是指由用户程序&…

202112青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 执行以下程序 a=[33,55,22,77]a.sort()for i in a:print(i)运行结果是?( ) A :33 55 22 77 B :22 33 55 77 C :55 33 22 77 D :77 55 33

群辉虚拟机安装openWRT作旁路由

最近在整活旁路由&#xff0c;基本就是要实现adguard和出国留学。openwrt这个的安装比较简单&#xff0c;就是先去找个镜像&#xff0c;然后导入即可。 我这里最后是去github上找了个大佬每天编译的地址链接。我用的是这个版本 1.下载解压得到img 下载完之后解压会得到一个…