笔记 | 软件工程01:从程序到软件
1 软件工程知识域

2 程序
2.1 何为程序及程序的质量要求
何为程序:

理解:软件工程可能就是在弥补OOP语言与自然语言之间还存在的鸿沟

2.1.1 程序质量的内在和外在体现

2.1.2 程序质量的语法和语义体现

2.2 编写代码的基本原则

2.3 程序质量保证方法
2.3.1 遵循编码风格

代码布局与组织:

Java程序的排版格式推荐:

变量命名风格:


代码注释:

2.3.2 采用程序设计方法
2.3.2.1 语句设计

2.3.2.2 模块化设计

2.3.2.3 高内聚度、低耦合度原则
模块内各要素紧密相关,仅实现单一功能, 模块间的关系应设计的非常松散
2.3.3 开展代码重用

2.3.4 进行结对编程

2.3.4.1 个体开发的局限性

2.3.4.2 软件开发是集体性/群体性行为

2.3.4.3 如何实现结对编程

2.3.4.4 结对编程中的代码复审

2.3.4.5 结对编程的好处

2.3.4.6 结对编程的不同阶段和技巧

2.4 程序质量的分析方法
2.4.1 程序代码中潜在的质量问题&原因

2.4.2 代码质量分析的常用方法
2.4.2.1 人工审查方法



2.4.2.2 自动化分析方法
代码静态分析:

代码审查后要做的工作:

2.4.2.3 程序测试方法

软件测试的目的和任务:尽可能多的找到软件中的缺陷,软件缺陷可能隐藏得比较深,难以发现
2.5 编写程序需要解决的问题
2.5.1 编写程序面临的挑战

2.6 ChatGPT对程序员带来的影响

ChatGPT的职业影响:

3 软件
3.1 何为软件及软件的特点
3.1.1 何为软件
从开发的角度:

3.1.2 何为文档&为什么需要文档&编写文档的目的
何为文档:


3.1.3 何为数据
数据是程序的加工处理对象和结果
数据形式包括:用户、订单、交易、日志数据
数据处理包括:表示、获取、存储、检索、分析
3.1.4 软件的特点

3.1.5 军用软件的特殊性
军用软件:导弹中的飞行控制软件、指挥信息系统、后勤保障软件等

3.2 软件的生命周期


3.3 软件的分类
分类一:


分类二:

3.4 应用的类型



3.5 闭源软件

3.6 开源软件定义&好处

开源软件的特点:
- 源程序代码对外开放
- 自由使用、修改和传播
- 任何人都可获得开源软件的代码
开源软件正在逐步替代闭源软件

开源软件的推动者

开源软件的优势:

3.7 开源软件许可证

3.7.1 宽松式开源许可证

3.7.2 Copyleft式开源许可证

3.7.3 Apache开源许可证

3.7.4 GPL开源许可证

3.7.5 不同许可证之间的差别

3.8 软件质量
软件质量是指软件满足给定需求的程度,它是产品生命线

3.8.1 软件质量要素



3.8.2 可信软件的基本要求

3.9 软件特征的变化
3.9.1 软件的地位和作用

3.9.2 软件的运行环境

3.9.3 软件形态

3.9.3.1 社会技术系统

3.9.3.2 系统子系统

3.9.3.3 分布式异构系统

3.9.3.4 动态演化系统

3.9.3.5 系统联盟

3.9.3.6 生态系统

生态:共同环境 + 诸多要素 + 独立演化 + 相互依存
3.10 软件系统的应用及示例

3.11 我国软件建设的挑战和使命

