软件工程知识点
-
软件工程提出的时代和背景
-
软件工程化的层次
-
软件开发过程
-
敏捷与计划开发
-
演化式开发和DevOps
-
软件配置管理过程和相关工具名
-
软件质量和代码异味
-
能够分析常见的代码异味和bug
-
代码复杂度和计算圈复杂度
-
了解代码异味和重构行为的关系
-
了解自动化单元测试框架xunit,Junit,能够写出相应测试用例
-
了解黑盒测试等价类划分,了解白盒测试的独立路径
-
敏捷开发与极限编程
-
结对编程与问题追踪系统
-
软件设计的层次,基本原则,思想
-
模块化,内聚类型,耦合类型
-
面向对象设计步骤,面向对象设计原则
-
设计模式概念,MVC模式
-
构件、模式与框架概念与区别
-
演化式设计与重构概念
-
软件体系结构模式
-
三类需求与需求工程的关键活动
-
掌握作业布置的各种UML图,如用例图,类图,活动图,状态机图与泳道图。
-
了解软件测试各种术语与概念
-
软件工程提出的时代和背景:软件工程是在20世纪70年代初期提出的,是为了解决软件开发中的问题和挑战而产生的一种工程化方法。它的背景是软件开发过程中出现的严重问题,例如成本超支、进度拖延、质量低下等。
-
软件工程化的层次:软件工程化通常分为四个层次:过程层、方法层、工具层和质量层。过程层描述了软件开发过程中的活动和任务;方法层描述了在软件开发过程中使用的方法和技术;工具层描述了在软件开发过程中使用的工具和环境;质量层描述了在软件开发过程中需要考虑的质量因素和质量保证机制。
-
软件开发过程:软件开发过程是指将软件开发活动划分为一系列阶段和活动,并在每个阶段和活动中定义和执行一组任务和工作来完成软件开发的过程。常见的软件开发过程包括瀑布模型、迭代模型、增量模型、螺旋模型和敏捷开发等。
-
敏捷与计划开发:敏捷开发是一种基于迭代和增量的软件开发方法,强调团队合作、迭代开发、快速反馈和不断改进。计划开发是一种基于计划和控制的软件开发方法,强调计划、进度和质量的管理和控制。敏捷和计划开发各有优缺点,具体应根据项目的需求和情况来选择合适的开发方法。
-
演化式开发和DevOps:演化式开发是一种基于快速迭代和快速反馈的软件开发方法,强调持续交付和不断改进。DevOps是一种将开发和运维结合起来的方法,强调自动化、持续集成和持续交付。演化式开发和DevOps都是为了提高软件开发的效率和质量,使开发和运维更加协同和高效。
-
软件配置管理过程和相关工具名:软件配置管理是一种管理和控制软件开发过程中的变更和版本的方法。常见的软件配置管理工具包括Git、SVN、CVS等。
-
软件质量和代码异味:软件质量是指软件产品满足用户需求和期望的程度,包括功能、性能、可靠性、可维护性、可用性等方面。代码异味是指程序中存在的不良代码习惯或潜在问题,例如重复代码、过长的函数、不恰当的命名等,可能会影响软件的质量和可维护性。
-
能够分析常见的代码异味和bug:常见的代码异味包括重复代码、过长的函数、不恰当的命名、过于复杂的控制流等,常见的bug包括空指针引用、数组越界、逻辑错误等。分析代码异味和bug是提高软件质量和可维护性的关键步骤之一。
-
代码复杂度和计算圈复杂度:代码复杂度是指代码的结构、可读性和可维护性的复杂程度,通常使用代码行数、函数数量、类数量等指标来衡量。计算圈复杂度是一种衡量程序复杂度的方法,它通过计算程序中的控制流路径数目来评估程序的复杂程度。
-
了解代码异味和重构行为的关系:代码异味是指程序中存在的不良代码习惯或潜在问题,重构是指通过修改代码的结构和设计来改进程序的质量和可维护性。重构是解决代码异味问题的一种有效方式。
-
了解自动化单元测试框架xunit、JUnit,能够写出相应测试用例:xunit和JUnit都是常用的自动化单元测试框架,用于自动化单元测试用例的编写和执行。编写好的测试用例可以帮助开发者及时发现和解决代码中的问题,提高软件质量和可维护性。
-
了解黑盒测试等价类划分,了解白盒测试的独立路径:黑盒测试是一种基于系统功能和需求的测试方法,常用的技术包括等价类划分、边界值分析等。白盒测试是一种基于代码结构和实现的测试方法,常用的技术包括控制流图、独立路径测试等。
-
敏捷开发与极限编程:敏捷开发和极限编程都是基于迭代和增量的软件开发方法,强调团队合作、快速反馈和不断改进。敏捷开发和极限编程的主要区别在于极限编程强调测试驱动开发、结对编程等特定实践。
-
结对编程与问题追踪系统:结对编程是一种软件开发方法,两个开发者共同开发一个模块,一人编写代码,另一人进行代码审查。问题追踪系统是一种用于管理和跟踪软件开发过程中的问题和缺陷的工具。
-
软件设计的层次、基本原则、思想:软件设计分为架构设计、详细设计和编码三个层次。常见的软件设计原则包括单一职责原则、开放-封闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则等。常见的软件设计思想包括面向对象设计、面向服务设计、面向切面设计等。
-
模块化、内聚类型、耦合类型:模块化是指将程序分解为若干个模块,每个模块都有明确的功能和接口。内聚是指模块内部各个元素之间的联系紧密程度,常见的内聚类型包括偶然性内聚、逻辑内聚、时间内聚、顺序内聚、功能内聚、信息内聚。耦合是指模块之间相互依赖的程度,常见的耦合类型包括偶然性耦合、数据耦合、标记耦合、控制耦合、外部耦合等。
-
面向对象设计步骤、面向对象设计原则:面向对象设计的步骤包括需求分析、领域建模、静态设计、动态设计和实现。常见的面向对象设计原则包括单一职责原则、开放-封闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特

