一 章节知识架构图
二 软件生命周期
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 |
感谢您的耐心阅读!来选个表情,或者留个评论吧!