软件工程考试必备知识点
软件工程课程考试重点知识汇总

概论1.软件的定义软件是计算机系统中与硬件相互依存的一个部分,它是包括程序、数据及其相关文档的完整集合。
其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。
2.软件工程的定义和三要素IEEE:软件工程是开发、运行、维护和修复软件的系统方法。
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
三个要素:方法、工具和过程。
方法为软件开发提供了“如何做”的技术。
它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
工具为软件工程方法提供了自动的或半自动的软件支撑环境。
目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。
CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。
过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
3.软件工程和软件危机的关系现有软件危机后有软件工程为了解决软件危机,既要有技术支持措施(方法和工具),又要有必要的组织管理措施。
软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。
4.软件生命周期的概念,划分的三个时期和八个阶段概念:软件生命周期是软件的产生直到报废的生命周期三个时期:软件定义,软件开发,运行维护8个阶段:问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃5.理解结构化软件开发方法和面向对象软件开发方法结构化开发方法:早期的程序开发,如C语言,都是用结构化开发方法。
软考必考知识点

软考必考知识点软考是指软件设计师资格考试,是衡量从事软件设计与开发工作人员能力的一项重要考试。
软考考试内容涵盖软件工程基础、软件需求与设计、软件开发、软件测试与维护、软件项目管理等多个方面的知识。
下面将从这些方面介绍软考必考的知识点。
一、软件工程基础软件工程是一门研究如何以系统化、规范化、可定量化的方法开发和维护软件的学科。
在软考中,需要掌握软件工程的基本概念、原则、方法和过程。
其中包括软件生命周期、软件开发模型、软件质量保证、软件度量等方面的知识。
二、软件需求与设计软件需求与设计是软件开发的前期工作,也是软件工程中非常重要的环节。
在软考中,需要了解需求工程的基本概念、需求获取与分析的方法、需求规格说明的技术、软件需求验证与确认等知识。
此外,还需要掌握软件设计的基本原则与方法,包括结构化设计、面向对象设计、设计模式等内容。
三、软件开发软件开发是软件设计师的核心工作之一,也是软考的重点内容。
在软考中,需要熟悉常用的编程语言和开发工具,掌握软件开发的基本流程和方法,了解软件开发中的常用技术和框架。
此外,还需要了解软件配置管理、软件版本管理、软件集成与构建等知识。
四、软件测试与维护软件测试与维护是软件开发的后期工作,也是软考的考查内容之一。
在软考中,需要了解软件测试的基本原理与方法,包括黑盒测试、白盒测试、灰盒测试等各种测试技术。
同时,还需要了解软件维护的基本概念、维护过程、维护类型等知识。
五、软件项目管理软件项目管理是软件设计师的重要职责之一,也是软考的考查内容。
在软考中,需要了解软件项目管理的基本原理与方法,包括项目计划与组织、项目进度与成本控制、项目风险管理等知识。
此外,还需要了解软件团队管理、软件项目质量管理等相关内容。
软考必考的知识点主要包括软件工程基础、软件需求与设计、软件开发、软件测试与维护、软件项目管理等多个方面的内容。
掌握这些知识点对于从事软件设计与开发工作的人员来说是非常重要的。
通过软考的考试,可以全面评估个人在软件设计与开发方面的能力,提高职业竞争力。
软件工程必背考点

