当前位置:文档之家› 软件工程复习1

软件工程复习1

软件工程复习1
软件工程复习1

软件工程复习

简答:

1.验证需求的方法:一致性,现实性,完整性,有效性。(重要)

一致性:所有需求必须是一致的,任何一条需求不能和其他需求相互矛盾。

完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。

现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的,对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。

有效性:必须证明需求是正确有效的,确实能解决用户面对的问题

2.瀑布模型的缺点,优点即缺点,文件驱动

瀑布模型:需求分析验证-规格说明验证-设计验证-编码测试-综合测试-维护瀑布模型有许多优点,可强迫开发人员采用规范的方法,严格的规定了每个阶段必须提交的文档,要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。各阶段产生的文档是维护软件产品时必不可少的,遵循瀑布模型的文档约束,将使软件维护变得容易。瀑布模型的成功很大程度上是由于它基本上是一种文档驱动的模型。但是这也是它的一个主要缺点,在可运行的产品交付给用户运行之前,用户只能通过文档来了解产品是什么样的。总之瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出软件产品不能真正满足用户的需要。

3.耦合度

耦合度(衡量不同模块彼此间相互依赖的紧密程度)内聚性也称块内联系,即一个模块内部各个元素彼此结合的紧密程度的度量。

数据耦合低控制耦合中公共环境耦合中内容耦合高

4.软件开发生命周期

软件生命周期:软件定义,软件开发和软件维护三个时期组成

定义期:问题定义->可行性研究->需求分析

软件开发期:系统设计包括总体设计和详细设计

系统实现包括编码和测试

软件维护期:每一次维护本质上是一次压缩和简化了的定义和开发过程

5.三个模型对比(之间的关系)数据流图在面向对象中用的较少(功能模型)功能模型做什么,动态模型规定什么时候,对象模型定义了做事情的实体(1)针对每个类建立的动态模型,描述了类实例的生命周期或运行周期(2)状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,他们同时与类图中的服务相对应。

(3)功能模型中的处理(或用例,下同)对应于对象模型中的类所提供的服务。通常复杂的处理对应于复杂对象提供的服务,简单的处理对应于更基本的对象提供的服务。有时一个处理对应多个服务,也有一个服务对应多个处理。

(4)数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。

(5)数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。

(6)用例图中的行为者,可能是对象模型中的对象。

(7)功能模型中的处理(或用例)可能产生动态模型中的事件。

(8)对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。

大题

1.数据流图

2.对象模型,功能模型,动态模型(对象图不考,考类图)

类图:

3.黑盒等价类边界划分

第二章习题2.3

2.为方便储户,某银行拟开发计算机储蓄系统,储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。

写出问题定义并分析此系统的可行性。

3.为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名,性别,工作单位,身份证号码,旅行时间,旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。

写出问题定义并分析此系统的可行性。

第一章

软件工程:是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

计算机软件=程序+数据+文档资料

软件分类:系统软件和应用软件

软件特点:和硬件相比,软件是逻辑产品,不是有型的物质;软件产品的生产主要是研制;软件不会磨损;软件大多数需要定制。

软件工程的产生背景:软件危机。

软件危机(定义:严重问题)

(危机表现:开发成本和进度估计不准,用户对已经完成的系统不满意,产品质量靠不住,不可维护,没有适当的文档,成本上升,生产率提高的速度太慢)软件危机产生原因:不断变化的用户需求的代价

软件工程典型定义:

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发软件,把经过时间考验证明是正确的管理技术和当前能够得到的最好技术方法结合起来,这就是软件工程。

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

三要素:软件开发方法,软件工具,软件过程。

常见开发方法:

1、结构化开发方法,是一种面向数据流的开发方法。指导思想是自顶向下,逐

步求精。基本原则是功能的分解与抽象。(包括结构化分析(完成需求分析),结构化设计(实现系统的概要设计),结构化实现(详细设计))

2、面向对象开发方法,以对象作为基本的元素,统一建模语言UML,为面向对

象的标准建模语言。(包括面向对象设计,面向对象分析,面向对象实现)软件工具:一般是指为了支持软件人员开发和维护活动而使用的软件。包括项目估算工具,需求分析工具,设计工具,编码工具,测试工具和维护工具等。

软件生命周期:软件定义,软件开发和软件维护三个时期组成。

定义期:问题定义->可行性研究->需求分析

软件开发期:系统设计包括总体设计和详细设计

系统实现包括编码和测试

软件维护期:每一次维护本质上是一次压缩和简化了的定义和开发过程

生命周期(软件过程)模型:(有瀑布模型,增量模型,螺旋模型,喷泉模型,变换模型和基于知识的模型等)

瀑布模型:开发设计->需求分析->概要设计->详细设计->编码->测试->维护。瀑布模型是一种整体开发模型,特点:阶段间有顺序性和依赖性,推迟实现,质量保证的观点。缺点正式它的优点。

而增量模型是非整体开发模型。模型具有较大的灵活性,适合于软件需求不明确,设计方案有一定风险的软件项目。部分功能,可交付的,在可交付的基础上不断的丰富功能。

原型模型:部分功能,部分特征实现。遵循瀑布模型。

螺旋模型将瀑布模型与增量模型结合起来,增加了风险分析(开发过程分为几个螺旋周期)风险驱动。

喷泉模型:适合OO开发。特点:自迭代,相邻的阶段是重叠。

统一过程:RUP

第二章可行性研究

从以下三个方面分析研究每种解决方法的可行性:

技术可行性(开发的风险,资源的有效性,技术),经济可行性(成本-效益分析,长期公司经营策略,开发所需的成本和资源等),操作可行性(系统的操作方式在目标组织内是否行得通),(社会可行性(关注以上三个方面))

主要产出:愿景文档

主要工具:系统流程图、数据流图

系统流程图:(可用于可行性研究和需求分析)

含义:概括的形式->描述高层逻辑模型,通过概要的设计->变成所建议系统的物理模型。

