1、“软件危机”产生的主要原因是(A)。
A.软件日益庞大 B。开发方法不当
C.开发人员编写程序能力差 D。没有维护好软件
软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
经过阅读了其他的一些资料,总结两点,第一,B选项的开发方法不当,就是说开发方法错误,但其实是开发的技术不足,因为发展太快了。
其次的就是 软件的日益庞大,从软件危机的定义中也可以看出这句是对的。
2、软件工程学的一个重要目标是(D)。
A.提高程序的执行效率 B。降低程序对存储空间的要求
C.提高软件的可理解性 D。提高软件的可维护性
很重要的一句话,记清楚了
3、软件开发的成本大约占计算机系统总成本的(A)。
A.80% B。50%
C.40% D。20%
软件成本与硬件成本之和为计算机系统的总成本。
有些废话我就懒得去查资料了
4、编写程序的工作量通常占软件开发总工作量的(D)。
A.80% B。60%
C.40% D.20%
这个20%真是记得很清楚啊
5、用于软件维护的费用会占到软件生命周期总费用的(B )。
A.85% B。65%
C.35% D。25%
前面三道题,一个很高、一个很低,这个一般
7、在需求分析之前有必要进行( )工作。
A.程序设计 B。可行性分析
C,ER分析 D。操作性
问题定义之后是可行性分析,再是需求分析。所以不要把自己搅晕了
8、可行性是系统方案实现的(B)。
A.可能性 B。必要性
C.可能性和必要性 D。操作性
其实是这样的,我读了一些资料。方案的可能性就是只有没有实现的可能,比如有有个软件,需要花费很多很多钱才能实现,这时肯定有可能性,但是我们已经觉得没有必要了。
因此我们可以看出上述刚好符合 可行性研究中的经济可行性的研究。
那么为什么不选c呢。我也不知道。不过发现这套题,有点老。有些问题就得过且过吧
9、建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是( B)。
A.用于验证软件需求的原型 B。垂直原型
C.用于验证设计方案的原型 D。用于演化出目标系统的原型
1.原型的分类
(1)按原型是否实现功能
①水平原型:也称行为原型,水平原型通常只是功能的导航,但并未真实实现功能。水平原型主要用在界面上。
②垂直原型:也称结构化原型,实现了部分功能。垂直原型主要用在复杂的算法实现上。
(2)按原型的最终结果
①抛弃型原型:也称探索型原型,是指达到预期目的后,原型本身被抛弃。抛弃型原型主要用在解决需求不确定性、二义性、不完整性、含糊性等。
②演化型原型:为增量开发品提供基础,是螺旋模型的一部分,也是面向对象软件开发过程的一部分。演化型原型主要用于必须易于升级和优化及适用于Web项目。
没办法,不是特别看的懂9题在叙述什么
只有抄一些相关内容和记答案了
11、程序流程图(框图)中的箭头代表(B)。
A.数据流 B。控制流
C.测用关系 D。组成关系
看图
12、若模块A的复杂度为3,模块B的复杂度为4,则模块A与模块B的复杂度是(B )。
A.3 B。7
C.4 D。不确定的
我想这道题应该是不会被考的。所以我放弃了
理论来来自:http://student.zjzk.cn/course_ware/software/txt/txt/show.asp?filename=11_3.txt
14、自底向上进行集成测试的优点是不必额外设计(C)程序。
A.子 B。被调用
C.存根 D。驱动
这道题的答案又错的,幸好我确认了一下。
7.4.2 自底向上集成
自底向上测试“ 原子 ” 模块( 即在软件结构最低层的模 块 )开始组装和测试。因为是从底部向上结合模块,总能得到所需的下层模块处理功能,所以不需要存根程序。用下述步骤可以实现自底向上的结合策:
第一步,把低层模块组合成实现某个特定的软件子功能的族;
第二步,写一个驱动程序 ( 用于测试的控制程序 ) ,协调测试数据的输入和输出;
第三步,对由模块组成的子功能族进行测试;
第四步,去掉驱动程序,沿软件结构自下向上移动, 把子功能族组合起来形成更大的子功能族。
上面那段话刚好解释了什么是驱动程序,但是没有解释什么存根程序。
存根程序:
自顶向下测试方法的主要优点:不需要测试驱动程序和需要存根程序
自底向上的测试方法相反:需要驱动,不要存根
驱动程序也就是 一个 “ 主程序 ” ,它接收测试数据,把这些数据传送给 被测试的模块,并且印出有关的结果。
存根程序代替被测试的模块所调用的模块。因此存根程序也可以称 为 “ 虚拟子程序 ” 。它使用被它代替的模块的接口,可 能做最少量的数据操作,印出对入口的检验或操作结 果,并且把控制归还给调用它的模块。
15、在整个软件维护阶段所花费的全部工作中,(C)维护所占的比例最大。
A.改正性 B。适应性
C.完善性 D。预防性
想想也是
16、在实际应用中,一旦纠正了程序中错误后,还应该选择部分或全部原先已测试过的测试用例,对修改的程序重新测试,这种测试称为(D) 测试。
A.单元 B。集成
C.验收 D。回归
18. 影响软件可维护性的主要因素不包括( )
A. 可理解性 Β.可测试性
C.可用性 D.可修改性
可维护性定性地定义为: 维护人员理解、改正、改动或改进这个软件的难易程度。
决定软件可维护性的因素:
可理解性:软件可理解性表现为外来读者理解软件的结构、功能、接口和内部处理过程的难易程度。
可测试性:诊断和测试的容易程度取决于软件容易理解的程度。
可修改性
可移植性
可重用性:所谓重用(reuse)是指同一事物不做修改或稍加改动就在不同环境中多次重复使用。
21. 判定树与判定表是数据流图中用以描述加工的工具,它常描述的对象是( D )。
A. 逻辑判断 B. 层次分解
C. 操作条目 D. 组合条件
很正确撒。组合条件
22. 软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)。
A. 瀑布模型 B. 对象模型
C. 螺旋模型 D. 层次模型
结构化生命周期方法 == 瀑布模型
记着上一句就对了
23. 数据字典是对数据定义信息的集合,它所定义的对象都包含于(A)。
A. 数据流图 B. 程序框图
C. 软件结构 D. 方框图
我就怕我自己忘了
24. 系统软件开发的原型化方法是一种有效的开发方法,下述基本环节中( D)是原型形成以后才实施的内容。
A. 识别基本需求 B. 开发工作模型
C. 修正和改进模型 D. 进行细部说明
没找到理论
25. 结构化设计方法在软件开发中,用于( B)。
A. 测试用例设计 B. 概要设计
C. 程序设计 D. 详细设计
结构化分析方法是属于需求分析的。而且结构化程序设计是属于详细设计。
现在又多了一个结构化设计方法:属于概要设计
结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。
结构化分析方法(SA)是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求
分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。
26. 模块间的信息可以作“控制信息”用,也可以作为( D )使用。
A. 控制流 B. 数据结构
C. 控制结构 D. 数据
这不是废话吗?难道我写了那么多的代码,这一点都不看出???
27. 原型的使用和开发过程,叫做(B)。
A. 原型期 B. 原型生存期
C. 原型周期 D. 以上说法都不对
感觉是在考术语,就是有没有这个术语
28. 程序设计语言的工程特性其中之一表现在( )。
A 软件的可重用性 B. 数据结构的描述性
C. 抽象类型的描述性 D. 数据库的易操作性
程序设计语言特性
1. 心理特性
(1)歧义性。
(2)简洁性。
(3)局部性和顺序性。
(4)传统性。
2. 工程特性
(1)可移植性。
(2)开发工具的可利用性。
(3)软件的可重用性。
(4)可维护性。
3. 技术特性
支持结构化构造的语言有利于减少程序环路的复杂性,使程序易测试、易维护。
30.在软件开发和维护的过程中,为了定量的评价软件质量,必须对软件特性进行( )。
A. 测试 Β. 度量
C. 评审 D. 维护
请把意思读懂,是必须对软件特征进行度量,不是测试。
二 填空题
1. 软件工程要用科学的方法和原理进行 软件生产的管理
2. 增量模型是一种非整体开发的模型.软件在该模型中是“逐渐”开发出来的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
3. 可行性研究的第一个具体步骤是 确定项目的规律和目标 。
4. 结构化分析方法是面向数据流进行需求分析的方法。
5. 在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是 程序流程图.
6. 在JSP方法中解决结构冲突的具体办法是 中间数据结构或中间文件 。
7. 运行被测试程序的方法称为 动态 测试
8. 为增加软件功能、提高软件运行效率而进行的维护活动称为 完善性维护 。
9. 软件开发项目生存期详细设计阶段应包括的文档是 详细设计说明书 。
10. 软件工具 是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统
三、名词解释
1. 需求分析: 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义转换到相应的形式的功能规定(需求规格说明)的过程。
2. 数据流图 :简称DFD,是结构化分析方法中用于表示系统逻辑模型的一种工具,它以图形的方式描述数据在系统中处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
3. 耦合性:也称块间联系.指软件系统结构中各模块相互联系紧密程序的一种度量.模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
4. 对象:在应用领域中有意义的,与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为概念,或者是任何有明确边界和意义的东西
5. 软件的质量保证: 软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定达到和维护需要的软件质量而进行的所有有计划,包括系统的管理活动。
四、简答题
1. 选择编写程序使用的程序设计语言时的主要准则是什么?
为开发一个特定项目选择程序设计语言时,必须从技术特性、工程特性和心理特性几个方面考虑.在选择语言时,首先从问题入手,确定它的各种需求,所以要对各种要求进行权衡,比较各种可用语言的实用程度,最后选择认为是最实用的语言.通常,考虑选用语言的因素有:
(1) 项目的应用领域.这是选择语言的关键因素,项目应用领域一般为以下几种类型:
①科学工程计算.需要大量的标准库函数,以便处理复杂的数值计算,可供选用的语言有FORTRAIN语言、Pascal语言、PL/1。
②数据处理与数据库应用.可供选用的语言有:Cobol语言、SQL语言、第4代语言(4GL)③实时处理.实时处理软件一般对性能的要求很高,可选用的语言Ada语言。
④系统软件.编写操作系统.编译系统等系统软件时,可选用汇编语言、C语Pascal语言和Ada语言。
⑤人工智能。如果要完成知识库系统、专家系统、决策支持系统、推理工程、语言识别、模式识别、机器人视觉、自然语言处理等人工智能领域内的系统,应选择Prolog、Lisp语言。
(2)软件开发的方法。有时汇编语言的选择依赖与开发方法,如果要用快速原型模型来开发,要求能快速实现原型,因此宜采用4GL。如果是面向对象方法、宜采用面向对象的语言编程。近年来,推出了许多面向对象的语言,主要C++和Java等。
⑶软件执行的环境。良好的编程环境不但有效提高软件生产率,同时能减少错误,有效提高软件质量。
⑷算法和数据结构的复杂性。科学计算、实时处理和人工智能领域中的问题算法较复杂,而数据处理,数据库应用、系统软件领域的问题,数据结构比较复杂,因此选择语言时可考虑是否有完成复杂算法的能力,或者有构造复杂算法的能力。
⑸软件开发人员的知识。有时,编程语言选择与软件人员的知识水平和心理素质因素有关,新的语言虽然有吸引力,但软件开发人员若熟悉某种语言,而且有类似项目的开发经验,往往愿意选择原有的语言。开发人员应仔细分析软件项目的类型,敢于学习新知识,掌握新技术。
2. 简述面向对象的特性。
⑴对象唯一性。每对象都有自身唯一性的标志,通过这种标志,可以找到相应的对象。在对象的整个生命周期中,它的标志都不改变,不同的对象不能有相同的标志。在对象建立时,有系统授予新对象唯一的对象标志符,它在历史版本管理中又起巨大作用。
⑵分类性。分类性是指具有一致的数据结构(属性)和行为(操作)的对象抽象成类。每个类是具有相同性质的个体对象集合,而每个对象是相关类的实例。
⑶继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,则称为多重继承。
⑷多态性(多形性)。多态性是指相同的操作数和函数、过程可用作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为动态性,如MOVE操作,可以是窗口对象是移动操作,也可以是国际象棋子移动的操作。
多态性允许每个对象以合自身的方式去影响共同的消息。这样就增强了操作的透明性,可理解性可维护性。用户不必为相同的功能操作但作用于不同类型的对象而费心去识别。
3. 白盒测试有哪些覆盖标准?试对它们的检错能力进行比较。
白合法:又称结构测试或逻辑驱动测试。该方法是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
覆盖技术:
1>语句覆盖。特点:选择足够多的测试数据,使被测程序中每个语句至少执行一次。最弱的逻辑覆盖准则。
2>判定覆盖。又称分支覆盖。覆盖不全,只覆盖了路径的一半。判定覆盖仍然很弱,但比语句覆盖强。
3>条件覆盖。使得判定表达式中每个条件的各种可能的值至少出现一次。强于判定覆盖。
4>判定/条件覆盖。使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。
5>条件组合覆盖。它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。满足条件组合覆盖的测试一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”,因为每个判定表达式、每个条件都不止一次地取到过“真”、“假”值。是比较强的覆盖标准。
6>点覆盖。使程序执行时至少经过程序图中每个节点一次。相当于语句覆盖。
7>边覆盖。使程序执行时至少经过程序图中每一个边一次。
8>>路径覆盖。覆盖被测程序中所有可能的路径。
相关推荐
某科技大学_考研复试_上机题_答案.doc
该文档为2018届四川大学计算机学院物联网实验室研究生复试测试题
标题“为了复试_软件工程之一”表明这是一份与软件工程相关的复习资料,可能是某人为了准备复试而整理的学习材料。结合描述中的“博文链接”,我们可以推测这可能来源于一篇在线博客文章,作者zy825316在iteye平台上...
机械设计考研复试面试题 机械设计简答题 机械设计复试题 机械设计面试题
《东北大学计算机考研复试:软件工程深度解析》 在当今信息技术高速发展的时代,软件工程作为计算机科学的重要分支,已经成为衡量一个国家科技竞争力的关键因素。对于准备东北大学计算机考研复试的学生而言,深入...
五、软件测试 测试是保证软件质量的关键步骤。学习不同的测试策略,如单元测试、集成测试和系统测试,以及自动化测试工具如JUnit和Selenium。理解缺陷管理流程,使用工具如JIRA进行问题跟踪。 六、项目管理 理解...
复试的主要目的是进一步考察考生的专业知识、综合素质以及科研能力,确保选拔出最符合学校培养要求的学生。复试的内容可能包括专业面试、英语口语测试、实验操作、书面考核等,不同学科和专业会有不同的侧重点。 在...
东南大学网络空间安全学院复试_SEU_553
苏州大学_计算机考研复试_python上机.zip
北航_991软件工程考研初复试_代码和笔记_BUAAEntrance
北京理工大学计算机考研,适用于813、889、885、数字表演,复试专业课面试部分,回忆真题及答案总结,对北理复试真题进行了收集整理,按科目分类,并且参照教材给出了参考答案。 资料纯手打,是本人20考研时亲手做的...
2010年中国科学技术大学自动化系2010年复试_面试内容
在本套“东北大学_计算机考研_复试_数据库课件_1”中,我们将会深入探讨数据库的基本概念和原理。 1. 数据库定义:数据库是一个系统化的、可共享的、持久的数据集合,用于存储、管理和检索信息。它通过数据库管理...
北邮计算机研究生入学考试(复试)历年上机测试模拟试题及真题.pdf 本资源为北邮计算机研究生入学考试(复试)历年上机测试模拟试题及真题,涵盖了多个编程题目,涉及到人数统计、数字统计、统计字母、二叉树前序...
1. **考研复试流程**:考研复试通常包括面试、笔试和上机测试等环节,每个环节都有其特定的考察目标,如面试主要评估考生的综合素质,笔试则测试理论知识,而上机测试则侧重于实践操作能力。 2. **上机编程能力**:...
北邮计算机学院复试笔试真题,六选4,2005年,扫描版,没有答案
复试_个人陈述范文(9篇).doc
5. 2011年和2012年的复试机试试题:这些年的试题可能更加注重对新技术的关注,例如,可能会涉及到计算机图形学、人工智能、大数据处理等热门领域,同时对考生的综合能力和解决问题的能力有更高的要求。 6. 2009年...
复试_个人陈述范文(9篇).doc