软件工程各章作业习题的名词解释和问答题参考答案
《软件工程》各章课后习题答案
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件工程问答题答案(仅供参考)(精品)
软件工程问答题答案(仅供参考)(精品)软件工程问答题答案(仅供参考)(精品)软件工程是指通过计算机科学与工程学的原理、方法和工具来开发和维护软件的一门学科。
在软件工程领域,存在着许多关键问题和常见的问答题。
本文将为你提供一些常见软件工程问答题的答案,希望能够帮助你更好地理解和应用软件工程的知识。
1. 什么是软件需求工程?软件需求工程是软件工程中的一个重要领域,它关注的是对用户需求进行分析、规范和管理,以便于软件系统的开发和交付。
软件需求工程包括可行性研究、需求获取、需求分析、需求规格说明和需求验证等过程。
2. 请解释软件配置管理是什么?软件配置管理是指通过管理软件系统中的各种配置项和配置变更,以确保软件系统的正确、完整和可追踪。
它包括配置项识别、变更控制、版本控制、配置库管理等活动,旨在提高软件开发和维护过程的可控性和可靠性。
3. 请介绍软件测试的目的和重要性。
软件测试的目的是发现软件系统中的错误、缺陷和潜在问题,以便在软件交付之前进行修复和改进。
软件测试的重要性在于可以提高软件系统的质量和可靠性,降低软件使用过程中的风险和损失。
4. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它描述了软件系统中各个组件之间的关系和交互,以及软件系统的总体设计原则和理念。
软件架构可以帮助团队成员理解和沟通软件系统的设计和实现。
5. 请解释敏捷开发方法。
敏捷开发方法是一种以迭代、循环和适应性为核心的软件开发方法。
它强调团队合作、快速反馈和不断改进,在不断变化的需求环境下能够更加灵活地开发和交付高质量的软件系统。
6. 请介绍软件项目管理的过程和技术。
软件项目管理包括项目计划、项目组织、项目监控和项目交付等过程。
它涉及到时间管理、成本管理、风险管理、质量管理等技术和工具,以确保软件项目能够按时、按量和按质完成。
7. 请解释软件工程中的代码重构。
代码重构是指在不改变软件系统外部行为的前提下,通过对代码的重新组织和调整来改进软件系统的内部质量和可理解性。
软件工程―名词解释
全国 2010年 10月三、名词解释题 (本大题共 5小题,每小题 3分,共 15分1. 软件生存周期模型答案:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
(1分软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则, (1分确立开发过程所遵守的规定和限制, 便于各种活动的协调以及各种人员的有效通信, 有利于活动重用和活动管理。
(1分2. 模块答案:模块在程序中是数据说明、可执行语句等程序对象的集合, 或者是单独命名和编址的元素,如高级语言中的过程、函数和子程序等。
(2分在软件的体系结构中,模块是可组合、分解和更换的单元。
(1分3. 可维护性答案:软件可维护性是指软件能够被理解、校正、适应及增强功能的容易程度。
(2分可维护性可用 7个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
(1分4. 继承性答案:继承性是子类自动共享父类数据结构和方法的机制, 这是类之间的一种关系。
(2分在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
(1分5. 投资回收期答案:投资回收期是衡量一个开发工程价值的经济指标。
(1分投资回收期就是积累的经济效益等于最初的投资所需要的时间。
(2分全国 2010年 1月31.软件工程过程 :即软件生命周期的方法、工具和概念32.模块化 :模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程, 有多种属性, 分别反映其内部特性 . 每个模块完成一个特定的子功能, 所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能33.集成测试 :集成测试,也叫组装测试或联合测试。
在单元测试的基础上,将所有模块按照设计要求 (如根据结构图组装成为子系统或系统, 进行集成测试。
34.软件可靠性 :(1在规定的条件下,在规定的时间内,软件不引起系统失效的概率; (2在规定的时间周期内,在所述条件下程序执行所要求的功能的能力;35.模块的控制范围2008年 10月1. 过程设计语言 (PDL答案:也称程序描述语言, 又称为伪码, 是一种用于描述模块算法设计和处理细节的语言。
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
软件工程各章作业习题的名词解释和问答题参考答案
软件工程各章作业习题的名词解说和问答题参照答案第一章:1:什么是软件危机开发软件因为管理杂乱,加入软件规模愈来愈大,愈来愈复杂,造成软件开发失败。
2:软件工程过程指获得、供给、开发、操作和保护软件时要实行的过程、活动和任务。
3:软件生成周期可行性研究与计划、需求剖析、整体设计、详尽设计、实现、测试、使用与保护4:有哪些软件周期模型瀑布模型、原型模型、增量模型、螺旋模型。
5:软件计算机程序及说明程序的各样文档6:个体手工劳动个人编写程序7:小生产合作方式多人编写程序8:软件的特色是一种逻辑产品,软件的生产主假如研制,软件产品不会用坏,软件生产主假如脑力劳动,软件的成本高。
9:软件文档有关程序的功能、设计、图形资料等等。
第二章:三.名词解说1.可行性研究以最小代价 ,在尽可能短的时间内,确立该软件项目能否能够开发,能否值得开发.2.技术可行性主要研究开发的软件技术风险有多大3.经济可行性主要研究开发成功后可否获得应有的效益4.社会可行性主要研究开发的软件能否存在责任和侵权 , 以及与目前管理制度 , 人员素质 , 操作方式的矛盾可否解决 .四. 问答题1.可行性研究的任务是什么 ?第一初步确立项目的规模,目标,拘束和限制条件,决定系统的主要功能,进行简要压缩 ,提出几种解决方案. 对每种方案提出建议.2.可行性研究有那些步骤 ?确立任务;剖析技术可行性;剖析经济可行性;剖析社会可行性;作出系统流程图;作出开发计划。
3.可行性研究的目的 .减少开发大型软件的风险,缩短开发周期 , 减小投资 , 减少使用资源 , 在尽可能短的时间内 , 确立该软件项目能否能够开发 , 能否值得开发 .第三章三.名词解说1.需求剖析指开发人员为了正确地理解 , 表达用户的要求 , 经过检查 , 剖析 , 把系统的功能 , 性能等方面正确地表达出来2.DFD数据流图四.简答题1.什么是需求剖析 ? 该阶段的基本任务是什么 ?指开发人员为了正确地理解 , 表达用户的要求 , 经过检查 , 剖析 , 把系统的功能 , 性能等方面正确地表达出来基本任务:(1)能够表达和理解问题的功能和性能;(2)能够把一个复杂问题按某种方式进行区分,并能逐渐细化,进而使复杂问题简化, 软件的功能域 , 数据域都能够区分 ;(3)成立模型 .2.简述结构化剖析的步骤这一方法的基本思想是采纳自顶向下 , 逐层分解的方法剖析整个系统 , 有效的控制系统的复杂性 .关于复杂 , 规模大的应用系统 , 采纳先抽象后详细 , 先全局后局部的思想 , 有益于掌握系统的整体目标 , 结构和功能 .第四章:三.名词解说1.软件设计确立软件结构,选择好的数据库,进行数据结构设计2.模块化把复杂问题区分为模块的过程3.信息隐蔽指模块内部办理细节和内部数据用某种手段隐蔽起来,外面模块不可以随意接见4.模块独立性希望一个模块越独立越好,每个模块达成独立的功能,与其余模块联系越少越好5.耦合性指软件结构中模块之间互相依靠的程度6.内聚性模块内部各部分履行功能组合在一同的有关程度7.模块的控制范围一个模块对部下模块的控制8.模块的作用范围指模块之间的作用,但两个模块间是平级的9.软件结构以需求剖析文档为依照,解决实现软件系统结构四.简答题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 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
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什么是计算机软件?软件的特点是什么?答:计算机软件指计算机系统中的程序及其文档。
软件的特点是:A 软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以精确得估算;B 软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;C 软件的运用没有硬件那样的机械磨损和老化问题。
1.2 简述软件的分类,并举例说明。
答:在《计算机科学技术百科全书》中,将软件分为系统软件、支撑软件和应用软件3类。
A 系统软件:系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。
系统软件和详细的应用领域无关。
例如:编译程序、操作系统等。
B 支撑软件:支撑软件是支撑软件的开发和维护的软件。
例如:数据库管理系统、网络软件、软件工具、软件开发环境等。
C 应用软件:应用软件是特定应用领域专用的软件。
例如:工程/科学计算软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
1.4 什么是软件工程?答:在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
1.5 简述软件工程的基本原则。
答:软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则:第一条:围绕适宜的开发模型;其次条:接受合适的设计方法;第三条:供应高质量的工程支撑;第四条:重视软件工程的管理。
1.6 软件生存周期分哪几个阶段?分别简述各个阶段的任务。
答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。
A计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件和其他计算机系统元素之间的关系,进行成本估算,做出进度支配,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。
B需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。
软件工程简答题名词解释
一、名词解释题软件生命周期:软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段灰盒测试:可以理解为静态的白盒测试或动态的黑盒测试,灰盒就是界于黑白之间, 对软件内部有所了解, 但不见得到了如指掌的程度, 却可以结合这些了解做些比黑盒多点的测试驱动模块(Drive):驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。
它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果QA:中文意思是品质保证软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程CMM:能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述软件质量:反映软件系统或软件产品满足明确或隐含需求的能力有关的特性总和等价类划分:等价类划分是一种典型的黑盒测试方法。
使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例集成测试:将一些“构件”集成一起时,测试它们能否正常运行。
这里“构件”可以是程序模块、客户机-服务器程序等等黑盒测试:指测试人员通过各种输入和观察软件的各种输出结果来发现软件的缺陷,而不关心程序具体如何实现的一种测试方法回归测试:指错误被修正后或软件功能、环境发生变化后进行的重新测试。
回归测试的困难在于不好确定哪些内容应当被重新测试四、简答题1、软件测试员的目标是什么?软件测试员的目标是找出软件缺陷,尽可能早一些,并确保得以修复。
2、软件测试的目的是什么?软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情,另一方面是确认软件以正确的方式来做了这个事情。
第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。
第三软件测试的目的是保证整个软件开发过程是高质量的。
软件工程试题及答案(较详细)
软件工程试题及答案(较详细)软件工程试题及答案 (较详细)一、简答题1. 什么是软件工程?软件工程是一门综合应用计算机科学与工程学、管理学等知识的学科,它致力于开发和维护高质量的软件系统。
它包括需求分析、设计、编码、测试和维护等各个阶段,以确保软件项目能够按时交付、高效运行,并满足用户需求。
2. 请解释什么是软件生命周期?软件生命周期是指软件从构思、开发、使用到废弃的整个过程。
它包括需求分析、设计、编码、测试、部署和维护等多个阶段。
软件生命周期管理的目标是确保软件产品按时、按质量要求交付,并提供后续的支持与维护。
3. 请解释什么是需求工程?需求工程是软件工程中的一个重要阶段,它主要涉及对用户需求的调研、分析、规划和文档化。
通过需求工程,开发人员能够更好地理解用户需求,并将其转化为具体的软件需求规格说明书,为后续的设计和开发提供基础。
4. 什么是软件设计模式?软件设计模式是一套在软件设计过程中重复出现的解决方案。
它们被广泛接受,并被认为是开发高质量、可维护和可扩展软件的有效方法。
常见的软件设计模式包括单例模式、工厂模式、观察者模式等。
二、分析题1. 请说明面向对象和面向过程的编程范式的区别。
面向对象编程(OOP)和面向过程编程(POP)是两种不同的编程范式。
面向过程编程更侧重于任务的步骤和流程,它将问题分解为多个步骤,通过一系列函数或过程的调用来完成任务。
面向过程编程更加注重解决问题的步骤和执行过程。
面向对象编程更注重数据和对象的定义和封装,它将问题看作是一组对象的交互。
面向对象编程通过定义类、创建对象以及对象之间的协作来解决问题。
2. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它定义了软件系统中各个组件的职责、交互方式和部署方式。
常见的软件架构模式包括分层架构、客户端-服务器架构、微服务架构等。
3. 解释软件测试中的黑盒测试和白盒测试。
黑盒测试是一种测试方法,它基于对软件系统的功能需求进行测试,而不考虑内部的实现细节。
软件工程习题答案
软件⼯程习题答案第1章软件⼯程概述参考答案⼀. 选择题1. B2. A3. B4. B5. D6. B7. D8. A9. D⼆. 填空题1. 设计编码测试2. 软件费⽤可靠性可维护性可重⽤性及⽣产率等3. 计算机软件开发和维护4. 分解抽象和信息隐蔽⼀致性确定性5. 软件的总⽬标待开发软件的需求6. ⼆三7. 计划阶段开发阶段维护阶段8. 软件需求明确9. 制定计划风险分析开发实施⽤户评估三. 名词解释1. 软件的定义如下:在运⾏中能提供所希望的功能和性能的指令集,使程序能正确运⾏的数据结构,描述程序研制过程和⽅法所⽤的⽂档。
2. 软件⼯程是指导计算机软件开发和维护的⼀门学科。
3. 软件危机指的是软件开发和维护过程中遇到的⼀系列严重问题。
4. 就是从提出软件产品开始,直到该软件产品被淘汰的全过程。
5. 瀑布模型⼜称⽣存周期模型,由B.M.Boehm提出,是软件⼯程的基础模型。
其核⼼思想是按⼯序将问题化简,将功能的实现与设计分开,便于分⼯协作。
6. 螺旋模型将瀑布模型与演化模型结合起来,并且加⼊两种模型均忽略了的风险分析,弥补了两者的不⾜。
四. 简答题1. 软件既是知识产品,⼜是与汽车,建筑物⼀样的⼯业产品,此外,软件还具有类似艺术,学术那样的知识性创造和特点,软件的特点如下:软件是⼀种逻辑实体,⽽不是具体的物理实体,因⽽它具有抽象性;软件是通过⼈们的智⼒活动,把知识与技术转化成信息的⼀种产品,是在研制、开发中被创造出来的;在软件的运⾏和使⽤期间,没有硬件那样的机械磨损、⽼化问题;软件的开发和运⾏经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系;软件的开发尚未完全摆脱⼿⼯的开发⽅式;软件的开发费⽤越来越⾼,成本相当昂贵;软件的开发是⼀个复杂的过程,因⽽管理是软件开发过程中必不可少的內容。
2. 软件危机主要表现如下:产品不符合⽤户的实际需要;软件开发⽣产率提⾼的速度远远不能满⾜客观需要,软件的⽣产率远远低于硬件⽣产率和计算机应⽤的增长速度,使⼈们不能充分利⽤现代计算机硬件提供的巨⼤潜⼒;软件产品的质量差;对软件开发成本和进度的估计常常不准确;软件的可维护性差;软件⽂档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的⽐例逐年上升。
软件工程-名词解释应用题汇总带答案
三、简答题(每题5分,共25分)1.分析软件危机产生的主要原因有哪些?答:导致软件危机的主要原因有:(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加1 个要点1分,只要答上5个要点得5分!2.说明结构化程序设计的主要思想是什么?答:(1)自顶向下、逐步求精的程序设计方法(2分)(2)使用3种基本控制结构、单入口、单出口来构造程序。
(3分)3.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?答:(1)单元测试,测试对象对单元模块(2分)(2)集成测试,测试对象为组装后的程序模块(2分)(3)确认测试,测试对象为可运行的目标软件系统(1分)4.需求分析与软件设计二个阶段任务的主要区别是什么?答:需求分析定义软件的用户需求,即定义待开发软件能做什么(2.5分)软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。
(2.5分)5、简述文档在软件工程中的作用。
(5分)(1)提高软件开发过程的能见度(1分)(2)提高开发效率、便于用户了解软件功能、性能(1分)(3)作为开发人员阶段工作成果和结束标志(1分)(4)记录开发过程的有关信息便于使用与维护(1分);(5)提供软件运行、维护和培训有关资料;(1分)四、某培训中心要研制一个计算机管理系统。
它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。
1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。
2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。
3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。
1.对以上问题画出数据流程图。
2.画出该培训管理的软件结构图的主图。
软件工程名词解释和简答题
1.软件工程。
是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
…2.数据流图:数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。
3.模块:是数据说明、可执行语句等程序对象的集合,模块可以单独被命名、而且可通过名字来访间。
4.白盒测试法:白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
5.耦合性:也称为模块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
模块间耦合高低取决于模块间接口的复杂性]调用的方法及传递的信息。
软件危机:是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
计算机软件:与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。
或软件=程序+数据+文档。
UML:统一建模语言,是面向对象软件的标准化建模语言。
1、什么是软件危机?为什么会产生软件危机答:(1)软件危机是指软件在开发和维护过程中遇见的一系列严重问题,主要包含二方面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。
(2)产生软件危机的原因:一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。
2、简述结构化程序设计方法的基本要点。
答:(1)采用自顶向下,逐步求精的程序设计方法。
(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(2分)()采用主程序员的组织形式。
1分)3.简述软件工程的目标和面临的主要问题答:软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。
软件工程复习题名词解释
三名词解释(每小题4分,共20分)1.PDPowerdesigner是面向数据分析、对象分析、对象设计和实现,集成UML 和数据建模的CASE工具。
2.等价类划分法等价类划分法是黑盒法设计方案的一种。
它把所有可能的输入数据划分成有限个等价类,用每个等价类中的一个典型值作为测试数据。
3.模块模块是能够单独命名,能独立地完成一定功能,由边界元素限定的程序元素的序列。
4.流程图流程图是历史最悠久、使用最广泛的描述软件设计的方法,能直观地描述过程的控制流程,便于初学者掌握。
5.数据字典数据字典是分析模型中出现的所有名字的一个集合,还包括有关命名实体的描述。
如何名字是一个复合对象。
它还应有对其组成部分的描述。
6.对象对象视作一个融合了数据及在其上操作的行为的统一的软件组件。
7.软件软件是计算机系统中与硬件相对应的另一部分,包括一系列程序、数据及其相关文档的集合。
8.DOMDocument Object Model,文档对象模型可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。
9.MVCModel View Controller,MVC是一个软件设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:模型、视图、控制器。
它们各自处理自己的任务。
10.UMLUnified Modeling Language是一种描述、构造、可视化和文档化的软件建模语言。
11.ERDEntity-Relation Diagram实体关系图,实体关系模型描述数据实体、关联以及实体属性。
该模型用实体关系图描述显示世界中的实体,而不涉及实体在系统中的实现方法。
12.ServletServlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
13.BOMBrowserObjectModel浏览器对象模型,研发者通过使用BOM,可移动窗口、更改状态栏文本、执行其它不与页面内容发生直接了解的操作。
软件工程课后答案(考试重点)
习题一名词解释:软件:是计算机系统运行的指令、数据和资料的集合,包括指令程序、数据、相关文档和完善的售后服务。
软件工程:是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。
软件生命周期:是指从提出开发软件产品开始,直到软件报废为止的全过程。
软件生命周期具体包括软件定义、开发和运行三个阶段。
P224、什么是软件危机?如何消除软件危机?答:所谓软件危机,就是指在软件开发和软件维护过程中所存在的一系列严重问题。
消除途径主要有以下几个:(1)理解软件的概念,软件是程序、数据及相关文档的完整集合。
(2)应该推广使用在实践中总结出来的开发软件的成功技术和方法。
(3)应该开发和使用更好的软件工具。
(4)尽量减少软件维护的代价,提高软件的可维护性,这也是软件工程学的一个重要目标。
7、什么是软件生命周期?软件生命周期主要包括哪些阶段?答:软件生命周期是指从提出开发软件产品开始,直到软件报废为止的全过程。
具体包括软件定义、开发和运行三个阶段,每个阶段又可进—步划分成若干个子阶段。
软件定义阶段进一步划分成两个阶段,即软件开发计划(包括问题定义、可行性研究)和需求分析。
定义阶段是对软件进行一个初步的分析,确定软件要完成的总目标,确切回答系统―要解决的问题是什么‖这一问题。
软件开发阶段由四个阶段组成:概要设计、详细设计、编码和测试。
其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
运行阶段包括检验、交付与维护阶段,他们的主要任务是使软件持久地满足用户的需要。
9、常见的软件过程模型有几个?都有什么特点?说明每种模型的适用范围。
答:略习题二1. 简述问题定义的步骤?答:问题定义步骤如下:首先,明确系统目标规模和基本要求。
系统分析员针对用户的要求做出详细的调查研究,认真听取用户对问题的介绍,阅读与问题相关的资料,深入现场,调查开发系统的背景,了解用户对开发的要求。
其次,分析现有系统,设计可能方案。
最后,与用户反复讨论,写出双方认可的问题定义报告。
《软件工程》各章课后习题答案
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程各章作业习题的名词解释和问答题参考答案-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII软件工程各章作业习题的名词解释和问答题参考答案第一章:1:什么是软件危机开发软件由于管理混乱,加入软件规模越来越大,越来越复杂,造成软件开发失败。
2:软件工程过程指获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。
3:软件生成周期可行性研究与计划、需求分析、总体设计、详细设计、实现、测试、使用与维护4:有哪些软件周期模型瀑布模型、原型模型、增量模型、螺旋模型。
5:软件计算机程序及说明程序的各种文档6:个体手工劳动个人编写程序7:小生产合作方式多人编写程序8:软件的特点是一种逻辑产品,软件的生产主要是研制,软件产品不会用坏,软件生产主要是脑力劳动,软件的成本高。
9:软件文档有关程序的功能、设计、图形资料等等。
第二章:三. 名词解释1.可行性研究以最小代价, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.2.技术可行性主要研究开发的软件技术风险有多大3.经济可行性主要研究开发成功后能否得到应有的效益4.社会可行性主要研究开发的软件是否存在责任和侵权, 以及与当前管理制度, 人员素质, 操作方式的矛盾能否解决.四.问答题1. 可行性研究的任务是什么?首先初步确定项目的规模, 目标, 约束和限制条件, 决定系统的主要功能, 进行简要压缩, 提出几种解决方案.对每种方案提出意见.2.可行性研究有那些步骤?确定任务;分析技术可行性;分析经济可行性;分析社会可行性;作出系统流程图;作出开发计划。
3.可行性研究的目的.减少开发大型软件的风险,缩短开发周期, 减小投资, 减少使用资源, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.第三章三. 名词解释1. 需求分析指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来2. DFD数据流图四.简答题1.什么是需求分析该阶段的基本任务是什么2.指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来基本任务:(1) 能够表达和理解问题的功能和性能;(2) 可以把一个复杂问题按某种方式进行划分, 并能逐步细化, 从而使复杂问题简化,软件的功能域,数据域都可以划分;(3) 建立模型.2. 简述结构化分析的步骤这一方法的基本思想是采用自顶向下,逐层分解的方法分析整个系统,有效的控制系统的复杂性.对于复杂, 规模大的应用系统,采用先抽象后具体, 先全局后局部的思想,有利于把握系统的总体目标, 结构和功能.第四章:三. 名词解释1. 软件设计确定软件结构,选择好的数据库,进行数据结构设计2.模块化把复杂问题划分为模块的过程3.信息隐蔽指模块内部处理细节和内部数据用某种手段隐蔽起来,外部模块不能随便访问4.模块独立性希望一个模块越独立越好,每个模块完成独立的功能,与其他模块联系越少越好5.耦合性指软件结构中模块之间相互依赖的程度6.内聚性模块内部各部分执行功能组合在一起的相关程度7.模块的控制范围一个模块对下属模块的控制8.模块的作用范围指模块之间的作用,但两个模块间是平级的9. 软件结构以需求分析文档为依据,解决实现软件体系结构四.简答题1.什么是软件概要设计, 该阶段的基本任务是什么?以需求分析文档为依据,解决实现软件体系结构。
基本任务:确定软件结构,分解各部分的模块,确定模块的功能,调用关系及接口信息,将用户的需求分配到适当的位置上,得出系统的模块层次结构。
2.软件设计的基本原理包括那些内容?模块与模块化;抽象;信息隐蔽;模块独立性3.模块的耦合性, 内聚性包括那些内容其含义耦合性:无直接耦合(模块之间无直接联系);数据耦合(模块间传递数据);标记耦合(模块间传递数据结构和地址)控制耦合(模块间传递控制变量)公共耦合(模块间通过公共关系传递)内容耦合(一个模块与另一个模块内部数据有关)内聚性:功能内聚(仅完成一个功能的各成分组合在一起)顺序内聚(与同一功能相关的且按顺序执行的各成分组合在一起)通信内聚(在同一数据结构上操作的各成分组合在一起)时间内聚(同一时间内执行的各成分组合在一起)逻辑内聚(逻辑上相似的各成分组合在一起)偶然内聚(将语句和程序段随意地组合在一起,他们之间无任何联系)4.简述软件结构设计优化准则(1)划分模块时,尽量做到模块内部高内聚,模块之间低耦合,保持模块相对独立性。
(2)一个模块的作用范围应该在自己的扩展范围内。
(3)软件结构的深度,宽度应适当。
(4)模块的大小要适中(5)模块的接口要简单、清晰,传递的参数数量不能太多,类型不要太复杂。
第五章:三.名词解释1 详细设计是解决如何实现具体的每个模块功能,涉及每个模块的处理过程,构造其实现算法。
2. 结构化程序设计设计容易理解,容易验证的程序。
四. 问答题1详细设计的基本任务是什么?设计算法,设计数据库,对某些固定的数据值进行代码设计,对界面及输入输出格式设计。
2结构化程序设计方法的基本要点是什么?使用顺序,选择,循环三种基本控制结构自顶向下,逐步求精的构造算法或程序。
3.详细设计主要使用那一个描述工具其特点4.工具:结构化程序设计特点:首先考虑程序完成的主要功能的步骤;要考虑判断处理和重复处理的问题;考虑数据对程序的影响;三种基本控制结构只能按顺序出现或完整嵌套,不能出现相互交叉的情况。
第六章三. 名词解释1. 编码编程序2. 程序设计风格指人们编程的习惯特点四. 简答题1. 在项目开发时, 选择程序设计语言通常考虑那些因素?根据项目的应用领域;软件的开发方法;软件的执行环境;算法及数据机构的复杂性;软件开发人员的知识水平;合理选择编程语言。
2 什么是程序设计风格应该在那些方面注意培养良好的设计风格(1)指人们编程的习惯特点(2)程序加注释;变量数据按意义取名;语句简单直接,内容要缩进,使用空格,空行提高程序的清晰度;输入输出提示化,表格化,图形化第七章三. 名词解释1.软件测试为了发现软件中的错误而执行程序的过程2. 黑盒法着重于测试呗测程序的功能3. 白盒法从被测试程序内部的逻辑结构入手来设计测试用例4.渐增式测试逐步组装模块,组装一部分测试一部分5 非渐增式测试将所有经过单元测试的模块一起连接起来进行测试四.问答题1软件测试的目的是什么?是为了发现软件中的错误而执行程序的过程,它的目标是尽可能多的控制软件中存在的错误,将测试结果作为纠错依据。
2白盒法有那些逻辑覆盖标准这些标准有什么关系语句覆盖:是每个语句至少执行一次;判定覆盖:是每个判定的每个分支至少执行一次;条件覆盖:是每个判定的每个条件应该取到各种可能的值;判定/条件覆盖:同时满足判定和条件覆盖;条件组合覆盖:使每个判定中各条件的每一种组合至少出现一次;路径覆盖:使程序中每一条可能的路径至少执行一次3属于黑盒法的测试用例设计方法有那几种它们的特点等价类划分:将输入数据划分成若干合理的或不合理的等价类;边界值分析:检查边界情况的测试用例能搞笑的发现错误;错误推测:根据经验或直觉推测出程序种可能存在的各种错误;因果图:检查输入条件的各种组合可能引起的错误4. 软件测试要经过那几个阶段各个阶段与什么文档有关先从每个模块的源程序出发,进行单元测试,然后按概要设计说明书的要求,将各模块组装起来进行集成测试,随后按需求规格说明书要求,对软件进行确认测试,最后将软件与系统中其他元素协调起来,进行系统测试。
第八章三.名词解释1.校正性维护识别和纠正隐含在软件中的错误过程2.适应性维护适应计算机运行环境的不断变化而修改软件的过程3.完善性维护适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程4. 预防性维护为了提高软件的可靠性和可维护性而对软件作出的修改5.软件可维护性指软件能够被理解、校正、适应及增加功能的容易程度6.软件维护的副作用因修改软件而造成的错误或其他不希望出现的情况问答题1维护有那些类型其内容(1)校正性维护识别和纠正隐含在软件中的错误过程(2)适应性维护适应计算机运行环境的不断变化而修改软件的过程(3)完善性维护适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程(4)预防性维护为了提高软件的可靠性和可维护性而对软件作出的修改2.软件维护的特点是什么?(1)维护费用高,维护困难(2)维护的困难性,主要是由开发的软件的可维护性所引起的,软件结构差,文档不齐全,开发不规范,开发技术陈旧,维护工作不吸引人。
3.软件维护的流程是什么?制定维护申请报告;进行维护工作;编制软件维护修改报告;复审。
4.软件维护的副作用有那些?编码、数据、文档副作用等5.提高可维护性有那些方法?建立明确的软件质量目标;利用先进的软件开发技术和工具;尽可能选择好的可维护语言;改进程序的文档。