软件工程李爱萍-作业参考答案-最终版修改
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1.1什么是软件?软件和程序的区别是什么?
答:⑴软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。软件的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。
⑵软件不是程序,程序是软件的一部分。程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。它是由软件开发人员设计和编码的。程序执行时一般要输入一定的数据,也会输出运行的结果。没有相关文档,仅有程序是不能称之为软件产品的。
1.2什么是软件生存周期?划分生存周期的主要原则是什么?
答:(1)软件的生存周期是指某一软件项目被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。
(2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。
1.3什么是软件危机?它有哪些主要表现?为什么会产生软件危机?
答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
(2)主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费预算经常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了解以及开发人
员和用户又未能及时交换意见,导致已完成的软件不能满足用户的需要;软件产品
质量差,可靠性得不到保证;软件产品可维护性差;软件成本在计算机系统总成本
中所占的比例逐年上升,软件的发展跟不上硬件的发展;软件开发生产率提高的速
度远远跟不上计算机应用速度普及深入趋势,软件发展跟不上用户的要求。
(3)产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也与软件开发人员在开发和维护时采用的生产方式、方法、技术有关。软件是计算机系统中
的逻辑部件,软件产品往往规模庞大,结构复杂。给软件的开发和维护带来客观的
困难;软件开发的管理困难。由于软件规模大、结构复杂、又具有无形性,导致管
理困难,进度控制困难,可靠性无法保证;软件开发费用不断增加,维护费用急剧
上升,直接威胁计算机应用的扩大;软件开发技术落后;生产方式落后;开发工具
落后,生产效率提高缓慢。另外软件开发人员忽视需求分析的重要性,轻视软件维
护也是造成软件危机的原因。
1.4什么是软件工程?怎样利用软件工程消除软件危机?
答:(1)软件工程是指导计算机软件开发和维护的一门学科
(2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序” 的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法;要有良好
的组织、严密的管理,各类人员要相互配合,共同完成任务,充分认识软件开发不是某种个体劳动的神秘技巧;应该开发和使用好的软件工具,从而有效提高软件生产率。采用“工程化”的思想做指导来解决软件研究中面临的困难和混乱。
1.5何谓面向对象软件工程?简述它和传统软件工程的区别与联系?
答:(1)以面向对象程序设计为基础的软件工程。
(2)传统软件工程是以结构化程序设计为基础,而面向对象软件工程是以面向对象程序设计为基础。与面向过程的软件工程的开发思想相比,面向对象开发方法不再是以功能划分为导向,而是以对象作为整个问题分析的中心,围绕对象展开系统的分析与设计工作。在开发过程方面,面向对象软件工程和传统软件工程一样也是把软件开发划分为分析、设计、编码和测试等几个阶段,但各个阶段的具体工作不同,除了在编码阶段使用的语言不同外,面向对象软件工程为待开发软件确定“类与对象”一般在需求分析阶段进行,设计阶段则主要完成对象内部的详细设计;而在传统软件工程中,将软件设计划分为“总体设计”和“详细设计”,分别完成软件的总体结构图的设计和各个模块内部算法的详细设计。即:传统软件工程开发过程包括需求分析、总体设计、详细设计、面向过程的编码和测试;面向对象软件工程开发过程包括需求分析与对象抽取、对象详细设计、面向对象的编码和测试。
1.6什么是软件生存周期模型?试比较本章介绍的四种模型的优缺点,说明每种模型的使用范围
答:(1)软件生存周期模型即为软件开发模型,是描述软件开发过程中各种活动如何执行的模型,是软件过程、活动、任务的结构框架。
2.1 在软件开发早期阶段为什么要进行可行性研究?可行性研究的任务是什么?应该从哪几个方面研究目标系统的可行性?
答:(1)避免或者减轻项目开发后期可能出现的困境。
(2)其主要任务是,首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,必须分析几种可能解法的利弊,从而判定原定系统的目标和规模是否现实,系统完成后带来的效益是否大到值得投资开发这个系统的程度。
(3)经济可行性、技术可行性、操作可行性、法律可行性。
2.2成本—效益分析可用哪些指标进行度量?
答:成本方面包括开发成本和运行维护成本;效益方面包括经济效益和社会效益,经济效益可以用货币的时间价值、投资回收期、纯收入来度量。
2.3有人认为,只懂技术的分析员不一定能圆满完成可行性研究的任务。你同意这种看
法吗?为什么?
答:同意。因为可行性研究的任务包括三个方面,除了技术可行性之外,还需要进行经济可行性、操作可行性、社会和法律方面的可行性研究,而只懂技术的分析员对其他方面的研究有可能不满足用户的要求,所以只懂技术的分析员不一定能圆满完成可行性研究的任务。
2.4在【例 2.2】中,把投资改为 6000 元,每年节约金额改为 2000 元,年利率为
6%,试计算投资回收期和纯收入。
解:如下表
8518.78-6000=2518.78(元)
2.5为方便旅客,某航空公司拟开发一个飞机票预定系统。旅游公司把预定机票的旅客
信息(姓名、年龄、工作单位、身份证号码、旅游时间、旅游目的地等)输入进该
系统,系统为旅客安排航班,打印出取票通知和账单,旅客在飞机起飞前的 3 天