0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

软件工程软件开发与维护的工程学科分析与发展阶段

发表时间:2023-09-03 10:00:42

文章来源:炫佑科技

浏览次数:165

菏泽炫佑科技

软件工程软件开发与维护的工程学科分析与发展阶段

一、软件工程概述 1、软件特征 软件:计算机程序、方法、规则、相关文档以及计算机程序运行所需的数据。 软件是计算机系统的逻辑组件,是无形的。 其主要内容包括:程序、配置文件、系统文档、用户文档等。 2、软件分类 (1)按功能分:系统软件、支持软件、应用软件。 (2)按工作方式分:实时处理软件、分时处理软件、交互软件、批处理软件。 (3)按规模划分:微型软件、小型软件、中型软件、大型软件。 (4)按服务对象分:通用软件、定制软件。 3. 软件开发的阶段 (1) 编程时代(20世纪50年代)。 (2)程序系统时代(20世纪60年代)。 (3)软件工程时代(20世纪70年代以来)。 4. 软件危机(1)危机现象:软件开发成本和进度估算不准确,软件产品与用户要求不符,软件产品质量和可靠性较差,软件文档不完整且不一致,软件产品可维护性差,软件生产力低下。低的。 (2)危机原因:软件的隐形性、系统规模大、生产工程化程度低、对用户需求重视不够、对维护重视不够、开发工具自动化程度低。 5、软件工程 软件工程:利用现代科学技术知识来设计和构造计算机程序以及开发、运行和维护这些程序所需的相关文档。 软件工程是一门关于软件开发和维护的工程学科。 它涉及软件生产的各个环节,能够为经济、高效地开发高质量的软件产品提供*有效的支持。

(1)工程方法:结构化方法、JSD方法、面向对象方法。 (2)软件工具:具有自动化功能的软件开发集成支撑环境。 (3)工程过程:由软件工具支持的一系列工程活动。 基本活动是软件定义、软件开发、软件验证和软件维护。 (4)项目管理:项目规划、项目资源分配、软件产品控制。 (5)工程化原则:阶段性生命周期规划、阶段性评审制度、严格产品控制、采用先进技术、结果可清晰评审、开发团队精细化、工程实践持续改进。 (6)工程目标:开发成本低,软件功能能够满足用户需求,软件性能好,软件可靠性高,软件易于使用、维护和移植,能够完成开发任务准时并及时交付。 (7)工程文化:包括工程价值、工程思维、工程行为三个方面。 2、软件工程过程模型 1、软件生命周期就像任何事物一样,都有出现、发展、成熟和衰退的整个过程。 一个软件系统或软件产品也有定义、开发、运行、维护直至淘汰的全过程。 我们考虑软件将经历的整个过程。 这个过程称为软件的生命周期。 包括软件定义、软件开发、软件运维三个阶段,又可细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现和单元测试、系统集成测试、系统确认确认。 、系统运维等阶段。

软件定义期 软件定义是软件项目的早期阶段。 它主要涉及软件系统分析人员和用户一起工作软件开发,对要开发的软件系统进行分析、规划和描述,确定软件是什么,为以后的软件开发做好准备。 在此期间,往往需要分阶段进行以下工作。 1、软件任务立项 软件项目往往从任务立项开始,需要以“软件任务立项报告”的形式回答项目的名称、性质、目标、意义和规模,以获得对项目的*高了解。待开发的软件系统。 层描述。 2、项目可行性分析 软件任务项目报告获得批准后,需要进行项目可行性分析。 可行性分析是对拟议软件项目的可行性风险评估。 因此,需要提出所要开发的软件系统的高层模型,并根据高层模型的特点,以“可行性研究报告”的形式对项目做出决策。技术可行性、经济可行性和操作可行性三个方面。 是否值得继续的答案将决定该项目是否继续进行。 3、制定项目计划后,在确认项目可以开展后,需要从人员、组织、进度、资金、设备等多个方面对项目的发展做出合理的规划,并以“项目开发计划”的形式提交书面报告。 4. 软件需求分析 软件需求分析是软件规范描述的具体化和细化,是软件定义阶段需要达到的目标。 需求分析要求根据用户需求,从功能、性能、数据、操作等多个方面对软件系统进行完整、准确、具体的描述,确定软件规格。

