软件工程 作业8(含答案)

合集下载

软件工程第八章作业PHTRS精编版

软件工程第八章作业PHTRS精编版

某学院学科办公室决定开发基于Web 的毕业设计管理系统。

说明如下:毕业设计从选题开始。

首先是指导教师提供多个毕业设计选题,通常一个毕业设计选题包括题目、指导教师姓名、选题意义、设计内容、技术指标等;学生可以从网上选题,确定自己的毕业设计题目,如果多个同学同时选同一个题目则先提交的同学选中该题目,而其他同学需要继续选题;学生可以查看自己所选的题目;教师可以查看是哪些学生选了自己的题目。

毕业设计以评价为结束。

首先是指导教师评价自己所指导的学生,给出百分制分数,占最终成绩的40%;然后是评阅教师评价学生(不能是自己所指导的学生),给出百分制分数,占最终成绩的30%;接下来是答辩评价,多个教师(2-6人)对学生答辩情况打分,各自给出百分制分数,得平均值,占最终成绩的30%;学生可以查看自己的最终成绩;教师可以查看自己指导的学生的各项成绩;学院学科办公室可以查看所有的学生的各项成绩,并可以查看各项统计结果。

①确定参与者;确定用例(包括用例名,用例简述);绘制用例图;对“网上选题”这个用例绘制活动图,并撰写用例详述(包括用例标识、用例名称、用例类型、用例描述、参与者、涉众利益、前置条件、基本事件流、扩展事件流、异常事件流、后置条件等项)。

参与者:指导教师、评阅教师、答辩教师、学生、学科办公室。

用例:指导教师的用例:出题、评价所指导的学生、查看学生选题情况、查看学生成绩; 评阅教师的用例:评价所评阅的学生;答辩教师的用例:评价答辩的学生;学生:网上选题、查看选题情况、查看成绩;学科办公室:查看统计结果、查看学生成绩;用例图:网上选题查看成绩毕业设计管理系统登录注册学生查看选题情况<<include>>学科办公室查看学生成绩查看统计结果用例详述:毕业设计管理系统登录出题评价答辩的学生指导教师评阅教师评价所指导的学生<<include>>教师注册答辩教师查看学生选题情况查看学生成绩评价所评阅的学生活动图:2.类关系模型:③为系统建立对象-行为模型(只需针对“网上选题”这个用例绘制顺序图),根据建模结果确定用例“网上选题”相关的实体类、边界类、控制类的接口(或为public 方法)。

软件工程(第五版)--习题及答案---第八章

软件工程(第五版)--习题及答案---第八章

软件工程(第五版)--习题及答案---第八章一、判断题1、(√)使用括号改善表达式的清晰性。

2、(×)对递归定义的数据结构不要使用递归定义的过程。

3、(×)尽可能对程序代码进行优化。

4、(√)不要修改不好的程序,要重新编写。

5、(√)不要进行浮点数的相等比较。

6、(×)应尽可能多地使用临时变量。

7、(√)利用数据类型对数据值进行防范。

8、(×)用计数方法而不是用文件结束符判别批量数据输入的结束。

9、(×)程序中的注释是可有可无的。

10、(√)使用有意义的标识符。

11、(×)应尽量把程序编写的短一些。

12、(×)应尽量使用goto语句。

二、选择题1、在编码中首先要考虑的是(B)。

A、程序的执行效率B、程序的可读性C、程序的一致性D、程序的安全性2、(D)。

不属于序言性注释内容的是A、模块设计者B、修改日期C、程序的整体说明D、语句功能3、序言性注释应置于文件或模块的(A)位置。

A、起始B、结束C、中间D、起始和中间4、如果编写系统软件,可选用的语言是(C)。

A、FoxProB、COBOLC、CD、FORTRAN5、选择程序设计语言不应该考虑的是(B)。

A、应用领域B、语言的功能C、用户的要求D、用户的使用水平6、与编程风格有关的因素不包括(D)。

A、源程序文档化B、语句构造C、输入输出D、程序的编译效率7、最早用于科学计算的程序设计语言是(C)。

A、PROLOGB、SmalltalkC、FORTRAND、COBOL8、功能性注释的主要内容不包括(B)。

