搜档网
当前位置:搜档网 › 《软件工程》复习题及答案

《软件工程》复习题及答案

《软件工程》复习题及答案
《软件工程》复习题及答案

软件工程复习题

第一部分(第1~6章)

一、选择题:

1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。

A.软件工程

B.软件周期

C.软件危机

D.软件产生

2.瀑布模型本质上是一种(A )模型。

A.线性顺序

B.顺序迭代

C.线性迭代

D.早期产品

3.瀑布模型存在的问题是(B )。

A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求

4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。

A.增量模型B.专家系统C.喷泉模型D.变换模型

5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。

A.需求不确定性高的 B.需求确定的C.管理信息 D.实时

6.下列有关软件工程的标准,属于国际标准的是(C )

A.GB

B.ANSI

C.ISO

D.IEEE

7.结构化方法是一种基于(D)的方法。

A.数据结构

B.程序结构

C.算法

D.数据流

8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。

A、简化、压缩的

B、详细的

C、彻底的

D、深入的

9.可行性研究的目的是(D)

A、分析开发系统的必要性

B、确定系统建设的方案

C、分析系统风险

D、确定是否值得开发系统

10.设年利率为i,现存入p元,n年后可得钱数为(C)。

A、P×(1+i*n)

B、P× (i+1)*n

C、p×(1+i)n

D、p×(i+n)

11.可行性研究是在(A)之前

A、系统开发

B、测试

C、试运行

D、集成测试

12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的

(C)。

A、1%

B、20%

C、8%

D、50%

13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。

A.《计算机软件保护条例》

B.《中华人民共和国计算机信息系统安全保护条例》

C.《中华人民共和国著作权法》

D.《计算机病毒防治管理办法》

14.效率是一个性能要求,因此应当在以下哪个阶段规定?B

A、可行性分析

B、需求分析

C、概要设计

D、详细设计

15.需求规格说明书的作用不包括(D)

A、软件验收的依据

B、用户与开发人员对软件要做什么的共同理解

C、软件可行性研究的依据

D、软件设计的依据

16.数据字典是用来定义(D)中的各个成份的具体含义的。

A、程序流程图

B、功能结构图

C、系统结构图

D、数据流程图

17.数据流程图是(A)方法中用于表示系统逻辑模型的一种图形工具。

A、SA

B、SD

C、SP

D、SC

18.DFD中的每个加工至少有(A)。

A、一个输入流或一个输出流

B、一个输入流和一个输出流

C、一个输入流

D、一个输出流

19.需求分析阶段的关键任务是确定(D)

A、软件开发方法

B、软件开发工具

C、软件开发费

D、软件系统的功能

20.在SD方法中全面指导模块划分的最重要的原则是(D)。

A、程序模块化

B、模块高内聚

C、模块低耦合

D、模块独立性

21.在模块的3种基本属性中,反映模块内部特性的是(C)。

A、接口

B、功能

C、逻辑

D、状态

22.模块的耦合性可以按照耦合程度的高低进行排序,以下哪一项符合从低到高的正确次序(D)。

A、数据结构耦合,公共耦合,控制耦合,内容耦合

B、数据耦合,控制耦合,数据结构耦合,公共耦合

C、无直接耦合,数据结构耦合,内容耦合,控制耦合

D、无直接耦合,数据耦合,控制耦合,内容耦合

23.PDL(过程设计语言)是描述处理过程( C )

A、做什么

B、为什么做

C、怎么做

D、对谁做

24.(D)工具在软件详细设计过程中不采用。

A、判定表

B、IPO图

C、PDL

D、DFD图

25.为高质量地开发软件项目,在软件结构设计时,必须遵循(A)原则。

A.信息隐蔽 B、质量控制 C、程序优化D、数据共享

26.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为(D)

A、数据耦合

B、公共耦合

C、标记耦合

D、内容耦合

27.详细设计与概要设计衔接的图形工具是(B)。

A、DFD图

B、SC图

C、PAD图

D、程序流程图

28.下列几种类型中,耦合性最弱的是(D)。

A、内容型

B、控制型

C、公共型

D、数据型

29.软件结构使用的图形工具,一般采用(C)图。

A、DFD

B、PAD

C、SC

D、ER

30.在七种偶合中,最低偶合是(D)。

A、内容偶合

B、公共偶合

C、数据偶合

D、非直接偶合

31.结构化程序设计,主要强调的是(C)

A.程序的执行效率B.模块的内聚

C.程序的可理解性D.模块的耦合

32.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近

和最恰当的(C)上。

A.配置项

B.程序

C.基线

D.过程

33.在软件设计中应该保持模块的独立性原则,( A )反映模块独立性。

A.耦合和内聚

B.数据和模块

C. 模块内部的凝聚力

D.模块之间的耦合

二、简答题

1.什么是软件工程?软件工程的目标是什么?

答:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。

目标:

1合理预算开发成本,付出较低的开发费用。

2实现预期的软件功能,达到较好的软件性能,满足用户的需求。

3 提高软件的可维护性,降低维护费用。

4 提高软件开发生产率,及时交付使用

2.指出瀑布模型中下列任务的顺序:验收测试,项目计划,单元测试,需求评审,成本估计,概要

设计,详细设计,系统测试,设计评审,编码,需求规格说明书。

答:项目计划,成本估计,需求规格说明书,需求评审,概要设计,详细设计,设计评审,编码,单元测试,系统测试,验收测试

3.可行性研究报告的主要内容是什么?

答:可行性研究主要包括以下几个部分:

(1)概述(2)技术可行性(3)项目成熟程度(4)市场需求情况和风险分析(5)投资估算及资金筹措(6)经济与社会效益(7)综合实力和产业基础(8)项目实施进度计划(9)其它尚需要说明

的必要的方面(10)结论

4.什么是需求分析?需求分析阶段的基本任务是什么?

答:所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,“需求分析”就是确定要计算机“做什么”。

任务:确定软件项目的目标和范围。调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作

5.什么是结构化分析方法?该方法使用什么描述工具?

答:结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止

描述工具:1系统流程图 2 数据流程图3数据字典4 IPO图 5层次方框图6实体—关系图

7状态—变迁图

6.结构化分析方法通过哪些步骤来实现?

答:1)确定系统的功能要求

2) 确定系统的数据要求

3) 确定系统的操作要求和界面要求

4) 确定系统的性能要求

5) 确定系统的运行要求

6) 获得当前系统的物理模型

7) 抽象出当前系统的逻辑模型

8) 建立目标系统的逻辑模型。

9) 修正开发计划

10)如果需要则开发系统原型

7.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?

答:数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

数据流图的基本符号的意思:

1.矩形表示数据的外部实体;

2.圆角的矩形表示变换数据的处理逻辑;

3.少右面的边矩形表示数据的存储;

4.箭头表示数据流。

8.什么是数据字典?其作用是什么?它有哪些条目?

答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。

作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。

包括的条目:

数据流词条

数据元素词条

数据存储词条

数据加工处理词条

数据源点及终点词条

9.什么是概要设计?有哪些基本任务?

答:概要设计:根据用户的需求先确定软件系统的总体结构和总的设计原则。

