自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 ChatGPT生成单元测试实践(Golang)

目前gpt本质上是续写,所以在待测函数定义清晰的情况下,单元测试可以适当依赖ChatGPT进行生成。本文实践场景:企业微信美图鉴赏机器人。下面的部分,我按照工作流的繁杂程度,简单区分了下easy/normal/hard情况。

2023-03-20 21:05:13 7146

原创 浅析Minecraft直播弹幕模组BakaDanmaku源码

写在一切之前:从第一次玩Minecraft到现在大概有十年的光景了,那时候常见的版本号还是1.2.5,不禁令人感慨。而Minecraft本身的经久不衰,也离不开源源不断的UGC产出供玩家不断游玩、探索和讨论,其中及其重要的一环,就是mods(Modifications 的缩写,也叫模组,是指任何基于 Minecraft 原本游戏内容所作出的任何修改或在原本游戏内容中增加新的内容)。看了之后,觉得有必要了解一下Minecraft独特的mod文化背后,支撑mod本身的编写/运作方式了。.........

2022-08-16 23:48:26 2060 2

原创 uiautomator2 测试和分析报告 - 移动应用测试

uiautomator2 测试和分析报告Part 1 测试工具部署1.1 安装依赖库+初始化设备这里我直接在anaconda命令行里安装了# 安装uiautomator2pip install -e uiautomator2# 安装weditorpip install -U weditor# init 所有的已经连接到电脑的设备python -m uiautomator2 init1.2 尝试连接Android Studio ADV我的设备信息:先cmd里查询一下设备名ad

2021-05-11 23:36:23 1098

原创 项目 / WEB相关 - 面试准备

项目的一些思考基础知识1.常见的反爬虫和应对方法同一个ip段时间多次访问同一页面利用代理ip,构建ip池基于用户行为,请求头里的user-agent构建user-agent池(操作系统、浏览器不同,模拟不同用户)动态加载,异步请求,js渲染模拟ajax请求,返回json形式的数据selenium / webdriver 模拟浏览器加载请求频率过高容错机制2.分布式任务管理和数据处理:Redis其实很有意思的一件事是因为Redis本身单线程的特性,自然实

2021-04-27 12:09:35 225 1

原创 计算机网络 - 面试准备

计算机网络OSI 七层模型物理层数据以比特流的形式在物理层传输设备有中继器、集线器(作用:转发、放大信号)数据链路层负责将数据组帧,实现链路管理、流量控制和差错控制协议有GBN后退N帧协议、SR选择重传协议、以太网协议设备有网桥、交换机(作用:根据MAC地址对帧进行过滤转发,可以隔绝冲突域,不能隔绝广播域)冲突域:同一时间内只能有一台设备发送信息的范围广播域:网络中能接收到任意设备发出的广播帧的设备的集合网络层提供主机和主机之间的逻辑通信协议有ARP协议、OSPF/RIP路由寻址

2021-04-21 09:25:10 255

原创 数据库原理 - 面试准备

数据库有一说一,前人总结的好太多了:数据库面试存储过程存储过程是一个预编译的代码块,执行效率比较高一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率可以一定程度上确保数据安全索引索引定义索引能快速找到某一列中有一特定值的行。不必挨个儿去查看记录的内容。索引是对数据库中一列或者多列的值进行排序的一种数据结构,以索引文件的形式存储在磁盘上,占据一定的物理空间索引优点1.提高查询的性能,大大减少表的检索行数2.可以建立唯一索引或者主键索引,保证数据库中每一行数据的

2021-04-21 09:23:42 237

原创 面试准备 - 操作系统 / Python

操作系统1.进程和线程以及它们的区别。进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。组成:程序、数据、程序控制块PCB线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,不拥有系统资源。组成:线程ID、程序计数器、寄存器集合、堆栈一个进程可以有多个线程,多个线程也可以并发执行补充:管程虽然也是这部分的概念,但是它是抽象的模块:我们可以抽象描述系统中各种软硬件资源,即可以用少量信息和操作来表

2021-03-18 12:34:34 520

原创 华为机试 HJ-4 字符串分割 题解

题目描述连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入多次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1abc123456789输出abc000001234567890000000思路首先确认一点,多行输入,所以每一行是一个流程(一轮循环)模仿字符流的形式,每8个字符输出为一行则行内应该有计数器,每输出8个字符重置一次到达最

2021-03-14 16:41:23 181

原创 第十三章 - 软件过程管理与改进

