当前位置:文档之家› 软件工程习题解答 第一章 概述

软件工程习题解答 第一章 概述

软件工程习题解答 第一章 概述
软件工程习题解答 第一章 概述

软件工程习题解答

第一章概述

1、软件产品得特性就是什么?

a、软件产品就是一种逻辑产品。

b、软件产品得生产主就是研制,软件产品得成本主要体现在软件得开发与研制上,软件开发完成后,复制就产生了大量软件产品。

c、软件产品不会用坏,不存在磨损、消耗问题。

d、软件产品得生产主要就是脑力劳动,还未完全摆脱手工开发方式,而且碰分就是"定做"得。

e、软件费用不断增加,成本相当昂贵。

2、软件产品有几个阶段?各有何特征?

阶段A、程序设计时代

(1946-1956)

B、程序系统时代(1956-1968)

C、软件工程时代(1968-今)

生产方式个体手工劳动小集团合作生产工程化得生产

工具机器语言、汇编高级语言数据库、开发工具、开发环境、

网络、分布式、面向对象技术

开发方法追求编与技巧,追求程序运

行效率

个人技巧,开始提出结构化方法

硬件特征价格贵、存储容量小、运行

可靠性差速度、容量、工作可靠性有明显提

高,价格降低,销售有爆炸性增长

向超高速、大容量、微型化以

及网络化方

软件特征只有程序、程序设计概念,

不重视程序设计方法程序员数量猛增,已意识到软件开

发得重要性,开发技术没有新得突

破,大量软件开发得需求已提出,开

发人员得素质与工程兵得开发技术

不适应规模大、结构复杂得软件开

发,产生了尖锐矛盾,导致软件危机

得产生

开发技术有很大进步,但未能

获得突破性进展,软件价格不

断上升,没有完全摆脱软件危

3、什么就是软件危机?其产生得原因就是什么?

软件危机:软件发展第二阶段得末期,由于计算机硬件技术得进步。一些复杂得、大型得软件开发项目提出来了,但,软件开发技术得进步一直未能满足发展得要求。

在软件开发中遇到得问题找不到解决得办法,使问题积累起来,形成了尖锐得矛盾,因而导致了软件危机。主要表现在以下几个方面:

a、经费预算经常突破,完成时间一再拖延。

b、开发得软件不通满足用户要求。

c、开发得软件可维护性差。

d、开发得软件可靠性差。

软件危机产生得原因就是由于软件产品本身得特点以及开发软件得方式、方法、技术与人员引起得:

a、软件得规模越来越大,结构越来越复杂。

b、软件开发管理困难而复杂。

c、软件开发费用不断增加。

d、软件开发技术落后。

e、生产方式落后。

f、开发工具落后,生产率提高缓慢。

4、什么就是软件工程?它得目标与内容就是什么?

软件工程:用科学知识与技术原理来定义、开发、维护软件得一门学科。

软件工程得目标就是成功得建造一个大型软件系统,所谓成功就是要达到以下几个目标:

a、付出较低得开发成本;

b、面到要求得软件功能;

c、取得较好得软件性能;

d、开发得软件易于移植;

e、需要较低得维护费用;

f、能按时完成开发任务,及时交付使用;

g、开发得软件可靠性高;

软件工程得内容:

1) 软件开发技术:软件开发方法、软件开发过程、软件开发工具与环境。

2) 软件开发管理:软件管理学、软件经济学、软件心理学。

5、软件工程面临得问题就是什么?

软件工程面临得问题:

a、软件费用。

b、软件可靠性。

c、软件维护。

d、软件生产率。

e、软件重用。

6、什么就是软件生存周期?它有哪几个活动?

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止得整个时期。

软件生存周期包括:可行性分析与项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等、

7、什么就是软件生存周期模型?有哪些主要模型?

软件生存周期模型:就是描述软件开发过程中各种活动如何执行得模型。(模型:就是为了理解事物而对事物做出一种抽象,它忽略不必要得细节,它也就是事物得一种抽象形式、一个规划、一个程式。)

软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型与基于知识得模型等

9、什么就是软件开发得方法?有哪些主要方法?

软件开发得方法:就是一种使用早已定义好得技术集及符号表示习惯来组织软件生产得过程。

主要方法:结构方法、Jackson方法、维也纳开发方法(VDM)、面向对象得开发方法。

第二章可行性研究

1、可行性研究得任务就是什么?

a、技术可行性:

考虑得因素(1)、开发得风险(2)资源得有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。

b、经济可行性。

c、社会可行性。

2、可行性研究有哪些步骤?

a、确定项目规模与目标

b、研究正在运行得系统

c、建立新系统得高层逻辑模型

d、导出与评价各种方案

e、推荐可行得方案

f、编写可行性研究报告

3、可行性研究报告有哪些就要内容?

a、引言

b、可行性研究前提

c、对现有系统得分析

d、所建议系统得技术可行性分析

e、所建议系统得经济可行性分析

f、社会因素可行性分析

g、其她可供选择方案

h、结论意见

4、成本---效益分析可用哪些指标进行度量?

有形效益度量:

a、货币得时间价值

b、投资回收期

c、纯收入

无形效益:主要从性质上、心理上进行衡量,很难直接进行量得比较。

通常以有形效益度量作为成本---效益分析得度量。

5、项目开发计划有哪些内容?

a、项目概述

