0%

软件过程模型

瀑布模型(需求明确)

线性顺序,以文档为驱动,项目的阶段评审和文档控制为手段对开发过程作为指导。适用于软件需求明确,客户必须能够完整、正确、清晰的表达需求

瀑布模型

V模型

瀑布模型的变体,描述了质量保证活动和沟通、建模相关活动及早期构建相关的活动之间的关系

V模型

阅读全文 »

五大算法策略:核心思想、经典问题与适用场景

算法策略是解决问题的方法论,不同策略适用于不同类型的问题。掌握分治、贪心、动态规划、回溯、分支界限五大策略的核心特征,能帮助我们快速选择合适的算法思路,高效解决复杂问题。

分治法(Divide and Conquer):分而治之

核心特征

  • 问题拆分:将原问题拆分为规模更小、结构相同的子问题(子问题相互独立,无重叠)。
  • 递归求解:递归解决每个子问题,再将子问题的解合并为原问题的解。
  • 无重复计算:子问题独立,无需存储中间结果(与动态规划的核心区别)。

经典问题

  • 归并排序:将数组拆分为两个子数组,排序后合并(合并过程是关键)。
  • 快速排序:选基准元素拆分数组为左右两部分,递归排序后直接拼接(无需显式合并)。
  • 二分搜索:将有序数组拆分为左右两部分,通过比较目标值与中间值缩小范围。
  • 汉诺塔:将 n 个盘子的问题拆分为 n-1 个盘子的子问题,递归移动盘子。

适用场景

  • 问题可拆分为独立子问题,且子问题解法与原问题一致(递归结构清晰)。
  • 合并子问题的成本低于直接求解原问题(如归并排序的合并步骤复杂度为 O (n),整体效率优于 O (n²))。

贪心法(Greedy Algorithm):局部最优的累积

核心特征

阅读全文 »

软件生存周期

软件生存周期

1. 可行性研究阶段

  • 核心任务:明确软件要解决的问题,分析项目的可行性(包括技术可行性、经济可行性、操作可行性、时间可行性等)。
  • 输出成果:可行性研究报告,确定项目是否值得继续开发。

2. 需求分析阶段

  • 核心任务:详细收集和分析用户对软件的功能、性能、接口、数据等方面的需求,明确软件必须实现的目标。
  • 输出成果:需求规格说明书,作为后续设计和开发的依据。

3. 设计阶段(概要设计和详细设计)

  • 核心任务:根据需求规格说明书,将软件的功能和性能转化为具体的技术方案。通常分为概要设计(总体架构设计)和详细设计(模块内部实现设计)。
  • 输出成果:概要设计说明书、详细设计说明书、数据库设计说明书等。

4. 编码与单元测试阶段

  • 核心任务:开发人员根据详细设计文档编写代码,实现软件的功能模块;同时对每个单元(模块)进行测试,确保其符合设计要求。
  • 输出成果:可运行的代码、单元测试报告。

5. 集成与系统测试阶段

  • 核心任务:将各个单元模块逐步集成,形成完整的软件系统,并进行系统测试,验证软件是否满足需求规格说明书中的所有要求(包括功能、性能、安全性等)。
  • 输出成果:集成测试报告、系统测试报告、可交付的软件版本。

6. 部署与运行阶段

  • 核心任务:将经过测试的软件系统部署到用户的实际运行环境中,正式交付用户使用,并提供必要的培训和支持。
  • 输出成果:运行中的软件系统、用户手册、部署文档等。

7. 维护阶段

  • 核心任务:在软件运行过程中,根据用户反馈或环境变化,对软件进行修改和完善,包括纠错性维护(修复漏洞)、适应性维护(适应新环境)、完善性维护(增加新功能)和预防性维护(预防潜在问题)。
  • 输出成果:维护后的软件版本、维护记录报告。

8. 退役阶段

  • 核心任务:当软件不再满足用户需求或被新的软件替代时,停止其运行和维护,进行数据迁移、系统下线等收尾工作。

设备管理:操作系统中的 I/O 资源管控机制

设备管理是操作系统中负责管理所有输入 / 输出(I/O)设备的核心功能,其目标是高效、有序地协调 CPU 与外部设备之间的数据传输,为用户和应用程序提供便捷的设备访问接口。设备管理涉及硬件操作、中断处理、驱动程序等多个层次,形成了一套完整的 I/O 管理体系。

设备管理的层次结构

设备管理软件从底层到高层分为 5 个层次,各层分工明确,共同完成 I/O 操作的全过程:

IO管理软件

1. 硬件层:执行具体 I/O 操作

  • 组成:包括各类外部设备(如键盘、硬盘、打印机、网卡)及其控制器(如磁盘控制器、显卡驱动芯片)。
  • 功能:直接执行物理 I/O 操作(如磁盘磁头读写数据、网卡收发数据包),并将操作结果通过电信号反馈给控制器。
  • 特点:硬件操作依赖设备自身的物理特性(如磁盘的转速、网卡的传输速率),是 I/O 流程的基础。
阅读全文 »

磁盘调度

存取时间 = 寻道时间 + 等待时间 + 读取时间

  • 寻道时间:磁头移动到目标磁道所需的时间(找磁道的时间)。
  • 等待时间:等待目标扇区旋转到磁头下方的时间(即旋转延迟,找扇区的时间)。
  • 读取时间:数据从磁盘传输到内存的时间(传输时间)。

多个磁片的同一个磁道会形成一个柱面,因此有时磁道也被称为柱面。

磁盘

在同一扇区内读取数据属于顺序读取,而跨扇区读取则属于随机读取。

磁盘调度算法

磁盘调度分为移臂调度(找磁道)和旋转调度(找扇区)两类,通常先进行移臂调度,再进行旋转调度。

阅读全文 »