软件工程思考题答案

软件工程思考题答案
软件工程思考题答案

第一章基本概念

1.软件的特点是什么?

软件的定义:软件=程序+数据+文档

软件的特点:

1)软件是逻辑实体;具有抽象性;软件的形态不可见;--必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。

2)软件是人脑思维的产物,其生产过程与硬件不同。--开发过程的质量控制及软件产品保护问题。

3)软件的开发和运行受计算机系统限制。--软件移植问题。

4)软件的开发技术落后,手工开发方式仍占统治地位。--开发效率低。

2.2006年发布的国家分类标准是什么?

1)按功能:系统软件、支撑软件、应用软件

2)按规模:微型软件、小型软件、大型软件、甚大型软件、极大型软件

3)按工作方式:实时处理软件、分时软件、交互式软件、批处理软件

4)按服务对象:项目软件、产品软件

5)按使用频度:使用频度低、使用频度高

6)按失效影响:不良影响、严重影响

3.软件危机的表现有哪些?

1)软件开发进度难以预测

2)软件开发成本难以控制

3)用户对产品功能难以满足

4)软件产品质量无法保证

5)软件产品难以维护

4.产生软件危机的原因?

1)用户需求不明确

2)缺乏正确的理论指导

3)软件开发规模越来越大

4)软件开发复杂度越来越高

5.什么是软件工程三要素?

软件工程的三要素:方法、工具和过程。

6.软件工程的基本目标是什么?

①付出较低的开发成本

②达到要求的软件功能

③取得较好的软件性能

④开发的软件易于移植

⑤需要较低的维护费用

⑥能按时完成开发工作,及时交付使用

7软件工程的基本原则是什么?

①抽象:采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程的复

杂性。

②信息隐蔽:将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的

使用者直接访问。这就是信息封装,使用与实现分离的原则。

③模块化:如C语言程序中的函数过程,C++ 语言程序中的类。模块化有助于

信息隐蔽和抽象,有助于表示复杂的系统。

④局部化:要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模

块之间具有松散的耦合,模块内部具有较强的内聚。这有助于控制解的复杂性。

⑤确定性:软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。

⑥一致性:整个软件系统的各个模块应使用一致的概念、符号和术语。程序内

部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一致。

⑦完备性:软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程

度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。

⑧可验证性:开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解

应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。

8.软件工程的基本原理是什么?

①用分阶段的生命周期严格管理;

②坚持进行阶段评审;

③实行严格的产品控制;

④采用现代程序设计技术;

⑤结果应能清楚地审查;

⑥开发小组人员应少而精;

⑦承认不断改进软件工程实践的必要性。

9.瀑布模型有什么特点?

1)最早出现的软件开发模型,它提供了软件开发的基本框架。

2)瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软件产品。

3)瀑布模型有利于大型软件开发过程中人员的组织及管理,有利于软件开发方

法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。

4)里程碑或基线驱动,或者说文档驱动;

瀑布模型的缺陷:

①由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软

件的效果。这样软件与用户见面的时间间隔较长,也增加了一定的风险。

②在软件开发前期末发现的错误传到后面的开发活动中时,可能会扩散,进

而可能会造成整个软件项目开发失败。

③在软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以

说是不太可能的。

瀑布模型即生存周期模型,其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件编码、软件测试、软件运行维护6个阶段,规定了他们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。

10.说明生命周期的划分?

一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程称为软件生存期或叫生命期。包括计划、需求分析、软件计划、程序编码、软件测试和运行维护6各阶段。

11.列出软件生存期的几个主要模型?

瀑布模型、原型模型、螺旋模型、增量模型、构件组装模型、统一过程模型、第四代技术

12.瀑布模型软件开发方法的基本过程?

定义阶段:计划、需求分析

开发阶段:设计、编码、测试

维护阶段:运行维护

13.增量模型有什么特点?

1)融合了线性顺序模型的基本成份和原型实现模型的迭代特征。

2)增量模型采用随着日程时间的进展而交错的线性序列。每一个线性序列产生

软件的一个可发布的“增量”。

3)增量模型强调每一个增量均发布一个可操作产品。早期的增量是最终产品的

“可拆卸”版本,但他们确实提供了给用户服务的功能,并且提供了给用户评估的平台。

将软件产品看作一组增量构件,每次设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止。

特点:

1)任务或功能模块驱动,可以分阶段提交产品;

2)有多个任务单,这些多个任务单的集合,构成项目的一个总任务书(总用户需

求报告)。

14.几种主要的软件开发方法?

1)结构化开发方法

2)面向对象的方法

15.软件工程的“五个面向”?

1)面向流程分析2)面向数据设计3)面向对象实现

4)面向功能测试5)面向过程管理

第二章软件策划

2.可行性分析最为敏感的方面是什么?

⑴经济可行性:经济效益能否超过开发成本?

⑵技术可行性:现有技术能否实现?技术风险的各种因素?

⑶操作可行性:用户的接受程度如何?

⑷法律可行性:是否合法,是否侵犯他人的利益。

6.甘特图有哪些优点和缺点?

甘特图:是一种对各项活动进行计划调度与控制的图表。横向表示时间,纵向列出任务。

优点:它具有简单、醒目和便于编制等特点。能够动态反映软件项目开发进展的情况。

缺点:难以反映多个任务之间存在的复杂的逻辑关系。

7.什么是网络计划法的关键事件与关键路径?

关键事件:最早完成时间与最迟完成时间相等的事件。

关键路径:关键事件联结的各个活动所组成的路线。

第三章结构化需求分析

1.为什么说需求获取难?

1)用户需求具有动态性(不稳定性)。

2)用户需求具有模糊性(不准确性)。

3)对需求达成一致的艰难性。

4)管理体制、机构设置处在变革中。

5)软件书籍没有将需求分析讲清楚。

2.需求分析的重点是哪些?

通过对业务流程和数据流程的分析,在以下四个方面与客户要达成完全一致目标。

①业务模型、

②功能模型、

③性能模型、

④接口模型。

3.需求分析的9大任务是什么?

①画出系统的组织结构图、列出各部门的岗位角色(机构模型)。

②画出系统业务操作流程图。

③画出系统的数据流图,掌握业务规则,获得初步数据模型。

④列出系统的功能点,即功能模型。

⑤列出系统的性能点,即性能模型。

⑥列出系统的接口,即接口模型。

⑦确定系统的运行环境,即环境模型。

⑧确定系统的界面约定,即界面模型。

⑨对开发工期、费用、开发进度、系统风险等分析与评估。

4.简述需求分析的过程?

需求分析阶段的工作有以下四个方面:

1)问题识别

2)分析与综合

3)编制需求分析阶段文档

4)需求分析评审

5.获取需求的常用方法有哪些?

①访谈/个别访问:正式的和非正式的访谈

②问卷调查/书面调查:发电子邮件、问卷调查即把需要调查的内容制成表格

交给用户填写。该方法对需要调查大量人员的意见时,十分有效。

③情景分析/电话和电视会议:对目标系统解决某个具体问题的方法和结果,给

出可能的情景描述,以获知用户的具体需求。

④实地考察/收集资料:开调查会参加业务实践

⑤构造原型

6.需求分析的原则是什么?

①解决逻辑问题:需求分析是对问题的识别和说明,要回答“做什么”,而不是

“怎么做”。

