版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章:软件工程学概述一.填空题1. 计算机科学中的研究成果均可用于软件工程,但计算机科学更侧重于(原理和理论)、而软件工程侧重于(如何建造一个软件系统)2. 计算机程序及其说明程序的各种文档称为(文件)。计算任务的处理图像对象和处理规则的描述称为(程序)。有关计算机程序功能、设计、编制、使用的文字或图形资料称为(文档)。 3. 软件开发环境是相关一组(软件工具)的集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成的。4. CASE这一术语的英文是(Computer Aided Software Engineering)。5. (平台集成)是指工具运行在相同的硬件/操作系统平台上。
2、(数据集成)是指工具使用共享数据模型来操作。(表示集成)是指工具提供相同的用户界面。6. 根据支持的范围,CASE工具可分为(窄支持)、(较宽支持)和(一般支持)工具。7. 软件危机的主要原因有(软件本身的特点)和(缺乏好的开发方法和手段)。8. (增量)模型是一种非整体开发的模型。软件在该模型中是“逐渐”开发处理的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。9. 结构化方法总得指导思想是(自顶而下逐步求精)。它的基本原则是功能的(分解)与(抽象)。它是软件工
3、程中最早出现的开发方法,特别适用于数据处理领域的问题。10. 面向对象开发方法包括(面向对象分析)、(面向对象设计)、(面向对象实现)、三部分。11. 瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括(可行性分析)、项目开发计划、(需求分析)、(概要设计) 、(详细设计)、 _(编码)、(测试)、(维护),它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。 12. 瀑布模型本质上是一种(线性)顺序模型。13. 构造原型时,必须注意(功能性能)取舍,忽略一切暂时不关心的部分。14. 属性指的是类中对象所具有的(性质(数据值)。不同对象的同一属性可以具有相同
4、或不同的(属性值)。15. 结构化方法和原型化方法是软件开发中常使用的两种方法,在实际的应用中,它们之间的关系表现为(相互补充)。二.判断题1. 瀑布模型的存在问题是缺乏灵活性。( )2. 软件是一种逻辑产品。( )3. 软件工程学科出现的主要原因是程序设计方法学的影响。( × )4. 有关计算机程序功能、设计、编制、使用的文字或图形资料称为文档。( )5. CASE开放式工作台或者提供控制集成机制,或者可剪裁,其数据集成或协议是独立的。( × )6. 在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是版本控制工具。( )7. 平台集成是指工具运行在
5、相同的硬件/操作系统平台上。( )8. 软件生存周期模型有多种,功能模型是软件生存周期模型。( × )9. 从结构化的瀑布模型看,在软件生命周期中得8个阶段中,详细设计阶段出错,对软件的影响最大。(× )10. 软件生存周期中时间最长的阶段是需求分析阶段。( × )11. 软件开发的结构化生命周期方法将软件生命周期划分成需求分析、功能定义、系统设计。( × )12. 增量模型是一种整体开发模型。( × )13. 构造模型时,主要考虑全部功能。( × )14. 瀑布模型本质上是一种线性迭代模型。(× )15. 快速原型思想是在
6、研究概要设计阶段的方法和技术中产生的。( × )三.名词解释1. 软件工程;软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。2. 软件生命周期模型;软件生命周期模型是描述软件开发过程中各种活动如何执行的模型。3. 经济可行性;进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。4. 社会可行性;要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。5. 投资回收期;投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。6. 结构冲突;输入数据与输出数据结构找不
7、到对应关系的情况,称为结构冲突。7. 模块化;把程序划分成独立运行且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。8. 对象;描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。9. 白盒测试;白盒测试又叫做结构测试,把程序看成装在一个透明的白盒子里,按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。10. 耦合;耦合是对一个软件结构内各个模块之间互连程度的度量。11. 内聚;内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。12. 系统流程图;
8、系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的信息流动)情况。13. 独立路径;独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。14. 喷泉模型;喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。15. 变换模型;变换模型是一种适合于形式化开发方法的模型,从软件需求形式化说明开始经过一系列变换,最终得到系统的目标程序。此模型必须有严格的数学理论和形式化技术的支持,尚处于研究和实验阶段。四.简答题1. 请简要说明可行性分析的内容。
9、技术可行性:技术分析说明使用现有系统是否能完成本系统的开发。经济可行性:经济分析应着重两个因素“成本和收益”,应向管理层提供有关这两方面足够的信息。如果项目的收益大于成本,则此项目可以说是经济上可行。操作可行性:系统的操作方式是否能够在组织内得到认同,是否违背有关法律、制度、道德、文化等因素。2. 请写出六种软件CASE工具。(1)Power Designer(分析设计工具或软件建模工具),(2)Rational Rose(分析设计工具或软件建模工具),(3)Win Runner(测试工具),(4)MS Project(项目管理工具),(5)MS Visio(软件开发绘图工具)、(6)VSS(
10、软件配置工具)。3. 什么是软件工程?软件工程的目标是什么? 软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对中所选方法的研究。目标:1 合理预算开发成本,付出较低的开发费用、2 实现预期的软件功能,达到较好的软件性能,满足用户的需求、3 提高软件的可维护性,降低维护费用、4 提高软件开发生产率,及时交付使用。4. 什么是结构化分析方法?该方法使用什么描述工具?结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶
11、向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止描述工具:1系统流程图 2 数据流程图3数据字典4 IPO图 5层次方框图6实体关系图7状态变迁图5. 软件设计的基本原理包括什么? 模块化:指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段。 抽象:是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其他因素。软件工程中每一步都是对软件解决方法的抽象层次的一次细化。 信息隐蔽:指在设计和确定模块时,使
12、得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。 模块独立性。指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。衡量模块独立性有两个标准耦合性和内聚性,可判断设计方案的优劣。6. 简述容错技术的四种主要手段,并解释结构冗余:包括静态冗余、动态冗余和混合冗余。信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。冗余附加技术:指为实现上述冗余技术所需的资源和技术。7. 软件生命周期划分成哪些阶段软
13、件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。1.软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析2.开发时期:总体设计、详细设计、编码和单元测试、综合测试。3.维护时期:主要任务是使软件持久地满足用户的需要。8. 简要说明软件危机产生的原因1.软件缺乏可见性,导致对软件开发成本,工作量,速度的估计不准确。2.对用户要求没有完整准确的认识,不能适应用户的需求。3.缺乏对软件产品和开发过程的质量控制,导致软件产品的质量往往靠不住。4.在实践过程中或多或少的采用了错误的方法和技术。5.开发和维护过程中文档化工作做的不好,缺乏配置管理。五.综合题解答:六.论述
14、题(方案1)1. 从软件过程中选择3种说明其名称、示意图以及特点。1. 螺旋模型:螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型瀑布模型:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。增量模型又称演化模型。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。2. 试论述软件工程方法学的3个要素。通
15、常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学, 也称范型。三要素:方法、工具和过程。3. 试论述软件生命周期模型瀑布模型:优点:1.可强迫开发员采用规范的方法 2.严格地规定了每个阶段必须提交的文件 3.要求每 个阶段交出的所有产品都必须经过质量保证小组的仔细验证。缺点:传统的瀑布模型过于理想化,是由文档驱动的。快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反 馈意见的方法,获取用户真正的需要。增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用 户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能
16、给客户组织带来的冲击。螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只 是螺旋模型中另一个周期。4. 评价软件工具的原则? (1) 易用性:友好的用户界面,用户乐于使用;(2) 对开发方法的支持:能满足预期的任务和功能需求,且能支持完成该任务所遵循的方法学;(3) 稳健性:具备自检测机制,即使在故障情况下也不会导致严重后果;(4) 性能:能使资源得到充分有效的利用;(5) 工具结构柔性:工具结构是柔软的、可修改的和可扩充的。5. 软件生命周期划分成哪些阶段 软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。1. 软件定义时期划分
17、为三个阶段:问题定义、可行性研究和需求分析2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。3. 维护时期:主要任务是使软件持久地满足用户的需要。6. 什么是软件过程?它与软件工程方法学有何关系?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型7. 试论述可行性研究的任务1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统 实现方案 4.研究每种实现方案的可行性:8. .试论述需求分析的准则1、必须并描述的信息域,根据这
18、条准则应该建立数据模型。2、必须定义软件应完成的功 能,这条准则要求建立功能模型。3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。9. 试论述需求分析的任务1、确定对系统的综合要求;2、分析系统的数据要求;3、导出系统的逻辑模型;4、修 正系统开发计划。10. 试论述应该从哪些方面研究目标系统的可行性? 技术上的可行性 使用现有的技术能实现这个系统吗?经济上的可行性 这个系统的经济效益能超过它的开发成本吗? (投资与效益)操作可行性 系统的操作方式在这个用户组织内行得通吗?社会、政策允许的可行性11. 在软件
19、开发过程中必须遵循下列软件工程原则。 抽象 : 采用分层次抽象,自顶向下、逐层细化的办法进行功能分解和过程分解,可以由抽象到具体、由复杂到简单,逐步得到问题的解。信息隐蔽 : 遵循信息封装,使用与实现分离的原则,将模块设计成“黑箱”,可以将实现的细节隐藏在模块内部,使用者只能通过模块接口访问模块中封装的数据。模块化 : 按模块划分系统的体系结构,使得各模块间有良好的接口。这样有助于信息隐蔽和抽象,有助于表示复杂的系统。局部化 : 按抽象数据类型思想及问题域中的概念来建立模块,确保模块之间低耦合,模块内部高内聚。这有助于控制解的复杂性。确定性 : 软件开发过程中所有概念的表达应是确定的、无歧义性
20、的、规范的。这有助于人们之间的沟通,保证整个开发工作协调一致。一致性 : 强调软件开发过程的标准化、统一化。包括文档格式的一致,工作流程的一致,内、外部接口的一致,系统规格说明与系统行为的一致等。完备性 : 软件系统不丢失任何重要成分,可以完全实现系统所要求功能。可验证性 : 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。12. 软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。 软件工程包括三个要素:方法、工具和过程。软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估
21、算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。软件工程方法常采用某一种特殊的语言或图形的表达方法及一套质量保证标准。软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,已经能够支持上述的软件工程方法。特别地,已经有人把诸多的软件工具集成起来,使得一种工具产生的信息可以为其它的工具所使用,这样建立起一种被称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时
22、地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。13. 什么是CASE?CASE工具有哪些分类?CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。 从学术研究角度讲,CASE是多年来在软件开发管理、软件开发方法、软件开发环境和软件工具等方面研究和发展的产物。CASE把软件开发技术、软件工具和 软件开发方法集成到一个统一而一致的框架中,并且吸引了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其它计算机领域的原理和技术。 因而,CASE领域是一个应用集成和综合的领
23、域。从产业角度讲,CASE是种类繁多的软件开发和系统集成的产品及软件工具的集合。CASE分 类:<1>CASE技术种类CASE系统所涉及到的技术有两类:一类是支持软件开发过程本身的技术;另一类是支持软件开发过程管理的技术。从 CASE系统产生方式来看,还有一种特殊的CASE技术,即元CASE技术。他是生成CASE系统的生成器所采用的技术。该生成器可用来创建支持软件 开发过程活动及过程管理的CASE系统。<2>CASE工具的分类对CASE工具分类的标准可分为:功能。功能是对软件进行分类的最常用的 标准。支持的过程。根据支持的过程,工具可分为设计工具、编程工具、维护工具等。
24、支持的范围。根据支持的范围,可分为窄支持、较宽支持和一般支持工 具。窄支持指支持过程中特定的任务,较宽支持是指支持特定过程阶段;一般支持是指支持覆盖软件过程的全部阶段或大多数阶段。1993年,Fuggetta 根据CASE系统对软件过程的支持范围,提出CASE系统可分为三类:支持单个过程任务的工具。工具可能是通用的,或者也可能归组到工作台。工作台支 持某一过程所有活动或某些活动。他们一般以或多或少的集成度组成工具集。环境支持软件过程所有活动或至少大部分。他们一般包括几个不同的工作台,将这些 工作台以某种方式集成起来。14. 软件工程标准化的意义是什么?都有哪些软件工程标准?软件工程标准化可以为
25、软件工程各个阶段的活动提供统一的行动规范和衡量准则,使得各种工作都能有章可循。软件工程标准根据其制定机构与适用范围,可分为:1、国际标准2、国家标准3、行业标准4、企业规范5、项目(课题)规范15. 什么是软件开发环境?请列出其发展情况。软件开发环境是指在计算机的基本软件的基础上,为支持软件的开发而提供的一组工具软件系统。具体地说,软件开发环境是一组相关工具的集合。这些相关工具按一定的开发方法或一定开发处理模型组织起来的,这些相关工具支持整个软件生存期的各阶段或部分阶段。软件开发环境的发展阶段:(1)70年代,软件开发与设计方法出现了结构化分析技术的一整套相互衔接的SA-SD的方法学。与此相适
26、应的计算机辅助软件工程技术则主要由开发孤立的软件工具而逐步向程序设计环境的开发和使用方向发展,出现了第一代的基于正文的CASE工具。(2)80年代中期与后期,主要是实时系统设计方法,以及面向对象的分析和设计方法的发展,它克服了结构化技术的缺点。在这期间开发了第二代的CASE工 具,其特点是支持使用图形表示的结构化方法,如数据流图与结构图。其开发环境表现在提高环境中工具的集成性方面,如"集成的项目支持环境"。(3)80年代后期和90年代初期出现了"基于信息工程CASE"技术,这种环境集成了用于项目计划、分析、设计、编程、测试和维护的一个工具箱的集合。(4)
27、90年代出现一系列集成的CASE软件产品,用以实现需求管理、应用程序分析设计和建模、编码、软件质量保证和测试、过程和项目管理及文档生成管理等软件开发工作的规范化、工程化和自动化。第二章: 可行性研究一.填空题1. 数据词典中四种类型的条目是(数据流)、(数据存储)、(数据项)和加工。2. (软件可行性研究)的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。3. 可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否(值得去开发且其中的问题能否解决)。4. 可行性研究实质上是要进行一次简化、压缩了的(需求分析)和(设计)过程,要在较高层次上以较抽象的方式
28、进行需求分析和设计过程。5. 可行性研究需要从(技术)可行性、(经济)可行性、(社会)可行性三个方面分析研究每种解决方法的可行性。6. 成本-效益分析首先是估算将要开发的系统的(开发成本),然后与可能取得的效益进行(比较和权衡)。7. 投资回收期就是使累计的经济效益等于最初的投资费用所需要的时间。项目的(纯收入)是指在整个生命周期之内的累计经济效益(折合成现在值)与投资之差。8. 软件工程有两种效益,它们是(无形效益)和(有形效益)。9. 成本-效益分析的目的是从(经济角度)评价开发一个新的软件项目是否可行。10. 研究开发资源的有效性是进行(技术)可行性研究的一方面。11. 在软件的可行性研
29、究中,可以从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是(技术可行性)。12. 制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是(规划与调度)。13. 数据流图是常用的进行软件需求分析的图形工具,其基本符合是(加工)、(数据流)、(数据存储)和(外部实体)。14. 决定大型程序模型组织基本原则的两种交替设计策略为(数据分解)和(算法分解)。15. 软件系统可行性分析应考虑(经济)、(技术)、(社会环境)和(人)等方面因素。二.判断题1. 父图中某个加工的输入输出数据流图应具备对称特点。( × )2. 数据流图(DFD)是软件开发需求分析阶段经常
30、使用的工具。( )3. 在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是参与人员之间的通讯困难。( )4. 可行性分析中,系统流程图用于描述当前运行系统。( )5. 研究软硬件资源的有效性是进行操作可行性研究的一方面。( × )6. 可行性研究要进行的需求分析和设计应是简化、压缩的。( )7. 系统流程图是描述物理系统的工具。( )8. 软件系统中所有的信息流都可以认为是事物流。( × )9. 软件系统中所有的信息流都可以认为是变化流。(× )10. 在程序的描述和分析中,用以指明数据来源、数据流向和数据处理的辅助图形是数据流图。( )11.
31、加工是对数据流图中不能再分解的基本加工的精确说明,且加工逻辑是加工的最核心。( )12. 软件定义期间问题定义阶段涉及的人员有系统分析员、软件开发人员、用户与使用部门的负责人。( )13. 系统定义明确之后,应对系统的可行性进行研究。可行性研究包括经济可行性、社会可行性、系统可行性。(× )14. 在结构化分析方法中,用状态-迁移图表达系统和对象的行为。在状态-迁移图中,由一个状态和一个时间所决定的下一个状态只能有1个。( × )15. 提供严格定义的文档是原型化方法的特征。( × )三.名词解释解答:四.简答题1. 什么是数据字典?其作用是什么?它有哪些条目?数
32、据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。包括的条目:数据流词条、数据元素词条、数据存储词条、数据加工处理词条、数据源点及终点词条。2. 什么是数据流图?其作用是什么?数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图有四种基本图形符号:“”箭头表示数据流;“”圆或椭圆表述
33、加工;“=”双杠表示数据存储;“”方框表示数据的源点或终点。3. 可行性研究的任务有哪些?可行性研究首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制。把它们清楚地列举出来。然后分析员进行简单的需求分析,经过压缩的设计,探索出若干种可提供选择的主要解决办法。对每种解决办法都要研究它的可行性。主要从经济可行性、技术可行性和社会可行性三方面进行研究。4. 什么是软件配置管理?软件配置管理,简称SCM(Software Configuration Management),是指一组管理整个软件生存期各阶段中变更的活动。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地
34、提高生产率。5. 简述文档在软件工程中的作用? (1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。6. 软件开发成本估算方法有哪几种? <1>自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然后把它们按阶段、步骤和工作单元进行分配,这样方法称为自顶向下的估算方法。<2>自底向上估算方法。自底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需
35、要的开发工作量,然后将它们加起来,得到软件的总开发量。<3>差别估算方法。差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。7. 请说明软件文档的作用。软件文档的作用是:提高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能。软件开发项目生存期各阶段应包括得文档以及与各类人员的关系如下:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、测试计划、概要设计说
36、明书、详细设计说明书、用户手册、操作手册、测试分析报告、开发进度月报、项目开发总结、程序维护手册(维护修改建议)。8. 简述提高软件质量的主要措施。 复审:是在软件生命周期每个阶段结束之前,都采用一定的标准对该段产生的软件配置成分进行严格的正式或非正式的检测。复查:是检查已有的材料,以断定在软件生命周期某个阶段的工作是否能够开始或继续。管理复审:是向开发组织或使用部门的管理人员提供有关项目的总体状况、成本和进度等方面的情况,以便他们从管理角度对开发工作进行审查。五.综合题1. 请以WEB SNS 为主题,分析校园SNS系统的操作可行性,并按照国标规范书写可行性分析报告。(1)按照GB-8567
37、-88 进行可行性分析的书写;(2)重点分析技术与操作可行性。2. 请以无线校园为背景,分析无线校园的技术可行性、操作可行性与经济可行性。(1)按照国标GB 8567-88 规范书写相应内容。3. 请以农产品购销供应链一体化系统为背景,分析其经济可行性与技术可行性。(1)按照GB-8567-88书写规范的可行性分析报告4. 请以城市交通流拥塞与控制为背景,书写该系统的可行性分析报告。(1)重点进行交通流拥塞与控制的技术可行性研究,分析其技术可行性5. 请以智能家庭为例,分析其经济可行性与技术可行性。(1)重点进行智能家庭的技术可行性分析;(2)按照国标 GB-8567-88规范书写。6. 请以
38、“信息尘埃”在现代战争中的应用为背景,进行可行性分析。(1)按照国标 GB-8567-88规范书写;(2)重点进行“信息尘埃”技术可行性分析7. 请以网络视频社区为背景,按照国标规范书写可行性分析报告。(1)按照国标 GB-8567-88规范书写(2)着重进行视频系统的技术可行性分析8. 请以社区呼叫中心为背景,进行可行性分析。(1)按照国标 GB-8567-88规范书写;(2)重点进行社区管理的操作可行性分析。六.论述题(方案1)解答:第三章: 需求分析一.填空题1. 软件需求分析过程应该建立(数据模型)、(功能模型)和(行为模型) 三种模型。2. 需求分析的基本任务是要准确地定义(新系统的
39、目标),为了满足用户需要,回答系统必须做什么的问题。3. 数据流图有4个基本成分:(数据流)、(加工(又称数据处理))、(数据存储)和(数据源点和终点)。4. 流向数据存储的数据流可理解为(写入)文件或(查询)文件,从数据存储流出的数据可理解为从文件(读)数据或得到(查询)结果。5. 需求分析的困难主要体现在4个方面:问题的复杂性、(交流障碍)、(不完备性和不一致性)需求易变性。6. 由于数据流是流动中的数据,所以必须有(流向)。除了与(数据存储)之间的数据流不用命名外,数据流应该用名词或名词短语命名。7. 结构化分析方法是面向(数据流)进行需求分析的方法。8. 经过需求分析,开发人员已经基本
40、上理解了用户的要求,确定了目标系统的功能,定义了系统数据,描述了处理这些数据的基本策略。将这些共同的理解进行了整理,最后形成文档(需求说明书)。9. 在数据流图中,有名字及方向的成分是(数据流)。10. 在软件需求分析中,开发人员要从用户那里解决的最重要的问题是(要让软件做什么)。11. 需求分析的最终结果是产生(需求规格说明书)。12. SA方法用DFD描述( 系统的功能)。13. SA方法的基本思想是(自顶向下逐步分解)。14. 常用的需求分析方法有面向数据流的结构化分析方法,(面向对象的分析方法),面向数据结构的分析方法等。15. 通过(功能分解)可以完成数据流图的细化。二.判断题1.
41、数据流图(DFD)是软件开发可行性分析阶段经常使用的工具。( × )2. 需求分析阶段的任务是确定软件系统的功能。( )3. 在数据流图中,不能被计算机处理的成分是数据源/终点。( )4. 通过功能分解可以完成数据流图的细化。( )5. 分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的输入与输出。( )6. 数据字典中,一般不包括数据存储条目。( × )7. 初步用户手册在需求分析阶段编写。( )8. SA方法的分析步骤是首先调查了解当前系统的逻辑模型,然后获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型。( )9. 每个数据流必
42、须用名词或名词短语命名。( × )10. 模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准时模块的内聚性和耦合性。( )11. 数据词典的任务是对于数据流图中出现的所有被命名的数据元素,在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的描述。( )12. 在需求分析中,开发人员要从用户那里解决的最重要的问题是要让软件做什么。( )13. 结构化分析方法(SA)是一种面向数据结构需求分析方法。( × )14. 软件需求分析的任务包括结构化程序设计。(× )15. SA方法是一种自顶下下逐层分解的分析方法。( )三.名词解释解答:四.
43、简答题解答:五.综合题1. 请以教材购销的内容为应用背景,画出数据流图、写清数据字典、小说明。(1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况2. 请以小超市销售管理的内容为应用背景,画出数据流图、写清数据字典、小说明。 (1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况3. 请以校园交友娱乐社区的内容为应用背景,画出数据流图、写清数据字典、小说明。 (1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解
44、释异常情况4. 请以校园学习交流社区的内容为应用背景,画出数据流图、写清数据字典、小说明。 (1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况5. 请以网络爬虫应用系统为背景,画出数据流图、写清数据字典、小说明。 (1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况6. 请以校园互助贴吧的内容为应用背景,画出数据流图、写清数据字典、小说明。 (1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况7.
45、 请以网络驴友互助的内容为应用背景,画出数据流图、写清数据字典、小说明。 (1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况8. 请以社区后勤管理为应用背景,画出数据流图、写清数据字典、小说明。 (1)数据流图要求至少三层,包括顶层图、中间层图、底层图;(2)数据字典必须符合客观实际;(3)小说明需要解释异常情况六.论述题(方案1)解答:第五章: 总体设计一.填空题1. 过程设计语言的重复结构有(for)结构、(while)结构(until)、结构三种。2. 结构化程序设计方法的基本要点是:(1)采用(自顶向下)、(逐步求精)
46、、的程序设计方法;(2)使用(三种基本控制结构)构造程序;(3)主程序员组的组织形式。3. 在详细设计阶段,为了提高数据的输入、存储、检索等操作的效率并节约存储空间,对某些数据项的值要进行(代码)设计。4. 任何程序都可由(顺序)、(选择)和(重复)三种基本控制结构构造。这三种基本结构的共同点是(单入口)、(单出口)。5. 在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的(数据结构)进行设计。6. 在详细设计阶段,经常采用的工具有(程序流程图)、PDL、PAD等。7. 在单元测试中,测试一个模块时,需要设计(驱动模块和桩模块)。8. 软件产品在交付使用之前一般要经过以下4步测试(单元
47、测试)、(集成测试)、(确认测试)、(系统测试)。9. 软件测试用例由(测试输入数据)和(对应的预期输出)组成。10. 用黑盒技术设计测试用例的方法有(等价类划分)、(边界值分析)、(错误推断)和(因果图)。11. 源程序中加注释是帮助理解程序的重要手段,注释分为(序言行注释)、(功能性注释)两类。12. 近年来,推出了许多面向对象的语言,如(C+)、(JAVA)等。13. 汇编语言是面向(机器)的,可以完成(高级)语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。14. 语句构造的原则是简单直接,不能为了追求效率而使代码(复杂性)15. (可移植性)是指程序从一个计算机环境移植到另
48、一个计算机环境的容易程度二.判断题1. 一般说来,模块大小以三至四页为宜。( )2. 软件设计一般分为总体设计和详细设计,它们之间的关系是全局与局部。( )3. 好的软件结构应该是高内聚、低耦合。( )4. 一个模块把一个数质量作为参数传递给另一个模块。这两个模块之间的耦合是数据耦合。( )5. 在面向数据流的软件设计方法中,一般将信息流分为变换流和事务流。( )6. 首先将系统中得关键部分设计出来,再让系统的其余部分的设计去适应它们,这称为自顶向下设计。( × )7. 划分模块时,一个模块的控制范围应在其作用范围之内。( × )8. 结构化设计方法在软件开发中,用于概要设
49、计。( )9. 软件结构图中,模块框之间若有直线连接,表示它们之间存在着组成关系。(× )10. 软件概要设计结束后得到初始化的软件结构图。( × )11. 偶然内聚是指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。( × )12. 设计软件结构一般不确定模块内的局部数据。( )13. 通过抽象,可以确定组成软件的过程实体。( )14. 标记耦合是指两个模块之间的调用关系,传递的是简单的数据值。( × )15. 内容耦合是指一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。( )三.名词解释1. 数据耦合;数
50、据耦合是指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递2. 标记耦合标记耦合是指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址;3. 偶然内聚偶然内聚指一个模块内的各处理元素之间没有任何联系。这是内聚程度最差的内聚;4. 逻辑内聚逻辑内聚指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能;5. 时间内聚把需要同时执行的动作组合在一起形成的模块称为时间内聚模块6. 软件概要设计描述软件的总的体系结构,称为“软件概要设计”;7. 软件结构软件结构是软件系统的模块层次结构,反映了整个系统划
51、分模块时,尽量做到高内聚低耦合;8. 面向数据流的设计方法面向数据流的设计方法,也称“结构化设计方法”(SD),它与结构化分析(SA)相衔接,它按一定的设计策略将数据流图转化成软件的模块层次结构;9. 耦合性耦合性也称“块间关系”。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差;10. 模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系最少且接口简单;11. 模块模块是可组合、分解和更换的单元,在程序中它是数据说明、可执行语句等程序对象的集合,或者是单独命名和编制的元素;12. 模块的作用范围模块的作用范
52、围是指受该模块内一个判定影响的所有模块的集合;13. 模块的控制范围模块的控制范围是指模块本身以及其所有下属模块的集合;14. 通信内聚通信内聚指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据;15. 顺序内聚顺序内聚指一个模块中各个处理元素都紧密相关与同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。四.简答题1. 请简要说明软件耦合性和内聚性 模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准耦合性和内聚性。耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种
53、度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。2. 什么是概要设计?有哪些基本任务? 概要设计:根据用户的需求先确定软件系统的总体结构和总的设计原则基本的任务:设想供选择的方案、推荐最佳方案、功能分解,确定软件结构、设计软件结构、制定测试计划、数据设计、书写文档、设计审查和复审。3. 系统设计的内容是什么? (1)系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时
54、间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。(2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。(3)数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。(4)人机交互接口设计。设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。4. 简述软件测试的任务、目的与类型。软件测试是一个
55、为了寻找软件错误而运行程序的过程。目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试主要分为白盒测试和黑盒测试两大类。5. 简述结构化程序设计方法的基本要点 (1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式。(4)采用单入口单出口的模块形式。6. 简述容错技术的四种主要手段,并解释。 结构冗余:包括静态冗余、动态冗余和混合冗余。信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。时间冗余:指重复执
56、行指令或程序来消除瞬时错误带来的影响。冗余附加技术:指为实现上述冗余技术所需的资源和技术。7. 以G.J.Myers的观点,简述对软件测试的目的。软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。8. 就程序设计语言的工程特性而言,对程序编码有哪些要求?就程序设计语言的工程特性而言,对程序编码有如下要求:(1)可移植性 (2)开发工具的可利用性 (3)软件的可重用性 (4)可维护性9. 可行性研究报告的主要内容有哪些?一个可行性研究报告的主要内容如下:(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。(2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年高中数学下学期第8周 3.1.1 不等关系与不等式教学设计
- 2024年全新消防档案数字化服务合同
- 04版35kv架空线路施工工程竣工验收与保修合同
- 2024年太空探索与开发合作协议
- 04年设备维护与升级服务合同
- 2024年大型科学计算软件许可合同
- 2024年幼儿园园长与任用方合同范例
- 2024年创业指导培训学校校长聘请合同
- 2024中外合资企业餐饮连锁经营合同书
- 2024年厂房租赁安全协议书
- 旅游景区消防安全培训
- 2024年税务新政培训
- 电商行业直播带货营销策略方案
- 糖尿病健康知识宣教
- 八上历史全册知识梳理
- 2024年银行考试-招商银行考试近5年真题集锦(频考类试题)带答案
- 中小学-校园文明礼仪-课件
- 《创意改善生活》课件 2024-2025学年湘美版(2024)初中美术七年级上册
- 2024-2025学年 浙教版七年级数学上册期中(第1-4章)培优试卷
- CHT 1027-2012 数字正射影像图质量检验技术规程(正式版)
- (完整版)装修主要材料一览表
评论
0/150
提交评论