软件工程复习题1

上传人:ZJ****1 文档编号:57927326 上传时间:2018-10-25 格式:DOC 页数:4 大小:52KB
返回 下载 相关 举报
软件工程复习题1_第1页
第1页 / 共4页
软件工程复习题1_第2页
第2页 / 共4页
软件工程复习题1_第3页
第3页 / 共4页
软件工程复习题1_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《软件工程复习题1》由会员分享,可在线阅读,更多相关《软件工程复习题1(4页珍藏版)》请在金锄头文库上搜索。

1、- 1 - 1 -第 1 页 共 4 页软件工程软件工程复习题复习题一、问答题一、问答题1 1、什么是计算机软件,它有哪些特点?什么是计算机软件,它有哪些特点? 2 2、试说明试说明“软件生存周期软件生存周期”的概念。的概念。 3、可行性研究主要做哪、可行性研究主要做哪 4 个方面的研究?个方面的研究? 4 4、举例说明你对概要设计与详细设计的理解。有不需要概要设计的情况吗、举例说明你对概要设计与详细设计的理解。有不需要概要设计的情况吗? ? 5 5、软件测试阶段,使用各种测试方法的综合策略是什么?、软件测试阶段,使用各种测试方法的综合策略是什么?答:答: 1 1、 什么是计算机软件,它有哪些

2、特点?什么是计算机软件,它有哪些特点? 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档 的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序 能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。 软件的特点是: (1) 软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。 (2) 软件的生产与硬件不同,它没有明显的制造过程。对软件的质量控制,必须着重 在软件开发方面下功夫。 (3) 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。 (4) 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度

3、的依 赖性。为了解除这种依赖性,在软件开发中提出了软件移植的问题。 (5) 软件的开发至今尚未完全摆脱手工艺的开发方式。 (6) 软件本身是复杂的。软件的复杂性可能来自它所反映的实际问题的复杂性,也可 能来自程序逻辑结构的复杂性。 (7) 软件成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳 动, 它的成本是比较高的。 (8) 相当多的软件工作涉及到社会因素。许多软件的开发和运行涉及机构、体制及管 理方式等问题,甚至涉及到人的观念和人们的心理。它直接影响到项目的成败。2 2、试说明、试说明“软件生存周期软件生存周期”的概念。的概念。软件与任何一个事物一样,有它的孕育、诞生、成

4、长、成熟、衰亡的生存过程。这就是软 件的生存周期。它主要分为 6 个阶段:软件项目计划、软件需求分析和定义、软件设计、 程序编码、软件测试,以及运行维护。 (1) 软件项目计划 :在这一步要确定软件工作范围,进行软件风险分析,预计软件开 发所需要的资源,建立成本与进度的估算。根据有关成本与进度的限制分析项目的可行性。(2) 软件需求分析和定义 :在这一步详细定义分配给软件的系统元素。可以用以下两 种方式中的一种对需求进行分析和定义。一种是正式的信息域分析,可用于建立信息流和 信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。另一种是软件原型化方法,- 2 - 2 -第 2 页 共 4 页

5、即建立软件原型,并由用户进行评价,从而确定软件需求。 (3) 软件设计 :软件的设计过程分两步走。第一步进行概要设计,以结构设计和数据 设计开始,建立程序的模块结构,定义接口并建立数据结构。此外,要使用一些设计准则 来判断软件的质量。第二步做详细设计,考虑设计每一个模块部件的过程描述。经过评审 后,把每一个加细的过程性描述加到设计规格说明中去。 (4) 程序编码 :在设计完成之后,用一种适当的程序设计语言或 CASE 工具生成源程 序。应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。 (5) 软件测试 :单元测试检查每一单独的模块部件的功能和性能。组装测试提供了构 造软

6、件模块结构的手段,同时测试其功能和接口。确认测试检查所有的需求是否都得到满 足。在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。 (6) 软件维护 :为改正错误,适应环境变化及功能增强而进行的一系列修改活动。与 软件维护相关联的那些任务依赖于所要实施的维护的类型。3、可行性研究主要做、可行性研究主要做 4 个方面的研究:个方面的研究: 经济可行性 :进行成本效益分析。从经济角度判断系统开发是否“合算”。 技术可行性 :进行技术风险评价。从开发者的技术实力、以往工作基础、问题的 复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。 法律可行性 :确定系统开发可能导致的任何侵

7、权、妨碍和责任。 方案的选择 :评价系统或产品开发的几个可能的候选方案。最后给出结论意见。4 4、说明你对概要设计与详细设计的理解。有不需要概要设计的情况吗说明你对概要设计与详细设计的理解。有不需要概要设计的情况吗? ? 软件设计是一个把软件需求变换成软件表示的过程。最初这种表示只是描绘出软件的 总的框架,然后进一步细化,在此框架中填入细节,把它加工成在程序细节上非常接近于 源程序的软件表示。正因为如此,所以从工程管理的角度来看,软件设计分两步完成。首 先做概要设计,将软件需求转化为数据结构和软件的系统结构。然后是详细设计,即过程 设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。

8、 由于概要设计建立起整个系统的体系结构框架,并给出了系统中的全局数据结构和数 据库接口,人机接口,与其它硬、软件的接口。此外还从系统全局的角度,考虑处理方式、 运行方式、容错方式、以及系统维护等方面的问题,并给出了度量和评价软件质量的方法, 所以它奠定了整个系统实现的基础。没有概要设计,直接考虑程序设计,就不能从全局把 握软件系统的结构和质量,实现活动处于一种无序状态,程序结构划分不合理,导致系统 处于一种不稳定的状态,稍一做改动就会失败。所以,不能没有概要设计。5 5、软件测试阶段,使用各种测试方法的综合策略是什么?、软件测试阶段,使用各种测试方法的综合策略是什么? 在任何情况下都必须使用边