②以运行环境为基础:需求分析工作应以具体的运行环境为基础,实事求是。

③用户参与的原则:需求分析工作是系统分析人员同用户不断交互的过程。

④构造高质量的需求规格说明:需求规格说明是需求分析工作重要的完成标志。

7.需求分析的基本要求是什么?

①理解问题的数据域和功能域

②自顶向下、逐层分解

③给出系统的逻辑视图和物理视图

8.常见的需求分析方法有哪些?

①面向数据流的分析方法

②面向功能的分析方法

③面向数据的Jackson方法

④面向对象的分析方法

9.需求分析方法有哪些共性?

1.支持数据域的分析机制

2.功能表示方法

3.接口的定义

4.问题的分解及抽象化

5.逻辑视图和物理视图

6.系统抽象模型

第四章结构化软件设计

思考题4.1

1.软件设计的具体任务包括哪些内容?

(1)制定规范

(2)结构设计

(3)处理方式设计

(4)数据结构及数据库设计

(5)可靠性设计(质量设计)

(6)编写软件设计文档

(7)设计审查和复审

(8)详细设计

2.什么是数据的保护性设计?

1)防卫性设计:在软件设计中就插入自动检错,报错和纠错的功能

2)一致性设计:在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏

3)冗余性设计

3.软件设计的目标是什么?

软件设计的最终目标:取得最佳方案

①节省开发费用、

②降低资源消耗、

③缩短开发时间、

④能够赢得较高的生产效率、

⑤较高的可靠性、

⑥可维护性的方案。

4.模块具有哪些基本属性?

“模块”,又称“组件”。一般有四个基本属性

1)功能:描述该模块做什么?

2)逻辑:描述模块内部怎么做?

3)状态:模块使用时的环境和条件。

4)接口:指模块的输入与输出。

5.什么是耦合?什么是内聚?如何增强模块的独立性?

模块独立性由模块间的耦合与内聚度量。

1)耦合:各模块之间的互相连接的紧密程度。模块之间的连接越紧密,联系越

多,耦合性就越高,而其独立性就越弱。

2)内聚:模块内各功能元素彼此结合的紧密程度。一个模块内部各个元素之间

的联系越紧密,则它的内聚性就越高,相对地,它与其它模块之间的耦合性就会减低,而模块独立性就越强。

3)增强模块独立性的方法是尽量做到高内聚、低耦合。

6.模块化的特征有哪些?

1)抽象:用层次的方式构造和分析复杂系统。

2)逐步求精:帮助开发人员把精力集中在与当前开发阶段最相关的那些问题

上。

3)信息隐蔽:如果一个模块内包含的信息(过程和数据) 不允许外部的模块访问

的话,其它模块不能对其访问。

4)局部化:把一些关系密切的软件元素物理地放得彼此靠近。

7.影响耦合度的因素有哪些?

①连接方式的类型。

②接口的复杂性。

③传送的信息流类型。

④耦合的时间。

8.降低耦合度的方法有哪些?

①对需要了解的内容,隐含的改为明显的,便于理解;

②连接的方式尽量标准化,避免直接引用;

③减少公共区,将公共区划分为若干个逻辑子区;

④输入输出应局限在少量模块,不要分散在全系统;

9.软件结构设计优化的准则是什么?

1)划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性。模块划分的

准则:“将相关的各部分放在一起,无关的东西不要放在一起。”

2)模块的大小要适中。

3)模块的接口要简单、清晰、含义明确。便于理解,易于实现、易于测试和维

护。

4)一个模块的作用范围应在其控制范围之内。且判定所在的模块,应与受其影

响的模块在层次上尽量靠近。

5)软件结构的深度、宽度、扇入、扇出应适当。

6)力求设计单入口和单出口的模块。避免“病态连接”,以防止内容耦合。

7)设计功能可预测模块的划分,应防止功能过分局限。

4.2思考题

1.结构化设计的优点是什么?

①减少设计复杂性。将大化小,使复杂问题简单化。

②结构独立。将程序划分成多个相对独立的模块。

③模块功能单一化,可使软件设计获得最大的益处。

④便于软件的修改。

⑤易于开发和维护。

⑥加强了代码的可重用性。

2.正交软件体系结构的优点是什么?

①层次结构清晰,便于理解。

②可移植性强,重用粒度大。

③易修改,可维护性强。

3.三层C/S结构的组成

1)表示层:用户接口部分,担负着用户与应用间的对话功能。

2)功能层:相当于应用的本体,将具体的业务处理逻辑程序。

3)数据层:数据库管理系统,负责管理对数据库数据的读/写。

4.三层结构设计的优点是什么?

①允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性。

②允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处

理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。

③三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的

开发语言。

④允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过

功能层而利用数据库工具或黑客手段去非法地访问数据层。

5.B/S体系结构的不足之处?

①缺乏对动态页面的支持能力,数据库处理能力差。

②系统扩展能力差,安全性难以控制。

③响应速度远低于C/S体系结构。

④数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理

(OLTP)应用。

6.C/S、B/S混合结构的特点是什么?

1)B/S与C/S混合结构是一种典型的异构系统。

2)C/S与B/S混合结构的优点:外部用户不直接访问数据库服务器,能保证企

业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。

3)C/S与B/S混合结构的缺点:企业外部用户修改和维护数据时,速度较慢,

较烦琐,数据的动态交互性不强。

7.列出几种主要的菜单类型?

①固定菜单

②活动菜单

③“弹出式”菜单

④“下拉式”菜单

8.活动菜单的优点是什么?

1)不占用显示工作空间,

2)可以根据用户当前所处的操作状态和要求动态出现。

3)需要注意的是不能滥用弹出菜单。

4.3思考题

1.DBMS有哪些基本功能?

1)建立数据库的结构;

2)管理用户的数据库;

3)提供在数据库上的各种操作;

4)提供数据库对外的各种接口;

2.DB、DBMS有何不同?

在人们的交流中,习惯上常常将数据库和DBMS混为一谈,不加区别。所以要根据不同场合、不同习惯、以及上下文来分析,所讲的“数据库”三个字,到底是

指数据库,还是指DBMS。

3.DBMS提供的三种语言是什么?

⑴DDL(数据库定义语言):如:CREATE,ALTER,DROP;

⑵DML(数据库操作语言):如:SELECT,UPDA TE,INSERT,DELETE;

⑶DCL(数据库控制语言):如:LOCK、UNLOCK;

4.四个表指的是什么?

1)基本表:存放原始数据的表。

2)代码表:存放信息代码数据的表。

3)中间表:存放统计数据的表。

4)临时表:存放临时数据的表。

5.基本表的性质有哪些?为什么?

①原子性。基本表中的字段是不可再分解的。

②原始性。基本表中的记录是原始数据(基础数据)的记录。

③演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。

④稳定性。基本表的结构是相对稳定的,表中的记录是需要长期保存的。

6.怎样正确认识“数据冗余”?

1)主键与外键在多表中的重复出现, 不属于数据冗余,这个概念必须清楚,事

实上有许多人还不清楚。

2)非键字段的重复出现, 才是数据冗余,而且是一种低级冗余,即重复性的冗

余。

3)高级冗余不是字段的重复出现,而是字段的派生出现。

第五章结构化软件实现

1.代码设计的主要原则是什么?

1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。

2)选用的控制结构只准许有一个入口和一个出口。