从黑盒的角度看待系统以及系统的边界。针对已有的系统,现有的系统。

系统流程图用图形符号表示系统中的各元素(如人工处理、数据处理、数据库、文件等),是描述物理系统的工具,表达了系统各元素的信息流动情况。

表示法(基本符号):

实例:

数据流图:重点

数据流从输入到输出的变换过程。

主要符号:输入输出、加工、数据存储(通过数据字典描述)、数据流DFD符号:

例子:

数据字典:(分析阶段的工具)

内容:数据流,数据存储,数据的起点和终点,数据处理

定义数据的方法:顺序、选择、循环、可选

经济效益分析:

一种说法:系统的经济效益等于因使用新的系统而增加的收入加上使用新的系统可以节省的运行费用。

另一种说法:较少运行的费用和增加的收入。

可行性研究文档:引言……所建议系统的操作可行性分析,社会因素可行性分析等。若值得开发,下一步制定项目开发计划(费用,时间,进度,人员组织硬件设备的配置等进行说明和规划)。

第三章结构化需求分析

需求分析(任务是准确定义新系统目标,指出“系统做什么”)是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。

任务:

问题识别:双方确定问题的综合需求:功能需求,性能需求,环境需求,用户界面需求,将来可能提出的要求。

分析综合,导出软件的逻辑模型。描述逻辑模型:

数据流图(DFD)(建立功能模型)

数据字典(DD)

实体-联系图(E-R图)(建立数据模型)

IPO图(Input-Process-Output)输入,处理,输出

一个例子:

状态图:建立行为模型一个例子:

层次方框图

Warnier图

Pad图 (也可用于此)

结构化需求分析方法(面向数据流自顶向下逐步求精进行需求分析)中的模型 理解描述问题信息域的数据模型(E-R模型)

定义软件满足需求的功能模型(数据流图)

描述软件动态特征的行为模型(状态图)

能够支持3种模型细化的层次表达方式

过程:获取需求,验证需求,形成文档。

产出:需求规格说明书(SRS)

验证需求的方法:一致性,现实性,完整性,有效性。(重要)

一致性:所有需求必须是一致的,任何一条需求不能和其他需求相互矛盾。

完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。

现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的,对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。

有效性:必须证明需求是正确有效的,确实能解决用户面对的问题

第四章总体设计

基本目的:“概括的说,系统应该如何实现”

基本任务:设计软件系统结构(以模块为基础),数据结构的设计(逐步细化),数据库的设计(包括概念设计,逻辑设计,物理设计)

功能分解的原则:模块化原则

主要流程:功能分解,设计软件结构,设计数据库,测试计划(之后书写文档,审查和复审)

软件设计的概念和原理:模块化,抽象,信息隐蔽及局部化,模块独立(每个模块只完成独立的子功能,与其他模块的联系最少且接口简单)。

如何衡量软件的独立性(衡量模块的好的程度的两个标准):耦合度(衡量不同模块彼此间相互依赖的紧密程度)和内聚度(衡量一个模块内部各个元素彼此结合的紧密程度)。

高内聚,低耦合->模块好若冲突,首先考虑耦合。

耦合度内聚性也称块内联系,即一个模块内部各个元素彼此结合的紧密程度的度量。

内聚类型:偶然,逻辑,时间,通信,顺序,功能。

软件结构图:主要内容为模块,模块的控制关系,模块间的信息传递。软件系统的模块层次结构。反应整个系统的功能实现。即将来程序的控制层次体系。(sc)结构图的形态特征:深度,宽度,扇出。

描绘软件结构的图形工具:层次图,HIPO图,结构图

HIPO图:

结构图:

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

第五章详细设计

指出“具体地说,程序是如何实现的”

任务:设计出程序的“蓝图”

结构化程序设计技术是实现目标的关键技术,也是详细设计的逻辑基础。

结构程序设计:自顶向下逐步求精的设计方法,设计单入口单出口的程序模块,只使用三种基本的程序结构即顺序,选择,循环。(另外两种控制结构为直到型结构和多分支结构)

详细设计的过程:人机交互的设计,软件结构的深度设计。

人机界面设计:设计问题,设计过程,人机界面设计指南(一般交互指南,信息显示指南,数据输入指南)

过程设计的工具:

4.1 程序流程图(PFD)即程序框图,广泛用于描述过程设计

4.2 盒图(N-S图)不违背结构化程序设计精神,没有箭头,不允许随意

转移控制

4.3 判定表

4.4 判定树

4.5 问题分析图(PAD图)是一种算法描述工具,由左往右展开的二维树

形结构,控制流程为自上而下从左到右的执行。

4.6 过程设计语言(PDL)在伪码基础上扩充模块的定义与调用、数据定义

和输入输出。控制结构与伪码相同,是一种描述模块算法设计和处理细节的语言。

Jackson程序设计方法:面向数据结构

面向数据结构的设计方法,用数据结构作为程序设计的基础。

这种方法的最终目标是得出对程序处理过程的描述,最适合于在详细设计阶段使用,也就是说,在完成了软件结构设计之后,可以使用面向数据结构的方法来设计每个模块的处理过程。

使用面向数据结构的设计方法,首先需要分析确定数据结构,并且用适当的工具清晰地描述数据结构。

Jackson图:顺序结构,选择结构,重复结构

Jackson程序设计方法的步骤:

(1) 分析并确定输入数据结构和输出数据结构的逻辑结构,并用Jackson

图描述这些数据结构。

(2) 找出输入和输出数据结构有对应关系的数据单元。

(3) 使用下面三条规则从描述数据结构的Jackson图导出描述程序结构

Jackson图。

为有对应关系的数据单元在程序结构的相应层次画一个处理框。

对输入数据结构中剩余的数据单元按它们所在的层次在程序结构中画出相应的处理框。

对输出数据结构中剩余的数据单元按它们所在的层次在程序结构中画出相应的处理框。

