软件工程课后题答案.docx
- 文档编号:9804838
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:40
- 大小:782.35KB
软件工程课后题答案.docx
《软件工程课后题答案.docx》由会员分享,可在线阅读,更多相关《软件工程课后题答案.docx(40页珍藏版)》请在冰豆网上搜索。
软件工程课后题答案
第一章
1简述软件的发展过程。
共经历了四个阶段;
第一阶段:
(20世纪50年代初期到60年代初期的十余年)计算机系统开发的初期。
第二阶段:
(20世纪60年代中期到70年代中期的十余年)软件产品和“软件作坊”的概念开始出现。
软件开发人员不再像早期阶段那样只因个人工作需要而开发,而是为了用户更好地使用计算机。
第三阶段:
(20世纪70年代中期到80年代末期)分布式系统嵌入“智能”;硬件价格下降,软件价格急剧上升,导致了软件危机的加剧。
第四阶段:
(20世纪80年代末期开始)强大的桌面系统和计算机网络迅速发展。
2简述软件的定义和特点。
定义:
软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。
特点:
(1)是一种逻辑实体,具有抽象性;
(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.指出下列需求描述的不当之处,并进行改写,使之符合好需求的特性。
(1)产品应在不少于每60秒的正常周期内提供状态信息。
(2)HTML分析器可以产生HTML标记错误报告,帮助HTML入门者快速解决问题。
(3)产品应瞬间在文本中的显示和隐藏不可打印字符间切换。
好的需求应具有的特性能对一些需求描述的不当之处进行改写,使之符合好的需求特性。
4.对于一个小型图书馆管理系统,试给出非功能需求的描述。
软件的非功能性需求包括:
可靠性、可用性、有效性、可维护性和可移植性。
其中,在可靠性方面可以考虑平均无故障时间(MeanTimeBetweenFailures,MTBF)、平均修复时间(MeanTimetoRepair,MTTR)是多少,复制和故障转移的方案是什么,系统出现故障时是否需要手动干预,系统的安全性如何等。
可用性方法可以考虑系统是否为用户带来不适当的负担(如需要特殊浏览器等),系统是否每天24小时,每年365天不间断提供服务等。
5.需求工程过程包括哪些主要活动
需求开发过程应该包括需求获取、需求分析与建模、编写需求规格说明书和需求评审4个主要活动。
6.有哪两种主要的需求分析模型它们的主要思想是什么
7.需求规格说明书的主要作用是什么应该包括哪些主要内容
作用:
(1)作为用户方和开发方之间的合同,为双方相互了解提供基础。
(2)反映问题的结构,作为系统设计和编码的依据。
(3)作为测试和验收目标系统的依据。
内容:
用户可以通过需求规格说明书检查需求描述是否满足原来的期望。
设计人员根据软件需求规格说明书的描述了解所需开发软件的功能和性能,以及开发软件时必须满足的约束,将其作为软件设计的依据。
测试人员根据软件需求规格说明书中对产品的描述,设计测试计划、测试用例和测试过程。
产品发布人员根据软件需求规格说明和用户界面设计编写用户手册和帮助信息
8.试建立一张需求评审的检查表。
客户需求调查表
1.收集公司的相关信息,比如公司名、地址、网站、联络人的详细资料、电子邮件地址以及电话号码。
2.在这个渗透测试项目中您的关键目标是什么
3.确定渗透测试类型(包含或者不包含特定标准):
黑盒测试(或外部测试)
白盒测试(或内部测试)
测试前事先通知
测试前不通知
包含社会工程学
不包含社会工程学
调查员工背景信息
使用虚假的员工信息
包含拒绝服务攻击
不包含拒绝服务攻击
渗透业务合作伙伴的系统
4.总共需要测试多少台服务器、工作站和网络设备
5.贵公司的基础设施架构支持什么操作系统技术
6.需要测试什么类型的网络设备防火墙、路由器、交换机、调制解调器、负载平衡器、IDS、IPS,还是其他类型的设备
7.有没有什么灾难恢复计划如果有的话如何操作
8.当前网络有没有安全管理员在管理
9.有没有什么特定的工业标准需要遵循的如果有,请列出来。
10.该项目的联络人是谁
11.该项目的时间周期是多久以周或天为单位。
12.该项目的预算是多少
13.请列出所有其他的需求。
9.需求管理有哪些主要活动各有什么作用
主要包括需求变更控制、需求版本控制、需求跟踪和状态跟踪等活动
10.为什么要进行需求跟踪如何建立需求跟踪矩阵需求跟踪矩阵有什么作用
1为了管理需求,需要维护需求的可跟踪性信息。
2,矩阵的第一列列出需求规格说明书中每一项需求的标号,矩阵的每一行显示了这一行所代表的需求依赖的其他需求、设计、代码和测试用例。
3
(1)能够完整地定义需求之间的各种关系,并提供可视化的表示方式。
(2)在一个需求发生变更时,系统能够按照所定义的需求跟踪链,跟踪到所有受影响的需求。
第五章
1.简述面向数据流分析方法的基本思想。
“分解”和“抽象”;
2.简述数据流图分解时的注意事项。
上层可分解得快些(即分解成的子数据处理个数多些),这是因为上层是综合性描述,对可读性的影响小。
而下层应分解得慢些。
在不影响可读性的前提下,应适当多分解成几部分,以减少分解层数。
3.数据字典的作用是什么它有哪些基本内容分解应自然,概念上要合理、清晰。
作用:
数据字典作为分析阶段的工具,有助于改进分析人员和用户间的通信,进而消除很多的误解,同时也有助于改进不同开发人员之间的通信;
内容:
数据字典的内容主要是对数据流图中的数据项、数据流、加工逻辑、数据存储和外部实体
4.根据以下描述的业务过程画出库存管理的数据流图。
根据车间发来的产品入库单做登入库账处理后存入库存账。
对销售科发来的产品出库单,在查阅库存账后,如果库存数量足够,则做登出库账处理,否则将出库单退回销售科,并向生产科发出缺货通知。
5.某仓库管理系统按照以下步骤进行信息处理:
(1)保管员根据当日的出库单和入库单通过出入库处理修改库存台账。
(2)根据库存台账由统计打印程序输出库存日报表。
(3)必要进行查询时,可利用查询程序,在输入查询条件后,到库存台账去查找,并显示查询结果。
试按上述过程画出数据流图。
6.某银行的计算机储蓄系统功能是:
将储户的存户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名﹑住址﹑存款类型﹑存款日期﹑利率等信息,并打印出存款单给储户;如果是取款,系统计算清单给储户。
请用数据流图描绘该功能的需求,并建立相应的数据字典。
7.某厂对部分职工重新分配工作的政策是:
年龄在20岁以下、初中文化程度者脱产学习;高中文化程度者当电工。
20岁至40岁之间,初中文化程度,男性当钳工,女性当车工;大学文化程度都当技术员。
年龄在40岁以上者,初中文化程度当材料员,大学文化程度当技术员。
请用结构化语言﹑判定表或判定树描述上述问题的加工逻辑。
第六章
1.什么是面向对象方法与传统软件开发方法相比,面向对象方法有什么优点
是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法
优点:
1.符合人们对问题的认识习惯
2.增强问题域与最终软件系统之间的衔接
3.易于维护和复用
4.易于开发大型软件产品
2.UML与面向对象方法的关系是什么
UML是在总结面向对象技术应用实践的基础上;
3.UML的内容包括哪些部分它的特点是什么
UML由视图(Views)、模型元素(ModelElements)、图(Diagrams)等部分组成。
(1)统一标准
(2)面向对象
(3)可视化、表达能力强
(4)独立于过程。
(5)易掌握、易用
4.解释下列术语,并举例说明。
对象、类、关联、泛化、聚合、依赖
5.什么是模型在软件开发过程中为什么需要建立模型
6.Coad-Youdon面向对象分析方法将建立概念模型分为5个步骤。
以一个你熟悉的应用系统(如图书馆信息管理系统)为例,按照方法规定的步骤,分层建立适当的概念模
图书馆信息管理系统
7.假设你所在的学校要开发一个研究生选课系统,要求该系统能够根据预先制订的课表保证选课无冲突。
请采用UML面向对象方法为该问题建立需求模型。
8.设计一个计算机游戏软件的游戏规则、情节及场景,基于UML给出其需求分析模型。
第七章
1.面向对象分析包括哪些活动应该建立哪些类型的模型
面向对象分析OOA模型的过程包括理解用例模型、识别分析类、定义交互行为、建立
分析类图、评审分析模型5个活动组成。
目标是建立一个符合问题域、满足用户需求的OOA模型。
2.什么是实体类、边界类和控制类为什么将分析类划分成这3种类型
实体类:
用于描述必须存储的信息,同时描述相关的行为。
实体类代表拟建系统中的核心信息。
在RUP的有关文档中对实体类的解释为:
“实体类是用于对必须存储的信息和相关行为建模的类。
边界类:
在系统与外界之间,为它们交换各种信息与事件。
边界类处理软件系统的输入与输出。
在RUP的有关文档中对边界类的解释为:
边界类是一种用于
对系统外部环境与其内部运作之间的交互进行建模的类。
控制类:
与业务过程相关,它们控制整个业务的流程和执行次序。
在RUP的有关文档中对控制类的解释为:
控制类用于对一个或几个用例所持有的控制行为进行建模。
控制类对象可以和边界对象交互,也可以和实体对象交互,但不能和用例的参与者直接进行交互。
3.请思考本章所讲案例中的其他用例的参与类图。
4.搜索关于面向对象分析的文章,对比不同的分析技术,并给出这些技术的优缺点。
5.针对自己所选定的系统,对用例模型进行分析,建立相应的模型,从而在分析出各个分析类,
建立出分析类图。
第八章
1.什么是软件设计它的目标和任务是什么
<1>软件设计:
在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能的实现。
即把软件需求转换为软件包表示的过程。
<2>目标:
软件设计的最终目标是产生一个设计规约,该规约包括体系结构、描述数据、接口和构件的设计模型。
软件设计的任务,就是把分析阶段产生的软件需求规格说明转换为用适当手段表示的软件设计文档。
2.怎样实现信息隐藏
模块独立是信息隐藏的直接结果。
信息隐藏原理告诉我们,模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块不可访问;每个模块只完成一个相对独立的特定功能,模块之间仅仅交换那些为完成系统功能必须交换的信息,即模块应该独立。
3.逐步求精、分层过程与抽象等概念之间的相互关系如何
程序的体系结构是通过逐步精化处理过程的层次而设计出来的。
通过逐步分解对功能的宏观陈述而开发出层次结构,最终得出用程序设计语言表达的程序。
求精实际上是细化过程。
抽象与求精是一对互补的概念。
抽象使得设计者能够说明过程和数据,但却忽略了底层细节。
求精则帮助设计者在设计过程中逐步揭示底层细节。
4.完成良好的软件设计应遵循哪些原则
模块化与模块独立性;抽象与逐步求精;信息隐藏。
5.如何理解模块独立性用什么指标来衡量模块独立性
<1>模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。
<2>一般采用两个准则度量模块独立性,即模块的内聚性和模块间的耦合性。
6.说明软件设计阶段的任务和过程
软件设计分两步完成,即总体设计与详细设计。
第一个阶段是总体设计,即概要设计或初步设计。
这一阶段主要确定实现目标系统的总体思想和设计框架,确定程序由哪些模块组成,以及模块与模块之间的关系,最后提出概要设计说明书。
第二个阶段是详细设计,即过程设计或构件级设计,其任务是通过对结构表示进行细化,确定各个软件构件的详细数据结构和算法,产生描述各个软件构件的详细设计文档。
7.试说明软件体系结构在软件设计阶段中的重要性。
良好的体系结构设计是决定软件系统成功的重要因素。
软件体系结构设计的好坏往往会成为一个系统设计成败的关键。
通常,软件体系结构涉及软件的总体组织、全局控制、数据存取及子系统之间的通信协议等。
8.目前存在哪些不同的设计复审方法各有什么特点
目前存在着两种不同的设计复审方法。
1)正式复审
2)非正式复审
正式复审包括各方面的参加人员,通常采取正式会议的方式。
非正式复审的特点是参加人数少,且均为软件人员,带有同行讨论的性质,方便灵活,十分适合于详细复审。
第九章
1.简述模块分解的原则和依据。
1.改进软件结构以提高模块独立性
设计出软件的初步结构以后,应该审查分析这个结构,通过模块分解或合并,力求降低
耦合提高内聚。
2.模块的大小要适当
经验表明,一个模块的规模不应过大,通常规定其语句行数为50~100行,最多不超过500行。
,体积过大的模块往往是由于分解不充分,且具有多个功能,因此需要对功能进一步分解,生成一些下级模块或同层模块。
反之,模块体积过小也可以考虑是否可能与调用它的上级模块合并。
3.深度、宽度、扇出和扇入都应适当
4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课后 答案