安徽大学软件工程复习题集_第1页
安徽大学软件工程复习题集_第2页
安徽大学软件工程复习题集_第3页
安徽大学软件工程复习题集_第4页
安徽大学软件工程复习题集_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安徽大学软件工程复习题集

第1章软件工程概述

1、什么是软件工程?为什么会出现软件工程?

软件工程是:①把系统的、标准的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程

应用于软件;②研究①中提到的途径。

软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程

学科——计算机软件工程学(通常简称为软件工程)。

2、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容?

软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合

软件工程方法学包含3个要素:方法、工具和过程。

方法是完成软件开发的各项任务的技术方法,答复“怎样做”的问题;

工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;

过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。

3、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?

软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步

骤。

软件生命周期:由软件定义、软件开发和运行维护1也称之为软件维护)3个时期组成

①瀑布模型

定义:传统软件工程方法学的软件过程,根本上可以用瀑布模型来描述。

瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。瀑布模

型的成功在很大程序上是由于它根本上是一种文档驱动的模型。

瀑布模型的主要优点:a.可强迫开发人员采用标准的技术方法;

b.严格地规定了每个阶段必须提交的文档;

c.每个阶段结束前必须正式进行严格的技术审查和管理复审。

瀑布模型的主要缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产

品是什么样的。开发人员和用户之间缺乏有效的沟通,很可能导致最终开发

出的软件产品不能真正满足用户的需求。

②快速原型模型

定义:所谓“快速原型〃,是快速建上起来的、可在计算机上运行的程序,它所能完成的功能往往

是最终的软件产品所能完成的功能的子集。原型是软件开发人员与用户沟通的强有力工具,

因此有助于所开发出的软件产品满足用户的真实需求。

快速原型模型的主要优点是:A.使用这种软件过程开发出的软件产品通常能满足用户的真实需求;

B.软件产品的开发过程根本上是线性顺序过程。

③增量模型

定义:增量模型也称为渐增模型

增量模型的主要优点:A.能在较短时间内向用户提交可完成局部工作的产品:

B.逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减

少一个全新的软件给客户组织昔来的冲击。

④螺旋模型

定义:螺旋模型的根本思想是,使用原型及其他方法尽量降低风险。理解这种模型的一个简便方

法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。

螺旋模型所描述的软件过程主要适用于内部开发的大型软件工程。

使用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验。

螺旋模型主要有下述优点:A.有利于已有软件的重用;

B.有助于把软件质量作为软件开发的一个重要目标;

C.减少了过多测试或测试缺乏所带来的风险;

D.软件维护与软件开发没有本质区别。

⑤喷泉模型

定义:迭代是软件开发过程中普遍存在的一种内在属性。在面向对象范型中,软件开发过程各阶段

之间的迭代或同一阶段内各个工作步骤之间的迭代,比在结构化范型中更常见。

喷泉模型,是典型的面向对象生命周期模型,它充分表之了面向对象软件开发过程迭代和平滑过

渡的特性。

5、1.软件生命周期概念

软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。

软件生命周期分为3个时期共8个阶段,

软件定义期:包括问题定义、可行性研究和需求分析3个阶段:

软件开发期:包括概要设计、详细设计、实现和测试4个阶段:

运行维护期:即运行维护阶段。

表3-3软件生命周期各阶段的主要任务

任务描述

问题定义确定要求解决的问题是什么

可行性研究与方案制决定该问题是否存在•个可行的解决方法,指定完成开发任务的实施方案

需求分析对待开发软件提出需求进行分析并给出详细定义。编写软件规格说明书及初步的用户手册,提交

评审

软件设计通常又分为概要设计和详细设计两个阶段,给出软件的结构、模块的划分、功能的分配以及处理

流程。这阶段提交评审的文档有概要设计说明书、详细设计说明书和测试方案初稿

软件实现在软件设计的根底上编写程序。这阶段完成的文档有用户手册、操作手册等面向用户的文档,以

及为下一步作准备而编写的单元测试方案

软件测试在设计测试用例的根底上,检验软件的各个组成局部。编写测试分析报告

