软件工程习题讲解
软件工程习题及解答

软件工程第一章习题一、选择题1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理二、简答题1、美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为10000条FORTRAN指令。
软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
软件工程(第四版)习题及解答1-7

软件工程(第四版)习题及解答1-7软件工程(第四版)习题及解答1-7软件工程一直是信息技术领域中一门重要的学科,它涉及到软件设计、开发、测试和维护等多个方面。
对于学习软件工程的学生来说,练习和解答一些相关习题是非常重要的。
本文将为大家提供《软件工程(第四版)》中的习题1-7的解答和详细讨论。
1. 习题1题目描述:什么是软件工程?为什么软件工程如此重要?解答:软件工程是一门学科,涵盖了软件开发的所有阶段,包括需求分析、软件设计、编码、测试和维护等。
软件工程关注如何以系统化的、规范的方法来开发高质量的软件。
软件工程之所以如此重要,原因有以下几点:首先,软件工程能够提供一个结构化的方法来开发软件,保证开发流程可控、可预测。
通过规范的过程和方法,可以减少软件开发过程中的风险和错误。
其次,软件工程将软件开发过程分解为不同的阶段,并引入了各种工具和技术来支持这些阶段的开发工作。
这些工具和技术能够提高开发效率,减少开发成本。
此外,软件工程还注重软件质量管理,包括软件测试、验证和验证等方面,以确保最终交付给用户的软件是高质量可靠的。
最后,软件工程也关注软件的维护和更新。
由于软件在使用过程中会面临各种问题和需求变化,软件工程可以帮助开发人员及时响应和解决这些问题,提供更好的用户体验。
2. 习题2题目描述:简要解释软件需求分析的目标和过程。
解答:软件需求分析的目标是识别和规范用户对软件系统的需求,确保开发人员和用户对软件系统的期望一致,并将这些需求转化为可行的系统规格说明。
软件需求分析的过程包括以下几个步骤:1) 需求收集:通过与用户沟通、调研等方式,收集用户对软件系统的需求。
可以采用面谈、问卷调查、观察等方法。
2) 需求分析和整理:对收集到的需求进行分析和整理,将其转化为可理解的形式。
可以使用需求建模工具和技术,如用例图、数据流图等。
3) 需求规格说明:在此阶段,将需求转化为详细的规格说明,包括功能需求、性能需求、质量需求等。
软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。
1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。
1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。
1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。
2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。
软件工程(习题与参考答案)

