软件工程课后作业汇总

软件工程课后作业汇总
软件工程课后作业汇总

开 始

p g

q 停 止

T T

F

F

图1

软件工程课后作业汇总

软件设计”内容部分的课后作业参考答案

1.图1所给出的程序流程图代表一个非结构化的程序。

1)请说出图1所示的程序流程图所代表的是非结构化程序的原因;

2)通过设计,请你将其改造为一个与之等价的结构化程序(注:用N-S 图表示)。

答:1)图1所示的程序的循环控制结构有两个出口,显然 不符合结构化程序的定义,因此是非结构化程序。

2)等价的结构化程序的N-S 图如下图a 所示:

2.请写出图2所示程序流程图的PDL 语言代码。 答:PDL 语言代码如下:

BEGIN LOOP :IF P1 THEN S1

IF P2 THEN

S2

IF P3 THEN

S3

IF P4 THEN

S4

GOTO LOOP ELSE GOTO EXIT

ENDIF

p

T

F

g

(NOT p )OR (not q ) 图a

P1 S1 P2 T

F S2 P3 T

F S3

P4 T

F S4

T F OUT IN

图2

ELSE

GOTO EXIT

ENDIF ELSE GOTO EXIT ENDIF ELSE

GOTO EXIT

ENDIF

END

3.图3(不完整的顺序图)描述了图书管理系统中读者借书的一般过程。已知借书过程中各对象之间传递的消息有:1)递过借书证;2)递过书;3)插入借书证;4)借书证有效;5)读条形码;6)条形码有效:7)确认事务;8)检查借书证;9)借书证有效;10)送回条形码;11)检查条形码;12)条形码有效;13)确认事务。请分析实际借书过程,然后在图3中补画以上消息。 答:补画消息后的完整顺序图如图3所示

4.某校根据教师的职称与类别(专职、兼职)来决定其课时津贴标准。本校专职教师:教授50元,副教授40元,讲师30元,助教20元;外聘兼职教师:教授60元,副教授50元,讲师40元,助教30元。请用判定表表示上述问题。 答:教师课时津贴判定表如下表(见下页)所示。 规 则

1

2

3

4

5

6

7

8

读 者 管理员 工作站 条形码阅读器 服务器

图3

递过借书证

插入借书证

检查借书证 借书证有效

借书证有效

递过书

读条形码

送回条形码 检查条形码 条形码有效

条形码有效 确认事务

确认事务

教 授 T F F F T F F F 副教授 F T F F F T F F 讲 师 F F T F F F T F 助 教 F F F T F F F T 专 职 T T T T F F F F 60 × 50 × × 40 × × 30 × × 20

×

“需求分析”内容部分的课后作业参考答案

1.请根据以下问题描述,画出领料业务的数据流图。

车间填写领料单,交给仓库要求领料,库长根据用料计划审批领料单,未批准的领料单退回车间,已批准的领料单送往仓库保管处,由仓库管理员查阅库存账。若账上有货则通知车间前来领料,否则将缺货情况通知采购员。

答:领料业务的数据流图如下图所示

2.请画出关于某图形用户界面的状态图。

该图形用户界面具有一个主菜单、一个包含文件打开命令的文件菜单项、并且每一个菜单项都包含退出命令。假设每次只能打开一个文件。

答:该图形用户界面的状态图如下图所示

车间 审批领料单 查阅库存账

采购员 领料单 无效领料单 已批准领料单

缺货通知 领料通知

用料计划 用料数据 库存账 库存数据

初态标志 输入 主菜单

文件菜单项

提交

结束

文件打开

打开文件

关闭文件 待打开文件未找到

退出

退出

3.请将下列类或对象之间的关系区分为继承关系、聚集关系和关联关系。

1)人与学生2)车与司机3)公司与职员4)车与奔驰车

5)老师与教授6)班级与学生

答:题中类或对象之间的关系分别为:1)继承;2)关联;3)聚集;4)继承;5)继承;6)聚集

4.请用形式化语言定义下述文字描述中的“电话号码”。

某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不为0;校外电话号码又分为本市电话号码和外地电话号码两类,拨校外电话需先拨0,如果是本市电话再接着拨8位电话号码(第1位不为0),如果是外地电话则先拨3位区码,再拨8位电话号码(第1位不为0)。

答:电话号码的形式化语言定义如下。

〈电话号码〉∷=〈校内电话号码〉|〈校外电话号码〉

〈校内电话号码〉∷=〈非零数字〉+〈3位数字〉

〈校外电话号码〉∷=〈本市电话号码〉|〈外地电话号码〉

〈本市电话号码〉∷=〈数字零〉+〈8位数字〉

〈外地电话号码〉∷=〈数字零〉+〈3位数字〉+〈8位数字〉

〈非零数字〉∷=1|2|3|4|5|6|7|8|9

〈数字零〉∷=0

〈3位数字〉∷={数字}3

〈8位数字〉∷=〈非零数字〉+〈7位数字〉

〈7位数字〉∷={数字}7

