软件工程(清华钱乐秋版)期末复习重点

合集下载

软件工程(钱乐秋版)重点

软件工程(钱乐秋版)重点

软件工程第一章概述1、定义: 软件 == 程序 + 数据 + 文档1.数据:程序加工处理的对象。

包括数据的表示、组织与存储。

数据 == 初始化数据 + 测试数据2.文档(document):开发、使用和维护程序所需的图文资料。

文档 == 开发文档 + 管理文档。

3.程序(program):能完成预定功能和性能的指令集合。

4.软件和程序的区别程序只是完整软件产品的一部分。

编写程序只是软件开发过程数据中的一个阶段,一般来说,其工作量仅仅是软件开发全部工作量的10%-20%2、软件的特点:抽象性、可复制性、无折旧、受硬件制约、未完全摆脱手工工艺、开发费用高3、软件按适用范围分:定制软件和通用软件4、计算机软件发展的三个时期1. 早期时代(60年代中期之前)程序设计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。

2. 第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。

3. 第三代(70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科——软件工程。

5、解决软件危机的途径1. 技术措施◆消除错误的概念和做法◆使用更好的软件开发方法和开发工具2. 组织管理措施◆软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

6、软件工程定义:软件工程是指导计算机软件开发和维护的工程学科。

它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

7、软件生存周期:软件生存周期一般分为:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编码和单元测试、综合测试)、软件维护等三个时期。

8、能力成熟度模型CMM:CMM(Capability Maturity Model)即能力成熟度模型,用于评价软件机构的软件过程能力成熟度的模型。

2021最新版《软件工程》期末考试重点背诵内容

2021最新版《软件工程》期末考试重点背诵内容

1.什么是软件危机及其表现?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

表现:(1)对软件开发成本和进度的估计常常很不准确。

(2)用户对“已完成的”软件系统不满意的现象经常发生。

(3)软件产品的质量往往靠不住。

(4)软件常常是不可维护的。

(5)软件通常没有适当的文档资料。

(6)软件成本在计算机系统总成本中所占的比例逐年上升。

(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

2.什么是软件工程?答:软件工程是指导计算机软件开发和维护的一门工程学科,由需求分析、总体设计、详细设计、编码、测试、维护和演化等一系列分工明确的活动组成。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

3.什么是瀑布模型方法?(有利于大型软件开发过程中人员的组织及管理)答:按照时间顺序依次进行可行性分析、项目计划、需求分析、概要设计、详细设计、编码与单元测试、集成测试、确认验证、运行与维护等几个阶段进行软件开发。

图1 瀑布模型(软件生命周期模型)4.瀑布模型方法的优缺点:其优点体现在:(1)促进软件开发的工程化。

(2)提高了软件的成功率和质量。

(3)加强了软件开发的管理过程。

(4)强调了文档的作用,保护了软件开发商的利益。

其缺点体现在:(1)瀑布模型僵化的划分阶段、缺乏灵活性,对于软件需求不明确或不准确的问题,由于其开发模型是线性的,所以瀑布模型的风险控制能力较弱。

一方面用户只有等到整个过程的后期才能见到开发成果,中间提出的变更要求很难响应。

另一方面体现在早期的错误可能要等到开发后期的测试阶段才能发现,这样会带来严重的后果。

(2)增加了软件开发的工作量,由于开发过程各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

软件工程(清华钱乐秋版)期末复习重点

软件工程(清华钱乐秋版)期末复习重点

1、什么是软件工程?在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

2、软件生存周期分哪几个阶段?分别简述各个阶段的任务。

答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。

A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。

B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。

C 软件设计只要解决待开发软件“怎么做”的问题。

软件设计通常可分为系统设计和详细设计。

系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。

详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。

D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。

E测试阶段的任务是发现并纠正软件中的错误和缺陷。

测试主要包括单元测试、集成测试、确认测试和系统测试。

F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。

3、简述各类软件过程模型的特点。

答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。

A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是:接受上一阶段活动的结果作为本阶段活动的输入;依据上一阶段活动的结果实施本阶段应完成的活动;对本阶段的活动进行评审;将本阶段活动的结果作为输出。

B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。

软件工程期末复习重点

软件工程期末复习重点

1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。

这个时期的工作通常又称为系统分析,由系统分析员负责完成。

软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。

6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。

其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

7.维护时期的主要任务是使软件持久地满足用户的需要。

8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。

9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。

a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。

①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。

c)质量保证的观点:软件工程的基本目标是优质、高产。

为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。

每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。

每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

软件工程期末考试重点

