2020软件学科基础:敏捷开发与测试策略详解

需积分: 9 3 下载量 192 浏览量 更新于2024-09-05 1 收藏 52KB DOCX 举报
本资源是一份针对2019/2020年度上海交通大学825软件学科基础考研真题的复习材料。这份文档包含了一份详细的考研试题,涵盖了简答题和问答题两大部分,旨在帮助考生理解和掌握软件学科的基础知识。 **简答题**部分(50分,每题5分)涵盖了以下几个知识点: 1. **敏捷开发过程**:这是一种迭代、增量的软件开发方法,强调快速响应变化,如Scrum或Kanban等,举例可能涉及Scrum中的Sprint周期。 2. **软件非功能性需求**:例如,**性能**指系统的响应时间、吞吐量等,**易用性**关注用户界面和交互体验,**可靠性**保证系统在异常情况下的稳定性,**可维护性**涉及修改和升级成本。选择其中两个进行解释并给出例子,如系统响应时间优化和用户体验设计。 3. **软件架构风格**:如**分层架构**(将系统分解为独立的层次,如业务逻辑、表示层等)、**管道过滤器架构**(数据流通过一系列处理步骤)、**微服务架构**(松耦合的服务组成)。举例可能是服务拆分和API接口设计。 4. **面向对象关系模型**:展示了继承(关联)、泛化(抽象)和依赖(具体化)的概念,如学生类的子类划分(全日制和非全日制学生)、软件组件的关系(代码和注释)等。 5. **黑盒测试**:事件覆盖和流测试,以及**回归测试**(确保修改不会引入新的错误)和**软件逆向工程**(分析现有软件以了解其工作原理)的概念。 6. **处理器状态**:区分用户态(权限受限,只能执行一般指令)和内核态(拥有全部权限,执行特权指令),讨论这种划分的优势。 7. **位操作**:算术右移和逻辑右移的区别,前者考虑数值运算,后者仅考虑位模式。 8. **处理器缓存**:分离指令和数据缓存的好处,如减少冲突和提高效率。 9. **I/O重定向**:Linux中的例子,如通过`$ls > bar.txt`命令,说明如何将输出重定向到指定文件。 **问答题**(45分)涉及的具体问题: 1. **缓存策略与程序性能**:分析模拟器的直接映射、缓存大小(64和128字节)、缓存算法(LRU)对程序性能的影响,以及为何A程序在不同缓存设置下的表现不同。 2. **死循环分析**:解释程序中`for`循环和`while`循环的无限循环逻辑,以及为何`i`的值变化无法使循环终止。 3. **虚拟内存**:探讨虚拟地址空间的独立性和映射机制,解释数据一致性问题,虚拟内存的优点(比如内存管理灵活性和资源利用率),以及直接物理地址使用的理由和好处。 4. **图论基础**:节点和边的关系,以及如何通过页表和TLB加速地址转换,共享内存技术的工作原理。 这份资料对于备考者来说是宝贵的复习资源,它涵盖了软件开发过程、系统架构、测试方法、处理器管理、内存系统以及操作系统概念等多个核心知识点。通过解答这些问题,考生可以深入理解软件学科基础理论,并能在实际考试中灵活运用。