2024-2025-1 20241325王向龙《计算机程序与设计》第五周学习总结
这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计)
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK05
这个作业的目标
①Pep/9虚拟机
②机器语言与汇编语言
③算法与伪代码
④测试:黑盒,白盒
作业正文 本博客链接 https://www.cnblogs.com/wangxianglong999/p/18509193
教材学习内容总结
Pep/9 虚拟机是一种用于模拟特定计算机架构的软件。
一、特点
- 精确模拟:它能够较为精确地模拟目标计算机的硬件和指令集,使得在不同的操作系统环境下可以运行原本为特定硬件设计的软件。
- 教学工具:常被用于计算机科学教育中,帮助学生理解计算机体系结构、指令执行流程等概念。
二、应用场景
- 教育领域:学生可以通过使用 Pep/9 虚拟机来学习计算机组成原理、操作系统等课程,进行编程实践和调试。
- 软件测试:开发人员可以在不同的平台上利用该虚拟机测试软件在特定环境下的兼容性和稳定性。
总的来说,Pep/9 虚拟机在计算机教育和软件测试等方面发挥着重要作用。
一、机器语言
机器语言是计算机能够直接识别和执行的二进制代码指令集合。
- 特点:
- 由 0 和 1 组成的二进制编码,非常晦涩难懂,但计算机执行效率极高。
- 与特定的计算机硬件紧密相关,不同类型的计算机可能有不同的机器语言指令集。
- 应用场景:
- 在计算机底层系统开发中,如操作系统内核、硬件驱动程序等,对性能要求极高的部分可能会使用机器语言进行优化。
二、汇编语言
汇编语言是一种面向机器的低级编程语言,它使用助记符来代替机器语言的二进制指令。
- 特点:
- 相比机器语言更易于理解和编写,提高了编程的效率和可读性。
- 仍然与特定的计算机硬件架构相关,不同的处理器有不同的汇编语言指令集。
- 应用场景:
- 用于底层软件开发,如嵌入式系统开发、操作系统的某些关键部分等。
- 在性能优化方面,开发人员可以使用汇编语言对关键代码段进行优化,以提高程序的执行速度。
一、算法
算法是解决特定问题的一系列明确步骤的集合。
-
特点:
- 确定性:每一步都有明确的定义和操作,不会产生歧义。
- 有穷性:经过有限步骤后能够终止。
- 输入和输出:可以有零个或多个输入,并产生一个或多个输出。
- 可行性:每一步都可以通过计算机或其他工具在有限时间内执行。
-
作用:
- 提高效率:通过设计高效的算法,可以在更短的时间内解决问题,减少资源消耗。
- 解决复杂问题:对于复杂的问题,算法可以将其分解为一系列简单的步骤,逐步解决。
- 可重复性:相同的算法可以在不同的场景下重复使用,解决类似的问题。
二、伪代码
伪代码是一种介于自然语言和编程语言之间的描述性语言,用于表达算法的逻辑结构。
-
特点:
- 易读性:比编程语言更接近自然语言,易于理解和阅读。
- 独立性:不依赖于特定的编程语言,可以在不同的编程语言之间转换。
- 表达算法逻辑:重点在于描述算法的逻辑步骤,而不是具体的语法细节。
-
作用:
- 设计算法:在实际编程之前,使用伪代码可以帮助设计和完善算法,确保算法的正确性和有效性。
- 沟通交流:方便开发人员之间交流算法思想,提高团队协作效率。
- 教学工具:在教学中,伪代码可以帮助学生更好地理解算法的逻辑,为学习编程语言打下基础。
例如,计算两个数的最大值的算法可以用伪代码表示如下:
输入两个数 a 和 b
如果 a 大于 b,则
输出 a
否则
输出 b
总之,算法是解决问题的核心,而伪代码是表达算法的一种有效工具,它们在计算机科学和编程中都起着重要的作用。
一、黑盒测试
黑盒测试又称功能测试,它把软件系统看作一个黑盒子,不关注软件内部的结构和实现细节,只关注软件的输入和输出是否符合预期的功能需求。
-
特点:
- 不涉及内部代码:测试人员不需要了解软件的内部实现,只从外部观察软件的行为。
- 基于需求规格:主要依据软件的需求规格说明书来设计测试用例,验证软件是否满足用户的需求。
- 多种测试方法:包括等价类划分、边界值分析、因果图等方法,以尽可能覆盖各种输入情况。
-
作用:
- 发现功能缺陷:能够有效地发现软件在功能方面的缺陷,确保软件的各项功能正常运行。
- 模拟用户行为:从用户的角度出发,模拟用户的实际使用场景,检验软件的易用性和用户体验。
- 提高软件质量:通过全面的黑盒测试,可以提高软件的可靠性和稳定性,减少软件发布后的问题。
二、白盒测试
白盒测试也称为结构测试,它深入了解软件的内部结构和代码实现,对软件的内部逻辑进行测试。
-
特点:
- 关注内部代码:测试人员需要了解软件的内部结构和代码逻辑,以便设计有效的测试用例。
- 基于代码覆盖:通过各种覆盖准则,如语句覆盖、分支覆盖、条件覆盖等,确保软件的所有代码路径都被测试到。
- 多种测试技术:包括静态分析、动态分析、代码审查等技术,以发现代码中的潜在问题。
-
作用:
- 发现内部逻辑错误:能够检测出软件内部的逻辑错误、算法错误和代码缺陷,提高软件的质量。
- 优化代码结构:通过对代码的分析和测试,可以发现代码中的不合理之处,从而优化代码结构,提高代码的可读性和可维护性。
- 支持回归测试:在软件修改后,白盒测试可以快速地确定哪些部分的代码受到了影响,从而有针对性地进行回归测试。
总之,黑盒测试和白盒测试各有其特点和作用,在软件测试过程中,通常会结合使用这两种测试方法,以确保软件的质量和可靠性。
学习进度条
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90