软件工程答案版.docx
《软件工程答案版.docx》由会员分享,可在线阅读,更多相关《软件工程答案版.docx(14页珍藏版)》请在冰豆网上搜索。
软件工程答案版
软件工程答案版
一、概念题:
1、软件危机:
在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2、软件工程:
是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
3、软件生命周期:
由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。
4、模块的内聚性:
标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
5、软件测试:
为了发现程序中的错误而执行程序的过程。
6、软件的可维护性:
维护人员理解、改正、改动或改进这个软件的难易程度。
7、数据流图DFD:
一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
8、模块的耦合(性):
对一个软件结构内不同模块之间互连程序的度量。
耦合的强弱取决于模块间接口的复杂程序,进入或访问一个模块的点,以及通过接口的数据。
9、形式化方法:
描述系统性质的基于数学的技术。
10、软件重用:
指同一事物不作修改或稍加改动就多次重复使用。
广义地说,软件重用可分为以下3个层次:
知识重用、方法和标准的重用和软件成分的重用。
11、软件维护:
就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
12、对象:
是由描述该对象属性的数据以及对这些数据施加的所有操作封装在一起构成的统一体。
13、软件可靠性:
是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。
二、填空题:
1、软件工程包括技术和管理两方面内容,是(技术)与(管理)紧密结合所形成的工程学科。
管理就是通过(计划)、
16、软件配置管理主要包括有5项任务:
(标识)、(版本控制)、(变化控制)、(配置审计)和(报告)。
17、大型、复杂系统的对象设计一般由下述5个层次组成:
(主题层)、(类与对象层)、(结构层)、(属性层)和(服务层)。
18、软件重用是提高软件(开发生产率)和目标系统(质量)的重要途径,它基本上始于设计。
其中软件成分重用可划分成以下3个级别即代码重用、设计成果重用和分析结果重用。
19、面向数据流的设计方法把信息流映射成软件结构,信息流有(变换)和(事务)等两种类型。
20、大型软件系统的测试过程基本上由(模块测试)、(子系统测试)、(系统测试)、(验收测试)和(平行运行)等。
21、一般说来,软件调试途径主要有以下3种即(蛮干法)、(回溯法)和(原因排除法)。
22、需求分析的任务包括系统综合要求、数据要求、导出逻辑模型和修正系统开发计划等。
其中设计约束或实现约束常见的有:
(精度)、(工具和语言约束)、(设计约束)、应该使用的标准和应该使用的(硬件平台)等。
23、COCOMO是(构造性成本模型)(constructivecostmodel)的英文缩写。
24、软件定义时期通常划分为3个阶段,它们分别是(问题定义)、(可行性研究)和(需求分析)。
25、程序的三种基本控制结构是(顺序)、(选择)和(循环)。
26、软件系统响应时间有两个重要属性,分别是(长度)和(易变性)。
27、在软件项目的组织方式典型的有(民主制程序员组)、(主程序员组)、(现代程序员组)等三种。
28软件维护通常包括四类活动即(改正性维护)、(完善性维护)、(适应性维护)和(预防性维护)。
29传统方法学强调(硬件接口)顺序地完成软件开发的各阶段任务。
用(软件接口)开发软件过程,是一个主动地多次反复迭代的演化过程。
30、估算软件规模的方法主要有(码行技术)和(功能点技术)等等。
31、软件过程中的一个任务集合包括一组(软件工程任务)、(里程碑)和应该交付的产品(软件配置成分)。
通常使用软件生命周期模型简洁地描述软件过程。
请举出几种典型的软件过程模型如微软过程、(瀑布模型)、(快速原型)、(增量模型)、(螺旋模型)、(喷泉模型)等。
32、解决软件危机,既要有技术措施(方法和工具),又要有必要的(组织管理)措施。
33、CMM是软件过程能力成熟度模型(capabilitymaturitymodel)的简称。
其5个等级从低到高依次是(初始级)(又称为1级)、(可重复级)(又称为2级)、(已定义级)(又称为3级)、(已管理级)(又称为4级)和(优化级)(又称为5级)。
34、结构化分析方法需求分析过程应该建立3种模型,它们分别是(行为模型)、(功能模型)和(数据模型)。
35、用面向对象方法开发软件,需要建立3种形式的模型,它们分别是(对象模型)、(动态模型)和(功能模型)。
36、验证软件需求应该从以下4个方面进行验证,即(一致性)、(完整性)、(现实性)和(有效性)。
37、大型软件的测试应该分阶段地进行,通常至少分为(单元测试)、(集成测试)和(验收测试)等3个基本阶段。
38、软件成分重用可划分成以下3个级别即(代码重用)、(设计成果重用)、和(分析结果重用)重用。
三、判断题:
1、传统方法学强调自顶向下顺序地完成软件开发的各阶段任务,用面向对象方法学则是一个主动地多次反复迭代的演化过程。
(×)
2、软件重用或称为复用仍然是降低软件成本和提高软件质量的唯一合理的方法。
(×)
3、在软件设计过程中,对于交互式系统来说,人机界面设计和数据设计、体系结构设计及过程设计一样重要。
考虑到现在人机界面在系统中所占比例越来越大的现实,可以将人机界面设计放到软件的编码实现阶段同时考虑,即由程序员基于过程算法完成编码实现的同时,同时按照软件规格说明书和业务逻辑要求实现人机界面,这样就降低了软件的开发代价。
(×)
4、即使采用了形式化方法,软件重用仍然是降低软件成本和提高软件质量的唯一合理的方法。
(×)
5、模块独立是良好软件设计的关键,而维护又是决定软件质量的关键环节。
(×)
6、软件测试的目的是“建设性”的,即为了竭力证明已经建造好的软件系统的正确性和适用性。
(×)
7、软件质量是软件工程目标之一,保证模块独立是良好软件设计的关键,而维护又是决定软件质量的关键环节。
(×)
8、软件测试一般包括黑盒测试和白盒测试两种方法,测试目的是为了竭力证明已经建造好的软件系统的正确性和适用性。
(×)
9、可以用形式化方法证明软件的需求和设计的正确性和合理性,因此,软件重用并不是降低软件成本和提高软件质量的合理方法之一。
如果为了降低软件的测试成本和改正错误代价等,可以不用对软件进行测试,也可以保证软件的质量和降低开发成本等软件工程的目标。
(×)
10、形式化方法有许多优点,因此在实际软件工作中应该依赖形式化方法来保证开发出的软件绝对正确和降低由于设计缺陷产生的维护代价。
(×)
11、开发同一个软件(即LOC固定或功能点)的时候,如果把项目持续时间延长一些,则可降低完成项目所需要的工作量,更加完善了软件的设计工作,提高软件编码的效率。
(×)
12、程序员知识、软件可移植性要求、软件应用领域和工程规模及系统用户的要求等是在软件开发中选择程序设计语言的主要实用标准。
(√)
13、详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员根据这个蓝图编写实际的代码。
(√)
14、在可行性研究过程中只需要找出几种技术方案就可以了,等到需求分析的时候再去考虑成本效益问题。
(×)
15、在软件开发中选择程序设计语言的主要实用标准包括程序员知识、软件可移植性要求、软件应用领域和工程规模及系统用户的要求等。
(√)
16、采用形式化方法进行软件系统的建模、分析与设计有许多其它方法不可替代的优点,因此在实际软件工作中应该依赖形式化方法来保证开发出的软件绝对正确,并降低由于设计缺陷产生的维护代价。
(×)
17、请根据你所学的软件工程原理和常识,判断下述说法是否正确:
开发同一个软件(即LOC固定或功能点)的时候,如果把项目持续时间延长一些,则可降低完成项目所需要的工作量,更加完善了软件的设计工作,提高软件编码的效率。
(×)
18、必须用评审、测试等其他方法来验证软件正确性,因为无法用形式化方法证明从非形式化需求到形式化规格说明转换是正确的。
(√)
19、在软件系统开发中,选择程序设计语言的主要实用标准是依据程序员的知识。
(×)
20、通过较长的开发时间可以对复杂问题和软件系统的能够进行深入的分析,因此开发同一个软件(即LOC固定或功能点相同)的时候,如果把项目持续时间延长一些,则可降低完成项目所需要的工作量。
(×)
21、无法用形式化方法证明从非形式化需求到形式化规格说明转换是正确的。
所以必须用评审、测试等其他方法来验证软件正确性。
(√)
22、人机界面是软件开发后期完善的工作内容,无需在设计阶段考虑人机界面问题。
(×)
23、判定覆盖必然满足语句覆盖。
(√)
24、代码审查方法没有计算机测试方法好。
(×)
25、不同程序设计语言在程序的效率上的差异不大。
(×)
26、用穷举测试是较现实的测试方法。
(×)
四、简答题
1、软件工程包括哪7条基本原理?
(7分)
(1)、用分阶段的生命周期计划严格管理
(2)、坚持进行阶段评审
(3)、实行严格的产品控制
(4)、采用现代程序设计技术
(5)、结果应能清楚地审查
(6)、开发小组的人员应该少而精
(7)、承认不断改进软件工作实践的必要性
2、简要说明软件生命周期包括哪三个时期及其任务是什么?
各个时期包括哪些阶段活动?
简要说明传统瀑布模型软件开发有哪些特点?
(14分)
软件生命周期由软件定义、软件开发和运行维护(软件维护)三个时期组成,每个时期又进一步划分成若干个阶段。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
开发时期由系统设计和系统实现两个阶段即总体设计、详细设计、编码和单元测试和综合测试4个阶段组成。
维护时期不再进一步划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程。
特点:
阶段间具有顺序性和依赖性、推迟实现的观点、质量保证的观点
3、简述用于需求分析的结构化分析方法所遵守的4个准则?
并说明系统在确定功能需求时对软件系统有那些综合要求?
四个准则包括:
(1)、必须理解并描述问题的信息域,根据这条准则应该建立数据模型;
(2)、必须定义软件应完成的功能,这条准则要求建立功能模型;
(3)、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型;
(4)、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
八个综合要求:
(1)功能需求
(2)性能需求
(3)可靠性和可用性需求
(4)出错处理需求
(5)接口需求
(6)约束
(7)逆向需求
(8)将来可能提出的要求
4、请简述可行性研究的过程步骤有哪些?
(8分)
(1)、复查系统规模和目标
(2)、研究目前正在使用的系统
(3)、导出新系统的高层逻辑模型
(4)、进一步定义问题
(5)、导出和评价供选择的解法
(6)、推荐行动方针
(7)、草拟开发计划
(8)、书写文档提交审查
5、总体设计过程包括哪2个阶段(请简述总体设计过程的阶段划分及其任务)?
说明典型的总体设计过程包括的9个步骤。
总体设计过程包括:
(1)、系统设计阶段:
确定系统具体的实现方案;
(2)、结构设计阶段:
确定软件结构。
典型的总体设计过程包括9个步骤:
(1)、设想供选择的方案
(2)、选取合理的方案
(3)、推荐最佳方案
(4)、功能分解
(5)、设计软件结构
(6)、设计数据库
(7)、制定测试计划
(8)、书写文档
(9)、审查和复审
6、简述软件调试的3种途径?
(3分)
(1)蛮干法
(2)回溯法
(3)原因排除法
7、黑盒测试力图发现哪些类型的软件错误?
(5分)
黑盒测试力图发现如下错误:
着重测试软件功能。
与白盒测试互补的测试方法,很可能发现白盒测试不易发现的其它类型的错误。
1、功能不正确或遗漏了功能
2、界面错误
3、数据结构错误或外部数据库访问错误
4、性能错误
5、初始化和终止错误
6、
8、为了更好的发挥形式化方法的长处,我们在实际应用中需要注意哪些形式化方法的准则?
(10分)
1、应该选用适当的表示方法
2、应该形式化,但不要过分形式化
3、应该估算成本
4、应该有形式化方法顾问随时提供咨询
5、不应该放弃传统的开发方法
6、应该建立详尽的文档
7、不应该放弃质量标准
8、不应该盲目依赖形式化方法
9、应该测试、测试再测试
10、应该重用。
9、请说明软件重用的概念并简单说明其3个层次的内容。
(5分)(什么叫软件重用(或称软件再用、软件复用)?
广义地说,软件重用可分为哪3个层次。
)
软件重用又叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。
广义地说,软件重用可分为以下3个层次:
1、知识重复:
如软件工程知识的重用
2、方法和标准重用:
如面向对象方法或软件开发规范重用
3、软件成分重用:
代码重用、设计成果重用和分析结果重用。
10、你认为软件测试过程中应该遵守哪些基本准则?
什么叫测试方案?
请说明黑盒测试技术力图发现哪些类型的错误?
(15分)
测试方案包括具体的测试目的,应该输入的测试数据和预期的结果。
测试的基本准则有:
1、所有测试都应该能追溯到用户需求
2、应该远在测试开始之前就制定出测试计划
3、把Pareto原理应用到软件测试中
4、应该从“小规模”测试开始,并逐步进行“大规模”测试
5、穷举测试是不可能的
6、为了达到最佳的测试效果,应该由独立的的第三方从事测试工作
黑盒测试力图发现如下错误:
1、功能不正确或遗漏了功能
2、界面错误
3、数据结构错误或外部数据库访问错误
4、性能错误
5、初始化和终止错误
11、简述面向对象方法学的出发点和基本原则?
(5分)
尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
12、简述决定软件可维护性的五个因素?
(5分)
a)可理解性
b)可测试性
c)可修改性
d)可移植性
e)可重用性
五、大学生四年人生规划管理系统软件项目的工程网络图
(1)
六、图书管理系统,
【问题1】借阅者、管理员、教务处、人事处
【问题2】图书表、借出图书表、逾期记录表、罚金表
【问题3】验证借阅者、检查逾期、检查罚金、借阅图书、处罚
【问题4】合理编号、注意父图与子图的平衡、局部文件、分解的程度
七、住院病人信息管理系统
【问题1】
(1)病人与病床的联系是1对1的,
(2)病人与医生的联系是1对1的,
(3)护士与手术室的联系是多对多的。
【问题2】
(1)护士编号
(2)护士编号(3)病案号(4)病案号(5)手术名称
【问题3】