9、界值分析方法。经验表明用这种方法设计出测试用例发 现程序错误的能力最强。 必要时用等价类划分方法补充一些测试用例。 用错误推测法再追加一些测试用例。 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆 盖标准,应当再补充足够的测试用例。 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。- 3 - 3 -第 3 页 共 4 页二、简答题二、简答题1 1、阅读下列关于面向对象的程序设计的基本概念的叙述,回答问题。 在传统的程序设计中,处理对象的数据和处理对象的行为的编码是分别描 述的。但是在面向对象的程序设计方法中,这种方法起了根本变化;将处理对 象的这

10、两个部分紧密地联系在一起,即一个对象(Object)中包含了描述状态 的数据和描述它行为的编码,并且将整个对象视为程序的数据。描述对象中数 据行为的编码称为方法(Method) 。在面向对象的程序设计方法中,封闭性 (Encapsulation)和继承性(Inheritance)是两个最为突出的特点。 .封闭性:类似于结构化程序设计的模块化概念,但具有更好的封闭 性。在一个对象中定义的数据不能直接被其它对象访问,即数据被 封闭在对象中。这一特性使得程序员必须将描述对象状态的数据与 对这些数据进行操作的方法视为一个整体,从而对象的独立性较传 统的模块更高。因此,对程序中一个对象的任何修改其影响范

11、围仅 限自身,使得程序的编写可以将对象作为零件,积木式地进行组装。 在这种程序设计方法中,对象之间以松散方式耦合,在程序执行时 才实现动态装订。面向对象程序设计的这一特性,使得程序代码的 可重用性大大提高。 .继承性:这个概念是全新的。将功能相近的对象称为类(Class) , 同类中不同状态的对象称为同一类中的不同实例(Instances) ,不 同功能的对象称为不同类的实例。换言之,不同类具有不同代码, 不同实例有不同的数据。类的功能可使不同对象可共享相同的代码 资源,许多人将一个程序设计语言是否有类的功能作为它能否支持 面向对象的程序设计的重要标志。类的功能常具有层次机制,即除 了根结点外

12、,所有类能够从其超类中继承所有的行为和状态。例如, 猫的超类是猫科类,猫科类的超类是动物类,所以猫类可以自动地 继承猫科类和动物类的所有行为和状态。 问题 1 为什么结构化程序设计语言中模块代码的可重用性不如对象高? 问题 2 试述类与模块的概念根本不同,及为什么不同对象中的共性仅需定 义一次?答:答:围绕封闭性围绕继承性2 2、阅读下列关于提高程序质量和编程风格的文字叙述,并回答下列问题。、阅读下列关于提高程序质量和编程风格的文字叙述,并回答下列问题。 B.Kernighan 和 P.Plauger 曾出版了“编程风格要点(The Elements of Programming Style)

13、 ”一书,讨论了提高程序质量的种种技巧,下面是 其中的部分: 采用有实际意义的变量名 避免使用过于相似的变量名 变量名中尽量不含数字- 4 - 4 -第 4 页 共 4 页 同一变量名不要具有多种意义 显式说明所有变量 尽量少用中间变量 表达式中注意添加括号,以澄清计算意图 注意浮点运算的误差 注意整数运算的特点 避免不必要的 GOTO 语句 GOTO 语句不要相互交叉 尽量少用语句标号 在使程序运行得更快之前,先使其正确 在使程序运行得更快之前,先使其清晰 别贪图效率方面的小利,而破坏程序的清晰性 问题 1 用最少的文字说明,为什么要“避免使用过于相似的变量名” 问题 2 用最少的文字说明,

14、为什么要避免使用不必要的 GOTO 语句? 问题 3 用最少的文字说明,为什么“别贪图效率方面的小利,而破坏程序 的清晰性“?答:答:避免混乱,提高易读性 避免破坏结构化程序提高易读性、可维护性三、分析设计题三、分析设计题1 1、为现实企业与人才牵线搭桥的作用,来弥补招聘中存在的种种不足。在 这种条件下,需要开发一个网上招聘系统。需求陈述如下:人力资源部的工作人力资源部的工作 人员人员通过这个招聘系统维护知识库,编制试题,发布职位和与这个职位相应的 试题;应聘者应聘者可以通过网上提交自己的简历并同时回答相应的试题。人力资源 部的工作人员通过这个招聘系统可以统计整理这些简历,并根据应聘者的简历

15、和试题分数提取出需要面试的人员,然后按照一定的方式通知面试人员参加面 试,在面试过程中,记录相应的面试结果。人力资源部的工作人员可以随时浏 览人员简历和面试的相关信息。网上招聘系统可以分为两个主要的组成部分, 一个是客户端子系统,一个是管理端子系统。客户端子系统主要是指应聘者通 过登录招聘网站进行操作的功能,即应聘功能。管理端子系统是招聘公司的管 理人员发布招聘职位,整理应聘者简历,面试等功能。 (1) 分别用UML画出客户端与管理端的功能用例图; (2) 试写出目标系统的性能要求; (3) 设计客户端的页面流程与管理端的页面流程。答案见答案见可行性分析可行性分析与与概要设计概要设计的的PPT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号