-
设计模式概念,MVC模式:设计模式是一种被广泛接受的解决软件设计问题的方法,它提供了一组经过验证的软件设计解决方案。MVC模式是一种常用的设计模式,用于将应用程序的数据、用户界面和控制逻辑分离,以便更好地管理和维护应用程序。
-
构件、模式与框架概念与区别:构件是指软件系统的部件,可以独立地开发、测试和部署。模式是一种被广泛接受的解决软件设计问题的方法。框架是一组相互协作的类和组件,用于解决特定领域的问题。构件、模式和框架都是为了提高软件开发效率和质量,但它们的作用和应用范围不同。
-
演化式设计与重构概念:演化式设计是一种基于迭代和增量的软件设计方法,强调在设计过程中不断地进行调整和改进。重构是指通过修改代码的结构和设计来改进程序的质量和可维护性。演化式设计和重构都是为了提高软件设计的质量和可维护性。
-
软件体系结构模式:软件体系结构模式是一种在软件体系结构设计中被广泛使用的模式,用于解决特定领域的问题。常见的软件体系结构模式包括层次结构模式、客户端-服务器模式、管道-过滤器模式、发布-订阅模式等。
-
三类需求与需求工程的关键活动:软件需求通常分为功能需求、非功能需求和约束需求三类。需求工程是软件开发过程中的关键活动之一,包括需求获取、需求分析、需求规格、需求验证等环节。
-
掌握作业布置的各种UML图,如用例图、类图、活动图、状态机图与泳道图:UML(统一建模语言)是一种广泛使用的软件建模语言,用于描述、设计和分析软件系统。用例图、类图、活动图、状态机图和泳道图都是UML的重要组成部分,用于描述系统的不同方面和功能。
观察者模式:
-
了解软件测试各种术语与概念:软件测试是一种评估软件质量的过程,包括软件单元测试、集成测试、系统测试、验收测试等。常见的软件测试术语和概念包括黑盒测试、白盒测试、回归测试、性能测试、压力测试、自动化测试等。
相关文章:
软件工程知识点
软件工程提出的时代和背景 软件工程化的层次 软件开发过程 敏捷与计划开发 演化式开发和DevOps 软件配置管理过程和相关工具名 软件质量和代码异味 能够分析常见的代码异味和bug 代码复杂度和计算圈复杂度 了解代码异味和重构行为的关系 了解自动化单元测试框架xunit…...
华为OD机试 - 投篮大赛(Python)
题目描述 你现在是一场采用特殊赛制投篮大赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。 比赛开始时,记录是空白的。 你会得到一个记录操作的字符串列表 ops,其中ops[i]是你需要记录的第i项操作,ops遵循下述规则: 整数x-表示本回合…...
《花雕学AI》讯飞星火认知大模型的特点和优势,与ChatGPT的对比分析
引言: 人工智能是当今科技领域的热门话题,自然语言处理是人工智能的重要分支。自然语言处理的目标是让计算机能够理解和生成自然语言,实现人机交互和智能服务。近年来,随着深度学习的发展,自然语言处理领域出现了许多创…...
【Python入门】Python的判断语句(if else 语句)
前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函…...
(4.28-5.4)【大数据新闻速递】数字中国峰会成功举办;“浙江数据知识产权登记平台”上线;贵州大数据活跃;AI教父从谷歌离职
01【2023年数字中国建设峰会数字福建分论坛成功举办】 2023年数字中国建设峰会数字福建分论坛由福建省人民政府主办,福建省数字福建建设领导小组办公室、数字中国研究院(福建)和福建省大数据集团承办。分论坛于2023年4月28日下午14:30 -17:3…...
领域驱动设计(Domain Driven Design)之建立领域模型
文章目录 用领域模型表达领域概念建立模型使用通用语言验证模型识别构造块类型设计聚合如何使用领域模型再次思考总结用领域模型表达领域概念 在实际项目中,模型设计者往往过早陷入具体构造块类型的识别,比如实体、聚合、领域服务,而忽略了领域模型表达领域概念的目的。我们…...
有研究员公开了一个解析并提取 Dell PFS BIOS 固件的工具(下)
导语:研究员公开了一个解析并提取 Dell PFS BIOS 固件的工具。 Apple EFI IM4P分配器 介绍 解析苹果多个EFI固件.im4p文件,并将所有检测到的EFI固件分割为单独的SPI/BIOS映像。 使用 你可以拖放或手动输入包含Apple EFI IM4P固件的文件夹的完整路径。…...
iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言、ObjC的特性,且克服了C语言的兼容性问题。Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在其中你可以看到C#、Java、Javascript、Pyth…...
【MOMO】高水平期刊目录(持续更新)
高水平期刊目录 引言1 顶级期刊目录(A)1.1 IEEE Transactions on Intelligent Transportation Systems1.2 IEEE Transactions on Neural Networks and Learning Systems1.3 Engineering 2 权威期刊目录(A)2.1 Measurement 3 鼓励期…...
LVS负载均衡集群--DR模式
一、LVS-DR集群介绍 LVS-DR(Linux Virtual Server Director Server)工作模式,是生产环境中最常用的一 种工作模式。 1、LVS-DR 工作原理 LVS-DR 模式,Director Server 作为群集的访问入口,不作为网关使用࿰…...
RabbitMQ --- 死信交换机
一、简介 1.1、什么是死信交换机 什么是死信? 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false…...
如何在个人web项目中使用会话技术(cookiesession)?
编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 服务器软件:apache-tomcat-8.5.27 目录 一. 什么是会话?二. 为什么要使用会话技术?三. 如何使用会话技术?3.1 Cookie(客户端的会话技术…...
创建线索二叉树
创建线索二叉树 一、创建线索二叉树一、案例1、前序线索二叉树2、中序线索二叉树3、后序线索二叉树 一、创建线索二叉树 现将某结点的空指针域指向该结点的前驱后继,定义规则如下: 若结点的左子树为空,则该结点的左孩子指针指向其前驱结点。…...
HNU-操作系统OS-实验Lab2
OS_Lab2_Experimental report 湖南大学信息科学与工程学院 计科 210X wolf (学号 202108010XXX) 前言 实验一过后大家做出来了一个可以启动的系统,实验二主要涉及操作系统的物理内存管理。操作系统为了使用内存,还需高效地管理…...
如何使用HTML和CSS创建有方向感知的按钮
在互联网应用中,按钮是一种常见的控件,用户通过点击按钮来触发相应的操作。考虑到用户体验和交互设计,设计有方向感知的按钮可以使得用户更加易于理解按钮的功能和状态。 在本文中,我们将介绍如何使用HTML和CSS来创建具有方向感知…...
java 线程安全
内部锁 在 Java 中,每个对象都有一个内部锁,也称为监视器锁或对象锁。内部锁是通过在代码块或方法前加上 synchronized 关键字来实现的。当一个线程执行一个带有 synchronized 关键字的方法或代码块时,它必须先获得该对象的内部锁࿰…...
移动硬盘修复后文件丢失恢复方法
最近收到很多这样的咨询: 问1:移动硬盘目录损坏用chkdsk修复后,文件被删除,怎么才可以恢復文件? 问2:移动硬盘出错然后修复,然后文件都没有了怎么处理啊!!!&a…...
直线飙升到10万+star的AutoGpt,有多强?帮我写了个网页!
先来感受一下10万的star,到底有多强! 从4月2日开始,直线飙升到10万star Auto-GPT是一个实验性的开源应用程序,展示了GPT-4语言模型的功能。这个程序由GPT-4驱动,将LLM“思想”链接在一起,以自主实现您设定的…...
rk3568平台调试typec口实现uvc输出,网络共享等功能
一、修改kernel相关配置 注意:一定要知道主控接线,那个物理口是otg的,然后要找准与之所连接的phy和控制器。然后处理CC1 CC2识别芯片,fusb302。默认sdk自带有驱动,需要配上中断脚和提供VBUS 5V的脚。用来判断角色是DF…...
java基础知识——26.反射
这篇文章我们来讲一下java的代理与反射,这是很重要的一部分内容。 目录 1.什么是反射 2.获取class对象的三种方式 3.反射获取构造方法 4.利用反射来获取成员变量 5.利用反射来获取成员方法 6.反射的作用 7.反射小结 1.什么是反射 首先,我们来看…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
