软件工程复习重点

  • 格式: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 )加工的画法

每个加工至少有一个输入数据