〈数字〉∷=0|1|2|3|4|5|6|7|8|9

5.请为下述牙科诊所管理系统建立相应的用例模型(注:用用例图

表示)和对象模型(注:用类图表示)。

王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员等3个职员。王大夫需要一个软件系统来管理预约。

当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定的时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。

系统能按病人姓名和按日期进行查询,能显示记录的病人数据和预约信息,还能从病人记录中获知病人的电话号码。接待员可以取消预约,可以打印出前两天预约但尚未接诊的病人清单,还可以打印出关于所有病人的每天和每周的工作安排。

答:牙科诊所管理系统的用例模型

如图1所示。

牙科诊所管理系统的对象模型如图2所示。

牙科诊所管理系统 完成预约

查询预约

更新预约 取消预约 打印 工作安排

打印 工作安排

访问预约 登记表

职员

牙医

图1 用例图

工作安排

病人记录

每周工作安排

每日工作安排 病人清单 预约登记表

病人

牙科诊所

预约

·* 1··* 1··* 1··* 1··* 1··*

图2 类图

“软件测试”内容部分的课后作业

1.作教材第332页上的第14.6、14.7和14.8题。

2.下图给出了用盒图描述的一个程序的算法,请用条件测试法(即逻辑覆盖法)设计测试用例,要求做到语句覆盖和路径覆盖。

输入A ,B ,C ,D

X=A-B

X=A+B

Y=C+D

Y=C-D

输出X ,Y

答:

(1)实现语句覆盖的测试用例如下

