软考分类精讲-软件工程
软件的开发方法
- 软件开发生命周期
- 软件开发模型
- 构件与软件重用
- ****
- 净室软件工程
软件开发的模型
瀑布模型
增量模型与螺旋模型
构件组装模型
软件开发模型的统一过程
敏捷开发
****
净室软件工程
- 净室即无尘室、洁净室,也就是一个受控污染级别的环境
- 使用盒结构规约(或形式化方法)进行分析和设计建模,而且强调将正确性 验证,而不是测试,作为发现和消除错误的主要机制
- 使用统计的测试来获取认证被交付的软件的可靠性所必需的的出错率信息
需求工程
需求获取
需求分析
数据字典
OOA
4+1视图
需求定义
需求验证
需求管理
需求风险管理
需求跟踪
范围管理
变更控制
软件系统建模
系统设计
- 处理流程设计
- 人机界面设计
- 结构化设计
- 面向对象设计
业务流程设计方法
- 价值链分析法
- 客户关系分析法
- 供应链分析法
- 基于ERP的分析法 业务流程重组
业务流程建模方法
- 标杆瞄准 IDEF(集成定义方法)
- DEMO(组织动态本质建模法)
- Petri网
- 业务流程建模语言
- 基于服务的BPM
标杆瞄准
- 确定需要进行标杆研究的流程和影响流程成败的关键因素
- 确定瞄准目标的标杆企业、组织及其流程
- 通过走访、调研、会谈广告等采集数据,并进行分析
- 从众多标杆数据中,选定最佳改进标准
- 根据标杆指标,评估企业的既有流程,并确立改进目标
IDEFO
DEMO
人机界面设计
- 置于用户控制之下
- 减少用户的记忆负担
- 保持界面的一致性
结构化设计
面向对象设计-基本过程
面向对象设计-基本原则
- 单一职责原则:设计目的单一的类
- 开放-封闭原则:对扩展开放,对修改封闭
- 李氏(Liskov)替换原则:子类可以替换父类
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
- 迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
面向对象设计-设计模式的概念
- 架构模式:软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件 系统过程中所作的基本设计决策
- 设计模式:主要关注软件系统的设计,与具体的实现语言无关
- 惯用法:是最低层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来 描述构件与构件之间的关系。每种编程语言都有它自己特定的模式,即语言的惯用法。例如 引用-计数就是C++语言的一种用惯用法
面向对象设计-设计模式的分类
面向对象设计-创建性模式
面向对象设计-结构性模式
面向对象设计-行为性模式
测试与测评
- 测试评审方法
- 验证与确认
- 测试自动化
- 软件调试
- 测试设计和管理方法
测试类型
测试阶段
面向对象测试
- 算法层(单元测试):包括等价类划分测试、组合功能测试 (基于判定表的测试)、递归函数测试和多态消息测试
- 类层(模块测试):包括不变式边界测试、模态类测试
- 模板层/类树层(集成测试):包括多态服务测试和展平测试
- 系统层(系统测试)
自动化测试
- 提高测试执行的速度
- 提高运行效率
- 保证测试结果的准确性
- 连续运行测试脚本
- 模拟现实环境下受约束的情况
软件调试方法
- 蛮力法:主要思想是“通过计算机找错”,低效,耗时
- 回溯法:从出错处人工沿控制流程往回追踪,直至发现出错的根源。复杂程 序由于回溯路径多,难以实施
- 原因排除法:主要思想是演绎和归纳,用二分法实现
软件调试与测试的区别
- 测试的目的是找出存在的错误,而调试的目的是定位错误并修改以修正错误
- 调试是测试之后的活动,测试和调试在目标、方法和思路上都有所不同
- 测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未 知的条件开始,结束的过程不可预计
- 测试过程可以事先设计,进度可以事先确定;调试不能描述过程或持续时间
验证与确认
- 验证是指在软件开发周期中的一个给定阶段的产品是否达到在上一阶段确立的需求 过程
- 确认是指在软件开发过程结束时对软件进行评价以确定它是否和软件需求相一致的 过程
- 测试是指通过执行程序来有意识地发现程序中的设计错误和编码错误的过程。测试 是验证和确认的手段之一
质量保证与质量控制
- 质量保证一般是每隔一定时间(例如,每个阶段末)进行的,主要通过系统的质量审计和过程分析来保证项目的质量
- 质量控制是实时监控项目的具体结果,以判断它们是否符合相关质量标准,制订有效方案,以消除产生质量问题的原因
- 一定时间内质量控制的结果也是质量保证的质量审计对象.质量保证的成果又可以指导下一阶段的质量工作,包括质量控制和质量改进
CMMI
配置管理
- IEEE对配置项的定义为硬件、软件或二者兼有的集合,为配置管理指定的,在配置管理过程中作为一 个单独的实体对待,可作为配置项管理的有:外部交付的软件产品和数据、指定的内部软件工作产品 和数据、指定的用于创建或支持软件产品的支持工具、供方/供应商提供的软件和客户提供的设备 /软件。
- 典型品置项包括项目计划书、需求文档、设计文档、源代码、可执行代码、测试用佩运行件所需 的各种据,它们经评审和检査通过后进入软件配置管理
- 开发库(动态库、程序员库、工作库;动态系统、开发者系统、开发系统、工作空间)
- 受控库(主库、系统库;主系统、受控系统)
- 产品库(备份库、静态库、软件仓库;静态系统)
软件开发环境与工具
系统运行与评价
- 系统转换计划
- 软件维护
- 系统审计
- 系统评价
新旧系统的转换策略
数据的转换与迁移
运行与维护
软件维护是生命周期的个完整部分,可以将软件维护定义为需要提供软件支持的全 部活动,这些活动包括在交付前完成的活动,以及交付后完成的活动。交付前完成的 活动包括交付后运行的计划和维护计划等;交付后的活动包括软件更改,培训、帮助 资料等
可维护性
- 易分析性
- 易改变性
- 稳定性
- 易测试性
维护类型
- 改正性维护(25%)
- 适应性维护(20%)
- 完善性维护(50%)
- 预防性维护(5%)
系统审计
系统评价
- 系统性能评价
- 系统效益评价
- 系统建设评价
- 确定评价对象,下达评价通知书,组织成立评价工作组合专家咨询组
- 拟定评价工作方案,收集基础资料
- 评价工作组实施评价,征求专家意见和反馈给企业,撰写评价报告
- 评价工作组将评价报告报送专家咨询组复核,向委托人送达评价报告和选 择公布评价结果建立评价项目档案