当前位置:文档之家› 南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版

南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版

南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版
南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版

选择20题,每题1分;填空10题,每题1分;简答5题,每题8分;设计题3题,每题10分(流程图的设计、流图设计和环形复杂度的计算、语句覆盖和判定覆盖测试用例的设计)。

1.详细设计中,过程设计的工具,N-S图,PAD图及判定表和判定树各有何特点和适用情况?(第六章)

(1)盒图(N-S图):

一种不允许违背结构程序设计精神的图形工具,又称为N-S图。它有下述特点:

①功能域(作用域)明确,可以从盒图上一眼就看出来。

②盒图没有箭头,因此不允许随意转移控制。

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

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

适用:对大部分设计均有适用性,常用于软件工程详细设计中,提供一种结构化的方式,便于思考和解决问题。

(2)PAD图:

PAD是问题分析图(problem analysis diagram) ,它用二维树形结构的图来表示程序的控制流。PAD图的主要优点如下:

①使用PAD符号设计的程序必然是结构化程序。

② PAD图所描绘的程序结构十分清晰。最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸。每增加一个层次,图形向右扩展一条竖线。图中竖线的总条数就是程序的层次数。

③PAD图表现的程序逻辑,易读、易懂、易记。程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。

④容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成。

⑤既可表示程序逻辑,也可描绘数据结构。

⑥支持自顶向下、逐步求精方法的使用。

适用:为FORTTAN,COBOL,PASCAL等每种常用的高级程序设计语言提供了一套相应的图形符号。

开始时可以定义一个抽象的程序,随着设计的深入,使用def符号逐步增加细节,直至完成详细设计,如图6.6所示。

(3)判定表(P127有例子):

适于表示复杂的条件组合与应做的动作之间的对应关系。特点是:

①能够间接而又无歧义的描述处理故意则。

②并不适用于作为一种通用的设计工具。

③一张判定表由以下四部分组成:左上部列出所有条件,左下部是所有可能的动作,右

上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。

判定表右半部的每一列实际上就是一个规则,规定了与特定的条件组合相对应的动作。

适用:算法中包含多重嵌套的条件选择。数据元素多于2个的时候,能够比判定表更简洁的表达,便于理解。

盒图的基本符号(1)

盒图的基本符号(2)

PAD图的基本符号

图6.6 使用PAD图提供的定义功能来逐步求精的例子

PAD描述的示例

(4)判定树

判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。

判定树的优点:形式简单到不需任何说明,一眼就可以看出其含义,易于掌握和使用。

适用:数据元素多的时候,初次接触的人很容易就看懂

用判定树表示计算行李费的算法

2.白盒测试和黑盒测试技术的区别。(第七章)

白盒测试技术:用白盒方法测试软件时设计测试数据的典型技术。已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查。

黑盒测试技术:用黑盒方法测试软件时设计测试数据的典型技术。已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

黑盒测试着重测试软件功能。黑盒测试并不能取代白盒测试,它是与白盒测试互补的测

试方法,它很可能发现白盒测试不易发现的其他类型错误。

3.白盒测试中的逻辑覆盖测试包含哪几种类型。(第七章)逻辑覆盖:是对一系列测试过程的总称。这组测试过程逐渐进行越来越完整的通路测试。

覆盖:测试数据执行源程序的过程。

①语句覆盖的含义:选择足够多的测试数据,使被测程序中每个语句至少执行一次。

②判定覆盖又叫分支覆盖。含义:不仅每个语句必须至少执行一次,而且每个判定的每个分支都至少执行一次。

③条件覆盖含义:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。

④判定/条件覆盖含义:选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。

⑤条件组合覆盖含义:使得每个判定表达式中条件的各种可能组合都至少出现一次。

⑥点覆盖含义:选取足够多测试数据,使得程序执行路径至少经过流图的每个结点一次。

⑦边覆盖含义:选取足够多测试数据,使得程序执行路径至少经过流图中每条边一次。

⑧路径覆盖含义:选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。

4.软件维护的类型有哪些,及各自所占比重。(第八章)

①改正性维护,占17%~21%:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。

改正性维护:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程。