① 覆盖THEN 部分的语句,即使得条件(A>0)and (B>0)和条件(C>A )or (D

均为真

测试输入:A=1, B=1, C=2, D=0 预期输出:X=2, Y=2

② 覆盖ELSE 部分的语句,即使得条件(A>0)and (B>0)和条件(C>A )or (D

均为假

测试输入:A=0, B=-1, C=0, D=1 预期输出:X=1, Y=1 (2)实现路径覆盖的测试用例如下

① 覆盖使得条件(A>0)and (B>0)和条件(C>A )or (D

测试输入:A=-1, B=-2, C=-3, D=3 预期输出:X=1, Y=0

② 覆盖使得条件(A>0)and (B>0)为假和条件(C>A )or (D

测试输入:A=-1, B=-2, C=1, D=-3 预期输出:X=1, Y=4

F

(A>0)and (B>0)

T

(C>A )or (D

F T

③ 覆盖使得条件(A>0)and (B>0)为真和条件(C>A )or (D

测试输入:A=1, B=1, C=0, D=2 预期输出:X=2, Y=2

④ 覆盖使得条件(A>0)and (B>0)和条件(C>A )or (D

3.以下是一段用PDL 语言书写的程序。请认真阅读该程序,然后按题后要求完成相应任务。 Start Input(A, B, C, D)

If (A>0) and (B>0) Then X=A+B Else X=A-B End

If (C>A) or (D

Print(X,Y) Stop 要求:(1)画出该程序的流图,并计算其Cyclomatic 复杂性度量;

(2)用基本路径测试法给出测试路径; (3)为各测试路径设计测试用例。

答:

(1)程序流图如下所示;Cyclomatic 复杂性度量为5

1 2

3 4 6 7

9 11 12

5

8 10

(2)测试路径有5条,分别为;

path1:1→2→3→4→6→7→9→11→12

path2:1→2→5→6→7→9→11→12

path3:1→2→3→5→6→7→9→11→12

path4:1→2→3→4→6→7→8→9→11→12

path5:1→2→3→4→6→7→8→10→11→12

(3)测试用例为:

path1:取A=1,B=1,C=2,D=2(任意)

期望结果:X=2,Y=0

path2:取A=0,B=1(任意),C=2,D=0(任意)

期望结果:X=-1,Y=2

path3:取A=1,B=0,C=2,D=0(任意)

期望结果:X=1,Y=2

path4:取A=1,B=1,C=0,D=-1

期望结果:X=2,Y=1

path5:取A=1,B=1,C=0,D=2

期望结果:X=2,Y=2

4.以下是一求最小值的程序,其中data是数组,n是data数组的长度。

int Min(int n, int data[ ])

{

int k, j;

k=0;

for ( j=1; j

if ( data [j] < data[k] ) k=j;

return k;

}

要求:(1)画出该程序的流图,并计算其Cyclomatic复杂性度量;

(2)用基本路径测试法给出测试路径;

(3)为各测试路径设计测试用例。

答:

(1)程序流图如下所示;Cyclomatic复杂性度量为3

k=0;j=1

j

N

Y

data[j]< data[k]

Y

k=j N

②③④

(2)测试路径有3条,分别为;

path1:①→②→③

path2:①→②→④→⑤→⑥→②→…

path3:①→②→④→⑥→②→…(3)测试用例为:

path1:取n=1,data[0]=1

期望结果:k=0

path2:取n=2,data[0]=1,data[1]=0

期望结果:k=1

path3:取n=2,data[0]=0,data[1]=1

期望结果:k=0

软件工程作业及参考答案(版)

软件危机与软件工程 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 . 质量保证 ② A . 需求分析 B . 可行性研究 C 总体设计 D 模块化设计 ③ A . 文档编制 B . 运行维护 C . 测试 D . 验收 &软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型 C .螺旋模型 D .对象模型 9.描述软件生存周期的瀑布模型包括计划、 (A ) 、设计、编码、测试、维护等阶段。其中,设计阶段又可 以分成(B )和(C )两个步骤。 A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计 ②代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计 10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务? 可行性研究 软件工程 1软件危机是指在开发和( A .运行 B .设计 2 ?造成软件危机的原因是: A. 用户使用不当 C .硬件不可靠 )过程中所遇到的一系列严重问题。 B .对软件的错误认识 D ?缺乏好的开发方法和手段

软件项目管理大作业

软件项目管理大作业 软件项目购销合同 本合同由下述双方签署: 甲方: 联系电话: 乙方: 联系电话: 根据《中华人民共和国合同法》及其他有关规定,甲乙双方在平等、自愿、公开、

诚实信用的基础上就XXXXXX储蓄软件项目事宜,经甲乙双方友好协商如下: 第一条储蓄软件项目实施所需的条件(人工及人工费由甲方负责,但技术和质量全部由乙方负责),所进行项目开发所需的事宜明细见附件,附件与本合同不可分割,具有同等法律效力。 第二条产品交付甲方验收前所有质量问题由乙方负责,当交付甲方验收合格后,所有利害由甲方负责。 第三条交货方式双方见面交易。合同为证。 第四条交货时间为2014年9月17日,交货地点xxx。对于产品的数量、质 量等问题,全部由乙方负责。 第五条合约执行内容 经甲乙双方协商约定,整个软件项目设计由乙方提供专业人员和技术进行开发,甲方不用参与,按照乙方技术进行开发且监工由乙方负责,开发完成后,应达到国家验收标准,当与国家标准发生冲突时,按国家标准执行,测试达到标准后,视为乙方工程全部验收合格。如未达到验收标准时,所人工费由乙方负责承担,如能补救,由乙方尽快全部负责,直至达到验收标准。 第六条补充说明 乙方计算的全部材料已全部包含软件项目的全部,甲方不再支付任何费用,经乙方设计与预算得出以上内容与附件包含的内容外,不再有任何增项费用,如有乙方全部承担。 第七条双方职责 1、甲方职责 甲方负责协调乙方与同期作业的其他工程之间的关系(作业时间、作业面等)。 2、乙方职责 (1)乙方负责交付工程的可靠性、安全性,如因未按规定施工造成甲方工期延误、财产损害等严重问题,一切责任由乙方承担。

软件项目管理课后习题答案

软件项目管理案例教程习题答案 第0章软件项目管理概述 1、项目集成管理是什么? 项目集成管理是在项目的整个生存期内,协调项目管理其他各管理知识域,将项目管理的方方面面集成为一个有机整体,保证项目的总目标的实现。项目集成管理从一个宏观的角度将项目作为一个整体来考察。包括的过程包括:项目章程编制、初始项目范围编制、项目计划编制、指导与管理项目执行、项目监控、集成变更控制、项目结束等过程。 项目管理的目标在于对项目中的不同组成元素进行正确高效的协调,他不是所有项目组成元素的简单相加。 2、项目管理的9大知识领域是什么? 1)项目集成管理 2)项目范围管理 3)项目时间管理 4)项目成本管理 5)项目质量管理 6)项目人力资源管理 7)项目沟通管理 8)项目风险管理 9)项目采购管理 l 为了成功实现项目的目标,首先必须设定项目的工作和管理范围,即项目的范围管理。 l 为了正确实施项目,需要对项目目标进行分解,即对项目的时间、质量、成本三大目标进行分解,即项目时间管理、项目成本管理、项目质量管理 l 项目实施过程,需要投入人力、物力:项目人力资源管理、项目采购管理 l 为了项目的团队人员的管理,让大家有一致的目标,需要沟通,即项目的沟通管理l 当然,项目实施过程会遇到各种风险,因此需要进行风险管理,即项目的风险管理 l 当项目管理一定要协调各个方面,不能只顾局部利益和细节,因此需要集成管理,即项目的集成管理 3、项目的成本管理包括哪些过程?