b、实施计划

c、人员组织及分工

d、交付期限

第三章需求分析

1、什么就是需求分析?需求分析阶段得基本任务就是什么?

需求分析就是指:开发人员要准确理解用户得要求,进行细致得调查分析,将用户非形式得需求陈述转化为完整得需求定义,再由需求定义转换到相应得形式主义功能规约(需求规格说明)得过程。

需求分析阶段得基本任务就是:

(1) 问题识别:双方对问题得综合需求:a、功能需求b、性能需求c、环境需求d、用户界面需求、

(2) 分析与综合,导出软件得逻辑模型、

(3) 编写文档

2、什么就是结构化分析方法?该方法使用什么描述工具?

结构化分析方法:就是面向数据汉进行需求分析得方法。

描述工具:a、数据流图b、数据字典c、描述加工逻辑得结构化语言、判定表、判定树。

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

结构化分析方法步骤:

a、了解当前系统得工作流程,获得当前系统得物理模型、

b、抽象出当前系统得逻辑模型、

c、建立上标系统得逻辑模型、

d、作进一步补充与优化、

4、什么就是数据流图?其作用就是什么?其中得基本符号各表示什么含义?

数据流图:简称DFD,就是SA(结构化分析)方法中用于表示系统逻辑模型得一种工具,就是一种功能模型。

作用:它以图形得方式描绘数据在系统中流动与处理得过程,反映系统必须完成得逻辑功能、

基本符号有四种:

→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据得源点或终点、

5、画数据流图应该注意什么事项?

画数据流图注意事项:

a、命名、不论就是数据流\数据存储还就是加工,合适得命名使人们易于理解基含义.

b、画数据流而不就是控制流.

c、一般不画物质流.

d、每个加工到少有一个输入数据流与一个输出数据流,反映出此加工数据得来源与加工得结果.

e、编号.

f、父图与子图得平衡.

g、局部数据存储.

h、提高数据流图得易理解性.

6、什么就是字据字典?其作用就是什么?它有哪些条目?

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

作用:1)为系统得分析\设计及维护提供了有关元素得一致得定义与详细得描述、

2)为分析人员查找数据流图中有关名字得详细定义而服务得、

3)它与数据流图共同构成了系统得逻辑模型,就是需求规格说明书得主要组成部分、

条目:数据流、数据项、数据存储、基本加工。

7、描述加工逻辑有哪些工具?

a,结构化语言b,判定表c、判定树

8、什么就是IDEF方法?IDEF0方法有什么特点?

IDEF方法:就是美国空军在1981年针对集成化计算机辅助制造(Integrated puter Aided Manufacturing,简称ICAM)工程项目中用于进行复杂系统分析与设计得方法,就是在结构化分析与设计技术得基础上提出来得。

IDEF就是ICAM Definition得缩写。

IDEF0方法特点:

a、采用方框与箭头等简单得图形符号描述系统得活动与数据流,描述活动所受到得约束及实现机制。

b、采用严格得自顶向下、逐层分解得方式建立系统功能模型。

9、简述SA方法得优缺点。

优点:

1)公认得、有成效得、技术成熟、使用广泛得一种方法,比较适合于开发数据处理类型软件得需求分析。

2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段得设计、测试、评价提供了有利条件。

缺点:

1)传统得SA方法主要用于数据处理方面得问题,主要工具DFD体现了系统"做什么"得功能,但它仅就是一个静态模型,没有反映处理得顺序,即控制流程。因此,不适合描述实时控制系统。

2)SA方法在使用DFD在分析与描述"数据要求"方面就是有局限得。

3) DFD不适合描述人机界面系统得要求。

4)为了更精确地描述软件包需求,提高软件系统得可靠性、安全性,也便于实现自动化,SA方法可与形式方法结合起来。

10、某银行得计算机储蓄系统功能就是:将储户填写得存款单或取款单输入系统,如果就是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果就是取款,系统计算清单储户。请用DFD与IDEF0描绘该功能得需求,并建立相应得数据字典。

(1)数据流条目:

数据流名称:存款单

别名:无

简述:储户存款时填写得项目

来源:储户

去向:记帐

数据流量:未知

组成:姓名+住址+存款类型+存款日期+利率

数据流名称:取款单

别名:无

简述:储户取款时填写得项目

来源:储户

去向:统计

数据流量:未知

组成:姓名+住址+取款类型+取款日期+利率

数据流名称:清单

别名:无

简述:储户取款后得到得项目

来源:记录

去向:储户

数据流量:未知

组成:姓名+住址+取款类型+取款日期+利率+余额

(2)数据存储条目:

数据存储名称:账单

别名:无

简述:存放储户信息及其账目

组成:姓名+住址+余额+存款类型+最后修改日期+利率组织方式:未知

查询要求:能立即查询

(3)数据项条目:

未知

(4)加工条目:

加工名:分类检查

编号:无

激发条件:接收到存/取款单

优先级:优先

输入:存/取款单

输出:存/取款单

加工逻辑:IF 存款单THEN 把存款单输出到统计

ELSE

把取款单输出到统计

ENDIF

加工名:统计

编号:无

激发条件:取款单

优先级:无

输入:取款单

输出:清单

加工逻辑:根据账单检查此储户就是否存在,不存在输出错误{

IF 取款数<余额THEN 余额=余额-取款数输出清单到储户,输出现金到储户

ELSE

输出错误清单到储户

ENDIF

}

