济南大学软件工程考试总结.docx_第1页
济南大学软件工程考试总结.docx_第2页
济南大学软件工程考试总结.docx_第3页
济南大学软件工程考试总结.docx_第4页
济南大学软件工程考试总结.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

2013年复习内容一、概念类(形式:填空、选择、简答、简要绘图)1、 软件、软件生命周期、软件工程、软件过程及经典过程模型、软件工程三要素(方法、工具、过程)(1)软件:软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档。(2)软件生命周期:问题定义 可行性研究 需求分析 总体设计 详细设计 编码和单元测试 综合测试 维护(3)软件工程:软件工程学是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。软件工程包括技术和管理两个方面内容,是技术和管理紧密结合形成的工程学(4)软件过程:软件过程是为了获得高质量软件所需要进行的一系列任务的框架,它规定了完成各项任务的工作步骤。包括阶段、方法、技术、时间及相关产物(文档、模型、代码等)。(5)经典过程模型:瀑布模型(Waterfall)原型模型(Prototype)增量模型(Incremental)螺旋模型(Spiral)统一过程模型(RUP)敏捷过程与极限编程科.瀑布模型是基础,适合需求明确的小型项目。其它任何模型中的阶段工作都可以看作小型的瀑布模型方法。严格意义上,瀑布模型是人解决问题通用思路的抽象。原型模型比较适合于验证需求和技术,但不宜与构建过多原型。增量模型在大系统开发中常用,可以把大系统划分成子系统和功能,然后定义功能优先级,按照优先级开发。螺旋模型适合需求不明确时及时评估风险。现代模型基本上都是上述4种过程模型的优化组合和细化。(6)软件工程三要素:方法:完成软件开发各项任务的技术方法。回答“怎么做”的问题工具:为运用方法而提供的自动、半自动软件工程支撑环境。回答“可以用什么做”的问题。过程:是为了获得高质量的软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。2、 RUP和敏捷过程模型、XP模型(1) RUP:Rational Unified Process 是IBM/Rational公司开发的一种软件开发过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。 过程核心基础是: 用例和风险驱动 架构为中心 迭代和增量(2)敏捷过程:强调适应性而非预见性,要能快速适应现实的变化。适应小规模的软件组织。强调较短的开发周期和队伍的高度协作。 (3)XP模型:极限编程诞生于一种加强开发者与用户的沟通需求,让客户全面参与软件的开发设计,保证变化的需求及时得到修正。要让客户能方便地与开发人员沟通,一定要用客户理解的语言,先测试再编码就是先给客户软件的外部轮廓,客户使用的功能展现,让客户感觉到未来软件的样子,先测试再编码与瀑布模型显然是背道而驰的。同时,极限编程注重用户反馈与让客户加入开发是一致的,让客户参与就是随时反馈软件是否符合客户的要求。有了反馈,开发子过程变短,迭代也就很自然出现了,快速迭代,小版本发布都让开发过程变成更多的自反馈过程,有些象更加细化的快速模型法。3、 需求的层次(业务需求、用户需求、功能需求)业务需求( business requirement) :反映组织机构或客户对系统、产品高层次的目标要求,他们在项目视图与访问文档中予以说明。用户需求(user requirement) :描述用户使用产品必须要完成的任务。功能需求(functional requirement) :定义开发人员必须实现的软件功能,使得用户能完成他们的任务。非功能需求:软件除了满足功能以外还须满足的一些标准、规范和约束等。4、 需求分析的过程(问题识别、分析综合、编制文档、评审)、不合格需求的做法、分析员的要求、调查研究的主要方法。(1) 需求分析的过程问题识别(寻找需求):从系统的角度来理解软件并评审软件范围是否恰当;确定对目标系统的综合要求,即软件的需求;提出这些需求实现条件,以及需求应达到的标准。软件的需求包括:功能需求,性能需求,环境需求,可靠性需求,安全保密要求,用户界面需求,资源使用需求,成本消耗需求,开发进度需求,预先估计以后系统可能达到的目标分析与综合(需求建模)从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。常用的分析方法: 面向数据流的结构化分析方法 (SA) 面向数据结构的Jackson方法 (JSD) 面向数据结构的结构化数据系统开发方法 (DSSD) 面向对象的分析方法 (OOA) 等编制文档主要完成的文档: 软件需求说明书(SRS- Software Requirements Specifications) 数据要求说明书 初步的用户手册 修改、完善与确定软件开发实施计划评审系统定义的目标是否与用户的要求一致; 系统需求分析阶段提供的文档资料是否齐全; 文档中的所有描述是否完整、清晰、准确反映用户要求; 与所有其它系统成分的重要接口是否都已经描述; 被开发项目的数据流与数据结构是否足够,确定; 所有图表是否清楚,在不补充说明时能否理解; 主要功能是否已包括在规定的软件范围之内,是否都已充分说明; 设计的约束条件或限制条件是否符合实际; 开发的技术风险是什么; 是否考虑过软件需求的其它方案; 是否考虑过将来可能会提出的软件需求; 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;(2) 不合格需求的做法: 无足够用户参与。用户的需求不断增加。模棱两可的需求。不必要的特性。过于精简的规格说明。忽略了用户的分类。不准确的计划。(3) 分析员的要求:系统分析员研究组织的问题和需要,决定如何使人员、数据、过程和信息技术最好的满足业务改进的需要。应具备以下素质: 熟练地掌握计算机软硬件专业知识,具备一定地系统开发经验。 善于进行抽象地思维和创造性地思维,善于把握抽象地概念,并把他们重新整理成为各种逻辑成分,给出简明、清晰地描述。 善于从相互冲突或混淆地原始资料中抽出恰当地条目来。 善于进行调查研究,能够很快学习用户地专业领域知识,理解用户地环境条件。 能够倾听他人地意见,注意发挥其他人地作用。 具有良好地书面和口头交流表达能力。(4) 调查研究的主要方法: 了解系统的需求。市场调查。访问用户和用户领域的专家。考察现场,搜集资料5、 软件设计从管理上分概要设计和详细设计;从技术上分体系结构设计、功能(过程)设计、数据设计、界面设计。软件设计的基本原理:模块化 抽象 自顶向下,逐步细化 信息隐藏和局部化 模块独立 启发式原则6、 软件设计过程:提供方案、选择合理方案、功能分解、设计架构、设计数据库、指定测试文档、撰写文档。7、 模块化、模块独立性准则(耦合和内聚)(1) 模块化就是说,整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。(2) 模块独立是模块化、抽象、信息隐蔽和局部化概念的直接结果。模块独立的重要性:1. 有效的模块化(具有独立的模块)的软件比较容易开发。由于对功能进行了分割,任务得到了分解。2. 独立的模块比较容易测试、维护。不独立的模块之间关系复杂。模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的。例如, 若一个模块只具有单一的功能且与其它模块没有太多的联系, 则称此模块具有模块独立性一般采用两个准则度量模块独立性。即模块间耦合和模块内聚(3) 耦合是模块之间的互相连接的紧密程度的度量。内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块独立性比较强的模块应是高内聚低耦合的模块。8、 软件测试的目的;测试:单元测试、组装(集成)测试、确认测试、系统测试。黑盒和白盒测试。黑盒主要方法:等价类划分、边界值分析、错误推测法。白盒主要方法:语句覆盖、判定覆盖、条件覆盖;测试过程与软件开发阶段关系;驱动模块和桩模块含义,并会设计桩模块。(1) 软件测试的目的:从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。(2) 具体测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。组装测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。(3)黑盒和白盒:黑盒 这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试。白盒:此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。黑盒主要方法:等价类划分等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。边界值分析边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。错误推测法人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。因果图(课件里头没有)白盒主要方法:语句覆盖:语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。判定覆盖:判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。条件覆盖:条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。(4) 驱动模块:相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。桩模块:用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。9、 结构化分析方法的主要工具(DFD数据流图、E-R、状态迁移图、数据字典)10、 软件体系结构中常见的分层结构的优点(自己总结),?三层结构内容及每层含义。三层架构:数据层(DAL)、逻辑层(BLL)、表示层(UI);三层结构的优点 1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化; 5、利于各层逻辑的复用。各层的内容表示层位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面业务逻辑层业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。数据层数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。11、 维护的主要类型和方法:改正性、适应性、完善性、预防性。改正性:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,所进行的诊断和改正错误的过程就叫做改正性维护。适应性:为使软件适应计算机软件、硬件等的各种变化,而去修改软件的过程就叫做适应性维护。完善性:为了满足用户提出的新要求而进行的维护活动叫做完善性维护。预防性:为了提高软件的可维护性、可靠性等,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。12、 OOA主要概念:问题域、系统责任;OOA的主要原则:抽象、分类、封装、继承、聚合、关联、消息通讯、粒度控制。(1) 问题域:被开发系统的应用领域,即现实世界中由这个系统处理的业务范围。(2) 系统责任:所开发的系统应具备的功能。二者大部分相同,但不一定完全相同。(3) 抽象: 从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质的特征,就叫做抽象。抽象是一种简化,帮助人们在某个层次上认识事物。不同人对同一个概念会建立起不同抽象。(4) 分类: 把具有相同属性和操作的对象划分为一类,用类作为这些对象的抽象描述。(5) 封装: 封装原则强调对象的完整性和独立性,通过一种机制,将对象的属性和操作结合为一个不可分的系统单位,并尽可能隐藏对象的内部细节。 抽象是突出事物的重要特性,而封装是隐藏事物的内部细节。(6) 继承: 在OO中,继承是一种机制,特殊类对象可以自动拥有其一般类的属性和操作,使得系统模型简单、清晰。(7) 聚合: 聚合原则是:把一个复杂的事物看成由若干个比较简单的事物组成的,从而简化对复杂事物的描述,使得系统模型能够清晰地描述问题域中事物之间的关系。是一种“整体-部分关系”。紧密固

温馨提示

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

评论

0/150

提交评论