第一次作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章《软件工程概述》作业答案
一、名词解释
1.软件
软件是计算机程序以及开发、使用和维护程序所需要的所有文档。
软件是包括程序、数据及其相关文档的完整集合。
2.软件危机
软件生产的进度、数量、质量、成本满足不了社会对软件的需求量和希望的现象,称为“软件危机”。
软件工程
IEEE[IEE93]:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
4.软件生存周期
软件生存周期是指一个软件从提出开发要求开始直到不再使用(报废)为止的整个时期。
5.软件过程模型
软件过程指为获得高质量软件所需要完成的一系列任务以及完成这些任务的工作步骤。
过程还规定了运用的方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施、任务完成的标志等。
软件过程模型也叫软件生存期模型、软件工程范型,是软件过程的一种抽象表示。
二、填空题
1、在信息处理和计算机领域内,一般认为软件是程序、数据和文档的集合。
2、软件生产的发展经历了程序设计时代、程序系统时代和软件工程时代,各时代的生产方式分别是个体、作方式和工程化。
3、软件生存周期的8个阶段分别是问题定义、可行性研究、需求分析、概要设计、详细设计、编码与模块测试、综合测试、维护。
4、软件工程是利用工程化的原理和方法来进行开发、维护和管理软件的一门学科。
5、描述软件开发过程中各种活动如何执行的模型称为软件过程模型。
6、瀑布模型不适应需求可变的软件开发,只有到最后才能见到整个软件系统。
7、软件产品的生产主要是研制,软件产品的成本主要体现在人力成本上。
8、软件工程面临的问题有软件费用、可靠性、可维护性、生产率。
三、单项选择题
1、软件文档是( C )。
A.程序
B.工具
C.文书和资料
D.数据
2、软件是一种( B )性工业产品
A.理论
B.知识(或逻辑)
C.消耗
D.体力
3、与计算机科学的理论研究不同,软件工程是一门( B )的学科。
A.理论性 B.工程性 C.原理性 D.心理性
4、软件工程与计算机科学的性质不同,软件工程着重于( B )
A.理论研究 B.建造软件系统 C.原理探讨 D.原理的理论5、软件工程学科出现的直接原因是( C )。
A.计算机的发展 B.其它工程学科的影响
C.软件危机的出现
D.程序设计方法学的影响
6、软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,以期达到的最终目标是( A )
A.软件开发工程化 B.消除软件危机
C.实现软件可重用
D.程序设计自动化
7、由于软件生产的复杂性和高成本,使大型软件的生成出现危机,软件危机的主要表现包括了下述( D )方面。
①生产成本过高②需求增长难以满足
③进度难以控制④质量难以保证
A.①② B.②③ C.④ D.全部
8、软件的主要结构和功能是在( A )阶段决定的。
A.分析设计
B.编程
C.测试
D.维护
9、有关计算机程序功能、设计、编制、使用的文字或图形资料称为【 B 】。
A.软件
B.文档
C.程序
D.数据
10、软件生成周期模型有多种,下列选项中,【 C 】不是软件生存周期模型。
A.螺旋模型
B.增量模型
C.功能模型
D.瀑布模型
四、简答题
1.软件产品的特点是什么?
●软件是一种逻辑产品,无形态,具有抽象性。
●软件是开发而形成的,无明显的制造过程。
与硬件相比,软件开发更依赖于开发人员的业务素质、智力以及人员的组织、合作和管理。
软件成本集中在开发上,主要反映在人力成本上,而且开发成本难以估计。
●软件不会“磨损”和老化,但存在退化问题。
●大多数软件是定做的,不是通过已有构件组装而成。
●主要靠脑力劳动生产。
●开发和维护成本高。
2.软件生产经历了哪几个时代,各有何特征?
软件生产经历了三个时期:
(1)程序设计时期(1946~1956)软件=程序
主要特征:计算机硬件=计算机
用途少,规模小;不作为商品;
开发者=使用者:自己开发,自己使用。
(2)程序系统时期(1956~1968)软件=程序+说明
主要特征:程序规模增大,多人分工合作。
软件作为商品,即程序设计者≠使用者;
程序开发和使用的文档资料已不可缺少。
(3)软件工程时期(1968~现在)软件=程序+数据+文档
主要特征:按工程管理的方法管理整个软件开发过程。
3.软件危机是如何产生的?其表现形式是什么?试说明产生危机的原因?
大规模集成电路出现后,性能大大提高,推动了计算机的广泛应用,促进了大规模软件系统的设计。
但由于软件开发方法不适应规模较大的项目的开发,因而出现了比计划延迟交付、费用比预算增加很多、功能和质量不能满足用户要求,维护困难等问题,造成了软件危机。
主要表现:
(1)软件开发:
软件开发过程和成本无法有效控制,延迟交付且成本逐年上升;
软件开发生产率提高的速度跟不上需求的增加;
用户需求模糊,用户对已完成的软件系统不满意;
没有确保质量的有效措施,软件产品的质量靠不住。
(2)软件维护:
软件常常是不可维护的(缺乏文档或文档质量)。
维护花费的时间和费用占整个软件开发组织的60%以上。
原因:
(1)客观原因:
软件规模越来越大,结构越来越复杂,使得开发和管理都变得困难。
但是:软件是手工劳动,是智力产品----生产率低。
软件是逻辑实体,出错容易,纠错困难。
软件的复杂性使得仅靠人的智力难以驾驭。
(2)主观原因
开发方式:认为开发软件就是写程序。
组织方式:作坊式的生产方式;开发无计划、开发过程无规范、开发过程难控制。
用户方面:对软件需求描述不精确。
开发人员方面:对用户需求的理解与用户本来愿望有差异,相互之间的信息交流不及时、不准确、有误解。
4.阐述软件工程的定义和目标,试说明软件工程是如何克服软件危机的。
目标:在给定成本、进度的前提下,开发出满足用户需求的高质量的、易于维护的软件产品。
克服危机的方法:软件工程是从技术和管理两方面利用一套科学的技术和管理方法进行软件的开发,从而提高软件质量和生产率。
5.什么是软件生存周期?软件生成周期把软件产品的分成哪几个阶段?各阶段的任务什
是么?
软件生存周期由8个阶段组成:
1、问题定义:确定要求解决的问题是什么?
2、可行性研究:确定在时间和资源的约束条件下,能否完成指定的任务?包括:技术可行性、经济可行性、法律可行性、社会可行性。
若可行,则制定项目所需费用、资源、时间的开发计划。
3、需求分析:准确地确定“软件系统必须做什么”,即明确目标系统必须具备的功能和对系统的约束。
4、概要设计:确定在总体上应该怎样实现目标系统,包括系统的软件结构设计、接口设计和数据结构设计。
5、详细设计:对软件结构中的模块进行精确描述—算法设计。
6、编码及模块测试:把模块算法转换成特定程序设计语言的正确的、容易理解、容易维护的程序模块。
7、综合测试:发现和纠正程序中的错误,保证软件功能和性能符合需求规格说明书规定的要求。
包括集成测试、确认测试和系统测试。
8、软件维护:软件投入使用后继续对软件的查错、纠错和改进。
使系统持久地满足用户的需要。
包括:改正性维护、适应性维护、完善性维护、预防性维护。
6.什么是软件工程过程模型?瀑布、增量、原型和螺旋模型各自有什么特点?
软件过程模型也叫软件生存期模型、软件工程范型,是软件过程的一种抽象表示。
瀑布模型:严格按照软件生存期的阶段划分顺序和各阶段的目标、任务、文档的要求来进行开发。
该模型以文档为驱动。
每一活动结束后,通过严格的阶段复审和确认,得到一致、完整、准确的良好文档,以“冻结”这些文档为该阶段结束的标志,并作为下一阶段活动的唯一基础;以每一步的正确性和完整性来保证最终系统的质量。
增量模型:先按瀑布模型开发一个满足基本要求的系统,然后根据用户在使用中提出的新需求在进一步完善形成新的版本,这个过程不断重复,直到最终的完善产品。
原型模型:先根据用户对需求的描述,通过软件工具构造一个软件系统的原型来描述目标系统的主要功能,让用户进行评价,并根据用户意见进行改进。
随着不断实验、评价和
修改,最后使得在功能上完全满足用户需求。
一般情况下,软件系统原型不是最终的目标系统,它只是在功能上描述了用户需求,忽略了对软件质量特性的要求,避开了管理对质量的控制。
螺旋模型:螺旋模型是一个风险驱动模型,将开发过程分为几个螺旋周期,每个螺旋周期大致与瀑布模型相同。
每个螺旋周期可分为四个工作步骤:(1)制定计划:确定软件目标,选定实施方案,明确开发限制条件;(2)风险分析:分析所选方案,识别风险和消除风险;(3)开发实施:实施软件开发;(4)用户评估:评价开发工作,提出修改意见。
第二章可行性研究习题
一、名词解释
可行性研究:用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。
技术可行性:在现有技术条件下估算项目开发的风险。
经济可行性:从成本和经济效益考虑系统是否值得开发。
成本效益分析:是从经济角度论证开发一个特定的新系统开发是否划算,是决定是否投资开发新系统的依据。
二、填空
1、可行性研究的目的不是去开发一个软件项目,而是研究这个项目是否能够开发,是否值得开发。
2、可行性研究可以从技术可行性、经济可行性、社会可行性三方面进行论证。
3、可行性研究中,成本-效益分析的目的是从经济角度论证开发一个特定的新系统开发是否划算。
4、可行性研究阶段可能形成的两个文档是可行性研究报告和项目开发计划。
5、经济可行性一般考虑的问题包括:成本和效益。
6、社会可行性一般包括:
是否存在侵权、违法、责任以及各种与法律相抵触的问题
系统运行方式是否在组织内部行得通
现有管理制度、人员素质、操作方式对用户是否可行
三、单项选择题
1、在软件的可行性研究主要从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于(B )的研究。
A.经济可行性
B.技术可行性
C.操作可行性
D.社会可行性
2、制定软件项目开发计划的目的对软件开发过程、进度、资源进行(D )。
A.组织和管理
B.分析与估算
C.设计与测试
D.规划与调整
3、下列不属于成本-效益分析的度量指标是(C )。
A.货币的时间价值
B.投资回收期
C.性质因素
D.纯收入
4、制定软件项目开发计划属于软件开发周期的第(B )阶段。
A.1 B.2
C.3
D.4
5、技术可行性要解决( D )。
A.存在侵权否
B.成本-效益问题
C.运行方式可行
D.技术风险问题
四、简答题
1、可行性研究的目的和任务是什么?
目的:用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。
任务:(1)对项目可能的各种实现方案的可行性进行论证,确定项目是否应该开发,以减少和降低软件开发的技术风险和投资风险。
(2)若项目应该开发,则需要进行开发方案的评价,并制定项目开发计划。
成本效益分析对软件项目是否开发有何影响?
成本效益分析是从经济角度论证开发一个特定的新系统开发是否划算,是决定是否投
资开发新系统的依据。
3、成本-效益分析的目的是什么?可用哪些指标进行度量?
成本/效益分析的目的是从经济角度论证开发一个特定的新系统开发是否划算,是决定是否投资开发新系统的依据。
(1)、货币的时间价值:货币的价值本身随时间的增加而产生增值:
(2)、投资回收期:累计的经济效益等于最初的投资所需的时间。
(3)、纯收入:在整个生存周期内系统的累计经济效益(折合现在的钱)与投资之差。
(4)、投资回收率----投资的年利率。