加工名:记录

编号:无

激发条件:存款单

优先级:无

输入:存款单

输出:存款单

加工逻辑:根据账单检查此储户就是否存在,不存在则建立此储户{

余额=余额+存款数

输出存款单到储户

}

11、某图书管理系统工程有以下功能:

(1)借书:输入读者借书证。系统首先检查借书证就是否有效,对于第一次借书得读者,在借书文件建立档案。否则,查阅借书文件,检查该读者所借图书就是否超过10本,若已达10本,拒借,未达10本,办理借书(检查库存、修改库存目录并将读者借书情况登入借书文件)、

(2)还书:从借书文件中读出与读者有关得记录,查阅所借日期,如果超期(3个月)作罚款处理。否则,修改库存目录与借书文件。

(3)查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。请就以上系统功能画出分层得DFD图,并建立重要条目得数据字典。

12、某厂对部分职工重新分配工作得政策就是:

年龄在伙岁以下者,初中文化程度脱产学习。高中文化程度当电工;年龄在20岁到40岁之间者,中学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度当材料员,大学文化程序当技术员。请用结构化语言、判定表或判定树描述上述问题得加工逻辑。

(1)结构化语言:

根据职工年龄与文化程序:

REPEAT

If 年龄<=20

If 初中文化 Then 脱产学习 endif

else if 高中文化 Then 电工 endif

endif

If 20<年龄<40

If 中学文化

If 男性 Then 钳工

Else

车工

Endif

else if 大学文化 Then 技术员endif

endif

endif

If 年龄>=40

If 中学文化 Then 材料员

else if 大学文化 Then 技术员endif

endif

endif

Until 没有剩余未分配员工

判定表

1 2 3 4 5 6 7 8 9 10 11

年龄 C C D D D D D E E E

文化G H H G G H I G H I

性别-- -- M M F F -- -- -- --

脱产学习√

电工√

钳工√√

车工√√

技术员√√

材料员√√

条件取值表

条件名取值符号取值数

年龄

<=20 C

M1=3 >20,<40 D

>=40 E

文化程度中学G

M2=3 高中H

大学I

性别男M M3=2

F

附加题: 1、自学考试报名过程中有个“记录报名单”得加工。该加工主要就是根据报名表(姓名、 性别、身份证号、课程名)与开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。请绘制该加工得DFD 图,并写出数据词典中得数据流条目。

:

2、“决定比赛名单”这个加工,根据“运动员名单”与“比赛项目”产生 “项目参加者”,如下图所示,运动员名单要

包括所在队名,运动员编号号,运动员姓名,及参加得所有项目。请写出这三个数据流条目。 答:

运动员名单=队名+运动员号+姓名+{项目} 项目=项目名

项目参加者=项目名+{运动员号} 3、某旅馆得电话服务如下:

可以拨分机号与外线号码。分机号就是从7201至7299。外线号码先拨9,然后就是市话号码或长话号码。长话号码就是以区号与市话号码组成。区号就是从100到300中任意得数字串。市话号码就是以局号与分局号组成。局号可以就是455,466,888,552中任意一个号码。分局号就是任意长度为4得数字串。

要求:写出在数据字典中,电话号码得数据条目得定义(即组成)。

答:

电话号码=分机号|外线号码

分机号=7201、、、7299

外线号码=9+[市话号码|长话号码]

长话号码=区号+市话号码

区号=100、、、300

市话号码=局号+分局号

局号=[455|466|888|552]

分局号=4{数字}4

第四章概要设计

1、什么就是软件概要设计?该阶段得基本任务就是什么?

软件概要设计:在需求分析得基础上通过抽象与分解将系统分解成模块,确定系统功能就是实现,即把软件需求转换为软件包表示得过程。

基本任务:

(1)设计软件系统结构(简称软件结构)

a、采用某种设计方法,将一个复杂得系统按功能划分成模块(划分)

b、确定模块得功能。(功能)

c、确定模块之间得调用关系。(调用)

d、确定模块之间得接口,即模块之间传递得信息。(接口)

e、评价模块结构得质量。(质量)

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

a、数据结构设计

b、数据库设计:(概念设计、逻辑设计、物理设计)

(3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划)

(4)评审

2、软件设计得基本原理包括哪些内容?

软件设计得基本原理:

(1)模块化(四个属性:接口、功能、逻辑、状态)

(2)抽象

(3)信息隐蔽

(4)模块独立性(两个定性得度量标准:耦合性与内聚性)

3、衡量模块独立性得两个标准就是什么?它们各表示什么含义?

两个定性得度量标准:耦合与内聚性

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度得一种度量。模块之间联系越紧密,其耦合性就越强,模块得独立性则越差。

内聚性:也称块内联系。指模块得功能强度得度量,即一个模块内部各个元素彼此结合得紧密程度得度量。模块内元素联系越紧密,内聚性越高。

4、模块间得耦合性有哪几种?它们各表示什么含义?

耦合性有六种:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合

无直接耦合:两个模块之间没有直接得关系,它们分别从属于不同模块得控制与调用,它们之间不传递任何信息。(无直接关系)

数据耦合:指两个模块之间有调用关系,传递得就是简单得数据值,相当于高级语言中得值传递。(数据值)

标记耦合:指两个模块之间传递得就是数据结构。(数据结构)

