电子科技大学《软件工程》自测题答案(可编辑修改word版)

电子科技大学《软件工程》自测题答案(可编辑修改word版)
电子科技大学《软件工程》自测题答案(可编辑修改word版)

软件工程自测题一

一、选择

1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。

A 软件过程

B 软件工具

C 质量保证

D 软件工程

2、()是以追求更高的效益和效率为目标的持续性活动。

A 质量策划

B 质量控制

C 质量保证

D 质量改进

3、CMM 提供了一个框架,将软件过程改进的进化步骤组织成 5 个成熟度等级。除第 1 级外,每一级都包含了实现这一级目标的若干关键过程域,每一个关键过程域又包含若干()。

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、软件测试计划开始于需求分析阶段,完成于()阶段。

A 需求分析

B 软件设计

C 软件实现

D 软件测试

二、判断下列叙述的正确性,将结果(√正确,×错误)填入()中,并改正错误的说法。

(1).()在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。改正:

(2).()在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。改正:

(3).()软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。改正:

(4).()模型是对现实的简化,建模是为了更好地理解所开发的系统。改正:

(5).()UML 语言支持面向对象的主要概念,并与具体的开发过程相关。改正:

(6).()用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。改正:

(7).()好的测试用例应能证明软件是正确的。改正:

(8).()白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。改正:

(9).()当软件开发项目的进度有可能拖延时,增加开发人员并不能加快进度。改正:

(10).()软件技术复审是由用户和测试人员实施的一种质量保证活动。改正:

三简答

1、你认为一个好的软件开发人员应具备哪些基本素质?

2、需求工程包括哪些基本活动?每一项活动的主要任务是什么?

3、为什么软件需要维护?简述软件维护的过程。

四、根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。

"一个程序读入3 个整数,它们分别代表一个三角形的3 个边长。该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。"

要求:设三角形的 3 条边分别为A、B、C,并且

(1)列出等价类表,格式如下:

输入条件有效等价类无效等价类

(注意:将等价类编号)(注意:将等价类编号)

(2)设计测试用例,格式如下:

用例n:输入【A,B,C】覆盖等价类……(列出等价类序号),输出结果为……。

五、下图显示了配置管理中的存取和控制,请选择合适的答案,将其对应的序号填入()中。

A(),B(),C(),D()。

供选择的答案:

A:① 软件工程人员② 配置人员③ 质量保证人员

B:④ 异步控制⑤ 同步控制⑥ 存取控制

C~D:⑦ 管理⑧ 登入⑨ 检出⑩ 填写变更请求

六、UML 关系包括关联、聚合、泛化、实现、依赖等5 种类型,请将合适的关系填写在下列描述的()中。

① 用例及其协作之间是()关系。

② 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是()关系。

③ 类A 的一个操作调用类B 的一个操作,且这两个类之间不存在其他关系,那么类A 和类B 之间是()关系。

④ 在MFC 类库中,Window 类和DialogBox 类之间是()关系。

⑤ 森林和树木之间是()关系。

一.答案

1、a

2、d

3、a

4、c

5、a

6、b

7、c

8、b

二、1、判断下列叙述的正确性,将结果(√正确,×错误)填入()中,并改正错误的说法。

(1).(×)改正:在软件开发的过程中,一个错误修复和改正得越晚,为此所花费的代价就会越高。

(2).(√)

(3).(×)改正:软件可行性分析应在需求分析之前,因此,软件需求规格说明书不应成为软件可行性分析的依据。

(4).(√)

(5).(×)改正:UML 语言支持面向对象的概念,并独立于具体的开发过程。

(6).(√)

(7).(×)改正:好的测试用例在于能发现至今未发现的错误。

(8).(√)

(9).(√)(10).(×)

改正:软件技术复审是由软件开发人员实施的一种质量保证活动。

三、

1 答:

(1)牢固掌握计算机软件的基本知识和技能;

(2)善于分析和综合问题,具有严密的逻辑思维能力;

(3)工作踏实细致,遵循标准和规范,具有严格的科学作风;

(4)工作有耐心、有毅力、有责任心;

(5)善于听取别人的意见,善于与周围人员团结协作,建立良好的人际关系;