定义软件企业组织需要建立一个统一的、明确定义的组织级软件过程,使得所有的项目遵照执行,同时在实用执行中不断地改进和完善组织级过程体系。CMMI是一个企业级的软件开发过程模型和质量标准,提供了一个组织级的管理模型、标准、改进框架。软件过程框架形成一个包含CMMI、PSP和TSP三者的严密的整体, 本章重点阐述以此为基础的组织级的软件过程体系。能力成熟度模型/CMMI与过程改进(*)由卡内基梅隆大学软件工程研究所(SEI)负责研发,并形成了一套系统的评估标准,也为软件公司提供了认证的标准和路线

2021-03-11 15:51:38 380

原创 第十二章 - 软件项目级管理

软件配置管理软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术,贯穿于整个软件生命周期。版本管理版本管理主要包括两个方面的工作:一方面要规范化不同开发人员之间的合作方式,必须能够保证一个人的工作不会被其它人意外的覆盖;另一方面是要确保每个人工作的对象是当前需要的版本而且能够为后续开发提供基础。累进式的开发过程可能随时有一些新想法和实现,但随后又被抛弃掉,这就需要有方便回到先前工作状态的机制。版本管理系统的核

2021-03-11 15:33:00 366

原创 第十一章 - 软件测试

重点在软件度量和测试方法上测试技术(分类、 策略)软件测试定义使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试通常被认为只是开发后期的一次性活动,但实际上,应该与整个开发流程紧密地融为一体。敏捷思想的普及使软件测试得到了前所未有的重视,它也是项目成功必不可少的基石。测试用例(Test Case)是为某个特殊的测试目标而编制的一组测试输入、执行条件及预期结果,以便测试某个程序路径或核实软件是否满足某个特定需求。.

2021-03-11 14:36:51 546

原创 第十章 - 交互设计

交互设计定义软件的可用性决定了整个项目的成与败,即使一个在功能上正确的软件但不具备直观的可操作性,通常用户也是很难接受的。本章针对可用性、可操作性等概念进行介绍性的讲解,以使人们能够在某种程度上对它们进行理解并能够对其进行验证。首先对可用性的背景从不同方面进行了概述,然后逐步细化的讨论了可用性需求的形成及其描述,最后给出对可用性进行验证的方法。主要考虑广泛使用的ISO 9241中的110部分。110对话原则:任务适合性交互系统在支持用户完成任务时应适合任务,即功能和对话是基于任务特征,而不

2021-03-11 13:46:41 363

原创 第九章 - 实现技术

不要求写程序, 但要能看懂程序总的来说,这章没啥重点,看起来比较轻松(主要是分布式的内容在OS中讲过)实现技术的定义实现阶段的一个首要任务就是构造合适的程序架构以使得所有的用户需求能够在未来的系统中得到满足和体现。从设计到代码的转换过程不仅具有针对算法过程的实现,同时还要考虑到每个具体项目的 约束条件。与实现相关的关键技术:数据管理策略和方法、数据持久化、XML、领域特定语言(DSL)、模型驱动架构(MDA)、重构(Refactoring)等。非功能性需求的实现由于非功能性需求涉及的.

2021-03-11 13:41:00 1089

原创 第八章 - 设计优化

设计的“味道(smell)”/软件异味僵化性:隐藏的设计关联性导致对文档或代码进行小的修正却埋下了不可预期的隐患,这将导致系统的改动困难重重。脆弱性:在进行一个改动时,可能会导致程序许多没有概念关联的地方出现问题。顽固性:分离设计中包含的有价值的部分并进行重用的付出和风险是巨大的。粘滞性:在添加新功能时只是在现有代码的基础上拼凑代码,不愿意也不敢去触碰现有代码,不对代码重构,导致原有设计的破坏和退化。不必要的复杂性:设计人员预测需求的变化,为过多的可能性做准备,致使设计含有了绝不会用到的内容,无

2021-03-11 13:20:46 645

原创 第七章 - 类的详细设计

该部分在实际应用中很重要,当然考试也将其作为重点内容进行考察。详细设计的定义详细设计是以概要设计说明书作为基础,完成各模块的算法设计、用户界面设计以及数据结构设计的细化等。对于开发者来说详细设计的主要工作就是在每个类的方法中补充对应的业务实现。类中方法的设计,使用状态图对类的行为,使用OCL对类的实现细节进行准确定义。详细设计的主要活动为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。为模块内的数据结构进行设计。对于需求分析、概要设计确定.

2021-03-11 11:21:29 5227

原创 第六章 - 代码生成

