导图社区 软件工程基础
计算机二级客观题软件工程部分知识梳理,包括基本概念、需求分析、软件测试、程序调试、软件设计等等。
社区模板帮助中心,点此进入>>
软件工程基础
基本概念
组成
机器可执行的——程序及有关数据
机器不可执行的——文档
特点
逻辑实体,具有抽象性
没有明显的制作过程
不存在磨损、老化问题
对计算机系统具有依赖性
复杂性高
涉及诸多的社会因素
软件危机(严重问题,无法控制)
软件工程(为了缓解软件危机)3个要素
方法——技术手段
工具——开发、管理和文档生成
过程——各个环节控制、管理
软件过程4个基本活动
软件规格说明——规定限制
软件开发或软件设计与实现——开发软件
软件确认——确认满足要求
软件演进——为满足要求不断演进
软件生命周期
定义——从提出到停止使用退役的过程
3个阶段
1软件定义
1.1可行性研究初步项目计划
需求分析
2软件开发
概要设计
详细设计
实现
测试
3软件运行维护
使用
维护
退役
定义——确定“做什么”
主要工作
需求获取
需求分析——得出解决方案和逻辑模型
得出需求规格说明书
包含软件的功能需求、外部接口、属性及约束条件等
是软件开发工作的基础和依据、软件验收的标准、需求分析的阶段性成果
需求评审
方法
结构化分析方法
概念——对数据流进行分析
常用方法
数据字典(DD)
核心
数据流图(DFD)
判定树和判定表
面向对象的分析方法
软件测试
贯穿整个软件生命周期
目的——发现程序中的错误
从是否需要执行被测软件的角度
静态测试——不实际运行软件,用人的思维发现错误
动态测试——基于计算机的测试,执行程序
从功能角度
黑盒测试(功能测试、数据驱动测试)——依据程序的需求和功能规格说明,不考虑内部结构
主要测试方法:等价类划分法、边界值分析法、错误推测法
白盒测试(结构测试、逻辑驱动测试)——依据程序的内部逻辑
主要测试方法:逻辑覆盖、基本路径测试
步骤
1单元测试(模块内部),2集成测试(模块之间),3确认测试,4系统测试
程序调试
主要在开发阶段
目的——诊断和改正程序中的错误
1错误定位,2修改,3回归测试(防止引进新错误)
强行排错法,回溯法,原因排错法
软件设计
定义——“怎么做”
2个阶段
工具——结构图/程序结构图/系统结构图
上级模块(父节点),从属模块(子节点)
扇入数——上级模块的个数,扇出数——下级模块的个数
深度——层数,宽度——一层有的最大模块数,原子模块——树中的叶子结点
详细设计(过程设计)
工具
图形工具:程序流程图、N-S图、PAD图、HIPO图
表格工具:判定表
语言工具:PDL(伪码)
基本原理
抽象
模块化
信息隐藏
模块的独立性
内聚性——模块内部的紧密程度
耦合性——模块间的紧密程度
两个标准