开发软件的基本流程_开发软件需要什么条件_软件开发

结果将以“软件需求规范”的形式提交。 在软件项目过程中,需求分析是从软件定义到软件开发*关键的一步。 其结论不仅是未来软件开发的基本依据,也是未来用户接受软件产品的基本依据。 在软件开发阶段,定义了软件规范后,就可以按照《软件需求规范》的要求进行软件开发,并生产出软件产品。 在此期间,需要分阶段完成以下工作。 1、软件总体设计 总体设计是对软件系统的结构设计。 用于对软件的结构、接口、全局数据结构和数据环境等作出总体设计说明,并以《设计概要》的形式提交书面报告。 研究结果将成为详细设计和系统集成的基本依据。 模块是概要设计中构建软件的基本元素。 因此,软件在总体设计上主要体现在模块组成和模块接口两个方面。 结构化设计中的函数和过程以及面向对象设计中的类和对象都是模块。 总体设计不需要描述模块的内部细节,但需要定义模块的所有结构,包括功能特征、数据特征、接口等。在进行总体设计时,模块独立性是一个重要的技术指标。质量。 模块独立性可以使用模块内聚性和耦合性这两个定性参数来衡量。 2、软件详细设计 设计工作的第二步是详细设计,它是在概要设计的基础上,用于确定软件结构中各模块的内部细节,为编写程序提供*直接的依据。

详细设计需要从实现各模块功能的程序算法、模块内部的本地数据结构等细节方面给出设计说明,并以“详细设计说明书”的形式提交书面报告。 3、编码和单元测试 编码是软件的实现,通常由程序员完成,目的是获得源程序的基本模块。 编码必须按照《详细设计规范》的要求逐模块实施。 在基于软件工程的软件开发过程中,编码往往只是一种语言翻译任务,即将详细设计中的算法描述语言翻译成某种合适的高级编程语言或汇编语言。 为了方便程序调试,基本模块的单元测试往往与编码相结合。 单元测试也是以《详细设计规范》为基础,用于检查各个基础模块在功能、算法、数据结构等方面是否满足设计要求。 4. 系统集成测试所谓系统集成是指根据概要设计中的软件结构,按照选定的集成策略,例如增量集成策略,将经过测试的模块组装到系统中。 在装配过程中,需要对整个系统进行集成和测试,以确保系统在技术上满足设计要求并满足应用要求。 5、系统验证系统集成完成后,必须对系统进行验证和确认。 系统确认验证需要以用户为主体,根据需求说明书中对软件的定义,从而逐项确认软件的各项规范,以确保完成的软件系统与需求规范一致。

为了方便用户在系统确认期间积极参与,也为了保证系统在后续运行过程中能够被用户正确使用,在此期间往往需要以某种方式对用户进行必要的培训。 软件验收完成后,软件系统即可交付用户使用,项目需要以书面形式进行总结《项目开发总结报告》。 软件运行维护期 软件系统的运行是一个相对长期的过程,与软件开发组织相关的主要任务是对系统进行定期有效的维护。 软件的维护过程就是纠正软件错误、完善软件功能,从而不断演化和升级软件,使系统能够更长久地满足用户需求的过程。 因此,软件的维护也可以看作是软件的重新开发。 这一时期软件的维护主要涉及三个方面的任务,即纠正性维护、适应性维护和完整维护。 2、瀑布模型 瀑布模型诞生于20世纪70年代,是*经典、应用*广泛的软件过程模型。 瀑布模型中的“瀑布”就是这种模型的生动体现,即从山顶倾泻而下的水从上到下逐层提炼。 (1)特点:线性模型、阶段性里程碑、文档化驱动、阶段性评审机制。 (2)功能:方便对软件项目按规定进行管理,为引入其他过程模型提供良好的扩展平台。 (3)局限性:主要适合需求明确、需求无重大变化的软件开发,但不适合分析初始需求模糊的项目。

