软件工程(Software Engineering)

news2024/12/28 18:49:33

一、软件工程概述

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.coloradmin.cn/o/1521880.html

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

相关文章

数据链路层_以太网

IP协议确定数据跨网络从主机A到主机B的路径,即IP协议解决了路径选择问题,但在这之前,必须先解决数据在一个子网内的传输的问题。跨网络的本质就是跨多个子网,只要一个子网内可以通信,那么便可以跨网络通信。 一.以太…

【编程项目开源】拼图游戏(鸿蒙版)

目标 做个拼图游戏 效果 开发工具 下载DevEco Studio 工程截图 开源地址 https://gitee.com/lblbc/puzzle/tree/master/puzzle_hongmeng_arkUI 关于 厦门大学计算机专业|华为八年高级工程师 专注《零基础学编程系列》 http://lblbc.cn/blog 包含:Java | 安卓…

【类和对象】类的作用域 | 类的实例化 | 类对象模型 | this指针

目录 5.类的作用域 6.类的实例化 6.1成员的声明和定义 6.2实例化出的对象大小 7.类对象模型❗❗ 7.1如何计算类对象的大小 7.2类对象的存储方式猜测 7.3结构体内存对齐规则 7.3.1内存对齐 7.3.2大小端 8.this指针 8.1this指针的引出 8.2this指针的特性 C和C实…

面试官:volatile如何保证可见性的,具体如何实现?

写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码…

TortoiseSVN 报错:The server unexpectedly closed the connetion

前言 CentOS7Linux 安装subversionmod_dav_svn,搭建subversion(svn)服务器 The server unexpectedly closed the connetion 解决办法 重启Apache服务 shell> systemctl restart httpd

Day1-力扣刷题学习打卡

1、两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以…

如何理解Linux文件IO?

一、文件IO的概述 1、什么是文件? Linux下一切皆文件。普通文件、目录文件、管道文件、套接字文件、链接文件、字符设备文件、块设备文件。 2、什么是IO? input output:输入输出 3、什么是文件IO? 对文件的输入输出,把…

Transformers 直观解释——不仅是如何工作,而且为什么工作得这么好 (Ketan Doshi)

Transformers 直观解释——不仅是如何工作,而且为什么工作得这么好 Transformers Explained Visually — Not Just How, but Why They Work So WellHow does the input sequence reach the Attention module 输入序列如何到达Attention模块Each input row is a word…

条件队列大法好:wait和notify的基本语义

条件队列是我们常用的轻量级同步机制,也被称为“waitnotify”机制。但很多刚刚接触并发的朋友可能会对wait和notify的语义和配合过程感到迷惑。 今天从join()方法的实现切入,重点讲解wait()方法的语义,简略提及notify()与notifyAll()的语义&…

ubuntu安装docker的详细教程

检查卸载老版本docker ubuntu下自带了docker的库,不需要添加新的源。 但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。 注:docker的旧版本不一定被称为docker,docker.io 或 docker-engine也有可能,所以卸载的命令为: sudo apt-get remove -y docker docke…

记录工作中莫名其妙的bug

1、问题:办公室的电脑突然除了我之外,都不能访问我们的线上系统了 原因:因为是内网,同事有刚刚升级了Windows11,配置的DNS被清了,还有同事换了公司的新电脑,还没有配DNS 位于:C /Win…

JVM虚拟机:通过jconsole远程连接解决JVM报错

本文重点 前面我们介绍过的一些工具都是使用命令行的方式来帮助我们完成,本文我们将使用一种图形化界面的方式来远程连接,然后完成关于JVM的检测任务。 jconsole jconsole是一个JVM的检测工具,这个工具任何安装了Java的电脑上都有的&#…

亚信安慧AntDB:简化开发与运维

AntDB将SQL作为唯一语法,不仅简化了开发运维,更提高了数据库的易用性。这种统一的语法规范让开发人员在编写和优化复杂的查询时更加得心应手,极大地提高了工作效率。随着数据库系统的不断发展,AntDB的独特设计理念使得用户可以更加…

三连杆滑块机构运动学仿真 | 【Matlab源码+理论公式文本】

【程序简介】💻🔍 本程序通过matlab实现了三连杆滑块机构的运动学仿真编程,动态展现了三连杆机构的运动动画,同时给出了角位移、角速度和角加速度的时程曲线,除了程序本身,还提供了机构运动学公式推导文档…

Centos7安装Clickhouse单节点部署

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

【力扣白嫖日记】1934.确认率

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1934.确认率 表:Signups 列名类型user_idinttime_stampdatetime User_id是该表的主键。每一行都…

线性回归 quickstart

构建一元一次方程 100个(X, y ),大概是’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…

4.10.CVAT——3D对象标注

文章目录 1. 创建任务2. 3D 任务工作区3.标准 3D 模式 Standard 3D mode4. 用长方体进行注释4.1. 用shapes进行注释4.2. 使用长方体进行跟踪Tracking 使用 3D 注释工具来标记 3D 对象和场景,例如车辆、建筑物、景观等。 1. 创建任务 要创建 3D 任务,您必…

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

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

《古滇传说水龙吟》敖诀扮演者李亚云

2024年2月28日,演员李亚云参演新剧古滇传说原创系列剧第一部《水龙吟》在浙江横店影视城开机拍摄。该剧由中共昆明市西山区委宣传部、石林县委宣传部、昆明滇池国家旅游度假区管委会文旅投促局、云南民族电影制片厂、云南卫视、昆明影视拍摄服务中心支持&#xff0c…