个人认为全章都是重点正向工程/逆向工程代码生成考虑设计方案向实际运行方式的转变过程,即由概要设计产生出对应的程序代码框架的过程。工程化的设计方法将导致程序代码具有更好的可实现性、更好的可维护性和可修改性以及更好的可扩展性。先对类图到可运行程序的基本转换过程进行概要的说明,然后考虑对其优化和细化的过程。逆向工程逆向工程的作用是将代码的修改反向映射回类图的设计中,从而在设计与代码实现之间保证一致性。逆向工程的一种特殊的情况是设计图纸完全由代码生成。逆向工程使得所有的开发都可以在CAS.

2021-03-10 23:51:55 223

原创 第五章 - 类的分析与设计

定义对未来系统的功能进行总体上的概括并使用UML的类图进行表达。在开始阶段粗略的对模型进行构建,后续再通过迭代逐级具体化,是一个逐步求精的设计过程。初始类图要覆盖所有需求的功能,并通过优化尽量保持业务结构的稳定,然后通过修订和丰富细节逐渐过渡到详细设计,并最终转化为成功的物理实现。基本类的确定设计阶段的主要任务是从需求分析阶段的规格说明出发,对系统进行模型表示并优化。面向对象的概要设计首先寻找系统中参与业务处理的对象和类。然后使用类图(Class Diagram)将系统中不同的类抽象出来

2021-03-10 17:05:21 5199

原创 第四章 - 软件架构的构建

定义软件架构也称为软件体系结构。软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织(Organization)结构和拓扑(Topology)结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。软件架构的“4+1”视图模型如何表示软件架构,即如何对软件架构建模。根据建模的侧重点不同,可以将软件架构的模型分为五种:结构模型、框架模型、动态模型

2021-03-10 14:53:27 531

原创 第三章 - 需求分析

需求分析定义需求分析的目标就是搞清楚用户真正想要的系统是什么以及存在哪些约束条件。需求分析是软件开发的输入,“垃圾入,垃圾出”,所谓“失之毫厘,谬以千里”。需求分析的挑战:分析人员借助各种手段熟悉、了解和掌握相关的业务领域,解决方案需要经过思考和分析每个人包括领域专家们对于系统的全局都是一个局部,很难预知哪些领域信息会对以后的开发产生影响客户的想法毫无征兆的变化用户需求与系统需求由客户为主导制定的需求文档称为用户(业务)需求由开发者为主导制定的需求文档称为系统需求系统需求是对

2021-03-09 22:55:49 3023

原创 第二章 - 软件开发过程

软件生命周期与开发过程软件开发过程(software development process)又叫做软件开发生命周期(software development life cycle, SDLC),是软件产品开发的任务框架和规范,又可以简单的称为软件生命周期及软件过程。可重复的、可预测的过程能够提升软件生产的效率和质量。(过程改进)生命周期是软件开发的宏观上的框架,软件过程则涉及到软件开发的流程等管理细节,在框架稳定的前提下允许对软件过程进行裁剪。4种不同类型的生命周期:顺序式、迭代式、增量式以及敏

2021-03-09 15:52:44 868 1

原创 第一章 - 软件工程概述

软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。原因:技术原因(软件规模,复杂度),管理原因(缺乏理论指导过分依靠个人,对用户需求没有完整准确的认识)如何克服软件危机 :软件工程消除软件危机的途径对计算机软件正确认识。推广使用开发软件成功的技术和方法,研究探索更好更有效的技术和方法,消除错误概念和做法。开发和使用更好的软件工具。对于时间、人员、资源等需要引入更加合理的管理措施。软件工程正是从技术和管理两方面研究如何更好地开发和维护计算机软件的一门新兴学科。

2021-03-09 10:54:33 243 1

大连理工软件学院 可视化上机作业.rar

2018级 可视化与可视化分析 日常上机作业,仅供参考(软测方向选修课程) 有疑问可以邮件我:stug_iii@foxmail.com

2021-03-11

《软件工程-周勇》答案.pdf

《软件工程 - 朴勇 周勇》课后习题答案

2021-03-10

设双链表表示的线性表L=(a1,a2,……,an),试写一时间复杂度为O(n)的算法,将L改造为L=(a1,a3,……,an,……,a4,a2)。

/*课后习题1.8-e e. 设双链表表示的线性表L=(a1,a2,……,an),试写一时间复杂度为O(n)的算法, 将L改造为L=(a1,a3,……,an,……,a4,a2)。 void Change(Node* a) */

2020-10-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除