(6)具有良好的书面和口头表达能力。

2、答:

(1)需求获取(问题识别):采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。

(2)需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。

(3)需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。

(4)需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。

(5)需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。

3、答:

在软件开发完成交付用户使用后,为了保证软件在一个相当长的时期能够正常运行,就需要对软件进行维护。软件维护的过程:

(1)确认维护要求。

(2)对于改正性维护申请,评价错误的严重性。对于严重的错误,立即安排人员,分析问题原因,进行"救火"性的紧急维护;对于不严重的错误,根据任务情况和轻重缓急进行统一安排。

(3)对于适应性和完善性维护申请,需要确定申请的优先级,然后安排维护工作。并不是所有的完善性维护申请都必须承担,需要考虑商业需要、现有资源、未来发展方向等进行决定。

四、答:

(1)列出等价类表

(2)设计测试用例

用例1:输入【3,4,5】覆盖等价类(1,2,3,4,5,6),输出结果为构成一般三角形。

用例2:三者取一

输入【0,1,2】覆盖等价类(2),输出结果为不构成三角形。

输入【1,0,2】覆盖等价类(2),输出结果为不构成三角形。

输入【1,2,0】覆盖等价类(2),输出结果为不构成三角形。

用例3:三者取一

输入【1,2,3】覆盖等价类(3),输出结果为不构成三角形。

输入【1,3,2】覆盖等价类(3),输出结果为不构成三角形。

输入【3,1,2】覆盖等价类(3),输出结果为不构成三角形。

用例4:三者取一

输入【3,3,4】覆盖等价类(1)(4),输出结果为等腰三角形。

输入【3,4,4】覆盖等价类(1)(4),输出结果为等腰三角形。

输入【3,4,3】覆盖等价类(1)(4),输出结果为等腰三角形。

用例5:输入【3,4,5】覆盖等价类(1)(5),输出结果为不是等腰三角形。用例6:输入【3,3,3】覆盖等价类(1)(6),输出结果为等边三角形。

用例7:三者取一

输入【3,4,4】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。

输入【3,4,3】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。

输入【3,3,4】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。

五、答:

A ①

B ⑥

C ⑨

D ⑧

六、答:

① 实现② 关联③ 依赖④ 泛化⑤ 聚合

软件工程自测题二

一、单项选择题

1.在下列工具与环境中()属于较早期的CASE。

A.基于信息工程CASE

B.人工智能 CASE

C.结构的基于图形 CASE

D.集成的 CASE 环境

2.Putnam 成本估算模型是一个()模型。

A.静态单变量B.动态单变量C.静态多变量D.动态多变量

3.在McCall 软件质量度量模型中,()属于面向软件产品修改。

A.可靠性B.可重用性C.适应性D.可移植性4.ISO 的软件质量评价模型由3 层组成,其中用于评价设计质量的准则是

()

A.SQIC B.SQMC C.SQRC D.SQDC 5.软件复杂性度量的参数包括()

A.效率B.规模C.完整性

D.容错性6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。

A.结合B.隐藏C.封装D.抽象7.软件调试技术包括()

A.边界值分析B.演绎法C.循环覆盖D.集成测试8.瀑布模型的存在问题是()

A.用户容易参与开发

B.缺乏灵活性

C.用户与开发者易沟通

D.适用可变需求

9.软件测试方法中的静态测试方法之一为()

A.计算机辅助静态分析

B.黑盒法

C.路径覆盖

D.边界值分析

10.软件生命周期中所花费用最多的阶段是()

A.详细设计B.软件编码C.软件测试D.软件维护

11.第一个体现结构化编程思想的程序设计语言是()

A.FORTRAN 语言B.Pascal 语言C.C 语言D.PL/1 语言12.程序的三种基本控制结构是()

A.过程、子程序和分程序

B.顺序、选择和重复

C.递归、堆栈和队列

D.调用、返回和转移

13.在详细设计阶段,经常采用的工具有()

A.PAD B.SA C.SC D.DFD 14.详细设计的结果基本决定了最终程序的()

A.代码的规模B.运行速度C.质量D.可维护性

15.需求分析中开发人员要从用户那里了解()