包括成本估算、成本预算、成本控制等过程 4、项目管理的5个过程组是什么? 启动过程组、计划过程组、执行过程组、控制过程组、收尾过程组 5. 判断下面活动哪些是项目? 上课 野餐活动√ 集体婚礼√ 社区保安 开发微软的操作系统√ 每天的卫生保洁 神州飞船计划√ 二、判断题 1. 项目开发过程中可以无限制地使用资源。(X ) 2. 项目具有暂时的特征。(√) 3. 项目管理核心的三角形是范围、进度、风险。(X ) 4. 过程管理与项目管理在软件组织中是两项很重要的管理,项目管理用于保证项目的成功,而过程管理用于管理最佳实践。(√ ) 5. 运作管理(Operation Management)是从宏观上帮助企业明确和把握企业发展方向的管理。(√ ) 第1章软件项目初始过程 一、名次解释 1.项目章程 项目章程是指项目执行组织高层批准的一份以书面签署的确认项目存在的文件,包括对项目的确认、对项目经理的授权和项目目标的概述等。严格地说,姓名章程包括队开始一个项目或项目阶段的正式授权,但是通常而言,在每个项目阶段都对项目进行一次授权的做法并不多见。 项目章程是一个正式的文档,它正式的认可一个项目的有效性,并指出项目的目标和管理方向。它授权项目经理来完成项目,从而保证项目经理可以组织资源用于项目活动。项目章程由项目发起人、出资人或者高层管理人员签发。

软件工程试题及答案

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.合同书-------------------------------------------------------------------2 2.生存期-------------------------------------------------------------------3 3.需求规格说明------------------------------------------------------------4 目标-----------------------------------------------------------------4 用户类和特征-------------------------------------------------------4 运行环境------------------------------------------------------------4功能需求------------------------------------------------------------5确定执行者---------------------------------------------------5 确定用例-----------------------------------------------------5 用例文档-----------------------------------------------------6非功能需求----------------------------------------------------------8故障处理-------------------------------------------------------------8 4.任务分解------------------------------------------------------------------8 5.项目估算------------------------------------------------------------------9 直接成本-------------------------------------------------------------9 间接成本------------------------------------------------------------12 估算的误差----------------------------------------------------------12 6.进度计划-----------------------------------------------------------------13 活动顺序-------------------------------------------------------------13 甘特图----------------------------------------------------------------14

软件工程课后作业

第1次作业 路松峰20140062 2018-07-29 10:32:40

软件产品的开发基本上是线性顺序进行的。 2、什么是模型? 模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。 二、判断题 1、在软件开发中采用原型系统策略的主要困难是成本问题。 正确 2、软件过程改进也是软件工程的范畴。 正确 三、选择题 1、包含风险分析的软件工程模型是( D )。 A.喷泉模型 B.瀑布模型 C.增量模型 D.螺旋模型 2、软件过程是(C )。 A.特定的开发模型 B. —种软件求解的计算逻辑 C.软件开发活动的集合 D.软件生命周期模型 3、CMM模型将软件过程的成熟度分为5个等级。在(B )使用定量分析来不断地改进和管理软件过程。 A.管理级 B.优化级 C.定义级 D.可重复级 第3次作业 路松峰_20140062 2018-07-29 10:34:34 一、简答题 1、需求分析有哪三种方法? 面向功能分析、面向数据分析、面向对象分析 2、什么是面向数据结构方法? 面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导岀软件的结构。

二、判断题 1、需求评审人员主要由开发人员组成,一般不包括用户。 错误 2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。正确 三、选择题 1、增量模型本质上是一种( C )。 A.线性顺序模型 B.整体开发模型 C.非整体开发模型 D.螺旋模型 2、需求工程的主要目的是( C )。 A.系统开发的具体方案 B.进一步确定用户的需求 C.解决系统是“做什么的问题” D.解决系统是“如何做的问题” 3、在E-R模型中,包含以下基本成分(D )。 A.数据、对象、实体 B.控制、关系、对象 C.实体、关系、控制 D.实体、属性、关系 第4次作业 路松峰_20140062 2018-07-29 10:35:04 一、简答题 1、面向对象分析模型的五个层次是什么? 五个层次:类与对象层,属性层,服务层,结构层,主题层 2、对象的五个特点是什么?

软件项目管理案例教程习题答案

软件项目管理案例教程习题答案 5. 判断下面活动哪些是项目? 上课 野餐活动√ 集体婚礼√ 社区保安 开发微软的操作系统√ 每天的卫生保洁 神州飞船计划√ 二、判断题 1. 项目开发过程中可以无限制地使用资源。(X) 2. 项目具有暂时的特征。(√) 3. 项目管理核心的三角形是范围、进度、风险。(X) 4. 过程管理与项目管理在软件组织中是两项很重要的管理,项目管理用于保证项目的成功,而过程管理用于管理最佳实践。(√) 5. 运作管理(Operation Management)是从宏观上帮助企业明确和把握企业发展方向的管理。(√) 一、选择题 1. 项目建议书是哪个阶段开发的文档(C ) A. 项目执行阶段 B. 项目结尾阶段 C. 项目初始阶段 D. 项目计划阶段 2. 项目章程(A ) A. 明确了项目经理 B. 确定了项目的质量标准 C. 明确了团队的纪律 D. 定义了项目需求 3. 对于风险比较大的项目,最好选择(C )生存期模型, A. 瀑布模型 B. 原型 C. 螺旋模型 D. V模型 4. 开发项目建议书的目的是为了(B ) A. 验收 B. 竞标或者签署合同 C. 编写计划 D. 跟踪控制项目 三、判断题 1. 项目经理是一个综合的角色(√) 2. 软件项目都是需要签署合同的(√) 3. 增量式模型可以避免一次性投资太多带来的风险(√) 4. 项目章程类似一个项目授权书(√) 5. 在甲乙合同项目中,提出需求的一方是乙方(X) 6. 如果是内部项目,在项目初始阶段可以不提交招标书(√)

