软件工程课堂练习与参考答案
软件工程课堂练习与参考答案

软件工程课堂练习与参考答案课堂练习一、填空题1、软件的生存期包括:问题的定义、()、需要分析三个阶段。
2、可行性分析的内容包括:()、经济可行性、操作可行性和法律可行性。
3、模块独立性设计的标准是:模块化、抽象、()、和信息隐藏。
4、主程序员组由主程序员、()、后备程序员、编程秘书组成。
5、成本/效益分析目的是从()评价开发一个新的软件项目是否可行。
6、模块是由边界元素限定的()(例如,数据说明、可执行的语句等)的序列。
7、模块化就是把程序划分成()且可独立访问的模块。
8、人类在认识复杂现象的过程中使用的最强有力的思维工具是()。
9、人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此,必须对人机界面设计给以()。
10、质量保证是为保证产品和服务充分满足消费者要求的质量而进行的有计划、()的活动。
二、问答题1.简述需求分析的基本步骤。
2.有哪些常用的需求收集方法和技术?试选择某一系统并根据方法进行需求收集。
3.数据流图与数据词典之间有什么关系?4.试考察某一学生档案管理系统,用实体联系图描述该系统的主要数据。
5.试考察某一学生成绩管理系统,对其进行尽可能详细的功能建模和数据建模。
6.举例说明“做什么”与“怎么做”之间的差别。
7.某学校计算机教材购销系统有以下功能:学生买书,首先填写购书单,计算机根据各班学生用书表及售书登记表审查有效性。
若有效,计算机根据教材库存表进一步判断书库是否有书;若有书,计算机把领书单返回给学生,学生凭领书单到书库领书。
对脱销的教材,系统用缺书单的形式通知书库,新书购进库后,也由书库将进书通知返回给系统。
请就以上系统功能画出分层的DFD图(第三层只需画出销售子系统的DFD 图)。
参考答案一、填空题1、可行性分析2、技术可行性3、逐步求精4、程序员5、经济角度6、程序元素7、独立命名8、抽象9、足够重视 10、有组织二、问答题1.需求分析的基本步骤:1)获取用户需求2)分析用户需求3)编写需求文档4)评审需求文档5)管理需求2.需求收集方法和技术:1)跟班作业通过亲身参加业务工作来了解业务活动的情况。
软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些与软件工程相关的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题1、软件生存周期中,解决软件“做什么”的阶段是()A 需求分析B 软件设计C 软件实现D 软件测试答案:A解析:需求分析阶段主要是确定软件系统需要完成的功能和性能,解决软件“做什么”的问题。
2、下面不属于软件设计原则的是()A 抽象B 模块化C 自底向上D 信息隐藏答案:C解析:软件设计的原则通常包括抽象、模块化、信息隐藏等,自底向上一般不是软件设计的原则,常见的是自顶向下的设计方法。
3、软件测试的目的是()A 证明软件没有错误B 发现软件中的错误C 改正软件中的错误D 优化软件的性能答案:B解析:软件测试的目的是为了发现软件中存在的错误,而不是证明软件没有错误或直接改正错误、优化性能。
4、下列模型中,不属于软件生命周期模型的是()A 瀑布模型B 快速原型模型C 增量模型D 螺旋模型E 喷泉模型答案:E解析:瀑布模型、快速原型模型、增量模型和螺旋模型都属于常见的软件生命周期模型,喷泉模型则主要强调软件对象之间的无缝迭代。
5、软件维护中,因修改软件而导致出现新错误的维护属于()A 改正性维护B 适应性维护C 完善性维护D 预防性维护答案:A解析:改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
在这种维护中,可能会因为修改软件而引入新的错误。
二、填空题1、软件工程包括()、()和()三个要素。
答案:方法、工具、过程2、软件需求分析阶段的工作,可以分为四个方面:()、()、()和()。
答案:需求获取、需求分析、编写需求规格说明书、需求评审3、软件测试的步骤主要包括()、()、()和()。
答案:单元测试、集成测试、系统测试、验收测试4、面向对象的三大特性是()、()和()。
软件工程习题及参考答案