3、原型模型 (1)快速原型法:是原型模型在软件分析和设计阶段的应用。 用于解决用户对软件系统需求的模糊认识,或者测试某种设计能否达到预期的结果。 (2)原型演化模型:对于要开发的软件系统,首先开发出原型供用户使用,然后根据用户的意见不断修改原型,使其逐渐接近并*终达到开发目标。 4. 增量模型增量模型结合了瀑布模型和原型进化模型的优点。 整体上按照瀑布模型的流程进行开发,方便项目的管理。 但在软件的实际创建过程中,软件系统会根据功能分解为许多增量组件,逐一创建并交付,直至所有组件都创建完成并集成到系统中交付。 与瀑布模型和原型演化模型相比,增量模型具有非常显着的优势。 但增量模型对软件设计的技术要求较高。 5、螺旋模型 螺旋模型是引入风险分析和规避机制的过程模型。 它是瀑布模型、快速原型法和风险分析法的有机结合。 基本方法是创建原型用于每个阶段的项目测试,从而降低每个阶段可能遇到的项目风险。 6.喷泉模型 喷泉模型是专门针对面向对象的软件开发方法提出的。 “喷泉”一词用来形象地表达面向对象软件开发过程中的迭代和无缝过渡。 7. 组件复用模型 组件复用方法是近年来发展起来的一种先进的软件复用技术。 在基于组件复用的软件开发中,软件是由组件组装而成的,就像用标准件组装汽车一样。

因此,组件复用模型可以有效提高软件生产力。 三、项目分析与规划 1、计算机系统分析 (1)计算机系统 计算机系统是一个非常复杂的智能开发系统,包括:硬件系统、软件系统、网络通信系统、人工操作系统等许多子系统。 (2)系统分析 系统分析是对软件项目的高层分析。 需要获得的是系统的框架描述,需要将系统与其环境分离,为划分系统边界、确定系统架构提供依据。 (3)系统分析模型 分析模型是指用绘图的方法对系统进行直观的描述。 早期系统分析过程中经常使用的图形模型包括系统框架图和系统流程图。 其中,系统框架图用于说明系统的基本结构框架,而系统流程图用于表达系统的基本处理流程。 2、项目可行性分析 (1)意义 • 及早决定项目能否以较小的成本实施。 •根据项目情况,对体系结构、工作模式等进行高层决策。 • 结果可用作需求分析的高级框架。 (2)分析内容 • 技术可行性:可行性评估从技术和技术资源两个方面进行评估。 •经济可行性:可行性评估从项目投资和经济效益两方面进行。 •应用可行性:从法律法规、用户操作流程等方面进行可行性评估。 (3)分析过程 •建立系统模型。 •进行可行性评估。 •撰写可行性研究报告。

3、项目成本效益分析(1)项目成本估算方法:基于软件规模的成本估算; 基于任务分解的成本估算。 (2)项目效益分析指标:净利润; 投资回收期; 投资回收率。 4、项目规划 (1)项目开发计划 项目开发计划包括: • 开发团队的组织架构、人员构成和分工。 •项目成本预算。 • 项目对硬件和软件的资源要求。 •项目任务分解和每个任务里程碑标记。 •基于里程碑的日程安排和人员配置计划。 •项目风险计划。 •项目监控计划。 (2)项目进度表 项目进度表以里程碑为基础,可以用进度表来描述项目进度。 甘特图是一种常用的项目进度图,可以直观地描述项目任务的活动分解,以及活动之间的依赖关系、资源分配以及每个活动的进度。 4、软件需求分析 1、需求分析任务 (1)用户需求 用户需求是用户对软件的一系列意图和想法的集中表达,是用户对软件外部特征的规范表达。 (2)系统需求 系统需求是比用户需求更具技术性的需求陈述。 它们提供给开发人员或用户技术人员阅读,并将作为软件开发人员设计系统的出发点和基本依据。 主要包括:功能、数据、性能、安全等诸多方面的需求问题。 2.需求分析过程需求分析是对软件系统的事后分析。 需要开展的活动包括:分析用户需求、建立需求原型、分析系统需求、进行需求验证等。