运行维护将已交付的软件投入运行,同时不断的维护,进行必要而且可行的扩充和删改

第2章可行性研究

1、可行性研究包括哪几方面(每方面解决什么问题),研究得到的文档和结论是什么?

技术可靠性:使用现有的技术能否实现这个系统吗?

经济可行性:这个系统的经济效益能否超过它的开发本钱?

操作可行性:系统的操作方式在这个用户组织内是否行得通?

研究的结果:是一份可行性研究的各个步骤的工作结果的文档,它包含了工程是否能继续进行下去和分

析员的推荐方案;

2、主要描述工具的概念和使用:

系统流程图:是什么,成份和根本符号,描述什么模型,画法;

数据流图:是什么,成份和根本符号,系统级和功能级、简单细化数据流图的区别,画法;

数据字典:是什么,内容、定义数据的方法。

⑴系统流程图的定义:是概括地描绘物理系统的传统工具。它用图形符号以黑盒子形式描绘组成系统

的每个部件。

系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工

处理的控制过程,是物理数据流图而不是程序流程图。

符号名称说明

能麻雌僦雌心鼬加工蜥件,例虬程序、处理机、

处理

—人工加工等牌处理

表示输入或输■殖输入乂鼬),是一个广义的稀阳体

输入输出

U脑的朋

0连接指邮跳的另一部分或从图的另一部分嘛.通傩冏一肚

换页连接指出转到另一页肚或由另一页图转来

--用槌接其他朋、概嬲㈣方K

系统流程图的根本符号:------------------------------------------------------------

⑵数据流图的定义:它是一种图形化技术,它描述信息和数据从输入移动到输出过程中所经历的变换。

在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理

的逻辑过程。

数据流图的根本符号:正方形(或立方体)表示数据的源点或终点;

圆角矩形(或圆形)代表变换数据的处理;

开口矩形〔或两条平行横线)代表数据存储;

箭头线表示数据流,即特定数据的流动方向。

⑶数据字典的定义:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。

数据字典的内容:数据流、数据流分量、数据存储、处理

定义数据的方法:用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低的成分组

合来定义。

3、数据字典和数据流图的关系。

数据流图和数据字典共同构成系统的逻辑模型。没有数据字典,数据流图就不严格,然而没有

数据流图,数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,

才能共同构成系统的规格说明。

第3章需求分析

需求规格说明书

1、需求分析的任务是什么?分析得到的成果(文档)是什么?包含哪些内容?

1、需求分析的任务:(1)确定对系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错

处理需求、接口需求、约束、逆向需求、将来可能提出的要求(2)分析系统的数

据要求:13)导出系统的逻辑模型(4)修正系统开发方案:

2、需求分析得到的结果:是通过需求分析得到的除了分析模型之外,还应该写出软件需求规格说明书,

它是需求分析阶段得出的最主要的又档。

2、软件需求通常包括哪些方面?各类需求一般包含内容有哪些?

(1)功能需求:这方面的需求指定系统必须提供的效劳。通过需求分析应该划分出系统必须完成的

所有功能。

(2)性能需求:性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信

息量速率、主存容量、磁盘容量、平安性等方面的需求。

(3)可靠性和可用性需求:可靠性需求定量地指定系统的可靠性。可用性与可靠性密切相关,它量

化了用户可以使用系统的程度C

(4)出错处理需求:这类需求说明系统对环境错误应该怎样响应。

15)接口需求:接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求:

硬件接口需求;软件接口需求;通信接口需求。

(6)约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。

(7)逆向需求:逆向需求说明软件系统不应该做什么。

(8)将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很

可能会提出来的要求。这样做的目的是,在设计过程中对系统将来可能的

扩充和修改预做准备,以便一旦确实需要时能比拟容易地进行这种扩充和

修改。

3、追加的主要描述工具的概念却使用:

E-R图;是什么,成份和根本符号,描述什么模型;

状态转换图:是什么,描述什么模型

(1)E-R图的定义:即实体一藤系图,是表示数据对象及其之间关系的图形语言机制,是建立数据模

