软件工程简答题答案 第五版.doc_第1页
软件工程简答题答案 第五版.doc_第2页
软件工程简答题答案 第五版.doc_第3页
软件工程简答题答案 第五版.doc_第4页
软件工程简答题答案 第五版.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文件软件工程的简单解答第一章绪论1 .什么是软件危机? 软件危机是如何表现的? 软件危机的原因是什么?答:软件危机是计算机软件开发和维护过程中遇到的一系列重大问题。 主要指的是如何开发软件,如何增加对软件的需求,如何维护传统的不断增长的软件。表达: (1)软件开发的成本和进展估计不准确。 (2)开发的软件产品不能完全满足用户的要求,用户对完成的软件系统不满意的现象时常发生。 (3)开发的软件可靠性差。 (4)软件通常没有适当的文件资料。 (5)软件的保养性差。 (6)提高软件开发生产率的速度远远不及计算机应用普及的深远趋势。原因:软件开发中遇到的问题由于找不到解决办法,积累了问题,形成了尖锐的矛盾,引起了软件危机。2 .简述软件的发展过程。答:软件生产的发展分为三个年代: (1)编程时代:在此时期,软件生产主要是个人手工生产方式。 (2)程序系统时代:随着计算机应用领域的扩大,对软件的需求也在增加。 由于软件处理问题领域扩大,程序复杂,设计者不得不以个人手工方式构成小集体合作,形成了工作业生产方式小集体合作生产的程序体系时代。 (3)软件工程时代:软件工程时代的生产方式采用工程概念、原理、技术和方法,利用数据库、开发工具、开发环境、网络、分布、面向对象技术开发软件。3 .什么是软件工程,软件工程是如何克服软件危机的?答:软件工程是将系统规范、可测量的工程化方法应用于软件开发、运行和维护的全过程和上述方法的研究。 为了克服软件危机,人们从其他产业的工程化生产中得到启示,采用工程的概念、原理、技术和方法开发和维护软件。4 .软件工程的目标是什么? 软件工程有哪些原则?答:软件工程的目标是以一定的成本、进度为前提,开发具有修正性、有效性、可靠性、可理解性、可维护性、重用性、适应性、移植性、跟踪性、互操作性,满足用户需求的软件产品。 原则包括抽象、模块化、信息隐藏、局部化、完整性、完整性和验证性。5 .为什么软件工程是一门综合交叉学科?答:因为软件工程涉及哲学、计算机科学、工程科学、管理科学、数学和应用领域的知识。6 .软件工程方法学的基本内容是什么?答:基本内容是: (1)结构化理论和方法。 (2)模块技术和数据抽象。 (3)软件测试和程序准确性证明。 (4)软件分析和设计方法、工具和环境。 (五)软件工程管理和质量评价。7 .软件产品有什么特殊性质?a :找不到8 .软件工程学研究的对象是什么?答:软件工程研究的主要内容有软件开发技术和软件开发管理两个方面。 在软件开发技术中,研究了软件开发方法、软件开发过程、软件开发工具和环境。 软件开发管理主要研究软件管理学、软件经济学、软件心理学等。第二章基本理论1 .什么是软件生命周期模型? 主要有模型吗?答:软件生命周期模型是一个描述软件开发过程中各种活动如何执行的模型。 主要有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型、知识库模型和转换模型。2 .什么是软件开发方法? 有那些主要的开发方法吗?答:软件开发方法是使用已经定义的技术集和符号来表达组织软件生产过程的习惯的方法。 主要有结构化方法、杰克逊方法、维也纳开发方法和面向对象开发方法。3 .开发软件为什么首先需要决定软件的生命周期模型?答:强大的软件生命周期模型为软件开发提供了强有力的支持,为软件开发中的所有活动提供了统一的政策保证,为参与软件开发的所有成员提供了支持和指导。 揭示如何演绎软件过程思想,是软件生命周期建模技术的基础,也是构建软件开发环境的核心。4 .软件工程流程是否包括这些流程?答:包括以下七个进程: (1)开发流程(2)管理流程(3)供给流程(4)取得流程(5)运用流程(6)维护流程(7)支持流程5 .软件生命周期内的阶段划分为什么会受到软件规模、性质、种类、开发方法等的影响?答:软件在生存期内的每个阶段都有明显的特点,有相对独立的任务,有其专业的方法和工具。6 .软件的定义和分析时间主要解决哪些问题?答:一般而言,主要解决以下问题: (1)要做的是什么软件?(2)没有可行性吗? (3)软件的具体需求是什么? (4)检查标准是什么?7 .瀑布模型的主要开发过程和优缺点是什么?答:开发过程分为六个阶段:系统需求分析、软件需求分析、系统设计、软件代码、系统测试和软件维护。 优缺点:简单说明原型模型的特征,与瀑布模型的重要区别是什么答:原型模型的最大特点是利用原型法技术快速实现系统的初步模型,采用逐步精密的方法逐步完成原型,即开发人员与用户交流,更加准确地获得用户的需求,这是一个新的阶段与瀑布模型的重要区别在于,在瀑布模型的长期开发过程中,可以大幅度避免产品原型看不见的现象。9 .简述喷泉模型的基本思想。答:喷泉模型是基于面向对象的软件开发方法,以用户的需求为原动力,驱动对象的模型。 适用于面向对象的开发方法。第三章可行性研究1 .可行性研究论证主要集中在那些领域吗?a :找不到2 .如何估算软件的成本?a :首先使用代码行的定量推定方法,可以将开发软件实现各功能所需的源代码行数与成本相结合。 其次,利用任务分解技术可以估算成本。3 .可行性研究的任务是什么?答:一般从以下四个方面研究系统方案的可行性。 (1)技术可行性研究(2)经济可行性研究(3)法律可行性研究(4)开发方案的选择性研究4 .简述可行性研究的程序。a :研究顺序: (1)系统定义(2)进行现行系统的分析研究(3)导出新系统的逻辑模型(4)设计方案(5)可推荐的方案(6)制作可行性研究报告书5 .为什么在对软件进行系统分析之前要制定系统标准?a :找不到6 .可行性研究报告的主要内容是什么?a:(1)引言(2)可行性研究前提(3)分析现行系统(4)分析提出的系统技术可行性(5)分析提出的系统经济可行性(6)分析社会因素可行性(7)其他备选方案(8)的结论意见7 .在成本估算中,您认为货币的时间价值在可行性中起着什么作用?答:由于经济效益与软件生命周期的长短有关,货币的时间价值直接影响软件的开发和维护成本,直接影响软件的经济效益。8 .经过可行性研究,如果项目值得开发,为什么要制定项目开发计划?答:软件开发项目的规划涉及实施项目的各个环节,因此具有整体性质。 计划的合理性和准确性常常与项目的成败有关。第四章需求分析与系统结构1 .需求分析的目的是什么?答:需求分析是软件定义期的最后阶段,其基本任务是回答“系统必须做什么”的问题,确定系统必须做什么。 向目标系统提出完全正确的要求。2 .如何建立目标系统的逻辑模型? 经过什么样的步骤?答:分析人员应根据先前获得的需求资料,进行一致性分析检验,分析,综合分阶段细分软件功能,分为各子功能。 同时分解数据域,分配给各自的功能,决定系统的构成和主要成分。 最后以文字组合的形式建立系统的逻辑模型。3 .什么是结构化分析?答:结构化方法是从分析、设计到实现使用结构化思想的软件开发方法,实际上由结构化分析、结构化设计、结构化过程设计三部分组成。 也是一种实用的软件开发方法。4 .需求分析由哪些部分组成?a:(1)明确定义问题(2)导出软件的逻辑模型(3)制作文件5 .需求分析为什么要研究问题域?a :找不到6 .良好的软件体系结构设计有什么好处?答:体系结构设计在大系统的设计、开发成功与否中起着重要作用。 该体系结构特别影响系统的非功能属性,如系统性能、可扩展性、可靠性、安全性、精度、重用性和互操作性。 因此,卓越的软件体系结构设计确保了软件系统的性能和生命周期。7 .消除数据包间循环依赖性的主要方法有哪两种?a:(1)PackageA将packagea中的循环依存要素提取到PackageC中的packagebpackagebpackagec (2) packageapackagea中的循环依存要素提取到PackageD中的packagebpackagecpackaged中8 .简述UML与z结合的精炼方法。答:基于UML和z的软件体系结构细化方法与当前工程行业的传统方法明显不同。 首先,开发原则不同,基于UML和z的软件架构的精炼方法通常希望能够直接构筑尽可能正确的系统。 其次,开发模式也不同,在采用基于UML和z的软件系统结构寻求方法的过程中,需求分析和设计阶段投入大量工作通常占总工作量的60% 70%,但代码和测试工作仅占30% 40%。第五章整体设计1 .结构化设计方法的基本思想是什么?与结构化分析有什么联系?答:结构化设计根据结构化分析生成的数据流图,按一定顺序将数据流图映射到软件结构。 结合结构化分析,构成完整的结构化分析和设计技术,是目前最广泛的软件设计方法之一。2 .简述软件总体设计阶段的基本任务。答:整个软件设计阶段的任务是大致回答系统应该如何实现,必须掌握与详细设计的不同。 (1)软件系统结构设计(2)数据结构和数据库设计(3)网络系统设计(4)完成软件整体设计文件(5)评论3 .以不同类型的模块耦合为例进行说明。a:(1)数据结合:两个模块相互通过参数交换信息,而且交换的信息只是数据。 (2)控制结合:传达的信息中有控制信息。 (3)公共环境结合:两个以上模块通过一个公共数据环境相互作用的结合。 (4)内容结合:最高等级的结合,例如p21图。4 .简述模块、模块及模块设计的概念。答:模块是程序中数据说明、可执行语句等程序对象的集合,或者是高级语言的过程、函数、子程序等名称和地址的要素。 在软件体系结构中,模块是可组合、可拆卸和可更换的单元。 模块化是一个过程,通过该过程,软件系统被从上到下分层次地划分成若干模块,以解决复杂的问题。5 .什么是模块的独立性? 为什么模块在设计过程中会独立? 关于独立性如何衡量?答:在分割模块时,尽可能实现较高的结合性、较低的结合性,维持模块的相对对立性,以此原则再谈最初的软件结构。 (1)当某些模块之间的耦合强度过高时,每个模块内的功能并不复杂,并且可以结合它们以减少信息传播和公共区域参考。 (2)如果存在多个相关模块,则应分析这些模块的功能,并在校区重复功能。6 .试论“一个模块,一个功能”的优点。a :找不到7 .简述转换流的设计步骤。a:(1)流程图中的转换中心,确定逻辑输入和逻辑输出;(2)设计软件结构的顶层和顶层;(3)设计过程中的低层模块;(4)优化设计8 .简述事务流程的设计程序。a:(1)确定数据流程图中的事务中心和加工路径;(2)设计软件结构的顶层和顶层;(3)在事务结构中,进行下层模块的设计、优化等工作。9 .试论软件设计与软件质量的关系。答案:10 .什么是模块的影响范围? 什么是模块的控制范围? 应该建立怎样的关系呢?答:在软件配置中,由于存在不同事务的需求,因此某一层的模块中存在判断处理,可能会影响其他层的模块的处理。 一个模块的工作范围应当在其控制范围内,并且具有条件确定的模块应当尽可能分层地靠近受影响的模块。11 .什么是软件结构? 简要介绍了优化软件结构设计的原则。答:软件结构是软件系统的模块层次,反映了整个系统的功能实现,是未来程序的控制层次体系。 对于一个问题,通过不同的软件结构解决,不同的设计方法和不同的分区和组织可以得到不同的软件结构。 为了提高设计质量,必须根据软件设计原理改进软件设计,优化标准如下: (1)模块独立性标准(2)控制与作用范围之间的标准(3)结构特征标准(4)模块接口标准第六章软件的详细设计1 .简述详细设计的基本原则和主要任务。答:详细设计必须完成所有设计细节。 主要任务是制作(1)数据结构设计(2)物理设计(3)算法设计(4)接口设计(5)其他设计(6)设计说明书2 .选择任意排序算法并以流程图和PDL语言描述其细节。答: PDL语言的全名是流程设计语言(Process Design Language ),根据伪代码调用模块的定义,扩展了数据定义和输入输出。 控制结构与伪代码相同。 PDL是描述模块算法的设计和详细处理的语言。您认为如何仅使用SEQUENCE和DO-WHILE这两种结构来完成IF-THEN-ELSE操作?a :找不到4 .概要设计与详细设计的区别是什么?答:软件的总体设计,完成了数据和系统结构的设计。 将系统分割成多个模块,并按照一定的原则组装,还决定了各模块的功能和模块与模块之间的外部接口。 理想情况下,详细设计是软件设计的第二阶段。 在这个极端,开发系统内外的人类理论中使用了自然语言,因此设计说明最好是自然语言。 显然,在此阶段需要定义流程细节。第七章面向对象方法概论1 .什

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论