3)程序语句组成容易识别的块,每块只有一个入口和一个出口。

4)复杂结构应该用基本控制结构进行组合嵌套来实现。

2.编程规范包括哪些内容?

3.良好的代码设计风格包括哪些内容?

4.代码语句设计应遵从哪些原则?

1)在一行内只写一条语句:采取适当的移行格式,使程序的逻辑和功能变得更

加明确。在一行内写多个语句会使程序可读性变差。

2)程序编写清晰性第一:不要刻意追求技巧性,使程序编写得过于紧凑。

3)程序要能直截了当地说明程序员的用意:程序编写要简单,清楚,直截了当

地说明程序员的用意。

4)清晰第一,效率第二:不要为了追求效率而丧失了清晰性。事实上,程序效

率的提高主要应通过选择高效的算法来实现。

5)先保证程序正确, 再要求提高速度。

6)避免使用临时变量而使可读性下降。

7)让编译程序做简单的优化。

8)尽可能使用库函数和构件。

9)避免不必要的转移:尽量不用GO TO语句。

10)尽量采用三种基本的控制结构编写程序。

11)避免使用空的ELSE语句和IF…THEN IF…的语句。这种结构容易使读者

产生误解。可能产生二义性问题。

12)避免采用过于复杂的条件测试。

13)尽量减少使用“否定”条件的条件语句。

14)尽量用通俗易懂的伪码来描述程序的流程:然后再翻译成必须使用的语言。

15)数据结构要有利于程序的简化。

16)要模块化:使模块功能尽可能单一化,模块间的耦合能够清晰可见。

17)利用信息隐蔽:确保每一个模块的独立性。

18)从数据出发构造程序。

19)修补不好的程序,要重新编写:也不要一味地追求代码的复用,要重新组织。

20)大的程序要分块编写和测试:然后再集成。

21)对递归定义的数据结构尽量使用递归过程。

5.I/O代码设计的原则是什么?

①输入数据要检验:识别错误的输入,以保证每个数据的有效性;

②检查输入项的各种重要组合的合理性:必要时报告输入状态信息;

③输入的步骤和操作尽可能简单:并保持简单的输入格式;

④应允许使用自由格式输入数据;

⑤应允许缺省值;

⑥批数据输入时,使用输入结束标志:而不要由用户指定输入数据数目;

⑦交互式输入时,屏幕上使用提示符明确提示输入的请求:指明可使用选择项

的种类和取值范围。同时,在数据输入的过程中和输入结束时,也要在屏幕上给出状态信息;

⑧程序设计语言对I/O格式有严格要求时,应保持输入格式与输入语句要求的

一致性;

⑨输出加注解,并设计输出报表格式。

6.软件效率应该以什么为准?

软件需求

7.程序的效率与哪些因素有关?

程序的效率是指程序的执行速度及程序所需占用的内存的存储空间。讨论程序效率的准则:

1)效率性能要求,应在需求分析阶段给出。软件效率以需求为准,不应以人力

所及为准。好的设计可以提高效率。

2)程序的效率与程序的简单性相关。

3)一般说来,任何对效率无重要改善,且对程序的简单性、可读性和正确性不

利的程序设计方法都是不可取的。

8.详细设计向代码设计转换过程的指导原则是什么?

1)尽可能简化有关的算术表达式和逻辑表达式;

2)检查算法中的嵌套的循环,尽可能将某些语句或表达式移到循环外面;

3)尽量避免使用多维数组;

4)尽量避免使用指针和复杂的表;

5)采用“快速”的算术运算;

6)不要混淆数据类型,避免在表达式中出现类型混杂;

7)尽量采用整数算术表达式和布尔表达式;

8)选用等效的高效率算法;

9.影响存储器效率的因素是什么?

1)存储效率与OS的分页功能直接有关。

2)采用结构化程序设计。

3)提高存储器效率的关键是程序的简单性。

10.提高I/O设备效率的指导原则有哪些?

1)I/O的请求应当最小化;

2)对于所有的I/O操作,安排适当的缓冲区,以减少频繁的信息交换。

3)对辅助存储(例如磁盘),选择尽可能简单的,可接受的存取方法;

4)对辅助存储的I/O,应当成块传送;

5)对终端或打印机的I/O,应考虑设备特性,尽可能改善I/O的质量和速度;

6)任何不易理解的,对改善输入/输出效果关系不大的措施都是不可取的;

7)任何不易理解的所谓“超高效”的I/O毫无价值;

11.提示信息分哪几类?

1)引导性提示信息:该类提示信息一般在需要用户干预时出现,要求用户决定下一步的操作。如在退出时提示“修改的数据尚未存盘,存盘否?”。使用MessageBox进行提示。2)错误性提示信息:该类提示信息一般在软件运行出错时出现,告诉用户软件遇到了问题。

如“系统运行出现故障,请与系统管理员联系!”。

3)状态性提示信息:该类提示信息一般在软件处于“忙”状态下提示,告诉用户软件正在进行什么操作,让用户耐心等待。如“正在进行数据传输,请稍待…”。

4)位置性提示信息:该类提示信息一般根据鼠标的位置进行提示,告诉用户鼠标正指向什么功能。如“报表打印”。

12.软件实现过程由哪些文档的组成?

①《源程序清单》

②《用户使用手册》

③《用户安装手册》

④《系统管理员手册》

13.软件实现过程包括哪些管理文档?

①《用户指南评审报告》

②《模块源程序行统计表(行/模块名)》

③《源程序工作量统计表(行/人天)》

5.2思考题

1.软件测试的原则?

①软件测试应当尽早和不断地进行。

②程序员应避免检查自己的程序。

③设计测试即应包括合理的、还应包括不合理的输入条件。

④经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正

比。

⑤妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。

2.软件测试的最初定义?

1)软件测试是测试中的特例,它的测试对象是人类的智力产品--软件

2)最初定义:“软件测试是为了发现错误而执行程序的过程。”

3.软件测试的经典定义?

测试是程序的执行过程,目的在于发现错误;

一个好的测试在于能发现至今未发现的错误;

一个成功的测试是发现了至今未发现的错误的测试。

4.测试的目的?

1)以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。

2)能够证明软件的功能和性能与需求说明相符合。

3)测试结果数据为可靠性分析提供了依据。

4)测试不能表明软件中不存在错误,它只能说明软件中存在错误。

5.黑盒测试的优点?

①对于较大的代码单元来说,黑盒测试比白盒测试效率要高;

②测试人员不需要了解实现的细节,包括特定的编程语言;

③从用户的角度进行测试,容易被理解和接受;

④有助于暴露任何规格不一致或有歧义的问题;

6.黑盒测试的缺点?

①要测试每个可能的输入流几乎是不可能的;

②会有很多程序路径没有被测试到;

③不能直接针对特定程序段测试,因此可能隐藏更多的问题。

7.白盒测试的优点?

①迫使测试人员去仔细思考软件的实现;

②可以检测代码中的每条分支和路径;

③揭示隐藏在代码中的错误;

④对代码的测试比较彻底。

8.白盒测试的缺点?

①成本昂贵;

②忽略了从用户角度考虑的测试问题;

9.测试报告包括哪些内容?

1)测试任务描述

2)测试环境说明

3)功能测试描述

4)性能测试描述

5)确认性测试描述

6)测试总结

思考题5.3