A.软件做什么B.用户使用界面C.输入的信息D.软件的规模

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

A.程序的规模

B.程序的效率

C.程序设计语言的先进性

D.程序易读性

17.IDEF。图反映系统()

A.怎么做B.对谁做C.何时做D.做什么

18.经济可行性研究的范围包括()

A.资源有效性B.管理制度C.效益分析D.开发风险19.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出()的回答。

A.确定B.行或不行C.正确D.无二义20.需求分析阶段的任务是确定()

A.软件开发方法

B.软件开发工具

C.软件开发费

D.软件系统的功能

二、填空题(每空 2 分,共20 分)。21.在软件开发过程中要产生大量的信息,要进行大量的修改,能协调软件开发,并使混乱减到最低程度。

22.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能

力,则称此软件具有的软件。

23.McCall 提出的软件质量模型包括个软件质量特性。

24.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠

性、、可使用性和效率。

25.为了便于对照检查,测试用例应由输入数据和预期的两部分组成。

26.程序设计语言的心理特性主要表现在、简洁性、传统性、局部性和顺序性。

27.软件结构是以为基础而组成的一种控制层次结构。

28.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、

29.结构化语言是介于自然语言和之间的一种半形式语言。

30.若年利率为i,不计复利,n 年后可得钱数为F,则现在的价值

P= 。

三、名词解释题每小题3 分,共15 分。

31.软件生存周期模型

32.数据字典(DD)

33.内聚性

34.JSP 方法

35.多态性

四、简答题每小题 5 分,共20 分。

36.简述容错技术的四种主要手段,并解释。

37.以G.J.Myers 的观点,简述对软件测试的目的。

38.就程序设计语言的工程特性而言,对程序编码有哪些要求?

39.模块的内聚性包括哪些类型?

五、应用题第40 小题7 分,第41 小题8 分,第42 小题10 分,共25 分。

40.下面是某程序的流程图:

(1)计算它的环路复杂性。

(2)为了完成基本路径测试,求它的一组独立的路径。

41.根据下列条件使用等价划分法设计测试用例。

某一 8 位微机,其十六进制常数定义为:以 0x 或0X 开头的数是十六进制整数,其值的范围是-7f~7f(表示十六进制的大小写字母不加区别),如

0X13,0X6A,-0X3c。

答案

一、单项选择题每小题1 分,共20 分。

1.C

2.D

3.C

4.D

5.B

6.C

7.B

8.B

9.A 10.D 11.B 12.B 13.A

14.C 15.A 16.D 17.D 18.C 19.B 20.D

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

21.软件配置管理22.容错功能

23.11

24.可移植性

25.输出结果26.歧义性

27.模块28.判定树

29.形式语言30.F/(1+(n*i))

三、名词解释题每小题3 分,共15 分。

31.是描述软件开发过程中各种活动如何执行的模型。

32.数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准

确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素

的一致的定义和详细的描述。

33.内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,

即一个模块内部各个元素彼此结合的紧密程度的度量。

34.JSP 方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的

映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的

过程描述,即程序结构。

35.指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。

或(不同的对象,收到同一消息可以产生不同的结果。)

四、简答题每小题5 分,共20 分。

36.结构冗余:包括静态冗余、动态冗余和混合冗余。

信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。

时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。

冗余附加技术:指为实现上述冗余技术所需的资源和技术。

37.软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例

能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。

38.就程序设计语言的工程特性而言,对程序编码有如下要求:

(1)可移植性

(2)开发工具的可利用性

(3)软件的可重用性

(4)可维护性

39.模块的内聚性包括:

(1)偶然内聚

(2)逻辑内聚

(3)时间内聚

(4)通信内聚

(5)顺序内聚

(6)功能内聚

五、应用题共25 分。

40.解:

(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)

41:

解答:等价划分法

①划分等价类并编号,如下表所示。

软件工程自测题三

判断题(每题 3 分,共15 分)

1.软件实际就是程序( )

2.成功的测试是没有发现错误的测试()

3.软件工程的主要思想是从理论的角度来观察分析软件开发盒生产活动()