(4)列出所有的操作和条件并把它们分配到程序结构的适当位置。

(5) 用伪码表示程序。

程序复杂程度定量度量方法:McCabe方法,Halstead方法

第六章实现-编码

<实现>过程:编码+测试

程序设计语言的分类:机器语言;汇编语言;高级语言;第四代语言

代码编写原则:重复利用已有资源,采用良好控制结构,精心设计数据结构,选择合适的算法,编程风格

编程过程:结对编程,极限编程。

软件配置管理(SCM):对软件系统中的多重版本实施系统管理,全面记载系统开发的历史过程。

利用SCM进行开发的基本流程如下:从仓库中检出代码到工作目录;对工作目录中的代码进行修改;将修改的内容提交到仓库。

第七章实现-测试

软件测试的定义:

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

定义2:测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以发现错误的过程。

测试方法:白盒测试;黑盒测试

测试步骤:单元测试->集成测试->确认测试->系统测试

单元测试的考虑:模块接口,局部数据结构,重要的执行通路,出错处理通路,以上各个方面的边界条件。

过程:代码审查,测试软件

集成测试:渐增式集成,非渐增式集成,自顶向下的结合,自底向上的结合,各

种优先集成方法和混合法。

验收测试:范围,可能结果,软件配置复查。

设计测试方案:具体测试目的,测试数据,预期结果。

白盒技术:逻辑控制结构

结构测试,被测对象基本上是源程序,以程序的内部逻辑结构为基础设计测试用例。

方法:逻辑覆盖(语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖)、循环覆盖、基本路径测试

逻辑覆盖:

循环覆盖:单循环,嵌套循环

基本路径测试:独立路径

黑盒技术:重要给定的输入,获取到目标输出

功能测试,设计测试用例时,需研究需求说明和概要设计说明中有关程序功能或输入、输出之间的关系等信息,与测试后的结果进行分析比较。

方法:等价类划分、边界值法、错误推测(凭直觉推测)、因果图法(考虑多个输入数据组合引起的错误)、判定表、判定树

等价类划分->确定测试用例

边界值分析:

1、如果输入条件规定了值的范围,可以选择正好等于边界值的数据作为合理的测试用例,同时还要选择刚好越过边界值的数据作为不合理的测试用例。

2、如果输入条件指出了输入数据的个数,则按最大个数、最小个数、比最小个数少 1 及比最大个数多1等情况分别设计测试用例。

3、对每个输出条件按以上原则确定输出值边界

4、如果程序的输入或输出域是个有序集合,选择第一个和最后一个元素作为测试用例。

因果图:

决策表:条件桩,条件项,动作桩,动作项。规则

调试:调试技术有输出存储器的内容,打印语句,自动工具。调试策略有试探法,回溯法,对分查找法,归纳法,演绎法。

自动测试工具:测试数据生成程序,动态分析程序,静态分析程序,文件比较程序。

第八章维护

软件维护的定义:在软件交付使用后,为了改正错误和满足新的需求而修改软件的过程。

种类:改正性维护,适应性维护,完善性维护,预防性维护。

维护特点:非结构化维护和结构化维护差别巨大;维护的代价高昂;维护的问题很多

维护过程:建立维护组织->确定报告和评价过程->规定标准化的事件序列->建立适用于维护活动的记录保管过程->评价维护活动

软件的可维护性:软件被理解、改正、适应及增强功能的容易程度。(决定因素有可理解性,可测试性,可修改性,可移植性,可重用性)

软件再工程过程

第九章面向对象方法学引论

传统方法学具有很多缺陷,如生产率的提高远不能满足要求,软件重用程度很低等。(出现问题的原因有僵化的瀑布模型,结构化技术本身的缺点:基础是功能分解,而用户需求的变化体现在对软件功能需求的改变)

为了克服传统方法学的缺点,面向对象的方法学受到重视。

面向对象的方法学:按照人类认识世界的方法分析和解决问题,将感兴趣或要研究的事物和概念都称为对象,以对象作为最基本的元素和分析解决问题的核心。

面向对象的开发方法:面向对象分析OOA 面向对象设计OOD 面向对象实现OOP

统一建模语言UML unified modeling language

面向对象方法学的概括可以用下列方程表示:

OO=对象+类+继承+消息通信

面向对象的优点:与人类习惯的思维方法一致;稳定性好;可重用性好;可维护性好;适合开发大型软件系统

喷泉模型规定四个开发阶段:分析需求,系统设计,软件设计和实现。(各阶段相互重叠反映软件过程并行性,以分析为基础分析阶段消耗资源最多,反映迭代特性,强调增量开发,对象驱动)

喷泉模型图解:

面向对象的基本概念:

对象是对问题域中某个实体的抽象,特点有以数据为中心,主动,实现数据封装,本质上有并行性,独立性好

类与实例具有相同或相似性质对象的抽象就是类即类的实例是对象

消息和方法对象之间进行通信的一种构造叫消息实现类中操作的过程叫方法(方法名,参数和方法体)

属性是类中所定义的数据类有属性,对象有属性值

封装具有一个清晰的边界,有确定的接口,受保护的内部实现

继承就是子类自动共享基类中定义的数据和方法的机制

多态指子类对象可以像父类对象一样使用。同样的消息既可以发送给父类对象也可以发送给子类对象。即在类等级的不同层次中共享同一行为,不同层次中的类按照各自的需要实现这个行为。

重载函数重载,运算符重载,静态联编/动态联编

面向对象建模:研究问题域->撰写规格说明->建立对象模型->建立动态模型->建立功能模型

重要:

对象模型使用类图和对象图

类图:表示类、对象的符号

对象模型中类与类之间的关系:

关联关系;普通关联和限定关联(通常在一对多或者多对多的关联关系中,可把模型中的重数从一对多简化成一对一,或者从多对多简化成多对一)

聚集(聚合)关系;是关联的特例,表示类与类之间的关系是整体与部分的关系,描述的字句有包含,组成,分为……部分等。