3、用户需求获取(1)用户调查是收集用户需求信息*基本的方法。 常用的调查方法包括:用户访谈、召开座谈会、问卷调查、跟踪调查、收集用户信息等。 (2)需求原型可以用来解决用户对软件系统需求理解的不确定性。 一般情况下,开发者会从软件系统中*能被用户直接体验到的部分来构建原型。 例如界面、报表、数据查询结果等。 4.结构化分析建模所谓模型就是问题的符号抽象。 模型可以看作是一种思维工具,可以用标准化的方式表达问题。 主要分析模型包括: (1)功能层次模型。 它使用矩形来表示系统中的子系统或功能模块,并使用树形连接结构来表达系统的功能层次关系。 (2)数据流模型。 用于描述系统的数据处理过程,其图形符号是一些具有抽象含义的逻辑符号。 主要图形符号包括:数据接口、数据流转、数据存储和数据处理。 可以依靠数据流程图来促进从用户需求到系统需求的转换。 结构化分析基于数据流的细化,这是结构化分析方法的关键。 (3)数据关系模型。 也称为ER图,它是使用*广泛的数据库建模工具。 数据关系模型需要通过三类图形元素建立:数据实体、数据关系和数据属性。 (4)系统状态模型。 系统的外部事件和内部状态作为基本元素来描述系统的工作流程。 这种建模方法更适合描述一些由外部事件驱动的实时系统。

5、需求有效性验证 需求有效性验证是指对已经生成的需求结论进行检查和评价。 一般需要从有效性、一致性、完整性、真实性、可测试性等几个方面来验证需求文档草案的有效性。 比较常用的需求有效性验证方法和工具包括:需求评审、需求原型评估和基于CASE工具的需求一致性分析。 6. 需求规格定义 需求规格是需求分析阶段需要交付的基础文档。 它将成为开发者设计软件和用户验证软件的基本依据。 它涉及简介、术语定义、用户需求、系统架构、系统需求等。对软件需求及其规格的许多描述和定义。 五、软件概要设计 1、设计流程及任务概要设计 设计中首先要做的是系统架构设计,然后是软件结构、数据结构等方面的设计。 设计任务主要包括以下几个方面:规范制定、系统架构设计、软件结构设计、公共数据结构设计、安全设计、故障处理设计、可维护性设计、文档编写、设计评审。 2.系统架构设计 (1)集中式结构 集中式系统由一台主机和多个终端设备组成。 具有很好的工作稳定性和安全性。 但系统建设成本和运营成本较高,灵活性不够好,结构不易扩展。 (2) 客户/服务器结构 客户/服务器结构依靠网络将计算任务分配给许多不同的计算机,但通过服务器计算机提供集中式服务。

其优点是结构灵活,便于系统逐步扩展。 (3) 多层客户端/服务器结构 • 两层结构:信息表示和应用逻辑处理放在客户端,服务器只需要管理数据库事务。 •三层结构:将两层结构客户端中容易发生变化的应用逻辑部分抽离出来,放在专门的“应用服务器”上。 •B/S结构:它是Web技术与客户/服务器结构的结合。 优点是客户无需特殊维护。 (4)组件对象分布式结构计算通过组件进行分布式。 它依赖于对象中间件的建立,架构灵活,系统具有良好的可扩展性,可以给系统的功能调整和扩展带来方便。 3、软件结构设计 软件结构设计是对组成系统的各个子系统的进一步分解和规划。 主要设计内容包括:确定模块元素、定义模块功能、定义模块接口、确定模块调用和返回、优化结构。 (1) 模块概念 • 模块化:利用构造过程来简化软件问题。 • 抽象性:总体设计中的模块被视为一个抽象的功能黑盒。 • 信息隐藏:每个模块的内部实现细节对其他模块是隐藏的。 (2)模块独立性 软件系统中的各个模块只涉及自己特定的子功能,接口简单,与软件中的其他模块没有过多的联系。 一般采用耦合度和内聚度两个定性技术指标来衡量。 耦合度用来体现模块之间的关联程度。 模块之间的连接越紧密,耦合度越高。

