admin 管理员组文章数量: 1086019
2024年12月30日发(作者:tcpip协议详解卷一pdf英文)
软件工程习题及参考答案
判断题
软件也会磨损和老化。(某)
完善性维护是提高或完善软件的性能。(√)
数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终
点进行详细定义。
(某)
软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程
序,软件开发实
际上就是编写程序代码。(某)
软件模块之间的耦合性越弱越好。(√)
如果通过软件测试没有发现错误,则说明软件是正确的。(某)快速
原型模型可以有效地适应用户需求的动态变化。(√)
模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内
聚,低耦合度的软
件产品。(√)
集成测试主要由用户来完成。(某)
确认测试计划应该在可行性研究阶段制定(某)
白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的
功能即可。(某)软件概要设计包括软件系统结构设计以及数据结构和数
据库设计。(√)
软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这
个复杂问题进行
分解,将软件生存的时期分为若干阶段。(√)系统流程图表达的是
部件的信息流程,还表示对信息进行加工处理的控制过程。(╳)模块越
多,开发成本越小。(╳)软件测试的目的就是证明软件没有错。(╳)
PAD图在设置了五种基本的控制结构后,还允许递归使用。(√)在
进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(某)
SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√)HIPO
法既是需求分析方法,又是软件设计方法。(√)
在面向对象的需求分析方法中,建立动态模型是最主要的任务。(某)
加工小说明是对系统流程图中的加工进行说明。(某)
判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。
(某)需求分析的主要方法有SD法、OOA法及HIPO法等。(某)
分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。(某)
信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息
模型的方法是
E-R图。(√)
用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求
的一致性、完整
性、现实性和有效性。(√)
PDL经常表现为一种混杂的形式,他不允许自然语言如英语的词汇
与某种结构化程序
设计语言(如Pacal,C,Ada等)的语法结构交织在一起.(某)设计阶段
的输出是编码阶段的输入.(√)
通过软件测试,可以发现软件中所有潜伏的错误.(某)非结构化维护用
于软件的配置中只有源代码维护.(√)
系统规格说明是系统分析和定义阶段生成的一种文档.(√)
数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20
个子加工.(某)
内聚度标志一个模块内部各成分彼此结合的紧密程度,按其高低程度
可分为七级,内聚度
越低越好.(某)
文档记录软件开发活动和阶段成果,具有永久性,可供人或机器阅
读.(√)生产高质量的软件产品是软件工程的首要目标.(√)
软件开发人员对用户需求的理解有偏差,这将导致软件产品与用户的
需求不一致,是产生
软件危机的唯一原因.(某)
开发一个软件项目总存在某些不确定性,即存在风险.有些风险如果控
制得不好,可能导
致灾难性的后果.(√)
结构化维护用于待维护的软件的配置是完整的维护.(√)
用户本身的技能,个性上的差异,行为方式的不同,不会对人机界面使
用造成影响.(某
程序的可靠性,可维护性和效率通常由程序设计语言,源代码的质量,
和语言的实现机制
决定的.(√)
程序文档一般指以注释的形式嵌入程序中的代码描述.(√)
为提高可交互性一般应提高用户对话,移动和思考的效率,即最大可能
地减少击键次数,
缩短鼠标移动的距离,避免使用户产生无所适从的感觉.(√)一般单元
测试不可以并行进行.(某)
螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(√)
数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终
点进行详细定义。
(某)
软件模块之间的耦合性越弱越好。(√)
如果通过软件测试没有发现错误,则说明软件是正确的。(某)快速
原型模型可以有效地适应用户需求的动态变化。(√)
模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内
聚,低耦合度的软件产品。(√)
集成测试主要由用户来完成。(某)
确认测试计划应该在可行性研究阶段制定(某)
白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的
功能即可。(某)软件概要设计包括软件系统结构设计以及数据结构和数
据库设计。(√)一个好的开发人员应具备的素质和能力包括善于与周围
人员团结协作,建立良好的人际关系,善于听取别人的意见。(√)
目前的绝大多数软件都不适合于快速原型技术。(某)
缺乏处理大型软件项目的经验。是产生软件危机的唯一原因。(某)
通常紧致性好的语言一致性就好。(某)
测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。
(某)理想的人机界面应针对具有典型个性的特定的一类用户设计。(√)
数据输入的一般准则中包括尽量(增加)用户输入的动作。(某)用穷举
测试是较现实的测试方法。(某)编码时应尽可能使用全局变量(某)
重视程序结构的设计,能使程序具有较好的层次结构(√)程序中的
注解越少越好(某)。
缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软
件危机的原因之一。(√)
一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头
表达能力。(某)在用户需求分析时观察用户手工操作过程不是为了模拟
手工操作过程,而是为了获取第
快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可
视输出、或设计一些复杂的算法等场合。(√)
流程图也称为程序(框图)是最常用的一种表示法。(√)
文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理;
运行阶段的维护。(√)
软件开发、设计几乎都是从头开始,成本和进度很难估计。(√)适
应性维护是改进软件未来的可维护性和可靠性。(某)由于软件是逻辑产
品,软件质量较容易直接度量。(某)目前我国还没有颁布软件开发标准。
(某)
按照功能,软部件可划分为系统软件和应用软件两类。(√)
如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步
分解,是创建用户需求的数据流模型应遵循的规则。(√)
耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应
追求尽可能紧密的耦合的系统。(某)
随着软件复杂性的不断提高,软件的维护难度越来越大。(√)软件
的可维护性差是软件维护工作量和费用激增的直接原因。(√)纠错性维
护是改正运行期间发现的潜伏错误。(√)
软件复杂性不能反映出软件的可理解性、模块化、简单性等属性。
(某)
一般来说,设计软件时应尽量使用数据耦合,减少控制耦合,限制外
部环境耦合和公共数据耦合,杜绝内容耦合。(√)
不同程序设计语言在程序的效率上的差异不大。(某)编码的依据是
详细设计说明书。(√)
程序文档应该包括代码的功能、代码的完成者等内容。(√)
软件项目定义部分由制定软件项目开发计划、需求分析2个阶段组成。
(√)预防性维护是修改软件,以适应软硬件环境的变化。(某)
开发大型软件易产生疏漏和错误,往往是产生软件危机的原因之一。
(√)
数据流图中各构成元素的名称不一定必须具有明确的含义以代表对应
元素的内容或功能。(某)
编程中应采用统一的标准和约定,降低程序的复杂性。(√)对于软
件项目,投资回收期越长,越快获得利润。(某)一个实时系统必须在严格
的时间范围内响应。如果响应时间被过分延迟,将带来灾难性的后果。
(√)
模块接口简单是软件发生错误的一个主要原因。(某)软件的质量保证
工作一般在编码工作结束后才开始。(某)
现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该
容易看懂、容易使用、容易修改和扩充。(√)
单项选择题
1、瀑布模型的存在问题是(B)
A、用户容易参与开发B、缺乏灵活性C、用户与开发者易沟通D、适
用可变需求2、软件测试方法中的静态测试方法之一为(A)
A、计算机辅助静态分析B、黑盒法C、路径覆盖D、边界值分析
3、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种
现象称做(C)A、软件工程B、软件周期C、软件危机D、软件产生
4、研究开发所需要的成本和资源是属于可行性研究中的(B)研究的一
方面。A、技术可行性B、经济可行性C、社会可行性D、法律可行性5、
模块的内聚性最高的是(D)
A、逻辑内聚B、时间内聚C、偶然内聚D、功能内聚6、在SD方法中
全面指导模块划分的最重要的原则是(D)A、程序模块化B、模块高内聚C、
模块低耦合D、模块独立性7、程序的三种基本控制结构是(B)A、过程、
子程序和分程序B、顺序、选择和重复C、递归、堆栈和队列D、调用、
返回和转移
6、黑盒测试在设计测试用例时,主要需要研究(D)
A、需求规格说明与概要设计说明B、详细设计说明
C、项目开发计划D、概要设计说明与详细设计说明7、若有一个计算
类型的程序,它的输入量只有一个某,其范围是[-1.0,1.0],现从输
入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试
用例的方法是(C)A、条件覆盖法B、等价分类法C、边界值分析法D、错
误推测法8、软件生命周期中所花费用最多的阶段是(D)A、详细设计B、
软件编码C、软件测试D、软件维护9、下列属于维护阶段的文档是(C)
A、软件规格说明B、用户操作手册C、软件问题报告D、软件测试分
析报告10、下列文档与维护人员有关的有(C)
A、软件需求说明书B、项目开发计划C、概要设计说明书D、操作手
册
11、维护中,因误删除一个标识符而引起的错误是(C)副作用。
A、文档B、数据C、编码D、设计12、产生软件维护的副作用,是指
(C)
A、开发时的错误B、隐含的错误
C、因修改软件而造成的错误D、运行时误操作13、程序的三种基本
控制结构是(B)
A、过程、子程序和分程序B、顺序、选择和重复C、递归、堆栈和队
列D、调用、返回和转移14、系统流程图是描述(C)的工具。
A、逻辑系统B、程序系统C、体系结构D、物理系统
15、可维护性的特性中相互促进的是(A)
A、可理解性和可测试性B、效率和可移植性C、效率和可修改性D、
效率和结构好
16、提高软件质量和可靠的技术大致可分为两大类:其中一类就是避
开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要
(D)
A、消除错误B、检测错误C、避开错误D、容错
15、(D)是以提高软件质量为目的的技术活动。
A、技术创新B、测试C、技术创造D、技术评审
16、原型化方法是一种(A)型的设计过程。A、自外向内B、自顶向
下C、自内向外D、自底向上
17、为了提高测试的效率,应该(D)A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据C、在完成编码以后制定软
件的测试计划D、选择发现错误可能性大的数据作为测试数据
18、使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖
标准。A、程序的内部逻辑B、程序的复杂结构C、使用说明书D、程序的
功能
19、瀑布模型本质上是一种(A)。
A、线性顺序模型B、顺序迭代模型C、线性迭代模型D、及早见产品
模型
20、在SD方法中全面指导模块划分的最重要的原则是(D)。
A、程序模块化B、模块高内聚
C、模块低耦合D、模块独立性
21、软件可维护性的特性中相互矛盾的是(C)。
A、可修改性和可理解性B、可测试性和可理解性C、效率和可修改性
D、可理解性和可读性22、软件维护产生的副作用,是指(C)。A、开发时
的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作23、
用黑盒技术设计测试用例的方法之一为(A)。A、边界值分析B、逻辑覆盖
C、循环覆盖D、基本路径测试24、软件测试方法中的(D)属于静态测试方
法。
A、黑盒法B、路径覆盖C、错误推测D、人工检测
25、Ada语言是在Pacal语言基础上开发出来的,适用于(C)项目的
应用领域。A、科学工程计算B、数据库应用C、实时处理D、人工智能26、
程序设计语言的工程特性之一为(A)。
A、软件的可重用性B、数据结构的描述性C、抽象类型的描述性D、
数据库的易操作性27、软件详细设计的主要任务是确定每个模块的(A)。
A、算法和使用的数据结构B、外部接口C、功能D、编程28、PAD图
为(B)提供了有力的工具。
A、系统分析B、软件的自动化生成C、自动分析数据D、测试软件29、
软件结构图的形态特征能反映程序复用率的是(C)。
A、深度B、宽度C、扇入D、扇出
30、软件按照设计的要求,在规定时间和条件下达到不出故障,持续
运行的要求的质量特性称为(B)。
A、可用性B、可靠性C、正确性D、完整性31、为了提高模块的独立
性,模块内部最好是(C)。
A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚32、软件结构图
中,模块框之间若有直线连接,表示它们之间存在(A)。A、调用关系B、
组成关系C、链接关系D、顺序执行关系33、需求分析最终结果是产生
(B)。
A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析
报告34、可行性研究要进行一次(D)需求分析。A、深入的B、详尽的C、
彻底的D、简化的、压缩了的35、软件是一种(C)。
A、程序B、数据C、逻辑产品D、物理产品36、单元测试的测试对象
是(B).A.系统
B.程序模块.C.模块接口D.系统功能
37、软件总体设计是指软件总体结构设计和数据设计,该阶段的主要
任务不包括(D).
A、设计软件的模块结构B、定义接口并建立数据结构C、生成概要设
计规格说明和组装测试计划D、模块设计38、软件工程的原则有抽象,信
息隐藏,模块化和其他那些内容A、局部化B、一致性C、完全性D、可验
证性
39、常用的软件项目的估算方法主要有哪4种
A、自顶向下的估算方法B、自底向上的估算方法C、差别估算法D、
根据经验估算公式40、软件可行性研究一般不考虑(D)
A、是否有足够的人员和相关的技术来支持系统开发B、是否有足够
的工具和相关的技术来支持系统开发C、待开发软件是否有市场、经济上
是否合算D、待开发的软件是否会有质量问题
41、软件维护的副作用主要有以下哪几种(C)A、编码副作用、数据
副作用、测试副作用B、编码副作用、数据副作用、调试副作用C、编码
副作用、数据副作用、文档副作用D、编码副作用、文档副作用、测试副
作用
42、软件项目计划一般不包括以下哪项内容(D)A、培训计划B、人
员安排
C、进度安排D、软件开发标准的选择和制定
43、以下哪种测试方法不属于白盒测试技术(B)A、基本路径测试B、
边界值分析测试C、循环覆盖测试D、逻辑覆盖测试43、(D)是以提高
软件质量为目的的技术活动。A、技术创新B、测试C、技术创造D、技术
评审
44、使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖
标准。A、程序的内部逻辑B、程序的复杂结构C、使用说明书D、程序的
功能
45、对在数据流图中每一个命令的图形元素均给以定义是(B)A、
条目定义B、数据字典C、数据定义D、数据说明
46、软件的可行性研究中不包括(D)A、法律可行性B、技术可行
性C、经济可行性D、政治可行性
47、根据用户在软件使用过程中提出的建设性意见而进行的维护活动
称为(C)。A、纠错性维护B、适应性维护C、改善性维护D、预防性维
护
48、人机界面的风格大致经过了(B)代的演变。
A、三B、四C、五D、六49、以下不属于白盒测试技术的是(D)A、
逻辑覆盖B、基本路径测试C、循环覆盖测试D、等价类划分
50、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。A、
纠错性维护B、适应性维护
C、改善性维护D、预防性维护
51、在设计测试用例时,应当包括(C)
A、合理的输入条件B、不合理的输入条件C、合理的和不合理的输
入条件D、部分条件52、下列各项中不属于逻辑覆盖的是(D)A、语句
覆盖B、判定覆盖C、判定——条件覆盖D、全部覆盖
53、高级语言通常被分成三类,其中不包括(D)A、通用高级语言B、
面向对象的语言C、专用语言D、自然语言
54、耦合度也可以分为七级:其中最松散的耦合是(A)。A、非直接
耦合B、数据耦合C、特征耦合D、控制耦合
55、判定表由四部分组成:左上部列出(B)。
A、条件组合与动作之间的对应关系B、所有条件
C、所有可能的动作D、可能的条件组合
填空题
软件=(程序)+(文档)。软件工程的基本原则包括(分解)、
(独立性)、一致性和(确定
性)。
需求分析的基本任务是准确的回答(系统必须做什么)。数据字典的
内容包括六项:数据流、(数据项)、数据结构、(数据存
储)、(处理逻辑)、外部实体。模块独立的概念是(模块化)、
(抽象)、(信息隐蔽)
和局部化概念的直接结果。
设计出软件的初步结构以后,应该进一步分解或合并模块,力求降低
(耦
合)提高(内聚)。
软件的维护一般经过(分析和理解程序)、(修改程
序)、(重新验证程序)三个步骤。
假设使用代码行技术进行费用估计,某软件中共3000行程序,每行
平均成本25元,则
该软件的成本为(75000元)。
软件开发需要的资源包括(软件工具)、(硬件工具)和
(人),其中(人)是最基本的资源。
程序的效率是指(程序的执行速度)和(程序占用的
存储空间)。软件定义的基本任务是确定软件系统的工程(需求),也
就是要搞清做什么成本效益分析的目的是从(经济)角度评价开发一个项
目是否可行。
汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,
如与外部设
备之间的一些接口工作。
可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项
目是否能够开发。程序设计时代的生产方式是个体手工,程序系统时代的
生产方式是作坊式小团体,软件
工程时代的生产方式是工程化。
喷泉模型是一种以需求分析为动力,以对象为驱动的模型。
需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是
功能需求。可行性研究需要从以下三个方面分析研究每种解决方法的可行
性:技术可行性、经济可
行性、社会可行性。
可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目
是否值得开发,其
中的问题能否解决。
判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的
可能性全部都考虑
到。可将两种工具结合起来,先用判定表做底稿,在此基础上产生判
定树。环境集成主要有数据集成、界面集成、控制集成、平台集成、过程
集成。可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。
结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是
一种面向数据流的
开发方法。
投资回收期就是累计的经济效益等于最初的项目投资所需的时间。详
细描述处理过程常用三种描述工具:图形、表格和语言。数据流图中,每
个加工至少有一个输入流和一个输出流。结构化设计以数据流为基础映射
成软件结构。
当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,
使用判定表或判
定树较好。
由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,
有抛弃策略和附加
策略。
有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面
向维护的技术,在
维护阶段用来提高维护的效率和质量的维护支援技术。
详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用
的数据)。软件工程由(方法),工具和过程三部分组成,称软件工程的三要
素.基于计算机系统的软件要素中的软部件由程序,数据和(文档)组成.
数据流图就是用来刻画数据流和转换的信息系统建模技术.它用简单
的图形记号分别表示数据流,转换,(数据源)以及外部实体.
流程图也称为程序框图是最常用的一种表示法,它有顺序,分支和(循
环)三个基本控制构件.
机器语言和汇编语言,也称为(低级语)言.
软件测试是执行程序发现并排除程序中潜伏的(错误)的过程.动态测
试有两种测试方法:黑盒测试和(白盒)测试.
软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误,改
进性能等属性,适应环境变化等方面工作的(难易)程度第三代语言也称为
(高级)语言。软件测试是软件投入运行(前),对软件需求分析、设计、
实现的强有力的最终审查。黑盒测试主要是测试软件是否满足(功能)需
求。
(调试)的目的是确定错误的位置和引起错误的原因,并加以改正。
因此,又称为排错或纠错。
软件工程由方法、工具和(过程)三部分组成,称软件工程的三要素。
软件开发中原型是软件的一个早期可运行的版本,它反映了最终系统
的重要特性。产品管理包括版本管理和配置管理。
任何程序都可由顺序、选择、重复三种基本控制结构构造。
测试用例应有输入数据和预期的输出数据两部分组成。这样便于对照
检查。需求分析阶段产生的最重要的文档之一是需求规格说明书。项目开
发计划是一个管理性文档。
软件配置管理,简称SCM,软件配置项简称SCI。
在算法描述工具中,PAD图可自动生成程序。由机器自动通过走树的
办法生成相应的源代码,大大提高软件的生产率。
在CASE集成中,控制集成支持工作台或环境中一个工具对系统中其
它工具的访问。过程集成是指CASE系统嵌入了关于过程活动、阶段、约
束和支持这些活动所需的工具的知识。
解决一个复杂问题,往往采取的策略是分解。效益分析有有形效益和
无形效益两种。
两个模块都是用同一张表,这种耦合称为公共耦合。
IDEF图是一种功能模型,表示系统功能的图形称为活动图形,连方
框上的箭头有四种类型,他们分别是输入、输出、控制、机制。软件项目
计划是可行性研究阶段的结果产品。但由于可行性研究是在高层次进行系
统分析,未能考虑软件系统开发的细节情节,因此软件项目计划一般在需
求分析阶段完成后才定稿的。
信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过程
或数据),对于不需要这些信息的其它模块来说,是不能访问的。
同一个类中的共享是指同一个类中的对象有着相同的数据结构和相同
的行为特征。通过抽象,可以确定组成软件的过程实体。通过信息隐蔽,
可以定义和实施对模块的过程细节和局部数据结构的存取限制。
IPO图描述分层图中一个模块的输入、输出和处理内容。软件是一种
逻辑产品,它与物质产品有很大区别。数据流图中的箭头表示数据流。
软件测试时需要三类信息:软件配置、测试配置、测试工具。
基于IDEF0图的设计也是结构化设计技术之一,它以系统的功能模型
和信息结构为基础设计软件结构。
系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个
元素,表达了系统中各种元素之间的信息流动情况。
桩模块是用来代替被测试模块所调用的模块,它的作用是返回被测模
块所需的信息。建立数据字典一般的两种形式是手工建立和利用计算机辅
助建立并维护。汇编语言是面向机器的,可以完成高级语言无法满足要求
的特殊功能,如与外部设备之间的一些接口操作。黑盒测试是功能测试,
因此设计测试用例时,需要研究需求规格说明书和概要设计说明书中有关
程序功能或输入、输出之间的关系等信息,从而与测试后的结果进行分析
比较。
在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继
承。子类继承了多
个父类的数据结构和方法,则称为多重继承。由于数据流是流动中的
数据,所以必须有流向。除了与数据存储之间的数据流不用命名
外,数据流应该用名词或名词短语命名。
投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。
项目的纯收入是指
在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。
程序设计语言的简洁性是指人们必须记住的语言成分的数量。人们要掌握
一种语言,需
要记住的成分数量越多,简洁性越差。
不同对象的同一属性可以具有相同或不同的属性值。
软件开发划分的各阶段任务尽可能相对独立,同一阶段任务性质尽可
能相同。瀑布模型是将生存周期各活动规定为线性顺序联接的若干阶段的
模型。成本效益分析的目的是从经济角度评价开发一个软件项目是否可行。
在需求分析阶段要进行以下几方面的工作:问题识别、分析与综合、
导出软件的逻辑模
型、编写文档。
静态冗余常用的有:三模冗余TMR和多模冗余。
McCabe质量度量模型,针对面向软件产品的运行、修正、转移。
程序设计语言的局部性是指语言的联想性。在编码过程中,由语句组
合成模块,由模块
组装成系统结构,并在组装过程中实现模块的高内聚,低耦合,使局
部性得到加强。软件复杂性度量的参数主要有规模、难度、结构和职能度。
项目开发计划的主要内容有:项目概述、实施计划、人员组织及分工、
交付期限。可行性研究要在较高层次上以较抽象方式进行需求分析和设计。
软件工程是一门综合性交叉学科,计算机科学着重于原理和理论,软件工
程着重于建造
软件系统。
维护的副作用有编码副作用、数据副作用、文档副作用三种。若年利
率为I,不计复利,P元在n年后的价值F=P某(1+n某i)软件结构是以模
块为基础而组成的一种控制层次结构。软件设计阶段产生的最重要的文档
之一是概要设计说明书。独立路径是指包括一组以前没有处理的语句或条
件的一条路径。从程序图来看,一条独
立路径是至少包含有一条在其它独立路径中未有过的边的路径。各模
块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关
的软件系
统结构的有关问题。
开发过程管理包括项目计划和控制和任务管理等。
临时维护小组采用―同事复审‖或―同行复审‖等方法来提高维护工
作的效率。数据字典中的加工逻辑主要描述该加工做什么,即实现加工的
策略,而不是实现加工的
细节,它描述如何把输入数据流变换为输出数据流的加式规则。
为了较完整的描述用户对系统的需求,DFD应与数据库中的ER图结
合起来。纯收入是软件生存周期内累计经济效益与投资之差。
反映软件结构的基本形态特征是深度、宽度、扇入和扇出。
若年利率为I,不计复利,n年后能收入F元的现在价值p=F/(1+n某
i)。
在一个模块中,功能状态与接口反映模块的外部特性,逻辑反映它的
内部特性。硬件与软件一起构成完整的计算机系统。SA方法中主要描述
工具是DFD与DD。
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
结构化设计对数据流有两种分析方法,他们是变换分析设计和事务分
析设计。
数据字典中有四类条目:数据流、数据项、数据存储、加工。常借用
硬件可靠性的定量度量方法来度量软件的可靠性与可用性。常用指标有平
均失效
等待时间MTTF和平均失效间隔时间MTBF。
Lip是一种函数型语言,Prolog是一种逻辑性语言。
Jackon结构图能对结构进行自顶向下分解,因此可以表示层次结构。
变换模型是一种适合于形式化开发方法的模型,从软件需求形式化说明开
始,经过一系
列变换,最终得到系统的目标程序。
软件开发环境的主要目标是提高软件开发的生产率,改善软件质量和
降低软件成本。―软件‖包含计算机程序及其说明程序的各种文档。
开发过程依序包括需求分析、设计、编码、集成、软件安装和验收等
活动。
社会可行性研究包括合同、责任、侵权、用户组织的管理模式及规范,
其他一些技术人
员常常不了解的陷阱等。
IDEF0方法中,将系统功能称为活动,将表示系统功能的图形称为活
动图形。
数据库的设计指数据存储文件的设计,主要进行的设计方面有:概念
设计、逻辑设计、
物理设计。
如果只有两个模块之间有公共数据环境,这种公共耦合有两种情况:
一是一个模块只是
给公共数据环境送数据,另一个模块是只从公共环境中去数据,这是
比较松散的公共耦合;二是两个模块都往公共环境中送数据又从里面取数
据,这是紧密的数据耦合。Jackon方法是面向数据结构的设计方法。早
期的Jackon方法用于开发模型较少的数
据处理系统的设计,简称JSP。
工程网络图只有一个开始点和一个终止点,开始点没有流入箭头,称
为入度为零;终止
点没有流出箭头,称为出度为零。为了确保每个开发过程的质量,防
止把软件差错传递到下一个过程,必须进行质量检验,
检验的实施有实际运行检验(即白盒测试和黑盒测试)和鉴定两种形
式。瀑布模型是由于1970年提出来的。又称为软件(生存周期)
模型。
程序设计语言的(可维护)性通常指这种语言编写的程序被理解,被
修改及调整和改进
的难易程度。
软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。动态
测试有两种测试方法:黑盒测试和(白盒)测试。名词解释经济可行性
进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是
否值得投资开发。社会可行性
要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的
运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式
是否可行。投资回收期
投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。
需求分析
需求分析是指开发人员要准确理解用户的需求,进行细致的调查分析,
将用户非形式的需求陈述转化成完整的需求定义,再由需求定义转换到相
应的形式功能规约(需求规格说明)的过程。白盒法
该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部
结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻
辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状
态与预期的状态是否一致。白盒法也不可能进行穷举测试。黑盒法
该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内
部结构和处理过程,只在软件接口处进行测试,依照需求规格说明书,检
查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测
试。结构化分析
是根据分解与抽象的原则,按照系统中数据处理的流程,用数据图来
建立系统的功能模型,从而完成需求分析工作。原型
是指模拟某种产品的原型模型。软件开发中的原型是软件的一个早期
可运行的版本,它反映了最终系统的重要特征模块化
是指解决一个复杂问题是自顶向下逐层把软件系统划分成若干模块的
过程,每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,
成为一个整体,完成整个系统所要求的功能。
路径覆盖
指设计足够的测试用例,覆盖被测程序中所有可能的路径。判定/条
件覆盖
指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取
值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。
条件组合覆盖
是指设计足够的测试用例,使的每个判定表达式中条件的各种可能的
值的组合都至少出现一次,条件组合覆盖是比较强的覆盖标准。条件覆盖
是指设计足够的测试用例,使得判定表达式中每个条件的各种可能的
值至少出现一次。满足条件覆盖并不一定满足判定覆盖。原型模型
又称快速原型模型,它是在开发真实系统之前,构造一个原型,在该
原型的基础上,逐渐完成整个系统的开发工作。软件工程环境
美国国防部在STARS计划中定义如下:―软件工程环境是一组方法、
过程及计算机程序(计算机化的工具)的整体化构件,他支持从需求定义、
程序生成知道维护的整个软件生存期‖。程序图:
是退化的程序流程图。也就是说,把程序流程图中每个处理符号都退
化成一个结点,原来连接不同处理符号的流线变成连接不同结点的有向弧,
这样得到的有向图就叫程序图。流程图:
是描绘物理系统的工具,它用图形符号来表示系统中的各元素。它表
达了系统中各个元素之间的信息流动的情况。
结构化分析方法(SA)
是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求
分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地
控制系统开发的复杂性。软件生存周期模型
是描述软件开发过程中各种活动如何执行的模型。数据字典(DD)
数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种
准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素
的一致的定义和详细的描述。内聚性
内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,
即一个模块内部各个元素彼此结合的紧密程度的度量。
问答题
1、什么是软件危机,软件危机有哪几种表现?
答:软件开发和维护的过程中所遇到的一系列严重的问题。具体表现
在:
(1)产品不能符合用户的实际需求;(2)软件开发的效率较低;
(3)软件产品的质量差;
(4)软件开发成本和进度的估算不准确;(5)软件可维护性差;
2、什么是数据流图?为什么数据流图要分层?答:数据流图从数据
传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过
程。数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流
向,并表示了系统的逻辑处理的功能。
为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。
为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并
以分层的数据流图反映这种结构关系。描述一个复杂的系统,不可能一下
子引进太多的细节。否则用一张数据流图画出所有的数据流和处理逻辑,
这张图将及其庞大、复杂,难以绘制,难以理解。因此数据流图需要进行
分解,用几个数据流图来表示。3、软件的质量反应在哪些方面?
答:软件质量反映了以下三方面的问题。
(1)软件需求是度量软件质量的基础,不符合需求的软件就不具备
质量。
(2)在各种标准中定义了一些开发准则,用来指导软件人员用工程
化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。
(3)往往会有一些隐含的需求没有明确地提出来。例如,软件应具
备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这
些隐含的需求,软件质量也不能保证。4、什么是编码风格?为什么要强
调编码风格?答:编码风格又称程序设计风格或编程风格。
随着软件技术的发展,编码的目标已经从强调效率转变为强调清晰。
良好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不注意风格
就很难写出高质量的程序。尤其当多
个程序员合作编写一个很大的程序时,需要强调良好而一致的编码风
格,以便相互通讯,减少因不协调而引起的问题。总之,良好的编码风格
有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着
程序的质量。
5、什么是需求分析?需求分析阶段的基本任务是什么?
答:需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:
在可行性分析的基础上,进一步了解、确定用户需求。准确地回答“系统
必须做什么?”的问题。获得需求规格说明书。还涉及到软件系统的目标、
软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及
到这些因素和系统的精确规格说明,以及系统进化之间的关系。
需求分析的基本任务包括:
(1)抽取需求分析现行系统存在需要解决的问题。获取足够多的问题
领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用例
法、情景实例法以及基于目标的方法等;还有知识工程方法,例如,场记
分析法、卡片分类法、分类表格技术和基于模型的知识获取等
(2)模拟和分析需求需求分析和模拟又包含三个层次的工作。首先是
需求建模。需求模型的表现形式有自然语言、半形式化(如图、表、结构
化英语等)和形式化表示等三种。需求概念模型的要求包括实现的独立性:
不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需
求模拟和非功能需求模拟等。
(3)传递需求传递需求的主要任务是书写软件需求规格说明。
(4)认可需求就是对需求规格说明达成一致,其主要任务是冲突求解,
包括定义冲突和冲突求解两方面。常用的冲突求解方法有:协商、竞争、
仲裁、强制、教育等,其中有些只能用人的因素去控制。
(5)进化需求客户的需要总是不断(连续)地增长,但是一般的软件开
发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件
进化的首要问题。对于传统的变化管理过程来说,其基本成分包括软件配
置、软件基线和变化审查小组。当前的发展是软件家族法,即产品线方法。
多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,
并进行关于变化的推理。6、等价分类法的基本思想是什么?
答:根据程序的输入特性,将程序的定义域划分为有限个等价区段—
—“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等
价类的代表值就等价于对这一类其他值的测试。如果某个等价类的一个输
入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误。
7、模块的内聚性包括哪些类型?模块的内聚性包括:(1)偶然内聚
(2)逻辑内聚(3)时间内聚(4)过程内聚(5)通信内聚(6)顺序内
聚(7)功能内聚
8、分析软件危机产生的主要原因有哪些?答:导致软件危机的主要
原因有:
(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件
开发技术落后(4)生产
方式落后(5)开发工具落后(6)软件开发费用不断增加
9、说明结构化程序设计的主要思想是什么?答:(1)自顶向下、逐
步求精的程序设计方法
(2)使用3种基本控制结构、单入口、单出口来构造程序。10、软
件测试包括哪些步骤?说明这些步骤的测试对象是什么?答:(1)单元
测试,测试对象对单元模块
(2)集成测试,测试对象为组装后的程序模块
(3)确认测试,测试对象为可运行的目标软件系统(1分)11、需
求分析与软件设计二个阶段任务的主要区别是什么?答:需求分析定义软
件的用户需求,即定义待开发软件能做什么
软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。
12、说明软件测试和调试的目的有何区别?答:测试的目的是判断和发现
软件是否有错误调试的目的是定位软件错误并纠正错误。13、原型法模型
一般适应哪些场合
答:它适合于那些不能预先确切定义需求的软件系统的开发,更适合
于那些项目组成员(包括分析员,设计员,程序员和用户)不能很好交流或通
信有困难的情况.14、软件工程的目标是什么?答:在给定成本,进度的前
提下,开发出具有可修改性,有效性,可靠性,可理解性,可维护性,可重用性,
可适应性,可移植性,可追踪性和可互操作性并满足用户需求的软件产
品.15、什么是数据流图?其作用是什么?其中的基本符号各表示什么含
义?
答:详细设计是软件设计的第二阶段,其基本任务有:为每个模块进
行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设
计,即确定数据库的物理结构;其它设计,根据软件系统类型,还可能要
进行代码设计、输入/输出格式设计、人机对话设计;编写详细设计说明
书;评审。详细描述处理过程常用三种工具:图形、表格和语言。如结构
化程序流程图、盒图和问题分析图。IPO图也是详细设计的主要工具之一。
表格工具如判定表可作为详细设计中描述逻辑条件复杂的算法。过程设计
语言(PDL)是一种用于描述模块算法设计和处理细节的语言工具。5、什
么是软件危机?其产生的原因是什么?当软件开发技术的进步不能跟上硬
件技术的进步,未能满足发展的要求,致软件开发中遇到的问题找不到解
决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现为:<1>经费预算经常突破,完成时间一再拖延;<2>开发的软件
不能满足用户要求;<3>开发的软件可维护性差;<4>开发的软件可靠性差。
造成软件危机的原因是由于软件产品本身的特点以
及开发软件的方式、方法、技术和人员引起的。共产生原因主要有以
下几方面:<1>软件的规模越来越大,结构越来越复杂;<2>软件开发管理
困难而复杂;<3>软件开发费用不断增加;<4>软件开发技术落后;<5>生
产方式落后;<6>开发工具落后,生产率提高缓慢。6、CASE工作台有哪
些分类?一个CASE工作台是一组工具集,支持像设计、实现或测试等特
定的软件开发阶段。工作台工具能通过共享文件、共享仓库或共享数据结
构来集成。它能支持大多数的软件过程活动。工作台有:<1>程序设计工
作台;<2>分析和设计工作台;<3>测试工作台;<4>交叉开发工作台;<5>
配置管理(CM)工作台;<6>文档工作台<7>项目管理工作台。7、IDEF0
方法有什么特点?<1>采用方框和箭头等简单的图形符号描述系统的活动
和数据流,描述活动所受到的约束条件及实现机制。从侧面清楚的反映了
系统的功能。故IDEF0图宜全为正式文档。<2>采用严格的自顶向下、逐
层分解的方式建立系统功能模型。顶层确定系统范围,采用抽象原则,然
后有控制的逐步展开有关活动的细节,符合SA方法的分析策略。同时,
IDEF0规定每张图至少有3个、最多有6个方框,上界6保证采用层次性
描述复杂问题的可理解性,下界3保证分解有意义。18、软件维护的特点
是什么?
答:主要体现在三个方面:<1>非结构化维护和结构化维护。软件的
开发过程对软件的维护有很大的影响。若不采用软件工程的方法开发软件,
则软件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。
若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维
护工作,这是一种结构化的维护。<2>维护的困难性。软件维护的困难性
是由于软件需求分析和开发方法的缺陷。软件生存周期中的开发阶段没有
严格而有科学的管理和规划,就会引起软件运行时的维护困难。<3>软件
维护的费用。软件维护的费用在总费用中的比重是在不断增加的,这是软
件维护有形的代价。另外还有无形的代价,即要占用更多的资源。软件维
护费用增加的主要原因是软件维护的生产率非常低。19、什么是CASE?
CASE工具有哪些分类?
答:CASE是一组工具和方法的集合,可以辅助软件开发生命周期各
阶段进行软件开发。从学术研究角度讲,CASE是多年来在软件开发管理、
软件开发方法、软件开发环境和软件工具等方面研究和发展的产物。CASE
把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架
中,并且吸引了CAD(计算机辅助设计)、软件工程、操作系统、数据库、
网络和许多其它计算机领域的原理和技术。因而,CASE领域是一个应用
集成和综合的领域。从产业角度讲,CASE是种类繁多的软件开发和系统
集成的产品及软件工具的集合。CASE分类:<1>CASE技术种类CASE系统
所涉及到的技术有两类:一类是支持软件开发过程本身的技术;另一类是
支持软件开发过程管理的技术。从CASE系统产生方式来看,还有一种特
殊的CASE技术,即元——CASE技术。他是生成CASE系统的生成器所采
用的技术。该生成器可用来创建支持软件开发过程活动及过程管理的
CASE系统。<2>CASE工具的分类对CASE工具分类的标准可分为:①功能。
功能是对软件进行分类的最常用的标准。②支持的过程。根据支持的过程,
工具可分为设计工具、编程工具、维护工具等。③支持的范围。根据支持
的范围,可分为窄支持、较宽支持和一般支持工具。窄支持指支持过程中
特定的任务,较宽支持是指支持特定过程阶段;一般支持是指支持覆盖软
件过程的全部阶段或大多数阶段。1993年,Fuggetta根据CASE系统对软
件过程的支持范围,提出CASE系统可分为三类:①支持单个过程任务的
工具。工具可能是通用的,或者也可能归组到工作台。②工作台支持某一
过程所有活动或某些活动。他们一般以或多或少的集成度组成工具集。③
环境支持软件过程所有活动或至少大部分。他们一般包括几个不同的工作
台,将这些工作台以某种方式集成起来。
20、说明容错软件的定义与容错的一般方法。
答:归纳容错软件的定义,有以下四种:⑴规定功能的软件,在一定
程序上对自身错误的作
用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件。
⑵规定功能的软件,在一定程序上能从错误状态自动恢复到正常状态,则
称之为容错软件。⑶规定功能的软件,在因错误而发生错误时,仍然能在
一定程度上完成预期的功能,则把该软件称为容错软件。⑷规定功能的软
件,在一定程度上具有容错能力,则称之为容错软件。实现容错技术的主
要手段是冗余,通常冗余技术分为四类。⑴结构冗余。结构冗余是通常用
的冗余技术。按其工作方式,它分为静态、动态和混合冗余三种。⑵信息
冗余。为检查或纠正信息在运算或传输中的错误须外加一部分信息,这种
现象称为信息冗余。⑶时间冗余。是指以重复执行指令(指令复执)或程
序(程序复算)来消除瞬时错误带来的影响。⑷冗余附加技术。是指为实
现上述冗余技术所需的资源和技术。包括程序、指令、数据、存放和调动
他们的空间和通道等。21、软件概要设计阶段的基本任务是什么?答:⑴
设计软件系统结构(简称软件结构),具体为:①采用某种设计方法,将
一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确定模块
之间的调用关系。④确定模块之间的接口,即模块之间传递的信息。⑤评
价模块结构的质量。⑵数据结构及数据库设计,汉数据结构的设计及数据
库的设计。⑶编写概要设计文档。主要有:概要设计说明书;数据库设计
说明书;用户手册;修订测试计划。⑷评审。5、快速原型模型有几种?
各有何特点?根据原型的不同作用,有三类原型模型:⑴探索型原型。这
种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户
的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发
目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来
明确用户的需求。⑵实验型原型。这种原型主要用于设计阶段,考核实现
方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把
握时,可通过这种原型来证实设计方案的正确性。⑶演化型原型。这种原
型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框
或者包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演
变为最终的软件系统,它将原型的思路扩展到软件开发的全过程。22、在
划分软件生存周期阶段时,应遵循的基本原则是什么?
答:<1>自顶向下估算方法。估算人员参照以前完成的项目所耗费的
总成本(或总工作量),来推算将要开发的软件的总成本(或总工作量),
然后把它们按阶段、步骤和工作单元进行分配,这样方法称为自顶向下的
估算方法。<2>自底向上估算方法。自底向上估算方法是将待开发的软件
细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,
得到软件的总开发量。<3>差别估算方法。差别估算是将开发项目与一个
或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之
处,并估算每个不同之处对成本的影响,导出开发项目的总成本。<4>专
家估算法。依靠一个或多个专家对要求的项目做出估算。<5>类推估算法。
<6>算式估算法。
26、什么是软件工程?它的目标和内容是什么?
答:软件工程是一种用科学知识和技术原理来定义、开发、维护软件
的一门学科。软件工程是一门工程性学科,目的是成功的建造一个大型软
件系统,所谓成功是要达到以下几个目标:付出较低的开发成本,达到要
求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的
维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
软件工程研究的主要内容是软件开发技术和软件开发管理两方面,在软件
开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环
境。在软件开发管理中,主要研究软件管理学、软件经济学、软件心理学
等。27、简述容错系统的设计过程?
答:容错系统的设计过程包括以下设计步骤:⑴安设计任务要求进行
常规设计,尽量保证设计的正确。⑵对可能出现的错误分类,确定实现容
错的范围。⑶按照成本—效益最优原则,选用某种冗余手段来实现对各类
错误的屏蔽。⑷分析或验证上述冗余结构的容错效果。如果效果没有达到
预期的程度,则应重新进行冗余结构设计。如此重复,直到有一个满意的
结果为止。
28、渐增模型有几种?各有何特点?
答:渐增模型是瀑布模型的变种,它有两类:⑴增量构造模型。它在
瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。
也就是说在前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按
增量方式开发。⑵演化提交模型。它在瀑布模型基础上,所有阶段都进行
增量开发,也就是说不仅是增量开发,也是增量提交。29、试述系统开发
的生命周期。答:系统开发是管理信息系统建设中最重要的一个阶段,从
项目开发开始到结束的整个过程,称为系统开发的生命周期。系统开发的
生命周期一般分为以下阶段:⑴系统分析。这一阶段的主要任务是明确用
户的信息需求,提出新系统的逻辑方案。需要进行的工作有系统的初步调
查,可行性研究,现行系统的详细调查及新系统逻辑模型的提出等。⑵系
统设计。这一阶段的主要任务是根据新系统的逻辑方案进行软、硬件系统
的设计,其中包括总体结构设计、输出设计、输入设计、处理过程设计、
数据存储设计和计算机系统方案的选择等。⑶系统实施。这一阶段将设计
的系统付诸实施,主要工作有软件的程序编制与软件包的购置、计算机与
通讯设备的购置、系统的安装、调试与测试、新旧系统的转换等。30、程
序设计语言的三种类型和特点是什么?答:
机器语言、汇编语言:依赖于机器,面向机器高级语言:独立于机器,
面向过程或面向对象
面向问题语言:独立于机器,非过程式语言(4GL)
31、软件测试过程一般可划分为哪几个主要阶段单元测试集成测试验
收测试系统测试
31、螺旋模型的适应场合有哪些?答:
适应场合:支持需求不明确、特别是大型软件系统的开发,并支持面
向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔
前景的模型。
32、软件生存周期答:
软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称
为软件生存周期。33、软件开发风险分析实际上就是贯穿于软件工程过程
中的一系列风险管理步骤,它包括哪些主要内容?答:
1)风险标识2)风险估算3)风险评价
4)风险驾驭和监控。
34、软件生存周期中的软件开发过程由概要设计和其它哪几个阶段组
成?1)详细设计2)实现3)组装设计4)验收测试
35、软件工程的目标是什么?
答:在给定成本、进度的前提下,开发出具有可修改性、有效性、可
靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性
和可互操作性并满足用户需求的软件产品。36、软件工程必须遵循那些基
本原则?答:1)抽象
2)信息隐藏3)模块化4)局部化5)一致性6)完全性7)可验证性
37、软件工程的原则有抽象、信息隐藏、模块化和其他那些内容?答:
1)局部化2)一致性
3)完全性4)可验证性
38、常用的软件项目的估算方法主要有哪4种?答:
1)自顶向下的估算方法2)自底向上的估算方法3)差别估算法
4)根据经验估算公式
39、原型法模型一般适应哪些场合?答:
它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那
些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通
信有困难的情况。
40、简答结构化程序设计的内容。答:
是程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出
口的控制构件。41、瀑布模型一般适应哪些场合?答:
瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统
的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。
应用有一定的局限性。41、软件在使用过程中维护有哪几种?答:
1)纠错性维护2)完善性维护3)适应性维护4)预防性维护
42、Coad/Yourdon面向对象的方法除了包含识别对象外还包括哪4
个步骤?答:
标识对象的属性标识对象的行为识别对象所属的类定义主题词
43、Jackon系统开发方法其核心思想是什么?答:
根据作用于数据的行为序列的结构(顺序、选择、重复),建立目标
软件系统的模型,然后在软件设计阶段将模型转换为相应的程序结构。
44、设计人机界面,必须考虑哪四个方面。答:
系统的响应时间;
用户求助机制;错误信息处理;命令方式。
45、什么是测试用例?答:
为了进行有效的测试而设计的输入数据和预期的输出结果数据。
46、计算机软件答:
与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和
数据。
47、需求分析的任务是什么?答:
需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括
确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格
说明书、软件系统的验收测试准则和初步的用户手册。
48、软件项目的成本管理答:
估算软件项目的成本,作为立项和签合同的依据之一,并在软件开发
过程中按计划管理经费的使用。
49、快速原型技术的基本思想是什么?答:
在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其
进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。
50、程序设计语言有哪些特点?答:
1)一致性2)二义性3)紧致性4)局部性
52、软件危机答:
是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
0101
53、软件项目的质量管理答:
制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶
段性的软件产品进行评审,对最终软件产品进行确认,确保软件质量。
54、好的编程风格应遵循哪四条规则?答:
1)节简化2)模块化3)简单化4)文档化
55、软件测试中按照错误的性质和范围进行分类可分为:“功能错误”
及其它哪些错误?答:
系统错误
加工错误(算法错误)数据错误代码错误
57、简述软件工程目标和面临的主要问题。答:
软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软
件系统。包括:付出较低的开发成本;达到要求的软件功能;取得较好的
软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发
任务,及时交付使用;开发的软件可靠性高。面临的主要问题是:软件费
用软件可靠性软件维护软件生产率软件重用。
58、构化程序设计方法的基本要点。答:
(1)采用自顶向下,逐步求精的程序设计方法。
(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采
用主程序员组的组织形式。
59、档在软件工程中的作用。答:
(1)提高软件开发过程的能见度(2)提高开发效率
60、.Myer的观点,简述对软件测试的目的答:
(1)为了发现错误而执行程序的过程;
(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个
成功的测试是发现至今尚未发现的错误的测试。61、软件产品具有哪些特
性答:
①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是
在研制、开发中被创造出来的。③在
软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。④软
件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度
的依赖性。⑤软件的开发至今尚未完全摆脱手工的开发方式。⑥软件的开
发费用越来越高,成本相当昂贵。62、什么是耦合什么是内聚答:
耦合是对一个软件结构内各个模块之间互连程度的度量。
内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和
局部化概念的自然扩展。
63、为什么软件测试不应该由程序的编写人员来做答:
软件测试的目的是为了发现程序中的错误而执行程序的过程。
正确认识测试的目标是十分重要的,测试目标决定了测试力案的设计。
如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测
试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能
暴露错误的测试方案。
由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编
写者自己进行测试是不恰当的。
64、什么是编码风格为什么要强调编码风格答:
编码风格又称程序设计风格或编程风格。
编码的目标从强调效率转变为强调清晰。良好的编码风格能在一定程
度上弥补语言存在的缺陷,而如果不注意风格就很难写出高质量的程序。
尤其当多个程序员合作编写一个很大的程序时,需要强凋良好而一致的编
码风格,以便相互通讯,减少因不协调而引起的问题。总之,良好的编码
风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决
定着程序的质量。65、请简述编码原则答:
1)编写易于修改和维护的代码2)编写易于测试的代码3)编写详细的
程序文档
4)编程中采用统一的标准和约定,降低程序的复杂性5)分离功能独立
的代码块形成新的模块
66、就程序设计语言的工程特性而言,对程序编码有哪些要求?答:
就程序设计语言的工程特性而言,对程序编码有如下要求:(1)可
移植性
(2)开发工具的可利用性(3)软件的可重用性(4)可维护性
68、简述容错技术的四种主要手段,并解释。答:
结构冗余:包括静态冗余、动态冗余和混合冗余。
信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分
信息。时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。冗
余附加技术:指为实现上述冗余技术所需的资源和技术。
应用题
1、画出银行取款过程的DFD图。问题描述为:储户用存折取款,首
先填写取款单,
根据“账卡”中的信息检验取款单与存折,如有问题,将问题反馈给
储户,否则,登录“储户存款数据库”,修改相应数据,并更新“账卡”,
同时发出付款通知,出纳向储户付款。解:
可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨
9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区
号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局
号可以是455,466,888,552中任意一个号码。分局号是任意长度为4
的数字串。
外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号
=300
市话号码=局号+分局号
局号=[455|466|888|552]分局号=4{数字}4
3、选择语言时要考虑的因素有:项目的应用领域、项目中算法、计
算的复杂性和其余哪些内容?
答:
4.含有非数字且(a,b,c,d,e,f)以外字符5.多于5个字符
6.-后跟非0的多位串7.-0后跟数字串8.-后多于3个数字十
六进制数范围9.在-7f~7f之间10.小于-7f11.大于7f
②为合理等价类设计测试用例,表中有三个合理等价类,设计两个例子测
试数据期望结果覆盖范围0某23
显示有效输入1,9-0某15
显示有效输入2,9
③为每个不合理等价类至少设计一个测试用例测试数据期望结果覆盖范围
2
显示无效输入3G12
显示无效输入4
123311
显示无效输入5
-1012
显示无效输入6-011
显示无效输入7
-0134
显示无效输入8
-0某777
显示无效输入100某87
显示无效输入11
12、图书馆的预定图书子系统有如下功能:(1)由供书部门提供书
目给订购组;(2)订书组从各单位取得要订的书目;
(3)根据供书目录和订书书目产生订书文档留底;
(4)将订书信息(包括数目,数量等)反馈给供书单位;(5)将未
订书目通知订书者;
(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。
试根据要求画出该问题的数据流程图,并把其转换为软件结构图。解:
。。。。。。。。。。。。。。
13、可行性研究报告的主要内容有哪些
解:一个可行性研究报告的主要内容如下:
(2)可行性研究前提:可行性研究前提。说明开发项目的功能、性
能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行
性的主要因素。
(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工
作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设
备;现有系统存在什么问题。
(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理
流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的
影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出
的影响;对技术可行性的评价。(5)所建议系统的经济可行性分析:说
明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。
(6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利
权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管
理、工作制度、人员素质的要求。(7)其他可供选择方案:逐一说明其
他可供选择的方案,并说明未被推荐的理由。(8)结论意见:说明项目
是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。
14、系统设计的内容是什么?
解:系统设计阶段先从高层入手,然后细化。系统设计要决定整个结
构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。系统中主要的组成部分称为子系统,子系统既不是
一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每
次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。
系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是
同时动作的对象。后者可以放在一
起,而综合成单个控制线或任务。
(3)处理器及任务分配。各并发子系统必须分配给单个硬件单元,
要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的
工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系
统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现
各子系统的各物理单元的连接。
(4)数据存储管理。系统中的内部数据和外部数据的存储管理是一
项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一
起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。
(5)全局资源的处理。必须确定全局资源,并且制定访问全局资源
的策略。全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空
间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。
如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,
以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境
中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则
各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。
(6)选择软件控制机制。分析模型中所有交互行为都表示为对象之
间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。
(7)人机交互接口设计。设计中的大部分工作都与稳定的状态行为
有关,但必须考虑用户使用系统的交互接口。
15、软件质量保证应做好哪几方面的工作?
解:软件质量保证是软件工程管理的重要内容,软件质量保证应做好
以下几方面的工作:(1)采用技术手段和工具。质量保证活动要贯彻开
发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行
软件开发。
(2)组织正式技术评审。在软件开发的每一个阶段结束时,都要组
织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评
审、审计和测试等具体手段来保证质量。(3)加强软件测试。软件测试
是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。
(4)推行软件工程规范(标准)。用户可以自己制定软件工程规范
(标准),但标准一旦确认就应贯彻执行。
(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的
错误,因此必须严格控制软件的修改和变更。
(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报
告软件质量情况。
版权声明:本文标题:软件工程习题及参考答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735647415a1682451.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论