型的图形工具。

E-R图的根本成份和使用的符号:实体(即数据而象)一一矩形框,关系一一菱形框,

属性----椭圆形或圆角矩形。

E-R图描述的模型:用来建立数据模型,ER模型使用简单的图形符号表达系统分析员对问题域

的理解

(2)状态转换图的定义:通过描绘系统的状态及引起系统状态转换的塞性,来表示系统的行为。

状态转换图的根本成份和使用的符号:根木成分是状态、事件、状态转换。

状态转换图描述的模型:用来建立系统的行为模型。

4、在结构化分析中,建模的核心是什么?3种模型分别是什么,分别用什么工具来描述?

建模的核心是数据字典,它描述了所有的在目标系统中使月的和生成的数据对象。

(1)、数据模型,用实体-联系图描述;

12)、功能模型,用数据流图批述;

(3)、行为模型,用状态转换图描述。

第5章总体设计

1、什么是总体设计?

将软件需求转化为软件的数据结构和系统结构,确定各组成成分(子系统或模块)之间的相互关系

2、模块化设计的原理包括什么?为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件

结构质量的首要标准。

模块化设计的原理包括:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。为了提高软件的可

维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。

3、模块独立性度量(描述)的两个指标:内聚、耦合;什么是内聚,什么是耦合;耦合和内聚的具体分

类及使用原那么;在面向数据流的方法中,内聚、耦合各分为哪几级,每级的具体含义分别是什么?强

度从弱到强如何排列?耦合和内聚两者关系?

(1)耦合定义:它是对一个软件结构内不同模块之间互连程度的度量;

低(无直接耦合强

(低耦合)数据耦合

特征耦合

(中耦合)控制耦合

।外部耦合

(较强耦合)缶共耦合

高(强耦合)内容耦合

耦合使川原那么:尽量使用数据耦合,小川控制耦合和特征耦合,限制公共环境耦合的范围,完全不用

内容耦合,最终降低模块间接口的复杂性。

(2)内聚定义:它标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自

然扩展。

低偶然内聚。分弱(功能分散)

逻辑内聚1分

内时间内聚3分

聚过程内聚5分

性通信内聚7分

顺序内聚9分

强(功能单一)

高功能内聚10分

内聚分类:

内聚使用原那么:设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用

的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

(3)耦合和内聚两者关系:耦今与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。

其中内聚更重要。内聚与耦合密切相关。同其它模块强耦合的模块意味着它

自己是弱内聚的;强内聚模块意味着与其它模块间松散耦合。所以设计的目

标应该是力争高内聚、低耦合。

第6章详细设计

1结构化程序设计

1结构化程序设计的原那么

结构化程序设计方法的主要原那么可以概括为自顶向下,逐步求精,模块化,限制使用got。语句。

2结构化程序的根本结构与特点

1.顺序结构

2.选择结构:选择结构又称为分支结构。

3.重复结构:重复结构又称为循环结构。

2、什么是过程设计的工具?分类?根本要求?

过程设计工具的定义:描述程序处理过程的工具

过程设计T•具的分类:它们可以分为图形、表格、和语言3类.

过程设计工具的根本要求:不管是哪类工具,对它们的根本要求都是能提供对设计的无歧义的描述。

3、软件详细设计描述工具的概念和使用:程序流程图、图、PAD图、PDL语言:是什么,根本符

号和表示的意义,画法;各种工具描述结果间的转换。

(1)程序流程图的定义:又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然

而它也是用得最混乱的一种方法。

处理//输入/出处理

判定

子程序调用

()起始/结束控制流

程序流程图的根本符号:

(2)盒图(N-S图)的定义:出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和

Shneiderman提出了盒图。

它有下述特点:

(1)功能域7即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。

(2)没有箭头,不可能任意转移控制。

(3)很容易确定局部和全程数据的作用域。

(4)很容易表现嵌套关系,也可以表示模块的层次结构。

盒图(N-S图)的根本符号:

(a)顺序:(b)IF_THEB_ELSE型分支;(c)CASE型多分支:(d)循环;(e)调用子程序

(3)PAD1问题分析图)的定义:1973年由口本口立公司创造。它用二维树形结构的图来表示程序的