A、程序段的功能B、模块的功能C、数据的状态D、语句的功能9、对建立良好的编程风格,下面描述正确的是(A)。

A、程序应简单、清晰、可读性好B、符号名的命名只要符合语法即可C、充分考虑程序的执行效率D、程序的注释可有可无10、源程序中应包含一些内部文档,以帮助阅读和理解程序,源程序的内部文档通常包括合适的标识符、注释和(A)。

软件工程作业8(含答案)

软件工程作业8(含答案)

软件工程作业8(含答案)1. 为了把握软件开发各个环节的正确性和协调性,人们需要进行( A 2)和( B 3 )工作。

( A )的目的是想证实在一给定的外部环境中软件的逻辑正确性。

它包括( C 2 )和( D 3 ),( B )则试图证明在软件生存期各个阶段,以及阶段间的逻辑( E 3 )、( F 4 )和正确性。

供选择的答案:A, B. ①操作②确认③验证④测试⑤调试C, D.①用户的确认②需求规格说明的确认③程序的确认④测试的确认E, F. ①可靠性②独立性③协调性④完备性⑤扩充性2. 软件测试是软件质量保证的主要手段之一,测试的费用已超过(A 1)的30%以上。

因此,提高测试的有效性十分重要。

“高产”的测试是指(B 3 )。

根据国家标准GB 8566–88《计算机软件开发规范》的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在( C 5)阶段完成的,集成测试的计划是在( D 3)阶段制定的,确认测试的计划是在( E 2 )阶段制定的。

供选择的答案:A. ①软件开发费用②软件维护费用③软件开发和维护费用④软件研制费用⑤软件生存期全部B. ①用适量的测试用例运行程序,证明被测程序正确无误②用适量的测试用例运行程序,证明被测程序符合相应的要求③用少量的测试用例运行程序,发现被测程序尽可能多的错误④用少量的测试用例运行程序,纠正被测程序尽可能多的错误C ~ E. ①可行性研究和计划②需求分析③概要设计④详细设计⑤实现⑥集成测试⑦确认测试⑧使用和维护3. 集成测试也叫做( A 3)或( B 6)。

通常,在( C 1)的基础上,将所有模块按照设计要求组装成为系统。

子系统的集成测试特别称为(D 2 ),它所做的工作是要找出子系统和系统需求规格说明之间的( E 6)。

需要考虑的问题是:在把各个模块连接起来的时候,穿越模块接口的数据是否会( F 2);一个模块的功能是否会对另一个模块的功能产生不利的影响;各个(G 1 )组合起来,能否达到预期要求的(H 3);(I 5 )是否有问题;单个模块的误差累积起来是否会放大。

软件工程作业第八章

软件工程作业第八章

软件工程作业第八章在软件工程的学习过程中,第八章往往涵盖了一些关键且具有挑战性的内容。

这一章可能涉及到软件测试、维护与优化,或者是关于特定开发模型的深入探讨。

软件测试是确保软件质量的重要环节。

它不仅仅是在软件完成后进行的简单检查,而是贯穿于整个软件开发周期的系统性工作。

测试的目的是发现软件中的缺陷和错误,以保证软件能够满足用户的需求和期望。

在软件测试中,测试用例的设计至关重要。

一个好的测试用例应该能够覆盖各种可能的情况,包括正常的操作流程以及异常和边界情况。

例如,对于一个登录功能,不仅要测试正确的用户名和密码组合,还要测试错误的用户名、错误的密码、空用户名、空密码等情况。

通过精心设计的测试用例,可以更有效地发现潜在的问题。

除了功能测试,性能测试也是不可忽视的一部分。

性能测试主要关注软件在不同负载条件下的响应时间、资源利用率等指标。

比如,一个在线购物网站在高并发访问时是否能够保持稳定的响应速度,数据库是否能够承受大量的数据读写操作。

如果性能方面存在问题,可能会导致用户体验下降,甚至影响业务的正常开展。

软件维护是软件生命周期中的另一个重要阶段。

随着时间的推移,用户需求可能会发生变化,软件运行环境也可能会有所更新,这就需要对软件进行维护。

维护工作包括纠错性维护、适应性维护、完善性维护和预防性维护。