相关文章:
笔记 | 软件工程01:从程序到软件
1 软件工程知识域 2 程序 2.1 何为程序及程序的质量要求 何为程序: 理解:软件工程可能就是在弥补OOP语言与自然语言之间还存在的鸿沟 2.1.1 程序质量的内在和外在体现 2.1.2 程序质量的语法和语义体现 2.2 编写代码的基本原则 2.3 程序质量保证方法 …...
废品回收小程序开发,助力商家拓展回收市场
随着互联网的快速发展,废品回收行业也走向了数字化发展,废品回收小程序成为了拓展市场的重要方式。在当下万亿元下的回收市场中,废品回收小程序的发展也能够发挥重要作用,提高市场回收效率,提高大众的回收意识…...
JVM类加载机制和双亲委派
类加载机制 java文件需要编译成字节码文件(.class文件),jvm是通过类加载机制,将.class文件加载进内存,经过验证连接->初始化直到使用该对象的过程就是类加载机制,当new对象的时候,jvm首先去常量池寻找该类的符号引用…...
【PyCharm】无法创建虚拟环境,提示:has no attribute CPython3macOsBrew
报错信息: AttributeError: module virtualenv.create.via_global_ref.builtin.cpython.mac_os has no attribute CPython3macOsBrew报错原因: 可能含有多个virtualenv,发生冲突了。 解决方法: 终端执行以下命令: p…...
华为OD刷题C卷 - 每日刷题 12(数组连续和,求最多可以派出多少支团队)
1、(数组连续和): 这段代码是解决“数组连续和”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于计算给定数组中有多少个连续区间的和大于等于给定值x。 main方法首先读取数组的长度n和阈值x&…...
2.1 初识Windows程序
Windows程序设计是一种面向对象的编程。Windows操作系统以数据结构的形式定义了大量预定义的对象作为操作系统的数据类型。Windows动态链接库提供了各种各样的API接口函数供Windows应用程序调用。一个Windows应用程序是运行在Windows操作系统之上的。这些API接口函数的调用所实…...
EDI系统的使用场景
EDI全称Electronic Data Interchange,中文名称是电子数据交换。EDI系统是专为企业间的电子数据传输而设计的,需要满足的基本功能包括:支持AS2、OFTP、SFTP等EDI传输协议,能够生成和解析符合X12、EDIFACT、VDA等EDI报文标准下的报文…...
韩国Neowine推出第三代强加密芯片ALPU-CV
推出第三代加密芯片;是ALPU系列中的高端IC;是一款高性能车规级加密芯片;其加密性更强、低耗电、体积小;使得防复制、防抄袭板子的加密性能大大提升,该芯片通过《AEC-Q100》认证,目前已经在国产前装车辆配件…...
golang结构与接口方法实现与交互使用示例
1.定义结构 // 结构定义 type VideoFrame struct {id inthead []bytelen int64data []byte } 2.实现结构方法 // 生成结构字段的get与set方法 // func (v *VideoFrame) Id() int {return v.id }func (v *VideoFrame) SetId(id int) {v.id id }func (v *VideoFrame) He…...
C# 判断字符串不等于空的示例
在C#中,要判断一个字符串是否不等于空(即它既不是null也不是空字符串""),方法有如下几种,如下。 方法1 使用逻辑运算符和string.IsNullOrEmpty方法 string myString "123"; // 假设要检查的字…...
直方图中最大的矩形
#include<iostream> #include<algorithm> using namespace std; const int N 100010; //l[i], r[i]表示第i个矩形的高度可向两侧扩展的左右边界 int h[N], q[N], l[N], r[N]; typedef long long LL; int main() { int n; while(scanf("%d"…...
分布式锁redisson
1:pom.xml添加依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.21.1</version> </dependency>2-1:方法一:读取默认ym…...
将小爱音箱接入 ChatGPT 和豆包ai改造成专属语音助手
这个GitHub项目,mi-gpt,旨在将小爱音箱和米家设备与ChatGPT和豆包集成,有效地将这些设备转变为个性化语音助手。以下是对其功能和设置的详细分析: 主要特点 角色扮演:该项目允许小爱适应不同的角色,如伴侣…...
短网址生成原理及使用
生成短网址介绍: 一、定义 短网址(Short URL)是形式上比较短的网址,它通过将原始冗长的网址进行缩短,方便用户分享和记忆。短网址的生成主要依赖于特定的算法和服务,通过后端服务转向来实现网址的缩短。 …...
C#调用word组件转pdf,遇到视图保护解决方法
由于我们在自己项目里常常要调用office组件将word另存pdf格式,但是常遇到用户上传的word视图保护, 组件不能正常打开word而导致不能有效转pdf(原因是文件被WPS编辑过),困扰很长时间,各种方法用过如用第三方组件替换office组件&…...
NAT端口映射,实现外网访问内网服务器
目录 前言一、搭建网络拓扑1.1 配置server和pc1.1.1 配置server01.1.2 配置server11.1.3 配置pc0 1.2 配置客户路由器1.2.1 配置路由器IP1.2.2 配置静态路由 1.3 配置ISP路由器 二、配置端口映射2.1 在客户路由器配置端口映射2.2 测试公网计算机访问私网服务器2.2.1 PC0向serve…...
【面试笔记】嵌入式软件工程师,汽车电子软件相关
文章目录 1. C语言基础1.1 const1.2 static1.3 回调函数的用法1.4 宏定义1.5 编译、链接过程1.6 堆与栈的区别?1.7 简单的字符串算法题,C语言实现1.7.1 给定一个字符串,按顺序筛选出不重复的字符组成字符串,输出该字符串1.7.2 给定…...
uniapp小程序开发 | 从零实现一款影视类app (后台接口实现,go-zero微服务的使用)
uniapp小程序开发实战系列,完整介绍从零实现一款影视类小程序。包含小程序前端和后台接口的全部完整实现。系列连载中,喜欢的可以点击收藏。 该篇着重介绍获取轮播图后台接口和获取正在热映电影的两个后台接口的实现。 后台服务使用golang,…...
【C#】委托
文章目录 委托自定义委托模板方法(工厂模式回调(callback)函数(观察者模式多播(multicast)委托委托的高级使用使用接口 重构 模板方法代码注意参考 委托 委托(delegate)是一种类型,定义了一种方…...
【面试题】创建两个线程交替打印100以内数字(一个打印偶数一个打印奇数)
阅读导航 一、问题概述二、解决思路三、代码实现四、代码优化 一、问题概述 面试官:C多线程了解吗?你给我写一下,起两个线程交替打印0~100的奇偶数。就是有两个线程,一个线程打印奇数另一个打印偶数,它们交替输出&…...
STM32一键下载电路设计与实现
1. STM32一键下载电路解析作为一名嵌入式开发者,我深知每次烧录程序都要手动切换BOOT0和复位键的痛苦。正点原子的这个一键下载电路设计确实巧妙,让我们来深入剖析它的工作原理。这个电路的核心在于利用CH340芯片的DTR#和RTS#信号,通过三极管…...
OpenClaw文件自动化实战:Phi-3-mini-128k-instruct实现智能归档
OpenClaw文件自动化实战:Phi-3-mini-128k-instruct实现智能归档 1. 为什么需要智能文件归档 我的桌面和下载文件夹常年处于"灾难现场"状态——各种PDF、Word文档、截图混杂在一起,文件名要么是随机生成的乱码,要么是随手输入的&q…...
2026届最火的六大降重复率神器实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 目前人工智能生成内容大范围运用的情形下,致使 AIGC 检测识别率降低的工具适时出…...
告别繁琐手工操作:工资条生成器使用指南
对于许多财务人员来说,每月制作工资条都是一项让人头疼的工作。 手工制作不仅要花费大量时间,还容易出现各种错误,影响工作效率和准确性。 今天,我们就来详细介绍一款能够彻底改变这种状况的工具——工资条生成器。 工资条生成…...
论文不同章节降AI策略不同:分章节精准处理的完整教程
论文不同章节降AI策略不同:分章节精准处理的完整教程 上周室友第一次用降AI工具,操作错了好几步,差点浪费机会。觉得有必要写一篇详细教程。 我用的是嘎嘎降AI(www.aigcleaner.com),4.8元一篇,…...
别再只调参了!深入torchvision.datasets.CIFAR10源码,理解PyTorch数据加载的设计哲学
深入torchvision.datasets.CIFAR10源码:解码PyTorch数据加载的工程美学 当你第一次在PyTorch中写下torchvision.datasets.CIFAR10(root./data)这行代码时,是否想过这简单的调用背后隐藏着怎样的设计智慧?对于已经能够熟练调用各种数据集接口的…...
人声分离实战指南:从UVR、Demucs到Spleeter的模型选型与场景适配
1. 人声分离技术入门:为什么我们需要它? 第一次接触人声分离技术是在去年帮朋友做婚礼视频的时候。当时需要把现场嘈杂的背景音和人声分开,试了各种音频编辑软件都没法完美解决,直到发现了这些开源工具。简单来说,人声…...
Source Han Serif CN:开源宋体的技术特性与跨场景应用指南
Source Han Serif CN:开源宋体的技术特性与跨场景应用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 一、技术特性深度剖析 1.1 字体技术架构解析 Source Han Serif…...
基于DDPG算法的发电公司竞价策略代码逐逐段解读说明
python代码:基于DDPG(深度确定性梯度策略)算法的售电公司竞价策略研究 关键词:DDPG 算法 深度强化学习 电力市场 发电商 竞价 说明文档:完美复现英文文档,可找我看文档 主要内容: 代码主要…...
终极Windows内存优化指南:用Mem Reduct释放被浪费的RAM资源
终极Windows内存优化指南:用Mem Reduct释放被浪费的RAM资源 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct …...