第1章概述(习题与参考答案)[判断题]1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。
(×)2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵。
(×)4. 大多数软件产品在其生命周期中不需要增强功能。
(×)5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。
(√)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。
(×)[选择题]1. ()因素促使计算机系统越来越复杂。
(D)A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系结构方面的深刻变化D. 以上所有选项2. 下面的()不再是现代软件工程师关注的问题。
(A)A. 为什么计算机硬件的成本这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的成本这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于()。
(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于()。
(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的()说法是正确的。
(C)A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的基本目标是()。
(B)A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
软件工程课后参考答案解析

第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程习题及答案解析

软件工程习题及答案解析导言:软件工程作为一门与计算机科学紧密相关的学科,旨在研究和应用一系列工程原则、方法和过程来开发和维护高质量的软件系统。
对于软件工程的学习和理解,习题练习是巩固知识和提高技能的重要手段。
本文将针对软件工程领域的一些习题,提供详细的答案解析,帮助读者更好地掌握软件工程的各个方面。
一、软件需求工程1. 什么是软件需求?请举例说明。
答案解析:软件需求是对即将开发的软件系统或软件改进的功能、性能、可靠性、约束等方面的描述和规范。
例如,一个在线购物系统的需求可以包括用户注册、商品浏览、购买结算等功能,以及响应时间、并发用户数等性能要求。
2. 软件需求工程的主要任务是什么?答案解析:软件需求工程的主要任务包括需求获取、需求分析、需求规格、需求验证和需求管理。
其中,需求获取是通过与用户、领域专家的交流和文档的分析,了解用户需求的过程;需求分析则是对获取到的需求进行识别、分类和理解,以明确软件系统的功能特性;需求规格是将需求以规范化的方式进行表达,通常使用需求文档或者UML建模工具;需求验证是通过测试、模拟等方式验证需求的正确性和可行性;需求管理是对需求进行变更控制、版本管理和追踪反馈。
二、软件设计与实现1. 请介绍一种常用的软件开发模型,并分别说明各个阶段的任务。
答案解析:常用的软件开发模型之一是瀑布模型。
它包含需求分析、系统设计、详细设计、编码、测试和维护等阶段。
需求分析阶段的任务是明确软件系统的功能需求以及性能需求;系统设计阶段则是定义软件系统的整体框架和架构设计;详细设计阶段是对系统设计进行进一步的细化,明确具体的模块、类和接口设计;编码阶段是将设计好的模块或类转化为实际的编程代码;测试阶段是对编码后的软件进行各个功能的单元测试、集成测试和系统测试,以验证软件的正确性和性能;维护阶段则是对软件进行错误修复、性能优化和功能升级等活动。
2. 什么是软件设计模式?请举例说明一种常用的软件设计模式。
软件工程习题(附答案)

软件工程习题(附答案)软件工程习题(附答案)1.概述1.1 介绍本文档是一份软件工程习题文档,包含了一系列关于软件工程的习题及其对应的答案。
这些习题涵盖了软件工程的各个方面,旨在帮助读者巩固和扩展自己的软件工程知识。
1.2 目的本文档的目的是提供一份全面而详细的习题文档,供软件工程学习者参考和学习。
每个习题都配有答案,以便读者可以自行对比答案和解答过程,提高自己的理解和运用能力。
2.软件需求工程2.1 需求获取2.1.1 什么是需求获取?为什么它在软件工程中非常重要?答案:需求获取是指在软件开发过程中,获取并理解用户对软件系统所需功能和约束的过程。
它在软件工程中非常重要,因为一个完整、清晰、准确的需求基础是成功软件开发的关键,它直接影响着软件系统的功能、性能和质量。
2.1.2 几种常见的需求获取方法。
答案:常见的需求获取方法包括面谈、问卷调查、观察、原型展示等。
2.2 需求分析与规格2.2.1 什么是需求分析?它的目标是什么?答案:需求分析是指对需求进行深入的分析和理解,以确定需求的准确性、完整性和一致性。
它的目标是明确系统需求,并将其规格化,为软件开发提供指导和依据。
2.2.2 需求分析的主要步骤有哪些?答案:需求分析的主要步骤包括需求获取与识别、需求验证与确认、需求排序与组织、需求规格化等。
3.软件设计3.1 结构化设计3.1.1 什么是结构化设计?答案:结构化设计是指将系统进行层次化和模块化分解,定义各个模块之间的接口和关系,从而使系统具有更好的可维护性、可扩展性和可重用性。
3.1.2 结构化设计的原则有哪些?答案:结构化设计的原则包括模块化原则、信息隐藏原则、高内聚低耦合原则等。
3.2 面向对象设计3.2.1 什么是面向对象设计?答案:面向对象设计是一种基于对象的思维方式,将系统分解为各个独立的对象,通过对象之间的交互和协作来实现系统的功能。
3.2.2 面向对象设计的主要特点是什么?答案:面向对象设计的主要特点包括封装、继承、多态等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何理解ISO9000与CMMI?
ISO是一个组织的英语简称。其全称是International Standards Organization,翻译成中文就是“国际标准化组织”。ISO9000是指质量管理 体系标准,它不是指一个标准,而是一族标准的统称。ISO9000是由TC176 (TC176指质量管理体系技术委员会)制定的所有国际标准。ISO9000是 ISO发布之12000多个标准中最畅销、最普遍的产品。 CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度 模型集成。 CMM共有五个等级,分别标志着软件企业能力成熟度的五个层次。从低到高, 软件开发生产计划精度逐级升高,单位工程生产周期逐级缩短,单位工程成 本逐级降低。 CMMI的基本思想 1、解决软件项目过程改进难度增大问题 2、实现软件工程的并行与多学科组合 3、实现过程改进的最佳效益
元数据 元数据是组织数据的数据,描述数据的数据,关于 数据的数据。通俗的讲,元数据就是信息系统中实 体名及其属性名的集合,或者说就是基表的表名与 字段名的集合。 所谓实体就是一组相关元素据的集合。
业务模型? 业务模型OM(Operation Model)是描述系统在 何时、何地、由何角色、按什么业务规则去做,以 及做的步骤或流程,即对系统的操作流程进行定义 (怎么做)。
软件生存周期模型 软件从定义开始,经过开发、使用和维护,直到最 终退役的全过程称为软件生存周期。描述软件开发 过程中各种活动如何执行的模型。
快速原型法 快速原型法就是在系统开发之初,尽快给用户构造 一个新系统的模型(原型),反复演示原型并征求 用户意见,开发人员根据用户意见不断修改完善原 型,直到基本满足用户的要求再进而实现系统,这 种软件开发方法就是快速原型法。
数据库设计中的两大窍门? 窍门之一:如果两个实体(或多个实体)之间的关系 非常复杂,那么它们之间就可能存在多对多的关系。 对于这种情况,我们不但要善于认别它,而且要正 确处理它(增加第三者)。 窍门之二:要建立稳定的数据模型,就要掌握“以不 变应万变”的设计技巧,这个技巧就是“列变行”。
据库分析时,如果将属性 比作芝麻,将主要实体比作大西瓜,将次要实体比 作小西瓜,那么芝麻必须围绕西瓜转,小西瓜必须 围绕大西瓜转。所谓西瓜方法,就是在数据库设计 时,如果将属性比作芝麻,将主要实体比作大西瓜, 将次要实体比作小西瓜,那么在用CASE工具设计 E-R图时,应先画出大西瓜,后画出小西瓜,用西 瓜统帅芝麻,用大西瓜统帅小西瓜。
1. 软件工程是研究 和 的一门工程 科学。 2. 现代软件工程研究的主要内容涵 盖 、 、 、 4个方 面。 3. 软件工程中常用的开发方法主要 有 、 、 3种。 4. 软件产品的来源 和 。 5. 软件企业在开发大型项目(如大型MIS)时,还是 采用 。
6.面向数据设计以 为基础,按照一定的规则 将 转换成能被某种数据库管理系统接受 的 。 7.按照“五个面向”的实施理论,软件设计的主要方 法是 ,软件实现的主要方法是 。 8. 这既是需求分析的目的, 又是需求分析的难点。 9.软件工程“五个面向”的实施理 论: 、 、 、 、 。
10. UML规定采用 来描述功能模型。 11. 软件一般存在5种风险,分别 为 、 、 、 、和其他 风险。 12. 既是软件策划的核心,又是软件策划的重 点和难点。
1、软件开发方法、软件管理方法 2、软件开发模型、软件开发方法、软件支持过程、软件管理过程 3、面向过程方法、面向数据方法、面向对象方法 4、 立项、签合同 5、增量模型 6、E-R图、CDM 、 PDM 7、面向数据设计、面向对象实现 8、开发者与客户达成完全一致的需求 9、面向流程分析、面向数据设计、面向对象实现、面向功能测试、 面向过程管理 10、用例图 11、政策风险、技术风险、技能风险、资源风险 12、软件估计
数据字典 数据字典是用来定义数据流图中的各个成分的具体 含义的。它以一种准确的、无二义性的说明方式为 系统的分析、设计及维护提供了有关元素的一致的 定义和详细的描述。
需求分析的任务是什么? 需求分析的任务是确定待开发的软件系统“做什么”。 第1:画出目标系统的组织结构图与列出各部门的岗位 角色表(组织结构模型)第2:画出目标系统的业务操作 流程图 (业务操作模型) 第3:画出目标系统的数据流程 图(数据模型)第4:列出目标系统的功能点列表(功能模 型) 第5:列出系统的性能点列表第6:列出目标系统的 接口列表第7:确定目标系统的运行环境(环境模型) 第 8:目标系统的界面约定(界面模型) 第9:对目标系统 的开发工期、费用、开发进度、系统风险等问题进行分 析与评估