控制耦合:指控制模块调用另一个模块时,传递得就是控制变量,被调用块通过该控制变量得值有选择地执行块内某一功能(控制变量)

公共耦合:指通过一个公共数据环境相互作用得那些模块间得耦合。(一个公式数据环境)

内容耦合:一个模块直接使用另一个模块得内部数据,或通过非正常入口而转入另一个模块内部(内部数据) 5、模块得内聚性有哪几种?各表示什么含义?

模块间得内聚性有6种:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。

偶然内聚:一个模块内得各处理元素之间没有任何联系。

逻辑内聚:模块内执行几个逻辑上相似得功能,通过参数确定该模块完成哪一个功能。

时间内聚:把需要同时执行得动作组合在一起。

通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同得输入数据或产生相同得输出数据。

顺序内聚:一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素得输出就是下一功能元素得输入。

功能内聚:最强得内聚,指模块内所有元素共同完成一个功能,缺一不可。

6、什么就是软件结构?简述软件结构设计优化准则。

软件结构:软件系统得模块层次结构,反映了整个系统得功能实现,即将来程序得控制体系。

软件结构设计优化准则:

a、划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始得软件结构。

b、一个模块得作用范围应在其控制范围之内,且判定所在得模块应与受其影响得模块在层次上尽量靠近

c、软件得深度、宽度、扇入、扇出应适当。

D、模块得大小要适中。

E、模块得控制范围模块得接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。

7、什么就是模块得影响范围?什么就是模块得控制范围?它们之间应该建立什么关系?

模块得影响范围:受该模块内得一个判定影响得所有模块得集合。

模块得控制范围:模块本身及其所有下属模块(直接或间接从属于它得模块)得集合。

一个模块得影响范围应在其控制范围之内,且判定所在得模块应与受其影响得模块在层次上尽量靠近。

8、什么就是"变换流"?什么就是"事务流"?试将相应形式得数据流图转换成软件结构图。

变换流由输入、变换(或处理)、输出三部分组成。某个加工将它得输入流分离成许多发散

得数据流,形成许多加工路径,并根据输入选择其中一个路径来执行这种特征得DFD称为事物流。

9、试述"变换分析","事务分析"得设计步骤。

变换分析:

a、确定DFD中得变换中心。

b、设计软件结构得顶层与第一层-------变换结构。

c、设计中下层模块。(输入模块下属模块得设计,输出模块下属模块得设计,变换模块下属模块得设计,设计得优化)

事务分析:

a、确定DFD中得事务中心与加工路径。

b、设计软件结构得顶层与第一层------事务结构。(接收、发送给支)

c、事务结构中、下层模块得设计、优化工作同变换结构。

附加:

2、已知模块C中得一个判定影响到模块B,如图所示,它违反了SD得设计原则。试问: 可以采用哪些手段对结构图作改进,请说明改进办法并画出改进得结构图。

答:

4、高考录取统分子系统有如下功能:

(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;

(2) 计算录取线分:根据标准分、招生计划文件中得招生人数,计算录取线,存入录取线文件。试根据要求画出该系统得数据流程图,并将其转换为软件结构图。

答:

(1) 数据流图:

(2) 软件结构图:

5、图书馆得预定图书子系统有如下功能: (1) 由供书部门提供书目给订购组。 (2) 订书组从各单位取得要订得书目。

(3) 根据供书目录与订书书目产生订书文档留底。 (4) 将订书信息(包括数目,数量等)反馈给供书单位。 (5) 将未订书目通知订书者。

(6) 对于重复订购得书目由系统自动检查,并把结果反馈给订书者。 试根据要求画出该问题得数据流程图,并把其转换为软件结构图。 答:

(1) 数据流图:

(2) 软件结构图

:

6、在结构化设计过程中,要将数据流图(DFD)映射成系统结构图(SC),分别画出变换型数据流与事物型数据流得映射方式。

答:

变换型事务型

第五章详细设计

1、详细设计得基本任务就是什么?有哪几种描述方法?

详细设计得基本任务:

(1)为每个模块进行详细得算法设计。

(2)为每个模块内得数据结构进行设计。

(3)对数据库进行设计,即确定数据库得物理结构。

(4)其她设计:

a、代码设计

b、输入/输出格式设计。

c、人机对话设计。

(5)编写详细设计说明书。

(6)评审。

描述方法(三种):

a、程序流程图

b、PAD图

C、过程设计语言

2、结构化程序设计基本要求要点就是什么?

a、采用自顶向下、逐步求精得程序设计方法

b、使用三种基本程序控制结构构造程序

1)、用顺序方式对过程分解,确定各部分得执行顺序。

2)、用选择方式对过程分解,确定某个部分得执行条件。

3)、用循环方式对过程分解,确定某个部分重复得开始与结束得条件。

c、主程序员组得组织形式。

3、简述Jackson 方法得设计步骤。

Jsp 方法一般通过以下5个步骤来完成设计:

a、分析并确定输入/出数据得逻辑结构,并用Jackson 结构图表示这些数据结构。

b、找出输入数据结构与输出数据结构中有对应关系得数据单元。

c、按一定得规则由输入、输出得数据结构导出程序结构。

d、列出基本操作与条件,并把它们分配到程序结构图得适当位置。

e、用伪码写出程序。