控制流,将这种图翻译成程序代码比拟容易。

PAD(问题分析图)的根本符号:

(a)顺序;(b)选择(IFCTHENPlELSEP2);(c)CASE型多分支;(d)WHILE型循环(WHILEC

DOP);(e)UNTIL型循环(REPEATPUNTIL0;(f)语句标号;(g)定义

(3)过程设计语言(PDL)的定义:也称为伪码,PDL是一种“混杂〃语言,它使用一种语言的词汇,同

时却使用另一种语言(某种结构化的程序设计语言)的语法,

PROCEDUREAddSalarylS

BEGIN

打开文件

打印表头

while(IW200)de

读一个工资记求

ifS<36000then

S'=S+15(TN+100*Y

ifS〉36000then

S*=36000

endif

用S,更新工资文件中的S

endif

打印表中的一行

enddo

关闭文件

过程设计语言(PDL)的举例:END

第7章实现

1、软件测试的目的是什么?软件测试方法的种类?

为了发现程序中的错误而执行程序的过程,测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的

错误,最终把一个高质量的软件系统交给用户使用。

2、软件测试与软件开发阶段的关系?

软件开发过程是一个自顶向下、逐步细化的过程,而测试那么是依相反的顺序安排的,自底向上、

逐步集成的过程。低一级为上一级测试准备条件。

3、软件测试的步骤,过程。

模块测试一一单元、子系统测试一一局部、系统测试一一全局、验收测试一一用户参与、平行运行一一

新旧共存

4、软件测试的三大阶段:单元测试、集成测试(组装测试)、确认测试(验收测试)的主要任务(目的)是什

么?测试的内容主要有哪些?测试方案分别在什么时候制定?测试方案的内容有哪些?

模块测试(单元测试)

目的:是保证每个模块作为一个单元能正确运行。在编写H源程序代码并通过了编译程序的语法检

查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。

内容:

1.模块接口测试----检测数据能否正确无误地进入和流出模块

2.路径测试

3.出错处理测试一一测试程序中包含的出错处理是否有效

4.边界条件测试一一检测在数据边界处,模块能否正常工作

单元测试方案的时间:在详细i殳计结束时制定,主要使用白盒测试技术

集成测试

任务:在单元测试的根底上,需要将所有模块按照设计要求组装成为系统,发现并排除在模块连

接的接口中可能出现的问题,最终构成所要求的软件系统“

内容:

(D把各个模块连接起来后,考察穿越模块接口的数据是否会丧失或产生错误

(2)各个子功能组合起来,能否到达预期要求的主要功能

(3)一个模块的功能是否会对另一个模块的功能产生不利的影响

(4)全局数据结构是否有错误

(5)单个模块的误差累积起来,是否会被放大,从而到达不能被接受的程度

集成测试方案的时间:在总体设计结束时制定,详细设计结束时补充

确认测试

目的:也称为称验收测试。它的主要目标是验证软件的有效性。证实软件功能与用户需求是否一致,

即测试软件能否按照软件需求规格说明书(合同)的要求运行。

内容:有效性测试、软件配置复查、验收测试

确认测试方案的时间:在需求分析时制定,后续阶段补充,通过黑盒测试技术。

5、什么是白盒测试?典型的白盒测试技术有哪几个,含义如何?简单的逻辑覆盖测试用例设计。

白盒测试的定义:也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测

产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否

都能按预定要求正确工作。

应用时间:白盒测试在测试过程的早期阶段进行

白盒测试技术:1、逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆

盖、边覆盖、路径覆盖;

2、控制结构测试:根本路径测试、条件测试、循环测试。

逻辑覆盖测试的5种标准

发现错误的

标准含义

能力

发现错误的

标准含义

能力

11弱)语句覆盖每条语句至少执行一次A=2,B=0,X=4

每一判定的每个分支至少执行一次A=3,B=0,X=3

2判定覆盖

A=2,B=l,X=1

每一判定中的每个条件,分别按“真"、"假"至少各

3条件覆盖

执行一次A=2,B=0,X=4A=l,B=l,X=1

同时满足判定覆盖和条件覆盖的要求A=2,B=0,X=4

4判定/条件覆盖

A=l,B=l,X=1

求出判定中所有条件的各种可能组合值,每一可能的条

5(强)条件组合覆盖

件组合至少执行一次

•条件覆盖不一定包含判定覆盖;判定覆盖也不一定包含条件覆盖。

•条件组合覆盖是前述几种覆盖标准中最强的。但是,满足条件组合覆盖标准的测试数据并不一定

能使程序中的每条路径都执行到O

s(人U)

d(返叵1)

例子:

第8章维护

1、什么是软件维护、维护分哪四种类型、其含义分别是什么、在维护工作中占得比例如何?

软件维护定义:就是在软件已经交付使用之后,为了改正错误或满足新的需要而修正软件的过程。

维护分为四种类型:(1)改正性维护:把整断和改正错误的过程称为改正性维护(2)适应性维护:为

了和变化的环境适当的配合而进行的修改软件的活动,(3)完善性维护:在使用软件的过程中用户常常

提出新增功能或修改已有功能的建议,为了满足这类要求的活动(4)预防性维护:为了改良将来的可

维护性或可靠性;

所占比例:完善性维护:50%〜66%改正性维护:17与〜2居适应性维护:18$〜25%其他维护:4%

2、什么是软件的可维护性?决定软件可维护性的因素有哪些?造成软件难以维护的原因有哪些?

软件的可维护性:是指软件维护人员理解、纠正软件系统出现的错误和缺陷,以及为满足新的要求进行

修改、扩充或压缩软件的难易程度

决定软件可维护性的五个因素:(1)可理解性(2)可测试性(3)可修改性(4)可移植性(5)可重用

定以维护的原因:在于这些软件的文档不全、质量差、开发过程不注意采用好的方法,无视程序设计风

格等。

苑以维护的根本原因:软件定义和软件开发的方法有缺点,在软件生命周期的头两个时期没有严格而乂

科学的管理和规划,没有采用软件工程思想开发软件。

3、文档和可维护性之间的关系?

文档是影响软件可维护性的决定因素,文档往往比代码更加重要;

软件系统的文档可以分为用户文档和系统文档两类

.软件系统的文档可以分为用户文档和系统文档两类.用户文档主要描述系统功能和使用方法,并不关心

这些功能是怎样实现的;系统文档描述系统发设计,实现和测试等各方面的内容”

8.4.2文档

分类

用户文档:主要描述系统功能和使用方法,并不关心这些功能是怎样实现的

系统文档:描述系统设计、实现和测试等各方面的内容

文档要求

必须描述如何使用这个系统,没有这种描述时即使是最简单的系统也无法使用;

必须描述怎样安装和管理这个系统;

必须描述系统需求和设计;

必须描述系统的实现和测试,以便使系统成为可维护的

用户文档

功能描述,说明系统能做什么;

安装文档,说明怎样安装这个系统以及怎样使系统适应特定的硬件配置;

使用手册,简要说明如何着手使用这个系统(应该通过丰富例子说明怎样使用常用的系统功能,还应该

说明用户操作错误时怎样恢复和重新启动):

参考手册,详尽描述用户可以使用的所有系统设施以及它们的使用方法,还应该解释系统可能产生的各

种出错信息的含义(对参考手册最主要的要求是完整,因此通常使用形式化的描述技术);

操作员指南(如果需要有系统操作员的话),说明操作员应该如何处理使用中出现的各种情况。

8.4.2文档

系统文档

问题定义、需求说明到验收测试方案这样一系列和系统实现有关的文档

4、衡量软件质量的主要指标?

可维护性、可使用性、可靠性是衡量软件质量的主要指标

9.面向对象的概念

9.2.1对象

是客观事物或概念的抽象表述,即对客观存在的事物的描述统称为对象

对象可以是事、物、或抽象概念,是将一组数据和使用该数据的一组根本操作或过程封装在一起的实

体。

对象的特点

(1)以数据为中心。

(2)对象是主动的。

(3)实现了数据封装。

(4)本质上具有并行性。

(5)模块独立性好。

9.2.2类

类又称对象类(ObjectClass),是一组具有相同属性和相同操作的对象的集合。在一个类中,每个

对象都是类的实例(instance),它们都可以使用类中提供的函数。

9.2.3实例

实例就是由某个特定的类所描述的一个具体的对象。类是对具有相同属性和行为的一组相似的对象的

抽象,类在现实世界中并不能真正存在。

9.2.4消息

消息就是向对象发出的效劳请求(互相联系、协同工作等)。一个消息包含3个局部:接收消息的对

象,消息名,消息变元。

例如,MyCirclc是Circle类的一个实例,发送消息如下:MyCircle.show(GREEN);

9.2.5方法

方法就是对象所能执行的操作,也就是类中所定义的效劳。

方法描述了对象执行操作的算法,响应消息的方法。在C++语言中把方法称为成员函数。

9.2.6属性

属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象.0

9.2.7封装

对象封装了对象的数据以及对这些数据的操作。

9.2.8继承

继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是

子类自动地共享基类中定义的数据和方法的机制。

单重继承:子类仅从一个父类继承属性和方法

多重继承:子类可从多个父类继承属性和方法

9.2.9多态性

在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按白

己的需要来实现这个行为。

当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法

有两种重载:函数重载是指在同一作用域内的假设十个参数特征不同的函数可以使用相同的函数名字;

运算符重载是指同一个运算符可以施加r不同类型的操作数上面。当然,当参数特征不同或被操作数的

类型不同时,实现函数的算法或运算符的语义是不相同的。重载进一步提高了面向对象系统的灵活性和

可读性。

9.4.2表示关系的符号

类与类之间关系有:关联,聚集,泛化(继承),依赖,细化

9.4.2.1关联

关联表示两个类的对象之间存在某种语义上的联系。

(1)普通关联

普通关联例如

在表示关联的直线两端可以写上重数(multiplicity),它表示该类有多少个对象与对方的一个对象

连接。重数的表示方法通常有:

0-1表示0到1个对象

0…*或*表示0到多个对象

1+或1…*表示1到多个对象

1-15表示1到15个对象

3表示3个对象

如果图中未明确标出关联的重数,那么默认重数是lo

(2)关联的角色

在任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些情况下显式标明角

色名有助于别人理解类图。如果没有显式标出角色名,那么意味着用类名作为角色名。

(3)限定关联

限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多

对多简化成多对一。在类图中把限定词放在关联关系末端的一个小方框内。

(4)关联类

为了说明关联的性质可能需要一些附加信息。可以引入一个关联类来记录这些信息。关联中的每个连

接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。

9.4.2.2聚集

聚集是一种特殊的关联,它指出类间的“整体-局部"关系。

(1)共享聚集

如果在聚集关系中处于局部方的对象可同时参与多个处于整体方对象的构成,那么该聚集称为共享聚

集。

(2)组合聚集

如果局部类完全隶属于整体类,局部与整体共存,整体不存在了局部也会随之消失,那么该聚集称为

组合聚集。

9.4.2.3泛化

•UML中的泛化关系就是通常所说的继承关系。

(1)普通泛化

(2)受限泛化

可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛化关系称

为受限泛化。预定义的约束有4种:多重、不相交、完全和不完全。下列图:多重继承

9.4.2.3泛化(IH)

完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定(完全)约束。

不完全继承与完全继承恰好和反,父类的子类并没有都穷举出来,不完全继承是一般情况下默认的继

承关系9.4.2.4依赖

依赖关系表示:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,

如果独立的模型元素改变了,将影响依赖于它的模型元素。

9.4.2.5细化

当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。假设两个模型元素A和B描

述同一个事物,它们的区别是抽象层次不同,如果B是在A的根底上的更详细的描述,那么称B细化了

A,或称A细化成了B。

9.3面向对象建模面向对象开发软件,需要建立3种形式的模型。

对象模型。描述系统数据结构一数据结构.

动态模型。描述系统控制结构一执行操作。

功能模型。描述系统功能一数值变化。

这三种模型从不同侧面描述了对系统的需求。在面向对象佗分析(00A)阶段,这三种模型是必不可少

的。

9.4对象模型

对象模型描述了系统的静态结构。00方法强调围绕对象而不是功能来构造系统。

使用统一建模语言UML(UnifiedModelingLanguage)提供的类图来建'Z对象模型。

UML用例图是建立功能模型的有力工具。

动态模型描述系统控制结构。通常用状态图表不。

上升

超时

功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,通常,功能模型由一组数据

流图组成。

UML提供的用例图也是进行需求分析和建立功能模型的强有力工具。

对象模型动态模型功能模型

对象的静态结构及相互与时间和顺序有关的系与值的变化有关的系统

关系统性质性质

描述系统的数据结构控制结构系统的功能

“干事的主体〃“什么时候干〃“干什么〃

第13章软件工程管理

1、什么是软件工程管理?目的是什么?软件工程管理的主要内容是什么?主要职能是什么?

软件工程管理的定义:是为了实现工程目标,运用相关的知识、技能、方法、工具,对工程的方案、进

度、质量、本钱、资源进行管理和控制的活动。

目的:通过方案、组织和控制等一系列活动,合理地配置和使用各种资源,以到达既定目标的过程。工

程管理不仅是为了节约金钱,而且是为了节省时间,缩短产品的开发周期。

内容:

(1)人员的管理与组织

(2)软件度量

(3)软件工程方案

(4)风险管理

(5)软件质量保证

(6)软件过程能力评估

(7)软件配置管理

主要职能:制定方案、建立组织、配备人员、指导

2、软件规模估算的两种典型方法是什么?含义分别是什么?

代码行技术含义:这种方法依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程

序行数

代码行技术估算方法:估计该程序模块的最小规模(设为a)、最大规模(设为b)和最可能的规模(设为m),

那么计算单元规模的估计值为:

6

功能点技术含义:依据对软件信息域特性和软件复杂性的评估结果,估算软件规模

3、软件开发小组人员如何确定,人员个数怎么确定?

根据软件规模估算出完成工程所需的工作量,确定开发人员的个数,并合理地组织工程组结构。

4、根据什么、如何确定软件工程组的最正确规模,为什么存在工程组的最正确规模?

对于某一个组员来说,他与其他组员通信的路径数在1~(P-1)的范围内变化。如果不与任何人通信时

个人生产率为L,而且每条通信路径导致生产率减少1,那么组员个人平均生产率为

Lr=L-l(P-l)r(13.5)

其中,r是对通信路径数的度量,()<W1(假设至少有一名组员需要与一个以上的其他组员通信,因此00)。

对于一个规模为P的工程组,从(13.5)式导出工程组的总生产率为

L:ot=P(L-l(P-l)r)(13.6)

对于给定的一组L、1和r的值,总生产率Ltot是工程组规模P的函数。随着P值增加,Ltot将从。增

大到某个最大值,然后再下降。因此,存在一个最正确的工程组规模Popt,这个规模的工程组其总生产

率最高。

4、以工程网络图为工具,如何估算工程进度(工程网络图如何圆)?

5、什么是软件质量?它主要包括哪三方面的内容?软件质量保证的三个措施及其具体内容?

软件质量的定义:就是“软件与明确地和隐含地定义的需求向一致的程度"。更具体地说,软件质量是

软件与明确地表达的功能和性能需求、文档中明确描述的开发标准以及任何专业开发

的软件产品但都应该具有的隐含特征相一致的程度。

它包括三方面含义:3)软件需求是度量软件质量的根底,与需求不一致就是质量不高;

