软件工程2
- 格式:doc
- 大小:41.50 KB
- 文档页数:4
里面包含绝大部分的软件工程第二版中的课后习题答案瞿中编第一章仿真试题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、UML是软件开发中的一个重要工具,它重要应用于哪种软件开发方法( )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发规定最高( )A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法9、结构化分析方法是一种预先严格定义需求的方法,它在实行时强调的是分析对象的( )A、控制流B、数据流C、程序流D、指令流10、软件开发的结构化生命周期方法将软件生命周期划提成( )A、计划阶段、开发阶段、运营阶段B、计划阶段、编程阶段、测试阶段C、总体设计、具体设计、编程调试D、需求分析、功能定义、系统设计11、软件开发中常采用的结构化生命周期方法,由于其特性而一般称其为( )A、瀑布模型B、对象模型C、螺旋模型D、层次模型12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为也许占用人员最多的阶段是( )A、分析阶段B、设计阶段C、编码阶段D、测试阶段13、软件开发模型是指软件开发的所有过程、活动和任务的结构框架。
敏捷开发4软件生命周期模型1瀑布模型及几个衍生模型2迭代和递增3其他生命周期模型及模型比较5敏捷开发4软件生命周期模型1瀑布模型及几个衍生模型2迭代和递增3其他生命周期模型及模型比较57P32: 2.9.2P23: 2.2 P25: 2.3P34: 2.9.3模型构造多使用脚本语言、基于现有基础代码库、UI工具制作,制作过程一般不会考虑性能、稳定敏捷开发4软件生命周期模型1瀑布模型及几个衍生模型2迭代和递增3其他生命周期模型及模型比较5迭代-递增生命周期模型递增也是软件工程的一个固有特性P27P26: 2.5P28P29P30 2.7敏捷开发4软件生命周期模型1瀑布模型及几个衍生模型2迭代和递增3其他生命周期模型及模型比较58个体和交互胜过过程和工具以人为本我相信没有比面对面交流更高效的沟通渠道了•尊重和信任激发个人内心的责任感和使命感,激发了个体的潜能。
•基于互相信任的前提,敏捷提倡自治的全功能团队。
在工作形式上,整个团队平时坐在一起工作,从物理空间上创造了更加便捷面对面的沟通机会。
•要摒弃这种重流程和重工具,提倡轻量级流程和轻量级工具,而这些流程和工具又在促进个体交互。
比如,我们在日常工作中会使用Trello、Jira、Keynote等工具。
可以工作的软件胜过面面俱到的文档价值导向为客户交付可工作的软件是我们的核心目标•我们应该尽早交付可进行端到端测试的代码,该目标决定了我们不应该花过多精力在面面俱到的文档上。
•但这不代表我们要抵制任何文档。
实践证明,轻量级的文档策略有助于团队高质量交付可工作的软件。
•在开发过程中,交互设计原型也是一种轻量级文档,交互设计师交付可以尽早地跟团队和客户进行确认验收的核心业务场景的原型,快速收集反馈。
客户合作胜过合同谈判客户团队帮助客户实现他们真正想要的价值•让客户也作为团队的一分子,跟客户建立信任的合作关系取代敌对的谈判关系。
•需求的变化往往来自客户,让客户参与进来可以在开发的过程中尽早的发现变化,从而尽早采取解决方案。
软件工程软件设计方法(二)引言概述:软件设计方法是软件工程领域中至关重要的一部分,它涉及到软件系统架构、模块设计、接口设计等多个方面。
本文将着重介绍软件设计方法的五个主要方面,包括需求分析、系统架构设计、模块划分、接口设计和可重用性。
正文:1. 需求分析- 确定用户需求:通过与用户沟通,明确软件系统的功能需求和性能需求。
- 业务流程分析:了解用户的业务流程,以便设计出符合实际业务需求的软件。
- 数据模型设计:根据需求对数据进行建模,定义数据实体、属性和关系。
2. 系统架构设计- 划分子系统:将整个软件系统分解为多个相对独立的子系统,每个子系统负责特定的功能。
- 确定系统层次:定义子系统之间的层次结构和依赖关系,保证系统的稳定性和可扩展性。
- 选择适当的架构风格:根据软件系统的特点和需求,选择适合的架构风格,如客户端-服务器、分层或微服务等。
3. 模块划分- 确定模块功能:根据系统需求和架构设计,将系统功能划分为不同的模块。
- 设计模块接口:定义模块之间的接口规范,确保模块之间的协同工作和信息交互。
- 模块详细设计:对每个模块进行详细设计,包括内部数据结构和算法的设计。
4. 接口设计- 定义接口规范:确定模块之间的接口规范,包括输入输出参数、数据格式等。
- 接口协议设计:设计合适的接口协议,包括数据传输格式、访问控制等。
- 接口测试和验证:进行接口测试,确保接口的正确性和稳定性。
5. 可重用性- 模块复用:设计和实现可重用的模块,以提高软件的开发效率和质量。
- 组件库开发:建立组件库,将常用的功能模块抽象为可重用的组件,方便后续开发过程中的重用。
- 框架设计:设计通用的框架,提供开发的基础设施和通用功能。
总结:通过本文对软件设计方法的介绍,我们可以看到,在软件工程中,软件设计方法的重要性不可忽视。
通过需求分析、系统架构设计、模块划分、接口设计和可重用性等方面的综合考虑,可以设计出高效、可靠、可维护的软件系统。
软件工程实用教程2版课后答案第1章软件工程引论1.什么是软件危机?它和软件工程有什么关系?答案要点:由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开发一个软件变得越来越困难。
在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。
软件危机的突出表现:1)软件生产率低2)软件产品常常与用户要求不一致3)软件规模的增长,带来了复杂度的增加4)不可维护性突出5)软件文档不完整、不一致。
人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。
由于引入了软件工程的思想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了“软件危机”。
2.简述软件和软件工程的定义以及软件工程的形成过程。
答案要点:计算机软件是由计算机程序的发展而形成的一个概念。
它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。
软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。
软件工程是指导计算机软件开发和维护的工程学科。
它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。
第一阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。
第二阶段:20世纪80年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。
软件工程第2章-系统工程软件工程第2章-系统工程2.1 系统工程概述系统工程是一种系统性和综合性的工程方法,旨在设计、开发和维护复杂的软件系统。
系统工程的主要目标是满足用户需求,并确保系统的有效性、可靠性和可维护性。
2.1.1 系统工程定义系统工程是一个跨学科的领域,涉及到多个专业领域的知识和技术。
它集成了工程学、计算机科学、信息技术等多个学科的理论与实践,以解决大规模软件系统开发和维护过程中的各种问题。
2.1.2 系统工程过程系统工程的过程涵盖了软件系统的整个生命周期,包括需求分析、设计、开发、测试、部署和维护等阶段。
每个阶段都有特定的任务和活动,并且需要进行严格的管理和控制。
2.1.2.1 需求分析阶段需求分析阶段是系统工程的起点,通过与用户沟通和交流,收集和整理用户需求,并将其转化为系统的功能和性能要求。
2.1.2.2 设计阶段在设计阶段,系统工程师会根据需求分析阶段的成果,设计整个系统的结构和组件之间的关系。
这包括系统架构设计、模块设计和接口设计等。
2.1.2.3 开发阶段开发阶段是系统工程中最为关键的阶段,主要是根据设计阶段的成果,进行软件编码、集成和测试。
开发人员需要按照设计规范和编码标准进行开发工作,并保证代码的质量和可维护性。
2.1.2.4 测试阶段测试阶段是为了验证系统是否满足用户需求,并发现和修复潜在的缺陷和问题。
测试人员会执行各种测试活动,包括单元测试、集成测试和系统测试等。
2.1.2.5 部署阶段在部署阶段,系统工程师会将已经通过测试的系统部署到目标环境中,并进行安装、配置和调优等工作,确保系统能够正常运行。
2.1.2.6 维护阶段维护阶段是系统工程的最后一个阶段,主要是为了确保系统能够持续地运行和满足用户的需求。
维护人员会定期检查系统的性能和可靠性,并进行必要的修复和优化等工作。
2.2 系统工程的关键技术2.2.1 需求工程需求工程是系统工程中非常重要的一环,它主要涉及到需求获取、需求分析、需求验证和需求管理等方面的内容。
软件工程是什么意思,软件工程(二)引言概述:软件工程是指将系统化的、规范化的、可量化的方法应用于软件的开发、维护和运行过程的一门学科。
它涉及到软件开发的各个阶段,包括需求分析、设计、编码、测试和部署等。
本文将继续探讨软件工程的相关内容,重点关注软件工程的角色定位、软件开发生命周期、软件质量保证、软件项目管理和软件工程实践等方面。
正文:1. 软件工程的角色定位1.1 软件工程师的责任和职责1.2 软件工程师的技能要求1.3 软件工程师的角色与其他相关职位的区别1.4 软件工程师的职业前景和发展方向1.5 软件工程在不同行业中的应用案例2. 软件开发生命周期2.1 需求分析阶段的重要性和流程2.2 设计阶段的原则和方法2.3 编码阶段的最佳实践和规范2.4 测试阶段的重要性和方法2.5 部署和维护阶段的关键点和挑战3. 软件质量保证3.1 软件质量的定义和评估标准3.2 软件质量保证的方法和工具3.3 软件质量保证与测试的区别和联系3.4 软件质量保证的挑战和解决方案3.5 软件质量保证的重要性在软件项目中的体现4. 软件项目管理4.1 软件项目管理的基本概念和原则4.2 软件项目管理的流程和方法4.3 软件项目管理的关键要点和技巧4.4 软件项目管理中常见的问题和解决方案4.5 软件项目管理的价值和意义5. 软件工程实践5.1 软件工程实践的基本理念和方法5.2 软件工程实践的组织和团队建设5.3 软件工程实践的日常工作和流程5.4 软件工程实践中的创新和发展5.5 软件工程实践的成功案例和经验总结总结:本文从软件工程的角色定位、软件开发生命周期、软件质量保证、软件项目管理和软件工程实践等多个方面进行了深入探讨。
软件工程是一门系统的学科,涉及到软件开发的各个阶段以及相关的方法和工具。
只有在有效的软件工程实践和良好的项目管理下,才能确保软件的质量和可靠性。
希望本文对读者对软件工程的理解有所帮助,并能在实际工作中应用相关的知识和技术。
1.什么叫文档?(P1)文档是确定软件生产各个阶段必须完成的有关计算机程序功能、设计和使用的文字或图形资料。
2.什么叫软件?软件和程序的区别是什么?(P4)软件是计算机程序及其有关数据和文档的完整集合。
程序是能够完成预定功能的可执行的指令序列。
而软件=程序+文档。
3.软件工程方法学的三个要素是什么?各个要素的作用是什么?(P4)三个要素:方法、工具和过程。
方法:完成软件开发任务的技术方法。
工具:为方法的运用提供自动或半自动的软件支撑环境。
过程:规定了完成任务的工作阶段、工作内容、产品、验收的步骤和完成准则。
4.瀑布模型把软件生命周期分为那几个时期?有分为那几个阶段?(P9)分为三个时期:计划时期、开发时期、运行时期计划时期可分为:问题定义、可行性研究、需求分析开发时期可分为:概要设计、详细设计、软件实现、软件测试运行时期:运行维护5.软件工程学的主要内容是什么?(P4)是软件开发技术和软件工程管理。
6.软件开发模型有哪些?(P9)总体来说包括传统的瀑布模型和后来兴起的快速原型模型具体分为瀑布模型、快速原型模型、增量模型、喷泉模型、螺旋模型和统一模型7.可行性研究包括哪几个方面?各包括那些内容?(P20)包括技术方面、经济方面、社会因素方面(1)技术可行性是指对设备条件、技术解决方案的实用性和技术资源的可用性的度量。
(2)经济可行性是指希望以最小的成本开发出具有最佳的经济效益的软件产品。
其内容如下:<1> 支出<2>收益<3>收益/投资比<4> 投资回收周期<5> 敏感度分析(3)社会因素方面的可行性主要从法律、用户等方面分析可行性。
8.需求分析有什么必要?在这一阶段常绘制那些图形?(P22)需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。
需求分析的结果是否正确,关系到软件开发的成败,正确的需求分析是整个系统开发的基础。
普通高等教育“十一五”国家级规划教材21世纪高等学校计算机规划教材软件工程实用教程(第2版)郭宁主编马玉春邢跃吴文红副主编人民邮电出版社北京内容提要本书根据软件工程的最新发展,结合目前软件工程教学的需要,以传统的软件工程和面向对象的软件工程为主线,遵循软件开发“工程化”思想,结合大量的应用案例,系统地介绍软件工程学的理论、方法以及应用技术。
内容包括:软件开发模型、需求分析、软件设计、软件测试、软件维护、质量管理、文档技术、软件项目管理、软件工程工具和环境等。
本书强调软件工程的理论与实践相结合、技术与管理相结合、方法与CASE工具相结合,语言简练,通俗易懂,采用案例教学方法,注重培养实际开发能力和文档的写作能力,具有很强的实用性和可操作性。
书中含有丰富的例题与习题,便于教学和自学。
本书可作为高等院校计算机专业或信息类相关专业高年级本科生或研究生教材,也可作为软件开发人员的参考书。
普通高等教育“十一五”国家级规划教材21世纪高等学校计算机规划教材软件工程实用教程(第2版)♦主编郭宁副主编马玉春邢跃吴文红责任编辑邹文波♦人民邮电出版社出版发行北京市崇文区夕照寺街14号邮编 100061 电子邮件 315@网址 北京鑫正大印刷有限公司印刷♦开本:787×1092 1/16印张:18.75 2011年8月第2版字数:494千字2011年8月北京第1次印刷ISBN 978-7-115-25538-9定价:35.00元读者服务热线:(010)67170985 印装质量热线:(010)67129223反盗版热线:(010)67171154。
软件工程试卷试题下载-样卷.doc
第二学期期终试题
一、判断题(正确的在括号内打上“√”,错误的打上“×”。
每题1.5分,共15分)
1.在程序调试时,找出错误的位置和性质比改正该错误更难。
(√)
2.以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要
设计方法之一。
(√)
二、单项选择题(每小题2分,共10分)
1.试判断下列叙述中,哪个(些)是正确的(D)
a、软件系统中所有的信息流都可以认为是事务流
b、软件系统中所有的信息流都可以认为是变换流
c、事务分析和变换分析的设计步骤是基本相似的
A、a
B、b
C、c
D、b和c
2.进行需求分析可使用多种工具,但(B)是不适用的。
A、数据流图
B、PAD图
C、判定表
D、数据词典
3.在详细设计阶段,经常采用的工具有(A)。
A、PAD
B、SA
C、SC
D、DFD
4.详细设计的结果基本决定了最终程序的(C)
A、代码的规模
B、运行速度
C、质量
D、可维护性
5.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。
A、程序的内部逻辑
B、程序的复杂程度
C、该软件的编辑人员
D、程序的功能
三、多项选择题(每题2分,共10分。
注:正确得2分,漏选得1分,多选、错选不得分。
)
1.(ABCD)可以作为模块。
A、子程序
B、函数
C、过程
D、编译文件
2.下面哪些测试属于黑盒测试(BCD)。
A、路径测试
B、等价类划分
C、边界值分析
D、错误推测
E、
循环测试
3.下列属于度量效益方法的是(ABCD)。
A、货币的时间价值
B、投资回收期
C、收入
D、投资回报率
4.软件维护的策略包括(BCD)。
A、定期检测维护
B、改正性维护
C、适应性维护
D、完善性维护
5.下列属于软件测试过程的是(ABE)。
A、单元测试
B、组装测试
C、内核测试
D、法律验证
E、确认测试
四、简答题(每题6分,共24分)
1.耦合性和内聚性有几种类型? 其耦合度、内聚强度的顺序如何?
答案:低:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合:高
强:功能内聚、信息内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚:弱
2.请举例说明什么是多态,什么是重载?
答案:多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。
也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。
当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法。
重载是指一个类中有多个同名的方法,但在操作数个数或类型上有区别。
例:public class A{
int age;
String? name;
public void setV alue(int i) {
age=i;?}
public void setV alue(String s) {
name=s;?}
3.什么是数据字典?简述数据字典与数据流图的关系。
答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。
(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。
数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
(3分)
4.简述编码风格的重要性。
答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章。
应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间。
良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。
5.面向对象的测试和传统开发方法的测试有什么不同?
答案:(1)二者都可以分成四个阶段进行。
但传统测试最小单元是模块,而在面向对象环境下,最小的可测试的单元是封装了的类或对象,而不是程序模块。
(2)因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和自底向上的组装策略意义不大。
每次将一个操作组装到类中(像传统的增殖式组装那样)常常行不通,因为在构成类的各个部件之间存在各种直接的和非直接的交互。
对于面向对象系统的组装测试,存在两种不同的测试策略。
五、分析应用题(20分)
1.求一组数组中的最大数, 数组表示为A(n),n=1,2……n的自然数。
(10分)
2.请画出程序流程图(4分)
3.请画出该算法的N-S图(3分)
4.请用PAD图来表示该算法(3分)
答案:
2. 下面是某程序的流程图:(10分)
∙计算它的环路复杂性。
(3分)答案:7
∙为了完成基本路径测试,求它的一组独立的路径。
(7分)
答案:
路径1:(0)—①—(13)—(19)
路径2:(0)—②—③—(14)—(19)
路径3:(0)—②—④—⑤—(15)—(19)
路径4:(0)—②—④—⑥—⑦—(16)—(19)
路径5:(0)—②—④—⑥—⑧—⑨—(17)—(19)
路径6:(0)—②—④—⑥—⑧—⑩—(11)—(18)—(19)
路径7:(0)—②—④—⑥—⑧—⑩—(12)—(19)
六、阅读下列说明和数据流图,回答问题1至问题4,将解答填入答题纸的对应栏内。
(12分)
[说明]
某基于微处理器的住宅安全系统,使用传感器(如红外探头、摄像头等)来检测各种意外情况,如非法进入、火警、水灾等。
房主可以在安装该系统时配置安全监控设备(如传感器、显示器、报警器等),也可以在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。
在安装过程中,系统给每个传感器赋予一个编号(即id)和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应自动拨出的电话号码。
当系统检测到一个传感器事件时,就激活警报,拨出预置的电话号码,并报告关于位置和检测到的事件的性质等信息。
加工4的细化图
[问题1](3分)
数据流图1(住宅安全系统顶层图)中的A和B分别是什么?
答案:A:传感器: B:报警器
[问题2](3分)
数据流图2(住宅安全系统第0层DFD图)中的数据存储“配置信息”会影响图中的哪些加工?
答案:监控传感器、显示信息和状态
[问题3](6分)
将数据流图3(加工4的细化图)中的数据流补充完整,并指明加工名称、数据流的方向(输入/输出)和数据流名称.
答案: 4.4“读传感器”添加输入数据流“传感器状态”
4.1“显示格式”添加输出数据流“传感器数据”
4.5“拨号”添加输出数据流“电话拨号”
七、请以自己的实际体会说明项目管理的意义和作用。
(8分)
答案:(要点)软件项目管理就是对软件工程项目开发过程的管理。
具体地说,就是对整个软件生存期的一切活动进行管理,以达到提高生产率、改善产品质量的目的。
软件项目管理的职能:(1)制定计划:规定待完成的任务、要求、资源、人力和进度等。
(2)建立项目组织:为实施计划,保证任务的完成,需要建立分工明确的责任机构。
(3)配备人员:任用各种层次的技术人员和管理人员。
(4)指导:鼓励和动员软件人员完成所分配的任务。
(5)检验:对照计划或标准监督检查实施的情况。