软考05:软件工程基础知识(待更)

一、软件工程概述
1、软件生存周期
包括可行性分析、项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动
(1)可行性分析:主要确定软件的开发目标和可行性
(2)需求分析:主要解决做什么的问题
(3)概要设计:如系统框架设计,数据库设计
(4)详细设计:要把功能转变成精细的、结构化的过程
(5)程序编码时,必须要制定统一的、符合标准的编写规范,以保证程序的可读性、易维护性、提高程序的运行效率
(6)软件测试:在软件设计完成以后要经过严密的测试
(7)维护:包括纠错性维护和改进性维护两个方面
2、软件过程
(1)软件过程能力评估的意义
(2)软件能力成熟度模型简介(CMM)
分为五个成熟度级别:初始级、可重复级、已定义级、已管理级和优化级
(3)统一过程(UP)
是一种“用例和风险驱动,以架构为中心,迭代并且增量”的开发过程
统一过程包括五个阶段,初始阶段、精化阶段、构建阶段、移交阶段、产生阶段
二、软件开发模型
1、瀑布模型
该模型给出了软件生存周期各阶段的固定顺序,上一阶段完成后才能进入下一阶段,整个流程就像流水下泻
2、增量模型
3、演化模型
4、螺旋模型
螺旋模型包括四个方面的活动,制定计划,风险分析,实施工程,客户评估
5、喷泉模型
该模型主要用于描述面向对象的开发过程
6、基于构件的开发模型
基于构件的开发是指利用预先包装的构件来构造应用系统
7、变更控制
配置数据库可以分三类,开发库、受控库、产品库
8、形式化方法的模型
主要活动是生成计算机软件形式化的数字规格说明
三、软件开发方法
1、结构化方法
(1)结构化方法由结构化设计、结构化分析、结构化程序设计构成,它是一种面向数据流的开发方法
(2)结构化方法总的指导思想是自顶而下、逐层分解,其基本原则就是功能的分解和抽象
2、Jackson方法
(1)是一种面向数据结构的开发方法(JSP方法),是以数据结构作为驱动的,适合于小规模的项目
3、原型化方法
开发原型化系统首先要确定用户需求,开发原始模型,然后征求用户对初始原型的改进意见,并根据意见修改原型
4、敏捷方法
总体目标是通过尽可能早的、持续的对有价值的软件的交付使客户满意
5、面向对象的开发方法
四、需求分析
1、软件需求
(1)功能需求
(2)性能需求
(3)用户或人的因素
(4)环境需求
(5)界面需求
(6)文档需求
(7)数据需求
(8)资源使用需求
(9)安全保密需求
(10)可靠性需求
(11)软件成本消耗和开发进度需求
(12)其他非功能性要求
2、需求分析原则

3、需求工程
可细分为需求获取、需求分析与协商、系统建模、需求规约、需求验证以及需求管理
五、系统设计
1、概要设计的基本任务
1)设计软件系统总体结构
2)数据结构以及数据库设计
3)编写概要设计文档
4)评审
2、详细设计的基本任务
(1)对每个模块进行详细的算法设计
(2)对模块的数据结构进行设计
(3)对数据库进行物理设计,即确定数据库的物理结构
(4)其他设计
(5)编写详细的设计说明书
(6)评审
六、系统测试
1、系统测试与调试
(1)系统测试的意义和目的
系统测试是为了发现错误而执行程序的过程
应包括软件测试、硬件测试、网络测试
(2)测试过程:通常包括制订测试计划、编写测试大纲、根据测试大纲设计和生成测试用例、实施测试和生成测试报告
2、测试策略和测试方法
(1)软件测试策略
1)单元测试
也称模块测试,在模块编写完成且无编译错误后就可以进行
2)组装测试
3)确认测试
4)系统测试

(2)测试方法
静态测试和动态测试
静态测试是指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测
动态测试是指通过运行程序发生错误
3、测试面向对象软件
4、测试web引用
(1)质量维度
(2)webapp测试策略
5、调试
七、软件项目开发管理
1、成本估算
2、进度管理
3、软件项目的组织
4、风险管理
(1)风险识别
(2)风险预测
(3)风险评估
(4)风险控制
八、软件质量
1、软件质量特性
(1)可靠性
(2)易使用性
(3)效率
(4)可维护性
(5)可移植性
(6)功能性
2、软件质量保证
3、软件评审
4、软件容错技术
5、软件配置管理
九、软件度量
1、软件度量分类
2、软件复杂性度量
(1)程序复杂性度量原则
(2)McCabe度量法
十、软件工具和软件开发环境
1、软件工具
2、软件 开发环境

猜你喜欢

转载自blog.csdn.net/weixin_37411471/article/details/89108040