软件工程李爱萍作业参考答案最终版修改Word文件下载.docx
- 文档编号:13010075
- 上传时间:2022-10-02
- 格式:DOCX
- 页数:63
- 大小:2.53MB
软件工程李爱萍作业参考答案最终版修改Word文件下载.docx
《软件工程李爱萍作业参考答案最终版修改Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件工程李爱萍作业参考答案最终版修改Word文件下载.docx(63页珍藏版)》请在冰豆网上搜索。
各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。
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%,试计算投资回收期和纯收入。
解:
如下表
年
将来值(元)
(1+n*I)
现在值(元)
累计的现在值
(元)
1
2
3
4
5
2000
1.06
1.12
1.18
1.24
1.30
1886.79
1785.71
1694.92
1612.90
1538.46
3672.50
5367.42
6980.32
8518.78
投资回收期为(6000-5367.42)/1612.90+3=3.39(年)纯收入为8518.78-6000=2518.78(元)
2.5为方便旅客,某航空公司拟开发一个飞机票预定系统。
旅游公司把预定机票的旅客信息(姓名、年龄、工作单位、身份证号码、旅游时间、旅游目的地等)输入进该系统,系统为旅客安排航班,打印出取票通知和账单,旅客在飞机起飞前的3天之内凭取票通知和账单交款取机票,系统校对无误即打印出飞机票给旅客。
请写出开发此系统的问题定义,并通过可行性研究分析此系统的可行性。
问题定义:
飞机票预定系统
主要实现以下功能:
查询功能:
把旅游时间、旅游目的地等输入进该系统,系统显示符合要求的航班。
预定机票:
把预定机票的旅客信息(姓名、年龄、工作单位、身份证号码、旅游时间、旅游目的地等)输入进该系统,系统为旅客安排航班,打印出取票通知和账单,并更新记录。
校对并打印机票:
旅客在飞机起飞前的3天之内凭取票通知和账单交款取机票,系统校对无误即打印出飞机票给旅客。
可行性研究应从经济可行性、技术可行性、操作和社会、法律的角度阐述其可行性,这部分省略……
2.6试为习题2.5写可行性研究报告的主要内容。
(本题略)
第三章
3.1为什么要进行需求分析?
需求分析要经过哪些步骤?
(1)可行性研究阶段粗略了解了用户的需求,甚至还提出了一些可行的方案,但是可行性研究的基本目的是最小的代价在尽可能短的时间内确定问题是否存在可行的解法,因此许多细节都被忽略了,可行性研究并不能代替需求分析,
它实际上并没有准确地回答“系统必须做什么”这个关键问题。
(2)步骤:
1.需求获取:
调查研究。
从分析当前系统包含的数据开始,分析当前信息处
理的方法与存储的不足,用户希望改进的主要问题及其迫切性等。
2.需求提炼:
分析建模。
需求提炼的主要任务是建立分析模型。
把来自用户的信息加以分析,通过抽象建立起目标系统的分析模型。
3.需求描述:
编写SRS。
为了使需求描述具有统一的风格,可以采用已有的且可满足项目需要的模板,也可以根据项目特点和软件开发小组的特点,对标准进行适当的改动,形成自己的SRS模板。
4.需求验证。
由分析员和用户一起对需求分析结果进行严格的审查、验证。
确保需求说明可作为软件设计和最终系统验收的依据。
3.2需求分析阶段的基本任务是什么?
怎样理解分析阶段的任务是决定“做什么”,而不是“怎样做”?
(1)1.确定对系统的综合需求。
分析员和用户双方确定对软件系统的综合要求,具体有功能需求、性能需求、环境需求、接口要求、用户界面需求,另外还有可靠性、安全性、保密性、约束、可移植性和可维护性等方面的需求,这些需求通常可以通过双方交流、调查研究来获取,并达到共同的理解。
2.分析系统的数据需求。
因为绝大多数软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌。
3.建立软件的逻辑模型。
4.编写软件需求规格说明书。
目的是使用户和开发者能对未来软件有共同的理解,明确定义未来软件的需求、系统的构成及有关的接口。
需求说明相当于用户和开发者之间的一份技术合同,是测试验收阶段对软件进行确认和验收的基准,是软件开发的基础。
5.需求分析评审
(2)需求分析实际上是调查、评价以至肯定用户对软件需求的过程,其目的在于精化软件的作用范围,也是分析和确认软件系统构成的过程,以确定未来系统的主要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 李爱萍 作业 参考答案 最终版 修改