软件工程考试题_第1页
软件工程考试题_第2页
软件工程考试题_第3页
软件工程考试题_第4页
软件工程考试题_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程考试题一、选择题(每题2分,共20分)

1.软件生命周期中花费费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护

答案:D

解析:软件维护是软件生命周期中花费费用最多的阶段,因为软件在交付使用后,需要不断进行修改、完善和优化以适应新的需求和环境。

2.软件可行性研究一般不考虑()A.是否有足够的人员和相关技术来支持系统开发B.是否有足够的工具和相关技术来支持系统开发C.待开发软件是否有市场、经济上是否合算D.待开发的软件是否会有质量问题

答案:D

解析:可行性研究主要关注技术可行性、经济可行性和操作可行性等方面,一般不考虑软件的质量问题,质量问题是在后续开发阶段进行关注和解决的。

3.软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及()A.阶段性报告B.需求评审C.总结D.都不正确

答案:B

解析:需求分析阶段的工作包括需求获取、需求分析、编写需求规格说明书和需求评审,需求评审是确保需求的准确性和完整性的重要环节。

4.数据字典是对数据定义信息的集合,它所定义的对象都包含于()A.数据流图B.程序流程图C.软件结构图D.方框图

答案:A

解析:数据字典是对数据流图中出现的所有数据元素的定义的集合,它与数据流图紧密相关。

5.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移

答案:B

解析:程序的三种基本控制结构是顺序结构、选择结构和重复结构,这是程序设计的基础。

6.软件详细设计主要采用的方法是()A.模块设计B.结构化设计C.PDL语言D.结构化程序设计

答案:D

解析:软件详细设计主要采用结构化程序设计方法,以提高程序的可读性、可维护性和可靠性。

7.软件测试的目的是()A.证明软件的正确性B.发现软件中的错误C.排除软件中的错误D.改善软件的性能

答案:B

解析:软件测试的目的是发现软件中的错误,而不是证明软件的正确性,也不能完全排除软件中的错误。

8.为了提高测试的效率,应该()A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据

答案:D

解析:为了提高测试效率,应选择发现错误可能性大的数据作为测试数据,而不是随机选取或取所有可能输入数据。

9.软件维护工作的最主要部分是()A.校正性维护B.适应性维护C.完善性维护D.预防性维护

答案:C

解析:完善性维护是软件维护工作中最主要的部分,它主要是对软件进行功能扩展和性能优化等。

10.面向对象方法中,继承是指()A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制

答案:D

解析:继承是面向对象方法中类之间共享属性和操作的机制,它可以提高代码的复用性。

二、填空题(每题2分,共20分)

1.软件工程包括软件开发技术和软件工程管理两大部分内容。

2.软件生存周期可分为可行性研究、需求分析、软件设计、编码、测试、维护等阶段。

3.可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否可行。

4.需求分析阶段产生的最重要的文档是需求规格说明书。

5.结构化设计中以数据流图为基础的两种具体设计方法是变换分析设计和事务分析设计。

6.程序设计语言的特性主要有心理特性、工程特性和技术特性。

7.软件测试是为了发现错误而执行程序的过程。

8.调试的目的是确定错误的原因和位置并改正错误。

9.软件维护的内容包括校正性维护、适应性维护、完善性维护和预防性维护。

10.面向对象分析的主要任务是描述系统的功能需求、描述系统的数据需求、建立对象模型、建立动态模型和建立功能模型。

三、简答题(每题10分,共30分)

1.简述软件工程的概念及其目标。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到软件开发的各个阶段,包括需求分析、设计、编码、测试、维护等。软件工程的目标是:生产具有正确性、可用性以及开销合宜的产品。提高软件的可维护性、可扩展性和可移植性。合理安排软件开发流程,提高软件开发效率。降低软件开发成本,提高软件质量,满足用户需求。

2.什么是软件需求规格说明书?它有哪些作用?软件需求规格说明书(SRS)是需求分析阶段产生的最重要的文档,它是对软件系统的功能、性能、用户界面、运行环境等方面需求的详细描述。其作用包括:作为软件开发人员和用户之间的协议,明确双方对软件系统的期望和要求。为软件设计提供依据,指导软件设计人员进行软件结构和模块设计。作为软件测试的依据,测试人员根据需求规格说明书来设计测试用例,验证软件是否满足需求。作为软件维护的依据,当软件需要修改或扩展时,需求规格说明书可以帮助维护人员了解软件的原始需求。