4、请使用流程图、PAD图各PDL语言描述下列程序得算法。

(1)在数据A(1)-A(10)中求最大数与次大数。

(2)输入三个正整数作为边长、判断该三条边构成得三角形就是等边、等腰或一般三角形。答:

(1)

1)流程图:

2)PAD图

3)PDL语言

定义n1=n2=0

输入A(1)、、、、、、、A(10)

n1=n2=A(1)

while i>10

if A(i)>=n1

n2=n1

n1=A(i)

end while

5、用PAD图描述下面问题得控制结构。

有一个表A(1)、A(2)、、、、、、、、、A(n),按递增顺序排列。给定一个Keyw值,在表中用折半查找。若找到将表位置i送入x,否则将零送到x,同时将Key值插入表中。

算法: 1)置初值H=1(表头),T=N(表尾)。

2)置i=[(H+T)/2](取整)、

3)若Key=A(i),则找到,i送到x;若Key>A(i),则Key在表得后半部分,i+1送入H;

若KeyT为止。

4)查不到时,将A(i),、、、、,A(N)移到A(i+1),、、、、、A(N+1),Key 值送入A(i)中。

6、一个正文文件由若干记录组成,每个记录就是一个字符串,要求统计每个记录中空格字符得个数及文件中空格字符得总个数。要求输出数据格式就是每复制一行这符串后,另起一行打印出这个字符中得空格数,最后打印出文件空格得总个数,用Jackson方法设计该程序结构。

附加题:

1、假设对顾客得订货单按如下原则处理:

将顾客得信用度分三个档次:

欠款时间不超过30天;

欠款时间超过30天但不超过100天;

欠款时间超过100天。

对于上述三种情况,分别根据库存情况来决定对顾客订货得态度。

情况之一(欠款时间≤30天),如果需求数≤库存量,则立即发货,如果需求数>库存量,则只发现有库存,不足部分待进货后补发。

情况之二(30天<欠款时间≤100天),如果需求数≤库存量,则要求先付款再发货,如果需求数>库存量,则不发货。

情况之三(欠款时间>100天),则通知先付欠款,再考虑就是否发货。

试用判定树得形式予以描述(设欠款时间D,需求数N,库存量Q)。

答:

2、用Jackson 图表示下图所示得二维表格:

答:

3、有一过程,其流程如下图所示。

其中b1 、b2、 b3为判定得逻辑条件,s1、 s2为加工处理。试用判定表给予描述。

答:

4、1、有一过程如下图所示得流程,试用判定表予以描述。

1 2 3 4 条件 b1 F T T T

b2 … F F T b3 … F T …

结果 s1 √ √ √

s2 √

第六章实现

1、程序语言有哪些共同特征?

答:程序语言得共同特征(似为特性更符合题意)就是指程序设计语言得语言特性,包括心理特性、工程特性与技术特性三个方面。语言得心理特性对人机通信得质量有主要得影响;语言得工程特性对软件开发成功一否有重要得影响,此外,语言得技术特性也会影响软件设计得质量。

2、在项目开发时选择程序设计语言通常考虑哪些因素?

答:通常要考虑得因素有:

项目得应用领域、软件开发得方法、软件执行得环境、算法与数据结构得复杂性以及软件开发人员得知识等。

3、第4代语言(4GL)有哪些主要特征?

答:4GL得主要特征就是:

(1)友好得用户界面

(2)兼有过程性与非过程性双重特性

(3)高效得程序代码

(4)完备得数据库

(5)应用程序生成器

4、举例说明各种程序设计语言得特点及适用范围?

答:以常见得一些编程语言为例:

FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算

Pascal语言,具有很强得数据与过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它就是第一个体现结构化编程思想得语言。用于描述结构化算法与科学计算,操作系统得编写

C语言:功能强大,支持复杂得数据结构,可大量运用指针,具有丰富灵活得操作运算符及数据处理操作符,它还具有汇编语言得某些特征,使程序运行效率高。可用于许多领域,特别就是在操作系统等方面有较大优势。

Coble语言,它具有极强得数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。

SQL:结构化查询语言,用于对数据库进行存取管理。

汇编语言与Ada语言,主要用于实时处理与编写系统软件。

Prolog、Lisp语言。Lisp就是一种函数型语言,特别适用于组合问题中符号运算与表处理,用于定理证明、树得搜索与其她问题得求解。Prolog就是一种逻辑型语言,它提供了支持知识表示得特性,每一个程序由一组表示事实、规则与推理得句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。

C++、Java语言,就是面向对象得设计语言,用于面向对象得方开发软件。

5、什么就是程序设计风格?为了具有良好得设计风格,应注意哪些方面得问题?

答:程序设计风格就是指一个人编制程序时所表现出来得特点、习惯、逻辑思路等。

要形成良好得程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出与追求效率几个方面加以注意。

第1章_软件工程学概述练习题

第一章练习题 一、判断题 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(√) 2..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开 发实际上就是编写程序代码。(X) 3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是 生成类的模板。(X) 4.快速原型模型可以有效地适应用户需求的动态变化。(√) 5.类是关于对象性质的描述,由方法和数据组成。(√) 6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。(√) 二、名字解释: 1.软件:完成特定功能的程序+数据结构+文档。 2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。 3.软件工程:指导计算机软件开发和维护的一门工程学。 4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时 期。 5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任 务的工作步骤。 6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。它包括可 行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。 7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往 是最终产品能完成的功能的一个子集。 8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。增量方式包括增量开 发和增量提交。增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件; 增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。 9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模 型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。 对象。