4.一个模块直接引用另一个模块中的数据,这两个模块之间的耦合不是内容耦合()

5.程序只要逻辑正确,能够被机器理解并执行就够了()

二.选择题(每题 3 分,共 30 分)

1.在软件质量因数中,软件在异常条件下人能运行的能力称为软件的()

A)可靠性B)健壮性C)可用性D)安全性

2.软件开发可行性研究,一般涉及经济,技术盒操作可行性,而进行可行性研究的基本依据是用户提出的软件()

A)系统质量B)系统目标C)系统功能D)系统性能

3.结构化程序设计中,一般包含 3 种基本结构,下列结构中哪个不属于基本结构

A)顺序结构B)嵌套结构C)顺序结构D)选择结构

4.JACKSON 方法是一种面向()的方法

A)对象 B )数据结构C)数据流D)控制流

5.模块内部过程描述就是模块内部的(),它的表述形式就是详细设计语言

A)模块化设计 B)算法设计 C)程序设计 D)详细设计6.在设计

测试用例时,()是用的最多的一种黑盒测试方法 A)等价

类划分 B)边值分析 C)因果图 D)判定表

7 软件的可维护性,可使用性, ( ) 是衡量软件质量的几个主要特性

A)可靠性B)可复用性 C)可理解性D)可修改性

8.原型化方法是一种()型的设计过程

A)自外向内 B)自顶向下 C)自内向外D)自底向上

9.模块()定义为受该模块内一个判断影响的所有模块集合

A)控制流B)作用域C)宽度D)接口

10.程序控制的3 种基本结构中,()结构可提供程序重复控制

A)遍历B)排列 C )循环D)分支

三.填空题(每空 2 分,共20 分)

1.黑箱测试即()、白箱测试即()。

2.开发期的主要任务是()、()、()、()、()。

3.结构化方法将软件生命周期分为()、()、()三个时期。

名词解释(每题 5 分,共 20 分)

数据字典

内聚性

3.软件生存周期模型

4.多态性

简答题(每题 5 分,共 15 分)

数据字典具有的特点?

软件工程的内容是什么

3.软件测试的目的是什么?

答案

判断题

全错

选择题

BCBBBABBBC

三.填空题

功能测试结构测试

需求分析总体设计详细设计编码测试

3.计划开发运行

名词解释

数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

是描述软件开发过程中各种活动如何执行的模型。

指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或(不同的对象,收到同一消息可以产生不同的结果。)

简答题

1. a. 通过名字能方便地查阅数据的定义

b.没有冗余

c.尽量不重复其他部分已说明的信息

d.能单独处理描述每个名字的信息

e.书写方法简单方便而且严格,容易更新和修改

2.软件过程,软件开发方法,软件过程,软件工具,软件开发环境,计算机辅助软件工程,软件经济学

3.软件测试的目的是在软件投入生产性运行之前,尽可能多地发现软件中的错误,测试是对软件规格说明,设计和编码的最后复审。所以软件测试贯穿在整个软件开发期的全过程。

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

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

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

软件工程课后习题测验简答题

第一章: 三、简答题 1.软件产品的特性是什么? 答:●软件是一种逻辑产品,具有无形性; ●软件产品的生产主要是研制;主要是脑力劳动; ●软件不存在磨损和老化问题,但存在退化问题; ●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式; ● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。 2. 软件发展有几个阶段?各有何特征? 答:①程序设计阶段。 硬件特征:价格贵、存储容量小、运行可靠性差。 软件特征:只有程序、程序设计概念,不重视程序设计方法。 ②程序系统阶段。 硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。 软件特征:程序员数量猛增,开发人员素质低。 ③软件工程阶段。 硬件特征:向超高速、大容量、微型化及网络化方向发展。 软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。 3.什么是软件危机?其产生的原因是什么? 答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。软件危机主要表现在两个方面: (1) 软件产品质量低劣,甚至开发过程就夭折。 (2)软件生产率低,不能满足需要。 4.什么是软件过程?有哪些主要的软件过程模型?它们各有哪些特点? 答:软件过程是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。软件过程模型是对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型,因此又称为软件开发模型。 主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等。 ⑴瀑布模型是经典的软件开发模型,将软件开发活动中的各项活动规定为依线性顺序连接的若干阶段,它简单易用,在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大的作用。但在软件开发实践中也逐渐暴露出它的缺点。它将一个充满回溯的软件开发过程硬性分割为几个阶段,无法解决软件需求不明确或者变动的问题。 ⑵增量模型是一种非整体开发的模型。根据增量的方式和形式的不同,分为基于瀑布模型的渐增模型和基于原型的快速原型模型。该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。 ⑶螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:制定计划、风险分析、实施工程、客户评估。 ⑷喷泉模型用于采用对象技术的软件开发项目。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。软件开发过程有4