内聚度用于反映模块内元素的集成程度。 模块内元素的集成越紧密,内聚性就越高。 为了提高模块的独立性,要求模块具有高内聚、低耦合的特点。 耦合形式从低到高依次为:间接耦合、数据耦合、控制耦合、公共耦合、内容耦合。 衔接形式从低到高依次为:偶然衔接、逻辑衔接、时间衔接、过程衔接、沟通衔接、顺序衔接和功能衔接。 (3)设计建模•软件结构图:自20世纪70年代提出以来软件工程软件开发与维护的工程学科分析与发展阶段,广泛应用于软件结构设计中,可以有效地说明软件中模块之间的调用和通信。 •HIPO图:由美国IBM公司推出。 其中,H图用于描述软件的层次调用关系,类似于软件结构图,IPO图用于描述描述模块的输入-处理-输出特性。 (4)软件结构优化主要优化设计原则是:使模块功能完备、模块规模适中、模块功能可预测、模块接口复杂度*小化、模块作用范围限制在其控制范围内、并使模块布局合理。 4. 面向数据流的结构设计 (1)转换分析软件结构由输入、转换和输出三部分组成。 (2)交易分析软件结构由接收交易和交易活动两部分组成。 (3)混合流分析设计软件系统是转换流和事务流的混合体。 对于这样的系统,通常以转换分析为主、事务分析为辅的方式进行软件结构设计。 5、数据库结构设计 (1)逻辑结构设计•设计数据表•标准化数据表•关联数据表•设计数据视图(2)物理结构设计•数据存储结构•数据索引和聚合•数据完整性六、面向对象分析与设计1. 面向对象方法论 面向对象技术包括面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程实现(OOP)。

(1) 基本概念 • 类:面向对象的模块单元,其作用是提供创建对象实例的模板。 它具有数据和行为两个特征,需要通过属性、操作和方法来描述。 •属性、操作和方法:类具有数据和行为两个特征,需要通过属性、操作和方法来描述。 •类继承:是指上级父类可以将其属性和操作传递给下级子类。 •类多态性:子类对象可以像父类对象一样使用。 它们可以共享一个操作名称,但有不同的实现方法。 •对象:对象是类模块实例化的结果。 •消息:指对象之间的通信。 (2) 优越性 • 更贴近现实世界 • 可以使软件系统结构更加稳定 • 软件具有更好的复用性 • 软件更容易维护和扩展 2. 面向对象的分析建模 面向对象的分析建模需要建立软件系统的用户域模型,需要从系统业务流程、组织结构、行为过程等几个方面对系统进行分析。 (1)用例图用例图涉及参与者、用例等元素,用于描述用户与系统的交互关系,说明系统的业务能力和业务流程,方便开发人员理解用户字段中的具体条款和条件。 业务内容。 (2)活动图 活动图是一种行为模型,主要用于在用例图中描述用例的内部活动状态和活动转换过程,从而获得用例的交互行为和工作流程的详细描述。用例。 涉及活动状态、活动转换等元素。

(3)分析类图,建立类图的概念模型,描述现实世界中体现数据结构的实体类以及它们之间的关系。 (4) 序列图以用例图中的用例为描述单元,类图中的类为对象基础,活动图中的活动转换为行为基础,建立之间的交互模型用例中的对象与时间顺序相关。 3.面向对象的设计建模面向对象的设计建模需要将分析阶段的结果拓展为技术方案,需要建立的是软件系统的技术构建模型。 (1)设计类图 设计类图中的类是构建系统的基本模块单元,需要在分析类图的基础上做出更完整的面向设计的描述。 设计类图除了实体类外,还需要考虑用于提供操作接口的边界类和用于实现内部协调的控制类。 (2)协作图描述了对象交互时的链接关系以及基于该链接生成的消息通信和操作界面。 (3)状态图描述了特定对象的所有可能状态以及引起状态转换的事件。 (4) 组件图描述组成系统的物理组件以及它们之间的关系。 组件之间的关系主要是依赖关系。 (5)部署图描述了系统运行时的物理架构,涉及物理节点、节点之间的连接关系以及部署到每个节点的组件实例。 七、用户界面设计 1、图形用户界面(GUI)的特点(1)相对容易学习和使用。 (2)用户可以使用多个屏幕(窗口)与系统交互,并且可以通过任务窗口轻松地从一个任务切换到另一个任务。

(3) Fast, full- can be , and can be on the . user is no that can solve alone. It the of , , , , in user , in , and end users. 。 2. User based on User is an , and its basic three steps: (1) an model. (2) an based on the model. (3) the . 3. that need to be in User will be by many user , which are in the : (1) User and . (2) User . (3) . (4) sense. (5) . (6) . (7) Fault . (8) and . 4. type In based on , the user of forms, and its form types : (1) form (SDI). Its is that the can only open one form at a time. (2) form (MDI). It of an MDI main form and MDI . Among them, the MDI main form is used as a to load the MDI sub-form, and the MDI sub-form is to the MDI main form and exist . Many are on the MDI main form.