第二章-范围计划 一、选择题 1. 需求分析是回答系统必须(A)的问题 A. 做什么 B. 怎么做 C. 何时做 D. 为谁做 2. WBS(工作分解结构)非常重要,因为下列原因,除了(D ) A. 帮助组织工作 B. 防止遗漏工作 C. 为项目估算提供依据 D. 确定团队成员责任 3. 项目范围(C) A. 只在项目开始时重要 B. 在授权项目的合同或者其他文件得以批准后就不再重要了 C. 从项目概念阶段到收尾阶段都应该加以管理和控制 D. 是在项目执行阶段通过变更控制步骤进行处理的问题 4. 为了有效地管理项目,应该将工作分解为更小的部分,以下各项中,哪一项不能说明任务应该分解到什么程度?(B ) A. 可以在80小时内完成 B. 不能再进一步进行逻辑细分了 C. 可由一个人完成 D. 可以进行实际估算 5. 范围变更是指(A ) A. 修改技术规格 B. 对范围陈述进行修订 C. 对批准后的WBS进行修改 D. 以上都不是 6. 下面哪个不是需求管理的过程(A ) A. 需求设计 B. 需求获取 C. 需求分析 D. 需求变更 7. 下面那个不是创建WBS的方法(C ) A. 自顶向下 B. 自底向上 C. 控制方法 D. 模版指导 8. 任务分解可以(B),它是范围变更的一项重要输入 A. 提供项目成本估算结果 B. 提供项目范围基线 C. 规定项目采用的过程 D. 提供项目的关键路径 9. 范围基线由(B)组成

软件工程在线作业及答案

1.第1题 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。 A.经济可性性 B.技术可行性 C.操作可行性 D.法律可行性 您的答案:A 题目分数:2.5 此题得分:2.5 2.第2题 为了提高模块的独立性,模块内部最好是()。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 您的答案:C 题目分数:2.5 此题得分:2.5 3.第3题 Jackson方法是一种面向()的方法。 A.对象 B.数据结构 C.数据流 D.控制流 您的答案:B 题目分数:2.5 此题得分:2.5 4.第4题 需求分析阶段研究的对象是软件项目的()。 A.用户需求 B.合理要求 C.模糊要求 D.工程要求 您的答案:A 题目分数:2.5 此题得分:2.5

5.第5题 面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B.详细设计 C.软件设计 D.编码 您的答案:B 题目分数:2.5 此题得分:2.5 6.第6题 程序控制的三种基本结构中,()结构可提供多条路径选择。 A.反序 B.顺序 C.循环 D.分支 您的答案:D 题目分数:2.5 此题得分:2.5 7.第7题 下列属于黑盒测试的是()。 A.基本路径测试 B.条件测试 C.循环测试 D.等价划分 您的答案:D 题目分数:2.5 此题得分:2.5 8.第8题 软件设计一般分为总体设计和详细设计,它们之间的关系是()。 A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构 您的答案:A 题目分数:2.5 此题得分:2.5

9.第9题 好的软件结构应该是()。 A.高耦合,高内聚 B.低耦合,高内聚 C.高耦合,低内聚 D.低耦合,低内聚 您的答案:B 题目分数:2.5 此题得分:2.5 10.第15题 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。 A.传递性 B.继承性 C.复用性 D.并行性 您的答案:B 题目分数:2.5 此题得分:2.5 11.第16题 软件项目管理是()一切活动的管理。 A.需求分析 B.软件设计过程 C.模块控制 D.软件生命周期 您的答案:D 题目分数:2.5 此题得分:2.5 12.第17题 一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。 A.外部耦合 B.数据耦合 C.控制耦合 D.内容耦合 您的答案:C

网上购物系统软件项目管理大作业

《网上购物系统》项目管理目录 1.合同 (1) 1.1合同双方 (1) 1.2供应的商品和服务 (1) 1.3时间地点 (1) 1.4专利成果分配 (1) 1.5验收标准 (1) 1.6报酬计算 (1) 1.7违约处理 (1) 2. 生存期 (2) 3.需求管理 (3) 3.1 功能需求 (4) 3.2确定用例 (4) 3.3用例文档 (5) 3.4非功能需求 (6) 3.4.1 性能需求 (6) 3.4.2安全性需求 (7) 3.4.3故障处理 (7) 4.任务分解 (7) 5.项目估算 (9) 5.1直接成本 (9) 5.2间接成本 (9) 5.3网上购物系统总成本 (10) 6. 进度计划 (10) 7.质量计划 (12) 7.1组织机构 (12) 7.2职责 (14) 7.2.1项目负责人的职责 (14) 7.2.1质量保证人员的职责 (14) 7.3质量目标 (14) 7.4质量策略 (15) 7.5软件质量保证活动 (15) 7.5.1审计 (15) 8.风险计划 (15) 8.1风险种类 (16) 8.1.1资金风险 (16) 8.1.2人员风险 (16) 8.1.3时间风险 (16) 8.1.4技术风险 (17) 8.1.5进度风险 (17) 8.2风险控制 (18)

