




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 什么是软件?软件和程序的区别?答:(1)软件是计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必 须的数据。(2) 程序是为了解决某个特定问题二用程序设计语言描述的适合计算机处理的语句序列。软件是程序+文档,没有相关文档,仅有程序是不能成为软件产品的2、 什么是软件生存周期?划分生存周期的主要原则是什么?(1) 定义:软件生存周期是指某一软件项目被提出来并着手实现开始直到该软件报废或停止使用为止。 (2) 原则:各阶段的任务尽可能独立3、 什么是软件危机?它有哪些主要表现?为什么会产生软件危机?(1) 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(2)a. 对软件开发成本和研制进度的估计常常很不精确;b. “已完成”的软件不能满足用户要求 ;c. 软件产品质量差,可靠性得不到保证; d. 软件产品可维护性差,没有统一、公认的规范和完整规范的文档资料;e. 软件成本在计算机系统总成本中所占的比例逐年上升 ;f. 软件开发生产率提高的速度,远远跟不上计算机应用速度普及深入的趋势 。(3)a.软件是计算机系统中的逻辑部件,软件产品往往规模庞大,结构复杂;b.软件开发的管理困难;c.软件开发费用不断增加,维护费用急剧上升;d.软件开发技术落后;e.生产方式落后;f.开发工具落后,生产效率提高缓慢;4、 什么是软件工程?怎样利用软件工程消除软件危机?(1) 软件工程是: 是把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。 (2) 首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”的错误观念; 要使用并且不断研究探索更好、更有效的技术和方法; 要有良好的组织、严密的管理,各类人员协同配合、共同完成的工程项目; 应该开发和使用好的软件工具。5、 简述度量软件质量的六个特性,在软件开发中如何保证软件质量?(1) 功能性、可靠性、易用性、效率、可维护性、可移植性等(2)6、 说明文档和复审对于软件质量控制的作用。答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务。软件开发是许多人共同参加的计划,完整与合格的文档,不仅是开发时期软件人员之间互相通信的媒介,也是运行时期对软件进行维护的中要依据。每一阶段都要对已完成的文档进行复审,以便尽早发现问题,消除隐患。愈是早期潜伏下来的故障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。及时复审是保证软件质量,降低开发成本的重要措施。7、 什么是软件生存周期模型?试比较本章介绍的四种模型的优缺点,说明每种模型的使用范围。(1) 软件开发模型是描述软件开发过程中各种活动如何执行的模型。(2) 瀑布:优点:为项目提供了按阶段划分的检查点,当前一个阶段完成后,只需要关注后续阶段。提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织与管理缺点:在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。早期的错误可能要等到开发后期才能发现,进而带来严重后果。适用范围:瀑布模型是以文档作为驱动,适合于软件需求很明确的软件项目即一般适用于功能明确、完整、无重大变化的软件系统的开发,例如:操作系统、数据库管理系统等系统软件的开发,其应用有一定的局限性。快速模型优点:快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。缺点:所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。适用范围:原型模型适合于那些不能确切定义需求的软件系统的开发。螺旋模型优点:强调严格的全过程风险管理。强调各开发阶段的质量。强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期。为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。缺点:很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。 适用范围:螺旋模型只适合于大规模的软件项目。增量模型优点:(1)软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险缺陷:(1)由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。(2)在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。 适用范围:(1) 进行已有产品升级或新版本开发,增量模型是非常适合的;(2)对完成期限严格要求的产品,可以使用增量模型;(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的1、在软件开发早期阶段为什么要进行可行性研究?可行性研究的任务是什么?应该从哪几个方面研究目标系统的可行性?(1)原因:用最小的代价在尽可能短的时间内确定问题是否能够解决。(2)任务:进行该要的分析研究 确定项目的规模和目标、约束和限制 分析几种可能揭发的利弊 判定原定系统的目标和规模是否现实,系统完成后带来的效益是否达到值得投 资开发至各系统的程度(3)方面:技术可行性:使用现有的技术能实现这个系统吗? 经济可行性:这个系统的经济效益能超过它的开发成本吗? 操作可行性:系统的操作方式在这个用户组织内行得通吗? 法律可行性:系统是否侵犯他人、集体或者国家的利益,是否违反法律?2、 成本-效益分析可用哪些指标进行度量?开发成本、运行费用和新系统将带来的经济效益,经济效益包括有形效益和社会效益有形效益用货币的时间价值,投资回收期,纯利润度量问题定义阶段必须回答的关键问题:“要解决的问题是什么?”如果不知道问题是什么就试图解决这个问题,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果很可能是毫无意义的。尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最容易被忽视的一个步骤。通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。通过对系统的实际用户和使用部门负责人的访问调查,分析员扼要地写出他对问题的理解,并在用户和使用部门负责人的会议上认真讨论这份书面报告,澄清含糊不精的地方,改正理解不正确的地方,最后得出一份双方都满意的文档。问题定义阶段是软件生存周期中最简短的阶段,一般只需要一天甚至更少的时间。可行性研究报告的内容引言可行性研究前提 对现有系统的分析 对所建设系统的分析 其他与设计有关选择方案 其他与设计有关的专门问题 结论意见 1、为什么要进行需求分析?需求分析要经过哪些步骤?(1) 原因:精化软件的作用范围,分析和确认软件系统构成的过程,以确定未来系统的主要成分以及它们之间的接口细节(2) 步骤:需求获取:调查研究 需求提炼:分析建模 需求描述:编写SRS 需求验证 2、 需求分析阶段的基本任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎样做”?(1)任务:确定系统必须完成哪些工作,对目标系统提出完整、准确、清晰且具体的需求3、什么是结构化分析方法?该方法使用什么描述工具?(1)结构化分析方法是一种从问题空间到某种表示的映射方法。(2)数据流图 :结构化建模的工具。 数据字典 :关于数据信息的集合,用于定义数据流图中的数据和加工; 描述加工逻辑的结构化语言、判定表和判定树等 4、 什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?(1) 定义:数据流图(Data Flow Diagram,DFD)是一种图形化技术,用于表示系统逻辑模型,它以直观的图形清晰地描述了系统数据的流动和处理过程。是分析员与用户之间极好的通信工具。(2) 作用:描述数据在软件中流动和被处理的逻辑过程。(3) 源点或者终点(矩形):通常是系统之外的实体 加工(圆或椭圆):是对数据进行处理的单元,一个处理框可以代表一系列程序、单个程序或程序的一个模块 数据流(箭头):是数据在系统内传播的路径,由一组固定的数据项组成。描述所有可能的数据流向 数据存储(双杠或单杠):用来存储数据,可以表示一个文件、文件的一部分、数据库的元素或者记录的一部分等 。5、 画数据流图的步骤是什么?应该注意什么事项?(1)步骤: 第一步,先找外部实体(可以是人、物或其他软件系统) 第二步,找出外部实体的输入和输出数据流; 第三步,在图的边上画出系统的外部实体; 第四步,从外部实体的输出流(源点)出发,按照系统的逻辑需要,逐步画出一系列变换数据的加工,直到找到外部实体处所需的输入流(终点),形成数据流的封闭; 第五步,按照上述原则进行检查和修改。最后按照上述步骤画出所有子图。(2) 注意:画数据流图时,只考虑数据流的静态关系,不考虑其动态关系(如启动、停止等与时间有关的问题),也不考虑出错处理问题。画数据流图时,只考虑常规状态,不考虑异常状态,这两点一般留在设计阶段解决。画数据流图不是画程序流程图,二者有本质的区别。数据流图只描述“做什么”,不描述“怎么做”和做的顺序。而程序流程图表示对数据进行加工的控制和细节。不能期望数据流图一次画成,而是要经过各项反复才能完成。描绘复杂系统的数据流图通常很大,对于画在几张纸上的图很难阅读和理解。一个比较好的方法是分层的描绘这个系统。在分层细画时,必须保持星系的持续性,父图和子图要平衡;每次只细画一个加工。6、 什么是数据字典?其作用是什么?它有哪些条目?(1) 定义:数据字典(Data Dictionary,DD)是关于数据的信息的集合,也就是对数据流图中所包含元素的定义的集合。 (2) 作用:对数据存储(文件)和加工(处理)等名字进行定义7、 描述加工逻辑有几种工具?各是什么?写出其优缺点。(1) 描述加工逻辑一般用结构化语言、判定表和判定树。(2) 结构化语言:它既有结构化程序的清晰易读的优点,又有自然语言简单易懂的优点,只有顺序,循环,条件三种控制结构 判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系 判定表能清晰地表示复杂的条件组合与应做的动作之间的对应关系1、总体设计阶段的主要目的和任务是什么?(1) 目的:基本目标回答“概括地说,系统应该如何实现?”这个问题,确定系统中的每个程序是由哪些模块组成的,每个模块的功能以及模块和模块之间的接口、调用关系等(2) 任务:划分模块,确定软件结构 确定系统的数据结构 设计用户界面2、 为每种类型的模块耦合和模块内聚各举一个具体例子。耦合:是对一个软件结构内不同模块之间互联程度的度量无直接耦合(不可能)、数据耦合(数据耦合是理想的目标)、标记耦合、控制耦合、公共环境耦合、内容耦合(最高程度的耦合是内容耦合)应该采用下述设计原则:尽量使用数据耦合,少用控制耦合和标记耦合,限制公共环境耦合的范围,完全不用内容耦合。内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚偶然内聚、逻辑内聚和时间内聚属于低内聚,通信内聚属于中内聚,顺序内聚和功能内聚属于高内聚。4、 如何区分数据流图的类型?试述“变换型数据流图”和“事务型数据流图”的设计步骤。(1) 变换型数据流图基本呈线性形状的结构,由输入、变换、输出三部分组成,变换是系统地变换中心。在事务型数据流图,数据项沿着输入同路到达一个处理T,T根据输入数据的类型在若干动作序列中选出一个来执行。处理T称为事务中心。(2)变换型:确定逻辑输入和逻辑输出的边界,找出变换中心 设计软件结构的顶层和第一层 设计中下层模块 对初始结构图优化 事务型:.在数据流图上确定事务中心、输入流和活动路径 设计事务结构的顶层和第一层 设计事务结构的中下层 对初始的事务结构优化 1、软件详细设计的基本任务是什么?有哪几种描述方法?(1) 确定应该怎样具体实现所要求的系统。经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序 描述程序处理过程的工具称为详细设计工具, 可以分为图形、表格和语言三类。程序流程图、N-S图、PAD图、过程设计语言 2、 结构化程序设计的基本要点是什么?结构化程序设计所使用的结构有顺序、条件和重复三种 。结构化程序设计采用自顶向下,逐步求精的设计方法和单入口单出口的控制结构 。1、在软件项目开发时,选择程序设计语言通常考虑哪些因素?待开发软件的应用领域 用户的要求 软件的运行环境 软件开发人员的知识 软件的可移植性要求 2、 举例说明各种程序设计语言的特点及适用范围?答:以常见的一些编程语言为例:FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算 Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写 C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。 Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。 SQL:结构化查询语言,用于对数据库进行存取管理。 汇编语言和Ada语言,主要用于实时处理和编写系统软件。 Prolog、Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。 C+、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。3、 什么是程序设计风格?为了具有良好的程序设计风格,应该注意哪些方面的问题? 程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。4、 第4代语言有哪些主要特征?为什么受到广大用户欢迎? 特征:友好的用户界面,非过程化,程序员只需告诉计算机做什么,而不必描述怎样做 原因:易学易用7.1 软件测试的基本任务是什么?简述测试的目标和基本原则。(1) 软件测试是为了发现错误而执行程序的过程。 一个好的测试用例能够发现至今尚未发现的错误。 一个成功的测试是发现了至今尚未发现的错误的测试。(2)测试阶段的基本任务 根据软件开发各阶段的文档资料和程序内部结构,精心设计一组“高产”的测试用例,利用这些用例执行程序,找出软件中潜在的各种错误缺陷。 原则:测试用例既要有输入数据,又要有对应的输出结果 测试用例不仅要选用合理的输入数据,还应选择不合理的输入数据 检查程序是否做了它应该做的工作,也应检查程序是否做了它不应该做的工作 应该远在测试开始之前就制定测试计划 测试计划、测试用例、测试报告必须作为文档长期保存 Pare to原理说明,测试发现的错误中80%很可能是由程序中20%的模块造成的 为了达到最佳的测试效果,程序员应该避免测试自己的程序7.2 简述静态测试与动态测试的含义。它们之间有什么不同点和相同点。(1) 静态测试就是静态分析,查找错误或收集一些度量数据,采用两种分析手段对程序检测后进行特性分析。动态测试是指通过运行程序发现错误。(2) 静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。7.3 白盒测试用例和黑盒测试用例设计的基本方法。白盒:逻辑覆盖,判定覆盖,条件覆盖,判定-条件覆盖,条件组合覆盖,路径覆盖,循环覆盖,基本路径测试黑盒:等价类划分法,边界值分析法,错误推测法,因果图法7.5 简述测试和调试的含义,它们之间有什么区别?软件测试是保证软件质量的关键,它是对需求分析、设计和编码的最终复审。调试是在测试发现错误之后排除错误的过程区别:软件测试的目的是为找出软件中存在的错误,即通过测试来发现错误,而调试的目的是为了解决存在的错误,即对错误定位、分析并找出原因改正错误,因此调试也称为纠错。7.6 软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?软件测试要经过的步骤是:单元测试集成测试确认测试系统测试。单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。7.7 什么是单元测试,什么是集成测试,什么是确认测试?单元测试 单元测试是对软件基本组成单元进行的测试。集成测试 集成测试是将已分别通过测试的单元按设计要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。确认测试 确认测试是检查所开发的软件是否满足需求规格说明书中所确定的功能和性能的需求。1、 为什么软件需要维护?维护有哪几种类型?简述它们的维护过程。(1) 为了改正软件运行错误,或者因满足新的需求而加入新功能的修改软件的过程(2) 改正性,适应性,完善性,预防性2、 什么是软件可维护性?可维护性度量的特性是什么? 提高可维护性的方法有哪些?(1) 纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改,扩充或压缩的容易程度(2) 可理解性,可测试性,可修改性,可移植性,可靠性,可使用性,效率(3) 建立明确的软件质量目标和优先级 使用提高软件质量的技术和工具 选择便于维护的程序设计语言 采取明确的,有效的质量保证审查措施 完善程序的文档3、 改正性维护与“排错”是否是一回事?为什么?5、 什么是程序修改的副作用?程序修改的副作用有哪几种?试举例说明?(1) 由于修改软件而导致新的错误的出现,或者新增加一些不希望发生的情况(2) 修改代码的副作用 修改数据的副作用 修改文档的副作用什么叫UML,简述UML的构成。(1) UML(Unified Modeling Language)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。(2) 由元模型和图组成UML有哪些特点?(1) 统一的标准、面向对象、可视化、表示能力强大、独立于过程 、易于掌握应用 UML中有哪些视图,“4+1”视图中的各图有什么功能?视图 :用例视图(表示了角色和用例以及它们之间的关系) 、逻辑视图 ()、进程视图 、实现视图 、部署视图 ;简述UML中主要图之间的关系,各种图在软件开发阶段的作用?答:图有:用例,类,对象,构件,协作,部署,活动,状态,序列支持UML的软件开发工具主要有哪些,简述Rose的主要功能。Rational Rose2003、Together 6.1、ArgoUMLv0.14,Visio Professional 2003对面向对象模型的支持、对螺旋上升式开发过程的支持、对双向工程的支持、对团队开发的支持、对工具的支持 10.1 什么叫对象,面向对象方法的要点包括哪些内容?(1) 在软件领域中,与所要解决的问题有关系的任何事物都可以作为对象(2) 认为客观世界是由各种对象组成的、把所有对象都划分成各种对象类(简称类,class),每个对象类都定义了一组数据和一组方法、 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)、对象彼此之间仅能通过传递消息互相联系。10.2 传统软件开发方法存在哪些问题?(1)软件重用性差(2)开发出的软件不能满足用户需要(3)软件可维护性差10.3 面向对象方法学有哪些优点?(1) 与人类习惯的思维方式一致(2) 软件稳定性好(3) 可重用性好(4) 较易开发大型软件产品(5) 可维护性好,易于测试10.4 什么叫对象关联,常见的对象关联有哪些,试举例说明各种关联。(1) 对象类的关联是面向对象技术中的实例链接,它是通过对象的属性所建立的对象之间的联系。 (2) 单相关联与双向关联10.5 分别解释聚集、组合、继承和多态的概念,并举例说明。(1) 一个类有时可以由一个或多个部分类组成,这种特殊形式的关联,称为聚集(2) 组合(composition)表示的也是类之间的整体与部分的关系,但组合关系中的整体与部分具有同样的生存期。也就是说,组合是一种特殊形式的强类型的聚集。(3) 继承定义了一般类和特殊类之间的分类关系。 (4) 多态指的是使一个实体在不同上下文条件下具有不同意义或用法的能力。10.6 举例说明对象和属性之间的区别。在软件领域中,与所要解决的问题有关系的任何事物都可以作为对象。一个对象由一组属性和对属性进行操作的一组方法组成面向对象方法学中的对象具有两个基本的因素:属性和方法(服务)。属性是用来描述对象静态特征的一个数据项10.7 举例说明UML规定的属性和操作的三种可视性。可视性(即可访问性)通常有下述3种: public(+)公有的:模型中的任何类都可以访问该属性。 private(-)私有的:表示不能被别的类访问。 protected(#)受保护的:表示该属性只能被该类及其子类访问。 可视性标记放置在属性名前,说明该属性的可视性。若未声明可见性,则表示该属性的可见性尚未定义。 注意,没有默认的可见性。11.1 什么叫对象设计模式,设计模式有哪些分类?(1) 模式是在一个上下文中,对一个问题的解决方案。GOF提出了模式的四个要素,即模式名称、问题、解决方案和效果。 (2) 按设计模式的目的(purpose)划分,可分为创建型模式、结构型模式和行为型模式3种。按设计模式的范围(scope)划分,即根据设计模式是作用于类还是作用于对象来划分,可以把设计模式分为类设计模式和对象设计模式。11.2 简介设计模式的用途。(1)复用现有的、高质量的、针对常见的重复出现问题的解决方案。(2)建立通用的术语以改善团队内部的沟通。(3)将思考转移到更高的视角。(4)判断是否拥有正确的设计,而不仅仅是一个可以工作的设计。(5)改善个人学习和团队学习。(6)改善代码的可修改性。(7)促进对改良设计的选用,甚至在没有明确使用模式的时候也可以这么做。(8)发现“庞大的继承体系”的代替方案。 11.3 职责链设计模式的一般结构及特点有哪些,结合本章中给出的web浏览器事件模型,说明职责链设计模式的适用条件。职责链模式的适用范围:1、有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。2、想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。3、可处理一个请求的对象集合需要被动态指定。11.4 Facade模式的特点有哪些,结合本章中给出的客户与子系统交互的例子,介绍Facade模式的适用条件。特点对Client来说屏蔽了子系统中的类,减少了Client需要直接处理的对象,使得子系统更容易被使用。降低了Client和子系统之间的耦合度。有助于对象之间依赖关系的分层,建立具有层次结构的系统。子系统中的类不需要了解关于Client的知识,也不需要了解关于Facade类的知识,即没有指向Client和Facade的引用。如果需要,Client也可以直接存取子系统中的类。适用性为复杂系统提供一个简单的接口构建层次结构系统时,使用Facade模式定义每层的入口点。采用Facade模式可将子系统与客户程序分离,提高了子系统的可移植性 11.5 Abstract Factory模式的特点有哪些,结合本章中给出的Sala系统,介绍抽象工厂模式的适用条件。Client只通过抽象产品操作产品对象,产品对象的具体名字不出现在Client中。 在应用系统中增加或删除具体工厂的种类很容易。 可以保证应用系统在某一时刻只使用一个产品系列。 AbstractFactory接口中已确定了可以创建的产品集合,如果要支持新的产品种类,需要扩展AbstractFactory类及其所有子类中的方法,这种修改比较困难。11.6 什么叫抽象类,举例说明抽象类与一般类的异同。(1) 抽象类(Abstract Class)是不能直接生产实例的对象类,抽象类的作用仅仅是为了其他的非抽象对象类继承和重用它说明的属性、服务及其他性质。 (2)11.7 什么叫接口,举例说明接口的功能和应用。(1) 接口(Interface)是一组外部可访问的操作,用于为对象类或组件提供服务。接口可以看作为一种特殊的抽象类,它不包含属性,没有操作的实现,仅有抽象运算。(2)11.8 UML中的扩展机制有哪些,分别举例说明版型、约束、标记的功能和应用。(1) 版型(stereotype)与标记值(tagged value)和约束(constraint)是UML的3种扩展机制。11.9 组件、包、结点的定义是什么?分别举例说明其用途。(1) 组件是相对独立的部分软件实体,有自己特有的功能,并可在系统中安装使用。(2) 包(Package)是一种对模型元素进行成组组织的通用机制。包用于定义一个名字空间或容器,它本身是UML的一种模型元素。(3) 结点(node)是可以运行软件的实实在在的东西,如工作台或服务器,它运行时有处理数据或运算的功能。11.10举例说明包之间的关系。包之间的非传递依赖关系,包之间继承关系解释名词:软件开发过程、RUP过程、RUP生命周期、软件开发产物(1) 软件开发过程是一个将用户的需求转化为软件系统所需要的活动的集合,按业务建模的术语,软件开发过程是一个业务流程。(2) RUP把软件开发生命周期划分为多个循环(Cycle),每个Cycle生成产品的一个新的版本,每个Cycle依次由4个连续的阶段(Phase)组成(3) RUP中的软件生命周期在时间上被分解为四个顺序的阶段(如图3-2所示),分别为先启阶段(Inception)、精化阶段(Elaboration)、构建阶段(Construction)和产品化阶段(Transition)RUP过程分为哪些阶段,每一阶段的主要工作是什么?(1)初始(Inception)阶段:定义最终产品视图和业务模型,并确定系统范围。 (2)细化(Elaboration)阶段:设计及确定系统的体系结构,制定工作计划及资源要求。 (3)构造(Construction)阶段:构造产品并继续演进需求、体系机构、计划直至产品提交。 (4)交付(Transition)阶段:把产品提交给用户使用。每个阶段完成确定的任务,这4个阶段体现了RUP软件开发过程的动态结构。RUP过程有何优缺点?RUP的优点1. RUP是建立在非常优秀的软件工程原则基础上的,例如迭代,需求驱动,基于结构化的过程开发。2. RUP提供了几个方法,例如每一次迭代产生一个工作原型,在每一个阶段的结束决定项目是否继续,这些方法提供了对开发过程的非常直观的管理。3. rational公司已经并将继续对RUP进行开发,使这个基于html的软件工程能够被裁减以适合你的组织的实际需要。RUP的缺点1. RUP仅仅包含了开发过程。它没有完全覆盖软件过程,从图1能够明显看出,它丢失了维护和技术支持这两个重要的阶段。2. RUP不支持组织内的多项目开发,导致组织内的大范围的重用无法实现。3. RUP缺少开发商的支持。你能自动完成软件过程的每一个方面?rational提供了所有的工具供你选择,例如是否有rational help desk或者rational persistence modeling 4. RUP在度量管理,重用管理,人员管理和测试上有缺陷。软件开发项目管理包括哪些工作,如何组织大型软件项目的开发?软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。RUP如何解决软件开发中用户需求的变更问题?RUP过程开发软件将得到哪些模型和文档?1、软件:在计算机系统中,与硬件相互依存的逻辑部件,它由程序、数据及相关文档组成。2、软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。3、数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。4、模块化:是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可能完成指定的功能满足问题的需求。5、类:对具有相同数据和相同操作的一组相似对象的定义。6、软件危机: 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。7、软件维护:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程. 8、继承:子类自动地共享基类中定义的数据和方法的机制.9、投资回收期: 就是使累计的经济效果等于最初投资的需要的时间。10、结构化分析方法: 就是面向数据流自顶向下逐步求精进行需求分析的方法。11、软件的生命周期:一个软件从定义、开发、使用和维护,直到最终被废弃所经历的一系列时期。1、投资回收期:就是使累计的经济效果等于最初投资的需要的时间。13、结构化分析方法:就是面向数据流自顶向下逐步求精进行需求分析的方法。14、模块:数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问。15、宽度:是软件结构内同一个层次上的模块总数的最大值。16、事务流:数据沿输入通路到达一个处理,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划分为一类特殊的数据流,称为事务流。17、耦合:衡量不同模块彼此间互相依赖的紧密程度。18、事件:是某个特定时刻所发生的事情,它是对引起对象从一种状态转换到另一种状态的现实世界中的事件的抽象。19、函数重载:指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。20、存根模块:用以模拟被测模块运行过程中所调用模块或是被测模块下层模块的替代程序。21、变换流:信息沿输入通呼进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统,当数据流图具有这些特征时,这种信息流就叫变换流。22、内聚:衡量一个模块内部各个元素彼此结合的紧密程度23、扇出:是一个模块直接控制的模块数目。24、多态性:子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。25、驱动模块:用以模拟被测模块的上级调用模埠,或向被测模块输以数据输出一些必要信息,调用被测模块。1、软件生命周期分为哪三个时期?每一时期所完成的基本任务是什么?软件定义时期,开发时期,维护时期。定义时期的任务:问题定义;可行性研究;需求分析。开发时期的任务:总体设计;详细设计;编码与单元测试;综合测试。维护时期的任务:使软件持久地满足用户的需要。2、 简述需求分析阶段的具体任务有哪些?软件定义时期,开发时期,维护时期。定义时期的任务:问题定义;可行性研究;需求分析。开发时期的任务:总体设计;详细设计;编码与单元测试;综合测试。维护时期的任务:使软件持久地满足用户的需要。3、 什么是结构化程序设计?结构化程序设计采用几种控制结构?结构程序设计:是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。顺序,选择,循环。4、 程序设计语言的特点?1、名字说明 2、类型说明 3、初始化 4、程序对象的局部性 5、程序模块 6、循环控制结构 7、分支控制结构 8、异常处理 9、独立编译5、软件测试的基本任务是什么?测试与调试的区别是什么?任务是在软件投入生产性运行之前,尽可能多地发现软件中的错误。与测试的区别:测试是为了发现软件中的错误,而调试是诊断并改正错误。6、 管理复审与技术审查的任务是什么?管理复审:复查各个阶段的经费、开销、成本以及进度,投资回收期前景的展望。技术审查:对每个阶段进行严格的审查,从而保证了各个阶段技术的正确性,防上错误的积累和复审。7、 可行性研究的步骤?()复查系统规模和目标。()研究目前正在使用的系统。()导出新系统的高层逻辑模型。()重新定义问题。()导出和评价供选择的解法。()推荐行动方针。()草拟开发计划。()书写文档提交审查8、从哪些方面验证软件需求的正确性?(1)一致性,即
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网企业用户数据保密及隐私保护合作协议
- 拍卖师聘用合同艺术品拍卖市场分析与策略
- 物业管理公司劳动合同范本与员工职业发展协议
- 离婚协议书中财产分割及债务清偿范本
- 公共租赁住房退房手续及政策规定协议
- 筑路工技师考试题库及答案
- 文化遗址物业管理合同延期与文物保护服务补充协议
- 油气管道监理合同延期与安全管理补充协议
- 赌博成瘾男方离婚协议书及财产分割及子女监护权协议
- 离婚协议执行监督与变更条款具体操作指南合同
- 企业重污染天气应急预案
- 患者身份识别管理标准WST840-2025学习解读课件
- 2025全国企业员工全面质量管理知识竞赛题库(含答案)
- 内分泌科进修总结课件
- 人民陪审员培训民事课件
- 妊娠期贫血的诊断及治疗
- 学堂在线 大数据系统基础 章节测试答案
- ICU常见体位护理
- 污水处理厂运营管理及提升方案
- 骨科无痛病房护理课件
- 2025年国家司法考试《一卷》模拟题及答案(预测版)
评论
0/150
提交评论