软件工程习题及参考答案软件工程习题及部分参考答案判断题软件也会磨损和老化。
(X)完善性维护是提高或完善软件的性能。
(√)数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(X)软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。
(X)软件模块之间的耦合性越弱越好。
(√)如果通过软件测试没有发现错误,则说明软件是正确的。
(X)快速原型模型可以有效地适应用户需求的动态变化。
(√)模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(√)集成测试主要由用户来完成。
(X)确认测试计划应该在可行性研究阶段制定(X)白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
(X)?软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(√)软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
(√)系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
(╳)?模块越多,开发成本越小。
(╳)软件测试的目的就是证明软件没有错。
(╳)PAD图在设置了五种基本的控制结构后,还允许递归使用。
(√)在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。
(×)SA法是面向数据流,建立在数据封闭原则上的需求分析方法。
(√)HIPO 法既是需求分析方法,又是软件设计方法。
(√)在面向对象的需求分析方法中,建立动态模型是最主要的任务。
(×)加工小说明是对系统流程图中的加工进行说明。
(×)判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。
(×)需求分析的主要方法有SD 法、OOA 法及HIPO 法等。
(×)分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。
软件工程练习题目及答案

软件工程练习题目及答案[正文]软件工程练习题目及答案一、软件需求工程1、题目:解释什么是软件需求工程?列出软件需求工程的主要活动。
答案:软件需求工程是一门软件工程学科,旨在定义和管理软件系统的需求。
它包括以下主要活动:1.1 需求获取:确定和收集用户和其他相关利益相关者的需求。
1.2 需求分析:对需求进行分析、组织和分类,以确保其完整性和一致性。
1.3 需求规格说明:将需求转化为规范化的文档,包括功能需求、非功能需求等。
1.4 需求验证:与用户和其他利益相关者确认需求的准确性和完整性。
1.5 需求管理:跟踪和控制需求的变化,确保其能够适应项目的变化。
2、题目:什么是需求?请将需求分类并解释每类需求。
答案:需求是指对软件系统的功能、性能、约束和限制等方面的描述。
需求可以分为如下几类:2.1 功能需求:描述系统应该具备的功能和行为,例如用户登录、数据查询等。
2.2 非功能需求:描述系统的性能要求、可靠性、安全性等方面的要求,例如响应时间、可用性等。
2.3 设计约束:描述对系统设计的限制,如使用特定的编程语言或框架。
2.4 约束条件:描述系统操作的限制和前提条件,如系统的运行环境和操作系统等。
二、软件设计和建模1、题目:什么是软件设计?软件设计的目标是什么?答案:软件设计是指定义软件系统的结构、组件和交互的过程。
软件设计的目标是实现软件需求,并确保软件的可靠性、可扩展性和可维护性。
2、题目:简述面向对象分析和设计方法。
答案:面向对象分析和设计是一种用来分析和设计软件系统的方法。
其核心思想是将系统分解为对象,通过对象之间的交互来实现系统功能。
2.1 面向对象分析(OOA):分析系统需求并识别出系统中的对象、对象的行为和它们之间的关系。
2.2 面向对象设计(OOD):基于面向对象分析的结果,设计系统的具体实现方式,定义对象的属性、方法和接口等。
三、软件测试1、题目:什么是软件测试?常见的软件测试方法。
答案:软件测试是指通过运行软件系统来评估其质量和功能的过程。
软件工程课后习题(含答案)

第一章练习题一、填空题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、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
软件工程习题(附答案)

