河南农业大学软件工程考点Word文件下载.docx

上传人:b****6 文档编号:19817195 上传时间:2023-01-10 格式:DOCX 页数:28 大小:451.27KB
下载 相关 举报
河南农业大学软件工程考点Word文件下载.docx_第1页
第1页 / 共28页
河南农业大学软件工程考点Word文件下载.docx_第2页
第2页 / 共28页
河南农业大学软件工程考点Word文件下载.docx_第3页
第3页 / 共28页
河南农业大学软件工程考点Word文件下载.docx_第4页
第4页 / 共28页
河南农业大学软件工程考点Word文件下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

河南农业大学软件工程考点Word文件下载.docx

《河南农业大学软件工程考点Word文件下载.docx》由会员分享,可在线阅读,更多相关《河南农业大学软件工程考点Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。

河南农业大学软件工程考点Word文件下载.docx

4,瀑布模型(WaterfallModel)也称线性顺序模型。

瀑布模型把开发过程分成固定的、相对独立的各个阶段,每个阶段都有确定的、有限的任务,而且在各个阶段采用一些规范的开发方法和管理手段,力求保证软件质量和提高软件生产率。

该模型适用于需求非常清楚的软件开发环境。

图5.瀑布模型

5,原型模型可分为:

快速原型模型、抛弃式原型模型、演化式原型模型

1,

图8.抛弃式原型模型

抛弃式原型模型建立原型的目的是,评价目标系统的某一个或某一些特性,以便更准确地确定需求,或者更严格地验证设计方案。

使用完之后就把该原型系统抛弃掉,然后再重新构造正式的目标系统。

抛弃式原型模型本质上仍属于瀑布模型,建立原型系统只不过是“需求分析”和“有效性验证”的一种辅助手段,需求分析阶段结束时原型系统的生存周期也就终止。

6,增量模型(IncrementalModel)把软件描述、设计、实现活动分解成一系列相互有联系的增量构件的迭代开发,是瀑布模型顺序特征和快速原型模型迭代特征相结合的一种软件构件化的模型。

增量式的开发过程,首先根据客户需要提供的服务的优先次序,确定一系列交付增量,每个增量提供系统功能的一个子集。

随着开发过程的进展,每次迭代产生一个可发布的(可执行的)软件增量构件。

增量模型是一种非整体开发的模型。

是一种进化式的开发过程。

7,螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:

第一,确定目标、方案和限制条件;

第二,评估方案、标识风险和解决风险;

第三,开发确认产品;

第四,计划下一周期工作。

对大型软件,需要多个原型描述系统的生存期,适于螺旋模型开发方法,将瀑布模型与原型化模型结合起来,并加入风险分析讨论。

图11.螺旋模型结构

第三章需求分析

1.软件需求说明书是用户验证的一个标准。

2.需求获取的内容分为:

(了解)

●物理环境:

对系统运行时所处的环境的要求。

●界面:

软件与用户界面的友好性。

●用户或人的因素:

对用户的要求。

●功能:

你的系统什么的干活?

●文档:

文字说明等。

●数据:

对数据的各种要求。

●资源:

软件运行时所需的数据、软件、内存空间等各项资源。

●安全性:

******

●质量保证:

可靠性和如何对付出错等。

3,需求工程的基本活动包括:

●获取需求;

深入实际,在充分理解用户需求的基础上,获取系统需求。

●需求分析与建模;

进行需求建模、对模型或原型进行分析。

●确认需求;

确保需求说明准确、完整地表达系统的主要特性。

●进化需求。

客户的需要总是不断(连续)增长的,进化需求是必要的。

4,需求分析方法

1.结构化分析方法

是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示。

2.信息建模法

是从数据的角度对现实世界建立系统的信息模型,基本工具是ER图。

是由实体、属性和关系组成的网络图。

E-实体,是一个或一组对象;

R-关系,实体之间联系或交互作用。