(2)指定的开发标准定义了一组指导软件开发的准那么,如果没有遵守这些准那么,

肯定会导致软件质量不高;

(3)通常,有一组没有显式描述的隐含需求(例如,软件应该是容易维护的)。如

果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是

值得疑心的;

软件质量保证的措施:(1)基于非执行的测试即复审,在编码开始之前,对前期产生的各种文档进行检

查(阅读和审查);

(2)基于执行的测试即软件测试;

(3)程序正确性证明,使用数学方法严格验证程序是否与对它的说明完全一致。

6、什么是软件配置项、什么是软件配置(包含的内容)、什么是基线(在什么时候产生)?

软件配置项:1、计算机程序(源代码和可执行程序);2、描述计算机程序的文档(供技术人员或用户

使用);3、数据(程序内包含的或在程序外的)。

软件配置的定义:是指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)

和各种版本依文档、程序及其数据的集合。

基线的定义:通过了正式复审的软件配置项称为基线,只有通过正式的变化控制过程才能改变它。是一

个软件配置管理概念,它有助于人们在不严重阻碍合理变化的前提下来控制变化。

7、软件配置管理的工作(任务)包括哪几方面?

软件配置管理主要有5项任务:标识软件配置项、版本控制、变化控制、配置审计、状态报告。