软件工程期末考试重点

《软件工程》期末复习重点第一章软件工程1.什么是软件工程。

A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。

2. 软件工程的三要素:方法、工具和过程。

第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。

概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。

c.运行维护:修正错误,使软件持久地满足用户需要。

改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。

如:瀑布模型的不足是不能适应需求的动态变更。

A.瀑布模型特点:可强迫开发人员采用规范化的方法。

严格地规定了每个阶段必须提交的文档。

要求每个阶段交出的所有产品都必须是经过验证(评审)的。

缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。

如果需求规格与用户需求之间有差异,就会发生这种情况。

只适用于项目开始时需求已确定的情况。

B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。

降低了规格说明文档变化的可能性。

减少了后续阶段错误的可能性。

c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。

当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。

增量能够有计划地管理技术风险。

缺点:要求构件具备开放式的体系结构。

易退化为边做边改模型,从而使软件过程的控制失去整体性。

软件工程(钱乐秋版)重点

软件工程(钱乐秋版)重点

软件工程(钱乐秋版)重点
1. 软件生命周期管理:了解软件项目的不同阶段,包括需求分析、设计、编码、测试和维护,以及如何有效地进行项目管理和沟通。

2. 需求工程:学习如何获取、分析和管理用户需求,以确保软件能够满足用户的期望和需求。

3. 软件设计:学习如何将需求转化为可执行的设计方案,包括系统架构设计、模块设计和接口设计等。

4. 软件测试:学习各种软件测试技术和方法,包括单元测试、集成测试、系统测试和验收测试等,以确保软件在交付给用户之前质量可靠。

5. 软件质量保证:学习如何制定和执行软件质量保证计划,包括建立标准和规范、进行代码审核和测试、实施持续集成等。

6. 软件配置管理:学习如何管理软件项目的不同版本和配置,包括版本控制、软件发布和变更管理等。

7. 软件项目管理:学习如何制定和执行软件项目的计划、进度和资源管理,以确保项目能够按时完成并符合预期要求。

8. 软件开发方法和工具:学习不同的软件开发方法和工具,包括敏捷开发、迭代开发、持续集成和自动化测试等。

9. 软件安全和保护:学习如何保护软件系统的安全性,包括防止恶意攻击、保护用户数据和加密通讯等。

10. 软件维护和演化:学习如何识别和修复软件系统中的缺陷和问题,并进行软件系统的演化和改进。

软件工程(钱乐秋版)重点简版

软件工程(钱乐秋版)重点简版

软件工程(钱乐秋版)重点软件工程(钱乐秋版)重点1. 软件工程概述软件工程是一门致力于系统化、规范化和可靠化地开发软件的学科和技术。

它涉及软件的开发过程、软件的生命周期管理以及软件项目的管理等方面。

2. 软件生命周期软件生命周期是指一个软件从概念到退役的整个过程。

常见的软件生命周期模型包括瀑布模型、迭代模型和敏捷模型等。

- 瀑布模型:瀑布模型是一种线性的开发过程模型,依次包括需求分析、设计、编码、测试和维护等阶段。

- 迭代模型:迭代模型将软件开发过程划分为多个迭代周期,每个迭代周期包括需求分析、设计、编码、测试和评审等步骤,每个迭代周期都能产生可交付的软件部分。

- 敏捷模型:敏捷模型强调团队合作、迭代开发和及时反馈,通常采用短期迭代的方式进行开发,如Scrum和XP等。

3. 需求工程需求工程是指对软件开发中用户需求的获取、分析、规范和管理的过程。

它包括需求定义、需求分析、需求规格和需求验证等阶段。

- 需求定义:需求定义阶段主要通过与用户和利益相关者进行沟通,明确用户的需求和期望。

- 需求分析:需求分析阶段目的是进一步细化和分解需求,识别出软件系统的功能和性能需求。

- 需求规格:需求规格阶段根据需求分析的结果编写需求文档,明确软件系统的各项需求。

- 需求验证:需求验证阶段通过测试、评审等方法验证需求是否满足用户需求和规范要求。

4. 软件设计软件设计是指在需求分析的基础上,通过对软件系统的结构、构件和算法进行设计,以满足软件需求的过程。

- 结构设计:结构设计主要考虑软件系统的模块划分、模块之间的接口和调用关系等,以及软件系统的整体结构和层次。

- 构件设计:构件设计关注软件系统中各个构件的内部结构和实现方式,主要包括类的设计、函数的设计以及数据结构的设计等。