软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程, , , . 2. 基于软件的工作方式,软件可以划分为, , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境. 4. 在计算机系统中,软件是, 而硬件是. 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,,. 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤, , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型, , , , , . 14. 软件工程面临的问题有, , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和. 16.基于软件的功能划分可以把软件划分为, ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:, ,和, 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程概述课程作业

软件工程作业与解答 第一章软件工程概述 1.简述软件的发展过程。 答:计算机软件的发展经历了三个阶段:(1)程序设计阶段,约50至 60 年代;(2)程序系统阶段,约60至70年代;(3)软件工程阶段, 约70年代以后。各个时期软件开发的特点见课本第7页表1.3。 2.简述软件的定义及特点。 答:软件是计算机系统中与硬件相互依存的另一部份,它是包括程序、数据及其相关文档的完整集合。 特点见课本第1页至第3页。 3.简述软件的种类。 答:见课本第3页至第6页。 4.什么叫软件危机? 答:在软件发展的第二阶段,随着计算机硬件技术的进步,计算机的容量、速度和可靠性有了明显的提高,生产硬件的成本降低了。计算机价格的下跌为它的广泛应用创造了极好的条件。在这一形式下,要求软件能与之相适应。然而软件技术的进步一直未能满足形式发展提出的要求。 在软件开发中遇到的问题找不到解决的办法,致使问题积累起来,形成日益尖锐的矛盾。软件开发时期所面临的这种状态就是所谓的软件危机。 5.软件危机主要有哪几种表现? 答:见课本第8页(1)、(2)、(3)、(4)。

6.什么叫软件工程? 答:开发、运行、维护和修复软件的系统方法。 7.什么叫软件生存周期? 答:软件从孕育、诞生、成长、成熟到衰亡的过程叫软件生存周期。它 包括制定计划、需求分析、设计、程序编码、测试及运行维护。 8.简单介绍软件开发的瀑布型模型和螺线型模型。 答:见课本第11页至第14页。 第二章系统分析 1.简述系统分析的目标 (1) (2) (3) (4) (5) (6)识别用户要求; 评价系统的可行性; 进行经济分析和技术分析; 把功能分配给硬件、软件、人、数据库和其它系统元素; 建立成本和进度限制; 生成系统规格说明,形成所有后续工程的基础。 2.系统分析过程的第一步就是识别用户要求。要求的识别是系统开发的起点。为此,分析员必须回答哪些问题,才能完成这一步骤? (1) (2) (3) (4) (5) (6) (7) (8)所期望的功能和性能是什么可靠性和质量问题是哪些总的系统目标是什么成本与进度限制如何制造的需求是什么 市场与竞争情况怎样 有效的技术有哪些 将来可能有哪些扩充 3.软件项目的可行性研究主要集中在哪个方面? (1)经济可行性。(2)技术可行性。(3)法律可行性。(4)抉择。

软件工程习题解答第一章概述

软件工程习题解答 第一章概述 1.软件产品的特性是什么? a.软件产品是一种逻辑产品。 b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成 后,复制就产生了大量软件产品。 c.软件产品不会用坏,不存在磨损、消耗问题。 d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。 e.软件费用不断增加,成本相当昂贵。 2.软件产品有几个阶段?各有何特征? 阶段 A.程序设计时代(1946-1956) B.程序系统时代(1956-1968) C.软件工程时代(1968-今) 生产方式个体手工劳动小集团合作生产工程化的生产 工具机器语言、汇编高级语言数据库、开发工具、开发环境、 网络、分布式、面向对象技术开发方法追求编和技巧,追求程序运 行效率 个人技巧,开始提出结构化方法 硬件特征价格贵、存储容量小、运行 可靠性差速度、容量、工作可靠性有明显提 高,价格降低,销售有爆炸性增长 向超高速、大容量、微型化以 及网络化方 软件特征只有程序、程序设计概念, 不重视程序设计方法程序员数量猛增,已意识到软件开 发的重要性,开发技术没有新的突 破,大量软件开发的需求已提出, 开发人员的素质和工程兵的开发技 术不适应规模大、结构复杂的软件 开发,产生了尖锐矛盾,导致软件 危机的产生 开发技术有很大进步,但未能 获得突破性进展,软件价格不 断上升,没有完全摆脱软件危 机 3.什么是软件危机?其产生的原因是什么? 软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。 在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面: a.经费预算经常突破,完成时间一再拖延。 b.开发的软件不通满足用户要求。 c.开发的软件可维护性差。 d. 开发的软件可靠性差。 软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的: a.软件的规模越来越大,结构越来越复杂。 b.软件开发管理困难而复杂。 c.软件开发费用不断增加。 d.软件开发技术落后。 e.生产方式落后。 f.开发工具落后,生产率提高缓慢。

华南理工软件工程随堂练习

