软件工程(Software Engineering)

一、软件工程概述

1.软件生存周期

软件: 包含程序、数据及相关文档
软件工程: 涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。
目的: 提高软件生产率、提高软件质量、降低软件成本。
image.png
文档的作用:

  • 提高软件开发过程能见度
  • 提高开发效率,便于发现错误和不一致性
  • 作为开发人员在一定阶段的工作成果和结束标志
  • 记录开发过程中的有关信息,便于协调以后的软件、开发、使用和维护
  • 提供对软件的运行、维护和培训的有关信息,便于相关人员和用户之间的协作、交流和了解
  • 便于潜在用户了解软件的功能、性能等各项指标,为它们选购符合自己需要的软件提供依据

2.软件生存周期模型

image.png
瀑布模型:
image.png
螺旋模型:
image.png
喷泉模型:
image.png

3.软件开发方法

软件开发方法:结构化方法、Jackson方法、原型化方法、面向对象开发方法
image.png

二、软件需求分析

1.可行性分析

image.png

2.软件需求分析

系统必须完成的事,以及必须具备的品质
包括:

  • 功能需求:所开发的产品必须具备什么样的功能
  • 非功能需求:是指产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性、扩展性等
  • 设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明,例如必须采用国有自主知识版 权的数据库系统、必须运行在UNIX操作系统之下等

三、软件设计

1.软件设计原则

软件设计原则: 抽象、模块化、信息屏蔽、模块独立
软件设计任务与活动
image.png

2.内聚和耦合

内聚:
image.png
耦合:
image.png

四、软件测试

1.V模型

image.png

2.软件测试过程

image.png

3.黑盒测试与白盒测试

image.png

  1. 语句覆盖: 被测试程序的每个语句至少执行一次。是一种很弱的覆盖标准
  2. 判定覆盖: 分支覆盖,判定表达式至少获得一次真、假值。判定覆盖比语句覆盖强。
  3. 条件覆盖: 每个判定语句中的每个逻辑条件的各种可能值至少满足一次。
  4. 路径覆盖: 覆盖所有可能的路径。
  5. 判定/条件覆盖: 每个条件所有可能的值(真/假)至少出现一次,且每个判定本身的判定结果(真/假)也至少出现一次。
  6. 条件组合覆盖: 每个判定中条件的各种可能值的组合都至少出现一次。

4.测试原则与注意事项

image.png

五、软件运行与维护

1.软件维护

image.png
image.png

六、程序员职业素养

1.软件工程基本原理

  1. 用分阶段的生命周期计划严格管理,将复杂问题简化处理
  2. 坚持进行阶段评审
  3. 记录软件每个版本的状态,实行严格的版本控制
  4. 采用现代程序设计技术,但不是最新的技术
  5. 结果能清除的审查
  6. 开发小组人员少而精
  7. 不断累积和改进软件过程实践经验和技术

2.软件工程的最终目标

image.png

3.程序员的职业素养

image.png

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

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

相关文章

一瓶5.86万,听花酒什么来头?

听花酒,到底什么来头? 宣称有提升免疫力、改善睡眠、保障男性功能、调节生理紊乱、抗衰老等功效的听花酒,被315晚会曝光了。 相关话题词随即冲上了热搜。之后,售价最高达58600元的听花酒被京东、拼多多、淘宝等电商平台火速下架…

Stable Diffusion 阿里云搭建FC实现文生图模型

AI的创造力真的很奇妙。 提示词:杰作,最佳品质,非常详细,七龙珠,孙悟空,西游记,仙境,动态角度,火焰山,小岛,站立,携带魔兽&#xff0…

主干网络篇 | YOLOv8更换主干网络之ShuffleNetV2(包括完整代码+添加步骤+网络结构图)

前言:Hello大家好,我是小哥谈。ShuffleNetV2是一种轻量级的神经网络架构,用于图像分类和目标检测任务。它是ShuffleNet的改进版本,旨在提高模型的性能和效率。ShuffleNetV2相比于之前的版本,在保持模型轻量化的同时&am…

预备知识:深入理解接口测试!

实验简介 随着移动互联网甚至物联网的触角深入到人们生活的每个场景,每个角落,伴随而来的便是企业对其软件系统接口定义和研发,以便于进行数据传输和交换。由此导致目前企业急需大量专职接口测试工程师,因为接口测试天然具备自动…

c++算法学习笔记 (8) 树与图部分

1.树与图的存储 &#xff08;1&#xff09;邻接矩阵 &#xff08;2&#xff09;邻接表 // 链式前向星模板&#xff08;数组模拟&#xff09; #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N 100010, M …

【RS422】基于未来科技FT4232HL芯片的多波特率串口通信收发实现

功能简介 串行通信接口常常用于在计算机和低速外部设备之间传输数据。串口通信存在多种标准&#xff0c;以RS422为例&#xff0c;它将数据分成多个位&#xff0c;采用异步通信方式进行传输。   本文基于Xilinx VCU128 FPGA开发板&#xff0c;对RS422串口通信进行学习。   根…

家具工厂5G智能制造数字孪生可视化平台,推进家具行业数字化转型

