【软件设计师10】软件工程
软件工程
1. 瀑布模型SDLC - 结构化
优点:结构化方法模型,每个阶段分工明确;出现问题可以向上层回溯
缺点:需求阶段难以把控,在项目初期,软件的需求几乎是不明确的,等开发完用户往往再提出问题,又回到了需求阶段重新来
适用于软件需求十分明确或二次开发的工程
2. 其他经典模型
原型 - 需求分析阶段:可以做一个初步的界面不做具体功能,给用户做演示,再逐渐调整需求;现在出现了很多用原型设计工具比如axure;原型往往是在初期需求不明确时构造一个简易的系统。
演化模型:将原型不断调整演化为最终产品
增量模型:由原型和瀑布模型发展,做系统时先完成核心部分,比如这段时间可能是原来项目20%的时间,把核心模块先给用户使用发现问题并改正,强调先做一块、再做一块,好处是能跟用户频繁交换,当用户每次看系统时又能对之前的核心功能进行审视,降低风险
3. 螺旋模型 - 风险分析
由多个模型组合,引入了风险分析
如果考试中问需求明确时要选择原型,遵循最匹配原则
4. V模型 - 测试
在需求分析阶段就可以写验收测试、系统测试的测试计划,从测试的眼光看问题,发现需求分析阶段的设计问题。同理概要设计阶段写集成测试的计划,详细设计阶段写单元测试计划。
5. 喷泉模型 - 面向对象
基于面向对象的迭代和无间隙
6. RAD
能快速构建业务系统
包括:业务建模、数据建模、过程建模、应用生成、测试与交付
7. 构建组装模型CBSD - 复用性
极大的提高了软件开发的可复用性,降低成本,提高软件的可靠性
比如新提出一个构建如果不用了放入构建库,或者需要一个构建时如果原有的构建库中有其他项目的构建,就可以拿过来复用
8. 统一过程模型UP - 架构
9. 敏捷开发方法 - 小型项目
10. 信息系统开发方法
11. 需求开发 - 分类与获取
12. 结构化设计
基本原则
内聚与耦合
系统模块/模块结构
13. 软件测试
测试原则与类型
测试用例设计
测试阶段
14. McCabe复杂度**必考
软件测试 - McCabe复杂度
15. 系统运行与维护
1.改正性维护:即用户发现bug,然后我就修改bug
2.适应性维护:即解决运行平台版本更迭的问题
3.完善性维护:指在运行过程中发现了一些不足,进而对系统的性能等方面进行完善和扩充
4.预防性维护:对将来可能导致的问题进行预防工作
16. 软件改进过程 - CMMI
17. 系统开发基础 - 项目管理
分值不高,上午题1~3分,由于项目管理体系比较庞大所以不整体介绍
主要考时间管理和计算、风险管理
例题:
Gantt甘特图不能清晰的描述各个人物之间的依赖关系
PERT图可以给出哪些任务完成后才能开始另一些任务
最长路径对应了整个项目的最短工期
计算最晚开始事件:先计算最短工期路径,再反推某个事件可以延迟最晚多久开始
事件9最长路径最早开始时间15,逆推事件6的最晚开始时间15-4-1=10