(3) form. also a box, it is a to the main form and is used to the of the main form. The types of : login , , , etc. (4)Web page. When a Web-based B/S is , a Web page in the may be used as the entry point for the Web , and it can be as a main form. 5. When the user , it is to the of the . , the of the user are in the : (1) User . to the of users and . (2) . to the by the to the user. The can be in text form or form. (3) User . to the by the to users. 6. to how to from one to . can be used to the , where each state in the can be used to each in the . 8. and 1. of The basic of is that there is a entry and a exit in the . , in , the use of GOTO is , and also the use of to that the has a entry and a exit. 2. tools (1) flow chart flow chart, also known as block , has a long and is used. From the late 1940s to the mid-1970s, it has been the main tool for .

The main of the flow chart is that it can the flow of the very . , the flow chart is an tool. (2) NS In order to meet the needs of tools for , Nassi and Nassi the box , also known as the NS . It is a tool that to the of . The basic of the NS is to each area of ​​the 's boxes, and to the multi-layer of the the of boxes from to . (3) PAD PAD is the of (am). It was first by of Japan and has been used. It is a tool that to the of . The basic of the PAD is to use a two- tree to the flow of the . From top to is the , and from left to right is the . (4) PDL PDL is also , or . It is the of a of a high-level . You can use text or word to write and edit PDL. The rules of PDL are into and . Among them, the is used to the and data in the , and the is used to the or in the . (5) table table is an tool for . It is used to give a of and their . It can the rules and . 。

3. In 1983, a based on the data in . It has value in the of with data as the main . The basic of the is to infer the of the by the of input data and data. In order to the of the from the data , the data in the is into three : , and , and are . are also three of , , and , and can be using the same as data . 4. After the , is . (1) Types of ​​• Low-level : first- and , which are ​​ to . •High-level : to a to the - . It uses and that are to the human . It does not rely on the that this and has good . • (4GL): to some high-level - . The data and at a level of . It does not need to . (2) The basis for a a , it is to what kind of to use to the .

开发软件的基本流程_软件开发_开发软件需要什么条件

When a , it is often to many , such as the field of the , the of the , the of the , the of the , the of the data in the , and the . level and , etc. (3) style and style is some rules that need to be when . When the of the , the logic of the code is and clear, easy to read and is an , and these are to the style. (4) work , work will be by such as speed, and input and speed, and it is to , , , etc. There is a . , when , many need to be . 5. to the of the the . The well-known for the of is the , which uses the ring of the to the of the . The is: V(G)=m–n+p where V(G) is程序有向图G中的环数,m是程序有向图G中的弧数,n是程序有向图G中的节点数,p是程序有向图G中分离部分的数目。九、软件测试1.测试目标尽力发现软件中的错误,而不是为了验证软件的正确性。 2.测试方法(1)黑盒测试:基于程序的外部功能规格而进行的测试,又称为功能测试。

(2)白盒测试:基于程序的内部结构与处理过程而进行的测试,又称为结构测试。 3.单元测试单元测试的对象是单元模块,一般以白盒测试为主,以黑盒测试为辅。测试内容包括模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试。单元测试通常在编码阶段进行。测试时需要用到辅助模块,如驱动模块、桩模块。 4.集成测试系统集成时主要有非渐增组装测试和渐增组装测试这两种方法:(1)非渐增组装测试:一种一次性地进行系统组装的方法。 (2)渐增组装测试:一种将单元模块的确认测试与集成测试结合在一起的测试方法,它比非渐增组装测试是具有更大的优越性。可以自顶向下渐增集成,也可以自底向上渐增集成。 5.确认测试确认测试又称有效性测试,其任务是验证软件的功能、性能及其他特性是否与用户的要求一致。在进行确认测试时,可以采用Alpha测试或Beta测试。其中,Alpha测试是在开发环境下由用户进行的测试,而Beta测试则是由软件用户在软件实际使用环境下进行的测试。 6.测试用例设计设计测试用例就是为测试准备测试数据。由于测试用例不同,发现程序错误的能力也就不同,为了提高测试效率降低测试成本,应该选用高效的测试用例。白盒测试用例设计主要采用逻辑覆盖,包括语句覆盖、判定覆盖、条件覆盖、判定—条件覆盖、条件组合覆盖和路径覆盖。

