软件工程知识点
-
软件工程提出的时代和背景
-
软件工程化的层次
-
软件开发过程
-
敏捷与计划开发
-
演化式开发和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.什么是反射 首先,我们来看…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
WEB3全栈开发——面试专业技能点P8DevOps / 区块链部署
一、Hardhat / Foundry 进行合约部署 概念介绍 Hardhat 和 Foundry 都是以太坊智能合约开发的工具套件,支持合约的编译、测试和部署。 它们允许开发者在本地或测试网络快速开发智能合约,并部署到链上(测试网或主网)。 部署过程…...
实现p2p的webrtc-srs版本
1. 基本知识 1.1 webrtc 一、WebRTC的本质:实时通信的“网络协议栈”类比 将WebRTC类比为Linux网络协议栈极具洞察力,二者在架构设计和功能定位上高度相似: 分层协议栈架构 Linux网络协议栈:从底层物理层到应用层(如…...