8.2.1风险的化解 (18) 8.3风险监控 (18) 9.团队管理 (18) 9.1项目组织结构 (19) 9.2团队沟通管理 (19) 10.项目结束 (20) 14.1项目终止 (20) 14.2结束计划 (20) 14.3项目收尾 (20)

1.合同 1.1合同双方 甲方:胡某某 乙方:盛某某 1.2供应的商品和服务 供应的软件:乙方为甲方提供所需的网上购物系统 提供的服务:乙方为甲方提供所需的日常维护和服务器管理。 提供的文档:乙方在交付软件时提供详细的软件规格说明书和使用文档。 安装服务:乙方为甲方提供软件的安装。 公文处理:乙方负责将甲方提供的公文资料加载入系统并进行分类。 维护协议:当甲方在使用该产品时,在正常操作的情况下出现BUG或系统错误,乙方免费为甲方提供修复服务以保障软件的正常使用。当由于甲方的错误使用等非软件原因导致出现故障,乙方同样提供修复服务。由于甲方拥有该软件的源代码所有权,因此甲方需要承担部分维修和进一步开发的责任。当软件需要新的功能拓展或改版升级时,由双方共同协商决定。 1.3时间地点 6月10日上午9:00在河北省沧州市黄骅市 1.4专利成果分配 该软件是由甲方向乙方定制,甲方拥有该软件的版权,乙方不能将该软件的任何版本卖个其他客户。软件提交时,项目源代码的所有权自动移交到甲方,乙方不得擅自对源代码进行修改。 1.5验收标准 乙方在开发过程中必须遵守ISO 12207关于软件生命周期和文档的标准。 1.6报酬计算 软件总价为2万元。合同签订后,甲方向乙方支付1万元定金。项目的第二个月,乙方按计划时间表完成需求分析、系统分析、设计和完成系统的基本框架后,甲方向乙方支付0.5万元。该系统完成后,甲方进行验收测试,在签字验收后完成后,甲方向乙方支付全款。 1.7违约处理 任何一方违反本协议导致本协议无法继续履行的,违约方需赔偿守约方违约金人民币2万元,该违约金不足以弥补守约方实际损失的,违约方应赔偿守约方所有实际损失。 甲方法人代表:胡某某

软件工程课后作业

路松峰_ 2018-07-29 10:32:40 一、简答题 1.什么是软件工程 软件工程是关于软件生产的各个方面的工程学科。 二、判断题 1、软件危机的主要表现是软件需求增加,软件价格上升。 / 正确 2、软件就是程序,编写软件就是编写程序。 错误 三、选择题 1、用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为( A )工具。 A. CASE C. CAM D. CAD 2、在下列选项中,( C )不是软件的特征。 A.系统性与复制性 B.可靠性与一致性 C.有形性与可控性 D.抽象性与智能性 ) 3、软件工程的三要素是( B ) A.技术、方法和工具 B.方法、工具和过程 C. 方法、对象和类 D.过程、模型和方法

第2次作业 路松峰_ 2018-07-29 10:33:32 一、简答题 … 1、快速原型模型的主要优点是什么 软件产品的开发基本上是线性顺序进行的。 2、什么是模型 模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。 二、判断题 1、在软件开发中采用原型系统策略的主要困难是成本问题。 正确 2、软件过程改进也是软件工程的范畴。 · 正确 三、选择题 1、包含风险分析的软件工程模型是( D )。 A.喷泉模型 B.瀑布模型 C.增量模型 D.螺旋模型 2、软件过程是( C )。 A.特定的开发模型 B.一种软件求解的计算逻辑 C.软件开发活动的集合 D.软件生命周期模型 3、CMM模型将软件过程的成熟度分为5个等级。在(B )使用定量分析来不断地改进和管理软件过程。

… 第3次作业 路松峰_ 2018-07-29 10:34:34 一、简答题 1、需求分析有哪三种方法 面向功能分析、面向数据分析、面向对象分析 ) 2、什么是面向数据结构方法 面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导出软件的结构。 二、判断题 1、需求评审人员主要由开发人员组成,一般不包括用户。 错误 2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。正确 三、选择题 ;

软件项目管理案例教程(第四版)课后习题答案