基本的任务:

设想供选择的方案。

推荐最佳方案。

功能分解,确定软件结构。

设计软件结构。

制定测试计划。

数据设计。

书写文档。包括总体设计规格说明书。用户手册。测试计划。

设计审查和复审。

10.详细设计的基本任务是什么?有那几种描述方法?

答:详细设计阶段的任务是要为编写程序代码设计“图纸”,由程序员按“图纸”用某种高级程序设计语言编写程序代码。主要方法有设计程序流程图,表格设计符号以及过程设计语言。

11.什么是变换流?什么是事物流?

答:变换型数据流可以划分为明显的三部分:逻辑输入,中心变换,逻辑输出

事务流的特点是数据沿某个输入路径流动,该路径将外部信息转换成事务,其中发射出多条事务处理路径的中心处理被称为中心事务

12.模块的内聚有哪几种?模块间的耦合有哪几种?

答:内聚分为七种类型:

巧合内聚——一个模块执行多个完全互不相关的动作,那么这个模块就有巧合内聚

逻辑内聚——当一个模块执行一系列相关的动作时,称其有逻辑内聚。

时间性内聚——当一个模块内的多个任务是与时间有关时,这个模块具有时间性内聚。

过程内聚——模块执行的若干动作之间有顺序关系。

通信内聚——模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。

信息内聚——一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作

都作用在相同的数据结构上,这样的模块叫做信息内聚。

功能性内聚——一个模块中各个部分都是完成某一具体功能必不可少的组成部分

耦合分为七类:

内容耦合——如果一个模块直接参考另一个模块的内容,则这两个模块是内容耦合。

公共耦合——如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。

外部耦合——如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。

控制耦合——如果模块A向模块B传递一个控制信息,则称这两个模块是控制耦合的

数据结构耦合——当一个模块调用另一个模块时传递了整个数据结构,这两个模块之间具有数据结构耦合。

数据耦合——如果两个模块传递的是数据项,则这两个模块是数据耦合。

非直接耦合——如果两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现的,这就是非直接耦合。

三、应用题

1.某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。写出在数据字典中,电话号码的数据条目的定义(即组成)。

2.下面是旅客订飞机票的需求描述,试画出分层的数据流程图。

顾客将订票单交给预订系统:(1)如果是不合法订票单,则输出无效订票信息;(2)对合法订票单的预付款登录到一个记账文件中;(3)系统有航班目录文件,根据填写的旅行时间和目的地为顾客安排航班;(4)在获得正确航班信息和确认已交了部分预付款时发出取票单,并记录到取票单文件中。

顾客在指定日期内用取票单换取机票:(1)系统根据取票单文件对取票单进行有效性检查,无效的输出无效取票信息;(2)持有有效取票单的顾客在补交了剩余款后将获得机票;(3)记账文件将被更新,机票以及顾客信息将被登录到机票文件。

订单中有订票日期、旅行日期、时间要求(上午、下午、晚上)、出发地、目的地、顾客姓名、身份证号、联系电话。

0层流程图

预定流程图

取机票流程图

3.一个简化的图书馆信息管理系统有以下功能:(1)借书:输入读者借书证,系统检查借书证是否有效;查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,显示信息“已经超出借书数量”,拒借;未达10本,办理借书(检查库存、修改库存信息并将读者借书信息登入借书记录)(2)还书:输入书号和读者号,从借书记录中读出与读者有关的记录,查阅所借日期,如果超过3个月,作罚款处理。否则,修改库存信息与借书记录。(3)查询:可通过借书记录、库存信息查询读者情况、图书借阅情况及库存情况,打印各种统计表。

请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典。

0层数据流程图

还书流程图

借书流程图

查询流程图

数据字典:

具体描述如下:

车间主任填写维修申请单,内容有设备名称、型号、故障描述、维护时间要求、预计费用;填好后交给审计人员,审计人员根据企业的审计规定对维修申请单进行审计,填写审计意见和审计结果,审计意见可以修改费用,审计结果是同意或不同意;车间主任可以随时查询审计意见和结果;审计通过的维修申请单送给总经理进行审核,并填写审核意见和结果,审核也是以修改费用,审核结果是同意或不同意。审核通过后,车间把设备送去维修。维修后由车间主任组织对设备维修结果进行验收,企业对每台有设备验收标准。验收通过后,由财务人员进行结算,填写支付单并支付维修费。最后收取发票后,财务人员填写发票记录。

请画出设备维修信息管理软件的数据流程图。

参考答案如下,结果不唯一。

5、某个学生成绩管理系统的部分功能如下:

(1)基本信息管理:教务管理人员输入或修改学期教学计划、学生名单和教师名单;

(2)学生选课:学生根据教学执行计划进行选课;

(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师;

(4)教师查询并打印课表;

(5)成绩管理:每门课程的教师在考试评分结束后将考试成绩录入,学生可查询。请根据要求画出该问题的数据流程图。

6、一个简化的养老院软件需求描述如下:老人来到养老院,接待人员将老人的基本信息录入到系统中,管理员读取老人信息,进行护理级别的评估,根据评估结果分配床位、确定护理方案,床位的分配信息存入床位分配数据表,每位老人的护理方案也要保存到数据库表中。财务人员根据收费标准、床位分配信息、护理方案和老人的日常护理记录计算应收费用,老人的家属可以查询应收费信息和老人的日常护理信息。护士根据老人基本信息、护理方案对老人进行日常护理,并向系统录入每日的护理信息。请你根据以上的描述,画出数据流程图。

7、学校教师工资管理系统的需求描述如下:教师每月末将本月的工作量输入到系统中,学院负责人对教师输入的工作量进行审核,财务部门对审核后的工作量计算本月工资,本月工资=基本工资+各种补贴+工作量奖金-税收-保险一公积金金。基本工资、各种补贴、保险、公积金信息由人事处负责输入和维护,教师可以查询月工资明细。银行系统每月从本系统读入每位教师的实发工资,并向每位教师的银行卡帐户打入月工资。教师可以查询自己银行卡的金额。

请针对上面描述的需求画出数据流程图。

8、学校开发的网上作业管理信息系统需求如下:教师使用本系统将作业题输入到数据库中,并且针对不同的学生布置不同的作业。学生在网上查看教师给自己布置的作业,并完成作业,完成的作业放在学生作业表中。教师在网上批阅作业,并可以统计作业完成情况。学生可以查看教师批阅的作业,修改作业中的错误,教师仍然可以查看学生修改作业的情况,并给予批阅。

请仔细阅读上面的描述,画出数据流程图。

第二部分(第7~9章)

一、选择题

1.从本质上说,面向对象是“先”确定(A)后确定执行的动作。

A.动作的主体

B.属性

C.关系

D.方法

2.(B)是对象的静态特征。

A.方法

B.属性

C.关系

D.操作

3.对象的(D)使对象的动态特征

A.特征

B.属性

C.关系

D.操作

4.属于某个类的一个具体对象称为该类的(A)。

A.实例

B.虚拟

C.继承

D.多态

5.UML是(A)。

A)一种可视化的建模语言

B)是一种可视化的程序设计语言

C)是一种过程