1.(单选题) 软件工程的出现主要是由于()。A.程序设计方法学的影响B.其他工程科学的影响C.软件危机的出现D.计算机的发展 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 2.(单选题) 软件工程方法的提出起源于软件危机,其目的应该是最终解决软件的()问题。A.软件危机B.质量保证C.开发效率D.生产工程化 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 3.(单选题) 软件工程学涉及软件开发技术和项目管理等方面的内容,下述内容中()不属于开发技术的范畴。 A.软件工程经济B.软件开发工具 C.软件工程环境D.软件开发方法 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 4.(单选题) ()是将软件生命周期的各个阶段,依线性顺序连接,用文档驱动的模型。A.智能模型B.瀑布模型C.螺旋模型D.喷泉模型 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 5.(单选题) 原型模型是用户和设计者之间的一种交互过程,适用于()系统。 A.需求不确定性较高的B.需求确定的 C.管理信息D.决策支持 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 6.(单选题) 快速原型从设计用户界面开始,首先形成(),然后用户运行界面原行,并就同意什么和不同意什么提出意见。 A.用户使用手册B.系统界面原行 C.界面需求分析说明书D.完善用户界面

答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 7.(单选题) 喷泉模型克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型的开发过程具有()和无间隙。 A.确定性B.迭代性C.可靠性D.风险性 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 8.(单选题) 要开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果精确到小数点后4位,一旦实现并测试完后,该产品将被抛弃。该项目选择()生命周期模型。A.快速原型B.瀑布模型C.喷泉模型D.螺旋模型 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: A. B. C. A. B. C. A. B. C.

《软件工程》第一章软件工程学概述

第一章软件工程学概述 1.1 软件危机 1.1.1 软件的定义 ——定义:软件=“完成特定功能的程序+数据结构+文档” ——特征:(3个)软件是开发的,而不是制造的;软件不磨损,但退化;自定义。 ——发展问题 1.1.2 软件危机的表现 ——定义:在计算机软件的开发和维护过程中所遇到的一系列严重的问题。 ——表现:(6个) (1)对软件开发成本和进度的估计常常很不准确。 (2)软件产品质量较差,可靠性低。 (3)用户对开发出来的软件产品不满意。 (4)软件常常是不可维护的。 (5)软件产品缺少应有的文档资料。 (6)软件产品的供不应求。 1.1.3 软件危机的原因 ——客观原因 ——主观原因 1.2 软件工程 1.2.1 软件工程的概念 ——定义:指导软件开发与维护的工程科学。采用工程的概念、原理、技术和方法来开发和维护软件,综合运用正确的管理技术和最好的技术方法,以经济 地开发出高质量的软件并有效维护它。 IEEE的定义:①软件工程是把系统的、规范的、可度量的途径应用于软件 开发、运行和维护过程,也就是把工程应用于软件;②对这些途径加以研究。 1.2.2 软件工程的基本原理(7个) ——(1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果可以清楚地审查 (6)开发小组成员少而精 (7)承认不断改进软件工程实践的必要性 1.2.3 软件工程方法学:3个要素(方法、工具和过程) ——传统方法学:结构化技术,软件生命周期 ——面向对象方法学:类+对象+继承+消息,软件开发过程更接近人类认知模式 1.3 软件生命周期 1.3.1 软件生命周期的概念 ——定义:一个软件从定义、开发、使用和维护,直至最终被废弃,要经历的漫长的时期称为软件生命周期。

第一章软件工程概述习题及答案

第一章软件工程概述习题 及答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。 18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原 则: , ,和 , 。

软件工程第一二三章习题参考答案

第一章软件工程概述 软件是计算机程序及其有关的数据和文档的结合。 软件危机是指在计算机软件开发和维护时所遇到的一系列问题。 软件危机主要包含两方面的问题:一是如何开发软件以满足对软件日益增长的需求;二是如何维护数量不断增长的已有软件。 软件工程是软件开发、运行、维护和引退的系统方法。 软件工程是指导计算机软件开发和维护的工程学科。软件工程采用工程的概念、原理、技术和方法来开发与维护软件。软件工程的目标是实现软件的优质高产。 软件工程学的主要内容是软件开发技术和软件工程管理。 软件开发方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每一阶段的活动、产品、验收的步骤和完成准则。常用的软件开发方法有结构化方法、面向数据结构方法和面向对象方法等。 习题参考答案: 1.什么是软件危机?为什么会出现软件危机? 答:软件危机是指在计算机的开发和维护过程中所遇到的一系列严重问题。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。 出现软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系统中逻辑件而不是物理部件。管理和控制软件开发过程相当困难。软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。总结如下: 1)取得正确的用户需求和正确地描述需求很困难 2)开发人员对需求的正确理解也有困难 3)常常在没有正确理解之前就仓促开始编程 4)软件项目缺乏有效的组织、管理和内部交流 5)缺乏软件开发方法、模型和工具的支持 6)软件维护的困难性 2.假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件已经完成时再引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。 3.什么是软件工程?它有哪些本质特性?怎样用软件工程消除(至少是缓解)软件危机? 答:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。

软件工程笔记(完整版)