项目管理案例教程(第四版)习题及答案 第一章软件项目管理概述 一、填空题 1、敏捷模型包括4个核心价值,对应12个敏捷原则。 2、项目管理包括(启动过程组)、(计划过程组)、(执行过程组)、(控制过程组)、(收尾过程组)5个过程组。 二、判断题 1、搬家属于项目。(对) 2、项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的永久性的努力。(错) 3、过程管理目的是要让过程能够被共享、复用,并得到持续的改进。(对) 4、项目具有临时性的特征。(对) 5、日常运作存在大量的变更管理,而项目基本保持连贯性的。(错) 6、项目开发过程中可以无限制地使用资源。(错) 7、(对)参见教材p20 三、选择题 1、下列选项中不是项目与日常运作的区别的是(C) A. 项目是以目标为导向的,日常运作是通过效率和有效性体现的。 B. 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。 C.项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。 D.项目是一次性的,日常运作是重复性的。 2、以下都是日常运作和项目的共同之处,除了(D) A.由人来做 B.受限于有限的资源 C.需要规划、执行和控制 D.都是重复性工作 3、(A) 4、下列选项中属于项目的是(C) A.上课 B.社区保安 C.野餐活动 D.每天的卫生保洁 5、下列选项中正确的是(C) A.一个项目具有明确的目标而且周期不限 B.一个项目一旦确定就不会发生变更 C.每个项目都有自己的独特性 D.项目都是一次性的并由项目经理独自完成 6、(B)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。 A.过程 B.项目 C.项目群 D.组合 A.人力资源管理 B.项目管理 C.软件项目管理 D.需求管理 7、(c) 8、下列活动中不是项目的是(C) A.野餐活动 B.集体婚礼 C.上课 D.开发操作系统 9、下列选项中不是项目的特征的是(C) A.项目具有明确的目标 B.项目具有限定的周期 C.项目可以重复进行 D.项目对资源成本具有约束性