D)是一种方法

6.封装的的作用是(A)。

A.复用

B.对象

C.实例

D.方法

8. 面向对象分析的核心在于建立(B)模型。

A. 建立正确的模型

B. 识别问题域对象

C.识别对象之间的关系

D.上面所有

9. 面向对象分析过程中建立的模型有(D )。

A. 数据模型、功能模型、活动模型

B. 对象模型、功能模型、测试模型

C. 属性模型、功能模型、对象模型

D. 对象模型、功能模型、动态模型

10. 下列的( C)不是分析建模的目的。

A. 定义可验证的软件需求

B. 描述客户需求

C. 开发一个简单的问题解决方案

D. 建立软件设计的基础

11. 下列的( C)不属于面向对象分析模型。

A. 用例图

B. 类图

C. 实体关系图

D. 顺序图

12. (A )用于描述系统中概念层次的对象。

A.分析类

B. 界面类

C.实体类

D.控制类

13. 在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的(A)将用例的职责分配到分析类中。

A. 消息传递

B 关联关系

C 继承关系

D 上下文关系

14.用例的实现细节不会在(B)描述。

A. 用例说明

B. 用例图

C.活动图

D.顺序图

15.用例的职责通常分配给(D)的对象。

A. 发送消息

B. 接收消息

C.发送和接收双方

D.分析类

16.组织机构图是(C)。

A. UML的一个最新图

B. 类图的一种

C.用于识别角色的辅助图

D.用例图的一种

17.在图书馆系统中,假如已经构造了一个一般借书者类,后来发现图书馆的学生和教师在借书中有不同要求。请问在面向对象设计中用(B)方法可以方便地设计这两个类?

A.信息隐藏

B.继承

C.动态联编

D.代码复制

18.框架是一组可用于不同应用的(A)集合

A. 类

B.对象

C.模块

D.代码

19.下面哪个选项不能描述子系统之间的关系。(D)

A. 请求——服务关系

B.继承关系

C.依赖关系

D.数据关系

20.每个子系统的接口上定义了若干(B),体现了子系统的功能。

A. 说明

B.操作

C.属性

D.关系

21.通常将具有共性的非功能要求设计在(B),以减少重新开发的工作量。

A. 接口层

B.中间层

C.最低层

D.最高层

22.每个用例至少应该有一个(C),它通常没有属性而只有方法,只是起协调和控制作用。

A. 接口类

B.实体类

C.控制类

D.界面类

23.类有三种类型即(A)。

A. 边界类、实体类、控制类

B. 实体类、数据类、界面类

C. 控制类、实体类、数据类

D. 界面类、控制类、公共类

24.下面那个选项不是正确的面向对象设计思想。(C)

A.对接口进行设计

B.发现变化并且封装它

C.先继承后组合

D.先组合后继承

25.定义类的属性类型时尽量使用已有的类型,太多的自定义类型会降低系统的(A)指标。

A.可维护性

B.安全性

C.开发效率

D.可移植性

26. 从本质上说,面向对象是“先”确定动作的()“后”执行( D )。

A.数据结构/主体

B.主体/数据结构

C.动作/主体

D.主体/动作

二、简答题

1.举例说明类和对象的关系。

答:学生可作为一个类---学生类,每个学生就是这个学生类的一个实例,例如,学生张三就是学生类的一个实例。

2.面向对象分析的关键步骤有哪些?应建立哪几个模型?

答:关键步骤有识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;应建立的模型有功能模型,对象模型,动态模型。

3.什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?

答:(1)实体类保存要存入永久存储体的信息。实体类通常在事件流或交互图中,是对用户最有意

义的类。

边界类位于系统与外界的交界处,包括所有的窗体、报表、系统硬件接口、与其他系统的接口。

控制类负责协调其他类的工作。每个用例中至少应该有一个控制类,它控制用况中的事件顺序。(2)分为三种类型是因为它们各自的功能不同。界面类——描述系统与角色之间的接口。

控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。

实体类——为需要长久保存的信息进行建模的类。

4.UML中有哪几类个视图,它们的作用分别是什么?

答:(1)用例视图(Use-Case view)

用例视图用于描述系统的功能集。它是从系统外部以用户角度,对系统做的抽象表示。用例视图所描述的系统功能依靠于外部用户或另一个系统触发激活,为用户或另一个系统提供服务,实现与用户或另一个系统之间的交互。

用例视图中可以包含若干个用例,用例表示系统能够提供的功能,用例视图是其他视图的核心和基础。其他视图的构造依赖于用例视图中所描述的内容,因为系统的最终目标是实现用例视图中描述的功能,同时附带一些非功能性的特性,因此用例视图影响着所有其他的视图。

(2)逻辑视图(Logical view)

如果说用例视图描述系统“做什么”,那么逻辑视图就是描述“怎么做”。系统的静态结构描述类、对象和它们之间的关系,反映的是系统静态特征或结构组成。

(3)组件视图(Component view)

组件视图用来描述系统实现的结构和行为特征,反映系统各组成元素之间的关系。组件视图由组件图实现,主要供开发者和管理者使用。

(4)并发视图(Concurrency View)

并发视图用来描述系统的动态和行为特征。并发视图将任务划分为进程或线程形式,通过任务划分引入并发机制,可以高效地使用资源、并行执行和处理异步事件。除了划分系统为并发执行的进程或线程外,并发视图还必须处理通信和同步问题。

(5)配置视图(Deployment View)

配置视图体现了系统的实现环境,反映系统的物理架构。配置视图还包括一个映射,该映射显示在物理架构中组件是怎样分配的。

5. 顺序图在分析阶段的作用?

答:顺序图描述了一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序

6. 活动图在分析阶段的作用?

答:活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。活动图特别适

合描述工作流和并行处理过程。具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。

7.比较结构化设计和面向对象设计区别?

答:结构化设计:系统被划分成多个模块,这些模块被组织成一个树型结构。根就是主模块,叶子是最低级的功能模块。这棵树也表示调用结构:每个模块都调用自己的直接下级模块,并被自己的直接上级模块调用。顶层模块负责收集应用程序最重要的那些执行策略,底层模块实现处理细节。在这个体系结构中越靠上层位置,概念的抽象层次就越高。但是,由于上层模块需要调用下层模块,所以这些上层模块就依赖于下层模块的处理细节。也就是说,当实现细节发生变化时,抽象也会受到影响;如果想复用某一个抽象的话,就必须把它依赖的细节都一起拖过去。

面向对象设计:上层创建的抽象不依赖于任何细节,而细节则高度依赖于上层的抽象。这种依赖关系的变化正是结构化设计与面向对象设计的根本区别。

8.什么是框架,它与“设计”有什么关系?

答:框架是一组可用于不同应用的类的集合。框架中的类通常是一些抽象类并且相互有联系,可以通过继承的方式使用这些类,当面向对象设计进行底层设计时,对每个类进行详细设计,设计类的属性和操作,优化类之间的关系,就可以设计成框架来对类的设计进行构架和优化。

9.系统的物理构架中应该包括哪些信息?

