软件工程知识点
-
软件工程提出的时代和背景
-
软件工程化的层次
-
软件开发过程
-
敏捷与计划开发
-
演化式开发和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.什么是反射 首先,我们来看…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