软件工程习题(附答案)软件工程习题 (附答案)1、软件需求工程1.1 问题描述给定一个学生管理系统,要求实现以下功能:添加学生信息、查询学生信息、修改学生信息、删除学生信息。
1.2 解决方案通过用户界面收集学生信息,使用数据库存储学生信息,编写相应的查询、修改和删除功能实现。
1.3 测试与验证编写测试用例,包括正常情况和异常情况的输入,测试系统是否正确执行学生信息的增删改查操作,并验证结果是否正确。
2、软件设计2.1 模块划分将学生管理系统划分为以下模块:用户界面模块、数据存储模块、查询模块、修改模块、删除模块。
2.2 模块接口设计用户界面模块接收用户输入的学生信息,数据存储模块负责将学生信息存储到数据库中,查询、修改和删除模块通过调用数据库接口实现相应功能。
2.3 系统架构采用三层架构,将用户界面、业务逻辑和数据存储分离,提高代码的可维护性和可扩展性。
3、软件实现3.1 开发工具选择选择合适的开发工具,如Java编程语言、Eclipse开发环境和MySQL数据库。
3.2 编码规范遵循公司制定的编码规范,保证代码的可读性和一致性。
3.3 数据库设计设计学生信息表,包括学生ID、姓名、性别、年龄等字段,并建立适当的索引以提高查询性能。
4、软件测试4.1 单元测试针对每个模块编写相应的单元测试,确保模块的各个功能都能正常工作。
4.2 集成测试将各个模块按照设计要求进行集成测试,验证系统的功能完整性和正确性。
4.3 系统测试对整个学生管理系统进行全面的系统测试,包括正常场景和异常场景的测试,确保系统能够满足需求并稳定可靠。
5、软件部署5.1 环境准备部署系统所需的软件和硬件环境,包括操作系统、数据库等。
5.2 安装部署将开发完成的系统安装到目标机器上,配置必要的参数,确保系统能够正常运行。
5.3 系统发布将系统发布到生产环境,对外提供服务。
6、软件维护6.1 问题定位与修复对用户反馈的问题进行定位和修复,确保系统的稳定性和可用性。
软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案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.法律名词及注释本文涉及的法律名词及注释:无。
软件工程课后习题及其答案