答:用UML的配置图描述系统的物理构架,然后将需求分析阶段捕获的系统功能分配到这些物理节点上。包括的信息为节点的拓扑结构、硬件设备配置、通信路径、各个节点上运行的系统软件配置、应用软件配置。

三、应用题

1.一个多媒体商店系统包含一个由媒体文件构成的数据库,有两类媒体文件:图像文件和声音

文件。每个媒体文件都有名称和唯一的编码,而且文件包含作者信息和格式信息,声音文件还包含声音文件的时长(以秒为单位)和作者的信息。假设每个媒体文件可以由唯一的编码所识别,系统要提供以下功能:

1)媒体库中可以添加新的特别媒体文件。

2)通过给定的文件编码查找需要的媒体文件。

3)从媒体库中删除指定的媒体文件。

4)给出媒体库中媒体文件的数量。

考虑类imageFile和audioFile应该具有哪些恰当的属性和方法

答:imageFile类的属性有:Name(文件名称),Code(编码),AuthorInfo(作者信息),Format (格式信息);audioFile类除了拥有以上属性外还有属性Time(文件时长);

imageFile类的方法:Add(imageFile)(添加图像文件),Delete(Code)(删除文件),GetFile

(Code)(查找文件),GetNumber()(返回媒体文件的数量);

audioFile类的方法:Add(audioFile)(添加声音文件),Delete(Code)(删除文件),GetFile (Code)(查找文件),GetNumber()(返回媒体文件的数量)。

2.若把学生看成一个实体,它可以分成多个子实体,如小学生、中学生和大学生等。在面向对

象的设计中,可以创建如下4个类:类Student、类Elementary Student、Middle Student;

类University Student。试给出这4个类的属性以及它们之间的关系。

答:Student类为基类,其他三个类都是Student的子类。

Student类的属性有:Name(姓名),Sex(性别),Age(年龄),Class(班级)。

Elementary Student类的属性有:IsTeamMember(是否是少先队员),IsGoodStudent(是否是三好学生)。

Middle Student类的属性为:IsMember(是否是团员),Subject(文科理科)。

University Student类的属性为:IsPartyMember(是否党员),Department(学院),Specialty (专业)。

三、应用题

1.某学校领书的工作流程为:学生班长填写领书单,班主任审查后签名,然后班长拿领书单到

书库领书。书库保管员审查领书单是否有班主任签名,填写是否正确等,不正确的领书单

退回给班长;如果填写正确则给予领书并修改库存清单;当某书的库存量低于临界值时,登

记需订书的信息。每天下班前为采购部门提供一张订书单。用活动图来描述领书的过程。

解:

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件工程复习试题及答案.

一、填空题(在下划线上填写正确的答案,每题2分,共20分) 1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。 2.数据流图和数据字典共同构成了系统的逻辑模型。 3.盒图也称为N-S图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 4.软件有效性,指软件系统的时间和空间效率。 6.数据流图有四种基本成分:源、终点,处理,存储,数据流。 7 中数据项是组成数据流和数据存储的最小元素。 8.软件工程中的结构化分析SA是一种面向数据流的分析方法。 9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段。 3.软件测试的步骤:单元、集成、系统、验收。 4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。5.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。 7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。 9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。10.常用的测试方法有黑盒测试和白盒测试。 1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益

软件工程复习资料2012秋(1)

软件工程复习题一 一、选择题,请从四个可选项中选择正确答案。 1.以下哪一项不是软件危机的表现形式() A.成本高 B.生产率低 C.技术发展快 D.质量得不到保证 2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。() A.演化模型 B.喷泉模型 C.原型模型 D.螺旋模型 3.可行性研究的目的不包括() A.分析开发系统的必要性 B.确定系统建模的方案 C.分析系统风险 D.确定是否值得开发系统 4.可行性分析研究的费用大约是项目总经费的()。 A.2% B.8% C.20% D.50% 5.在E-R 模型中,包含以下基本成分()。 A.数据、对象、实体 B.控制、联系、对象 C.实体、联系、属性 D.实体、属性、联系 6.软件需求分析产生一个重要文档是()。 A.软件维护说明书 B.需求规格说明书 C.可行性报告 D.初步用户手册 7.内聚程度较低的是()。 A.通信内聚 B.过程内聚 C.顺序内聚 D.时间内聚 8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是() A.把软件划分成模块 B确定模块之间的调用关系 C.确定各个模块的功能 D.设计每个模块的伪代码 9.UML 语言支持的建模方式不包括有()。 A.静态建模 B.动态建模 C.模块化建模 D.功能建模 10.以下哪一项不是面向对象的特征。() A.多态性 B.继承性 C.封装性 D.过程调用 11.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了() A.软件危机 B.软件工程 C.程序设计革命 D.结构化程序设计

12.瀑布模型的关键不足在于() A.过于简单 B.不能适应需求的动态变更 C.过于灵活 D.各个阶段需要进行评审 13.可行性研究的四大要素是()。 A.经济、技术、法律和社会环境 B.经济、技术、开发组织能力和领导者水平 C.经济、技术、计算机硬件环境和网络带宽 D.经济、技术、软件开发工具和人员的稳定性 14.经济可行性研究的主要内容包括() A.开发过程 B.开发工具 C.风险分析 D. 效益分析 15.在需求分析过程中,分析员要从用户那里解决的最重要的问题是()。 A.要求软件做什么 B.要给软件提供哪些信息 C.要求软件工作效率如何 D.要求软件具有什么样的结构 16.DFD中的每个加工至少需要() A.一个输入流 B.一个输出流 C.一个输入或输出流 D.一个输入流和一个输出流 17.PDL是描述处理过程()。 A.做什么 B.为什么做 C.怎么做 D.对谁做 18.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()A.数据耦合 B.公共耦合 C.标记耦合 D.内容耦合 19.按照模块独立性,耦合程度由弱至强正确的顺序是()。 A.数据耦合、控制耦合、外部耦合、内容耦合 B.控制耦合、数据耦合、内容耦合、外部耦合 C.内容耦合、外部耦合、控制耦合、数据耦合 D.外部耦合、内容耦合、数据耦合、控制耦合 20.UML 中,包图是一种()。 A.集合 B.数据结构 C.分组机制 D.对系统的动态描述

软件工程复习提纲(20160615)

软件工程复习提纲 Chapter1 1.开发文档都有哪些?用图来表示它们之间的关系。 2.说明软件工程研究的内容。 3.软件工程的7条基本原理有何现实意义。 4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别? 5.怎样理解CMMI,如何用CMMI去管理软件企业? 6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000 模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么? 7.软件工程与信息系统工程有何异同? 8.怎样理解元数据? Chapter2 1.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系? 2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。 3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么? 4.你对“生存周期模型裁剪指南”有什么看法? 5.“图书馆信息系统”的开发选用什么开发模型合适? Chapter3 1.立项的具体表现形式是什么? 2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员? 3.什么叫风险分析,技能风险与技术风险有何区别? 3.合同、任务书、立项建议书三者有何异同?有何关系? 4.对软件项目和产品的“功能、性能、接口”三项指标如何理解? Chapter4 1.需求分析的目的是什么,需求分析的难点在哪里? 2.需求分析的理论基础有哪几条? 3.为什么说需求分析是面向流程的? 4.解释术语:元数据、实体、中间数据。 5.用户需求报告与需求规格书有何差异? 6.需求描述有哪几种工具?你喜欢哪一种,为什么?