1.软件维护分类有哪些?

⑴纠错性维护;

⑵适应性维护;

⑶完善性维护;

⑷预防性维护;

2.影响软件维护的因素有哪些?

⑴软件配置是否完整是影响维护工作量的重要因素;

⑵修改别人的程序增加了维护的难度;

⑶文档不全的软件,增加了修改后测试的工作量;

⑷软件结构的不合理,增加了软件修改的困难;

⑸软件经过多个版本的演化,很难追踪修改的过程;

⑹软件维护经常受挫,降低了该项工作的吸引力。

3.软件维护有哪些副作用?

①修改编码:使编码更加混乱,程序结构更不清晰,可读性更差,而且有连锁反应。

②修改数据结构:数据结构是系统的骨架,修改数据结构是对系统伤筋动骨的大手术,在数

据冗余与数据不一致方面,可能顾此失彼。

③修改用户数据:需要与用户协商,一旦有疏忽,可使系统发生意外。

④修改文档:对非结构化维护不适应,对结构化维护要严防程序与文档的不匹配。

9.什么叫结构化维护和非结构化维护?

答:结构化维护的前提是:软件产品或软件项目必须有完善的文档,并且文档与程序代码互相匹配。反之为非结构化维护。

10.可维护性的软件应具备什么性质?

答:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性、效率

11.两层结构和三层结构的软件维护方法有什么不同?

12.怎么理解软件产品的版本号?

13.怎么理解UML/CMMI对软件维护的影响?

1)软件为什么需要维护?因为它程序上有缺陷,所以有面向程序的缺陷维护;因为它设计

上功能不齐全,所以有面向设计的功能维护。

2)当软件组织达到CMM3以上时,由于软件过程的持续改善,对软件质量的评审和审计

活动的加强,软件过程数据库作用的发挥,关于“程序上有缺陷”和“设计上功能不齐全”

的情况,将会逐渐减少,所以软件的维护工作量也会逐渐减少。

3)真正维护工作量大的单位,就是CMM1的软件组织,因为他们管理无序,文档不全,

工作不规范,表现形式就是:人治加个人英雄主义。

土木工程施工复习资料(课后思考题)

第一章 1、什么是土的可松性?P2 土的可松性是指自然状态下的土经过开挖后,其体积因松散而增加,以后虽经回填压实,仍不能恢复到原来的体积。 3、影响基坑放坡大小的因素是什么? 土方边坡坡度:1/m==H/B;m=B/H坡度系数;B-坡度宽度;H-- 坡高度;影响基坑放坡的原因有以下几点:1、地质、水文状况和土质特性。2、选择的施工方法(包括基坑护坡、土方开挖、降水等)。3、采用的开挖工具5、只要求场地平整前后土方量相等,其设计标高如何计算?场地平整场要求场地内的土方在平整前和平整后相等,达到挖填土方量平衡,即“挖填平衡”的原则确定设计标高H。P3 9、试述推土机、铲运机和正挖土机的施工方法。P12 推土机:可采用下坡推土、槽形推土以及并列推土等方法;铲运机:采用下坡铲土、跨铲法、推土机助铲法等; 10、基坑降水方法有哪几种?各适用于何种情况?P14 地下水处理方法有止水法和降水法;P14 A.集水井降水(明沟排水); B.轻型井点降水; C.喷射井点; D.电渗井点; E.管井井点; F. 回灌井点。 11、什么是流砂现象?产生流砂的原因?流砂防治的具体措施有哪些?P14 流砂现象:粒径很小、无塑性的土壤,在动水压力推动下,极易失去稳定,而随地下水一起流动涌入坑内,这种现象就称为流砂现象。 产生原因:内因:取决于土的性质,当上为细砂和粉砂时其土的孔隙比大、含水量大、粘粒含量少、粉粒多、渗透系数小、排水性能差等均可能产生流砂现象;外因:土体承受足够大的动水压力。流砂会使土失去承载力,引起塌方,造成土边挖边冒,难以施工。 防治措施:枯水期施工、做止水帷幕、水中挖土、抢速度施工以及井点降水等,其中轻型井点降水法是根除流砂常用的有效方法。 15、用井点降水时,如何防止周围地面沉降?P19 应对附近的建筑物进行沉降观测采取相应措施(加设回灌井点或设置止水帷幕以及减缓降水速度等方法),以防造成危害。 16、常用基坑支护结构有哪几种?各适用于何种情况?P23.表1-12 17、施工时注意事项主要有:1、保证基底土不受扰动;2、放暴晒,水浸泡; 3 、验槽; 4 、回填土应及时; 19、基坑有哪几种常用的挖土方式?各有何优缺点?P34 21、土方填筑宜用哪些土体?P36.

软件工程部分课后练习题答案

第一章 1.计算机系统是由计算机硬件系统和软件系统这两个密不可分的部分组成的。 2.计算机软件系统通过运行程序来实现各种不同应用,包括用户为自己的特定目的编写的程序、检查和诊断机器系统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等。 3.在软件工程学中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。 4.在软件工程层次结构中,包括工具层、方法层、过程、技术层和质量保证层。 5.在面向对象概念中,消息传递是其与外部世界相互关联的唯一途径。 第三章 1.软件需求分析,可以把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础。 2.软件需求工作基本上包括收集用户、市场等方面对项目的需要,经过分析建立解题模型,细化模型,抽取需求。 3.结构化分析方法的基本步骤是采用由顶向下对系统进行功能分解,画出分层数据流图;由后向前定义系统的数据和加工,绘制数据词典和加工说明;最终写出软件需求和规格说明书。 4.面向对象分析方法总是从理解系统的“使用实例”开始,基本步骤是:定义系统的用例,在领域分析的基础上建立问题域的类(对象模型),然后开始建立对象——关系和对象——行为模型。 5.需求分析评审过程由以下5个步骤组成:规划、准备、召开审查大会、修改缺陷、重审。 第四章 1.与软件需求分析一样,软件设计也有两种主要设计方法:以结构化设计为基础的结构化软件设计和面向对象方法指导的面向对象软件设计。 2.传统的软件设计任务通常分两个阶段完成。第一个阶段是概要设计,包括体系结构设计

和接口设计,并编写概要设计文档;第二阶段是详细设计,其任务是确定各个软件的数据结构和操作,产生描述各软件组件的详细设计文档。 3.结构化的软件设计方法是一种面向数据流的设计方法,在面向数据流的方法中,数据流是考虑一切问题的出发点。 4.在数据流图中所代表的结构化设计模型中,所有系统均可纳入两种典型的形式,因此系统结构图也有两种类型:变换型系统结构图,事务型系统结构图。 5.Jackson表示法包括图形描述(Jackson图)和文本描述(Jackson伪代码)两种形式。 第五章 1.与结构化设计一样,面向对象设计也是将分析阶段所建立的分析模型转变为软件设计模型,应用数据设计(对象属性设计)、接口设计(消息模型开发)以及过程设计(子系统级设计)。 2.当两个子系统相互通信时,可以建立客户机/服务器连接或端对端连接。 3.系统设计不仅包括主要的业务需求子系统设计,还包括用户界面子系统设计、任务管理子系统设计、数据管理子系统设计。 4.对象设计强调从问题域的概念转换成计算机领域的概念,通过对象的描述、算法和数据结构设计、程序构件和接口,实现相关的类、关联、属性和操作。 5.在面向对象设计中系统设计的主要目标是表示软件体系结构。对象设计着重于对象及其交互的描述 第八章 1.软件程序测试的目的是发现程序中的错误,其主要任务是通过在计算机上执行程序,暴露

