软件工程(软考)

能力成熟度模型CMM

  • 初始级(杂乱)

  • 可重复级(管理跟踪项目费用

  • 已定义级(文档化、标准化,标准软件过程

  • 已管理级(详细度量标准,产品质量理解控制)

  • 优化级(加强定量分析,持续改进

能力成熟度模型CMMI集成模型有2种表示方法:阶段式模型和连续式模型(0~5级)

阶段式模型

  • 初始的

  • 已管理的

  • 已定义的

  • 定量管理的

  • 优化的

连续式模型

  • 0:未完成的

  • 1:已执行的:将输入工程产品转换输出工程产品

  • 2:已管理的

  • 3:已定义的:标准软件开发

  • 4:定量管理的:改进控制

  • 5:优化的:量化改进

统一过程UP

三大特点:用例和风险驱动、以架构为中心、迭代并且增量

开发四个阶段:起始:生命周期目标、精化:生命周期架构、构建:初始运作功能和移交:产品发布

五个工作流:需求、分析、设计、实现、测试

敏捷统一过程AUP:大型任务连续,小型活动迭代

软件过程模型

  • 瀑布模型(SDLC):结构化方法中模型,一步一步走,直到最后完成项目开发 文档评审 需求变更少 替换系统 优点:需求明确成本低 强调开发早期计划不足:客户必须表达需要,项目结束才知道问题

  • V模型:特点是增加了很多轮测试,并且这些测试贯穿于软件开发的各个阶段质量保证活动

  • 演化模型:尽快投入使用,需求变更

    • 原型模型:需求不明确,为了演示 迅速开发一个能够让用户看得到的框架 迭代开发 系统规模不是很大

    • 螺旋模型:增加了风险分析,适用于开发大型软件 结合瀑布模型和演化模型 动态变化

  • 增量模型:核心功能最先开发,独立可操作作品 适用于商业产品创新模型具有瀑布模型优点 快速构造可运行产品,版本交付时间少 融合瀑布模型和原型模型 不必等到开发完成才使用 开发表示的小系统承担风险小 缺点:规模复杂

  • 喷泉模型:面向对象的开发方法

  • 形式化方法模型:数学基础

软件开发方法

  • 结构化方法:需求明确

  • 结构化方法设计:体系结构设计、数据设计、接口设计(关注模块间连接)和过程设计

  • Jackson方法:面向数据结构,适合于小规模项目

  • 原型方法:需求不明确

  • 面向对象方法:复用性 更适用于复杂项目

敏捷开发

针对中小型项目

  • 结对编程:写代码同时审查代码

  • 自适应开发:适应性

  • 水晶方法:策略、约定、方法论

  • 特性驱动开发:中小型项目迭代开发

  • 极限编程XP:核心沟通、简明、反馈和勇气,文档 考前12个最佳实践回顾 先写测试代码再编写程序

  • 并列争球法SCRUM:冲刺,增量化过程

真题:公司购买工具软件,向客户提供工具软件复制品,侵犯了著作权

甲公司未对该软件注册商标就推向市场,几个月后,乙公司推出其类似软件,并且注册商标,乙公司并不构成侵权行为

受委托方享受著作权

不知情使用他方开发软件也是侵权,不需要责任,但是需要支付费用

软件需求

性能需求:响应时间,执行速度,吞吐量,存储容量控制

功能需求:做什么,什么时候做,修改升级

系统设计

编写概要设计文档:用户手册及修订测试计划,概要设计说明书,数据库设计说明书

详细设计:模块内算法设计、数据库物理设计、数据结构设计

概要设计:数据库物理设计、确定模块接口、数据结构设计

系统测试

系统测试阶段的测试目标来自于需求分析阶段

单元测试高内聚低耦合

单元测试:出错处理 模块接口 局部数据结构 重要执行路径 边界条件

集成测试

自顶向下集成测试:不用编写驱动模块,需要写桩模块 从抽象到具体

自底向上集成测试:从具体到抽象

冒烟测试常用的集成测试方法

测试方法

黑盒测试(功能测试):等价类划分,边界值分析,错误推测,因果图 eg:无法获得源代码

白盒测试(结构测试):关心程序内部和逻辑结构

  • 逻辑覆盖

    • 判定覆盖(分支覆盖):结果满足T/F至少一次

    • 条件覆盖:过程满足T/F至少一次

    • 条件组合覆盖:有几个条件,就有2^n种组合方式,至少出现一次

  • 循环覆盖

  • 基本路径测试

软件复杂性

功能点,代码行,对象点

系统可维护性评价指标

可理解性、可测试性、可修改性

软件维护

完善性维护:改善扩充功能修改

软件可靠性:MTTF/(1+MTTF) MTTF 平均无故障时间 无失效运作概率

软件可用性:MTBF/(1+MTBF) MTBF 平均失效间隔时间

软件可维护性:1/1+MTTR MTTR平均修复时间

Jackson面向数据结构方法

测试计划:需求分析阶段

软件项目管理

  • Putnam估算模型:动态多变量模型

  • 基本COCOMO模型:静态单变量模型

  • 中级COCOMO模型:静态多变量模型

  • COCOMOII模型

    • 应用组装模型:对象点

    • 早期设计阶段模型:功能点

    • 体系结构阶段模型:代码行

关键路径

  • 最早开始时间ES:取前驱活动最早完成时间最大值

  • 最早完成时间EF:最早开始时间+活动本身时间DU

  • 关键路径:项目中耗时最长的一条线路

  • 最晚完成时间LF:取后续活动最晚开始时间最小值

  • 最晚开始时间LS:最晚完成时间-活动本身时间

  • FG松弛时间:最晚开始时间-最早开始时间(或者关键路径-包含FG最长段路径)

程序设计小组的组织方式

  • 主程序员制小组:领头羊,大规模项目

  • 民主制小组:投票,规模小

  • 层次式小组:分级

软件质量管理

ISO/IEC9126软件质量模型:质量特性和子特性

McCall质量模型

软件容错技术

  • 结构冗余

  • 信息冗余:校验码原理

  • 时间冗余

冗余附加技术:实现结构、信息和时间冗余技术所需的资源和技术,包括程序、指令、数据、存放和调动它们的空间和通道等。

  • 屏蔽硬件错误的容错系统

    • 关键程序和数据的冗余存储及调用

软件度量

环路复杂度:假设有向图中有向边数为m,节点数为n,则环路复杂度:m-n+2

流程图:只有出没有入不算边


测试目标:需求分析

划分模块:概要设计

算法设计:详细设计


PERT图不能描述各任务之间的并行情况

配置数据库

开发库 受控库 产品库

软件配置管理

内容:软件配置标识、变更管理、版本控制、系统建立、配置审核、配置状态报告

风险评估:风险参照水准:成本、进度和性能

风险评测:风险发生所产生的后果

风险控制:辅助项目组建立处理风险的策略

风险避免是最好的风险控制策略

风险优先级:风险暴露设定的

可靠性:成熟性、容错性、易恢复性

易使用性:易操作性、易理解性、易学性

可维护性:易分析性、易改变性、稳定性、易测试性

可移植性:适应性、易安装性、一致性、易替换性

功能性:安全性

Mc Call模型:质量特性、评价准则(可维护性,灵活性,可测试性)、度量指标(可移植性、复用性、互用性)

模块结构评审内容:数据流结构、控制流结构、模块结构与功能结构之间的对应关系

正式技术评审目的:发现错误

冗余附加技术:屏蔽软件错误的容错系统(备份程序调用+2个程序关键词

软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具

软件工程三要素:方法,过程和工具

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值