软件工程复习重点
- 格式:docx
- 大小:27.79 KB
- 文档页数:16
软件工程复习重点
三大块内容:
软件危机与软件工程
传统软件开发方法
面向对象方法
一、软件危机与软件工程:
软件、软件危机、软件生存期、软件开发模型、软件管理
1、软件:软件是能够完成预定功能和性能的可执行的计算机程序
+使程序正常运行所需要的数据
+描述软件开发过程及其管理、程序的操作和使用的有关文档。
文档:分开发、管理、用户、维护文档,作用是记录及解决不可视性、通
信与交流、管理与维护、用户服务
2、软件危机
a)表现:软件成本高、难于控制开发进度、软件工作量估计困难、软件质量低、
软件修改维护困难
b)原因:需求问题(描述不精确、理解不一致)、管理问题、方法和工具问题、软
件本身的特点
3、软件生存期:
a)三个时期:定义时期(软件计划、需求分析)—>开发时期(软件设计、编码实现、
测试)—>使用和维护时期(维护)
b)六个阶段:软件计划→需求分析→设计→编码→测试→使用与维护
c)生命周期方法特点:顺序性、依赖性,推迟程序的物理实现、质量保证的观点
(利于尽早发现错误,如阶段文档、评审) 4、软件开发模型
a)瀑布模型:文档驱动
i.阶段划分、分而治之、控制开发过程的复杂性
ii.自顶向下、由抽象到具体,顺序进行
优点:规范管理开发过程、文档驱动
缺点:初期系统的需求难以完全确定、文档驱动、周期长
b)原型模型:
i.针对:软件开发初期需求难以确定
ii.基本思想:快速建立原型,完善用户需求
iii.优点:用户参与、快速
iv.缺点:快速弱功能、对开发环境要求高
c)螺旋模型(风险驱动)
d)增量模型(模块、功能驱动)
e)迭代模型
f)喷泉模型
5、软件管理
a)区别于其他工业产品生产管理的特点
b)主要内容:开发计划与进度管理、文档管理、人员组织管理、成本管理、质量
管理
二、传统软件工程方法:
a)软件计划
i.问题定义
ii.可行性研究
1.经济可行性
2.技术可行性
3.法律可行性
b)需求分析
i.结构化分析SA
ii.面向数据流的分析方法 1.DFD四个组成部分(表示方法、命名)
2.DFD作图:需求描述→DFD
3.层次分解法(保持父图和其子图的平衡)
4.数据字典(符号)
c)软件设计
i.总体设计
1.模块独立性:高内聚
2.作用域是控制域的子集
3.单入单出
4.规模、深度、宽度、扇入、扇出适当
ii.传统设计方法
1.面向数据流的设计方法(数据流图)
a)结构化设计SD-→对应有SD结构化需求分析、SP结构化实现
b)DFD→软件结构(层次图)
i.变换设计
ii.事务设计
c)优缺点
2.面向数据结构的设计方法
a)Jackson方法
b)Jackson图
i.三种元素间的逻辑关系:顺序、选择、重复
ii.可描述两种数据结构:数据结构、程序结构
c)思想:数据结构与程序处理过程相互转换
d)步骤:I/O DS→对应关系→Program Structure→细化求精
e)优缺点:
i.数据入手
ii.简化数据处理程序的设计
iii.模块与独立性原则没有给予应有的重视
iv.求提供对复杂系统设计过程的支持
3.Parnas方法 iii.详细设计
1.结构化程序设计SP
a)高效率---良结构
b)三种基本控制结构、单入单出
2.过程设计的工具
d)实现/编码
i.语言
1.功能等价
2.描述问题方便性有差异
a)例如:OOPL---非OOPL
ii.程序设计风格
e)软件测试
i.目标
ii.方法
1.正确性证明
2.静态测试
3.动态测试
a)黑盒(功能)测试
i.等价类划分
ii.边界值分析
iii.错误推测
b)白盒(结构)测试
i.语句覆盖
ii.判定覆盖
iii.条件覆盖
iv.判定—条件覆盖
v.条件组合覆盖iii.步骤
f)软件维护
i.四种类型
1.校正性 2.适应性
3.完善性
4.预防性
ii.提高可维护性的措施
三、面向对象方法(Object-oriented Method)
a)OOM与CM对比:区别—优点
i.思维方式iv. 稳定性
ii.可重用性v. 可维护性
iii.大型软件
b)OOSE方法
i.三个阶段、五个模型、
/doc/c3615324ef06eff9aef8941ea76e58fafab045eb.html E CASE
第二章.传统软件工程方法:软件计划
具体任务:项目定义、可行性分析、软件计划
其中:可行性分析:
1、可行性研究实质:可行性研究试一次大大压缩和简化了的系统分析和设计过程,也
就是在较高层次上以较抽象的方式进行的系统分析和设计过程。
2、主要内容:
a)经济可行性:资金有无落实、成本—效益分析
b)技术可行性:开发的风险、资源的有效性、技术方案
c)操作可行性:用户组织内的管理制度、人员素质、操作方式等是否可行。
d)法律及社会可行性
e)开发方案的选择:折衷手段权衡。
3、可行性研究的主要步骤:
a)复查系统规模
b)研究正在使用的旧系统
c)导出高层逻辑模型 d)重新定义问题
e)导出多种解法
f)推荐行动方针
g)草拟开发计划
h)书写文档并提交审查
系统流程图(物理建模工具):会读、读懂。
数据流图:
概述
描绘系统的逻辑模型的工具
DFD: Data Flow Diagram
描绘信息流和数据从输入移动到输出的过程中所经
受的变换
数据从哪里来,到哪里去,经过怎样的处理,保存在哪里?没有任何具体的物理部件,只是描绘数据在软件中
流动和被处理的逻辑过程。是系统逻辑功能的图形表示。
是分析员和用户沟通的工具是后期设计的出发点
DFD的绘制一般采用自顶向下、逐步细化的方法,主要步骤如下:
·明确系统界面。识别出那些不受系统控制但又影响系统运行的外部环境。
·绘制基本系统模型。
基本系统模型由若干源点、终点和一个基本处理组成,表明系统对数据加工变换的基本功能。·逐层细化基本系统模型得到功能级DFD和详细DFD。下面即分层数据流图。
假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据;零件编号零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。
从问题描述中提取数据流图的四种成分。
首先考虑数据的源点和终点:
“采购部每天需要一张定货报表”
“通过放在仓库中的CRT终端把事务报告给定货系统”
可知:
采购员是终点
仓库管理员是源点
接下来考虑处理:
“采购部每天需要一张定货报表”--采购部需要报表
“零件入库或出库称为事务,通过放在仓库中的
CRT终端把事务报告给定货系统。”--事务的后果是改变库存量
可知:
产生报表是一个处理
处理事务是另一个处理
最后考虑数据流和数据存储:
系统把定货报表送给采购部----定货报表
事务需要从仓库送到系统中----事务----需把事务数据存储起来
产生报表和处理事务在时间上不匹配, 当某种零件的库存数量少于库存量临界值时就应该再次定货,而每天打印一次定货报表-----需把定货信息存储起来
可知:
定货报表、事务是数据流(数据流如报表包含零件编号零件名称、定货数量、目前价格、主要供应者和次要供应者等信息。事务包含零件编号、事务类型、数量等。)
库存清单、定货信息是数据存储
基本系统模型:
功能数据流图:注意符号
进一步分解处理事务:
命名
1)为数据流(或数据存储)命名
名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分
不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)
如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的
2 )为处理命名
通常先为数据流命名,然后再为与之相关联的处理命名,体现了人类习惯的“由表及里”的思考过程
名字应该反映整个处理的功能
名字最好由一个具体的及物动词,加上一个具体的宾语组成。
通常名字中仅包括一个动词
如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解
应注意的问题
1 )是数据流不是控制流
画数据流不是控制流;数据流图反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。
2 )一般不画物质流
数据流反映的是能用计算机处理的数据,并不是实物,因此系统的数据流图上一般不要画物质流。
3 )加工的画法
每个加工至少有一个输入数据