软件工程必背考点软件工程是以工程法为基础的一门学科,涉及到软件开发的各个方面,包括需求分析、设计、编码、测试、维护等。
在软件工程的学习和实践中,有一些重要的考点需要我们掌握和理解。
本文将介绍一些软件工程的必背考点,以帮助读者更好地复习和准备软件工程的考试。
一、软件生命周期模型软件生命周期模型是指软件开发过程中不同阶段的组织、管理和控制方法。
常见的软件生命周期模型有瀑布模型、迭代模型、螺旋模型等。
熟悉和理解不同的软件生命周期模型对于项目管理和开发具有重要的意义。
二、需求工程需求工程是软件工程的重要组成部分,其目标是明确软件系统需要满足用户和利益相关者的需求。
需求工程包括需求获取、需求分析、需求规格说明等过程,需要掌握需求工程中的各种技术和方法。
三、软件设计软件设计是将需求转化为具体的设计方案和结构的过程。
软件设计包括结构设计、模块化设计、接口设计等,需要掌握设计的原则和方法,以及常用的设计模式和设计工具。
四、软件测试软件测试是确保软件系统质量的重要手段。
软件测试包括单元测试、集成测试、系统测试、用户验收测试等,需要掌握各种测试方法、策略和工具,以及缺陷管理和跟踪的技巧。
五、软件维护软件维护是软件工程的一个重要阶段,用于确保软件系统的可靠性和稳定性。
软件维护包括纠错性维护、适应性维护、完善性维护等,需要掌握维护的方法和技巧,以及版本管理和配置管理的工具和流程。
六、软件过程改进软件过程改进是为了提高软件开发过程的质量和效率而进行的系统性改进。
软件过程改进包括CMMI模型、SPICE模型等,需要了解软件过程改进的原理和方法,以及评估和度量的指标体系。
七、软件项目管理软件项目管理是为了成功地完成软件项目而进行的计划、组织、协调和控制的过程。
软件项目管理包括项目计划、资源管理、风险管理等,需要掌握项目管理的理论和实践,以及项目管理工具和技术。
八、软件工程伦理和专业责任软件工程伦理和专业责任是软件工程师必备的素养。
计算机二级【公共基础知识】软件工程基础

3.软件的分类
根据应用目标的不同,软件可分应用软件、系 统软件和支撑软件(或工具软件)。
(1)应用软件。它是在特定领域内开发,为特定目 的服务的一类软件。
(2)系统软件。它能与计算机硬件紧密配合在一起, 使计算机系统各个部分、相关的软件和数据协调、 高效的工作的软件。例如:操作系统、数据库管理 系统。
3.4软件测试
软件测试的指用人工或自动手段来运行或测定
某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间
的差别。简单地说,软件测试的目的是尽可能 多地发现程序中的错误。
考点2:软件测试方法
按是否要执行被测试软件的角度分为:静态测 试和动态测试。
静态测试包括代码检查、静态结构分析、代码 质量度量。不实际运行软件,主要通过人工进 行。
1. 详细设计为软件结构图中的每一个模块确定
实现算法和局部数据结构,用某种选定的表 达工具表示算法和数据结构的细节。
详细设计常用工具:
1. 图形工具(程序流程图、 PAD图 、N-S图、 HIPO图)
2. 表格工具(判定表)
3. 语言工具(PDL )
开始 输入R S=3.14 * R*R
输出S
结束
答案:D
例题:
软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展
答案:C
例题:
软件设计中,有利于提高模块独立性的一个准 则是
A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
答案:C
例题:
下列不属于结构化分析的常用工具的是 A)数据流图 B)数据字典 C)判定树 D)PAD图
软件工程师必考知识点

软件工程师必考知识点作为一名软件工程师,拥有广泛且扎实的技术知识对于我们的职业发展至关重要。
在面对各种技术考试时,了解和掌握下面的知识点将会为你带来巨大的优势。
接下来,我将为你详细介绍软件工程师必考的知识点。
一、编程语言与算法基础1. 了解多种编程语言,包括但不限于Java、C++、Python等,并掌握其语法和常见的编程范式;2. 掌握数据结构和算法的基本原理,如数组、链表、树、图、排序、查找等;3. 熟悉常用的算法设计和分析方法,例如贪心算法、动态规划、回溯算法等。
二、软件开发流程与方法1. 理解软件工程的基本概念和原理,熟悉软件开发的生命周期和相关模型,如瀑布模型、敏捷开发等;2. 掌握需求分析与规格说明的方法,包括用户故事、用例模型、状态图等;3. 熟悉软件设计的基本原则和方法,如模块化、封装、继承、多态等;4. 了解软件测试的基本概念和方法,包括单元测试、集成测试、系统测试等。
三、数据库与数据存储1. 熟悉关系数据库的基本原理,例如表、字段、索引、关联等;2. 掌握SQL语言的基本语法,包括数据查询、插入、更新、删除等操作;3. 了解非关系型数据库(NoSQL)的基本概念和使用场景,如键值型数据库、文档型数据库等;4. 熟悉数据存储和缓存技术,如文件系统、分布式文件系统、内存数据库等。
四、操作系统与网络基础1. 了解操作系统的基本原理和功能,包括进程管理、内存管理、文件系统等;2. 熟悉Linux系统的基本命令和操作,具备基本的Shell脚本编写能力;3. 理解计算机网络的基本概念和协议,包括TCP/IP、HTTP、DNS 等;4. 掌握网络编程的基本知识,包括Socket编程、网络通信协议等。
五、软件工程实践与工具1. 掌握代码版本管理工具,如Git、SVN等;2. 了解持续集成和持续交付的概念和方法,如Jenkins、Travis CI等;3. 熟悉软件项目管理工具,例如JIRA、Redmine等;4. 熟悉常用的开发工具和集成开发环境(IDE),如Eclipse、Visual Studio、IntelliJ IDEA等。
软工常考知识点梳理