3.简述软件测试的步骤和策略。软件测试的步骤一般包括:单元测试:对软件中的最小可测试单元(模块)进行测试,检查模块是否正确实现了规定的功能。集成测试:将已测试过的模块组装起来,进行集成测试,主要检查模块之间的接口是否正确。系统测试:将软件作为一个整体系统进行测试,检查软件是否满足系统的功能和性能需求。验收测试:由用户或客户对软件进行验收,检查软件是否满足用户的实际需求。

软件测试的策略包括:黑盒测试:不考虑软件的内部结构和实现细节,只根据软件的功能需求来设计测试用例。白盒测试:基于软件的内部结构和实现细节来设计测试用例,检查程序的逻辑结构和代码。灰盒测试:介于黑盒测试和白盒测试之间,既关注软件的功能,也关注软件的内部结构。静态测试:不运行程序,通过对文档、代码等进行审查来发现错误。动态测试:运行程序,通过输入数据来观察程序的输出,发现程序的错误。

四、综合题(每题15分,共30分)

1.某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。成绩管理系统可根据学生的平时成绩和考试成绩计算出总评成绩。成绩管理系统可根据总评成绩进行排名,打印成绩通知单给学生。成绩管理系统可根据学生的总评成绩进行学分绩点的计算。成绩管理系统可生成班级成绩报表,供教师查阅。

请根据上述需求描述,画出该成绩管理系统的数据流图。

答案:

数据流图如下:

学生成绩管理系统

|外部实体|数据流|处理|数据存储|||||||主讲教师|平时成绩、考试成绩|计算总评成绩、计算学分绩点、排名、生成班级成绩报表|学生成绩||学生|无|打印成绩通知单|无|

说明:主讲教师将平时成绩和考试成绩输入系统。系统计算总评成绩、学分绩点,进行排名,并生成班级成绩报表。系统将成绩通知单打印给学生,学生成绩存储在数据存储中。

2.假设一个简单的图形绘制系统,支持绘制矩形、圆形和三角形三种图形。请用面向对象的方法设计该系统,包括类的设计和主要方法的实现。

答案:

设计如下:

```java//图形类abstractclassShape{protectedStringcolor;

publicShape(Stringcolor){this.color=color;}

publicStringgetColor(){returncolor;}

publicabstractvoiddraw();}

//矩形类classRectangleextendsShape{privateintwidth;privateintheight;

publicRectangle(Stringcolor,intwidth,intheight){super(color);this.width=width;this.height=height;}

@Overridepublicvoiddraw(){System.out.println("绘制矩形,颜色:"+getColor()+",宽度:"+width+",高度:"+height);}}

//圆形类classCircleextendsShape{privateintradius;

publicCircle(Stringcolor,intradius){super(color);this.radius=radius;}

@Overridepublicvoiddraw(){System.out.println("绘制圆形,颜色:"+getColor()+",半径:"+radius);}}

//三角形类classTriangleextendsShape{privateintside1;privateintside2;privateintside3;

publicTriangle(Stringcolor,intside1,intside2,intside3){super(color);this.side1=side1;this.side2=side2;this.side3=side3;}

@Overridepublicvoiddraw(){System.out.println("绘制三角形,颜色:"+getColor()+",边1:"+side1+",边2:"+side2+",边3:"+side3);}}

//图形绘制系统类classGraphicsDrawingSystem{privateShape[]shapes;privateintcount;

publicGraphicsDrawingSystem(intcapacity){shapes=newShape[capacity];count=0;}

publicvoidaddShape(Shapeshape){if(count<shapes.length){shapes[count++]=shape;}else{System.out.println("图形数组已满,无法添加新图形。");}}

publicvoiddrawAllShapes(){for(inti=0;i<count;i++){shapes[i].draw();}}}```

使用示例:

```javapublicclassMain{publicstaticvoidmain(String[]args){GraphicsDrawingSystemsystem=newGraphicsDrawingSystem(5);system.addShape(newRectangle("红色",100,200));system.addShape(newCircle("蓝色",50));system.addShape(newTriangle("绿色",100,150,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论