最新软件工程试题和答案

一、选择 1、在软件开发的各种资源中,(B)是最重要的资源。 A开发工具B方法C硬件环境D人员 2、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A固有的B人为的C可消除的D不可降低的 3、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A )系统。 A需求不确定的B需求确定的C管理信息D决策支持 4、单元测试的测试用例主要根据( D )的结果来设计。 A需求分析B源程序C概要设计D详细设计 5、(A )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A软件过程B软件工具C软件生存周质量保证D软件工程 6、(A )意味着一个操作在不同的类中可以有不同的实现方式。 A多态性B类的复用C封装 7、软件测试计划开始于需求分析阶段,完成于(D )阶段。 A需求分析B软件设计C软件实现D软件测试 8、在软件生存周期的瀑布模型中一般包括计划、(C )、设计、编码、测试、维护等阶段。 A可行性分析B需求采集C需求分析D问题定义 9. 软件需求分析阶段的测试手段一般采用( C )。 A总结B阶段性报告C需求分析评审D不测试 10. (C )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。 A多态性B继承C封装D消息 11. 软件测试是为了(B )而执行程序的过程。 A纠正错误B发现错误C避免错误D证明正确 12. 在结构化分析方法中,(C )表达系统内部数据运动的图形化技术。 A数据字典B实体关系图C数据流图D状态转换图 13. 软件工程的基本要素包括方法、工具和( A )。 A过程B软件系统C硬件环境D人员 14. TURBO PASCAL是(A)软件。

《生化分离工程》思考题与答案

第一章绪论 1、何为生化分离技术?其主要研究那些容?生化分离技术是指从动植物组织培养液和微生物发酵液中分离、纯化生物产品的过程中所采用的方法和手段的总称。 2、生化分离的一般步骤包括哪些环节及技术?一般说来,生化分离过程主要包括4 个方面:①原料液的预处理和固液分离,常用加热、调PH、凝聚和絮凝等方法;②初步纯化(提取),常用沉淀、吸附、萃取、超滤等单元操作;③高度纯化(精制),常选用色谱分离技术;④成品加工,有浓缩、结晶和干燥等技术。 3、生化分离工程有那些特点,及其重要性? 特点:1、目的产物在初始物料(发酵液)中的含量低;2、培养液是多组分的混合物,除少量产物外,还有大量的细胞及碎片、其他代物(几百上千种)、培养基成分、无机盐等;3、生化产物的稳定性低,易变质、易失活、易变性,对温度、pH 值、重金属离子、有机溶剂、剪切力、表面力等非常敏感;4、对最终产品的质量要求高重要性:生物技术产品一般存在于一个复杂的多相体系中。唯有经过分离和纯化等下游加工过程,才能制得符合使用要求的产品。因此产品的分离纯化是生物技术工业化的必需手段。在生物产品的开发研究中,分离过程的费用占全部研究费用的50 %以上;在产品的成本构成中,分离与纯化部分占总成本的40~ 80 %;精细、药用产品的比例更高达70 ~90 %。显然开发新的分离和纯化工艺是提高经济效益或减少投资的重要途径。

4、生物技术下游工程与上游工程之间是否有联系? 它们之间有联系。①生物工程作为一个整体,上游工程和下游工程要相互配合, 为了利于目的产物的分离与纯化,上游的工艺设计应尽量为下游的分离纯化创造条件,例如,对于发酵工程产品,在加工过程中如果采用液体培养基,不用酵母膏、玉米浆等有色物质为原料,会使下游加工工程更方便、经济;②通常生物技术上游工程与下游工程相耦合。发酵- 分离耦合过程的优点是可以解除终产物的反馈抑制效应,同时简化产物提取过程,缩短生产周期,收到一举数得的效果。 5、为何生物技术领域中往往出现“丰产不丰收”的现象? 第二章预处理、过滤和细胞破碎 1、发酵液预处理的目的是什么?主要有那几种方法? 目的:改变发酵液的物理性质,加快悬浮液中固形物沉降的速率;出去大部分可溶性杂质,并尽可能使产物转入便于以后处理的相中(多数是液相),以便于固液分离及后提取工序的顺利进行。 方法:①加热法。升高温度可有效降低液体粘度,从而提高过滤速率,常用于粘度随温度变化较大的流体。控制适当温度和受热时间,能使蛋白质凝聚形成较大颗粒,进一步改善发酵液的过滤特性。使用加热法时必须注意加热温度必须控制在不影响目的产物活性的围,对于发酵液,温度过高或时间过长可能造成细胞溶解,胞物质外溢,而增加发酵液的复杂性,影响其后的产物分离与纯化;②调节悬浮液的pH 值,pH 直接影响发酵液中某些物质的电离度和电荷性质,适当调节pH 可以改善其过滤特性;③凝聚和絮凝;④使用惰性助滤剂。

土木工程施工课后习题答案

1-1 土的工程性质有:可松性、含水量、透水性 含水量影响:含水量越大,土就越湿,对施工越不利。含水量对挖土的难易、施工时的放坡、回填土的夯实等均有影响。 地下水的流动以及土中渗透速度都与土的透水性有关。 1-2 土的可松性:自然状态下的土经开挖后组织被破坏,其体积因松散而增大,以后虽经回填压实,也不能恢复为原来状态时的体积。土的可松性程度,一般用最初可松性系数和最后可松性系数来表示。 1-3 确定场地平整设计标高时应考虑哪些因素? 满足生产工艺和运输的要求;满足设计时考虑的最高洪水位的影响;充分利用地形,尽量使挖填平衡(如土的可松性的影响),以减少土方运输量。 1-4试述按填、挖平衡时,确定场地平整设计标高的步骤与方法? 1、初步确定场地设计标高(H0)(1)将场地划分为区隔(正方形),确定各方格角点标高(平坦,则地形图+插入法;起伏,则现场木桩方格网,测量)。(2)挖填平衡,算体积列方程, 2、计算设计标高的调整值:考虑土的可松性影响,考虑泄水坡度。 1-5 在什么情况下对场地设计标高要进行调整?如何调整? 1、土的可松性的影响:由于土具有可松性,回填压实回复

不了原来状态,要相应提高设计标高。2、考虑泄水坡度对设计标高的影响。 1-8 流砂的主要成因是什么?防治流砂的途径是什么?有哪些有效措施? 由于地下水的水力坡度大,即动水压力大,而且动水压力的方向(与水流方向一致)与土的重力方向相反,土不仅受到水的浮力,而且受到动水压力的作用,有向上举的趋势。当动水压力等于或大于土的浸水密度时,土颗粒处于悬浮状态,并随地下水一起涌入基坑,即发生流砂现象。 防治途径:减小或平衡动水压力;设法使动水压力的方向向下;截断地下水流。 有效措施:①在枯水期施工,减少动水压力;②抛大石块,以平衡动水压力;③打板桩,增加水流途径,减少动水压力;④水下挖土,平衡或减少动水压力;⑤井点降低地下水位,使动水压力向下;⑥搅拌桩或地下连续墙,截水,支承土水压力。 1-9 基坑降水有哪几种方法?各自的适用范围? 降低地下水位的方法主要有:集水井降水法、井点降水法等。 集水井降水也称基坑排水,是指在基坑开挖过程中,在基坑底设置集水井,并在基坑底四周或中央开挖排水沟,使水流入集水井内,然后用水泵抽走的一种施工方法。主要适应于土质情况较好,地下水不很旺的情况。 井点降水法是在基坑开挖前,预先在基坑四周埋设一定数量

