第五章 软件工程

一 章节知识架构图

二 软件生命周期

1. 可研计划 (非考点)

确定软件的开发目标及其可行性

可研报告、项目开发计划

2. 需求分析

确定系统功能、性能、数据和界面要求

软件需求说明书

3. 系统设计

将需求转换为模块组成的体系架构(概要设计)
模块的具体功能(详细设计)

概要设计说明书、详细设计文档

4. 编码

模块的功能转换成代码

源程序清单

5. 测试

对软件组成部分测试。

软件测试计划、测试用例、软件测试报告

6. 维护

投入使用后进行更正,适应、完善和预防的工作

三 开发模型

类型 特征 方法
瀑布模型 开发阶段性、需求明确、文档齐全、风险控制弱 结构化方法
原型模型 分为原先开发与目标软件开发。需求不明确 原型法
增量模型 瀑布模型的变体。第一个增量是核心
螺旋模型 瀑布与原型(演化)模型结合体。适用于大型、复杂、风险项目
喷泉模型 复用好、开发过程无间隙、节约时间 面向对象开发方法
快速应用开发 RAD 基于构件的开发方法。用户参与、开发或复用构件、模块化要求高,不适用新技术
RUP/UP 用例驱动、架构为中心、迭代、增量

真题示例 - 3.1

以下关于系统原型的叙述中,不正确的是()。

A. 可以帮助导出系统需求,并验证需求的有效性
B. 可以用来探索特殊的软件解决方案
C. 可以用来指导代码优化
D. 可以用来支持用户界面设计

真题示例 - 3.2

某企业拟开发一个企业信息管理系统,系统功能与多个部门的业务相关。现希望该系统能够尽快投入使用,系统功能可以在使用过程中不断完善。最适宜采用的软件过程模型为()。

A. 瀑布模型   B. 原型模型   C. 演化(迭代)模型   D. 螺旋模型

真题示例 - 3.3

某开发小组欲为一个公司开发一个产品控制软件,监控产品的生产和销售过程,从购买各种材料开始,到产品的加工和销售进行全程跟踪。购买材料的流程、产品的加工过程以及销售过程可能会发生变化。该软件的开发最不适宜采用()模型,主要是因为这种模型()。

A. 瀑布   B. 原型   C. 增量   D. 喷泉

A. 不能解决风险   B. 不能快速提交软件
C. 难以适应变化的需求   D. 不能理解用户的需求

四 敏捷开发

以人为本,与用户紧密协作,面对面沟通,尽早发布增量,小而自主的开发团队。适用于规模小的项目。

敏捷是开发方法

  • 01 XP 极限编程
    高效、低风险、测试先行(先写测试代码,再编写程序)
实践类型 内容
计划游戏 快速制定计划、随着细节的不断变化而完善
小型发布 系统的设计要能够尽可能早地交付
隐喻 找到合适的比喻传达信息
简单设计 只处理当前需求,使设计保持简单
测试先行 先写测试代码,然后再编写程序
重构 重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求
结对编程 两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查
集体代码所有制 开发人员轮换完成系统不同领域中不同模块的不同任务。每个人都对程序负责
持续集成 可以按日甚至按小时为客户提供可运行版本
每周工作 40 个小时 保证工作质量
现场客户 系统用户代表全程配合 XP 团队
编码标准 规范代码的编写
  • 02 Cockburn 水晶方法
    不同项目,不同策略
  • 03 SCRUM 并列争求法
    迭代。30 天为一个迭代周期,按照需求优先级实现。
  • 04 ASD 自适应方法
    预测 —— 协作 —— 学习
  • 05 开放式源码
    虚拟团队,开发成员分布各地
  • 06 敏捷统一过程 AUP
    大型上连续,小型上迭代

真题示例 - 4.1

以下关于敏捷统一过程(AUP)的叙述中,不正确的是()。

A. 在大型任务上连续
B. 在小型任务上迭代
C. 在每一个不同的系统都需要一套不同的策略、约定和方法论
D. 采用经典的 UP 阶段性活动,即初始、精化、构建和转换

真题答案

题号 答案
3.1 C
3.2 C
3.3 A、C
4.1 C

如果本文对您有所帮助,欢迎打赏支持作者!

Licensed under CC BY-NC-SA 4.0
最后更新于 2023-02-06 15:24
使用 Hugo 构建
主题 StackJimmy 设计