没有合适的资源?快使用搜索试试~ 我知道了~
软件工程思维导图pdf版
5星 · 超过95%的资源 需积分: 0 9 下载量 147 浏览量
2024-01-19
18:31:31
上传
评论
收藏 1.62MB PDF 举报
温馨提示
试读
1页
该图片为pdf版,有需要的可以导出xmind版
资源推荐
资源详情
资源评论
软件工程导论
软件工程学概述
软件危机
出现特征:“软件作坊”
1
计算机软件的开发和维护过程中所遇到的一系列严重问题
简介
2
忽视软件需求分析的重要性,
对用户要求没有完整的认识,
轻视维护
产生原因
3
软件工程
软件工程的中心课题是控制复杂度
4
软件工程方法学
传统方法学
面向对象学
软件生命周期
各个时期一定要知晓
5
软件定义
问题定义
可行性研究
需求分析
软件开发
总体设计
详细设计
编码与单元测试
综合测试
系统设计
系统实现
运行维护
改正性维护
适应性维护
完善性维护预防性维护
软件过程
瀑布模型
更为重要
6
具有顺序性,依赖性
推迟实现
质量保证
特点
快速原型模型
反应用户主要需求的原型系统
定义
7
快速
本质
8
增量模型
短时间内向用户提交可完成部分工作的产品
使用户有足够充足的时间学习和适应新产品
软件结构必须开放
缺点
优点
螺旋模型
加入风险分析的快速模型
9
风险分析即是它的优点也是它的缺点
喷泉模型
迭代和无缝
特性
随时加各种信息,审核难度增加
缺点
敏捷过程 使软件开发团队具有高效工作和快速响应变化的能力
可行性研究
以最小的代价在尽可能短的时间内确定问题是否可以解决
目的
10
技术可行性
经济可行性
操作可行性
数据流图与数据字典共同定义了新系统的逻辑模型
流程图
系统流程图表达的是数据在各部件之间的流动情况,而不是对数据进行加工处理的控制过程
概括的描绘物理系统的传统工具
11
因对下列元素进行定义:
数据流
数据元素
数据存储
处理
数据流图描绘着数据在软件中流动和被处理的逻辑过程
源点,终点
处理
任何改变数据的操作
12
数据存储
数据流
4种成分
数据字典
数据流图中包含的所有元素的定义的集合
内容
(1)数据流
(2)数据流分量(即数据元素)
(3)数据存储
(4)处理
与系统流程图一样
成本估计
货币的时间价值
投资回收期
使累计的经济效益等于最初投资所需要的时间
13
F = P*(1+i)的n次方
年利率为i,现在存入P元,n年后可以得到的钱
14
从这三个方面来进行可行性研究
需求分析
需求分析阶段结束之前,分析员应该写出软件需求规格说明书
需求分析的任务
功能需求
性能需求
可靠性和可用性需求
可靠性:规定时间内错误不能发生的次数
15
出错处理需求
接口需求
约束
逆向需求
将来提出的需求
分析系统的数据要求通常采用建立数据模型的方法
与用户沟通获取需求的方法
访谈
需要访问大量人员时,,利用调查表访问最佳
16
正式访谈
非正式访谈
区别:需不需要提前准备问题
分析建模
数据模型
功能模型
行为模型
实体联系图:
建立数据模型,描述数据对象及数据对象之间的关系
数据模型包含三种相互关联的信息:①数据对象,②数据
对象的属性,③数据对象彼此间相互连接的关系
17
数据流图: 描绘数据在软件中的移动,变换及相应功能,建立功能模型的基础
状态转换图: 描绘系统的状态和状态间的转换方式,行为模型 一张状态图中只能表示一个初态,而终态可以有0至多个
层次方框图:用树形结构的一系列的矩形框描绘数据的层次结构
Warnier图
IPO图
验证软件需求的方法
验证需求的一致性
验证需求的现实性
验证需求的完整性和有效性
总体设计
也称为概要设计或者初步设计
18
19
模块化
模块复杂程度越高,工作量也越大
抽象
逐步求精
细化
20
模块独立
内聚 一个模块内部各个元素彼此结合的紧密程度
功能内聚
顺序内聚
通信内聚
过程内聚
时间内聚
逻辑内聚
偶然内聚
耦合 指软件结构内不同模块彼此之间相互依赖(连接)的紧密程度
数据耦合
控制耦合
特征耦合
公共环境耦合
内容耦合
启发式规则
改进软件结构提高模块独立性
模块规模应该适中
21
深度、宽度、扇出、扇入都应适当
模块的作用域应该在控制域之内
①作用域:受该模块内一个判定影响的所有模块的集合
②控制域:这个模块本身以及所有直接或者间接从属于它的模块的集合
③一个设计的好的系统,所有受判定影响的模块应该都从属于做出判定的那个模块
22
力争降低模块接口的复杂程度
设计单入口单出口的模块
出口过多将导致内容耦合
23
模块功能应该可以预测
描述软件结构的图形工具
层次图
HIPO图
结构图
箭头尾部空心圆传递的是数据,实心圆传递的是控制信息
结构图的基本符号
面向数据流的设计方法
变换流
信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通
过变换中心,经加工处理以后在沿输出通路变换成外部形式离开软件系统
事务流
数据沿输入通路到达一个事务中心,事务中心根据输入数据的类型在若干个动作
序列中选出一个来执行
详细设计
过程设计的工具
程序流程图 描述直观,便于初学者掌握
盒图 表示模块的层次结构
PAD图 具有def细化功能
判定表 清晰的表示复杂条件组合与应做的动作之间的对应关系
判定树
过程设计语言(PDL) 也称为伪码
面向数据结构的设计方法 Jackson图
顺序结构
选择结构
重复结构
程序复杂程度的定量度量
将程序流程图映射成流图
计算环形复杂度方法
①流图中线性无关的区域数
②环形复杂度V(G)=E-N+2,其中E是流图中边的条数,N是结点数
③V(G)=P+1,P为流图中的判定结点数
实现
将编码与测试统称为实现
软件测试
目标
(1)为了发现程序的错误
(2)好的测试方案极可能是迄今为止尚未发现的错误
(3)成功的测试是发现了尚未发现的错误
测试方法
白盒测试法(适用于开发者)
测试产品内部的工作流程
24
黑盒测试法(适用于用户)
测试产品功能
25
步骤
(1)模块测试(也称为单元测试,通常使用白盒测试)
(2)子系统测试
(3)系统测试
(4)验收测试
(5)平行测试
集成测试
自顶向下集成(存根程序)
使用深度优先或者宽度优先,每次使用一个实际模块代替一个存根程序,新结合
的模块往往需要新的存根程序
自底向上集成(驱动程序)
确认测试 验证软件的有效性
白盒测试技术
逻辑测试
语句覆盖 选择足够多的测试数据,使被测程序中的每个语句至少执行一次
判定覆盖
不仅每个语句必须执行一次,而且每个判定的结果至少执行一次
判定表达式的值都可以取到
26
条件覆盖
不仅每个语句至少执行一次,而且判定表达式中的每个条件都取到各种可能的结
果
也就是每个判定条件的两种结果都可以取到,将判定条件列举出来,进行组合,每种条件都
会用到
27
判定/条件覆盖 既可以满足判定覆盖也可以满足条件覆盖
条件组合覆盖 使得每个判定表达式中条件的各种可能组合都至少一次
点覆盖
边覆盖 通常边覆盖和判定覆盖是一致的
路径覆盖
判定覆盖不一定包含条件覆盖,条件覆盖不一定包含判定覆盖
控制结构测试 基本路径测试
黑盒测试方法
等价划分
根据输入域·划分成若干个数据类,分成有效等价类以及无效等价类
设计测试方案时,尽可能的多覆盖有效等价类,但每次只能覆盖一个无效等价类
28
边界值估计 设计测试用例时,选择正好等于,正好小于,正好大于边界值的数据
错误推测
调试
调试是在测试发现错误之后排除错误的过程
调试途径
蛮干法
回溯法
原因排除法
软件可靠性
定义 程序在程序给定的时间间隔内,按照规格说明书的规定成功运行的概率
可靠性与可用性的区别
可靠性意味着0到t这段时间间隔内系统没有失效,而可用性只意味着时刻t程序是
可用的
估计平均无故障时间(MTTF)的方法
MTTF =
K(E(t)/I(t)−E(c)/I(t))
1
也就是(单位长度程序中剩余的错误数)的倒数
29
估计错误总数的方法
(1)植入错误法
人为植入N1个错误,后续测试中发现n1个植入的错误;此外还发现了n个原有的
错误
得出原有错误总数:N=
∗
n1
n
N 1
(2)分别测试法
维护
基本任务 保证软件在一个相当长的时期能够正常运行
开始 软件交付
软件维护的定义
改正性维护
适应性维护
完善性维护(软件维护中占比最高)
预防性维护
软件维护的特点
结构化维护
非结构化维护
软件的可维护性
定义 维护人员理解、改正、改动或改进这个软件的难易程度 考简答题
决定软件可维护性的因素
可理解性
可测试性
可修改性
可移植性
可重用性
文档
用户文档
系统文档
面向对象方法学引论
面向对象方法具有4种要点
(1)认为客观世界是由各种对象组成
(2)把所有对象都划分成各种对象类
(3)把若干个对象类组成一个层次结构的系统
(4)对象彼此之间仅能通过传递消息互相联系
面向对象建模
(1)对象模型(描述系统模型) 表示关系的符号
1.关联
(1)普通关联
(2)关联的角色
(3)限定关联
(4)关联类
2.聚焦
表示类与类之间是整体与部分的关系;
通常使用“包含”,“组成”,“分
为。。。。。部分”
30
(1)共享聚焦
(2)组合聚集
3.泛化(继承)
(1)普通泛化
(2)受限泛化
4.依赖和细化
(2)动态模型(描述系统控制结构) 状态图的集合
(3)功能模型(描述系统功能) 由数据流图组成 1.用例图
用例的实例是系统的一种实际使用方法,将用例的实例称为脚本;脚本是系统的
一次执行过程
面向对象分析(OOA)
抽取和整理用户需求并建立问题域精确模型的过程
31
三个子模型与5个层次
三个子模型
静态模型(对象模型)
交互次序(动态模型)
数据交换(功能模型)
5个层次
主题层
类与对象层
结构层
属性层
服务层
面向对象分析7项活动
寻找类与对象
识别结构
识别主题
定义属性
建立动态模型
建立功能模型
定义服务
建立对象模型顺序
1.确定类与对象
2.确定关联
3.划分主题
4.确定属性
建立动态模型顺序
1.编写脚本 目的:保证不遗漏重要的交互步骤,有助于确保整个交互过程的正确性和清晰性
2.设想用户界面
3.画事件跟踪图
4.画状态图
5.审查动态模型
建立功能模型顺序
1.画出基本系统模型图
2.画出功能级数据流图
3.描述处理框功能
面向对象设计
分为系统设计和对象设计
面向对象设计准则
1.模块化 对象就是模块
2.抽象
3.信息隐藏
4.弱耦合
(1)交互耦合 对象之间的耦合通过消息连接来实现
(2)继承耦合 一般化类与特殊类之间耦合的一种形式
交互耦合越松散越好,继承耦合越紧密越好
5.强内聚
(1)服务内聚
(2)类内据
(3)一般-特殊内聚
6.可重用
面向对象设计模型
4大部分
问题域子系统 设计步骤
1.调整需求
2.重用已有的类
3.把问题域类组合在一起
4.增添一般化类以建立协议
5.调整继承层次
6.ATM系统实例
人机交互子系统 三条黄金准则·
1.置用户于控制之下
2.减少用户记忆负担
3.保持界面一致
任务管理器子系统
数据管理子系统
子系统之间的交互方式
(1)客户-供应商关系 单项关系;由客户来调用供应商
(2)平等伙伴关系
软件项目管理
管理三要素
计划
组织
控制
估计软件规模
代码行技术(与语言有关)
最小规模(a)、最大规模(b)、最有可能的规模(c)
公式中的为三种规模的平均值
32
功能点技术
定义了5个特性:
①输入项数(Inp)、②输出项数(Out)、③查询数(Inq)、④主文件数
(Maf)、⑤外部接口数(Inf)
估计步骤
计算未调整的功能点数UFP
计算技术复杂性因子TCF
TCF = 0.65+0.01*DI
计算功能点数FP FP = UTF*TCF
Brooks规律 向一个已经延期的项目增加人力,只会让它更加延期
估计工程进度
最早时刻:从事件号往正向推
最迟时刻(最晚开始时间):反向推
33
计算最迟时刻三条规则:
软件质量 定义 软件与明确地和隐含地定义的需求相一致的程度
尽量做到低耦合,高内聚
尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合
考察点
考概念,名词解释
重点
7项活动,必须要记
考点
要求掌握
注意是取最小值
不同点
内聚程度从高到低
耦合程度从低到高
备注:
1. 出现特征:“软件作坊”
2. 简介
3. 产生原因
4. 定义:软件生命周期全过程中使用的一整套技术方法的集合
包含3个要素:①方法,②工具,③过程
5. 各个时期一定要知晓
6. 更为重要
7. 定义
8. 本质
9. 加入风险分析的快速模型
10. 目的
11. 概括的描绘物理系统的传统工具
12. 任何改变数据的操作
13. 使累计的经济效益等于最初投资所需要的时间
14. 年利率为i,现在存入P元,n年后可以得到的钱
15. 可靠性:规定时间内错误不能发生的次数
16. 需要访问大量人员时,,利用调查表访问最佳
17. 数据模型包含三种相互关联的信息:①数据对象,②数据对象的属性,③数据对象彼此间相互连接的关系
18. 也称为概要设计或者初步设计
19. 就是把程序划分成独立命名且可独立访问的模块
20. 细化
21. ①深度:表示软件结构中控制的层数,它能粗略地标志一个系统的大小和复杂程度
②宽度:软件结构内同一层次的模块总数的最大值
③扇出:一个模块直接控制(调用)的模块数目
④扇入:表示一个模块有多少上级调用它
22. ①作用域:受该模块内一个判定影响的所有模块的集合
②控制域:这个模块本身以及所有直接或者间接从属于它的模块的集合
③一个设计的好的系统,所有受判定影响的模块应该都从属于做出判定的那个模块
23. 出口过多将导致内容耦合
24. 测试产品内部的工作流程
25. 测试产品功能
26. 判定表达式的值都可以取到
27. 也就是每个判定条件的两种结果都可以取到,将判定条件列举出来,进行组合,每种条件都会用到
28. 设计测试方案时,尽可能的多覆盖有效等价类,但每次只能覆盖一个无效等价类
29. 也就是(单位长度程序中剩余的错误数)的倒数
30. 表示类与类之间是整体与部分的关系;通常使用“包含”,“组成”,“分为。。。。。部分”
31. 抽取和整理用户需求并建立问题域精确模型的过程
32. 最小规模(a)、最大规模(b)、最有可能的规模(c)
公式中的为三种规模的平均值
33. 最早时刻:从事件号往正向推
最迟时刻(最晚开始时间):反向推
作 者 : @ f u t u r e | 来 自 : 知 犀 思 维 导 图
资源评论
- 小于学编程.2024-03-11您好,有xmind版的吗
livelywine
- 粉丝: 74
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功