两种特殊的聚集关系:共享聚集<空心菱形>,组合聚集(简称组成)<实心菱形>。泛化关系;UML中的泛化就是通常所说的继承关系,是通用元素和具体元素间的一种分类关系<一端为空心的三角形,三角形的顶角紧挨着通用元素>泛化针对类型(类),不针对实例(对象).分为普通泛化和受限泛化(给泛化关系附加约束条件)

依赖和细化关系。依赖关系中其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素。表示方式:带箭头的虚线,箭头指向独立的类。细化关系:对同一事务中不同层次上描述时,这些描述间具有细化关系。(B

在A的基础上更详细描述,称B细化了A或A细化成了B)

动态模型(使用序列图和状态图)

动态模型表示瞬时的、行为化的系统的“控制”性质,规定了对象模型中的对象的合法变化序列。

表达手段:状态图

电话系统的状态图:

软件工程实验报告最终版

合肥师范学院实验报告册 2012 / 2013 学年第一学期 系别计算机科学与技术系 实验课程软件工程 专业计算机科学与技术 班级2010级计算机应用 姓名马军福董国运李思贤 学号1010411024 1010411008 1010411076 指导教师范庆春

实验一:结构化方法建模的基本应用 1.实验目的 (1)了解Visio工具软件的功能特色、安装、工作环境和基本操作等基本知识; (2)掌握应用Visio工具的基本使用方法和基本绘图操作; (3)熟悉结构化分析建模的基本应用。 2.实验内容 (1)使用Visio 建立期刊管理系统的实体-关系图; (2)使用Visio 建立期刊管理系统的数据流图。 3. 实验要求 使用Visio 建立期刊管理系统的实体-关系图、数据流图。数据流图要绘 制三层。 4.实验结果和体会 (1)需求陈述 在图书管理系统中,管理员要为每个读者建立借阅账户,,账户内存储读者的个人信息和借阅记录信息。持有借阅卡的读者可以通过管理员借阅、归还期刊,读者可通过互联网或图书馆内查询终端查询期刊信息和个人借阅情况,以及续借期刊。 借阅期刊时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息。然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息。最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。归还期刊时,输入读者借阅卡号和期刊号,系统显示读者和期刊的基本信息供管理员人工审核。如果有超期借阅或丢失情况,先转入过期罚款或期刊淘汰处理。然后提交还书请求,系统接受后删除借阅纪录,并登记修改可借阅期刊的数量。 期刊管理系统包括:1.读者信息管理a:借阅请求b归还请求c:查询请求d:修改自身信息2.期刊管理a:修改书目、出版日期、编辑b:增加书目数据、删除书目数据。3.期刊借阅a:增加所借读者信息b:删除所借读者信息4.期刊查询a:已借出图书列表b:未借出图书列表5.期刊的征订6.期刊内容登记题目、作者姓名、作者单位7.期刊内容查询

软件工程复习题

一、单选题 1.软件结构图的形态特征能反映程序重用率的是() a)A、深度 B、宽度C、扇入 D、扇出 2.在大型数据处理系统的功能分析和设计中,数据库的概念设计对应于系统开发的( ) a)A、需求分析 B、概要设计C、详细设计 D、程序设计 3.为了提高模块的独立性,模块内部最好是() a)A、逻辑内聚 B、时间内聚C、功能内聚 D、通信内聚 4.需求分析最终结果是产生() a)A、项目开发计划 B、需求规格说明书C、设计说明书D、可行行分析报告 5.软件是一种() a)A、程序 B、数据C、逻辑产品 D、物理产品 6.信息隐蔽概念与()概念有直接的关系 a)A、模块的独立性 B、模块类型的划分C、软件结构定义 D、软件生命周期 7.不属于序言性注释的有() a)A、模块设计者B、修改日期C、程序的整体说明D、语句功能 8.单元测试阶段主要涉及()的文档。 a)A、需求设计 B、编码和详细设计C、详细设计D、概要设计 9.在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法。( ) a)A、应用范围B、内部逻辑C、功能 D、输入数据 10.需求分析是系统分析师经了解用户的需求,认真仔细的调研、分析,最终建立目标系统 的逻辑模型并写出() a)A、模块说明书B、软件规格说明书C、项目开发计划 D、合同文档 11.系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为( ) a)A、系统软件B、容错软件C、测试软件 D、操作系统 12.产品管理包括版本管理和() a)A、质量管理 B、性能管理C、开发过程管理 D、配置管理 13.ISO9001质量管理体系认证等同于能力成熟度模型中的第几级() a)A、CMM1 B、CMM2 C、CMM3 D、CMM4 E、CMM5 14.ISO9001质量管理体系认证只做到() a)A、历史记录可查询B、错误原因可查询 15.为了克服软件危机,人们提出了用()的原理来设计软件,这就是软件工程诞生的基础。 a)A、数据B、软件学C、运筹学D、工程学 16.可行性研究的目标是() a)A、开发项目B、项目是否值得开发C、规划项目 D、维护项目 17.结构化程序设计思想的核心是要求程序只由顺序、循环和()三种结构组成A、 选择 B、单入口C、单出口D、有规则的GOTO 18.纠错是由()完成的

《软件工程》期末复习题1

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

电大软件工程模拟试题(2)

软件工程模拟试题二 一、选择题,请从四个可选项中选择正确答案。(60分,每题3分) 1.以下哪一项不是软件危机的表现形式() A.成本高 B.生产率低 C.技术发展快 D.质量得不到保证 2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。()A.演化模型 B.喷泉模型 C.原型模型 D.螺旋模型 3.可行性研究的目的不包括() A.分析开发系统的必要性 B.确定系统建模的方案 C.分析系统风险 D.确定是否值得开发系统 4.可行性分析研究的费用大约是项目总经费的()。 A.2% B.8% C.20% D.50‰ 5.在E-R 模型中,包含以下基本成分()。 A.数据、对象、实体 B.控制、联系、对象 C.实体、联系、属性 D.实体、属性、联系 6.软件需求分析产生两个重要文档,一个是软件需求规格说明书,另一个是()。 A.软件维护说明书 B.概要设计说明书 C.可行性报告 D.初步用户手册 7.内聚程度较低的是()。 A.通信内聚 B.过程内聚 C.顺序内聚 D.时间内聚 8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是() A.把软件划分成模块B确定模块之间的调用关系