软件工程习题(附(附答案))

第一章概述 1.软件产品具有哪些特性? 答:软件是一种逻辑案件,而不是具体的物理实体,具有抽象性 软件是通过人的智力活动,将知识和技能转化成为信息的一种产品,是在研制,开发中被创造出来的 a.软件产品是一种逻辑产品. b.软件产品的生产主是研制,软件产品的成本主要体现在软件的... c.开发的软件可维护性差. d. 开发的软件可靠性差 ⑴是一种逻辑产品,与物质产品有很大的区别. ⑵软件产品的生产主要是研制,成本主要在开发和研制,开发完成后,通过复制就产生了大量软件产品. ⑶软件产品不会用坏,不存在磨损,消耗. ⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的 ⑸开发软件的费用不断增加,致使生产成本相当昂贵. (6)其质量往往靠不住,缺乏可见性 2.简述什么是软件工程? 答: 软件工程软件工程是开发、运行、维护和修复软件的系统方法,其中“软件” 的定义为计算机程序、方法、规则、相关的文档资料以及计算机上运行时所必须 的数据;软件工程是一门科学,其目的是生产无故障的、软件,且交付及时,不 超过预算,并满足用户要求; 3.软件生命周期可分为哪三个时期?GB 8567中规定可分为哪几个阶段? 答:定义时期:问题的定义(客户需求)、可行性研究(为什么做); 开发时期:需求分析(做什么)、总体设计(怎么做—抽象)、详细设计(怎么实现—具体)、编码(程序设计语实现)测试.。 运行时期:软件维护。 4.依下列叙述确定软件生命周期模型。 M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已 经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认 为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告简要阐 明你的理由。 答:瀑布模型的缺点在于只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。另外瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要,它已不适宜开发实验型的软件。根据快速原型法的特点,原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。说明它特别适合于开发探索型、实验型的软件。 5.依下列叙述确定软件生命周期模型。 假设要求你开发一个软件,该软件的功能是

软件工程试题与答案

安徽三联学院2011-2012学年度第一学期 《软件工程》期终考试试卷(A卷) 一、选择题(每小题2分,计20分) 1.请按顺序写出软件生命期的几个阶段__F__,__D__ ,__C__,___E_,__B__,___A_。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析 2.一个模块直接控制(调用)的下层模块的数目称为模块的_____B__。 A.扇入数 B、扇出数 C、宽度 D、作用域 3.在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试 (A) A.单元测试 B.系统测试 C.集成测试D.确认测试 4.一个软件项目是否进行开发的结论是在___B___文档中作出的。 A.软件开发计划B、可行性报告C、需求分析说明书D、测试报告 5.系统开发人员使用系统流程图或其他工具描述系统,估计每种方案的成本和效益的工作是在 (B)阶段进行的。 A.需求分析B.总体设计C.详细设计D.编码阶段 6.CMMI标准的5个级别分别是完成级、管理级、定义级、量化管理级和( C ) A.初始级B.可重复级C.优化级D.过程级 7.PAD(Problem Analysi s Diagram)图是一种____工具。( B) A.系统描述B.详细设计C.测试D.编程辅助 二、填空题(每空格1分,计20分) 1、软件的通俗解释是软件= 程序+ 数据+ 文档资料。 4、系统测试包括的4种类型:恢复测试、安全测试、强度测试和性能测试。 6、统一建模语言(UML)提供的9种图分别是:用例图、类图、对象图、 状态图、顺序图、协作图、活动图、组件图和部署图。 7、软件工程标准的5个级别:国际标准、国家标准、行业标准、企业 规范 和项目规范。 三、名词解释题(每题4分,计20分) 1、软件工程: 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 2、再工程: 软件再工程是指对既存对象系统进行调查,并将其重构为新形式代码的开发过程3.模块化: 模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性 四、简答题(每题5分,计20分) 1、简述软件工程的基本原理? 1.严格按照软件生命周期计划进行管理.2.坚持进行阶段评审.3.实行严格的产品控制. 4.采用先进的程序设计技术. 5.结果应能清楚的审查.6.开发小组成员应少而精.7.承认不断改进软件工程实践的必要性

土木工程施工习题及思考题

习题及思考题 1.1 为什么要进行建筑抗震设计?我国《建筑抗震设计规范》规定对哪些建筑必须进行抗震设计? 1. 2 地震按其成因分为哪几种类型?按其震源的深浅又分为哪几种类型? 1. 3 地震灾害主要表现在哪几个方面?建筑物破坏的表现形式是什么? 1.4 什么是地震波?地震波包含了哪几种波? 1.5 什么是地震动的三要素?它们的作用是什么? 1.6 什么是地震震级?什么是地震烈度、基本烈度和抗震设防烈度? 1.7 简述众值烈度、基本烈度和罕遇烈度的划分标准及其关系。 1.8 我国规范依据建筑使用功能的重要性将建筑分为哪儿类?分类的作用是什么? 1.9 抗震设防烈度和设计基本地层加速度的关系是什么? 1.10 什么是三水准设防目标和两阶段设计方法? 1.11 什么是建筑抗震概念设汁?它主要包括哪几方面内容? 1.12 在选择建筑抗震结构体系时,应注意符合哪些要求? 2.1 我国抗震规范将建筑场地类别划分为几类?为什么划分?主要考虑哪些因素? 2.2 建筑场地类别与场地土类型是否相同?它们有何区别? 2.3 什么是土层等效剪切波速?其作用是什么?如何计算? 2.4 什么是场地覆盖层厚度?如何确定? 2.5 什么是场地的卓越周期?确定卓越周期的意义是什么? 2.6 哪些建筑可不进行天然地基及基础的抗震承载力验算?为什么? 2.7 如何确定地基抗震承载力?简述天然地基抗震承载力的验算方法。 2.8什么是地基土的液化?液化会造成哪些震害?影响地基土液化的主要因素有哪些? 2.9怎么样判别地基土的液化?如何确定地基土液化的严重程度? 2.10 不同液化等级可能造成的震害如何?简述地基土的抗液化措施。 2.11 下表为某建筑场地的钻孔资料,试确定该场地的类别。

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 软件也会磨损和老化。(X) 完善性维护是提高或完善软件的性能。(√) 数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (X) 软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(X) 软件模块之间的耦合性越弱越好。(√) 如果通过软件测试没有发现错误,则说明软件是正确的。(X) 快速原型模型可以有效地适应用户需求的动态变化。(√) 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(√) 集成测试主要由用户来完成。(X) 确认测试计划应该在可行性研究阶段制定(X) 白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(X) 软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√) 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√) 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。(╳) 模块越多,开发成本越小。(╳) 软件测试的目的就是证明软件没有错。(╳) PAD图在设置了五种基本的控制结构后,还允许递归使用。(√) 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×) SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√) HIPO 法既是需求分析方法,又是软件设计方法。(√) 在面向对象的需求分析方法中,建立动态模型是最主要的任务。(×) 加工小说明是对系统流程图中的加工进行说明。(×) 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(×) 需求分析的主要方法有SD 法、OOA 法及HIPO 法等。(×) 分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。(×) 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) PDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X) 设计阶段的输出是编码阶段的输入.(√) 通过软件测试,可以发现软件中所有潜伏的错误.(X) 非结构化维护用于软件的配置中只有源代码维护.(√) 系统规格说明是系统分析和定义阶段生成的一种文档.(√) 数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)

