软件工程课后题答案Word下载.docx
《软件工程课后题答案Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程课后题答案Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
![软件工程课后题答案Word下载.docx](https://file1.bdocx.com/fileroot1/2022-10/19/c6df6a92-5fc4-4508-a784-88b4b9521374/c6df6a92-5fc4-4508-a784-88b4b95213741.gif)
(2)软件的生产不存在明显的制造过程;
(3)在软件的运行和使用的过程中,不会存在像硬件那样的机械磨损及老化问题;
(4)由于对计算机系统的依赖性,对软件的通用性造成了一定的影响;
(5)软件的开发方式还没有完全脱离手工开发方式,还不能完全采用组装的方式进行软件开发;
(6)作为提高工作效率的逻辑产品,本身具有复杂性;
(7)成本相当昂贵;
(8)相当多的软件工作设计社会因素。
3软件有哪些种类
1.按功能特征进行划分
(1)系统软件。
(2)支撑软件。
(3)应用软件
2.按规模大小进行划分
微型、小型、中型、大型、甚大型、、极大型
4什么是软件危机?
答:
是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
5什么是软件工程?
有哪些本质特性?
怎样用软件工程消除软件危机?
是指导计算机软件开发和维护的一门工程学科。
特性略。
技术措施和管理措施消除软件危机。
6软件工程的三要素;
方法、工具和过程。
7.结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。
使软件开发更加模式化,工程化,从而提高软件开发的效率和封装性。
8.CASE的研究和CASE产品的开发是近年来软件工程领域的特点之一。
请列举数种你所熟悉的CASE工具或环境,综述它们的概念和优缺点,并分析其实现方法。
rose、“数据字典”(工具)
第二章
1.什么是软件生命周期?
它有哪些活动?
软件生命周期是指软件产品从考虑其概念开始到交付使用,直至最终退役为止的整个过程。
软件生存周期可以划分为软件定义、软件开发和运行维护3个时期
2.每一种过程模型的优点和缺点分别是什么?
瀑布模型:
优点:
它在软件发展的早期,为开发人员提供了一种开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件的开发方法和工具的研究和使用,从而提高了大型软件项目开发的质量和效率。
缺点:
(1)在软件开发的初始阶段指明全部需求是非常困难的,有时甚至是不现实的
(2)需求一旦确定,用户和软件项目负责人要等一段时间(经过设计、实现、测试、运行个阶段)才能得到一份软件的最初版本。
(3)瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会大大增加软件开发的工作量;
而且当管理人员以文档的完成情况来评估项目完成进度时,往往会产生错误的结论,因为后期测试阶段发现的问题会导致返工,前期完成的文档只不过是一个未经返工修改的初稿而已。
原型模型:
原型系统能够逐步明确用户需求,可以适应需求的变化性,而且由于用户参与到软件开发过程,能够及早发现问题、降低软件开发的风险,加快软件产品的形成,降低软件开发的成本。
(1)对于大型软件项目,如果不经过系统分析并对系统进行整体划分,直接用原型来
模拟系统功能是十分困难的。
(2)对于计算量大、逻辑性较强的程序模块,原型法很难真正构造出来供用户评价。
(3)对于批处理系统,其大部分处理是内部进行的,应用原型方法有一定的困难。
(4)原型的快速构造特点导致项目文档容易被忽略,给原型的后期改进和维护造成困难。
(5)在原型建立中的许多工作进展会被浪费掉,特别是对于丢弃型原型策略。
在一定程度上,增加了系统的开发成本,降低系统的开发效率。
螺旋模型:
喷泉模型:
可以提高软件项目开发效率,节省开发时间。
由于各个开发阶段的重叠性,开发人员的管理和阶段生成的文件管理存在困难。
增量模型:
(1)是能在较短时间内,向用户提交可完成部分工作的产品。
(2)逐步增加产品功能,可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
增量的力度选择也很难把握,有时候很难将客户的需求映射到适当规模的增量上。
构件组装模型:
这大大提高了软件开发的效率,而且构件模型允许多个项目同时开发,降低了费用,提高了可维护性。
由于存在多种构件标准,缺乏通用的构件组装结构标准,如果自行定义标准的话,会引入较大的风险;
构件可重用性和软件系统高效性之间不易协调,需要权衡;
RUP:
RUP具有很多长处:
提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。
它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。
但同时它也存在一些不足:
RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;
此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。
可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。
3.软件瀑布模型为什么要划分阶段?
各个阶段的任务是什么?
在软件开发早期,开发只是被简单地分成编写代码和修改代码两个阶段。
往往在拿到项目后立刻编写程序,然后调试通过后直接交付给用户使用。
如果应用中出现错误,或者有新的要求,都需要重新修改代码。
这种小作坊式的软件开发方法有明显的弊端,如缺乏统一的项目规划、不太重视需求的获取和分析、对软件的测试和维护考虑不周等,这些都会导致软件项目的失败。
概念阶段:
计划、需求分析
开发阶段:
设计、编码、测试
维护阶段:
运行维护
4.什么是原型?
试述原型模型在软件生命周期中的应用。
原型一般是指对某种产品进行模拟的初始版本或者原始模型,在工程领域中具有广泛应用。
由于软件规模和复杂性越来越大,软件开发在需求获取、技术实现手段选择、应用环境适应等方面面临巨大考验。
为了应对早期需求获取的不易以及后期需求的变化,人们选用原型方法构造软件系统。
5.为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性?
6.RUP模型的思想是什么?
RUP模型融合了哪些传统生命周期模型的特点?
迭代增量开发思想;
(1)面向对象:
从技术角度,RUP开发是基于面向对象技术,即它使用和支持面向对象技术的概念和方法。
RUP要求建立的设计模型、实现模型都是对象模型。
(2)USECASE驱动
(3)以架构为中心;
(4)螺旋上升式的开发过程;
(5)以质量控制和风险管理为目标;
(6)与UML配置;
(7)适用性强;
7.举例说明哪些项目的开发适用于原型模型或螺旋模型,哪些不适于采用这两种模型。
螺旋模型适合于大型软件的开发,应该说它是最为实际的方法,它吸收了软件工程“演化”的概念,使得开发人员和客户对每个演化层出现的风险有所了解,继而做出应有的反应。
不适用:
小型软件。
大型软件项目;
含有对于计算量大、逻辑性较强的程序模块;
第三章
1.可行性研究的任务是什么?
可行性研究的任务是以最小的代价在尽可能短的时间内确定问题是否能够解决。
简单地说,可行性研究的最终结果是决定项目“做还是不做”而不是“如何做”。
2.可行性研究有哪些步骤?
1.确定系统规模和目标
2.研究目前正在使用的系统
3.导出新系统的高层逻辑模型
4.重新定义问题
5.导出和评价选择的解法
6.推荐行动方针
7.草拟开发计划
8.书写计划任务书文档并提交审查
3.成本-效益分析可用哪些指标进行度量?
如果用比率分析法,有以下几种指标:
1,相关指标分析法。
产值成本率=成本/产值*100%;
销售收入成本率=成本/销售收入*100%;
成本利润率=利润/成本*100%
2,构成比率分析法,
直接材料费用比率=直接材料成本/产品成本*100%
直接人工费用比率=直接人工费用/产品成本*100%
制造费用比率=制造费用/产品成本*100%
4.项目开发计划有哪些内容?
引言(目的、背景、参考文献、术语);
项目概述(功能、条件、运行环境、产品、程序、文档、服务、验收标准、实施计划、工作任务分解、进度、预算、人员)
5.按照题意设计如下流程图:
计算机房产管理系统:
要求系统有分房、退房、调房、咨询和统计功能。
房产科把住户申请表输入系统后,系统首先检查申请表的合法性,不合法的拒绝接受,合法的申请表根据申请表类型(分、调、退房)分别进行处理。
分房申请处理:
根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数;
当分数高于给定值时,按分数高低将申请单插到分房队列的适当位置,输出核准后的分房单。
分房处理:
每月月底进行分房。
从分房文件中读出空房信息,然后根据住户的实际情况,从住房标准文件中读出住房标准进行校核,如果符合,则分配住房给该住户,打印出住房分配通知单,并登记相应的住户信息。
退房,调房处理类似。
咨询、查询:
对空房、住房、房租情况进行查询和统计。
6.为方便储户,某银行拟开发计算机储蓄系统。
储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;
如果是取款,系统计算利息并印出利息清单给储户。
写出问题定义并分析此系统的可行性,画出系统流程图。
7.为方便旅客,某航空公司拟开发一个机票预订系统。
旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知单和账单交款取票,系统校对无误即打印出机票给旅客。
这个系统的可行性是在一个理想的环境下,比如:
乘客不满意安排的座位需要调换,或者需要改机票;
这些种种因素都没考虑进去。
技术上可行:
使用现有的技术能实现这个系统;
经济上可行:
这个系统的经济效益可以超过他的开发成本;
操作上可行:
操作方式简单,但是有缺陷;
社会、政策允许的可行性:
可行。
8.某计算机系统投入使用后,5年内每年可节省人民币2000元。
假设系统的投资额为5000元,年利率为12%。
试计算投资回收期和纯收入。
解:
第四章
1.什么是需求工程?
需求工程包括哪些活动?
需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。
它通过合适的工具和记号系统地描述待开发系统,及其行为特征和相关约束,形成需求文档;
并对用户不断变化的需求演进给予支持。
一个良好的需求开发过程应该包括需求获取、需求分析与建模、编写需求规格说明书和需求评审4个主要活动。
2.需求分为哪些层次?
业务需求、用户需求和功能需求
3.指出下列需求描述的不当之处,并进行改写,使之符合好需求的特性。