C.确定各个模块的功能 D.设计每个模块的伪代码 9.UML 语言支持的建模方式不包括有()。 A.静态建模 B.动态建模 C.模块化建模 D.功能建模 10.以下哪一项不是面向对象的特征。() A.多态性 B.继承性 C.封装性 D.过程调用 11.面向对象设计首先要确定系统的总体结构和风格,构造系统的()。 A.逻辑模型 B.物理模型 C.数据模型 D.用例模型 12.面向对象设计的步骤中,正确的顺序是()。 A.系统构架设计、用例设计、类设计 B.系统构架设计、数据库设计和用户界面设计 C.类设计、用例设计、构架设计 D.用例设计、构架设计、类设计 13.类有3种类型,即()。 A.边界类、实体类、控制类 B.实体类、控制类、界面类 C.控制类、实体类、虚类 D.界面类、控制类、公共类 14.()是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。 A.消息连接 B.参数传递 C.方法重写 D.继承 15.结构化程序设计主要强调的是()。 A.程序的规模 B.程序效率 C.程序语言的先进性 D.程序易读性 16.下列关于功能性注释不正确的说法是()。 A. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态 B. 注释用来说明程序段,需要在每一行都要加注释 C. 可使用空行或缩进,以便很容易区分注释和程序 D. 修改程序也应修改注释 17.软件测试的目的是()。 A.评价软件的质量 B.发现软件的错误

软件工程测试实验

淮海工学院计算机科学系实验报告书 课程名:《软件工程》 题目:软件测试实验 班级:软件121 学号:2012122722 姓名:朱德坤

软件测试验报告要求 1目的与要求: 1)系统学习和理解结构化软件工程实现阶段的基本概念、原理、技术和方法; 2)掌握软件测试的基本技术和方法,特别是白盒测试与黑盒测试技术和方法; 3)通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力; 4)熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5)按照实验题目要求独立完成本次试验任务,严禁拷贝、抄袭他人设计成果; 6)认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试结果分析等),并于5月5日以前提交。 2 实验内容或题目 1.选择结构化详细设计试验中自己设计的某一具有代表性控制结构模块(含有分支和循环结 构),并用C语言实现(提前准备好,每种测试用例分别写在作业本上,上机时带上检查),而后分别完成下述2、3、4各题测试用例设计和测试结果分析; 2.采用白盒测试技术中逻辑覆盖方法(至少包含语句覆盖、判定覆盖、条件覆盖、条件组合 覆盖)设计测试用例,完成测试(测试屏幕截图)和测试结果分析; 3.采用白盒控制结构测试技术的基本路径测试和边界测试方法设计相应测试用例,并完成测 试和测试结果分析; 4.采用黑盒测试技术中的等价类划分方法设计相应测试用例(可重选适合黑盒测试技术的模 块),并完成程序测试和测试结果分析; 3 实验步骤与源程序 程序流程图:

流图:

程序: //拥有超级用户superuser,密码zdk #include #include #include #include #include using namespace std; int PD; //全局判断执行码 void SetPos(int i,int j) //界面光标位置函数{ COORD pos= {i-1,j-1}; HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);

软件工程复习题

一、判断 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错 6、软件配置管理是一组标识、组织和控制修改源程序的活动。错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。对 改错 (1).(×)在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。 改正:在软件开发的过程中,一个错误修复和改正得越晚,为此所花费的代价就会越高。 (2).(√)在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。 (3).(×)软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。 改正:软件可行性分析应在需求分析之前,因此,软件需求规格说明书不应成为软件可行性分析的依据。 (4).(√)模型是对现实的简化,建模是为了更好地理解所开发的系统。 (5).(×)UML语言支持面向对象的主要概念,并与具体的开发过程相关。 改正:UML语言支持面向对象的概念,并独立于具体的开发过程。 (6).(√)用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。 (7).(×)好的测试用例应能证明软件是正确的。 改正:好的测试用例在于能发现至今未发现的错误。 (8).(√)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。 二、填空

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件工程模拟题

[模拟] 软件工程 选择题 第1题: 软件工程方法学的三要素是______。 ①方法②项目管理③过程④开发语言⑤工具 A.①②③ B.①②⑤ C.②③④ D.①③⑤ 参考答案:D 软件工程方法学包含三个要素:方法、工具和过程。方法是指完成软件开发的各项任务的技术方法;工具是指为运用方法而提供的软件工程支撑环境;过程是指为获得高质量的软件所需要完成的一系列任务的框架。 第2题: 螺旋模型的开发实施和______基本相吻合。 A.智能模型 B.快速原型模型 C.喷泉模型 D.V模型 参考答案:B 第3题: 软件设计一般分为外部设计和内部设计,它们之间的关系是______。 A.全局和局部 B.抽象和具体 C.总体和层次 D.没有关系 参考答案:A 这里所说的外部设计实际上是指概要设计,内部设计就是详细设计。概要设计的工作是:·采用某种设计方法,将一个复杂的系统按功能划分成模块;·确定每个模块的功能;·确定模块之间的调用关系;·确定模块之间的接口,即模块之间传递的信息;·评价模块结构的质量。而详细设计的工作是:·为每个模块进行详细的算法设计。用某种图形、

