软件工程题目.docx
- 文档编号:2467886
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:29
- 大小:101.86KB
软件工程题目.docx
《软件工程题目.docx》由会员分享,可在线阅读,更多相关《软件工程题目.docx(29页珍藏版)》请在冰豆网上搜索。
软件工程题目
问答题
1请补充1-2个关于软件的错误观点,并对其进行分析和解释。
观点一:
开放软件源代码就一定好。
观点二:
软件质量问题可通过软件测试得到彻底解决。
2试说明"软件生存周期"的概念。
3当沿着螺旋模型的过程流路径向外移时,你认为正在开发或维护的软件发生了什么变化?
答案1、观点一:
开放软件源代码就一定好。
分析:
一般人都认为开放源代码对一个软件系统的完善有很好的促进作用,因为这样可以集合很多人的智慧,但这种观点并不完全正确。
大家赞同开放源码,其实很大程度上是因为先有了Linux成功的例子,而Linux的出现和成功是有它一定的背景的,很大程度上是因为不支持源码开放的代表--微软的缘故。
开放源代码对促进全球软件和信息技术行业的快速发展是很有益处的,但是关于源代码的GPL授权方式目前还看不到它对软件企业发展的好处。
一味强调过度开放源代码,在现在盗版泛滥的时代,拥有源代码的公司如何得到回报,没有回报就没有进一步研发资金,软件的发展从何而来。
观点二:
软件质量问题可通过软件测试得到彻底解决。
分析:
为了克服软件危机和提高软件质量,人们进行了大量的研究和实践。
最初的重点是着眼于技术革新,从各种软件工具(如编辑、编译、调试工具等等)研制开始,发展成为对开发各阶段进行全面支持的计算机辅助软件工程(CASE)环境。
同时,注重软件开发"模型"研究,也就是如何划分软件开发过程的不同阶段,并针对不同阶段开展了有关技术和方法的研究如需求工程、设计工程、程序设计方法学、软件测试等等。
通过长期的实践发现,仅仅依靠这些工具环境、模型及方法学来提高效率和质量,并未达到预期的目标。
同时,人们逐渐认识到,如果能够同时对软件开发过程的质量加以控制,则可以大幅度的提高软件质量。
只有从一开始就在开发过程中严格贯彻质量管理,软件产品的质量才有保证。
否则,开发工作一旦进行到后期,无论怎样通过测试和补漏洞,都会无济于事。
这就是近年来国际上十分重视的"软件过程管理"思想。
这种思想并非凭空想象,而是借鉴了在硬件领域成功实施全面质量管理的经验,对软件开发实行相应的质量保证工作,并已取得了成功的经验。
2、软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
(1)计划阶段:
确定待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。
软件计划的主要内容包括所采用的软件生命周期模型、开发人员的组织、系统解决方案、管理的目标与级别、所用的技术与工具,以及开发的进度、预算和资源分配。
(2)分析阶段:
分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。
通过评审需求规格说明,确保对用户需求达到共同的理解与认识。
需求规格说明明确地描述了软件的功能,列出软件必须满足的所有约束条件,并定义软件的输入和输出接口。
(3)设计阶段:
设计阶段的目标是决定软件怎么做,设计人员依据软件需求规格说明文档,确定软件的体系结构,进而确定每个模块的实现算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。
(4)实现阶段:
实现阶段是将所设计的各个模块编写成计算机可接受的程序代码,与实现相关的文档就是源程序以及合适的注释。
(5)测试阶段:
在设计测试用例的基础上,测试软件的各个组成模块。
然后,将各个模块集成起来,测试整个产品的功能和性能是否满足已有的规格说明。
(6)维护阶段:
一旦产品已交付运行之后,对产品所做的任何修改就是维护。
维护是软件过程的一个组成部分,应当在软件的设计和实现阶段充分考虑软件的可维护性。
维护阶段需要测试是否正确地实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。
3、在使用螺旋模型开发软件的过程中,从核心开始,螺旋的第一圈可能产生软件的规格说明,接下来的螺旋可能用于开发一个原型,随后是软件的更完善的版本。
经过计划区域的每一圈是为了调整项目计划,基于从用户评估得到的反馈,调整费用和进度。
沿螺旋线自内向外每旋转一圈,便开发出一个更为完善的、新的软件版本。
1、运行正确的程序就是高质量的程序吗?
请加以解释。
2、一个程序能够既正确又不可靠吗?
请加以解释。
3、怎样理解"质量是免费的"这句话?
4、软件质量保证的任务是什么?
它涉及到哪几类人员?
5、试说明CMM模型的框架结构。
答案:
1、 "运行正确"的程序不见得就是高质量的程序。
这个程序也许运行速度很低并且浪费内存,也许代码写得一塌糊涂,除了开发者本人谁也看不懂也不会使用。
应该说,正确性只是反映软件质量的一个因素而已。
2、软件的功能正确并不代表软件是可靠的。
可靠性是指在一定的环境下,在给定的时间内系统不发生故障的概率。
由于无法对软件尽心彻底的测试,因此即使软件的某个功能是正确的,软件中潜在的错误也可能导致其不可靠,如"2000"年问题就是如此。
3、质量管理的基本思想不是尽量减少错误,而是争取第一次把事情完全做好,从而实现"零缺陷"。
我们常常会出现不符合质量标准的问题,也就是有些工作没有做到第一次就做好,为此需要进行一系列的补救,从而产生了额外的支出,包括时间、金钱和精力,由此产生了质量损失。
如果我们能够第一次就将事情做好,那么就避免了质量损失。
4、软件质量保证(SQA,SoftwareQualityAssurance)的任务主要包括以下方面:
(1)制定项目的SQA计划,包括需要的评价和评审、项目采用的标准、错误的报告与跟踪、SQA的文档等;
(2)参与开发项目的软件过程描述,为软件开发选择合适的过程;
(3)复审各项软件工程活动,识别、记录和跟踪各种偏差,并核实是否已经纠正;
(4)检查指定的软件产品,识别、记录和跟踪各种偏差,并核实是否已经纠正;
(5)记录软件过程和软件产品的所有不合格,将其报告给高级管理者,并跟踪直至纠正;
(6)协调变更的控制和管理,帮助收集和分析软件度量信息。
这些活动与两种人员相关:
(1)做技术工作的软件工程师;
(2)负责质量保证的计划、监督、记录、分析和报告工作的SQA小组。
5、CMM模型是为了指导软件开发组织,通过确定当前过程的成熟度,并识别出执行软件过程的薄弱环节,通过解决对软件质量和过程改进至关重要的若干问题来形成对其过程的改进策略,通过关注并认真实施一组有限的关键实践活动,稳步地改善其全组织的软件过程,使全组织的软件过程能力持续增长。
CMM模型将软件过程从无序到有序的进化过程分成几个阶段,并将这些阶段排序,形成一个逐层提高的平台,使在每个平台上的改进能为达到下一个平台奠定基础。
CMM模型由5个成熟度等级构成,且每一个等级形成了一个必要的基础,从此基础出发才能达到下一个等级,因此软件能力成熟度等级的提高是一个循序渐进的过程。
除第一级之外,CMM的每个等级都是按完全相同的结构构成的,每一级包含了实现这一级目标的若干关键过程域,每个关键过程域进一步包含若干关键实施活动,当关键过程域的这些关键实践都得到实施时,就能够实现该关键过程域的目标。
过程能力等级
特点
关键过程域
1初始级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力;管理是反应式(消防式)。
2可重复级
建立了基本的项目管理过程来跟踪费用、进度和功能特性。
制定了必要的过程纪律,能重复早先类似应用项目取得成功。
需求管理
软件项目计划
软件项目跟踪和监督
软件子合同管理
软件质量保证
软件配置管理
3已定义级
已将软件管理和工程文档化、标准化,并综合成该组织的标准软件过程。
所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。
组织过程定义
组织过程焦点
培训程序
集成软件管理
软件产品工程
组间协调
同级评审
4已管理级
收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。
定量过程管理
软件质量管理
5优化级
过程的量化反馈和先进的新思想、新技术促进过程不断改进。
缺陷预防
技术变更管理
过程变更管理
1、需求工程包括哪些基本活动?
每一项活动的主要任务是什么?
2、原型化方法主要用于解决什么问题?
试说明这种方法的主要优缺点。
3、一个考务处理系统的要求如下,试画出该系统的数据流图。
(1)对考生送来的报名表进行检查;
(2)对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生名单送给阅卷站;
(3)对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者;
(4)填写考生通知单(内容包含考试成绩及合格∕不合格标志),送给考生;
(5)按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难度分析,产生统计分析表。
答案:
1、需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。
这些基本活动的主要任务包括:
(1)需求获取(问题识别):
采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。
(2)需求分析:
分析和综合所采集的信息,建立系统的详细逻辑模型。
(3)需求规格说明:
编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。
(4)需求验证:
评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。
(5)需求管理:
定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。
2、原型化方法主要用于解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。
这种方法的主要优点如下:
(1)明确并完善需求原型作为一种需求工具,它初步实现所理解的系统的一部分,用户对原型的评价可以指出需求中的许多问题。
(2)探索设计选择方案原型作为一种设计工具,可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。
(3)发展为最终的产品原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。
这种方法的主要缺点包括:
(1)用户看到一个正在运行的原型便以为产品即将完成,他们会要求不再进行产品重建,而只是对原型进行一些修改就交付。
由于原型没有考虑软件的总体质量和可维护性,交付原型往往造成"欲速则不达"的情况。
(2)开发人员为了快速构造原型,可能会采用不合适的操作系统或程序设计语言,也可能使用一些效率低的算法。
在一段时间的开发之后,他们往往已经习惯了这些选择,于是便在系统中参杂了这些不理想的选择。
3、
(1)顶层数据流图
(2)第1层数据流图
(3)第2层数据流图
加工1子图:
加工2子图:
一、填空题
(1)在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关系。
(2)类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是关系。
(3)接口及其实现类或构件之间是关系。
(4)一个汽车有四个轮子,那么类"汽车"和"轮子"之间的关系是关系。
(5)学生与研究生之间是关系。
答案:
(1) 关联
(2)依
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 题目
![提示](https://static.bdocx.com/images/bang_tan.gif)