《软件工程》试题及参考答案(第6套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

网上购物系统软件项目管理大作业

网上购物系统软件项目管 理大作业 Revised by BLUE on the afternoon of December 12,2020.

《网上购物系统》项目管理目录

1.合同 合同双方 甲方:胡某某 乙方:盛某某 供应的商品和服务 供应的软件:乙方为甲方提供所需的网上购物系统 提供的服务:乙方为甲方提供所需的日常维护和服务器管理。 提供的文档:乙方在交付软件时提供详细的软件规格说明书和使用文档。 安装服务:乙方为甲方提供软件的安装。 公文处理:乙方负责将甲方提供的公文资料加载入系统并进行分类。 维护协议:当甲方在使用该产品时,在正常操作的情况下出现BUG或系统错误,乙方免费为甲方提供修复服务以保障软件的正常使用。当由于甲方的错误使用等非软件原因导致出现故障,乙方同样提供修复服务。由于甲方拥有该软件的源代码所有权,因此甲方需要承担部分维修和进一步开发的责任。当软件需要新的功能拓展或改版升级时,由双方共同协商决定。 时间地点 6月10日上午9:00在河北省沧州市黄骅市

专利成果分配 该软件是由甲方向乙方定制,甲方拥有该软件的版权,乙方不能将该软件的任何版本卖个其他客户。软件提交时,项目源代码的所有权自动移交到甲方,乙方不得擅自对源代码进行修改。 验收标准 乙方在开发过程中必须遵守ISO12207关于软件生命周期和文档的标准。 报酬计算 软件总价为2万元。合同签订后,甲方向乙方支付1万元定金。项目的第二个月,乙方按计划时间表完成需求分析、系统分析、设计和完成系统的基本框架后,甲方向乙方支付万元。该系统完成后,甲方进行验收测试,在签字验收后完成后,甲方向乙方支付全款。 违约处理 任何一方违反本协议导致本协议无法继续履行的,违约方需赔偿守约方违约金人民币2万元,该违约金不足以弥补守约方实际损失的,违约方应赔偿守约方所有实际损失。 甲方法人代表:胡某某 乙方法人代表:盛某某

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

第一章练习题 一、填空题 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、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件项目管理案例教程(第三版)课后复习题答案40517

第一章 二、判断题 1、搬家属于项目。(√) 2、项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的永久性的努力。(×) 3、过程管理就是对过程进行管理,目的是要让过程能够被共享、复用,并得到持续的改进。(√) 4、项目具有临时性的特征。(√) 5、日常运作存在大量的变更管理,而项目基本保持连贯性的。(×) 6、项目开发过程中可以无限制地使用资源。(×) 三、选择题 1、下列选项中不是项目与日常运作的区别的是(C) A. 项目是以目标为导向的,日常运作是通过效率和有效性体现的。 B. 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。 C.项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。 D.项目是一次性的,日常运作是重复性的。 2、下列选项中最能体现项目的特征(C) A.运用进度计划技巧B.整合围与成本C.确定期限D.利用网络进行跟踪3、以下都是日常运作和项目的共同之处,除了(D) A.由人来做B.受限于有限的资源C.需要规划、执行和控制D.都是重复性工作 4、项目经理的职责不包括(D) A.开发计划 B.组织实施 C.项目控制 D.提供资金 5、下列选项中属于项目的是(C) A.上课 B.社区保安 C.野餐活动 D.每天的卫生保洁 6、下列选项中正确的是(C) A.一个项目具有明确的目标而且周期不限 B.一个项目一旦确定就不会发生变更 C.每个项目都有自己的独特性 D.项目都是一次性的并由项目经理独自完成 7、(B)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。 A.过程 B.项目 C.项目群 D.组合 8、(B)是一系列伴随着项目的进行而进行,目的是确保项目能够达到期望结果的一系列管理行为。 A.人力资源管理 B.项目管理 C.软件项目管理 D.需求管理 9、下列活动中不是项目的是(C) A.野餐活动 B.集体婚礼 C.上课 D.开发操作系统 10、下列选项中不是项目的特征的是(C) A.项目具有明确的目标 B.项目具有限定的周期 C.项目可以重复进行 D.项目对资源成本具有约束性 第二章 二、判断题 1、项目初始阶段甲方为软件开发方,乙方为顾客。(×) 2、项目招标对于一个项目的开发是必需的,即便项目是部项目。(×)

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析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.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

图书管理系统-软件项目管理大作业

图书管理系统项目管理 2016年6月22日 目录 1.合同管理------------------------------------------------------------------2 2.生存期--------------------------------------------------------------------4 3.需求管理 3.1 软件需求管理过程 ---------------------------------------------------5 3.1 需求概述 ---------------------------------------------------5 3.2 目标 --------------------------------------------------------5 3.4 功能需求 -------------------------------------------------- 5 3.8 编写用例文档 ----------------------------------------------7 4.任务分解---------------------------------------------------11 4.1 任务清单 -----------------------------------------------------------11 4.2 WBS---------------------------------------------------------------14

(完整版)《软件工程》作业及答案

t h e i 《软件工程》作业及答案 1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产 率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系 统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。 软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上 升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念, 在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件 工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能 在设计阶段清除它呢?”你怎么反驳他? 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具 有另一种文化背景的人创造产品。 消除软件危机的途径:为了消除软件危机,首先应该对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在 计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。1-6 什么是软件过程?它与软件工程方法学有何关系? 答: 软件过程是为了获得高质量软件所需要完成的一系列任务的框架, 它规定了完成各项任务的工作步骤。软件工程方法学包含软件过程。1-7 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增 量模型和螺旋模型的优缺点,说明每种模型的适用范围。 答: 生命周期模型简洁地描述软件过程,规定了把生命周期划分成哪些阶段及各个阶段执行顺序。 瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户 真正需要的。 快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用 户反馈意见的办法,获取用户的真实需求。 增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。 风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风 险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。 快速原型模型:适合小型软件; 螺旋模型:适合内部开发的大规模软件项目。2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面 研究目标系统的可行性? 答: 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定 问题是否能够解决。至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。 2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。答: 电话号码=[校内电话|本市电话|外地电话] 非零数字字符=[1|2|3|4|5|6|7|8|9] 校内电话=非零数字字符+3{数字}3本市电话=0+非零数字字符+7{数字}7外地电话=0+区码+非零数字字符+7{数字}73-1 为什么要进行需求分析?通常对软件系统有哪些需求?答: 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。确定对系统的综合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、接口需求;6、约束;7、逆向需求;8、将来可以提出的要求,分析系统的数据要求。3-2 怎样与用户有效地沟通以获取用户的真实需求? 答: 与用户沟通获取需求的方法:访谈;面向数据流自顶向下求精;简易的应用规格说明技术;快速建立软件原型 4-2 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应 遵守哪些准则? 答: 在开发大型软件系统的过程中应该使用形式化说明技术。应用形式化方法的准则:(1)应该选用适当的表示方法。(2)应该形 式化,但不要过分形式化。 (3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。 (5)不应该放弃传统的开发方法。(6)应该建立详尽的文档。(7)不应该放弃质量标准。(8)不应该盲目依赖形式化方法。(9)应该测试、测试再测试。(10)应该重用 7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总 共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了 25个错误(第二个月改正了10个错误),MTTF=15h 。要求:(1) 根据上述数据确定MTTF 与测试时间之间的函数关系,画出 MTTF 与测试时间τ的关系曲线。在画这条曲线时做了什么假设?(2) 为做到MTTF=100h ,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中? 答: (1)所做假设:1)单位长度里的错误数近似为常数;2)失效率正比于软件中剩余的错误数,而平均无故障时间与剩余的错误数成反比. 3)发现的每一个错误都立即正确地改正了.(2)由Shooman 公式:MTTF=I T /(K*(E T -E C (T))) 其中,I T =104,MTTF 1=10,n 1=15,MTTF 2=15,n 2=25。得:MTTF 1=I T /(K*(E T -E C (T 1)))10=10000/(K*(E T -15))MTTF 2=I T /(K*(E T -E C (T 2)))15=10000/(K*(E T -25)) (1)解得程序中固有的错误总数E T =45,此外K=100/3。(2)设MTTF=100,有 100=10000/((100/3)*(45-x))