8、什么是CMM,它的根本思想是什么?

CMM是指能力成熟度模型,是用于评价软件机构的软件过程能力成熟度的模型

CMM(能力成熟度模型)的根本思想是:由于问题是由人们管理软件过程的方法不当引起的,所以新

软件技术的运用并不会自动提高软件的生产率和质量。CMM有助于软件开发机构建立一个有规律的、

成熟的软件过程。改良后的软件过程将开发出质量更好的软件,使更多的软件工程免受时间延误和费用

超支之苦。

9、CMM的两个主要应用分别是什么?

软件过程评估和软件能力评价。

10、CMM有哪5个等级,其根本含义分别是什么?

I初始级:软件过程的特征是无序的,有时甚至是混乱的。

2、可重复级:软件机构建立了很本的工程管理过程(过程模型),可跟踪本钱、进度、功能和质量。

3、已定义级:软件机构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化。所有

的工程组都使用文档化的、经过批准的过程来开发和维护软件。

4、已管理级:软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标,所

有工程的重要的过程活动都是可度量的。

5、优化级:软件机构集中精力持续不断地改良软件过程。这一级的软件机构是一个以防止出现缺陷为

目标的机构,它有能力识别软件过程要素的薄弱环节,并有足够的手段改良它们,

安徽大学2023-2023学年第」一学期