纠错性维护是针对软件中已经发现的错误进行修复。

适应性维护则是使软件能够适应新的运行环境,比如操作系统的升级、硬件的更换等。

完善性维护旨在增加新的功能或者改进现有功能,以满足用户不断变化的需求。

预防性维护则是为了提高软件的可维护性和可靠性,提前采取一些措施,如优化代码结构、添加注释等。

软件优化是提升软件性能和质量的重要手段。

通过对代码的分析和改进,可以减少资源消耗、提高运行效率。

例如,优化算法可以大大缩短程序的执行时间;合理使用数据结构可以节省存储空间。

在进行软件优化时,需要综合考虑多个因素。

不能仅仅为了追求性能的提升而牺牲代码的可读性和可维护性。

软件工程课后习题(含答案)

软件工程课后习题(含答案)

第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。

2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。

二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。

可靠性是衡量软件质量的一个重要目标。

2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。

可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。

三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。

(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。

2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。

(2)软件开发简单,易学、易上手。

(3)专业或非专业人员都能参与软件开发活动。

第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。

2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。

3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。

4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。

二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。

2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。

2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。

3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

《软件工程》试题及参考答案(第8套)

《软件工程》试题及参考答案(第8套)

电计系软件工程专业20 –20 学年度期《软件工程》试题(第8套)第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1、软件可行性研究一般不考虑 ( )A、是否有足够的人员和相关的技术来支持系统开发B、是否有足够的工具和相关的技术来支持系统开发C、待开发软件是否有市场、经济上是否合算D、待开发的软件是否会有质量问题2、软件详细设计的主要任务是确定每个模块的 ( )A、算法和使用的数据结构B、外部接口C、功能D、编程3、为了提高软件的可维护性,在编码阶段应注意( )A.保存测试用例和数据B.提高模块的独立性C.文档的副作用D.养成好的程序设计风格4、快速原型模型的主要特点之一是( )A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件5、软件需求分析的主要任务是准确地定义出要开发的软件系统是( )A.如何做B.怎么做C.做什么D.对谁做6、软件维护产生的副作用,是指( )A、开发时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作7、软件生命周期中所花费用最多的阶段是(D)A、详细设计B、软件编码C、软件测试D、软件维护8、因计算机硬件和软件环境的变化而作出的修改软件的过程称为 ( )A.校正性维护B.适应性维护C.完善性维护D.预防性维护9、一个模块内部各程序都在同一数据结构上操作,这个模块的内聚性称为( ) 。

A、时间内聚B、功能内聚C、信息内聚D、过程内聚10、结构化设计又称为( )A、概要设计B、面向数据流设计C、面向对象设计C、详细设计11. 协作图反映收发消息的对象的结构组织,它与()是同构的。

A 用例图B 类图C 活动图D 时序图12.黑盒测试在设计测试用例时,主要需要研究( )A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明13.CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。

《软件工程》作业及答案

《软件工程》作业及答案

《软件工程》作业及答案《软件工程》作业第一章1.什么就是软件危机,它有哪些典型表现?答: 软件危机就是指在计算机软件得开发与维护过程中所遇到得一系列严重问题。

概括地说,软件危机包含下述两方面得问题:如何开发软件,以满足对软件日益增长得需求;如何维护数量不断膨胀得已有软件。

软件危机典型表现:对软件开发成本与进度得估计常常很不准确。

用户对“已完成得”软件系统不满意得现象经常发生。

软件产品得质量往往靠不住。

软件常常就是不可维护得。

软件通常没有适当得文档资料。

软件成本在计算机系统总成本中所占得比例逐年上升。

软件开发生产率提高得速度,远远跟不上计算机应用迅速普及深入得趋势。

产生软件危机得原因:一方面与软件本身得特点有关,另一方面也与软件开发与维护得方法不正确有关。

软件不同于硬件,它就是计算机系统中得逻辑部件而不就是物理部件。

管理与控制软件开发过程相当困难。

软件就是规模庞大,而且程序复杂性将随着程序规模得增加而呈指数上升。

目前相当多得软件专业人员对软件开发与维护还有不省糊涂观念,在实践过程中或多或少地采用了错误得方法与技术,这就是使软件问题发展成软件危机得主要原因。

2.简述产生软件危机得原因与解决得思路。

答:软件危机产生得原因一方面与软件本身得特点有关,另一方面,就是与已有软件开发、维护得方法不正确有密切关系。

解决软件危机,既要有技术措施(方法与工具),又要有必要得组织管理措施。

即采用工程化得原则与方法组织软件开发就是摆脱软件危机得一个主要出路。

3.什么就是软件工程?它有哪些本质特性?答: 软件工程就是指导计算机软件开发与维护得一门工程学科。

采用工程得概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确得管理技术与当前能够得到得最好得技术方法结合起来,以经济地开发出高质量得软件并有效地维护它。

软件工程本质特性:1、软件工程关注于大型程序得构造;2、软件工程得中心课题就是控制复杂性;3、软件经常变化;4、开发软件得效率非常重要;5、与谐地合作就是开发软件得关键;6、软件必须有效地支持它得用户;7、在软件工程领域中就是由具有一种文化背景得人替具有另一种文化背景得人创造产品。

软件工程作业及参考答案(版)

软件工程作业及参考答案(版)

软件工程作业及参考答案(最新版)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII软件工程一、软件危机与软件工程1.软件危机是指在开发和()过程中所遇到的一系列严重问题。

A.运行B.设计 C.维护 D.编码2.造成软件危机的原因是:A.用户使用不当 B.对软件的错误认识C.硬件不可靠D.缺乏好的开发方法和手段3.软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分,其期望达到的最终目标是()。

A.消除软件危机B.软件开发工程化C.程序设计自动化 D.实现软件重用4.软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的()。

A.工程管理 B.成本核算 C.人员培训 D.工具开发5.软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是()。

A.设计人员和用户B.分析人员和用户C.分析人员和设计人员 D.编码人员和用户6.软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的逻辑模型形成于()。

A.开发阶段B.计划阶段 C.分析阶段 D.设计阶段7.在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。

通常,计划时期包括问题定义、可行性研究和①,开发时期包括②、详细设计、编码以及③。

① A.需求分析 B.可行性研究 C.经费预算 D.质量保证② A.需求分析 B.可行性研究C总体设计 D模块化设计③ A.文档编制 B.运行维护C.测试 D.验收8.软件开发中常采用的生命周期方法,由于其特征而一般称其为()。

A.层次模型B.瀑布模型 C.螺旋模型 D.对象模型9.描述软件生存周期的瀑布模型包括计划、(A)、设计、编码、测试、维护等阶段。

其中,设计阶段又可以分成(B)和(C)两个步骤。

A:①需求分析②可行性研究③需求调查④问题定义B,C:①方案设计②代码设计③概要(总体)设计④数据设计⑤详细设计10.什么是软件危机软件危机产生的原因11.生命周期阶段的划分每个阶段的任务二、可行性研究1.可行性研究的任务步骤对于各种可能的方案,从哪几个方面进行可行性研究参考答案:任务:在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 为了把握软件开发各个环节的正确性和协调性,人们需要进行( A 2)和( B 3 )工作。

( A )的目的是想证实在一给定的外部环境中软件的逻辑正确性。

它包括( C 2 )和( D 3 ),( B )则试图证明在软件生存期各个阶段,以及阶段间的逻辑( E 3 )、( F 4 )和正确性。

供选择的答案:
A, B. ①操作②确认③验证④测试⑤调试
C, D.①用户的确认②需求规格说明的确认
③程序的确认④测试的确认
E, F. ①可靠性②独立性③协调性④完备性⑤扩充性
2. 软件测试是软件质量保证的主要手段之一,测试的费用已超过( A 1)的30%以上。

因此,提高测试的有效性十分重要。

“高产”的测试是指( B 3 )。

根据国家标准GB 8566–88《计算机软件开发规范》的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在( C 5)阶段完成的,集成测试的计划是在( D 3)阶段制定的,确认测试的计划是在( E 2 )阶段制定的。

供选择的答案:
A. ①软件开发费用②软件维护费用③软件开发和维护费用
④软件研制费用⑤软件生存期全部
B. ①用适量的测试用例运行程序,证明被测程序正确无误
②用适量的测试用例运行程序,证明被测程序符合相应的要求
③用少量的测试用例运行程序,发现被测程序尽可能多的错误
④用少量的测试用例运行程序,纠正被测程序尽可能多的错误
C ~ E. ①可行性研究和计划②需求分析③概要设计
④详细设计⑤实现⑥集成测试
⑦确认测试⑧使用和维护
3. 集成测试也叫做( A 3)或( B 6)。

通常,在( C 1)的基础上,将所有模块按照设计要求组装成为系统。

子系统的集成测试特别称为( D 2 ),它所做的工作是要找出子系统和系统需求规格说明之间的( E 6)。

需要考虑的问题是:在把各个模块连接起来的时候,穿越模块接口的数据是否会( F 2);一个模块的功能是否会对另一个模块的功能产生不利的影响;各个(G 1 )组合起来,能否达到预期要求的(H 3);(I 5 )是否有问题;单个模块的误差累积起来是否会放大。

供选择的答案:
A ~ D. ①单元测试②部件测试③组装测试
④系统测试⑤确认测试⑥联合测试
E ~ I.①子功能②丢失③父功能④局部数据结构
⑤全局数据结构⑥不一致⑦一致
4. 软件测试可能发现软件中的(B),但不能证明软件()。

A. 所有错误、没有错误
B. 错误、没有错误
C. 逻辑错误、没有错误
D. 设计错误、没有错误
5. 调用算法是解决问题的关键步骤之一。

算法的计算工作量大小和实现算法所需的存储单元多少,分别称为计算的(A2)和(B3)。

编写程序时,(C1)和(D1)是应采纳的原则之一。

(E4)是调试程序的主要工作之一。

供选择的答案:
A、B:
①可实现性②时间复杂度③空间复杂度④困难度
⑤计算有效性
C:①程序的结构化②程序越短越好
③尽可能节省存储单元④尽可能减少注释行
D:①使用有实际意义的名字②使用长度短而无实际意义的名字
③表达式中尽量少用括号④尽量使用简化了的逻辑表达式
E:①调度②证明程序正确③人员安排④排错
6. 软件测试是为了检查出并改正尽可能多的错误,不断提高软件的(A3),一个成功的测试则是发现了至今未被发现的(B2)的测试。

至于软件维护则是指(C1)。

A:①功能和效率②设计和技巧③质量和可靠性④质量和效能
B:①因素②错误③规律④问题
C:①对软件的改进、适应、完善②维护正常运行
③配置新软件④软件开发期的一个阶段
7. 软件测试的目的是(D)。

A. 证明软件的正确性
B. 找出软件系统中存在的所有错误
C. 证明软件系统中存在错误
D. 尽可能多地发现软件系统中的错误
8. 从已经发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为(D)。

A. 错误检测
B. 故障排除
C. 调试
D. 测试
9. 软件测试是软件质量保证的主要手段之一,测试的费用己超过(A )的30%以上,因此提高测试的有效性非常重要。

A. 软件开发费用
B. 软件维护费用
C. 软件开发和维护费用
D. 软件研制费用
10.软件测试是软件开发过程中重要和不可缺少的阶段,其包含的内容和步骤甚多,而测试过程的多种环节中基础的是(B)。

A. 集成测试
B. 单元测试
C. 系统测试
D. 验收测试
上机题
1.下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。

算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( )::
void SelectSort ( datalist & list ) {
//对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。

for ( int i = 0; i < list.n-1; i++ ) {
int k = i; //在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象
for ( int j = i+1; j < list.n; j++)
if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j; //当前具最小关键码的对象if ( k != i ) Swap ( list.V[i], list.V[k] ); //交换
}
}
(1) 试计算此程序段的McCabe复杂性;
(2) 用基本路径覆盖法给出测试路径;
(3) 为各测试路径设计测试用例。

2. 设要对一个自动饮料售货机软件进行黑盒测试。

该软件的规格说明如下:
“有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。

若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。

若投入的是2元硬币,在送出饮料的同时退还5角硬币。


(1) 试利用因果图法,建立该软件的因果图;
(2) 设计测试该软件的全部测试用例。

相关文档
最新文档