表格、语言等工具将每个模块处理过程的详细算法描述出来。·为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。·对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。可见,这是一个全局和局部的关系,概要设计划分好模块,而详细设计定义每个模块如何工作。 第4题: 瀑布模型把软件生命周期划分为三个阶段,它们分别是:计划阶段、开发阶段和______。 A.可行性分析阶段 B.运行阶段 C.详细计划阶段 D.测试与排错阶段 参考答案:B 瀑布模型的软件生命周期分为计划阶段、开发阶段和运行阶段(即维护阶段)三个大的阶段,这三个阶段又可细分为:可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试、运行维护几个小的阶段。 第5题: 瀑布模型(Waterfall Model)突出的缺点是不能适应______的变动。 A.算法 B.开发或应用平台 C.程序语言 D.用户需求 参考答案:D 瀑布模型有许多优点:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求,有时可能直到软件开发完成之后才发现与用户需求有很大距离,此时必须付出高额的代价才能纠正这一偏差。 第6题: 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称为______模块。 A.功能内聚 B.顺序内聚 C.通信内聚 D.过程内聚

软件工程实验报告(总)

信息工程学院软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

软件工程复习题及答案

二、填空题 1.为了支持软件人员开发和维护活动而使用的软件一般是指___软件工具_____。 3.在软件结构的设计中,各个模块之间要力求降低耦合性,提高__内聚性_____。 5.数据流图(DFD)一般可分为变换型和__事务性_____两类。 6.软件维护的内容包括校正性维护、适应性维护、__完善性维护__和预防性维护。 7.软件的生产经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程时代___。8.渐增模型是瀑布模型的变种,分为两类:增量构造模型和__演化提交模型__。 9.状态图反映了_事件与状态____的关系。 10.软件项目管理过程一个关键的活动是__制定项目计划__,它是软件开发工作的第一步。11.组成软件的两个部分是:____程序和文档________。 14.变换型数据流图是由输入、__变换(或处理)_____和输出三部分组成的。15.Jackson方法是一种面向___数据结构_____的开发方法。 16.结构化语言是介于___自然语言_____和形式语言之间的一种半形式语言。 17.软件产品在交付使用之前一般要经过___单元测试___、集成测试、确认测试和系统测试。18.不采用软件工程的方法开发软件,软件只有程序而无文档,从而导致维护工作困难,这是一种__结构化______的维护。 19.子类自动共享父类数据结构和方法的机制是___继承性_____,这是类之间的一种关系。21.软件生产的发展经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程____时代。 22.可行性研究从以下三个方面研究每种解决方法的可行性:经济可行性、社会可行性和__技术可行性____。 23.HIPO图的H图用于描述软件的层次关系,矩形框表示一个模块,矩形框之间的直线表示模块之间的____调用_____关系。 24.数据流图描绘数据在系统中___流动和处理___的过程。 25.为了便于对照检查,测试用例应由输入数据和预期的___输出结果(输出数据)____两部分组成。 26.软件详细设计阶段常采用的工具有图、表和____语言_______。 28.实现容错技术的主要手段是__冗余_____。 29.软件开发环境的目标是提高软件开发的生产率和__降低软件的费用__。 32.软件工程管理中的控制包括进度控制、人员控制、经费控制和_____质量控制______。33.软件开发的原型模型可以分为三类,它们是:探索型原型、实验型原型和_演化型原型34.软件复杂性主要表现在程序的复杂性。程序的复杂性主要指___模块内___程序的复杂性。35.白盒法中,__基本路径测试_______首先以详细设计或源程序为基础,导出控制流程图的拓扑结构(程序图)。 36.在软件的详细设计中,根据控制流程从上到下,从左到右展开的设计工具是__PAD图。37.一个模块通过传递开关、标志对某一模块的多种功能进行选择,则这两个模块之间的耦合方式是__控制耦合______。 38.结构化分析是面向__数据流_____进行需求分析的方法。

软件工程期末复习填空题

软件工程填空题 1、软件危机是指在计算机软件的_开发和维护_过程中所遇到的一系列严重问题。 2、软件危机包含下述两个方面的问题:一是 _如何开发软件,以满足对软件日益增长的需求;二是_如何维护数量不断膨胀的已有软件_。 3、软件不同于硬件,它是计算机系统中的_逻辑部件_而不是物理部件。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为__生命周期__。 5、软件配置主要包括 __程序、文档_和_数据_ 等成分。 6、软件工程学的一个重要目标就是提高软件的 _可维护性、减少 _软件维护_ 的代价。 7、软件工程是指导计算机软件 __软件开发_ 和 __维护_ 的一门工程学科。 8、软件工程包括 _技术_ 和 __管理__ 两方面的内容,是技术与管理紧密结合所形成的工程学科。 9、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为 _方法学_ ,也称为范型。 10、软件工程方法学包含_方法、工具和_过程_ 三个要素。 11、目前使用最广泛的软件工程方法学,分别是 _传统方法学和面向对象方法学 __ 。 12、概括地说,软件生命周期由 _软件定义_ 、 __软件开发_ 和 __运行维护(软件维护)__ 3个时期组成,每个时期又进一步划分为若干个阶段。 13、软件定义时期通常进一步划分为3个阶段,即 _问题定义__ 、 __可行性研究__ 和需求分析。、 14、螺旋模型将 _瀑布、_ 模型和 __快速原型_ 模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。 15、瀑布模型 _不能_ 适应需求可变的软件开发,只有到 _开发结束_ 才能见到整个软件系统。 16、可行性研究阶段当从系统逻辑模型出发,探索若干种可供选择的主要解法,对每种解法都应该从 __技术可行性、经济可行性_和 _操作可行性__ 这三个方面研究每种解法的可行性。

软件工程模拟试卷和答案

