软件工程知识点_第1页
软件工程知识点_第2页
软件工程知识点_第3页
软件工程知识点_第4页
软件工程知识点_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

名词解释:1、 软件工程:软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程2、 软件生存周期:是指产品或软件洗头你那个 从产生。投入使用到被淘汰的全过程。软件生存周期主要分为六个阶段:计算机系统工程,需求分析。设计。编码。测试。运行和维护。3、.软件过程:软件过程是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。4、逆向工程:指在软件生存周期中,将软件的某种形式描述转换成更抽象形式的活动。5、再工程:指在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。 6、程序设计语言:是指用于书写计算机程序的语言,它是一种实现性的软件语言7、计算机系统工程:是一个问题求解的活动,其目的是分析基于计算机的系统的功能、性能等要求,并把它们分配到基于计算机系统的各个系统元素中,确定它们的约束条件和接口。8.计算机软件:指计算机系统中的程序,数据和文档。软件分类:系统软件,支撑软件,应用软件。9.可行性分析:主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成。经济可行性:主要进行成本-效益分析,从经济角度,确定系统是否值得开发。还有“短期-长远利益” 分析。 技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系统能否实现。技术可行性分析通常包括:风险分析、资源分析、技术分析。法律可行性分析研究系统开发过程中可能涉及到的合同、侵权、责任以及各种与法律相抵触的问题。10.系统工程的任务:1.识别用户的要求2. 系统建模和模拟2.1硬件系统模型 2.2软件系统模型2.3人机接口模型2.4数据模型3.成本估算及进度安排 4.可行性分析5.生成系统规格说明11、模块:是数据说明、可执行语句等程序对象的集合,它是单独命名的,并且可以通过名字来访问。模块独立性:模块完成独立的功能并且与其他模块的接口简单, 模块间关联和依赖程度尽可能小。12、白盒盒测试:把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,目的是检查程序中所有逻辑路径是否都按预定的要求正确地工作。13.程序设计语言:是指用于书写计算机程序的语言,它是一种实现性的软件语言3、黑盒测试: 把测试对象看做一个黑盒子, 在测试时完全不考虑程序内部的逻辑结构和内部特性, 依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求.4、软件演化:是指软件在交付以后,对软件进行的一系列活动的总称。5、软件需求规约:是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。1、可移植性:指与软件从某一环境转移到另一环境下的难易程度2、软件维护:指软件系统交付使用后,为了改正错误或满足新的需要而修改软件的过程。3、多态性:同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果;5、软件项目管理:通过项目经理和项目组织的努力,运用系统理论的方法对项目及其资源进行计划、组织、协调、控制,旨在实现项目的特定目标的管理方法的体现。重构:是指在同一抽象级别上转换系统的描述形式。构件的分类 枚举分类(Enumerated Classification) 属性值分类(Attribute_Value Classification) 刻面分类(Faceted Classification)1)主要功能: 构件的分类存储(即添加构件):根据构件库的分类模型将入库的构件储存在构件库中。 构件检索:从构件库中检索出满足用户要求或接近用户要求的构件。 构件库浏览:浏览库中的全部或部分构件。 删除构件:将不再使用的构件从构件库中删去。构件使用情况评价:根据用户使用和检索构件的反馈意见对构件作出评价,为进一步的改进提供依据构件检索方法 常用的构件检索方法 规约匹配 型构(signature)匹配 术语轮廓匹配 行为采样匹配 风险管理就是识别评估风险,建立、选择、管理和解决风险的可选方案和组织方法。包括了风险标识、风险预测、风险评估和风险管理与监控四个活动。1、简述软件生存周期及其每一阶段的主要任务?解答:6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。计算机系统工程的任务:确定待开发软件的总体要求和范围,以及它与其它计算机系统元素之间的关系进行成本估算,做出进度安排进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。需求分析:主要解决待开发软件要“做什么”的问题。确定软件的功能、性能、数据、界面等要求,生成软件需求规约。软件设计:主要解决待开发软件“怎么做”的问题。软件设计分系统设计(概要设计)和详细设计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构;详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。 编码 用某种程序设计语言,将设计的结果转换为可执行的程序代码。 测试 发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。 运行和维护 在软件运行期间,当发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时对软件进行修改。2、请给出5种软件过程模型,并简单说明每种模型的特点。解答:瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。解答:瀑布模型:它给出了软件生存周期活动的固定顺序,上以阶段的活动完成后想下一阶段的活动过渡,最终得到开发产品增量模型:将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量版本”,后一个版本是对前一个版本的修改和补充,重复增量模型的发布过程,直至产生最终的完善产品原型模型:从软件工程师和客户交流开始,快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方法对其建模,并构建原型。典型的演化模型有:增量模型、原型模型、螺旋模型。原型(prototype)是预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型。螺旋式模型:它将原型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅体现了这两种模型的优点,而且增加了风险分析。(主要包括四个方面的活动:制定目标,风险分析,工程实施,客户评估)喷泉模型:是一种支持面向对象开发的过程模型,包括:分析、设计、编码、测试、集成、演化。3、软件过程能力成熟度 CMM提供了一个成熟度等级框架: 1级 -初始级、 2级 -可重复级、 3级 -已定义级、 4级-已管理级 5级-优化级。 初始(initial)级: 软件过程的特点是无秩序的,甚至是混乱的。几乎没有什么过程是经过妥善定义的,成功往往依赖于个人或小组的努力。2.可重复(repeatable)级: 建立了基本的项目管理过程来跟踪成本、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。3.已定义(defined)级: 己将管理和工程活动两方面的软件过程文档化、标准化,并综合成该机构的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。4.已管理(managed)级: 收集对软件过程和产品质量的详细度量值,对软件过程和产品都有定量的理解和控制。 5.优化(optimizing)级: 整个组织关注软件过程改进的持续性、预见及增强自身,防止缺陷及问题的发生。过程的量化反馈和先进的新思想、新技术促使过程不断改进。1. 软件需求工程分为: 需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理6个阶段。 需求获取方法与策略1.建立顺畅的通信途径 2.访谈与调查 3.观察用户操作流程 4.组成联合小组 5.用况(Use Case) 2、软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。第四章1. 软件设计 是把软件需求变换成软件表示的过程,它主要包含两个阶段: 软件体系结构设计和部件级设计。2.软件设计分两步完成;分为概要设计和详细设计两个阶段。3.软件设计原则 抽象化与逐步求精 模块化 信息隐藏 模块独立4.模块:是数据说明、可执行语句等程序对象的集合,它是单独命名的,并且可以通过名字来访问。模块完成独立的功能并且与其他模块的接口简单, 模块间关联和依赖程度尽可能小。5.模块的独立性: 模块完成独立的功能并且与其他模块的接口简单, 模块间关联和依赖程度尽可能小.模块化把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件,实际上是系统分解和抽象的过程。 模块的独立性可以由两项指标来衡量:内聚度与耦合度 模块独立性比较强的模块应是高内聚低耦合的模块 5、结构化程序设计方法 图形/表 表示法 1.程序流程图 2.N-S图 3.PAD图 4.E-R图 5.判定表 PDL(Program Design Language)是一种用于描述功能部件的算法设计和处理细节的语言,称为设计性语言。 第五章一:结构化方法1、 一种面向数据流的传统软件开发方法2、 以数据流为中心构建软件的分析和设计模型分为:3、 结构化分析(Structured Analysis,SA)4、 结构化设计(Structuresd Design,SD)5、 结构化程序设计(Structured Programming,SP)二:用于描述基本加工的小说明的三种描述工具是结构化语言 、 判定表和判定树。3、在模块化设计过程中,必须遵循的设计原则是什么?为了实现有效的模块化,采用的启发设计策略师什么?在模块化设计过程中,必须遵循的设计原则:抽象与逐步求精、信息隐藏、模块化、高内聚低耦合。按照模块化设计原则,相应的启发式设计策略(6条):(1)改造程序结构图,降低耦合度,提高内聚度(2)避免高扇出,并随着深度的增加,力求高扇入(3)模块的影响范围应限制在该模块的控制范围内(4)降低模块接口的复杂程度和冗余程度,提高一致性(5)模块的功能应是可预测的,避免对模块施加过多的限制(6)尽可能设计单入口和单出口的模块1、 OOA包括哪些活动?解答:面向对象分析包括活动:解答:面向对象分析包括活动:(1)获取客户对系统的需求:包括标识场景(scenario)和用况(use case,也称用例),以及建造需求模型(2)用基本的需求为指南,来选择类和对象(包括属性和操作)。(3)定义类的结构和层次。(4)建造对象关系模型。(5)建造对象行为模型。(6)利用用况/场景来复审分析模型。 2、说明软件测试和调试的目的有何区别?解答:软件测试是设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误。调试的目是确定错误的原因和准确位置,并加以纠正。3、结构化程序设计方法的基本要点是什么?解答:结构化设计是将结构化分析得到的数据流图映射成软件体系结构的一种设计方法。强调模块化、自顶向下逐步求精、信息隐蔽、高内聚低耦合等设计准则;分为概要设计和详细设计两大步骤。5、简述单元测试的内容,什么是白盒测试法?常用的白盒测试方法有哪些?解答:把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作常用的白盒测试方法有:逻辑覆盖测试、基本路径覆盖测试、数据流测试、循环测试。6、简述面向对象的特征。解答: 继承、多态、封闭、抽象。4、 什么是黑盒测试法?常用的黑盒测试方法有哪些?解答:黑盒测试法把被测试对象看成是一相黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。采用黑盒技术测试用例的方法有:等价类的划分、边界值分析、错误推测和因果图。5、 UML统一建模语言有哪几种图形?各种图形主要功能是什么?解答:主题域视图(view)图(diagram)结构化静态视图类图(class)设计视图内部结构(internal structure)协作图(collaboration)构件图(component)用况视图用况图(use case)动态的状态机视图状态机图(state machine)活动视图活动图(activity)交互视图顺序图(sequence)通信图(communication)物理的部署视图部署图(deployment)模型管理模型管理视图包图(package)6、简述面向对象的设计过程。解答:(1)系统设计将子系统分配到处理器、选择实现数据管理、界面支持和任务管理的设计策略、为系统设计合适的控制机制;(2)对象设计在过程级别(procedural lavel)设计每个操作,即设计每个操作的实现细节、定义内部类、为类属性设计内部数据结构;(3)消息设计:使用对象间的协作和对象-关系模型,设计消息模型(4)复审:复审设计模型并在需

温馨提示

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

最新文档

评论

0/150

提交评论