- 算法设计:算法设计关注软件系统中各种算法的设计和优化,以提高软件系统的性能和效率。

5. 软件测试软件测试是指对软件系统进行验证和验证,以确定其是否满足预先定义的要求和用户需求。

软件工程期末考试复习重点

软件工程期末考试复习重点

第一章软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。

软件危机的主要表现:1、对软件开发成本和进度的估计常常很不准确。

2、用户对“已完成的”软件系统不满意的现象经常发生。

3、软件产品的质量往往靠不住。

4、软件常常是不可维护的5、软件通常没有适当的文档资料6、软件成本在计算机系统总成本中所占的比例逐年上升7、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势软件工程:定义一:是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。

定义二:1.把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2.研究1.中提到的途径。

软件工程方法学的三个要素:方法、工具和过程。

目前使用的最广泛的软件工程方法学:传统方法学、面向对象方法学。

软件的生命周期:软件生命周期有软件定义、软件开发和运行维护3个时期组成;定义时期分为:问题定义、可行性研究和需求分析阶段;开发时期分为:总体设计、详细设计、编码和单元测试、综合测试;维护时期的任务:是软件持久的满足用户的需求;瀑布模型:最广泛的过程模型;瀑布模型的特点:1、阶段间具有顺序性和依耐性;2、推迟实现的观点;3、质量保证的观点;Rational统一过程(RUP)四个阶段的工作目标:初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围;精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求;构建阶段:开发出所有构件和应用程序,把他们集成为客户需要的产品,并且详尽地测试所有功能;移交阶段:把开发出的产品提交给用户使用;第二章可行性研究的目的是确定问题是否值得去解决;可行性研究的方面:技术可行性、经济可行性、操作可行性;系统流程图描述物理模型;P39(要求会做)数据流图描述逻辑模型;P40(要求会做)数据流图(DFD)描绘信息流和数据从移动到输出的过程中所经受的变换;数据字典有以下4类元素的定义组成:数据流、数据流分量(数据元素)、数据存储、处理;由数据元素组成的数据的方式三种基本类型:顺序、选择、重复;“=”是等价于(或者定义为),“+”是和(用来连接分量),“[ ]”是或(从其中选一),“{ }”是重复,“()”是可选;第三章:需求分析任务:功能需求是指定系统必须提供的服务,通过该分析划出该系统必须完成的所有功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、什么是软件工程在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

2、软件生存周期分哪几个阶段分别简述各个阶段的任务。

答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。

A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。

B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。

C 软件设计只要解决待开发软件“怎么做”的问题。

软件设计通常可分为系统设计和详细设计。

系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。

详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。

D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。

E测试阶段的任务是发现并纠正软件中的错误和缺陷。

测试主要包括单元测试、集成测试、确认测试和系统测试。

F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。

3、简述各类软件过程模型的特点。

答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。

A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是:接受上一阶段活动的结果作为本阶段活动的输入;依据上一阶段活动的结果实施本阶段应完成的活动;对本阶段的活动进行评审;将本阶段活动的结果作为输出。

B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。

C 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。

然后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。

被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一轮迭代中对原型进行改进。

在前一个原型需要改进,或者需要扩展其范围的时候,进入下一轮原型的迭代开发。

D 螺旋模型将原型模型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅体现了这两种模型的优点而且还增加了风险分析。

E 喷泉模型是一种支持面向对象开发的过程模型。

类及对象是面向对象方法中的基本成分。

在分析阶段,标识类及对象,定义类之间的关系,建立对象-关系模型和对象-行为模型。

在设计阶段,从实现的角度对分析模型进行调整和扩充。

在编码阶段,用面向对象语言实现类及对象,通过消息机制实现对象之间的通信,完成软件的功能。

在面向对象方法中,分析模型和设计模型采用相同的符号表示体系,开发的各个活动没有明显的边界,各个活动经常重复,迭代地交替进行。

F 基于构件的开发模型,基于构件的开发是指利用预先包装的构建来构造应用系统。

构件可以是组织内部开发的构建,也可以是商业化的、现存的软件构件。

G 形式化方法是建立在严格数学基础上的一种软件开发方法。

软件开发的全过程中,从需求分析、规约、设计、编程、系统集成、测试、文档生成,直至维护等各个阶段,凡是采用严格的数学语言,具有精确的数学语义的方法,都称为形式化方法。

形式化方法用严格的数学语言和语义描述功能和设计规约,通过数学的分析和推导,易于发现需求的歧义性、不完整性和不一致性,易于对分析模型、设计模型和程序进行验证。