软件工程复习题

一、单选题 1.软件结构图的形态特征能反映程序重用率的是() a)A、深度 B、宽度C、扇入 D、扇出 2.在大型数据处理系统的功能分析和设计中,数据库的概念设计对应于系统开发的( ) a)A、需求分析 B、概要设计C、详细设计 D、程序设计 3.为了提高模块的独立性,模块内部最好是() a)A、逻辑内聚 B、时间内聚C、功能内聚 D、通信内聚 4.需求分析最终结果是产生() a)A、项目开发计划 B、需求规格说明书C、设计说明书D、可行行分析报告 5.软件是一种() a)A、程序 B、数据C、逻辑产品 D、物理产品 6.信息隐蔽概念与()概念有直接的关系 a)A、模块的独立性 B、模块类型的划分C、软件结构定义 D、软件生命周期 7.不属于序言性注释的有() a)A、模块设计者B、修改日期C、程序的整体说明D、语句功能 8.单元测试阶段主要涉及()的文档。 a)A、需求设计 B、编码和详细设计C、详细设计D、概要设计 9.在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法。( ) a)A、应用范围B、内部逻辑C、功能 D、输入数据 10.需求分析是系统分析师经了解用户的需求,认真仔细的调研、分析,最终建立目标系统 的逻辑模型并写出() a)A、模块说明书B、软件规格说明书C、项目开发计划 D、合同文档 11.系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为( ) a)A、系统软件B、容错软件C、测试软件 D、操作系统 12.产品管理包括版本管理和() a)A、质量管理 B、性能管理C、开发过程管理 D、配置管理 13.ISO9001质量管理体系认证等同于能力成熟度模型中的第几级() a)A、CMM1 B、CMM2 C、CMM3 D、CMM4 E、CMM5 14.ISO9001质量管理体系认证只做到() a)A、历史记录可查询B、错误原因可查询 15.为了克服软件危机,人们提出了用()的原理来设计软件,这就是软件工程诞生的基础。 a)A、数据B、软件学C、运筹学D、工程学 16.可行性研究的目标是() a)A、开发项目B、项目是否值得开发C、规划项目 D、维护项目 17.结构化程序设计思想的核心是要求程序只由顺序、循环和()三种结构组成A、 选择 B、单入口C、单出口D、有规则的GOTO 18.纠错是由()完成的

软件工程方法与实践 期末考试复习资料(江理)

软件工程的定义:软件工程是一门研究如何用系统化、规范化、数量化等工程化思想和方法去进行软件开发、维护和管理的学科。软件危机的定义:软件开发和维护过程中所遇到的如软件规模越来越大,复杂度不断增加,软件的需求量日益增大等的严重问题我们称之为软件危机。 软件工程有哪些基本的思想:a.推迟实现的观点b.逐步求精的观点c.分解与抽象的观点d.信息隐蔽的观点e.质量保证的观点 CMM(Capability Maturity Model)能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 极限编程(Extreme Programming , XP)是一种软件工程方法学是敏捷软件开发中最富有成效的几种方法学之一。它的的核心有四个要点:交流、简单、反馈、勇气 软件生命周期模型:通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型。 软件需求分类:功能需求、非功能需求和领域需求 结构化分析(Structured Analysis, SA) 结构图(Structure Chart ,SC) 面向对象的一些概念:类是具有相同或相似性质的对象的抽象。实例是类的具体化。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。消息是指对象间相互联系和相互作用的方式 数据流类型:变换型数据流、事务型数据流、混合型数据流 Jackson图:Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。Jackson方法用某种形式的伪码给出程序的过程性描述。伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。

上海大学软件工程试卷试题(附答案)

、单项选择题(本大题共20小题,每小题 1 分,共20分) 在每小题列出的备选项中只有一个是符合题目要求的,多选或未选均无分。请将其代码填写在题后的括号内。错选、 1. 在软件生命周期的各个阶段中,工作量最大的阶段是 A .需求分析B.总体设计 C.综合测试 D .软件维护 2. 瀑布模型的特点不包括 A.前一阶段的任务没有完成,不能进入下一阶段工作 B.进入某个阶段工作后,不再回复到之前的阶段工作C.只有完成并评审了规定的文档,才标志着一个阶段的工作结束D.在软件产生之前,需求无法得到充分的测试 3. 螺旋模型强调的开发手段是 A.分阶段开发 C.风险驱动开发 4. 需求分析阶段的工作不包括 A.获得当前系统的物理模型 C.建立目标系统的逻辑模型 5. 总体设计阶段的工作不包括 A.确定程序的模块组成 C.确定实现各个模块功能的处理逻辑 6. 描绘系统物理模型的传统工具是 A .系统流程图 C.实体-联系图 7. 符合信息隐藏原理的是 A .将信息隐藏起来不被发现 C.将可能要修改的设计决策隐藏起来B.废弃式原型开发 D.增量式开发 B.抽象出当前系统的逻辑模 型 建立目标系统的物理模型 D. B.确定模块间的相互关 系 D.制定测试计划 B.数据流图 D.状态转换图 B.将信息隐藏起来确保安全 D.将不要修改的设计决策隐藏起 来 8. 模块的独立性原则是指软件设计时要尽量使模块具有 A .低内聚、低耦合B.低内聚、高耦合C.高内聚、低耦合D.高内聚、高耦合

