软件工程师——(十一)软件工程
1. 软件开发模型———主要需掌握每种模型的特点

1. 瀑布模型(SDLC)———典型的结构化方法的模型
- 1、基本结构

- 2、存在的问题
- 由于
需求阶段难以把控(软件的需求往往都是不明确的,尤其在项目初期),容易被用户推翻
修改时,需要回到需求分析阶段,会浪费大量时间,导致软件项目失败
- 3、适用场景———
需求明确、二次开发
2. 其他经典模型

0. 原型法
- 说明————通过
简易系统的方式,以比较低的成本获取比较全面,比较准确的用户需求
- 实现过程
- 项目
开发初期,构造一个简易系统(一套界面或初步的系统)
- 把
简易系统给用户演示
- 演化模型(变换模型)
- 说明———将
最初的原型通过很多步的演化,调整成给用户使用的软件产品
1. 增量模型

- 说明———有
原型的思想加上瀑布模型的思想,得到增量模型
- 思路
- 先做
用户需求的核心模块,拿给用户进行使用,发现问题就修正问题
- 然后再
增加开发新的模块,拿给用户进行使用,发现问题就修正问题
- 不断
重复以上步骤
2. 螺旋模型

- 说明———由
原型发展而来,同时拥有演化模型和瀑布模型的特征
- 特征
3. V模型(一个强调测试的模型)

- 特点
提升了测试的地位,对于测试进行细化
步骤之间有着对应关系
需求分析时会写验收测试和系统测试的测试计划———便于提早发现系统存在的问题
概要设计时会做集成测试的测试计划———概要设计会进行模块的划分,集成测试会测试模块之间衔接,就可以发现模块划分出现的问题
详细设计时会写单元测试的测试计划
4. 喷泉模型(比较早的面向对象的模型)

5. RAD(快速开发模型)

- 特点
瀑布模型和构建化开发模型(CBSD)组合形成
- 可以
快速的构建应用系统
- 开发步骤
- 业务建模
- 数据建模
- 过程建模
- 应用生成
- 测试与交付
6. 构建组装模型(CBSD)

- 特点
极大地提高了软件开发的复用性,从而极大的减小软件开发的时间成本
降低软件开发成本,提高软件可靠性
- 基本思路
- 将软件开发中的
各个模块都考虑做成标准的构件
- 将
构件进行组装,从而得到需要的软件
- 构件标准
- CORBA———
对象管理组织(OMG)提出的
- COM/DCOM/COM+———
微软家族的
- EJB———
Java体系中用到的
7. 敏捷开发方法(适用于小型项目)

- 基本思想———
砍掉不必要的流程,减去不必要的文档,从而减轻开发人员负担
- 相关模型———共
同价值观,共同处事原则
- 自适应开发
- 水晶方法
- 特征驱动开发
- SCRUM
- 极限编程(XP)
- 基本原则
- 短平快的会议———砍掉不必要的会议,找到
替代的方法
- 小型版本的发布
- 较少的文档
- 合作为重
- 客户直接参与
- 自动化测试
- 适应性计划调整
- 结对编程
- 测试驱动开发
- 持续集成
- 重构
2. 信息系统的开发方法———了解每种方法的特征

3. 需求的分类与获取

4. 结构化设计
1. 基本原则

2. 内聚和耦合(内聚程度从高到低排列;耦合程度从低到高排列;)

3. 系统结构/模块结构

5. 软件测试
1. 测试原则与类型

2. 测试用例设计

3. 测试阶段

4. McCaba复杂度———需掌握(注意那个是边,那个是点,分叉可以抽象为结点,也可以不抽象为结点)

5. 系统运行与维护

6. 软件过程改进(CMMI)

7. 项目管理

相关计算———考点

- 1、
Gantt图不能直观的表达出各个任务之间的依赖关系
- 2、
PERT图计算(先正推求出事件的最早开始时间,然后逆推求出事件的最晚开始时间)
- (正推)
最早开始时间=Max(耗时最长的)(前一个事件``最早开始时间+事件的持续时间)
- (逆推)
最晚开始时间=后一个事件``最早开始时间-事件的持续时间
- 3、答案————D、C
2. 风险管理