②适应性维护,占18%~25%:在使用过程中,外部环境(如:新的硬、软件配置)、数据环境(如:数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。

适应性维护:为使软件适应这种变化,而去修改软件的过程。

③完善性维护,占全部维护活动的50%~66%:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足上述要求,需要修改或再开发软件而进行的完善性的维护活动。以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

完善性维护不一定是救火式的紧急维修,可以是有计划、有预谋的一种再开发活动。

④预防性维护:为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的维护活动。其他维护活动只占4%左右。

预防性维护的定义:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试的过程。

5.软件项目的可行性研究的实质是什么?(第二章)

可行性研究最根本的任务是对以后的行动方针提出建议。

如果问题没有可行的解,分析员应该建议停止这项开发工程。如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。

6.可行性研究包括哪些内容。(第二章)

技术可行性、经济可行性、操作可行性(至少以上三种)、运行可行性、法律可行性、开发方案可行性

7.衡量模块独立性的标准有哪些?(第五章)

模块独立:具有独立功能而且和其他模块之间没有过多的相互作用的模块。模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。

模块独立程度的度量标准:内聚和耦合。

耦合:模块间互相依赖(连接)的紧密程度;

内聚:模块内部各个元素彼此结合的紧密程度。

8.模块间的耦合有哪些类型,如何区分?(第五章)

数据耦合:模块彼此间通过参数交换信息,交换的信息仅仅是数据,数据耦合是低耦合。

标记耦合:若两个模块间传递的参数中至少有一个是数据结构,如字符串或记录,并且在模块中仅用到该数据结构中的部分元素,则称这两个模块之间存在标记耦合。

控制耦合:一个模块向另一个模块传递控制信息,接收信息的模块的动作根据信息值进行调整。控制耦合是中等程度的耦合,它增加了系统的复杂程度。在把模块适当分解之后通常可以用数据耦合代替它。

公共耦合:两个模块共享全局的数据区域,称他们为公共耦合,不要使用全局变量。耦合的复杂程度随耦合模块的个数而变化,随个数的增加显著增加。

内容耦合:有三种情况,是最高程度的耦合性(坚决避免使用这种耦合)

模块独立性与耦合的关系图

总之,耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:尽量使用数据耦合,少用控制耦合和标记耦合,限制公共环境耦合的范围,完全不用内容耦合。9.模块内的内聚有哪些类型,如何区分?(第五章)

偶然内聚:如果一个模块的各成分之间毫无关系,则称为偶然内聚。

逻辑内聚:几个逻辑上相关的功能被放在同一模块中。

时间内聚:如果一个模块完成的功能只是因为时间因素关联在一起。

过程内聚:如果一个模块内部的各个处理成分必须以特定的次序执行,则称为过程内聚。

通信内聚:如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。

顺序内聚:如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。

功能内聚:模块的所有成分对于完成单一的功能都是基本的。

设计时,尽量使用内聚度高的模块(顺序内聚,功能内聚);中内聚(过程内聚,通信内聚)也可;低内聚(偶然内聚,逻辑内聚,时间内聚)很坏,不要采用。

10. 结构化程序设计的定义及特点。

定义:是进行以模块功能和处理过程设计为主的详细设计的基本原则。

特点:结构化程序中的任意基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。在程序的静态形式与动态执行流程之间具有良好的对应关系

11.软件测试的定义及目的。(第七章)

软件测试的定义:是为了发现程序中的错误而执行程序的过程。

软件测试的目的:暴露程序中的错误。测试目标决定了测试方案的设计,如果为了表明程序的正确,就会设计一些不易暴露错误的测试方案;如果是为了发现程序中的错误,就会设计出最能暴露错误的测试方案。

G.Myers给出了关于测试的一些规则,这些规则也可以看作是测试的目标或定义:

(1) 测试是为了发现程序中的错误而执行程序的过程;

(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

(3) 成功的测试是发现了至今为止尚未发现的错误的测试。

测试是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。

12.软件生命周期的阶段划分及每个阶段的任务。(第一章)

软件生命周期:软件生命周期的阶段划分由软件定义、软件开发和运行维护(也称为软件维护),直到最终被废弃所经历的时期。

生命周期每个阶段的基本任务:

软件定义阶段:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程总目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,制定工程进度表。

这个时期的工作又称为系统分析,由系统分析员负责完成。这个时期进一步划分成3

个阶段:问题定义、可行性研究和需求分析。

开发时期的任务是:设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。前两个阶段又称为系统设计,后两个阶段又称为系统实现。

维护时期的主要任务是:使软件持久地满足用户的需要。具体地说:当软件在使用过程中发现错误时应该加以改正;当环境改变时应该修改软件以适应新的环境;当用户有新要求时应该及时改进软件以满足用户的新需要。

13.面向对象方法的特点、特征。(第九章)

特征:(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。

(2)把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。

(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。

(4)对象彼此之间仅能通过传递信息互相联系。

特点:(1)与人类习惯的思维方法一致(2)稳定性好(3)可重用性好(4)较易开发大型软件产品(5)可维护性好

14.类、对象的概念,多态、重载、封装的含义。(第九章)

类:对具有相同数据和相同操作的一组相似对象的定义(对具有相同属性和行为的一个或多个对象的描述)

对象:具有相同操作的集合;对问题域中某个东西的抽象。(是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有唯一的标识它的名字,而且向外界提供一组服务)

多态:是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。

重载:有两种重载:(1)函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;(2)运算符重载是指同一个运算符可以施加于不同类型的操作数上面。当然,当参数特征不同或操作数的类型不同时,实现函数的算法或运算符的语义是不相同的。

封装:在面向对象中,所谓封装就是把数据和实现操作的代码集中起来放在对象内部,从外面看不见的,更不能从外面直接访问或修改这些数据和代码。

15.总体设计阶段使用的软件结构图,模块及模块间的调用关系如何表示(第五章)

结构图是进行软件结构设计的另一个有力工具。图中一个方框代表一个模块,方框之间的箭头(或直线)表示模块的调用关系,按照惯例总是图中位于上方的方框代表的模块调用下方的模块,即使不用箭头也不会产生二义性,为了简单起见,可以只用直线而不用箭头表示模块间的调用关系。带注释的箭头表示模块间传递的信息,箭头尾部空心圆表示数据信息,箭头尾部实心圆表示控制信息。

结构图的例子——产生最佳解的一般结构

还有一些附加的符号,可以表示模块的选择调用或循环调用。

16.什么是变换流、什么是事务流,如何区分。(第五章)

变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流。具有较明显的输入、变换(或称主加工)和输出界面的数据流图。

事务流:数据沿输入通路到达一个处理T ,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。

区分:变换流是一个线性的处理,事务流是一个分类处理。

17.McCall 质量模型中的质量因素有哪些。

正确性、健壮性、效率、完整性(安全性)、可用性、风险、可理解性、可维修性、灵活性(适应性)、可测试性、可移植性、可再用性、互运行性,共11个软件质量特性。

18.E-R 图中包含哪些图形元素,如何表示。(第三章)

E-R图中包含了实体(即数据对象)、关系和属性三种基本成分。通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。

19.软件的可靠性与可用性。(第七章)

软件可靠性的定义:软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。可靠性随着给定时间间隔的加大而减少。

软件可用性的定义:软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。

区别:可靠性意味着在0到t这段时间间隔内系统没有失效,而可用性只意味着在时刻t,系统是正常运行的。

20.什么是软件的调试。(第七章)

调试(也称为纠错)作为成功测试的后果出现,也就是说,调试是在测试发现错误之后排除错误的过程。调试就是把症状和原因联系起来的尚未被人深入认识的智力过程,调试总是发生在测试之后。

21.常用软件调试技术有哪些?

蛮干法(即试探法):分析错误征兆,猜测发生错误的大概位置,然后利用有关的调试技术进一步获得错误信息。这种策略往往是缓慢而低效的。仅当所有方法都失败了的情况下,才使用这种方法。

回溯法:首先检查错误征兆,确定最先发现错误的位置,然后人工沿程序的控制流往回追踪源程序代码,直到找出错误根源或确定故障范围为止。

排除法:分为对分查找法、归纳法和演绎法。

①对分查找法:在程序的中点附近输入某些变量的正确值(如利用赋值语句或输入语句),然后观察程序的输出。若输出结果正确,则说明错误出现在程序的前半部分;否则,说明程序的后半部分有错。对于程序中有错的那部分再重复使用这个方法,直到把错误范围缩小到容易诊断的程度为止。

②归纳法:是从个别推断全体,即从线索(错误征兆)出发,通过分析这些线索之间的关系而找出故障。

③演绎法:是从一般原理或前提出发,经过删除和精化的过程,最后推导出结论。

22.软件工程方法学主要包括哪几部分的研究内容。

通常把在软件声明周期全过程中使用一整套技术方法的集合称为方法学。主要研究的是:模型、方法、过程、工具、理念/原则、文档,甚至相应的开发语言。

软件工程方法学包含了3个要素:方法,工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答”怎么做”的问题;工具是运用方法而提供的自动或半自动的软件

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

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

23.面向对象的软件工程包含哪几个号阶段。

面向对象分析:需求陈述、建立对象模型,建立动态模型、建立功能模型、定义服务。

面向对象设计:系统分解、设计问题域子系统、设计人机交互子界面、设计任务管理系统、设计数据管理子系统

面向对象实现:程序设计语言、程序设计风格、测试策略、设计测试用例。

24.什么是软件,什么是软件工程,什么是软件危机。

软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。如:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件:与计算机系统操作有关的计算机程序,规则、以及可能有的文件、文档及数据。

25.软件测试中驱动模块和存根模块的用途是什么。

驱动程序:也称“主程序”,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果。

存根程序:也称“虚拟子程序”,代替被测试的模块所调用的模块。它使用被它代替的模块的接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用它的模块。

26.能力成熟度模型中成熟度等级分为哪几级,各有何特点。

(1)初始级:处于这个最低成熟度等级的软件机构,其过程能力是不可预测的,其软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测。

(2)可重复级:软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项目环境。软件项目工程活动处于项目管理体系的有效控制之下,执行着基于以前项目的准则且合乎显示的计划。

(3)已定义级:无论是管理活动还是工程活动都是稳定的。软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性。这种能力是基于在软件机构中对已定义的过程模型的活动、人员和职责都有共同的理解。

(4)已管理级:软件过程是可度量的,软件工程在课度量的范围内运行。这一级的过程能力允许软件机构在定量的范围内预测过程和产品质量趋势,在发生偏离时可以及时采取

措施予以纠正,并且可以预期软件产品是高质量的。

(5)优化级:软件过程是可优化的。这一级的软件机构能够持续不断地改进其过程能力,即对现行的过程实例不断地改进和优化,又借助于所采用的新技术和新方法来实现未来的过程改进。

27.总体设计中模块的内聚及耦合应把握哪些原则。

耦合:模块间互相依赖(连接)的紧密程度;

内容耦合;公共耦合;控制耦合;标记耦合;数据耦合;(由强到弱)

内聚:模块内部各个元素彼此结合的紧密程度。

偶然内聚;逻辑内聚;时间内聚;过程内聚;通信内聚;顺序内聚;(由弱到强)

耦合使用原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

内聚使用原则:设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

28.软件过程模型是什么,常用的软件过程模型及各自特点。

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

优点:可强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交得文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;遵守瀑布模型的文档约束,将使软件维护变得比较容易一点;

缺点:文档驱动仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品;用户变化无法预测,很可能导致最终开发出的软件产品不能真正满足用户的需求;只能反映用户项目开始时的需求。

快速原型模型:快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。通过用户试用原型系统后提出的许多修改意见,按照用户的意见快速地修改原型系统,然后再次请用户试用,一旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便据此书写规格说明文档,根据这份文档开发出的软件便可以满足用户的真实需求。

优点:软件产品的开发基本上是线性顺序进行的。

增量模型:把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。用第一个增量构件来实现软件的基本需求,提供最核心的功能。

优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。

螺旋模型:螺旋模型的基本思想是,使用原型及其他方法尽量降低风险。理解这种模型的一个简便方法,是把它看做每个阶段之前都增加了风险分析过程的快速原型模型。该

模型锁描述的软件过程主要适用于内部开发的大型软件项目。适用螺旋模型开发软件,要求软件开发人员具有丰富的风险评估知识和经验。

优点:有利于已有软件的重用;有助于把软件还能质量作为软件开发的一个重要目标;减少了过多测试或测试不足所带来的风险;软件维护和软件开发没有本质区别。

喷泉模型:典型的面向对象生命周期模型,它充分体现了面向对象软件开发过程迭代和平滑过渡的特性。喷泉体现了面向对象软件开发过程迭代和无缝的特性。

RUP: RUP既是一种软件生命周期模型,又是一种支持面向对象软件开发的工具,它将软件开发过程要素和软件工件要素整合在统一的框架中。包括:初始阶段、精华阶段、构建阶段、移交阶段。

敏捷模型:价值观:沟通、简单、反馈、勇气、谦逊

29.人机界面设计过程中,有哪些问题要考虑。

系统响应时间:指从用户完成某个控制动作,到软件给出预期的响应(输出信息或做动作)之间的这段时间。系统响应时间的两个重要属性:长度和易变性。

用户帮助设施:应提供联机帮助设施,这使得用户无须离开用户界面就能解决自己的问题。常见的帮助设施可分为:集成的、附加的

出错信息处理:出错信息或警告信息应具有的属性:

(1) 用用户可以理解的术语描述问题;

(2) 提供有助于从错误中恢复的建设性意见;

(3) 指出错误可能导致哪些负面后果(例如,破坏数据文件);

(4) 伴随听觉或视觉给与提示。例如,在危险操作时发出警告铃声。

(5) 不能带有指责色彩。

命令交互:可提供二种操作方式:菜单,键盘。

30.可行性研究包含哪些步骤。

目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。

任务:确定问题是否值得去解决。

步骤:

①复查系统规模和目标:确保分析员正在解决的问题确实是要求他解决的问题。

②研究目前正在使用的系统:现有的系统是信息的重要来源。新的目标系统必须也能完成它的基本功能;另一方面,现有的系统必然有某些缺点,新系统必须能解决旧系统中存在的问题。

③导出新系统的高层逻辑模型(数据流图和数据字典)。

④进一步定义问题:分析员应该和用户一起再次复查问题定义、工程规模和目标,以数据流图和数据字典作为讨论的基础。

可行性研究的前4个步骤实质上构成一个循环。定义问题,分析这个问题,导出一个试

探性的解;在此基础上再次定义问题,再一次分析这个问题,修改这个解;继续这个循环过程,直到提出的逻辑模型完全符合系统目标。

⑤导出和评价供选择的解法:分析员应该从他建议的系统逻辑模型出发,导出若干个较高层次的(较抽象的)物理解法供比较和选择。

为每个在技术、操作和经济等方面都可行的系统制定实现进度表。

⑥推荐行动方针:是否继续进行这项开发工程。

⑦草拟开发计划:制定工程进度表。估计对各类开发人员和各种资源的需要情况,指明什么时候使用以及使用多长时间;估计系统生命周期每个阶段的成本。给出下一个阶段(需求分析)的详细进度表和成本估计。

⑧书写文档提交审查:把上述可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。

31.什么是结构化分析,包含哪些步骤?

通常所说的结构化分析方法就是基于数据流的设计方法。

结构化分析是软件工程的一种方法,是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。

①变换分析:第1步复查基本系统模型;第2步复查并精化数据流图;第3步确定数据流图具有变换特性还是事务特性;第4步确定输入流和输出流的边界,从而孤立出变换中心;第5步完成“第一级分解”;第6步完成“第二级分解”;第7步使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。

②事务分析:事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在于:由数据流图到软件结构的映射方法不同。

③设计优化:为了得到一个易于实现﹑易于测试和易于维护的软件结构,应该对初步分割得到的模块进行再分解或合并。注意,设计优化应该力求做到在有效的模块化的前提下使用最少量的模块,以及在能够满足信息要求的前提下使用最简单的数据结构。

32.什么是基于数据流的设计方法,如何实施

面向数据流的设计方法:把数据流图中的信息流映射成软件结构。信息流的类型决定了映射的方法。有以下两种类型:交换流(输入不止一个,具有较明显的输入、变换和输出界面的数据流图。)、事务流(输入只有一个,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。)

——By:南京信息工程大学滨江学院 12软件工程3班

2015年1月5日星期一晚九点

大工《软件工程》大作业参考题目及要求【内容仅供参考】787

网络教育学院 《软件工程》课程大作业 题目:企业货物管理系统 第一大题:谈谈你对本课程学习过程中的心得体会。 在学习软件工程过程中,或许有诸多不解,我们要从整体概念上较好地理解和把握、学好软件工程,学习时要注意多看多练要注意结合实际,更要多思考,面对错误不要一范就问,要尝试自己去解决。但是还要注意什么都学,肯定是什么都学不透的,要集中精力打攻坚战,学习软件工程首先要明白自己的学习目标究竟是什么,根据自己的实际工作出发,有针对性的在相应的学习方向上进行提高,制定出详细的学习规划。还要注意与其他科目的相辅相成,就像我们在学习面向对象分析的时候要结合大一学习的面向对象及其方法学这一在写软件的时候,我们首先要有整体的结构和思路,这样才能照着一定的思想一定思路去写下去,有人说其实写软件并不难,只要给你一个思路你就可以不断地往下写。我觉得确是如此,其实我们平时写软件我觉得并不是很难的事,平时即使遇到处理不了的技术问题,哪里编译出现错误等等其实都可以在网上提问。技术问题一般我们都可以在网上得到答案,但软件的思想不是我们看了一下就能真正理解的。 第二大题:完成下面一项课程设计。

2020秋《软件工程》课程大作业 注意:从以下4个题目中任选其一作答。 题目二:企业货物管理系统 总则:不限制编程语言,可以选用VB/C#等,不限数据库,可选用SQL/MYSQL/ACCESS等设计一个企业货物管理系统。(具 体工具平台及语言可以自己根据自己的习惯选用,不必完 全按照上述技术要求) 要求:(1)撰写一份word文档,里面包括(需求分析规格书、详细设计说明书、测试报告书)章节。 (2)需求分析规格书,包含功能需求分析、数据需求分析。 功能需求分析介绍该系统具体包含何种功能。 (3)详细设计说明书包含数据表,核心程序,模块相关截 图。数据表为数据库所建立的数据表,至少包含管理人员 信息表、货物信息表、调价记录表等。核心程序需列出系 统的核心程序。 (4)测试报告书要求简单介绍测试的方法与测试的示例, 举出一组示例即可。 (5)整个word文件名为 [作业提交: 大作业上交时文件名写法为:[以附件形式上交离线作业(附件的大小限制在

软件工程习题答案

软件工程习题及答案 一、选择题: 1. 为了提高测试的效率,应该。 A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、项目开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、项目开发计划 D、合同文档 6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助

9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出 11. 分析员是。 A、用户中系统的直接使用者 B、用户和软件人员的中间人 C、软件的编程人员 D、用户和软件人员的领导 12. 在软件开发中,有利于发挥集体智慧的一种做法是。 A、设计评审 B、模块化 C、主程序员制 D、进度控制 13. 在开发软件时,可用来提高程序员的工作效率。 A、程序开发环境 B、操作系统的作业管理功能 C、编译程序的优化功能 D、并行运算的大型计算机 14. 结构化程序设计主要强调程序的。 A、效率 B、速度 C、可读性 D、大小 15. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作。 A、软件投机 B、软件危机 C、软件工程 D、软件产生 16. 瀑布模型把软件生存周期划分为软件定义、软件开发和三个阶段,而每一阶段又可细分为若干更小的阶段。 A、详细设计 B、可行性分析 C、运行及维护 D、测试与排错 17. 软件的设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。 A、概要 B、抽象 C、逻辑 D、规划

软件工程大作业.

《软件工程》大作业 学期:2015秋季学期 班号: 学号: 姓名: 成绩: 子与信息工程学院 2015年10月

目录 第1章系统概述 (2) 1.1系统介绍 (2) 1.2开发的目的与意义 (2) 第2章可行性分析 (3) 2.1经济可行性 (3) 2.2 技术可行性 (3) 2.3 系统业务分析 (3) 第3章需求分析 (5) 3.1 结构化需求分析 (5) 3.2 系统需求说明 (5) 3.3 系统数据流图和数据字典 (6) 第4章系统设计 (9) 4.1 系统ER图 (9) 4.2 系统功能结构图 (11) 第5章系统实现 (12) 5.1用户模块 (12) 5.2用户注册功能 (13) 第6章系统测试 (14)

第1章系统概述 随着计算机网络技术和信息技术的不断发展,人类信息资源实现高度共享,从根本上改变了人类生活的方式,网上购物作为一种新型的购物方式,以其快捷方便的特点成为了人们购物的主要选择。网上支付的不断完善,加上物流业的配套建设,使得用户能够足不出户就能挑选商品,节省了时间和金钱,这种网上购物方式越来越受到人们的青睐。 1.1系统介绍 网上商城系统是一个可以方便各类人群所需,省时省力全方位的大型购物网上商城,可以让所需人群足不出户不分地域时间的购买所需用品。网上商城系统共分为两个部分:前台用户部分和后台管理部分。在前台系统中有用户注册登陆,浏览商品,选购商品,订购商品。后台系统中有系统管理,会员管理,订单管理,商品管理。在用户注册模块中,分别加强了用户注册信息验证的严格性;在商品或商家信息浏览和查询模块中,用户可以对商品进行浏览检索,查看商品的详细信息;非注册会员可以选定商品加入购物车,但只有注册成会员的用户才能对商品进行购买。在后台系统中,系统管理员可以对已注册的用户进行审查,可以对现有的商品进行管理;并对提交的订单进行处理与邮寄。 1.2开发的目的与意义 在线购物系统,从结构上讲,可以划分为前台和后台两个部分,主要涉及到前、后台的网页设计,以及与数据库相关的操作。在网络应用中,数据库的应用是一个很关键的环节。特别地,随着Internet的普及和人们对于互联网的依赖性,许多基于互联网的应用也不断的涌现出来。基于B/S(浏览器、服务器)构架开发网站和系统已成为一种主流趋势,人们对其的需求也越来越大。 现在已经进入网络时代,很多电子产品的生产企业也开始意识到了网络的重要性,开始在电子产品中加入对网络服务的支持。比如在智能手机中增加了对移动互联网应用的支持,这在提升了电子产品的竞争力的同时,也扩展了电子商务的应用范围。 总体上看,电子商务的发展,具有十分良好的发展前景。

软件工程试题答案

一、填空题(每空1 1.软件生存周期一般可分为__问题定义__、可行 性研究、_需求分析_____、设计编码、__测试 ________、运行与维护阶段。 2.按软件的功能进行划分,软件可以划分为 系统软件、支撑软件和 应用软件。 3.可行性研究主要集中在以下四个方面经济可 行性、技术可行性、 法律可行性和抉择。 4.用户界面的可使用性是用户界面设计 最重要的也是最基本的目标。 5.常见的软件概要设计方法有3大类:以数据流 图为基础构造模块结构的___结构化设计方法 _________,以数据结构为基础构造模块的 __jackson方法__________,以对象、类、继承 和通信为基础的__面向对象设计方法 __________。 6.__数据流图________和__数据字典___共同构成 系统的逻辑模型。 7.软件测试的方法有__分析方法________和___非 分析方法_______(即黑盒法)。 8.单元测试一般以___白盒_____________测试为 主,___黑盒______测试为辅。 9.成本估计方法主要有__自底向上估计 ________、_自顶向下估计_________和算法模型 估计三种类型。 二、单项选择题(每小题2分,共10分) 1.下列哪个阶段不属于软件生存周期的三大阶 段( C )。 A、计划阶段 B、开 发阶段 C、编码阶段 D、维 护阶段 2.需求分析是(A )。 A、软件开发工作的基础 B、软 件生存周期的开始 C、由系统分析员单独完成的 D、由 用户自己单独完成的 3.原型化方法是软件开发中一类常用的方法,它 与结构化方法相比较,更需要(B )。 A、明确的需求定义 B、完整 的生命周期 C、较长的开发时间 D、熟练 的开发人员 4.软件维护时,对测试阶段未发现的错误进行测 试、诊断、定位、纠错,直至修改的回归测试 过程称为( A )。 A、改正性维护 B、适应性维 护 C、完善性维护 D、预防性维 护 5.一般说来,投入运行的软件系统中有错误 (A )。 A、不是不可以理解的

上海大学软件工程试卷试题(附答案)

、单项选择题(本大题共20小题,每小题 1 分,共20分) 在每小题列出的备选项中只有一个是符合题目要求的,多选或未选均无分。请将其代码填写在题后的括号内。错选、 1. 在软件生命周期的各个阶段中,工作量最大的阶段是 A .需求分析B.总体设计 C.综合测试 D .软件维护 2. 瀑布模型的特点不包括 A.前一阶段的任务没有完成,不能进入下一阶段工作 B.进入某个阶段工作后,不再回复到之前的阶段工作C.只有完成并评审了规定的文档,才标志着一个阶段的工作结束D.在软件产生之前,需求无法得到充分的测试 3. 螺旋模型强调的开发手段是 A.分阶段开发 C.风险驱动开发 4. 需求分析阶段的工作不包括 A.获得当前系统的物理模型 C.建立目标系统的逻辑模型 5. 总体设计阶段的工作不包括 A.确定程序的模块组成 C.确定实现各个模块功能的处理逻辑 6. 描绘系统物理模型的传统工具是 A .系统流程图 C.实体-联系图 7. 符合信息隐藏原理的是 A .将信息隐藏起来不被发现 C.将可能要修改的设计决策隐藏起来B.废弃式原型开发 D.增量式开发 B.抽象出当前系统的逻辑模 型 建立目标系统的物理模型 D. B.确定模块间的相互关 系 D.制定测试计划 B.数据流图 D.状态转换图 B.将信息隐藏起来确保安全 D.将不要修改的设计决策隐藏起 来 8. 模块的独立性原则是指软件设计时要尽量使模块具有 A .低内聚、低耦合B.低内聚、高耦合C.高内聚、低耦合D.高内聚、高耦合

[ 9. 有利于提高模块独立性的做法是 A.尽量使模块具有逻辑型内聚 B.尽量使模块间具有内容型耦合 C.使判定作用范围内的模块尽量成为该判定所在模块的直属下级模块 D.尽量提高模块的扇入数和扇出数 [ 10. 有关结构化设计(SD )方法的正确叙述是 ] A.只使用顺序、选择和循环 3 种控制结构 B.由数据结构映射出软件的结构 C.是一种面向对象的设计方法 D.是一种面向数据流的设计方法 [ 11. 有关总体设计阶段所使用的结构图的不正确叙述是 ] A.能够描述软件系统的模块组成 B.结构图中的模块是按照自上而下、自左向右的顺序执行的 C.能够描述模块间的调用关系以及模块间调用时所传递的信息 D.将模块间调用时所传递的信息分成两种:数据信息和控制信息 [ 12. 要求使用顺序、选择和循环控制结构的组合或嵌套来表达程序的过程设计工具是 A .程序流程图B . 盒图 C .判定表D.PDL 13 . 关于好的编码风格的正确叙述是 A .把多个语句写在同一行以节省空间B.要求用户指定输入数据的数目 C .检查输入项重要组合的合法性D.表达式中不使用多余的括号,以简化表达式 14 . 能发现软件需求规格说明书中的错误的测试步骤是 A .模块测试B.子系统测试 C .系统测试D.验收测试 15 . 自顶向下集成测试和自底向上集成测试都具有的优点是 A .较早发现主要设计错误B.可采用深度优先策略和宽度优先策略 C .支持故障隔离D.可复用模块得到充分测试 19 . 不符合面向对象设计准则的是 A .用对象的封装性来实现信息隐藏B.尽可能松散对象之间的交互耦合 C .尽可能减小继承耦合度D.尽可能设计小而简单的类 20. 上海大学校内电话号码由 5 位数字组成,但第 1 位数字只能是 5 或6。该电话号码的

软件工程大作业

《软件工程》大作业 学期: 2015秋季学期 班号: 学号: 姓名: 成绩: 子与信息工程学院 2015年10月

电子与信息工程学院大作业 目录 第1章系统概述 (2) 1.1系统介绍 (2) 1.2开发的目的与意义 (2) 第2章可行性分析 (3) 2.1经济可行性 (3) 2.2 技术可行性 (3) 2.3 系统业务分析 (3) 第3章需求分析 (5) 3.1 结构化需求分析 (5) 3.2 系统需求说明 (5) 3.3 系统数据流图和数据字典 (6) 第4章系统设计 (9) 4.1 系统ER图 (9) 4.2 系统功能结构图 (11) 第5章系统实现 (11) 5.1用户模块 (11) 5.2用户注册功能 (12) 第6章系统测试 (13) 1

第1章系统概述 随着计算机网络技术和信息技术的不断发展,人类信息资源实现高度共享,从根本上改变了人类生活的方式,网上购物作为一种新型的购物方式,以其快捷方便的特点成为了人们购物的主要选择。网上支付的不断完善,加上物流业的配套建设,使得用户能够足不出户就能挑选商品,节省了时间和金钱,这种网上购物方式越来越受到人们的青睐。 1.1系统介绍 网上商城系统是一个可以方便各类人群所需,省时省力全方位的大型购物网上商城,可以让所需人群足不出户不分地域时间的购买所需用品。网上商城系统共分为两个部分:前台用户部分和后台管理部分。在前台系统中有用户注册登陆,浏览商品,选购商品,订购商品。后台系统中有系统管理,会员管理,订单管理,商品管理。在用户注册模块中,分别加强了用户注册信息验证的严格性;在商品或商家信息浏览和查询模块中,用户可以对商品进行浏览检索,查看商品的详细信息;非注册会员可以选定商品加入购物车,但只有注册成会员的用户才能对商品进行购买。在后台系统中,系统管理员可以对已注册的用户进行审查,可以对现有的商品进行管理;并对提交的订单进行处理与邮寄。 1.2开发的目的与意义 在线购物系统,从结构上讲,可以划分为前台和后台两个部分,主要涉及到前、后台的网页设计,以及与数据库相关的操作。在网络应用中,数据库的应用是一个很关键的环节。特别地,随着Internet的普及和人们对于互联网的依赖性,许多基于互联网的应用也不断的涌现出来。基于B/S(浏览器、服务器)构架开发网站和系统已成为一种主流趋势,人们对其的需求也越来越大。 现在已经进入网络时代,很多电子产品的生产企业也开始意识到了网络的重要性,开始在电子产品中加入对网络服务的支持。比如在智能手机中增加了对移动互联网应用的支持,这在提升了电子产品的竞争力的同时,也扩展了电子商务的应用范围。 总体上看,电子商务的发展,具有十分良好的发展前景。

软件工程复习题库带答案完整版

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工 B.变换、加工、数据流和存储 C.加工、数据流、数据存储和外部实体 D.变换、数据存储、加工和数据流

软件工程课后作业第四章.doc

第四章 4.1.简述软件设计阶段的基本任务。 答:(1)数据/类设计数据/类设计将分析类模型变换成类的实现和软件实现所需要的数据结构。 (2)体系结构设计体系结构设计定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。 (3)接口设计接口设计描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。 (4)部件级设计部件级设计将软件体系结构的结构性元素变换为对软件部件的过过程性描述。 4.2.软件设计与软件质量的关系是怎么样的? 答:设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确地转化为完整的软件产品或系统的主要途径。 4.4.简述模块、模块化及模块化设计的概念。 答:模块:具有名字、参数、功能等外部特征以及完场模块功能的程序代码和模块内部数据等特征。 模块化:把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件。 模块化设计:简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来, 并定义和调试好各个框架之间的输入、输出链接关系。 4.5.举例说明每种类型的模块耦合度和每种类型的模块内聚度。 答:1、巧合内聚:讲几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块称巧合内聚模块。 2、逻辑内聚:逻辑内聚是指完成一组逻辑相关任务的模块,调用该模块时,由传送给模 块的控制性参数来确定该模块应执行哪一种功能。 3、时间内聚:时间内聚是指一个模块中的所有任务必须在同一时间段内执行。 4、过程内聚:过程内聚是指一个模块完成多个任务,这些任务必须指定的过程执行。 5、通信内聚:通信内聚是指一个模块内所有处理元素都集中在某个数据结构的一块区 域中。 6、顺序内聚:顺序内聚是指一个模块完成多个功能,这些功能又必须顺序执行 7、功能内聚:功能内聚是指一个模块中各个部分都是为完成一项具体功能而协同工作, 紧密联系,不可分割。 1、内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一 个模块时 ,就发生了内容耦合。此时 ,被修改的模块完全依赖于修 改它的模块。如果发生下列情形 ,两个模块之间就发生了内容耦合 (1) 一个模块直接访问另一个模块的内部数据; (2) 一个模块不通过正常入口转到另一模块内部; (3) 两个模块有一部分程序代码重叠(只可能出现在汇编语言中); (4) 一个模块有多个入口。

软件工程全部习题答案

软件工程全部习题答案。(2003-5-31 19:55:00) 第九章 1、渐增模型有那几种特点 答:增量构造和演化提交。增量构造是瀑布模型的基础上在一些的阶段中采用增量开发一些阶段整体开发。演化提交是在瀑布模型的基础上所有阶段都使用增量开发也就是不紧使用增量开发也使用增量提交。 2、快速原形有那几种特点 答:探索型、试验型、演化型。探索型:在需求阶段帮助明确理解需求用完抛弃。试验型:在设计阶段考核现行方案是否合适用完抛弃。演化型:及早的向用户展示一个系统的原形包含主要的功能得到用户的认可后将原形不断的扩充直到系统完成。 3、快速原形开发的步骤 答:快速开发、需求、构造原形、原形、运行原形、评价原形、修改意见。 4、评价快速原形的优缺点 答:可以更清楚的理解用户的需求、开发阶段可以用原形解决局部的困难,通过原形的开发可以让用户看见系统的初步功能的实现有利与用户的开发人员更好的交流,及早的解决存在的问题减少开发的风险。 缺乏好的管理工具和开发环境、缺乏管理机制、对开发人员的技术要求高、更新文档比较困难。 5、对比瀑布模型和增量模型,指出增量模型的新思路。 答:瀑布模型是一种整体的开发模型,开发的每一阶段必须按线性的顺序来进行,前一阶段的工作没有完成后一阶段的工作就不能开始。由于需求分析的易变性使的软件开发工作不顺利,同时瀑布模型的每个阶段有不可避免的错误出现,那么延伸到以下的各个阶段错误就会放大。增量模型是非整体开发的模型它采用渐增模型和原形模型,软件的开发是用增量开发和增量提交。 第八章 1、软件维护有那些内容 答:校正性维护、完善性维护、适应性维护、预防性维护 2、软件维护的特点 答:结构性维护、非结构性维护、别人的程序难懂、开发和维护在人员和时间上的差异、文档的不一致性、维护不是一项吸引人的工作 3、软件维护的流程 答:制定维护申请报告、审查申请报告并批准、实施维护并做记录、复审 4、软件维护的副作用 答:代码副作用、数据副作用、文档副作用 5、什么是软件的可维护性可维护性度量的特性 答:是能够别理解、适应、校正和增强功能的容易程度。可理解、可适应、可测试、可修改、可靠、可移植可使用、效率。 6、提高可维护性的方法 答:使用有可维护性的程序设计语言、及时更新文档、使用先进技术和工具、明确软件质量目标、明确质量保证工作。 第七章 1、软件测试的目的是测试中要注意那些原则 答:软件测试的目的是的发现软件中存在错误的活动。好的测试用例可以发现至今没有发现的错

软件工程试题库集及答案

综合练习一答案 选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末B.60年代初C.60年代末D.70年代初 A.运筹学B.工程学C.软件学D.软件学E.数字2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员D。用户和软件人员的领导

软件工程期末试题(含答案)广东药学院

填空题 1. 定义;开发;维护;问题定义;可行性研究;需求分析;总体设计;详细设计;编码和单元测试;综合测试;维护;维护。 2. 技术;经济;操作;软件项目的可行性/ 3. 一致性;现实性;完整性;有效性;完整性;有效性;原型系统。 4. 模块化;抽象;逐步求精;信息隐藏;局部化;模块独立;结构程序设计;可理解性。 5. 发现错误;黑盒测试;白盒测试;穷尽测试;测试方案。 6. 改正性维护;适应性维护;完善性维护;预防性维护。 一、 1. 软件生命周期可划分为、和3个时期,通常把这3个时期再细分为8个阶段,它们是①、②、③、④、⑤、⑥、⑦和⑧,其中的阶段的工作量是8个阶段中最大的。 2. 可行性研究的任务是从、和等三个方面研究。 3. 至少应该从、、和4个方面验证软件需求的正确性,其中和这两个方面的正确性必须有用户的积极参与才能验证,而且为了验证这两个方面的正确性,往往需要开发。 4. 软件总体设计时应遵循、、、、、和等6条基本原则。详细设计通常以技术为逻辑基础,因为从软件工程观点看,是软件最重要的质量标准之一。 5. 软件测试的目的是,通常把测试方法分为和两大类。因为通常不可能做到,所以精心设计是保证达到测试目的所必须的。 6. 软件维护通常包括4类活动,它们分别是、、、。 二、判断下述提高软件可维护性的措施是否正确,正确的在括弧内写对,错的写错。 1. 在进行需求分析时同时考虑维护问题。() 2. 完成测试后,为缩短源程序长度而删去程序中的注释。() 3. 尽可能在软件开发过程中保证各阶段文档的正确性。() 4. 编码时尽可能使用全局变量。() 5. 选择时间效率和空间效率尽可能高的算法。() 6. 尽可能利用硬件的特点以提高效率。() 7. 重视程序结构的设计,使程序具有较好的层次结构。() 8. 使用维护工具或软件工程环境。() 9. 进行概要设计时尽可能加强模块间的联系。() 10. 提高程序可读性,尽可能使用高级语言编程。() 三、按下述要求完成给出的程序流程图,即在答案栏内写出图中A、B、C、D、E的正确内容 给程序输入二维数组W(I,J),其中I≤M,J≤N(MT N均为正整数)。程序打印出数组中绝对值最小的元素值Q=W(K,L),及其下标K、L的值。假定数组中仅有一个绝对值最小的元素。 应该完成的程序流程图如下所示

软件工程大作业.

软件工程大作业 题目:学生档案管理系统 小组成员:戚盈洁( 王大伟( 王磊( 霍成海( 目录 第一章. 系统调查 (3 1.1系统调查内容 (3 1.2系统调查方法 (3 第二章. 系统分析 (3 2.1 系统分析 (3 2.2 系统调结构图 (4 2.3 子系统功能描述 (4 第三章. 系统设计 (6 3.1 界面设计原则 (6 3.2 数据库设计 (6 3.3 代码设计 (10 第四章. 学生照片管理模块设计 (14

4.1 ImageFunc模块 (14 4.2 设计照片管理窗体 (16 4.3 在学生信息管理窗体中添加照片管理代码 (17 第五章. 系统测试 (18 5.1 系统测试项目 (18 5.2 系统评估 (20 第一章. 系统调查 1.1系统调查内容 学校各院系基本概况:院系名称,专业设置,课程设置,课时安排,学生人数,学生班级数等。 学校资源条件调查,包括计算机配备,网络支持条件等。 各院系专业设置概况:现有开设专业及规划中开设专业设置,专业开设课程,各课程授课教师与成绩处理。 学校各部门(学生处、教务处、档案管理室、各院系对学生基本情况的需求与掌握,对学生基本信息的处理方式与业务流程。 学校各部门、单位、教师、学生对系统的其他要求和希望。 1.2系统调查方法 通过对部分高校学生档案管理人员的访问,了解到目前大部分高校的档案管理工作存在工作效率低,成本高,保密性差,查询困难等问题。大部分工作人员都提出需要一个具有检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本

低等优点的现代化信息管理系统。为解决此问题我们决定开发一个既方便又操作简单,功能较为齐全的学生档案管理系统。 第二章. 系统分析 2.1 系统分析 1 系统开发的总体任务是学生档案管理的系统化和规范化。 2 系统开发的目标是使档案管理工作科学化和规范化,提高安全系数。 3 系统功能树本系统主要功能是实现学生基本情况的管理。 图3.1学生档案管理系统功能模块 2.2 系统调结构图

第四章软件工程测试题

第四章测试题 1.在软件的体系结构中,模块是可组合、分解和更换的单元。模块具有________、________、_______和__________等属性。 2.软件结构的设计是以__________为基础的,以需求分析的结果为依据,从实现的角度经进一步划分为_________,并组成模块的_________。 3.在大型数据处理系统的功能分析与设计中,同时要进行数据分析和数据设计。数据库的”概念设计”与”逻辑设计”分别对应于系统开发中的__________与_________,而数据库的”物理设计”与模块的_________相对应。 4.进入了设计阶段,要把软件”做什么”的_________变换为”怎么做”的_________。 5.在软件需求分析阶段,已经搞清楚了软件_________的问题,并把这些需求通过________描述出来,这也是目标系统的___________。 6.模块间耦合高低取决于模块间_________、_________及________。 7.内聚性有七种类型(),(),(),(),(),(),()。 8.耦合是指软件系统结构中_________相互联系紧密程度的一种度量。其耦合性就越强,模块的________就越差。 9.结构图的深度指结构图________,也是模块________,结构宽度指_________。10.软件结构使用的图形工具,一般采用( )图。 A.DFD B.PAD C.SC D.ER 11.属于软件设计的基本原理是( )。 A.数据流分析设计 B.变换流分析设计 C.事务流分析设计 D.模块化 12.将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是( )的。 A.逻辑性 B.瞬时性 C.功能性 D.通信性 13.结构分析方法就是面向( )自顶向下逐步求精进行需求分析的方法。 A.目标 B.数据流 C.功能 D.对象 14.下列几种耦合中,( )的耦合性最强。 A.公共耦合 B.数据耦合 C.控制耦合 D.内容耦合 15.( )数据处理问题的工作过程大致分为三步,即取得数据、变换数据和给出数据。 A.变换型 B.事务型 C.结构化 D.非结构化 16.在对数据流的分析中,主要是找到中心变换,这是从( )导出结构图的关键。 A.数据结构 B.实体关系 C.数据流图 D.E-R图 17.内容耦合指( )。 A.两个模块之间传递的是数据结构 B.一个模块调用另一个模块时,传递的是控制变量 C.通过一个公共数据环境相互作用的那些模块间的耦合 D.一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部

软件工程选择题

第一章初认软件工程 1、下面得()说法就是正确得. A、由于软件就是产品,因此可以应用其她工程制品所用得技术进行生产 B、购买大多数计算机系统所需得硬件比软件更昂贵 C、大多数软件系统就是不容易修改得,除非它们在设计时考虑了变 D、一般来说,软件只有在其行为与开发者得目标一致得情况下才能成功2、造成大型软件开发困难得根本原因在于()。 A、开发人员缺乏足够得开发经验 B、对软件开发得资金投入不足 C、项目开发进度不合理 D、软件系统得复杂性 3、软件会逐渐退化而不会磨损,其原因在于()。 A、软件通常暴露在恶劣得环境下 B、软件错误在经常使用之后会逐渐增加 C、不断得变更使组件接口之间引起错误 D、软件备件很难订购 4、“软件工程”术语就是在()被首次提出。 A、Fred Brooks得《没有银弹:软件工程中得根本与次要问题》B、1968年NATO会议 C、IEEE得软件工程知识体系指南(SWEBOK) D、美国卡内基·梅隆大学得软件工程研究所 5、Ariane 5火箭发射失败得事例告诉我们()。 A、系统环境得变化可能影响软件采集数据得精度、范围与对系统得控制 B、软件后备系统可以通过复制生成 C、软件重用必须重新进行系统论证与系统测试 D、选项A与C E、选项A、B与C 6、软件工程得基本目标就是( )。 A、开发足够好得软件 B、消除软件固有得复杂性 C、努力发挥开发人员得创造性潜能 D、更好地维护正在使用得软件产品 7、软件工程方法就是()。 A、为了获得高质量软件而实施得一系列活动 B、为开发软件提供技术上得解决方法 C、为支持软件开发、维护、管理而研制得计算机程序系统 D、为了理解问题与确定需求而采取得一些技术与方法 8、下面得()就是正确得。 A、运行正确得软件就就是高质量得软件。 B、软件质量就是在开发过程中逐渐构建起来得。 C、软件产品质量越高越好,最理想得情况就是达到“零缺陷”。

软件工程第四章

软件工程作业三 1、简述软件设计阶段的主要工作内容。 答:(1)概要设计:将软件需求转化为系统结构(程序结构、接口)和数据结构。通过仔细分析软件需求规格说明,确定组成系统的模块及各模块之间的关系, 设计出完成预定功能的模块结构(软件结构),并建立接口。 (2)详细设计:详细地设计每个模块,即确定完成每个模块功能所需要的算法和数据结构。 2、软件设计过程中,如何运用模块化原理? 答:用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。 3、什么是模块独立性?软件设计中,如何提高模块独立性? 答:含义:模块独立性是指模块内部各部分之间、以及模块之间关系的一种度量标准。模块软件结构中的每个模块完成一个相对独立的特定子功能,并且和其它模块的接 口是简单的。 提高方法:改进软件结构,通过分解或合并模块,降低耦合、提高内聚。 4、简述结构化程序的基本特征。 答:一个程序的代码块仅仅通过顺序、选择和循环三种控制结构进行连接;并且每个代码块只有一个入口和一个出口。 5、商场商品信息管理系统的主要功能为:库房管理员负责商品的存储,及时录入商品的入/出库信息,系统处理商品的变更情况并保存到相关文件,系统定期打印库房商品的库存清单给采购部。前台销售员负责商品销售,录入商品销售信息,系统处理并保存商品销售信息、为顾客打印购货清单。销售经理可以查询商品销售情况、商品库存情况,并得到相应的统计报表。 下面是表示商品信息管理系统功能的数据流图,请分析数据流图的类型,设计软件结构图并简述相应的设计步骤。

中南大学软件工程历届试卷

填空题(本题20分,每小题2分) 1. 瀑布模型是以文档为驱动、适合于(软件需求确定的)软件项目的开发。 2. 需求分析的基本任务是(确定用户需要软件做什么)。 3. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(边界值分析法)。 4. 根据程序流程图划分的模块通常是(过程)内聚的模块。 5. 软件的分类,按其功能可分为:系统软件、(支撑软件)和应用软件。 6. UML的定义包括UML语义和(UML表示法)两个部分。 7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和( 整体与部分结构)。 四、测试题(本题16分,每小题8分) 某程序的程序流程图如下图所示,试据此回答下述问题: 1. 计算程序的环形复杂度; 2. 设计测试用例,满足基本路径覆盖。 四.(1)环路复杂性=判断数+1=6+1=7(个) (2)路径1:(0)—①—(13)—(19) 路径2:(0)—②—③—(14)—(19) 路径3:(0)—②—④—⑤—(15)—(19) 路径4:(0)—②—④—⑥—⑦—(16)—(19) 路径5:(0)—②—④—⑥—⑧—⑨—(17)—(19) 路径6:(0)—②—④—⑥—⑧—⑩—(18)—(19) 路径7:(0)—②—④—⑥—⑧—⑩—(12)—(19) 一、填空题(本题30分,每小题1.5分) 1、软件是计算机程序、(描述计算机程序的文档)及(数据)的完整集合,将其统称为软件配置,这些项称为软件配置项。通过正式复审的软件配置项称为(基线),只有通过正式的变化控制过程才能改变它。 2、通常,将软件生命周期全过程中使用的一整套技术方法的集合称为方法学,包含三个要素,即方法、(工具)和(过程)。传统方法学采用(结构化)技术来自顶向下顺序地完成软件开发的各项任务,而面向对象方法是一种以(数据)为主线,把数据和对数据的操作紧密地结合起来的方法,其开发过程是一个多次迭代的演化过程。 3、软件测试的目标是(暴露程序中的错误),因而从心理学角度来看,由程序作者对自己编写的程序进行测试是不恰当的。设计测试方案是测试阶段的关键技术问题,测试方案一般包括(测试目的)、输入的测试数据

《软件工程导论》课程大作业-题目及要求

《软件工程专业导论与职业生涯规划》具体要求 一、大作业题目(注:每个小组完成一个题目) 1、计算机系统软件是什么?具体的系统软件有哪些?它们的特点、作用、地位是什么?就其中的2~3个具体的系统软件进行较为详细的阐述。 2、计算机应用软件是什么?具体的应用软件有哪些?它们的特点、作用、地位是什么?就其中的2~3个具体的应用软件进行较为详细的阐述。 3、阐述计算机软件的发展历程,对比分析各阶段的特征、理论体系、优势与不足。 4、软件危机是什么?列举2~3个具体的软件危机案例。导致软件危机爆发的原因有哪些?简单阐述现阶段软件危机的具体表现。 5、陈述“软件工程”概念提出的历史背景,包括发生的时间、地点、人物、事件等。“软件工程”的定义自提出以来,有多种说法。请尽可能罗列各种说法,并对其中的2~3个说法进行评述。软件工程的七条基本原理是哪些?分别对每条原理进行较为详细的阐述。 6、软件工程的目标是什么?十个性能是哪些?分别对每个性能进行较为详细的阐述。 7、软件工程研究的主要内容包括哪两个方面?分别对每个方面进行较为详细的阐述。 8、软件开发过程必须遵循的软件工程原则有哪些?分别对每个原则进行较为详细的阐述。 9、软件工程的过程包括哪些?分别对每个过程进行较为详细的阐述。 10、软件生命周期的概念是什么?软件生命周期的划分有哪些阶段?分别对每个阶段进行较为详细的阐述。 11、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的瀑布模型和原型模型进行较为详细的阐述及对比分析,并各举例说明。 12、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的演化模型和喷泉进行较为详细的阐述及对比分析,并各举例说明。 13、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的基于知识的模型和基于构件的模型进行较为详细的阐述及对比分析,并各举例说明。 14、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的变换模型和双赢螺旋模型进行较为详细的阐述及对比分析,并各举例说明。 15、软件工程的四要素是哪些?分别对每个要素进行较为详细的阐述。中国制定

《软件工程》单项选择题标准答案

《软件工程》单项选择题答案

————————————————————————————————作者:————————————————————————————————日期:

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 ) 1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( ) A. 软件工程 B. 软件周期 C. 软件危机 D. 软件产生 2. 研究开发所需要的成本和资源是属于可行性研究中的 ( ) 研究的一方面。 A. 技术可行性 B. 经济可行性 C. 社会可行性 D. 法律可行性 3.IDEF0 图不反映出系统 ( ) A. 系统做什么 B. 系统功能如何实现 C. 系统由谁来做 D. 系统实现的约束条件 4. 模块的内聚性最高的是 ( ) A. 逻辑内聚 B. 时间内聚 C. 偶然内聚 D. 功能内聚 5. 在 SD 方法中全面指导模块划分的最重要的原则是 ( ) A. 程序模块化 B. 模块高内聚 C. 模块低耦合 D. 模块独立性 6. 软件详细设计主要采用的方法是 ( ) A. 模块设计 B. 结构化设计 C.PDL 语言 D. 结构化程序设计 7. 下列关于 JSD 方法不正确的说法是 ( ) A.JSD方法主要用于规模不大的数据处理系统 B.JSD方法不明确的划分软件概要设计和详细设计的两个阶段 C.JSD方法适用于输入数据和输出数据之间有对应关系的问题求解 D.JSD 方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此它只适用于详细设计阶段 8. 不适合作为科学工程计算的语言是 ( ) A. Pascal B. C C. Fortran D. Prolog 9. 黑盒测试在设计测试用例时,主要需要研究 ( ) A. 需求规格说明与概要设计说明 B. 详细设计说明 C. 项目开发计划 D. 概要设计说明与详细设计说明 10. 若有一个计算类型的程序,它的输入量只有一个 X ,其范围是[ -1.0 , 1.0 ],现从输入的角度考虑一组测试用例: -1.001 , -1.0 , 1.0 , 1.001 。设计这组测试用例的方法是 ( ) A. 条件覆盖法 B. 等价分类法 C. 边界值分析法 D. 错误推测法 11. 下列属于维护阶段的文档是 ( ) A. 软件规格说明 B. 用户操作手册 C. 软件问题报告 D. 软件测试分析报告 12. 快速原型模型的主要特点之一是 ( ) A. 开发完毕才见到产品 B. 及早提供全部完整的软件产品 C. 开发完毕后才见到工作软件 D. 及早提供工作软件 13. 因计算机硬件和软件环境的变化而作出的修改软件的过程称为 ( ) A. 教正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护 14. 类库这种机制是 ( ) 级别的信息共享。 A. 同一类 B. 不同类 C. 同一应用 D. 不同应用 15. 只有单重继承的类层次结构是 ( ) 层次结构。 A. 网状型 B. 星型 C. 树型 D. 环型 16. 在屏蔽硬件错误的冗错技术中,冗余附加技术有 ( ) A. 三模冗余 B. 信息冗余 C. 冗余备份程序的存储及调用 D. 关键程序和数据的冗余存储和调用 17. 软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性

相关主题
文本预览
相关文档 最新文档