导图社区 C3 软件工程基础
Access计算机二级第三章基础框架分享,包括软件工程基础基本概念、结构化分析SA方法、软件设计等内容。
微观经济学第三章企业的生产和成本知识总结,包括生产的概念、生产要素、生产函数、决定因素、时间制约、成本曲线等内容。
微观经济学第一章经济学基础概念知识梳理,包括经济学、微经&宏经、经济学十大原理(最重要的三个)、假设与模型等内容。
曼昆的微观经济学,对经济学入门基础了解知识框架有帮助哟,包括需求、供给和均衡价格、消费者选择、生产函数、公共部门经济学等内容。
社区模板帮助中心,点此进入>>
计算机操作系统思维导图
简单介绍MYSQL数据库软件的基本命令
计算机基础知识
.net学习总结
python基础知识点简单总结
序列类型的方法
管理信息系统
Python3.0入门知识思维导图
java 从入门到精通(第四版本)
软考架构设计师
C3-1 软件工程基础
基本概念
软件是程序、数据、文档的集合
软件是逻辑实体不是物理产品,分为系统软件、应用软件(教务管理系统)、支撑/工作软件
为解决1968年软件危机,提出软件工程学的原理来设计软件
软件工程三要素:方法、工具、过程(支持软件开发各个环节的控制和管理)
软件开发环境是全面支持软件开发全过程的软件工具集合
软件生命周期
计划/定义阶段
问题定义
可行性分析
总体设计/概要分析
详细设计:确定模块内部算法和数据结构
开发阶段
需求分析:确定软件系统功能
编码
测试
维护阶段
软件维护
结构化分析SA方法
常用工具
数据流图DFD
数据流(箭头)
加工(数据处理)
数据存储(文件)
数据源点或终点(外部实体)
数据字典[对数据流图中包含的所有元素定义的集合]
数据流
数据项:不可再分解的数据单位
数据存储
数据加工(处理过程):说明DFD基本加工的处理逻辑
判定树
判定表
分析的最终结果是产生 软件需求规格说明书,whose正确性是最重要的
自顶而下 逐步求精的策略、单入口单出口的控制、模块化、限制使用GOTO语句
强调程序的易读性
软件设计
概要设计/总体设计(系统的总体结构)
两个阶段
系统设计
结构设计
概念
模块
模块化
模块独立性(定性标准)
高内聚[模块功能强度]
低耦合[软件系统结构中各模块间相互联系紧密程度]
图形工具
层次图
矩形框代表模块 方框间连线表示调用关系
HIPO图:层次图+编号
结构图
箭头尾部空心传递的是数据;实心传递的是控制
采用结构化设计SD的方法,把DFD映射为软件结构
变换型数据流图
事务型数据流图
详细设计
结构化程序设计SP是实现自顶向下逐步求精单入口单出口的基本保证,也是详细设计的逻辑结构
求精过程中只使用顺序、选择、循环3种基本控制结构(任何程序都可由这三种构造)
程序流程图PFD/程序框图:方框表示处理步骤 菱形表示逻辑条件 带箭头的线段表示控制流
盒图/N-S图/方框图
PAD(问题分析图)/伪码/结构化语言:自上而下、从左向右的二位树形图
C3-2
软件测试
目的:发现错误
静态测试 包括代码检查、静态结构分析、代码质量度量
动态测试
黑盒/功能测试/数据驱动测试:只在接口处测试。E.g. 等价分类法、边值分析法、因果图法、错误推测法
白盒/结构测试/基本路径测试:细节 内部逻辑 保证所测模块中每一个独立路径至少执行一次。从低到高覆盖标准:语句、判定、条件、判定/条件、条件组合覆盖
测试用例 包括输入值集 和 输出值集
策略【自底向上 逐步集成】
单元测试/模块测试
多白盒,辅以黑盒
驱动Drive模块接收并输出;桩Sub模块返回被测模块需要的信息
集成测试
确认测试
发现需求分析(是否符合需求定义)的错误,验证与用户要求一致。一般黑盒。
系统测试
程序调试/排错/纠错
目的:诊断和改正程序中错误
静态调试:对源程序进行分析
动态调试:设置断点[执行到特定语句或改变特定变量值时,程序停止执行]
调试策略
试探法/强行排错法(猜想错误位置)
回溯法(确定最先发现错误的地方,人工沿控制流往回追踪源程序代码)
原因排除法
对分查找法(关键点附近注入变量正确值,若输出正确,则错误在前半部分)
归纳法(个别推全体)
演绎法(设想可能原因 用已有数据排除不正确假设,精化并证明剩余假设)
回归测试:程序经调试改错后还应再次测试
软件已经交付使用后,为改正错误或满足新需要而修改软件的过程
维护是软件生命周期的最后一个阶段,持续时间最长、花费代价最大的一个阶段
种类:软件性、适应性、完善性(50%-66%)、预防性维护