《软件工程》考试试卷(A卷)

(时间120分钟)

院/系专业姓名学号

题号一二三四总分

得分

一、单项选择题(每题2分,共20分){―—―|------------

得分

1.()

软件工程的三要素是过程、、工具。

A.文档B.代码C.数据D.方法

2.()

修改一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。修改已有的库存清单并且编写

产生报表的程序,估计共需3000元;系统修改后,能及时定货将消除零件短缺影响生产的问题,估计

因此每年可以节省2500元,假设年利率为12$,软件的生存周期是2年,开发该软件的纯收入是多少?

A.2232.14B.1225.12C.3000D.2000

3.()

一个程序向另一个子程序传递姓名、住址、号码、生日和身份证号码等五个变量。它们之间的耦合

属于

A.标记耦合B.控制耦合C.数据耦合D.公共耦合

4.()

可行性研究主要从以下几个方面进行研究:

A技术可行性,经济可行性,操作可行性。

B.技术可行性,经济可行性,系统可行性。

C.经济可行性,系统可行性,操作可行性。

D.经济可行性,系统可行性,时间可行性。

5.()

CMM提供了••个框架,将软件过程改良的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包

含了实现该成熟度等级目标的假设干

A.关键实践B.关键过程域C.软件过程能力D.软件过程

6.()

“国家一一中国”之间的关系属于

A继承B关联C聚合D类一一实例

7.()

面向对象分析是对系统进行的一种方法。

A需求建模B程序设计C设计评审D测试验收

8.()

结构化分析方法中,数据流程图属于

A对象模型B功能模型C行为模型D数据模型

9.()

Jackson图属于阶段使用到的图形工具。

A需求分析B概要设计C详细设计D软件实现

10.()

耦合是对软件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论