北京语言大学网络教育学院 《软件工程》模拟试卷一 注意: 1.试卷保密,考生不得将试卷带出考场或撕页,否则成绩作废。请监考老师负责监督。 2.请各位考生注意考试纪律,考试作弊全部成绩以零分计算。 3.本试卷满分100分,答题时间为90分钟。 4.本试卷分为试题卷和答题卷,所有答案必须答在答题卷上,答在试题卷上不给分。 一、【单项选择题】(本大题共15小题,每小题2分,共30分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷相应题号处。 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、UML术语中,限定符常被用在()。

7、UML 提供的13种图形化工具中,用于概念模型和软件模型静态结构的是( ) 8、RUP 的迭代、增量式开发规定的4个阶段不包括( )。 9、根据RUP 实现的活动,输入为设计类,活动为实现类,则输出为( )。 10、软件评估可分为静态评估和动态评估,其中属于动态评估技术的是( )。 11、黑盒测试技术,又称为( )。 12、若有语句if(A<1 and C>0)then B=1/C else B=1/A ,选用类似数据A=2,C=1;A=-2,C=1;A=2,C=-1;A=-2,C=-1;得到不同B 的值,这种测试策略为( )。 13、在两种模型的基础上,螺旋模型加入两者所忽略的风险分析,这两者是( )。 [A] 瀑布模型和增量模型 [B] 瀑布模型和演化模型 [C] 喷泉模型和增量模型 [D] 喷泉模型和演化模型 14、在软件生存周期模型中,主要用于支持面向对象技术的软件开发模型是( )。 15、CMMI 能力等级中的第一级为( )。 [A] 依赖关系 [B] 泛化关系 [C] 关联关系 [D] 细化关系 [A] 用况图 [B] 状态图 [C] 类图 [D] 活动图 [A] 评审阶段 [B] 构造阶段 [C] 移交阶段 [D] 精化阶段 [A] 用况 [B] 子系统 [C] 接口 [D] 构件 [A] 评审 [B] 走查 [C] 形式化证 明 [D] 软件测试 [A] 功能测试 [B] 结构测试 [C] 系统测试 [D] 集成测试 [A] 定义域测试 [B] 等价类测 试 [C] 路径测试 [D] 事物流测 试 [A] 演化模型 [B] 增量模型 [C] 喷泉模型 [D] 螺旋模型

软件工程实验答案

实验一 实验内容: 1.上网了解查询软件工程网站和相关软件工程知识 2.了解软件工程环境概念、层次、组成和开发要求。 3.查询现有主流的软件工程工具及其功能、用途、特点及适用范围。 4.浏览CASE工具。通过互联网了解现有软件工程主流工具,完成表的内容。 表1-2软件工程工具分类

Firefly 开源奇葩: CVS 5、 1:自动化测试工具,其中有Web的,应用软件的,还有单兀测试的?以上具有代表]性常用的软件是: Sele nium, Watir, Winrunner, Loadr unner, Junit 等等 2:软件测试管理工具。代表性常用软件 有:Testdirector , ClearQuest 和bugzilla 等 6、版本控制工具;文档 分析工具;开发信 息库工具;逆向工 程工具;再工程工 具。 7、DbgView 调试信息查 看器 8、SFRE 9、gprof 上的存储目录以供客户端访问,这将带来 F /V 虫 定安全隐忠 Firefly服务器上的存储目录不用共享,对客户端不透明,客户端不可直接访问存储目录,使 系统更安全可靠 CVS采用C/S模式,不需要共享服务器上的存储目录,安全性较好 PVCS基于文件系统共享,而且需要以"可 写"的权限共享存储目录,存在较大的安全隐患VSS基于文件系统共享实现对服务器的访问,需要共享存储目录,这将带来一定安全隐患 5、提高测试人员的工作效率和质量 6、 7、bgView调试信息查看器不仅仅能作为调试信息输出,而且可以作为一个信息输出软件,监视您的软件运行,目前支持mfc和windows 下dos信息输出. &从整体上支持该分析阶段的再工程自动化工具 9、用gprof对程序进行分析主要分以下三个步 骤: l 用编译器对程序进行编译,加上-pg 参数。 l 运行编译后的程序。 l 用gprof命令查看程序的运行时信 息 1-3

辽师软件工程期末复习题

说明: 以下试题虽然经过多次整理,但由于时间有限,存在错误或不足之处在所难免。同学们在阅读和使用过程中如发现问题,请你在课程评价的“建议”中指出,具体方法是: 写明大小题号:问题所在;正确内容。 在此谢谢你提供的方便和指正。 一、概念题 1、软工程:是1)将系统性的、规范化的、可定量的方法应用于软件的开发、 运行和维护,即将工程化应用到软件上;2)对1)中所述方法的研究。 2、软件:是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。 3、软件危机:是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 4、软件过程:是软件工程人员为了获得软件产品而在软件工具的支持下实施的 一系列软件工程活动。 5、基线:是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开 发的基础,并且只有通过正式的变化控制过程才能改变。 6、软件配置项:是为配置管理而作为单独实体处理的一个工作产品或软件。 7、对象:是系统中用来描述客观事物的一个实体,它是构成系统给的一个基本 单位,有一组属性和对这组属性进行操作的一组服务组成。 8、软件过程模型:是描述软件过程的整体框架,它是软件过程的一种抽象表示。 9、类:是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提 供了统一的抽象描述,其内部包括属性和服务两个主要部分。 10、实体类:用于描述必须存储的信息及其相关行为,它是对系统核心信息的建 模,通常这些信息需要长久地保存。 11、版本:是确定在明确定义的时间点上某个配置项的状态。