家具制造5G智能制造工厂数字孪生可视化平台&#xff0c;推进家具行业数字化转型。随着科技的飞速发展&#xff0c;家具制造业正迎来一场前所未有的数字化转型。在这场家具制造业转型中&#xff0c;5G智能制造工厂数字孪生可视化平台发挥着至关重要的作用。 5G智能制造工厂数字孪…

MySQL语法分类 DQL(3)排序查询

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

华为数通方向HCIP-DataCom H12-821题库(多选题:161-180)

第161题 以下关于IPv6优势的描述,正确的是哪些项? A、底层自身携带安全特性 B、加入了对自动配置地址的支持,能够无状态自动配置地址 C、路由表相比IPv4会更大,寻址更加精确 D、头部格式灵活,具有多个扩展头 【参考答案】ABD 【答案解析】 第162题 在OSPF视图下使用Filt…

降维算法之t-SNE (t-Distributed Stochastic Neighbor Embedding)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; t-SNE是一种用于探索高维数据结构的非线性降维技术。它特别适用于高维数据的可视化&#xff0c;因为它能够在低维空间中保留原始高维数据的局部结…

[WUSTCTF2020]朴实无华

查看robots.txt 找到/fAke_flagggg.php 显然这是个假的flag&#xff0c;但是我们在header处发现了fl4g.php 近来发现中文全部变成了乱码 插件转成utf8后正常显示 <?php header(Content-type:text/html;charsetutf-8); error_reporting(0); highlight_file(__file__);//leve…

Linux 系统调用函数fork、vfork、clone详解

文章目录 1 fork1.1 基本介绍1.2 fork实例1.2.1多个fork返回值1.2.2 C语言 fork与输出1.2.3 fork &#x1f4a3; 2 vfork2.1 基本介绍2.2 验证vfork共享内存 3 clone3.1 基本介绍3.2 clone使用 1 fork 1.1 基本介绍 #include <sys/types.h> #include <unistd.h>p…

PS学习-抠图-蒙版-冰块酒杯等透明物体

选中图&#xff0c;ctrlA 全选 ctrlC复制 创建一个蒙版图层 选中蒙版Alt 点击进入 ctrlv 复制 ctrli 反转 原图层 ctrldelete填充为白色 添加一个背景&#xff0c;这个方法通用 首选创建一个 拖到最底部 给它填充颜色 这个可能是我图片的原因。视频是这样做的

五子棋小游戏(sut实验报告)

实验目的 实现人与人或人与电脑进行五子棋对弈 实验内容 启动游戏&#xff0c;显示游戏参数设置界面&#xff0c;用户输入参数后进入游戏界面&#xff0c;显示棋盘及双方博弈过程&#xff0c;游戏过程中可选择退出游戏。判定一方获胜后结束本局游戏&#xff0c;可选择继续下…

Fiddler抓不到包

fiddler该设置的设置好之后&#xff0c;为啥就是抓不到包 以下都是以谷歌浏览器为例子 方法一&#xff1a; 将fidder证书导入到浏览器&#xff0c;设置搜索证书-->安全-->管理证书 这里可以看到将证书导入之后样子&#xff0c;名字为&#xff1a;DO_NOT_TRUST_Fiddler…

Linux操作系统裸机开发-环境搭建

一、配置SSH服务 1、下载安装ssh服务输入以下命令 sudo apt-get install nfs-kernel-server portmap2、建立一个供SSH服务使用的文件夹如以下命令 mkdir linux 3、完成前两步之后需要将其文件路径放到/etc/exports文件里输入以下命令&#xff1a; sudo vi /etc/esports 4.打…

线性回归 quickstart

构建一元一次方程 100个&#xff08;X, y &#xff09;&#xff0c;大概是’y3x4’ import numpy as npnp.random.seed(42) # to make this code example reproducible m 100 # number of instances X 2 * np.random.rand(m, 1) # column vector y 4 3 * X np.random…

最详细数据仓库项目实现:从0到1的电商数仓建设(数仓部分)

1、数仓 数据仓库是一个为数据分析而设计的企业级数据管理系统&#xff0c;它是一个系统&#xff0c;不是一个框架。可以独立运行的&#xff0c;不需要你参与&#xff0c;只要运行起来就可以自己运行。 数据仓库不是为了存储&#xff08;但是能存&#xff09;&#xff0c;而是…

创业板指399006行情数据API接口

# 测试&#xff1a;返回不超过10条数据&#xff08;2年历史&#xff09; https://tsanghi.com/api/fin/index/CHN/daily?tokendemo&ticker399006&order2Python示例 import requestsurl f"https://tsanghi.com/api/fin/index/CHN/daily?tokendemo&ticker399…

EtherCAT 开源主站 IGH 在 linux 开发板的移植和伺服通信测试

手边有一套正点原子linux开发板imax6ul&#xff0c;一直在吃灰&#xff0c;周末业余时间无聊&#xff0c;把EtherCAT的开源IGH主站移植到开发板上玩玩儿&#xff0c;搞点事情做。顺便学习研究下EtherCAT总线协议及其对伺服驱动器的运动控制过程。实验很有意思&#xff0c;这里总…