3.面向对象的分析方法

面向对象分析方法(OOA)的关键是识别问题域内的对象,分析它们之间的关系,并建立起三类模型。

5,结构化需求分析方法

在结构化需求分析方法中模型表示工具有:

数据流图、数据字典、小说明。

●数据流图:

是一种描述数据变换的图形工具,系统接受输入的数据,经过一系列的变换(加工),最后输出结果。

●数据字典:

以一种准确的和无二义的方式定义所有被加工引用的数据流和数据存储。

●小说明:

用于集中描述一个加工“做什么”。

●数据流图在数据流图中,加工、数据流、数据存储、数据源和数据谭是数据流图的基本成分。

6,数据字典

包含:

●数据流条目;

数据存储条目;

数据项条目

7,实施步骤结构化分析从本质上说是一种抽象和分解技术,“自顶向下、逐步求精”的过程。

有了工具后(数据流图、数据字典、小说明),我们来看看如何进行结构化分析:

1确定系统边界,画出系统环境图。

2自顶向下,画出各层数据流图。

3定义数据字典。

4定义小说明。

5汇总前面各步骤的结果。

8,需求的可变性必须进行验证。

9,需求验证的内容1有效性检查—指功能需求是否符合用户所提出的需求。

2一致性检查—系统功能描述及约束是否一致。

3完备性检查—是否包含所有系统用户的需求和约束。

4可检验性检查—是否能设计出一组验证方法,确定了检验的标准。

10,需求分析规格说明书是需求分析阶段产生的一份最重要的文档,它以一种一致的、无二义的方式准确的表达用户的需求。

有如下作用:

1、作为软件开发机构和用户之间一份事实上的技术合同书。

2、作为软件开发机构下一步进行设计和编码的基础。

3、作为测试和验收目标系统的依据。

第四章软件设计

1,软件设计任务涉及多方面,可分为总体设计和详细设计。

2,软件设计的目标(如下图所示)就是构造一个高内聚低耦合的软件模型。

3,软件体系结构确定了系统的组织结构和拓扑结构。

体系结构设计是软件设计的第一个阶段,该阶段侧重于系统宏观结构的设计,而不关心模块的内部算法。

4,软件设计分为总体设计和详细设计两个阶段。

其工作流程可用下图表示:

设计阶段结束要交付的文档是设计说明书,根据设计方法的不同,有不同的设计文档。

图33.软件设计工作流程

每个设计步骤完成后,都应进行复审。

5,以下经过长期考验的设计准则:

软件结构的准则;

模块化准则;

软件独立性准则。

1.软件结构的准则:

软件结构表示软件的系统结构,是软件模块间关系的表示,均表示为层次关系。

图34.软件结构示意图

有关指标:

①深度:

表示软件结构中从顶层模块到最底层模块的层数;

②宽度:

表示控制的总分布;

③扇出数:

指一个模块直接控制下属的模块个数;

④扇入数:

指一个模块的直接上属模块个数。

一个好的软件结构的形态准则是:

顶部宽度小,中部宽度最大,底部宽度次之;

在结构顶部有较高的扇出数,在底部有较高的扇入数。

2,模块化准则:

所谓模块化就是将系统划分成若干模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,以满足所要求的整个系统的功能。

我们利用模块化来降低软件复杂度。

注意选择分解的最佳模块数。

3,软件独立性准则:

软件独立性的含义是指开发具有功能专一,模块之

无过多相互作用的模块。

又称为模块独立性准则。

这种类型的模块可以并行开发,开发容易,能减少错误的影响,使模块容易组合、修改及测试。

软件独立性的度量标准是两个定性指标:

耦合性和内聚性。

(1)耦合性

用于描述模块之间联系的紧密程度。

耦合性的几种类型:

图35.耦合性的几种类型

从三个方面衡量块间联系大小:

●方式(直接或间接)

●类型(数据型、控制型、混合型)