12、耦合度:是表示两个子系统之间的关联程度。当一个子系统发生变化时对另 一个子系统的影响很小,则称它们是松散耦合的;反之,如果变化的影响很大时,则称它们是紧密耦合的。 13、软件需求:1)用户解决问题或达到目标所需要的条件或能力。2)系统或系 统部件要满足合同、标准、规范或其他正式规定文档所需要具有的条件或能力。3)一种反映上面1)或2)所描述的条件或能力的文档说明。 14、软件实现:是软件产品由概念到实体的一个关键过程,它将详细设计的结果 翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。 15、内聚性:是子系统内部的相关程度。当子系统中彼此相关的多个对象执行类 似的任务时,则认为该子系统是高内聚的;反之,当子系统内的多个对象彼此不相关时,则认为是低内聚的。 16、软件验证:是指试图证明在软件生存期各个阶段,软件产品或中间产品是否 能够满足客户需求,包括逻辑协调性、完备性和正确性。 17、软件测试:广义上讲,测试是指软件产品生存周期内所有的检查、评审和确 认活动。狭义上讲,测试是对软件产品质量的检查和评价,它一方面检查软件产品中存在的质量问题,同时对产品质量进行客观的评价。 18、软件再工程:是以系统理解为基础,结合逆向工程、重构和正向工程等方法, 将现有系统重新构造成为新的形式。 19、软件确认:是一系列的活动和过程,其目的是保证软件产品能够符合其描述 要求。 20、软件维护:是指在软件运行或维护阶段对软件产品所进行的修改,做这些修 改时可能改正软件中的错误,也可能是增加新的功能以适应新的需求,但是

软件工程模拟试题二及参考答案

软件工程》试题 一、选择 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、()是以追求更高的效益和效率为目标的持续性活动。 A 质量策划 B 质量控制 C 质量保证 D 质量改进 3、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第 1级 外,每一级都包含了实现这一级目标的若干关键过程域,每一个关键过程域又包含若干 ()。 A 关键实践 B 软件过程性能 C 软件过程能力 D 软件过程 4、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 5、()意味着一个操作在不同的类中可以有不同的实现方式。 A 多态性

B 多继承 C 类的复用 D 封装 6、在面向对象的系统中,系统责任的良好分配原则是()。 A 在类之间均匀分配 B 集中分配在少数控制类中 C 根据交互图的消息进行分配 D 根据个人喜好进行分配 7、软件配置项是软件配置管理的对象,即软件工程过程中产生的()。 A 接口 B 软件环境 C 信息项 D 版本 8、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 二、问答题 1、判断下列叙述的正确性,将结果(V正确,X错误)填入()中,并改正错误的说法。 (1). ()在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花 费的代价就会降低。改正: __ (2). ()在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什 么。改正: __ (3). ( )软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。改正: __

软件工程实验课题

图书管理系统 组长:杨晓华 组员:巴雅尔图、那日苏、张天、 牛莉、杨宇婷 作业提交日期:二О一五年十月3三十日

作者简介 组长:杨晓华学号:120714241 学院:经济管理学院 组员:巴雅尔图学号:110412185 学院:生态环境学院那日苏学号:111710874 学院:兽医学院 张天学号:120714242 学院:经济管理学院 牛莉学号:120714767 学院:经济管理学院 杨宇婷学号:120715553 学院:经济管理学院

图书管理系统 摘要 简单介绍了图书管理系统数据库的设计和系统功能的实现过程。该系统是运行在学校网络上的网络图书管理系统,由图书编目,图书管理,读者管理,资料管理,Web查询等几个子系统组成,,实现了图书资料的计算机网络管理和Web查询功能。计算机技术的迅猛发展,特别是随着网络技术的出现标志着信息时代已经来临。信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求,建设图书馆信息网络系统,是图书馆现代化建设的客观要求。建设以计算机为核心的图书馆信息网络,实现图书馆管理和服务的自动化,更好地为科技工作服务,是图书馆发展的必由之路。目前,国内大部分高校图书馆都实现了网络管理,目前图书馆都在在朝着这个方向发展。 关键词:图书,网络,数据库,管理系统,VC

一、系统可行性分析 1.总体功能设计 根据高校图书馆的实际情况和校园网网的现状,我们确定了网络图书系统应该具备8个方面的功能,它们是图书编目,图书采购,图书管理,读者管理,标准管理,资料管理,系统维护,Web查询。其中Web查询是该系统突出的特点,它的实现是因为有学校校园网的支持。系统组成和功能框图见图1。 图2 业务流程图 图3 读者

软件工程复习题及答案

软件工程复习题(一) 一、选择题 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、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 8、软件详细设计主要采用的方法是( ) A、模块设计 B、结构化设计 C、PDL语言 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、CASE工具的支持 B、如何开发演化型模型 C、项目主管的支持 D、开发人员的素质 16、程序流程图(框图)中的箭头代表( )。 A、数据流 B、控制流 C、调用关系 D、组成关系 17、一个只有顺序结构的程序,其环形复杂度是( )。 A、0 B、1 C、3 D、不确定的

河北工业大学软件工程期末复习

软件工程期末复习总结 第一讲概述(选择U填空U简答) 1.1 软件工程的研究内容 软件工程要考虑专业软件开发所需要的理论、方法和工具----工程技术问题 软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题 1.2 什么是软件? 软件包括:---软件的内涵 ①能够提供客户所需功能与性能的计算机程序; ②使程序能够适当的操作信息的数据结构; ③用以描述程序开发过程及使用的文档。 软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。 软件产品可以分成: 一个新的软件并不一定是全新开发,可以由现有软件或可复用软件成分配置形成。 1.3 什么是软件工程? 软件工程是涉及软件生产各个方面的一门工程学科 软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。 软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法. ——IEEE[IEE93] 1.4 什么是成功的软件项目 一个成功软件项目的三个要素包括: 按时交付不超预算满足用户要求。 1.5 软件过程与软件生命周期的相关概念 软件过程是指开发或制作软件产品的一系列活动及其成果. 所有的软件过程中都包括四个基本活动:(填空) 1. 描述( Specification)- 系统应该提供的功能及其开发约束; 2. 开发( Development)- 软件产品的生产过程; 3. 有效性验证(Validation )- 检验软件产品是否满足了客户的需要; 4. 进化( Evolution )- 按照用户的变更要求不断的改进软件。 软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。 1.6什么是优良软件的属性? P8 (填空U选择) 优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性和可用性:(选择题,考法内涵匹配) 可维护性(Maintainability) Software must evolve to meet changing needs; 可依赖性(Dependability) Software must be trustworthy;

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