[ 9. 有利于提高模块独立性的做法是 A.尽量使模块具有逻辑型内聚 B.尽量使模块间具有内容型耦合 C.使判定作用范围内的模块尽量成为该判定所在模块的直属下级模块 D.尽量提高模块的扇入数和扇出数 [ 10. 有关结构化设计(SD )方法的正确叙述是 ] A.只使用顺序、选择和循环 3 种控制结构 B.由数据结构映射出软件的结构 C.是一种面向对象的设计方法 D.是一种面向数据流的设计方法 [ 11. 有关总体设计阶段所使用的结构图的不正确叙述是 ] A.能够描述软件系统的模块组成 B.结构图中的模块是按照自上而下、自左向右的顺序执行的 C.能够描述模块间的调用关系以及模块间调用时所传递的信息 D.将模块间调用时所传递的信息分成两种:数据信息和控制信息 [ 12. 要求使用顺序、选择和循环控制结构的组合或嵌套来表达程序的过程设计工具是 A .程序流程图B . 盒图 C .判定表D.PDL 13 . 关于好的编码风格的正确叙述是 A .把多个语句写在同一行以节省空间B.要求用户指定输入数据的数目 C .检查输入项重要组合的合法性D.表达式中不使用多余的括号,以简化表达式 14 . 能发现软件需求规格说明书中的错误的测试步骤是 A .模块测试B.子系统测试 C .系统测试D.验收测试 15 . 自顶向下集成测试和自底向上集成测试都具有的优点是 A .较早发现主要设计错误B.可采用深度优先策略和宽度优先策略 C .支持故障隔离D.可复用模块得到充分测试 19 . 不符合面向对象设计准则的是 A .用对象的封装性来实现信息隐藏B.尽可能松散对象之间的交互耦合 C .尽可能减小继承耦合度D.尽可能设计小而简单的类 20. 上海大学校内电话号码由 5 位数字组成,但第 1 位数字只能是 5 或6。该电话号码的

软件工程复习资料

1、下列哪一模型是软件的基础模型 A.瀑布模型 B.快速原型 C.增量模型 D.螺旋模型 2、划分软件生存周期的阶段时所应遵循的基本原则是 A.各阶段的任务尽可能相对独立 B.各阶段的任务在时间上连续 C.各阶段的任务尽可能相关性 D.各阶段的任务在时间上相对独立 3、下列哪个办法不属于解决软件危机的途径之一 A.采用软件工程的解决途径 B.研制新一代智能计算机 C.采用面向对象的软件设计方法 D.大力扶持软件企业 4、下列哪个不属于软件工程的内涵之一 A.扶持培养软件高手的学院 B.开发既可靠又能有效运行的软件 C.应用完善的科学与工程原理 D.经济地开发软件 5.造成大型软件开发困难的根本原因在于 A.开发人员缺乏足够的开发经验 B.项目开发进度不合理 C.软件系统的复杂性 D.对软件开发的资金投入不足 6.软件会逐渐退化而不会磨损,其原因在于 A.软件备件很难订购 B.不断的变更使组件接口之间引起错误 C.软件错误在经常使用之后会逐渐增加 D.软件通常暴露在恶劣的环境下 7.下面说法正确的是 A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化 B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产 C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功 D.购买大多数计算机系统所需的硬件比软件更昂贵 8.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制

9.软件危机的主要原因是 A.软件本身的特点及开发方法。 B.软件工具落后。 C.软件生产能力不足。 D.对软件的认识不够。 10.下面的描述正确的是 A.软件质量是在开发过程中逐渐构建起来的。 B.软件质量是由产品的功能、性能、易用性等外在特性决定的。 C.运行正确的软件就是高质量的软件。 D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。 11、可行性研究主要包括哪几项? A.技术可行性、经济可行性和操作可行性 B.技术可行性、经济可行性和道德可行性 C.技术可行性、法律可行性和操作可行性 D.技术可行性、操作可行性和法律可行性 12、成本/效益分析的目的是帮助()正确地作出是否投资于这项开发工程的决定。 A.系统分析员 B.客户组织的负责人 C.项目经理 D.软件开发人员 13、在进行成本/效益分析的时候,需要考虑() A.开发成本 B.运行费用 C.系统带来的经济效益 D.系统使用寿命 14、数据流图和数据字典共同定义了新系统的逻辑模型。 A.错 B.正确 15、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。 A. 正确 B.错误 16、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。 A.正确 B.错误 17、结构化分析方法遵守的准则之一——定义软件需要完成的功能,需要建立的模型是 A.功能模型 B.数据模型 C.行为模型 D.动态模型 18、下列叙述中,()不属于数据字典的作用。 A.为用户与开发人员之间统一认识 B.为需求分析阶段定义各类条目

软件工程复习题及答案

软件工程复习题(一) 一、选择题 1、瀑布模型本质上是一种() A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 2、使用程序设计的控制结构导出测试用例的测试方法是() A、黑盒测试 B、白盒测试 C、边界测试 D、系统测试 3、软件结构图的形态特征能反映程序重用率的是() A、深度 B、宽度 C、扇入 D、扇出 4、软件结构图中,模块框之间若有直线连接,表示它们之间存在() A、调用关系 B、组成关系 C、链接关系 D、顺序执行关系 5、需求分析最终结果是产生() A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告 6、快速原型模型的主要特点之一是( ) A、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 8、软件详细设计主要采用的方法是( ) A、模块设计 B、结构化设计 C、PDL语言 D、结构化程序设计 9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A、.软件工程 B、软件周期 C、软件危机 D、软件产生 10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作() A、需求分析 B、概要设计 C、详细设计 D、软件维护 11、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是() A、探索型模型 B、演化型模型 C、实验型模型 D、提交型模型 12、程序设计语言的工程特性之一为( ) A、软件的可重用性 B、数据结构的描述性 C、抽象类型的描述性 D、数据库的易操作性 13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A、可用性 B、可靠性 C、正确性 D、完整性 14、模块设计中,最不希望的内聚是() A、功能内聚 B、通信内聚 C、过程内聚 D、偶然内聚 15、实施快速原型模型方法开发软件的关键在于() A、CASE工具的支持 B、如何开发演化型模型 C、项目主管的支持 D、开发人员的素质 16、程序流程图(框图)中的箭头代表( )。 A、数据流 B、控制流 C、调用关系 D、组成关系 17、一个只有顺序结构的程序,其环形复杂度是( )。 A、0 B、1 C、3 D、不确定的

软件工程课程复习大纲

软件工程课程复习大纲 第一章软件工程概论 本章作为全书的概论,主要讲述了软件、软件工程概念和软件开发的目标和本质。 基本要求: 1、“软件”概念: “软件”一词具有三层含义: (1)一为个体含义,即指计算机系统中的程序及其文档; (2)二为整体含义,即指在特定计算机系统中所有上述个体含义下的软件的总称,亦指计算机系统中硬件除外的所有成分; (3)三为学科含义,即指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、方法、技术所构成的学科。 2、“软件工程”概念: (1)一方面,软件工程是一类求解软件的工程。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法、创建软件以达到提高质 量,降低成本的目的; (2)另一方面,软件工程也是一门指导计算机软件开发和维护的工程学科。 3、“模型”概念: 模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内各模型元素以及它们之间的语义关系。 重点要求: 1、软件开发的本质:实现问题域中的概念和处理逻辑到运行平台的概念和 处理逻辑的映射。 第二章软件过程 本章围绕软件过程这一主题,讲解了三方面的内容: 一:介绍了软件生存周期过程。按照承担软件开发工作的主体,软件生存周期过程分三类:基本过程、支持过程和组织过程。每类过程又包含一些确定的过程,每一过程又是由一组确定的活动定义的。 二:介绍了几种常用的软件生存模型:瀑布模型、增量模型、演化模型、螺旋模型和喷泉模型等,分析了这些模型的优缺点及它们的适用情况等。 三、讲解了一个软件项目生存周期过程的规划和监控。一个软件项目生 存周期过程规划包括三个阶段:第一阶段的目标是选取一个适合该项目特点

软件工程期末试题(含答案)广东药学院

填空题 1. 定义;开发;维护;问题定义;可行性研究;需求分析;总体设计;详细设计;编码和单元测试;综合测试;维护;维护。 2. 技术;经济;操作;软件项目的可行性/ 3. 一致性;现实性;完整性;有效性;完整性;有效性;原型系统。 4. 模块化;抽象;逐步求精;信息隐藏;局部化;模块独立;结构程序设计;可理解性。 5. 发现错误;黑盒测试;白盒测试;穷尽测试;测试方案。 6. 改正性维护;适应性维护;完善性维护;预防性维护。 一、 1. 软件生命周期可划分为、和3个时期,通常把这3个时期再细分为8个阶段,它们是①、②、③、④、⑤、⑥、⑦和⑧,其中的阶段的工作量是8个阶段中最大的。 2. 可行性研究的任务是从、和等三个方面研究。 3. 至少应该从、、和4个方面验证软件需求的正确性,其中和这两个方面的正确性必须有用户的积极参与才能验证,而且为了验证这两个方面的正确性,往往需要开发。 4. 软件总体设计时应遵循、、、、、和等6条基本原则。详细设计通常以技术为逻辑基础,因为从软件工程观点看,是软件最重要的质量标准之一。 5. 软件测试的目的是,通常把测试方法分为和两大类。因为通常不可能做到,所以精心设计是保证达到测试目的所必须的。 6. 软件维护通常包括4类活动,它们分别是、、、。 二、判断下述提高软件可维护性的措施是否正确,正确的在括弧内写对,错的写错。 1. 在进行需求分析时同时考虑维护问题。() 2. 完成测试后,为缩短源程序长度而删去程序中的注释。() 3. 尽可能在软件开发过程中保证各阶段文档的正确性。() 4. 编码时尽可能使用全局变量。() 5. 选择时间效率和空间效率尽可能高的算法。() 6. 尽可能利用硬件的特点以提高效率。() 7. 重视程序结构的设计,使程序具有较好的层次结构。() 8. 使用维护工具或软件工程环境。() 9. 进行概要设计时尽可能加强模块间的联系。() 10. 提高程序可读性,尽可能使用高级语言编程。() 三、按下述要求完成给出的程序流程图,即在答案栏内写出图中A、B、C、D、E的正确内容 给程序输入二维数组W(I,J),其中I≤M,J≤N(MT N均为正整数)。程序打印出数组中绝对值最小的元素值Q=W(K,L),及其下标K、L的值。假定数组中仅有一个绝对值最小的元素。 应该完成的程序流程图如下所示

《软件工程》复习资料

1,什么是软件,软件的性质 软件是完成某类问题求解的程序和数据以及为维护程序必须提供的一系列文档组成的集合。软件=程序+数据+文档。 软件的内在性质是:软件具有高度的抽象性和严密的逻辑性。 软件的外在性质是:软件是一种逻辑信息产品,是用文字、符号表达的智力产物。 2,什么是工程化工程化的软件开发方法与早期的程序设计方法的不同点在哪里? 将成熟工程领域的方法应用于软件开发。工程化的方法包括如下四个方面: ⑴.具有相应的理论与技术⑵.具备实现工程化的工具和环境 ⑶.具备统一的工程规范⑷.管理和控制 3,软件工程研究的内容 软件项目的管理 软件工程的知识体系包括如下内容 过程:软件开发的步骤。方法:软件开发各步骤所用到的技术。管理:控制软件开发按照过程和方法顺利完成的技术和措施。工具:辅助人们贯彻过程和方法,并实施管理 1,可行性分析包含哪些内容,它们的含义是什么? 答:⑴.经济上可行性:论证系统有没有经济效益或社会效益?多长时间能回收成本? ⑵.技术上可行性:实现新系统需要哪些技术,现有技术能否解决,难点?建议采用的技术先进程度怎样?新技术的应用是否存在风险?是否能够找到胜任该系统的熟练的技术人员?等等⑶.操作上可行性:系统的操作方式在用户所在的组织内是否可行,特别是对原有系统扩展会不会引起矛盾。⑷.法律上可行性:会不会引起侵权、会不会引起其他的社会问题。 2,下列哪些工作中需要估算软件成本? I)软件可行性研究II)软件计划III)软件需求分析IV)软件运行和维护 三 1,结构化分析方法的三种描述手段 数据流图,掌握数据流图中的基本符号,大题要求给出一个需求能够画出多层数据流图 数据字典 加工说明的三种描述工具是:结构化语言、判定树和判定表来表示 2,结构化方法的特点:自顶向下,逐层分解,抽象和分解 3,用户需求: ?某学校需要开发一套基于Web的研究生招生管理系统,用户需求如下: –考生可以登录系统提交报名信息,报名信息经过格式确认存入数据库;信息提交成功后能够网上在线支付报名费并记录交费信息;交费成功的考生可以打印 报名表。 –各院系教务员能够查看和审核考生提交的报名信息,确定信息是否准确有效,最后给出审核是否通过的标志。教务员还能够打印报名考生清单。 –招生办公室管理员能够查询有效的报名考生信息和打印统计报表;能够生成报名考生数据文件上报到上级单位(教育部)。 题目要求: ?请用SA方法对它进行分析,画出分层数据流图。(只要求数据流图,不要求数据字典和 报名信息库

软件工程复习题答案

软件工程复习题答案 Final approval draft on November 22, 2020

一、选择题 1.软件工程研究的主要内容有(ABCD) 2.A. 软件开发方法、技术 B. 软件开发工具及环境 3.C. 软件管理技术 D. 软件规范(国际规范) 4.目前典型的软件开发模型有(ABCD): 5.A. 瀑布模型 B. 增量模型 C.螺旋模型 D.喷泉模型 6.包含风险分析的软件工程模型是(C): 7.A. 瀑布模型 B. 增量模型 C.螺旋模型 D.喷泉模型 8.软件危机的主要表现是(BD) 9.A. 软件成本太高 B. 软件产品的质量低劣 10. C. 软件开发人员明显不足 D. 软件生产率低下 11.以下属于非功能需求的有(ABC) 12. A. 机构需求 B. 产品需求 C. 外部需求 D. 领域需求 13.需求分析的作用是(ABCD) 14. A. 定义软件的范围及必须满足的约束 15. B. 确定软件的功能和性能及与其他系统成分的接口 16. C. 建立数据模型、功能模型和行为模型 17. D. 最终提供需求规格说明,并用于作为评估软件质量的依据 18.需求工程的基本活动包括(ABCD) 19. A. 获取需求 B. 需求分析与建模 C. 确认需求 D. 进化需求 20.需求获取之所以困难,其主要原因有(ABCD) 21. A. 缺乏领域知识 B. 存在默认的知识 22. C. 存在多个知识源 D. 客户可能的偏见 23.常用的需求分析方法有(BCD) 24. A. 功能分析方法 B. 结构化分析方法 25. C. 信息建模法 D. 面向对象的分析方法 26.数据词典中可包含的条目有(ABCD) 27. A. 数据流 B. 数据项 C. 文件 D. 加工 28.属于分布式的软件体系结构有(B) 29. A. 仓库模型 B. 客户/服务器模型 C. 分布式对象结构 D. 中间件30.对于以下给出的几种类型的耦合,按照耦合性由高到低排列的是(A) 31.(1)内容耦合(2)公共耦合(3)控制耦合(4)复合耦合(5)数据耦合 32. A. 1 2 3 4 5 B. 1 3 4 2 5 C. 1 2 5 3 4 D. 5 4 3 2 1 33.对于块内部联系的类型,内聚性由弱到强的是(A) 34.(1)偶然型(2)逻辑型(3)瞬时型(4)通信型(5)顺序型(6)功能型 35. A. 1 2 3 4 5 6 B. 1 2 4 5 3 6 C. 3 2 4 1 5 6 D. 6 5 4 3 2 1 36.(C)是指相同的操作(或函数、过程)作用于不同的对象上并获得不同的结果 37. A. 继承性 B. 封装性 C. 多态性 D. 动态绑定 38.以下UML的几种图中,属于动态模型的有(ACD)

软件工程复习资料-完整版

一、选择题: 1、用例图中,用来表示用例的符号为(B)。 A B. C. D. 2、协作图中包含的元素包括(A)。 A. 对象 B. 链 C. 激活 D. 消息 3、在类图中,哪种关系表达整体与部分的关系(D)。 A.泛化 B. 实现 C. 依赖 D. 聚合 4、下列各种图形符号中,用来表示组成关系的符号为(B)。 A. B. C. D. 5、(A)工具在软件的详细设计中不能使用。 A.DFD B. N-S图 C. 流程图 D. PDL 6、“软件危机”是指(C)。 A. 计算机病毒的出现 B. 利用计算机进行经济犯罪活动 C. 软件开发和维护中出现的一系列问题 D. 人们过分迷恋计算机系统 7、快速原型是利用原型辅助软件开发的一种新思想,它是在研究(A)的方法和技术中产生的。

A. 需求阶段 B. 设计阶段 C. 测试阶段 D. 软件开发的各个阶段 8、从严格意义上讲,下列4个选项中属于顺序图的元素是(ABCD)。 A. 对象 B. 参与者 C. 消息 D. 激活 9、下列UML图形中,(ABCD)属于UML的动态视图。 A. 协作图 B. 状态图 C. 活动图 D. 顺序图 10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是(D)。 A. 数据库设计 B. 数据通信 C. 数据关系描述 D. 数据定义 11、详细设计与概要设计衔接的图形工具是(D)。 A. DFD图 B. 程序图 C. PAD图 D. SC图 12、UML中,大多数建模者把节点分为(AC) A. 设备 B. 构件 C. 处理器 D. 显示器 13、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。 A.时间图 B. 流程图 C. 活动图 D. 状态图 14、(A)描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。 A. 状态图 B. 序列图 C. 协作图 D. 活动图 15、下列特点属于描述用例的特点的是(D)。 A. 相对独立:不需要与其他用例交互,即功能是完备的

中南大学软件工程历届试卷

填空题(本题20分,每小题2分) 1. 瀑布模型是以文档为驱动、适合于(软件需求确定的)软件项目的开发。 2. 需求分析的基本任务是(确定用户需要软件做什么)。 3. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(边界值分析法)。 4. 根据程序流程图划分的模块通常是(过程)内聚的模块。 5. 软件的分类,按其功能可分为:系统软件、(支撑软件)和应用软件。 6. UML的定义包括UML语义和(UML表示法)两个部分。 7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和( 整体与部分结构)。 四、测试题(本题16分,每小题8分) 某程序的程序流程图如下图所示,试据此回答下述问题: 1. 计算程序的环形复杂度; 2. 设计测试用例,满足基本路径覆盖。 四.(1)环路复杂性=判断数+1=6+1=7(个) (2)路径1:(0)—①—(13)—(19) 路径2:(0)—②—③—(14)—(19) 路径3:(0)—②—④—⑤—(15)—(19) 路径4:(0)—②—④—⑥—⑦—(16)—(19) 路径5:(0)—②—④—⑥—⑧—⑨—(17)—(19) 路径6:(0)—②—④—⑥—⑧—⑩—(18)—(19) 路径7:(0)—②—④—⑥—⑧—⑩—(12)—(19) 一、填空题(本题30分,每小题1.5分) 1、软件是计算机程序、(描述计算机程序的文档)及(数据)的完整集合,将其统称为软件配置,这些项称为软件配置项。通过正式复审的软件配置项称为(基线),只有通过正式的变化控制过程才能改变它。 2、通常,将软件生命周期全过程中使用的一整套技术方法的集合称为方法学,包含三个要素,即方法、(工具)和(过程)。传统方法学采用(结构化)技术来自顶向下顺序地完成软件开发的各项任务,而面向对象方法是一种以(数据)为主线,把数据和对数据的操作紧密地结合起来的方法,其开发过程是一个多次迭代的演化过程。 3、软件测试的目标是(暴露程序中的错误),因而从心理学角度来看,由程序作者对自己编写的程序进行测试是不恰当的。设计测试方案是测试阶段的关键技术问题,测试方案一般包括(测试目的)、输入的测试数据

软件工程复习大纲-整理

软件工程复习大纲 题型: 选择题 判断题 简答题 应用题(60分) ①数据流图 ②用例图 ③程序流程+白盒测试 ④顺序图 ⑤黑盒测试(等价类划分和边界值分析) ⑥计算题(第八章软件度量) 选择,判断,简答:重心会适当往第六章之后压 一.概述(无大题、简答题,主要是选择和判断)1.软件的概念和特点(三个要素) 概念: 软件= 程序+数据+文档 ●程序:按事先设计的功能和性能需求执行的指令序列 ●数据:是程序能正常操纵信息的数据结构 ●文档:与程序开发、维护和使用有关的图文材料 特点(选择或判断)

三个要素: 工具 方法:完成软件工程项目的技术手段(分为结构化方法和面向对象方法) 过程:贯穿软件开发所有环节 2.软件危机和现状(不协调现象软硬件矛盾) 软件危机定义: 在计算机软件的开发和维护过程中所遇到的一系列严重问题。(效率下降,质量下降)现状: ●软件成本日益增加 ●软件技术进步落后于需求增长 7个原则:

3.软件工程的定义和发展过程 软件工程定义: 应用系统化的、学科化的、定量的方法,来开发、运行和维护软件,即,将工程应用到软件。 发展过程: 第一软件工程传统的软件工程 第二代软件工程对象工程 第三代软件工程过程工程 第四代软件工程构件工程 软件工程知识体系

二.过程模型(无大题) 1.软件的生命周期、软件过程概念 软件过程:(软件开发中所遵循的路线图) 软件过程可以定义软件生产的一系列活动,这些活动贯穿于软件开发的整个过程。

软件过程模型:(软件生存周期模型、软件开发模型) 软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。 (定义了若干小的框架活动,为完整的软件开发过程建立了基础。 每一个活动由一组软件工程动作组成 每一个动作都包括一系列相互关联的可考核的任务,并产生一个关键的工作产品。 每一个任务完成一个动作定义的一部分工作。) 过程具有的共同活动: 沟通计划建模构建部署 2.常见的几种软件过程模型 重点三个:瀑布模型、增量模型、原型,优点缺点,应用场合,要会举例子 另外两个,螺旋和敏捷 瀑布模型: 特点: 1. 阶段间具有顺序性和依赖性。 2. 推迟实现的观点。 3. 为了保证质量:①每个阶段必须完成规定的文档; ②每个阶段结束前完成文档审查,及早改正错误 优点: ①提供了一个模板,使得分析、设计、编码、测试与维护工作可以在该模板的指导下有序 地展开,避免了软件开发、维护过程中的随意状态。

相关主题