软件工程试题及答案34385

软件工程期末试卷(A) 说明:本试卷为04级计算机专业(专升本)软件工程期末试卷,总计100分,时间100分钟 一、选择题:(每题1分,共20分)(将答案写在题号前的()中) ( C )1. 软件是()。 A. 处理对象和处理规则的描述 B. 程序 C. 程序及其文档 D. 计算机系统 ( B )2. 软件需求规格说明的内容不应包括()。 A. 主要功能 B. 算法的详细描述 C. 用户界面及运行环境 D. 软件的性能 ( B )3. 程序的三种基本控制结构是()。 A. 过程、子程序和分程序 B. 顺序、选择和重复 C. 递归、迭代和回溯 D. 调用、返回和转移 ( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体 B) 控制、联系、对象 C) 实体、联系、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护 ( B ) 7.软件测试的目标是()。 A. 证明软件是正确的 B. 发现错误、降低错误带来的风险 C. 排除软件中所有的错误 D. 与软件调试相同 ( D )8.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 ( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 ( D )10、详细设计的基本任务是确定每个模块的( )设计 A.功能 B.调用关系 C.输入输出数据 D.算法 ( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:() A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据 ( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则() A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖

土木工程施工思考题

第一章土方工程 1.工程施工中的土分类方法有哪些? 答:在土木工程施工中,将土的开挖难易程度将土分为八类:第一类(松软土)、第二类(普通土)、第三类(坚土)、第四类(砾砂坚土)、第五类(软石)、第六类(次坚石)、第七类(坚石)、第八类(特坚石)。 2.土的可松性概念。 答:即自然状态下的土,经过开挖后,其体积松散而增大,以后虽经回填压实,仍不能回复。 3.密度、干密度、含水量、压实系数的概念。 答: 密度:土单位体积的质量,称为土的天然密度,记为ρ 公式:ρ=m/v; 干密度:土的干密度就是土单位体积中固体颗粒部分的质量; 含水量:单位数量的土壤所保持的水量。常用以下表示法:(1)土壤中水分的重量占干土重量的百分比,称为“体积含水量”,用重量百分比表示;(2)土壤中所含水的体积占土壤总体积的百分比,称为“体积含水量”;用体积百分比表示; 压实系数:一般土经过开挖、运输、堆放而松散,松散土与原土的体积之比称作可松性系数K1;一般土经过开挖、运输、回填、压实后仍较原土体积增大,最后体积与原土体积之比称作可松性系数K2。 4.小型场区平整设计标高的确定的原则调整方法。 答:设计标高的确定:对小型场地平整,如原地形比较平缓,对场地设计标高无特殊要求,可按场地平整施工中挖填土方量相等的原则确定。 将场地划分成边长为a的若干方格,并将方格网角点的原地形标高标在图。原地形标高可利用等高线用插入法求得或在实地测量得到。按照标高调整前后总土方量不变,而且挖填土方 量相等的原则,设所计算的场地标高为,场地总方格数为n,第i个方格四个角点的原地形标高分别为、、和,则场地设计标高可按下式计算: n= 移项后得到: (1-1-1) 由图可见,11号角点为一个方格独有,而12,13,21,24号角点为两个方格共有,22,23,32,33号角点则为四个方格所共有,在上式计算的过程中类似11号角点的标高仅加一次,类似12号角点的标高加两次,类似22号角点的标高则加四次,这种在计算过程中被应用的次数,反映了各角点标高对计算结果的影响程度,测量上的术语称为“权”。考虑各角点标高的“权”,式(1-1-1)可改写成更便于计算的形式: (1-1-2)

软件工程复习题库带答案完整版

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工 B.变换、加工、数据流和存储 C.加工、数据流、数据存储和外部实体 D.变换、数据存储、加工和数据流

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

分离工程课程 思考题

分离工程课程 思考题 1.气液相平衡系统分几类?各类相应的i K 的计算式怎样? 2.工程计算中求取相平衡常数的常用途径有哪两条?各自的i K 计算式怎样? 3.应用状态方程计算L i ?和V i ?的方程相同,那么如何确定算得的结果是L i ?和V i ?? 4.现有乙烷,丙烷和异丁烷组成的三元混合物,采用SRK 状态方程计算它们的相平衡常数i K ,试问需要查取哪些基础数据才能计算它们的i K ? 5.现有乙醇,水,正丙烷组成的三元混合物,采用Wilson 活度系数和Virial 方程计算气相逸度系数,试问需要查取哪些基础数据才能计算它们的i K ? 6.何谓真实气体的理想溶液?当气液两相均可作为理想溶液处理时,i K 取决于哪些因素? 7.以局部组成概念为基础的活度系数方程用来预计多元系的气液平衡,比起Wohl 型一类方程有哪些优点? 8.教材介绍的泡点计算的框图用来计算压力不十分高系统泡点十分有效,试分析原因。 9.如何比较简单地判别一个混合物状态?试归纳相态判别的关系式。 10.等温闪蒸计算机的计算,采用目标函数何迭代变量是什么?用它们有什么优点? 11.构成一个计算机计算的要点是什么?试以Wang - Hanke 法为例进行剖析并由此说明算法的局限性。 12.试推导多级分离过程的MESH 方程组。 13.三对角线的BP 法何SR 法的框图怎样?两法各自适用的物系是哪些? 14.精馏塔的操作压力的上,下限各由什么因素决定?增大操作压力对分离效果和能耗有何影响? 15.何谓关键组分?精馏分离的多元混合物可能含有哪些组分? 16.有A ,B ,C ,D (以挥发度递减次序排列)四组分组成的料液加入精馏塔中进行分离。试对A ,B : B ,C 或C ,D 是轻重关键组分时,塔在m R 下操作时塔中的恒沸区位置进行分析。因为什么组分的变化而引起恒浓区位置的变化? 17.估算精馏塔塔顶和塔底产品的量和组成有哪两种方法?各自的基本假定有哪些? 18.试应用教材中推导的s /12α计算式(式2-175),说明萃取精馏中溶液的作用。如果原料中两组分的相对挥发度十分接近1,靠加入溶剂的什么作用才可能使s /12α

软件工程复习题及答案(完整)

软件工程复习题及答案(完整)

一、选择 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错 6、软件配置管理是一组标识、组织和控制修改源程序的活动。错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。对 9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。对 10、面向对象的分析是面向计算机系统建立软件系统的对象模型。错 11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。 A 质量控制 B 质量管理 C 质量策划 D 质量改进 13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包含了实现该成熟度等级目标的若 干(B)。 A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程 14、在软件开发的各种资源中,(D)是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。 A 业务需求 B 功能需求 C 非功能需求 D 用户需求 17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。 A 需求不确定的 B 需求确定的 C 管理信息 D 决策支持 18、(A)意味着一个操作在不同的类中可以有不同的实现方式。 A 多态性 B 多继承 C 类的可复用 D 信息隐蔽 19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。 A 用例图 B 类图 C 活动图 D 协作图 20、单元测试的测试用例主要根据(D)的结果来设计。 A 需求分析 B 源程序 C 概要设计 D 详细设计 二、填空题 1、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关联关系。 2、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。 3、用例及其协作之间是实现关系。 4、接口及其实现类或构件之间是实现关系。 5、动物与老虎之间是泛化关系。 三、问答题 1、软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。 可复用的软件元素包括(选5种):项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。 2、传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。 传统"瀑布模型"的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。由于瀑布模型的特点,早

土木工程施工复习思考题(1)

《土木工程施工》复习思考题 第一章 土方工程 1.土的工程分类的原则:按土的开挖难易程度分为八类,松软土、普通土、坚土、砂砾坚土、软石、次坚石、坚石、特坚石。 2.最佳含水量:是指在一定的压实功下使土最易压实,并能达到最大密实度时的含水量。 3.土的可松性:自然状态下的土,经过开挖后,体积因松散而增加,虽经回填压实,仍不能恢复其原来的体积。 4.土的渗透性:指水在土体中渗流的性能,一般以渗透系数K 表示。 5、场地设计标高的确定:1.应满足生产工艺和运输的要求2.充分利用地形,分区或分台阶布置,分别确定不同的设计标高3.使挖填平衡,土方量最少4.要有一定泄水坡度,使能满足排水要求5.考虑最高洪水位的影响 6、场地土方量的计算(1)平均高度法 a 四方体棱柱发b 三角棱柱体法 (2)平均断面法 8、确定边坡大小的因素 土质、开挖深度、开挖方法、留置时间、排水情况、坡上荷载(动、静、无) 9、边坡坡度=h/b=1:m 10、流砂的防治:防治流砂原则是“治砂必治水”途径:1.减少或平衡动水压力 2.截住地下水流3.改变动水压力的方向;措施:1.枯水期施工2.打板桩3.水中挖土4.人工降低地下水位5.地下连续墙法6.抛大石块,抢速度施工。 11、轻型井点平面布置和高程布置: 平面布置:当基坑或沟槽宽度小于6m ,水位降低深度不超过5m 时,可用单排线状井点布置在地下水流的上游一侧,两端延伸长度一般不小于沟槽宽度;如宽度大于6m 或土质不定,渗透系数较大时,宜用双排井点,面积较大的基坑宜用环状井点;为便于挖土机械和运输车辆出入基坑,可不封闭,布置为U 形环状井点 高程布置:在考虑到抽水设备的水头损失以后,井点降水深度一般不超过6m 。井点管的埋设深度H(不包括滤管)按下式计算: 式中 H1——井点管埋设面至基坑底的距离,m ; h ——基坑中心处坑底面(单排井点时,为远离井点一侧坑底边缘)至降低后地下水位的距离,一般为0.5~1.0m ; i ——地下水降落坡度;环状井点为1/10,单排线状井点为1/4; L ——井点管至基坑中心的水平距离(单排井点中为井点管至基坑另一侧的水平距离),m 12、井点的分类:轻型井点、喷射井点、电渗井点、管井井点及深井泵井点 13、轻型井点的安装程序 轻型井点的安装程序是按设计布置方案,先排放总管,再埋设井点管,然后用弯联管把井点管与总管连接,最后安装抽水设备 14、常见土方机械的作业特点、适用范围、作业方法(不完整) 1.推土机特点:构造简单,操作灵活,运转方便所需工作面较少,功率较大,行驶速度快易于转移能爬30°的缓坡;挖土深度不大的场地平整,开挖深度不大于1.5m 的基坑;方法:下坡推土、并列推土、槽形推土和分批集中,一次推送。 2.铲运机特点:能独立完成铲土、运土、卸土、填筑压实等工作;适用于大面积场地平整,开挖大型基坑、沟槽,以及填筑路基、堤坝等工作 推土机 作业特点:用途多,费用低 按行走的方式,可分为履带式推土机和轮胎式推土机。 履带式推土机附着力强,爬坡性能好,适应性强;轮胎式推土机行驶速度快,灵活性好。 H +h+iL H

软件工程复习题课后答案

1、假设你负责为一个数字电话制造商开发一个原料控制系统,开发预算是430000美元。按软件工程的推算,每个周期的开发成本,维护费用该如何。 答: 因为开发阶段的花费约占整个生命周期的 33%,所以开发该软件的总开销约为 430000/33%=1300000美元。维护阶段开销 约占整个生命周期的67%,则维护阶段的 投入为1300000*67%=871000美元。 2、描述使用瀑布生命周期模型时的内在风险。 瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量; 2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险; 3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。 4)各个软件生命周期衔接花费时间较长,团队人员交流成本大。 5)瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。 3、简述RUP的核心工程工作流。 (1)商业建模(Business Modeling) 商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程、角色和责任。 (2)需求(Requirements)

需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。 (3)分析和设计(Analysis & Design) 分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。 (4)实现工作流: 建立代码的分层结构,实现类和对象,进行单元测试和系统集成。(5)测试(Test) 测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现, 识别并确认缺陷在软件部署之前被提出并处理。 (6)配置工作流:在目的是成功的生成版本并将软件分发给最终用户,实际使用中主要包括:软件打包、生成软件本身以外的产品、安装软件、培训最终用户及销售人员。 4、使用RUP过程开发软件系统,软件的生命周期分为哪几个阶段。 (1)初始阶段 初始阶段也称为初始的目标,是“获得项目的基础”。初始阶段的主要人员是项目经理和系统设计师,任务包括对系统的可行性分析,创建基本需求,界定系统范围;识别软件系统的关键任务。初始阶段的焦点是需求和分析工作流。 (2)细化阶段 细化阶段的主要目标是创建可执行构件基线;细化风险评估;定义质量属性;捕获大部分的系统功能需求用例;为构造阶段创建详细计划。 细化阶段的焦点是需求、分析和设计工作流。 (3)构造阶段 构建阶段完成了所有需求、分析、设计和实现,所有的功能被详细测试,细化阶段的工作产品将演化为最终系统,构造的主要问题是维护系统框架的完整性。 构建阶段的焦点是实现工作流。 (4)交付阶段 交付是将完整的系统部署到用户所处的环境,交付阶段的重点是完成系统部署确保软件可用。交付阶段的焦点是实现和测试工作流。 5、使用RUP过程中交付阶段的主要目标是什么。 交付阶段的主要目标是确保软件完全满足用户需求。 1.进行Beta测试以确保满足用户的期望; 2.培训用户和维护人员来达到用户的自我依赖; 3.准备交付环境并转换数据库系统; 4.包装准备投放市场的产品;进行宣传并演示系统;交付销售力量;进行人员培训; 5.通过得到的经验改进未来的项目。 6、用例驱动、以构架为中心、采用迭代和增量模型是统一软件过程中三个核心概念。对CMM 等级 (1)所有的软件开发都是用户需求驱动的。统一软件开发过程采用用例来描述用户需求,同时提供一套方法把用例转化为设计的类图,进一步变成最终的程序代码。在整个软件开发过程中,要求用例是可跟踪的,也就是说,无论是设计阶段还是实现阶段的产品,都可以找到相应的需求。用例还可以作为用户测试和验收最终软件产品的标准。

相关文档
最新文档