软件工程思考题答案

1、一个软件公司许多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产 品。每个部门由部门名字唯一确定。该公司有许多员工,员工分为经理,工作人员和开发人员每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,开发人员使用语言开发项目。每位经理可主持多个开发项目。建立该软件公司的对象模型。 2、某教务中心准备开发一个成人自学考试系统考务管理系统,经过调研该系统有如下功能:(1)对考生填写的报名单进行审查,对合格的考生,编好准考证发给考生,汇总后的报名单送给阅卷站。 (2)给合格的考生制作通知单,将考试科目、时间、地点安排告诉考生。 (3)对阅卷站送来的成绩进行登记;按当年标准审查单科合格者,并发成绩单,对所考专业各科成绩全部合格者发给大专毕业证书。 (4)对成绩进行分类(按地区、年龄、职业、专业、科目等分类)产生相应统计表 (5)查询考生可按准考证号随时查询自己的各科成绩 试根据要求画出系统的用例图

3、某图书馆借阅系统有以下功能: (1)借书:根据读者的借书证查询读者档案,若借书数目未超过规定数量,则办理借阅手续(修改库存记录及读者档案),超过规定数量者不予借阅。对于第一次借阅者则直接办理借阅手续。 (2)还书:根据读者书中的条形码,修改库存记录及读者档案,若借阅时间超过规定期限则罚款。 请对以上问题,画出数据流图

4、某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:(1)报社发行多种刊物,每种刊物通过订单来征订,订单中有代码、名称、订期、单价、份数等项目,订户通过填写订单来订阅报刊。 (2)报社下属多个发行站,每个站负责收集登陆订单,打印收款凭证等事务。 (3)报社负责分类并统计各个发行站送来的报刊订阅信息。 请就比需求建立对象模型,并画出系统的用例图

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

软件工程课后习题参考答案