第一章软件工程概述 1.软件危机 (software crisis):是指在计算机软件的开发和维护过程中所遇到的一系列 严重问题。即“两低一高”问题:质量低、效率低、成本高。 软件危机也成为“软件萧条(depression)”或“软件困扰(afflication)” 2.软件危机主要表现 1)开发成本和进度估计不准 2)用户对“已完成的”软件系统不满意 3)软件质量往往靠不住 4)软件常常是不可维护的 5)软件通常没有适当的文档资料 6)软件成本逐年上升 7)软件开发生产率滞后于硬件和计算机应用普及的趋势 3.产生软件危机的原因 1)与软件本身的特点有关 a. 软件不同于硬件,是逻辑部件而不是物理部件 缺乏可见性 难于测试 管理和控制开发过程困难 不会因使用时间过长而被“用坏” 难以维护 b.软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上 升 2)和软件开发与维护的方法不正确有关 a.对软件开发和维护有关的错误认识和作法 忽视软件需求分析的重要性 认为软件开发就是写程序 轻视软件维护 b. 对软件开发过程与方法的认识与应用 软件开发要经历一个漫长的时期(编程占10-20%) 程序仅是完成软件配置的一个组成部分 软件开发方法要有利于软件维护 4.软件的特点 (1)软件是无形的(intangible) (2)软件副本的大批量生产轻而易举 (3)软件业是劳动密集型的 (4)一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件 (5)软件本身很容易修改。但由于它的复杂性,又很难正确地修改。 (6)软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退 化 5.消除软件危机的途径 1)对计算机软件的正确认识 2)认识到软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 3)推广使用成功的软件开发技术和方法

软件工程第一章概述

第一章:概述 目标: 什么是软件工程,为什么它很重要; 开发不同类型的软件系统可能需要不同的软件工程方法; 道德和职业问题对于软件工程的重要性; 介绍3个不同类型的软件系统,这3个系统将作为贯穿全书的例子; 1.1专业化软件开发 一.对于软件工程的一些常见问题 1.什么是软件? 计算机程序和相关文档。软件产品可针对特定客户开发或为通用市场开发。 2.什么是优良软件的特点? 好的软件应具有用户所需的功能与性能,而且应该可维护,可靠,可用。 3.什么是软件工程? 软件工程师关于软件生产的各个方面的工程学科。 4.什么是基本的软件工程活动? 软件描述,软件开发,软件验证以及软件进化。 5.软件工程和计算机科学有何区别? 计算机科学侧重理论和基础,而软件工程则侧重于软件开发和交付的实际活动。 6.软件工程和系统工程有何区别? 系统工程侧重基于计算机系统的开发的所有方面,包括硬件,软件和过程工程。 7.软件工程面临的主要挑战是什么? 不断增长的多样性,减少交付时间以及开发可靠的软件的要求。 8.什么是软件工程的成本? 软件开发成本约占总成本的60%,测试成本占40%。对于定制软件而言,进化成本常常高于开发成本。 9.什么才是最好的软件工程技术和方法? 由于所有的软件项目都必须进行专业化的管理和开发,所以不同的技术应适用于不同类型的系统。例如,游戏开发需要一系列原型,而安全要求极高的控制系统开发需要一个完整的和可分析的描述。因此,你不能单纯的评判一种方法比另一种方法更好。 10.Web给软件工程带来了哪些不同? Web带来了软件服务的可用性,以及开发高品质的基于服务的分布式系统的可能性。基于Web的系统开发极大地促进了编程语言和软件复用的发展。 二.软件产品有以下两类 1.通用软件产品 2.定制软件产品 这两类产品的一个重要区别在于:在通用软件产品中,软件描述由开发者自己完成,而定制软件产品,其软件描述通常是由客户给出,开发者必须按客户要求进行开发。 三.软件除了提供相应的功能外,作为一个产品它还有一系列相关的反映质量的属性。这些属性不直接涉及软件的功能,而是反映软件在执行时的行为以及源程序的结构,组织及相关的文档。软件对用户查询的响应时间和程序代码的可理解性就属于这类属性(有时也称为非

软件工程笔记(完整版)

第一章软件工程概述 1. 软件危机(software crisis):是指在计算机软件的开发和维护过程中所遇到的一系列 严重问题。即“两低一高”问题:质量低、效率低、成本高。 软件危机也成为“软件萧条(depression) ”或“软件困扰(afflication) ” 2. 软件危机主要表现 1 )开发成本和进度估计不准 2 )用户对已完成的”软件系统不满意 3 )软件质量往往靠不住 4 )软件常常是不可维护的 5 )软件通常没有适当的文档资料 6 )软件成本逐年上升 7 )软件开发生产率滞后于硬件和计算机应用普及的趋势 3. 产生软件危机的原因 1 )与软件本身的特点有关 a. 软件不同于硬件,是逻辑部件而不是物理部件 缺乏可见性 难于测试 管理和控制开发过程困难 不会因使用时间过长而被“用坏” 难以维护 b. 软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上升 2 )和软件开发与维护的方法不正确有关 a. 对软件开发和维护有关的错误认识和作法 忽视软件需求分析的重要性 认为软件开发就是写程序 轻视软件维护 b. 对软件开发过程与方法的认识与应用 软件开发要经历一个漫长的时期(编程占10-20%) 程序仅是完成软件配置的一个组成部分 软件开发方法要有利于软件维护 4. 软件的特点 (1) 软件是无形的(intangible ) (2) 软件副本的大批量生产轻而易举 (3) 软件业是劳动密集型的 (4) 一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件 (5) 软件本身很容易修改。但由于它的复杂性,又很难正确地修改。 (6) 软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退 化 5. 消除软件危机的途径 1) 对计算机软件的正确认识 2 )认识到软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员 协同配合、共同完成的工程项目 3 )推广使用成功的软件开发技术和方法

相关主题
文本预览
相关文档 最新文档