通过数学的演算,使得从形式化功能规约到形式化设计规约,以及从形式化设计规约到程序代码转换成为可能。

CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。

CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型)CASE:计算机辅助软件工程。

用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。

CASE工具主要包括:画图工具,报告生成工具,数据词典、数据库管理系统和规格说明检查工具,代码生成工具和文档资料生成工具等。

Case环境可行性分析经济可行性:主要进行成本效益分析,从经济角度,确定系统是否值得开发。

成本、效益、货币的时间价值、投资回收期、纯收入技术可行性:风险分析、资源分析、技术分析法律可行性:需求工程六个阶段:需求获取、需求分析与协商、系统建模、需求规约、需求验证、需求管理简述模块、模块化及模块化设计的概念。

在软件工程中模块是数据说明、可执行语句等程序对象的集合,具有名字、参数、功能等外部特征以及完成模块功能的程序代码和模块内部数据等内部特征。

模块化,即把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件,实际上是系统分解和抽象的过程。

模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。

逐步求精的结果是得到一系列以功能块为单位的算法描述。

以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。

模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。

模块的独立性是模块化、信息隐藏和局部化等概念的直接结果。

用内聚度与耦合度来度量独立性。

内聚度度量同一个模块内部各个元素彼此结合的紧密程度,耦合度度量不同模块彼此间相互以来的紧密程度。

软件设计的任务:数据/类设计、体系结构设计、接口设计、部件级设计软件设计原则:1、抽象与逐步求精2、模块化3、信息隐藏4、功能独立模块耦合度和模块内聚度如何判读数据流图的一致性和完整性一致性:检查(1)父图与子图平衡(2)数据守恒(3)局部文件(4)一个加工的输出数据流不能与该加工的输入数据流同名完整性:检查(1)每个加工至少有一个输入数据流和一个输出数据流(2)在整套分层数据流图中,每个文件应至少有一个加工读该文件,有另一个加工写该文件(3)分层数据流图中的每个数据流和文件都必须命名(除了流入或流出文件的数据流),并保持与数据字典一致(4)分层DFD的每个基本加工都应有一个加工公约为了实现有效的模块化,给出以下启发式设计策略:1、改造程序结构图、降低耦合度、提高内聚度2、避免高扇出,并随着深度的加入,力求高扇入3、模块的影响范围应限制在该模块的控制范围内4、降低模块接口的复杂程度和冗余程度,提高一致性5、模块的功能应该是可预测的,避免对模块施加过多的限制6、尽可能设计单入口和单出口的模块DFD图、数据字典、判定数、判定表的应用面向对象的基本概念、用况图、类图、状态机图的应用软件测试的目的是什么答:软件测试的目的是发现软件中的错误和缺陷,并加以纠正。

什么是白盒测试什么是黑盒测试答:白盒测试又称结构测试,这种方法把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。

白盒测试主要用于对程序模块的测试。

包括:程序模块中的所有独立路径至少执行一次。

对所有逻辑判定的取值(真与假)都至少测试一次。

在上下边界及可操作范围内运行所有循环。

测试内部数据结构的有效性等。

黑盒测试又称行为测试,这种方法把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符号它的功能需求。

黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能接口错误,如输入输出参数的个数、类型等。

数据结构错误或外部信息(如外部数据库)访问错误。

性能错误。

初始化和终止错误。

分别简述单元测试、集成测试、确认测试和系统测试的任务。

单元测试:又称模块测试,着重对软件设计的最小单元——软件构件或模块进行验证。

单元测试根据设计描述,对重要的控制路径进行测试,已发现构建或模块内部的错误,通常采用白盒测试,并且多个构件或模块可以并行测试。

单元测试的主要内容:接口、局部数据结构、边界条件、独立路径和错误处理路径。

集成测试:集成测试,也叫组装测试或联合测试。

在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。

实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。

程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。

目的:是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。

它所测试的内容包括单元间的接口以及集成后的功能。

使用黑盒测试方法测试集成的功能。

并且对以前的集成进行回归测试。

确认测试:确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。

经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。

系统测试:将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。

系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。

是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。

对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。

什么是α测试什么是β测试α测试:α测试是由一个用户在开发者的场所进行的测试,软件在开发者对用户的“指导下”进行测试。

经过α测试后的软件称为β测试。

β测试:β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善。

β测试也是黑盒测试。

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。

什么是回归测试回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

自动回归压力测试:又称强度测试,是在一种需要非正常数量、频率或容量的方式下执行系统,其目的是检查系统对非正常情况的承受程度。

相关文档
最新文档