●数量(数量越大,块间联系越紧密。

图36.三个方面间的联系

(1)内聚性用于描述模块内部联系的紧密程度。

内聚性的几种类型:

图37.内聚的类型

6,从系统设计的角度出发,软件设计方法可分为3大类:

1,面向数据流的设计;

2,面向数据结构的设计,3,面向对象的设计。

7,结构化设计方法分为两部分:

总体设计和详细设计。

●总体设计:

确定系统的整体模块结构。

任务:

解决系统的模块结构,即分解模块,确定模块功能及系统模块的层次结构。

文档:

模块结构图及其模块功能说明。

1.总体设计的目标:

是把系统的功能需求分配给软件结构,形成软件的模块结构图。

如图38所示:

2.总体设计的表示形式

层次图:

总体设计常用的表示方法,用来描绘软件的层次结构。

HIPO图:

H图+IPO图。

结构图:

精确表达程序结构的图形表示方法。

(模块之间上下的联系是调用关系)

图38.软件的模块结构图

3,结构化设计方法可以把数据流图变换成软件结构。

⑴从DFD图导出初始的模块结构图(SC):

中心变换型(transformcenter)_变换分析;

事务处理型(transaction)_事务分析。

⑵按照SD法设计总则,改进模块结构图。

注意:

模块结构图不同于“框图”。

软件层次性:

反映软件整体的性质(结构图)

过程性:

反映局部的性质(框图)

4,中心变换型的DFD图:

这类数据流图可看成是对输入数据进行转换而得到输出数据的处理。

DFD图可以明显分为“输入—处理—输出”三部分。

5,设计的准则:

(1)好的设计的准则:

模块化;

抽象;

耦合;

内聚

耦合性是程序结构中各个模块之间相互关联的度量,他取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。

模块化设计的目标是希望建立模块间耦合尽可能松散的系统。

(耦合性最松散的是数据耦合)

内聚是模块内部各成分之间相互关联的强度。

应尽量增加内聚性,它比减少耦合性更重要,应当把更多的注意力集中到提高模块的内聚程度上来。

(内聚最强的是功能内聚)

(2).启发式规则

1改进软件结构提高模块独立性2模块规模应该适中3深度、宽度、扇出和扇入应适中

4模块的作用域应该在控制域之内5力争降低模块接口的复杂性6模块功能应该可以预测

6,结构图的描述能力比层次图更强,图中的每一个方框代表一个模块,框内注明模块的名字或主要功能。

方框之间的直线表示模块的调用关系。

1、模块:

在结构图中,模块用矩形框表示,并用模块的名字标记它。

2、模块的调用关系和接口:

两个模块之间用单向箭头联结。

3、模块间的信息传递:

用尾端带有空心圆的短箭头表示数据信息,用尾端带有实心圆的短箭头表控制信息。

4、两个辅助符号:

当模块M有条件的调用另一个模块时在箭头尾部标以一个菱形符号。

当一个模块反复的调用模块A、B、C时,在调用箭头尾部标以一个弧形符号。

结构图例

图48.生产最佳解的一般结构

●详细设计:

给出软件模块结构中各模块的内部过程描述(算法)。

对模块图中每个模块的过程进行描述,常用的描述的方式有:

伪代码,流程图,N-S图,PAD图等。

(一)详细设计的任务

结构化程序设计的第二阶段,详细设计阶段的任务是开发一个可以直接转换为程序的软件表示,即对系统中每个模块的内部过程进行设计和描述。

给出软件模块结构中各模块的内部过程描述(算法),包含实现对应的总体设计的模块所需的处理逻辑,主要有:

1、详细的算法。

2、数据表示和数据结构。

3、实施的功能和使用的数据之间的关系。

详细设计的主要任务是给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计。

而我们接下来看看这些算法的表示形式

(二)详细设计工具

1.程序流程--程序流程也称程序框图,使用最为普遍。

有五种基本控制结构:

●顺序型:

几个连续的加工步骤依次排列构成。

●选择型:

有某个逻辑判断是的取值决定选择两个加工中的一个。

●先判定型循环:

在循环控制条件成立时,重复执行特定的加工。

●后判定型循环:

重复执行某些特定的加工,直到控制条件成立。

●多情况型选择:

列举多种加工情况,根据控制变量的取值,选择执行其一。

程序流程图基本结构如图50所示。

2.标准程序流程图的规定符号

标准程序流程图的规定符号如图51所示.

图50.程序流程图基本结构

图51.标准程序流程图的规定符号

3,盒图(N-S)图盒图是70年代由Nassi和Shneiderman提出的。

又称N-S图。

也有五种基本控制结构:

N-S图基本结构如图52所示。

图52.N-S图基本结构

4,PAD图

PAD图是1973年由日本日立公司发明的,PAD图又称问题分析图(problemAnalysisDiagram)用二维树型结构的图表示的控制流,将这种图转换为程序代码比较容易。

其基本控制结构如下:

例:

对数组X进行排序。

“自顶而下,逐步求精”

1、循环一次,排好一个X[h]

H:

=1,n-1排好第h个X[h]

2、细化

3、连接各图,构成完整的PAD图

一、名词解释:

1.软件工程

2.软件开发模型

3.数据流图

4.软件设计评价准则

5.结构图

6.模块耦合

7.模块内聚

二、选择填空

1.结构设计是一种应用最广泛的系统设计方法,是以()为基础、自顶向下、逐步求精和模块化的过程。

A、数据流B、数据流图C、数据库D、数据结构

2.()的内容不应当包括对算法的详细过程性描述。

A、需求规格说明书B、总体框图C、软件确认准则 D、软件的性能

3.()是一种传统的程序设计表示工具。

A、程序流程图B、数据流图C、结构图D、HIPO图

4.()的三种基本控制结构的共同特点是只有一个入口和一个出口。

 

A、程序B、高级语言C、文档 D、数据字典

5.模块在同一段时间内完成各种初始化工作,这属于()。

A、偶然内聚B、逻辑内聚C、时间内聚D、过程内聚

6.在详细设计的图示工具中,()的形状象一个盒子。

A、HIPO图B、流程图C、N-S图D、PAD图

三、填空

1.软件开发是,一个错误发现的越晚,为改正它所付出的代价就。

2.从系统设计的角度出发,软件设计方法分为、

、三大类。

3.总体设计阶段所使用的表示工具有、、

4.详细设计的根本目标是。

5.详细设计的工具有、、。

四、判断1..程序流程图只反映数据的流向,不反映处理逻辑的先后

2.模块的内聚性程度与该模块在分层结构中的位置有关系

3.HIPO图是由一组H图和一张IPO图组成

五、简答说明“软件生存周期”的概念

1.软件工程的基本原则和目标

2.模块的内聚性程度与该模块在分层结构中的位置有关系吗?

说明原因。

6.PAD图设置的基本控制结构?

7.模块的独立性是什么?

8.结构图是什么?

9.从系统设计的角度出发,软件设计方法分为?

10.模块耦合衡量?

11.模块内聚衡量?

六、画出下面程序的流程图、N-S图和PAD图。

ORG2000H

MOVR0,#0AH

DL2:

MOVR1,#7DH

DL1:

NOP

NOP

DJNZR1,DL1

DJNZR0,DL2

END

 

七、把下面程序的流程图转换为N-S图和PAD图

开始

N

A

Y

B

NCY

NY

G

八、把下面程序的流程图转换为N-S图和PAD图

九,把下面程序的流程图转换为N-S图和PAD图。

End

软件复用技术

1,软件复用就是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。

可复用的软件成分,也称为可复用构件(ReusableComponent)可从旧软件中提取,也可以专门为复用而开发。

软件复用不仅是对程序的复用,它包括对软件生产过程中任何活动所产生的制成品的复用。

如:

项目计划、可行性报告、需求定义、分析模型、详细说明、源程序和测试用例等等。

2,软件复用的级别

●测试信息的复用(主要包括测试用例的复用和测试过程信息的复用)。

●分析结果的复用(可被复用的分析结果是针对问题域的某些事物或某些问题的抽象程度更高的解法)

●设计结果的复用(受实际环境影响小,可复用机会多,所需修改少。

●代码的复用(包括目标代码,也包括文本形式的源代码。

软件复用抽象的程度由高到低。

3,构件库用于对可复用构件进行存储和管理。

它是支持软件复用的必要设施。

构件库必须有大量的可复用构件。

构件库系统应提供的主要功能:

构件的存储、管理、检索以及库的浏览与维护等。

5,软件构架是一种由特定领域的软件体系结构所决定的软件构造框架。

软件构架不是解决软件的某个局部问题,而是描述了软件的总体结构。

它描述了一类软件的总体构成情况,包括该软件有哪些主要部件以及各部件之间的关系,但是不涉及每个部件的细节。

可复用的软件构架给出一类应用系统在总体构造上的共性或相似性,忽略了各个系统的局部差异。

第七章软件测试

1,软件测试定义:

按照特定规程,发现软件错误的过程。

(为了发现错误而执行程序的过程。

)在软件投入生产性运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。

因为开发工作的前期不可避免地会引入错误,测试的目的是为了发现和改正错误,这对于某些涉及人的生命安全或重要的军事、经济目标的项目显得尤其重要。

2,软件测试的目标:

1、预防错误;

2、发现错误。

3,软件测试的基本原则1、尽量不由程序设计者进行测试。

2、关键是注重测试用例的选择。

输入数据的组成(输入数据、预期的输出结果)既有合理输入数据,也有不合理的输入数据。

用例既能检查应完成的任务,也能够检查不应该完成的任务。

长期保存测试用例。

3、充分注意测试中的群集现象。

4,软件测试方法分为两类:

静态分析(白盒法)、动态测试(黑盒法)

1,静态分析指以人工的、非形式化的方法对程序进行分析和测试。

桌前检查代码会审步行检查

步行检查时,还常使用以下分析方法:

2,动态测试:

通过选择适当的测试用例,执行程序。

5,常用的方法:

●白盒法:

分析程序的内部逻辑结构,注意选择适当的覆盖标准,设计测试用例,对主要路径进行尽可能多的测试。

●黑盒法:

不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。

1.白盒法:

白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。

见图61。

图61.不同覆盖标准

2.白盒法常用的覆盖标准:

①语句覆盖:

选择足够的测试用例,使得程序中每个语句至少都能被执行一次。

②判定覆盖:

执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。

③条件覆盖:

执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。

④判定/条件覆盖:

执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。

⑤条件组合覆盖:

执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。

3.白盒法步骤:

1选择逻辑覆盖标准。

2按照覆盖标准列出所有情况。

3选择确定测试用例4验证分析运行结果与预期结果。

用白盒法测试以下程序段:

Procedure(VARA,B,X:

REAL);

BEGIN

IF(A>

1)AND(B=0)

THENX:

=X/A;

IF(A=2)OR(X>

1)

=X+1

END;

白盒法举例:

Procedure(VARA,B,X:

BEGIN

IF(A>

END;

图62.白盒法

4.语句覆盖

语句覆盖:

使得程序中每个语句至少都能被执行一次。

满足语句覆盖的情况:

执行路径:

ace

用例格式:

[输入(A,B,X),输出(A,B,X)]

选择用例:

[(2,0,4),(2,0,3)]

5.判定覆盖

使得程序中每个判定至少为TRUE或FALSE各一次。

覆盖情况:

应执行路径

ace∧abd或:

acd∧abe

图63.路径流程图

选择用例(其一):

⑴[(2,0,4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1