软件工程习题软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:、软件工程需要解决的问题包括: 费用费用 、 可靠性可靠性 、 可维护性可维护性 、 生产率生产率 和 重用重用。
2、到目前为止,软件生产的发展经历了三个阶段,即 程序设计程序设计程序设计 、 程序系统程序系统和 软件工程件工程。
3、计算机科学中的研究曾国均可用于软件工程,计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于但计算机科学侧重于但计算机科学侧重于 原理和理论原理和理论,而软件工程侧重于软件工程侧重于 软件系统构造软件系统构造。
4、软件工程有用管理科学的方法和原理进行、软件工程有用管理科学的方法和原理进行 软件生产的管理软件生产的管理。
5、软件工程是用科学知识和技术原理来、软件工程是用科学知识和技术原理来 定义定义 、 开发开发 、 维护维护 软件的一门科学。
软件的一门科学。
软件的一门科学。
6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。
在软件开发技术方面,技术方面,主要研究主要研究主要研究 开发方法、开发方法、开发方法、 开发过程、开发过程、 开发工具开发工具。
在软件开发管理技术方面主要研究研究 管理学管理学管理学 、 经济学经济学经济学 、 心理学心理学心理学 。
7、作为一门交叉学科,软件工程具有很强的综合性,它涉及 计算机科学计算机科学计算机科学 、 工程科工程科学 、 管理科学管理科学管理科学 、 数学数学 等领域。
等领域。
8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。
通常包括包括 问题定义、可行性研究问题定义、可行性研究 、需求分析、需求分析 、 总体设计总体设计总体设计 、 详细设计详细设计详细设计 、 编码编码 、测试测试 、 维护维护维护 等活动,可以将这些活动以适当方式分配到不同阶段去完成。
等活动,可以将这些活动以适当方式分配到不同阶段去完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题
1、软件的生存期包括:问题的定义、()、需要分析三个阶段。
2、可行性分析的内容包括:()、经济可行性、操作可行性和法律可行性。
3、模块独立性设计的标准是:模块化、抽象、()、和信息隐藏。
4、主程序员组由主程序员、()、后备程序员、编程秘书组成。
5、成本/效益分析目的是从()评价开发一个新的软件项目是否可行。
6、模块是由边界元素限定的()(例如,数据说明、可执行的语句等)的
序列。
7、模块化就是把程序划分成()且可独立访问的模块。
8、人类在认识复杂现象的过程中使用的最强有力的思维工具是()。
9、人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此,必须对人机界面设计给以()。
10、质量保证是为保证产品和服务充分满足消费者要求的质量而进行的有
计划、()的活动。
二、问答题
1. 简述需求分析的基本步骤。
2.有哪些常用的需求收集方法和技术?试选择某一系统并根据方法进行需求收集。
3.数据流图与数据词典之间有什么关系?
4.试考察某一学生档案管理系统,用实体联系图描述该系统的主要数据。
5.试考察某一学生成绩管理系统,对其进行尽可能详细的功能建模和数据建模。
6.举例说明“做什么”与“怎么做”之间的差别。
7.某学校计算机教材购销系统有以下功能:
学生买书,首先填写购书单,计算机根据各班学生用书表及售书登记表审查有效性。
若有效,计算机根据教材库存表进一步判断书库是否有书;若有书,计算机把领书单返回给学生,学生凭领书单到书库领书。
对脱销的教材,系统用缺书单的形式通知书库,新书购进库后,也由书库将进书通知返回给系统。
请就以上系统功能画出分层的DFD图(第三层只需画出销售子系统的DFD 图)。
参考答案
一、填空题
1、可行性分析
2、技术可行性
3、逐步求精
4、程序员
5、经济角度
6、程序元素
7、独立命名
8、抽象
9、足够重视 10、有组织
二、问答题
1.需求分析的基本步骤:
1)获取用户需求
2)分析用户需求
3)编写需求文档
4)评审需求文档
5)管理需求
2.需求收集方法和技术:
1)跟班作业
通过亲身参加业务工作来了解业务活动的情况。
这种方法可以比较准确地理解用户的需求,但比较耗费时间。
2)开调查会
通过与用户座谈来了解业务活动情况及用户需求。
座谈时,参加者之间可以相互启发。
3)请专人介绍
4)询问
对某些调查中的问题,可以找专人询问。
5)设计调查表,请用户填写
如果调查表设计得合理,这种方法是很有效的,也很易于为用户所接受。
6)查阅记录
即查阅与原系统有关的数据记录,包括原始单据、账簿、报表等。
比如:学生档案系统。
(1)跟班作业:需求分析人员和档案管理人员在一起工作,了解业务流程,咨询和记录业务活动。
(2)开调查会:约定时间和有关部门进行沟通,理解需求。
(3)请专业人员进行培训,讲解档案系统工作内容的方方面面。
(4)不清楚的时候,询问相关负责人或办理相关档案手续的人。
(5)根据前面的分析,设计合理的调查表,请用户填写。
(6)查询以前管理模式下的文档,数据记录。
比如学生档案表所涉及的内容。
相关需要打印的表等。
3.数据词典(Data Dictionary,简称DD)和数据流图密切配合,能清楚地表达数据处理的要求。
数据词典用于对数据流图中出现的所有成分给出定义,它使数据
流图上的数据流名字、加工名字和数据存贮名字具有确切的解释。
每一条解释就是一条词条,按一定的顺序将所有词条排列起来,就构成了数据词典,就像日常使用的英汉词典、新华词典一样。
数据流图(Data Flow Diagram,简称DFD) 是一种最常用的结构化分析工具,它从数据传递和加工角度,以图形的方式刻画系统内的数据运动情况。
实体联系图
5.略。
6.“做什么”是指一个系统必须完成的是什么功能,“如何做”是指系统为完成指定功能而应如何建立。
就是说,在一个模型中应能明确地区别出功能与实现间的差别。
比如:档案管理系统确定什么样的功能,再确定如何实现这样的功能。
比如有的系统需要网络查询功能,提供客户端浏览器访问,则使用B/S架构,有的系统仅供内部使用,可以提供客户端程序。
或者两者兼有的需求,则需同时提供2种系统设计。
还有根据做什么使用什么样的工具等等。
7. 教材购书系统的顶层数据流图(DFD)如下图所示:
教材购书系统的第二层数据流图如下图所示:
F2缺书登记录
销售子系统的第三层数据流图如下图所示:
F2缺书登记录。