1.简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 4.简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 5、简述需求与需求规约的基本性质。 答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。 需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。 6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可 7、举例说明功能需求和非功能需求之间的基本关系。 答: 非功能需求可作用于一个或多个功能需求,例如 非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。P24 8、有哪几种常用的初始需求发现技术 答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26 9、简述需求规约的3种基本形式。 (1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 P29 10、简述软件需求规约的内容和作用。 答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28 需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31 11、简述需求规约在项目开发中的基本作用。 答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 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、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程课后习题答案

第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 三、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机? 1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 软件工程的本质特征: (1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经常变化的,开发过程中必须考虑软件将来可能的变化 (4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具 (5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户 (7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径: (1) 对计算机软件有一个正确的认识(软件≠程序) (2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3) 推广使用在实践中总结出来的开发软件的成功技术和方法 (4) 开发和使用更好的软件工具

软件工程复习知识点

软件工程复习知识点 1. 软件危机的概念,内容,原因及消除的途径; 软件危机的概念: 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 概括地说,软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机产生的原因: 软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确。 消除软件危机的途径: (1)对计算机软件应当有一个正确的认识;(2)应当有组织、有计划、通过严格的管理手段进行软件的开发;

(3)及时总结软件开发的成功技术和方法并加以推广; (4)开发和使用更好的软件工具; 总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。 2. 软件工程的定义,基本原理; 定义:软件工程是指导计算机软件开发和维护的一门工程学科

基本原理:软件工程的7条基本原理: (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果应能清楚地审查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性 3. 软件工程方法学的基本概念、内容; 基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。软件工程方法学包含3个要素:方法、工具和过程。 内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也称为生命周期方法学或结构化范型。 4. 软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子 来理解做软件项目主要分那几个个阶段。 ①问题定义:确定要求解决的问题是什么 ②可行性研究:决定该问题是否存在一个可行

《生化分离工程》思考题及习题

《生化分离工程》思考题及习题 第一章绪论 1、何为生化分离工程bioseparation engineering/下游加工过程, biotechnology?其 主要研究那些内容? 2、生化分离技术依据的分离原理有哪些? 3、生化分离工程有那些特点?其包括那几种主要分离方法? 4、何为传质分离过程? 5、简述生化分离工程的发展趋势。 6、亲和技术目前已衍生出那些子代分离技术? 7、生化反应与生化分离耦合技术有那些特点? 8、为何在生物技术领域中往往出现“丰产不丰收”的现象? 9、生物产品与普通化工产品分离过程有何不同? 10、设计生物产品的分离工艺应考虑哪些因素? 11、初步纯化与高度纯化分离效果有何不同? 12、如何除去蛋白质溶液中的热原质? 13、生物分离为何主张采用集成化技术? 14、若每一步纯化产物得率为90%,共6步纯化得到符合要求产品,其总收率 是多少? 第二章预处理与固-液分离法 1、发酵液预处理的目的是什么?主要有那几种方法? 2、何谓絮凝?何谓凝聚?各自作用机理是什么? 3、絮凝剂可分为那三种?有那些因素影响絮凝过程? 4、在生化工业中常用的过滤方式那两种?各自有何特点? 5、离心分离分那两大类?各自有何特点及用途?常用离心法有那几种? 6、何谓密度梯度离心?其工作原理是什么? 7、如何使用助滤剂? 8、错流微滤与传统过滤相比有何优点?

第三章细胞破碎法 1、细菌细胞壁与真菌(酵母)细胞壁在组成上有何区别? 2、细胞破碎主要有那几种方法? 3、机械法细胞破碎方法非机械破碎方法相比有何特点? 4、何谓脂溶破碎法?其原理是什么?包括那几种? 5、酶法细胞破碎常用那几种酶类? 6、包涵体是如何产生的?如何使重组蛋白复性? 7、如何测定细胞破碎程度? 第四章沉淀法 1.理解概念:盐溶,盐析 2.常用的沉淀法有哪几种? 3.生产中常用的盐析剂有哪些?其选择依据是什么? 4.何谓分步盐析沉淀? 5.有机沉淀法与盐析沉淀法相比有何优缺点? 第五章溶剂萃取法 1、何谓溶剂萃取?其分配定律的适用条件是什么? 2、在溶剂萃取过程中pH值是如何影响弱电解质的提取? 3、何谓乳化液?乳化液稳定的条件是什么?常用去乳化方法有那些? 4、在发酵工业中,去乳化有何实际意义? 5、理解概念:HLB,分配系数,分离因子,介电常数,带溶剂 6、生物物质的萃取与传统的萃取相比有哪些不同点? 7、pH 对弱电解质的萃取效率有何影响? 8、发酵液乳化现象是如何产生的?对分离纯化产生何影响? 如何有效消除乳化现象? 9、什么叫超临界流体? 10、为何在临界区附近,稍微改变流体的压力和温度,都会引起流体密度的大副变化? 11、要提高超临界流体萃取的效率,可以考虑哪些方面?

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

软件工程课后习题答案第五版

软件工程课后习题答案第五版 《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

软件工程知识点

第一章软件工程概述 一、软件的定义和特性(P2—P3) 定义:软件=程序+数据+文档 程序:按照事先设计的功能和性能要求执行的指令或语句序列 数据:程序能正常操纵信息的数据结构 文档:描述程序操作和使用的文档 特性: (1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体; (2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理; (3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件; (4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题; (5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。 * 掌握P4图1-2(b)软件失效率曲线 二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2) 共经历了四个阶段 特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术 第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机 第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件 第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。 三、什么是软件危机?其产生的原因是什么? 定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。(P4) 原因:(P5) (1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求; (2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致; (3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验; (4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误; (5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化 (6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。 四、什么是软件工程?它的目标和内容是什么? 定义:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并对方法的研究。(P6) 目标:在给定的成本和进度前提下,开发出具有可修改性、可理解性、可维护性、有效性、可靠性、可适用性、可重用性、可移植性、可跟踪性和互操作性并且满足用户需求的软件产品。(P7) 内容:主要内容包括软件开发技术和软件工程管理两方面。(P6) 要素:方法,工具,过程 五、什么是软件生存周期?它有哪几个活动? 定义:(software life cycle)把软件产品从形成概念开始,经过定义、开发、使用和维护直到最后退役的全过程。 活动:软件定义、软件开发、软件使用维护和退役(P9)

软件工程课后习题答案

第一章 1.1举出至少5个例子来说明“意外效应法则”在计算机软件方面的应用。 答:典型的例子包括使用“数字汽车仪表板”的软件,赋予高科技,高品质的图像的软件;如广泛的消费类电子产品的软件;个人电脑,工业仪器仪表和机器的软件。软件分化出的在电子商务方面的应用。 1.2举例说明软件对社会的影响(包括正面影响和负面影响)。 答:这是一个很好的课堂讨论问题(如果时间允许),而不是专注于老生常谈的(但很重要)隐私问题,生活质量等问题。您可能想要讨论关于”技术恐惧“方面的问题,软件也许会使它恶化但也可能减少”技术恐惧“。另一个有趣的方面是使用诺依曼的“风险”列在中做重点讨论。你也可以考虑基于软件的“现金”经济,新模式的互动娱乐,虚拟现实,电子商务等方面来思考软件对社会的影响。 1.3针对1.1节提出的5个问题,请给出你的答案,并与同学讨论。 答:软件需要如此长的开发时间: a)设施不上线 b)开发工具并不如预期般运作 c)客户提出的新要求,需要重新设计和返工 d)产品依赖于政府的规定,被意外更改。 e)严格的要求,与现有系统的兼容性需要超过预期更多的测试,设计和实现。 f)多个操作系统下运行的任务需求比预期需要更长的时间。 g)软件项目风险管理比预期需要更多的时间。 h)依赖的技术仍处于开发阶段,从而延长日程安排。 开发成本高: a)比当时预期低得令人无法接受的质量,需要进行更多的测试,设计和实施工作。 b)制定了错误的软件功能需要重新设计和实施。 c)开发错误的用户界面,而导致重新设计和实施。 d)开发了不需要的额外的软件功能而延长了开发日程安排。 在将软件交付顾客使用之前,我们无法找到所有错误: a)产品依赖于政府监管,意外而改变。 b)产品技术标准草案,会意外更改。 c)有时会在项目后期添加新的开发人员。 d)因为团队内的冲突有时会导致沟通不畅,而产生糟糕的设计。 e)破坏高效调度产生的项目管理成果和无效的规划 f)有时装备部件质量差,导致额外的测试,设计和集成工作和管理额外的客户关系。 软件开发和维护的过程仍旧难以度量: a)有时该项目的目的是不明确。 b)有大量的业务所涉及的风险。 c)如果产品内置没有装好。 d)我们需要不断检讨我们的工作。 e)进行维护检查的时间。 f)在整个软件开发过程中要彻底组织项目团队。 1.4在交付最终用户之前,或者首个版本投入使用之后,许多应用程序都会有频繁的变更。

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 软件也会磨损和老化。(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) 内聚度标志一个模块内部各成分彼此结合的紧密程度,按其高低程度可分为七级,内聚度越低越好.(X) 文档记录软件开发活动和阶段成果,具有永久性,可供人或机器阅读.(√) 生产高质量的软件产品是软件工程的首要目标.(√) 软件开发人员对用户需求的理解有偏差,这将导致软件产品与用户的需求不一致,是产生软件危机的唯一原因.(X) 开发一个软件项目总存在某些不确定性,即存在风险.有些风险如果控制得不好,可能导致灾难性的后果.(√) 结构化维护用于待维护的软件的配置是完整的维护.(√) 用户本身的技能,个性上的差异,行为方式的不同,不会对人机界面使用造成影响.(X 程序的可靠性,可维护性和效率通常由程序设计语言,源代码的质量,和语言的实现机制

相关文档
最新文档