黑盒测试用例设计包括等价划分、边界值分析和错误推测等几种方法。 7.面向对象测试(1)面向对象单元测试不能孤立地测试单个操作,而应该把操作作为类的一部分来测试。 (2)面向对象集成测试•基于线程的测试。 •基于使用的测试。 (3)面向对象确认测试研究系统的用例模型和活动模型,设计出确认测试时的用户操作脚本。 8.软件调试软件调试也叫做排错,涉及诊断与排错这两个步骤。但调试的关键是诊断。常用的调试方法有:输出存储器内容、在程序中插入输出语句、使用自动调式工具。常用的调试策略有:试探法、回溯法、对分查找法、归纳法、演绎法。 9.自动测试工具常用的自动测试工具有:测试数据生成程序、动态分析程序、静态分析程序、模块测试、程序。 10.软件可靠性评估软件可靠性的定义是:程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。软件可用性的定义是:程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。为了方便可用性的计算,一般使用稳态可用性对系统进行可用性评价。系统平均无故障时间的估算式是:MTTF=1/(K(ET/IT–Ec(t)/IT))十、软件维护1.软件维护定义软件维护是在软件运行维护阶段,为了改正软件错误或为了满足用户新的应用需要,而对软件进行改错、变更或进化的过程。

维护任务一般分为:改正性维护、适应性维护、完善性维护和预防性维护。 2.影响软件维护工作的因素主要因素有:系统大小、程序设计语言、系统文档和系统年龄等。 3.非结构化维护没有按照软件工程原则实施软件开发,以致和软件配套的一系列文档没有建立起来,保留下来的可能只有源程序。 4.结构化维护建立在严格按照软件工程原则实施软件开发基础上,因此各个阶段的文档完整,能够比较全面地说明软件的功能、性能、软件结构、数据结构、系统接口和设计约束等。 5.软件维护的代价软件维护代价包括有形与无形这两个方面的代价。其中,有形代价是指软件维护的直接费用支出,无形代价则指其他非直接的维护代价。 6.软件可维护性软件可维护性是指维护人员理解、改正、改动和改进这个软件的难易程度。可以从系统的可理解性、可靠性、可测试性、可修改性、可移植性、运行效率和可使用性这七个方面对软件的可维护性进行综合评估。 7.软件维护的实施软件维护实施过程中,一般涉及以下几个问题:维护机构、维护申请报告、软件维护工作流程、维护记录和维护评价。 8.对老化系统的维护老化系统是指一些使用早期程序设计语言开发的系统。为了能够有效地对老化系统进维护,提出了以下的几点维护建议:(1)尽可能得到更多的背景信息。

(2)力图熟悉程序的所有控制流程。 (3)评价现有文档的可用性。 (4)充分利用交叉引用信息。 (5)必须非常谨慎地对程序进行修改。 (6)在删除某些代码时,要确认代码确实不再使用。 (7)不要试图共享程序已有的临时变量或工作区。 (8)保持详细的维护活动和维护结果记录。 (9)如果程序结构混乱,修改受到干扰,可抛弃程序重新编写。 (10)插入出错检验。 9.逆向工程与再工程逆向工程是通过源程序,甚至是目标程序,由此导出设计模型、分析模型的过程。可以把逆向工程描述为一个魔术管道,从管道一端流入的是一些非结构化的无文档的源代码或目标代码,而从管道另一端流出的则是计算机软件的分析、设计文档。逆向工程被用到了软件维护上,通过从老化系统的源代码中提取程序流程设计、系统结构设计,甚至是数据流图,给老化系统的维护带来方便。当逆向工程被用于重新构造或重新生成老化系统时,这个过程就叫做再工程。再工程不仅能从已存在的程序中重新获得设计信息,而且还能使用这些信息来改建或重建现有的系统。 10.软件配置管理配置管理包括软件配置标识、软件变更控制和软件版本控制等方面的内容。当对软件进行维护时,软件产品发生了变化,这一系列的改变,必须在软件配置中体现出来,以防止因为维护所产生的变更给软件带来混乱。

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多