知识点:软件工程
2021-04-07 20:03:15 3 举报
AI智能生成
软件工程知识点脑图,包含整本书的大部分重点知识
作者其他创作
大纲/内容
第四章 软件需求分析之面向对象分析方法
习题
对象的基本特征:封装、继承、多态
对象有如下一些基本特点,即标识唯一性、分类性、多态性、封装性和模块独立性。
面向对象分析模型包括:对象模型、动态模型和功能模型
第五章 软件项目之系统设计
开发阶段由设计、编码和测试3个环节组成
两种主要设计方法
结构化软件设计
面向对象软件设计
第二节 结构化的软件设计
结构化的软件设计方法是一种面向<font color="#c41230">数据流</font>的设计方法
系统设计的基本任务
体系结构设计
模块设计
数据结构和算法设计
用户界面设计
数据类型
变换型
数据处理过程
1.输入数据
2.变换数据
3.输出数据
变换分析
遵循高内聚、低耦合
过程
1.重新分析数据流图
2.找出系统的逻辑输入、逻辑输出和中心变换部分
3.给软件结构分层
事务型
事务分析
1.明确事务源
2规划适当的事务型结构
3建立事务处理模块
4定义操作模块实现的全部细节模块
<font color="#c41230">实施步骤</font>
1.首先研究、分析和审查数据流图
2.根据数据流图决定问题的类型
3.针对不同的类型分别进行分析
4.由数据流图推导出系统的初始结构图
5.改进初始结构图
第三节 面向对象设计概述
系统设计
目标是<font color="#c41230">表示软件体系结构</font>
对象设计
着重<font color="#c41230">对象及其交互的描述</font>
设计过程
系统设计
首要任务
从面向对象分析的各个模型导出相应的子系统
包括
业务需求子系统设计
用户管理界面子系统设计
任务管理子系统设计
数据管理子系统设计
类及对象设计
消息设计
复审设计模型
<font color="#c41230">对象的三要素</font>
属性
方法
事件
第五节 类的设计
类图是系统的静态模型
习题
<h2>传统的软件设计任务包含两个阶段</h2>
概要设计
第一节 概要设计
步骤
设计系统方案
选取合理方案
推荐最佳方法
功能分解
软件结构设计
数据库设计、文件结构设计
制定测试计划
详细设计
第六章 详细设计
详细设计文档最重要的部分是:模块的<font color="#c41230">流程图、状态图、局部变量及相应的文字说明</font>
<font color="#c41230">详细设计的基本任务</font>
数据结构和算法设计
物理设计
性能设计
其他设计
编写详细的设计说明书
主要任务;<font color="#c41230">确定每个模块的算法和使用的数据结构</font>
详细设计工具
图形工具
表格工具
语言工具
<font color="#c41230">传统的软件设计工具有</font>
流程图
N-S图
PDL伪代码
<font color="#c41230">面向对象设计的原则</font>
信息隐藏
强内聚
低耦合
可复用
类与类之间的联系
关联(对象之间具体关系的抽象)
聚集(整体和部分)
泛化(一般和特殊)
依赖(两个模型之间的连接)
任务管理:就是建立将子系统组织成任务的基础设施,来管理任务并发
对象设计强调
第八章 软件测试与维护
软件的测试
分类(根据程序是否运行)
静态测试
动态测试
<font color="#c41230">白盒测试(主)</font>
逻辑覆盖法
路径覆盖法
黑盒测试(辅)
流程
1.单元测试
2.集成测试
3.确认测试
4.系统测试
5.验收测试
6.书写软件测试报告
测试的目的
<font color="#c41230">以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷</font>
软件的维护
维护工作包括
改正性维护
适应性维护
完善性维护
习题
以消除瓶颈为目的的测试是:<font color="#c41230">性能测试</font>
逻辑覆盖功能最弱的是:<font color="#c41230">语句覆盖</font>
导致软件缺陷最主要原因的是:<font color="#c41230">软件需求说明书</font>
软件维护费用很高的原因是:<font color="#c41230">生产率低</font>
软件可维护性指软件能够被维护人员<font color="#c41230">理解、校正、适应及增强功能</font>的程度。
第一章 软件工程导论
开发软件不等于编写程序
软件工程层次结构中,包括:<font color="#c41230">工具层、方法层、过程和技术层和质量保证层</font>
<b><font color="#c41230">对软件进行的描述:计算机程序方法、规则和相关文档资料以及在计算机上运行时所必需的数据</font></b>
<h1></h1><h3></h3><h4></h4><h5><font color="#c41230">软件危机:</font><br></h5>
<font color="#c41230">是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。</font>
<font color="#c41230">主要表现</font>
<ol><li>软件开发<font color="#c41230">进度</font>难以预测<br></li></ol>
2.开发<font color="#c41230">成本</font>难以控制
3.用户对<font color="#c41230">产品功能</font>难以满足
4.软件<font color="#c41230">质量</font>无法保证
5.软件产品难以<font color="#c41230">维护</font>
6.软件缺少适当的文档资料
产生原因
用户<u><font color="#c41230">需求</font></u>不明确
开发<u><font color="#c41230">规模</font></u>越来越大
<font color="#c41230">复杂</font>度越来越高
缺乏正确的<font color="#c41230">理论指导</font>
软件特点
计算机软件是一种逻辑实体,而不是物理实体
没有磨损、老化等问题
开发和运行受计算机系统的限制
尚未摆脱手工开发方式
复杂
昂贵
软件特性
功能性
可靠性
易用性
效率性
可维护性
软件可移植性
按照工作方式分
实时
分时
交互式
批处理
按照功能划分
系统软件
支撑软件
应用软件
<font color="#c41230"><b>软件生存期</b></font>
1.计划
2.需求分析
3.设计
4.程序编写
5.测试
6.运行维护
<b><font color="#c41230">瀑布模型</font></b>
定义阶段
计划
需求分析(出错对软件影响最大)
开发阶段
设计
编码
测试
维护阶段
运行维护
面向对象和结构化设计区别
1<font color="#c41230">.面向对象自底向上设计,结构化自顶向下设计</font>
2.面向问题 ,面向过程
3.可扩展性好,可扩展性差
习题
软件开发约需付出<font color="#c41230">40%</font>工作量进行测试和排错
软件开发方法是:<font color="#c41230">指导软件开发的一系列规则和约定</font>
生存周期时间最长是“<font color="#c41230">维护</font>”
瀑布模型特点:<font color="#c41230">将开发过程严格地划分为一系列有序的活动</font>
软件开发技术包括:<font color="#c41230">软件开发方法学、软件工具和软件工程环境</font>
在面向对象概念中,<u><font color="#c41230">消息传递</font></u>是其与外部世界相互管理的唯一途径。
第三章 软件需求分析之结构化分析方法
第一节 可行性分析
1.经济可行性<br>
2.技术可行性
3.操作可行性
4.法律可行性
5.使用可行性
6.社会环境的可行性
第二节 需求分析
分类
1.功能需求
2.性能需求
3.可靠性和可用性需求
<font color="#c41230">步骤</font>
1.问题识别
2.分析与综合
3.制定规格说明
4.评审
第五节 需求分析评审
步骤
规划
准备
召开审查大会
修改缺陷
重审
验证内容
有效性
实现性
完整性
一致性
分析方法
功能分解方法
<font color="#c41230">结构化分析方法</font>
数据流图
数据字典
信息建模法
E-R图
面向对象法
对象模型
动态模型
功能模型
第四节 结构化分析方法
最成熟、应用最广泛
基本思想:<font color="#c41230">“分解”和“抽象</font>”
结构化分析方法使用的工具:借用数据字典、结构化语言、判定表、判定树等工具对它们进行详细说明。
习题
软件需求分析,可以把<font color="#c41230">软件的功能和性能</font>的总体概念描述为具体的软件
第七章 软件实现
结构化程序
<font color="#c41230">三种基本控制结构</font>
顺序
选择
循环
0 条评论
下一页