软工常考知识点梳理软件工程是一门涉及软件开发的学科,它涵盖了软件的设计、开发、测试、维护等各个阶段。
在软件工程的学习和实践中,有一些常考的知识点,它们是软协的核心内容。
本文将对软工常考知识点进行梳理。
一、软件生命周期模型软件生命周期模型是指软件开发过程中各个阶段的组织和安排方式。
常见的软件生命周期模型有瀑布模型、迭代模型、敏捷模型等。
瀑布模型是一种线性顺序的开发模型,迭代模型则是循环迭代的开发模型,敏捷模型则强调快速响应变化和灵活性。
二、需求工程需求工程是确定用户需求的过程。
在软件工程中,需求工程是整个软件开发过程的基础。
需求工程包括需求获取、需求分析、需求规格说明等步骤。
常见的需求工程技术有面谈、问卷调查、故事板、用例等。
三、软件架构软件架构是软件系统的基本结构和组织方式。
良好的软件架构可以提高软件的可维护性、可扩展性和可重用性。
常见的软件架构模式有分层架构、客户端-服务器架构、微服务架构等。
四、软件开发方法论软件开发方法论是一套指导软件开发活动的原则和实践。
常见的软件开发方法论有结构化开发方法、面向对象开发方法、敏捷开发方法等。
每个方法论都有自己的特点和适用场景。
五、软件测试软件测试是为了发现和修复软件中的错误和缺陷。
常见的软件测试技术有单元测试、集成测试、系统测试、性能测试等。
软件测试是软件质量保证的重要环节,能够提高软件的可靠性和稳定性。
六、软件配置管理软件配置管理是对软件源代码和相关文档进行管理和控制的过程。
软件配置管理的目标是确保软件开发过程中的版本控制和变更管理。
常见的软件配置管理工具有Git、SVN等。
七、软件工程实践软件工程实践包括团队协作、文档编写、代码规范等方面。
良好的软件工程实践能够提高软件的质量和开发效率。
团队协作通常采用敏捷开发的方式,文档编写可以遵循软件工程规范,代码规范可以使用代码静态分析工具来进行检查。
以上是软工常考的知识点梳理,涵盖了软件生命周期模型、需求工程、软件架构、软件开发方法论、软件测试、软件配置管理和软件工程实践等方面。
软件工程考试重点(灰常重要)
软件工程考试重点(灰常重要)软件工程考试重点(灰常重要)软件工程考试是每个软件工程专业学生所必须面对的一项重要考试。
它是评估学生在软件开发、项目管理、质量保证和软件工程实践等方面的理论知识和实践能力的重要指标。
在这篇文章中,我们将重点介绍软件工程考试的几个重要内容,帮助学生们更好地备考和应对考试。
一、需求工程需求工程是软件工程的基石,它涉及到对软件系统需求的分析、建模和管理。
在软件工程考试中,需求工程占据了重要的比重。
学生们需要掌握需求获取和分析的方法,了解不同类型的需求模型(如用户需求、系统需求、功能需求和非功能需求等),并能够运用适当的需求工程工具和技术来解决实际问题。
二、软件设计软件设计是指将需求转化为可执行代码或软件系统的架构和模块设计。
在考试中,学生们需要熟悉软件设计的原则和方法,包括模块化设计、面向对象设计、设计模式等。
同时,学生们还需要具备使用设计工具和建模语言进行软件设计的实际操作能力。
三、软件开发方法和过程软件工程中的软件开发方法和过程对于考试来说也是非常重要的内容。
学生们需要了解不同的软件开发方法,例如瀑布模型、敏捷开发、迭代开发等,并了解每种方法的特点、适用场景和优缺点。
此外,对于软件开发过程的理解和掌握同样至关重要,学生们需要熟悉软件工程中的需求分析、设计、编码、测试、部署等各个阶段,并了解每个阶段的任务和关键活动。
四、软件测试和质量管理软件测试和质量管理是确保软件开发过程中质量和可靠性的关键环节。
学生们需要了解各种软件测试方法和技术,包括单元测试、集成测试、系统测试、性能测试等,以及软件质量管理的原则和实践。
同时,学生们还需要具备编写测试用例、执行测试计划和分析测试结果的能力。
五、软件项目管理软件项目管理是对软件开发过程进行规划和组织的过程。
在考试中,学生们需要了解软件项目管理的基本概念和方法,包括项目计划、进度管理、风险管理、团队管理等。
此外,学生们还需要了解不同的项目管理工具和技术,如甘特图、敏捷项目管理等。
软考知识点
软考知识点
软考知识点是指软件工程师考试中所涉及的各项知识要点。
软考是中国计算机
软件职业资格考试的简称,它旨在评估考生在软件工程领域的职业能力和专业水平。
下面将介绍软考考试中的一些重要知识点:
1. 软件工程基础:软件工程的定义、原则和特点。
掌握软件开发的过程、方法
和工具,如需求分析、设计、编码、测试、维护等。
2. 软件项目管理:项目管理的基本概念,包括项目计划、组织、控制和执行等
方面。
了解项目管理的常用工具和技术,如甘特图、里程碑、风险管理等。
3. 软件设计与架构:了解软件设计的原则和模式,如面向对象设计、设计原则(开闭原则、单一职责原则等)以及常见的架构模式(MVC、MVP等)。
4. 软件测试与质量保证:软件测试的基本概念和方法,如单元测试、集成测试、系统测试等。
掌握质量管理的方法和工具,如ISO9000标准、SPICE模型等。
5. 软件需求与需求管理:了解软件需求的概念和分类,如功能需求、非功能需
求等。
熟悉需求管理的过程和技术,如需求获取、分析、确认和变更控制等。
6. 软件配置管理:掌握软件配置管理的基本理论和方法,包括版本控制、配置
项管理、变更管理等。
了解常用的配置管理工具,如Git、SVN等。
7. 软件工程经济学:了解软件项目的成本和效益评估方法,如NPV、ROI等。
熟悉项目投资决策和风险管理的基本原理。
通过掌握以上软考知识点,可以为软件工程师考试提供必要的理论基础和实践
技能。
熟练掌握这些知识点将有助于提高软件开发项目的质量和效率,并在职业发展中具备竞争优势。
(完整)软件工程简答题必考
(完整)软件工程简答题必考软件工程简答题必考软件工程是一门研究如何通过系统化的、规范化的、可度量的方法来构建和维护软件的学科。
它的目标是通过合理地应用工程的原理、方法和工具,控制软件开发的各个环节,保证软件的质量和进度,并提高开发效率和可维护性。
下面我们来探究一些软件工程的常见简答题,加深对该领域的理解。
1. 请解释什么是软件过程?软件过程是指在软件开发的整个生命周期中,按照一定的流程和方法进行的活动集合。
它包括需求分析、设计、编码、测试、发布和维护等阶段,并通过规范化的文档和工具来管理和支持这些活动。
通过软件过程,开发团队可以更加有效地组织和协调工作,确保软件开发按时、按质量地完成。
2. 请解释软件生命周期模型,并举例说明。
软件生命周期模型描述了软件开发和维护的不同阶段。
常见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
例如,瀑布模型将软件开发划分为需求分析、设计、编码、测试和维护等阶段,每个阶段顺序进行,并且每个阶段结束后都有相应的文档。
这种模型适用于需求明确、变动较少的项目。
3. 请解释什么是软件需求工程?软件需求工程是指对软件需求进行系统化和规范化的管理过程。
它包括需求获取、需求分析与建模、需求验证与确认等活动。
软件需求工程旨在确保对用户需求的全面理解和准确描述,并将其转化为开发团队可以理解和实现的形式,以此为软件开发提供准确的目标和方向。
4. 请解释什么是软件设计原则,并举例说明。
软件设计原则是指为了提高软件系统的设计质量,而从实践中总结出来的一些指导原则。
常见的软件设计原则包括开闭原则、单一职责原则、里氏替换原则等。
例如,开闭原则要求软件系统对扩展开放,对修改关闭,通过模块化的设计,可以方便地添加新功能而不影响已有功能的正常运行。
5. 请解释什么是软件测试?软件测试是指对已经开发完成的软件系统进行验证和评估的过程。
它旨在发现软件系统中的错误和缺陷,以提高系统的质量和可靠性。
软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的级别和类型,针对不同的需求和目标进行。
软件工程知识(软考备考要点汇总)
软件工程知识(软考备考要点汇总)软件工程知识 (软考备考要点汇总)软件工程是一门涉及软件开发、维护和演化的学科,它旨在提高软件开发过程的效率和质量。
对于准备参加软考考试的人来说,了解软件工程的知识点至关重要。
本文将对软件工程的关键知识点进行汇总,帮助考生更好地备考。
1. 软件过程模型软件过程模型是指描述软件开发过程的模型,常见的模型包括瀑布模型、迭代模型、增量模型、螺旋模型等。
在备考软考时,需要了解不同模型的特点、适用场景以及优缺点。
2. 软件需求工程软件需求工程是指对软件系统进行需求分析、需求获取和需求管理的过程。
备考软考时,需要掌握需求工程的主要术语和概念,如用户需求、功能需求、非功能需求等,以及需求获取和需求变更的方法和技巧。
3. 软件设计模式软件设计模式是指在软件设计过程中经常遇到的问题和解决方法的总结和抽象。
备考软考时,需要了解常见的软件设计模式,如单例模式、工厂模式、装饰器模式等,以及它们的应用场景和实现方式。
4. 软件测试与质量管理软件测试是保证软件质量的重要手段,它包括单元测试、集成测试、系统测试等多个层次。
备考软考时,需要了解各种测试方法和技术,如黑盒测试、白盒测试、自动化测试等,以及软件质量管理的基本原理和方法。
5. 软件项目管理软件项目管理是指对软件开发项目进行计划、组织、协调和控制的过程。
备考软考时,需要了解项目管理的基本概念和流程,如项目计划、需求管理、进度管理等,以及常用的项目管理工具和技术。
6. 软件配置管理软件配置管理是指对软件开发过程中的软件配置项进行版本控制和变更管理的过程。
备考软考时,需要了解配置管理的基本原理和方法,如版本控制、变更管理、发布管理等,以及常用的配置管理工具和技术。
7. 软件维护与演化软件维护与演化是指对已经投入使用的软件系统进行修复、改进和升级的过程。
备考软考时,需要了解维护与演化的基本原理和方法,如问题分析、改进计划、版本迭代等,以及常见的维护与演化模式和技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、什么是软件?软件的特征?
Software = Program + Data + Document
(1)能够完成预定功能和性能的可执行指令;
(2)使得程序能够适当地操作信息的数据结构;
(3)描述程序的操作和使用的文档。
软件的特征(相于硬件):(1)软件是逻辑的,而不是物理的产品(2)软件是由开发或
工程化而形成的,没有明显的制造过程。
(3)软件在运行和使
用期间,不存在硬件那样的磨损和老化问题,但它存在退化问
题,开发人员必须维护软件。
(4)大多数软件是自定的,而不
是通过已有构件组装而成的。
迄今为止,软件的开发尚未完全
摆脱手工的方式。
(5)软件成本相当昂贵。
(6)软件本身是
复杂的。
2、什么是软件危机,产生软件危机的原因是什么:软件危机是指
在计算机软件的开发和维护过程中所遇到的一系列严重问题。
产生软件危的原因一方面是与软件本身的特点有关;另一方面
是由软件开发和维护的方法不正确有关。
3、软件工程是什么?软件工程三个要素?软件工程是应用计算机
科学、数学及管理科学等原理开发软件的工程。
它借鉴传统工
程的原则、方法,以提高质量,降低成本为目的。
软件工程三
要素:方法、过程、工具。
4、什么叫软件生命周期?它有哪些阶段?概括地说,软件生命周
期是由软件定义、软件开发、软件维护3个时期组成的,每个
时期又可细分为若干个阶段,分别为:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试以及软件维护。
5、软件过程及常用的软件开发模型?软件过程是为了获得高质量
所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
常见的软件开发模型有:瀑布模型(是一种文档驱动的模型,特点是:阶段间距有顺序性和依赖性(想象瀑布的样子,从上至下,联系在一起,上面没有水掉下来下面也就不可能有水)、推迟实现的观点、质量保证的观点)。
快速原型模型(先快速建立一个可以运行的程序,然后在不断地完善,他也是线性顺序进行的)、增量模型、螺旋模型(风险驱动)、喷泉模型、RUP、XP等等。
(参考P14,了解各种开发模型的特点)
6、可行性研究的内容:技术可行性、经济可行性、操作可行性、
法律可行性、抉择。
7、需求分析的基本任务?需求分析是准确地回答“系统必须做什
么”,它的任务是确定系统的综合要求,包括:功能需求、性能需求、可靠性和可用性需求、出错处理需求等等。
需求分析阶段的产物是需求规格说明书。
(需求分析是需求分析人员站在客户(用户)的角度思考问题)
8、结构化需求分析过程应该建立哪些模型,分别用什么表示?需
求分析过程应该建立三种模型,分别是数据模型、功能模型和行为模型。
数据模型用ER图(实体联系图)表示,功能模型用
数据流图表示,行为模型用状态转换图(状态图)表示。
9、总体设计又称为概要设计或初步设计,其任务是设计软件的结
构,也就是说确定系统中每个程序是由哪些模块组成的以及这些模块之间的关系。
10、详细设计确定模块内部的算法和数据结构,产生描述各模块程
序过程的详细文档。
11、结构化软件设计基本原理?模块化、抽象、逐步求精、信息隐
藏和局部化、模块独立。
模块的独立程度可以由两个定性标准度量,分别是内聚和耦合。
耦合衡量不同模块彼此之间互相依赖(连接)的紧密程度。
内聚是衡量一个模块内部各个元素彼此结合的紧密程度。
软件设计过程中,追求的是“低耦合高内聚”(强内聚弱耦合)。
以下两幅图,请好好理解和记忆。
耦合
内聚
12、什么是测试?它的目标是什么?(1)测试是为了发现程序中
的错误而重新执行程序的过程(2)好的测试方案是极可能发现迄今为止尚未发现的测试方案(3)成功的测试是发现了迄今为止尚未发现的错误的测试。
测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。
13、测试方法通常来说分为静态测试和动态测试。
白盒测试把程序
看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。
关心软件内部设计和程序实现,主要测试依据是设计文档。
黑盒测试把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。
不关心软件内部,只关心输入输出,主要测试依据是需求文档。
14、软件测试要经过哪些步骤,这些测试与软件开发各阶段之间有
什么关系?单元测试(对应于编码)、集成测试(对应于详细设计)、系统测试(对应于总体(概要)设计)、验收测试(对应于需求分析)如下图所示
15、白盒测试技术有:语句覆盖、判定覆盖、条件覆盖、判定/条件
覆盖、条件/组合覆盖等等。
(P162),可能会考应用题,记得看看是怎么设计的哦!
16、黑盒测试技术有:等价类划分和边界值分析。
17、调试是测试发现错误之后排除错误的过程,调试不是测试,但
它总是发生在测试之后,调试的途径有:蛮干法、回朔法、原因排除法。
18、UML: Unified Modeling Language 统一建模语言. 作用是用来
建立模型(是一种建模语言,不是程序设计语言)。
UML的特点是:●统一的标准:已成为面向对象的标准化的统一的建模语言。
●面向对象:支持面向对象方法.●可视化、表示能力强大●独立于过程●概念明确,简洁,结构清晰,容易掌握。
关
系: UML定义的模型元素之间的关系,包括四种:关联、泛化、实
现、依赖。
19、UML共定义了9种图,分别是:用例图、类图、状态图、活
动图、队形图、构件图、顺序图、部署图、协作图。
(记得查看
第7讲的PPT,可以帮助掌握和理解。
)
20、状态图与活动图(都属于行为图)的比较:(1)描述对象不同,
状态图:描述对象状态及状态之间的转移;活动图:描述从活
动到活动的控制流。
(2)使用场合不同。
状态图:描述对象在其
生命期中的行为状态变化;活动图:描述过程的流程变化。
21、顺序图与协作图(都属于交互图)的异同:(1)顺序图和协作
图都属于交互图,用来描述对象之间的动态关系。
(2)顺序图
强调消息的时间顺序,协作图强调参与交互的对象的组织关系。
(3)顺序图和协作图在语义上是等价的,两者可以相互转换。
22、面向对象的基本概念:封装、继承、多态、重载。
(P213)
23、面向对象的基本设计原则:LSP(The Liskov Substitution
Principle)里氏替换原则。
OCP(Open-Close Principle)开放
封闭原则。
SRP(Single Responsibility Principle)单一职责原则。
ISP(Interface Segregation Principle)。
接口隔离原则DIP
(Dependency Inversion Principle)依赖倒置原则。