您好,欢迎访问三七文档
信息系统监理师考试内容:软件工程1注:黑色字体内容为理解红色字体内容为理解需求分析需求分析主要是用来确定开发软件的功能、性能、数据和界面等要求;一、需求分析实现步骤:1、获取当前系统的物理模型;2、抽象出当前系统的逻辑模型;3、建立目标系统的逻辑模型。二、需求分析的工作:1、问题识别;2、分析与综合;3、编制需求分析的文档;4、需求分析与评审;需求分析三、需求分析的原则1、必须能够表达和理解问题的信息域和功能域;2、必须表示软件的行为(作为外部事件的结果);3、必须划分描述信息、功能和行为的模型,从而可以以层次的方式揭示细节;4、分析过程应该从要素信息移向细节信息;5、必须按自顶向下、逐层分解的方式对问题进行分解和不断细化;6、要给出系统的逻辑视图和物理视图。四、需求的分类1、功能需求是指系统必须提供给用户的功能;2、非功能需求是指产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性及扩展性等。3、设计约束限制条件、补充规约。如操作系统、数据库限制等。需求分析从另一个层面分类:1、业务需求对系统的目标要求,问题定义本身就是业务需求。2、用户需求是在问题定义的基础上进行用户访谈、调查,对用户使用的场景进行整理,然后建立的从用户角度的需求。3、系统需求是从系统的角度来说明软件的需求,它包括了用特性说明的功能需求,质量属性及其他非功能需求,还有设计约束。需求分析五、需求工程就是包括创建和维护系统需求文档所必需的一切活动的过程。1、需求开发包括需求捕获、需求分析、编写规格说明书和需求验证。2、需求管理包括定义需求基线、处理需求变更及需求跟踪等工作。注:需求开发是主线,是目标;需求管理是支持,是保障。需求分析六、需求分析常用方法:1、结构化分析方法;2、软系统方法(代表方法:Checkland);3、面向对像分析方法(OOAObjectOrientedAnalysis);4、面向问题域的分析(PDOAProblemDomainOrientedAnalysis);七、数据流图数据流图(DFD)是结构化分析中的重要方法和工具,是表达系统内数据的流动并通过数据流描述系统功能的一种方法。它有4种基本符号:数据流(用名字+箭头来表示)、加工(用圆圈来表示)、数据存储(用直线表示)和外部实体(数据源或数据终点,用标有名字的方框表示),同时数据流图遵循“自顶向下,逐层分解”的原则。八、数据字典数据字典是关于数据的信息集合,也就是对数据流图中包含的所有元素的定义集合。数据字典和数据流图共同构成了系统的逻辑模型。数据流图(DataFlowDiagram,DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。数据存储数据源点或终点加工加工名数据流数据流名文件名实体名箭头圆或椭圆单或双杠矩形框一、数据流图的图符四种基本图形符号:需求分析数据库系统E-R模型设计在数据库设计中被广泛用作数据建模的工具。(工具如:ROSE,PowerDesigner)1、E-R模型简称E-R图,包括如下三个要素:1)、实体(型):用矩形框表示,框内标注实体名称;2)、属性:用椭圆形表示,并用连线与实体连接起来;3)、实体之间的联系:用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连,并在连线上注明联系类型。4)、E-R图中的联系归结为三种类型:①一对一联系(1:1);②一对多联系(1:n);③多对多联系(m:n);数据库系统软件设计一、软件设计分为:1、概要设计(也叫高层设计,是将软件需求转化为数据结构和软件的系统结构,常采用结构图、层次图和HIPO(层次图加输入/处理图)来描述);2、详细设计(也叫低层设计,是对结构图进行细化,得到详细的数据结构与算法,常使用程序流程图、盒图、PAD图(问题分析图)及PDL(伪码)等工具来描述)概要设计与详细设计的区别:概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。概要设计阶段通常得到软件结构图详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等软件设计二、软件设计活动包含4个即独立又相互联系的活动:1)数据设计;2)体系结构设计;3)接口设计(界面);4)过程设计三、结构化设计结构化设计包括体系结构设计、接口设计、数据设计和过程设计等任务,是一种面向数据流的设计方法,采用自顶向下、逐步求精和模块化。1)抽象化;2)、自顶向下,逐步细化;3)、信息隐蔽;4)模块独立注:模块化目标:高内聚、低耦合程序编写一、程序设计风格:程序设计风格应从源程序文档化、数据说明、语句结构和输入/输出方法4个方面,力求做到程序的可读性。改善程序质量。1、源程序文档化包括符号名的命名、程序的注释(注释行数量占源程序1/3到1/2);视觉组织;2、数据说明3、语句结构4、输入和输出二、程序效率1、算法对效率的影响;2、存储效率的影响提高存储效率的关键是程序的简单性。软件测试一、软件测试的目的软件测试是软件质量保证的主要手段之一,测试并不仅仅是为了要找出错误,没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。软件测试的目的1、通过测试,发现软件错误;2、验证软件是否满足软件需求规格说明和软件设计所规定的功能、性能及其软件质量特性的要求;3、为软件质量的评价提供依据。注:软件测试只是软件质量保证的手段之一,不能单凭测试来保证软件质量。软件测试测试的类型一、动态测试1、黑盒测试法测试人员不清楚程序的内部结构和处理过程的一种测试,常见的方法有:等价类划分、边界值分析、错误推测法、因果图2、白盒测试法测试人员清楚程序的内部结构和处理过程的一种测试,常见的方法有:基本路径测试、循环覆盖测试、逻辑覆盖测试,测试的重点在于检验内部控制结构和数据结构是否有错,即结构;3、灰盒测试法界于黑盒与白盒测试之前的一种方法,测试的目的在于评价软件质量好与坏;软件测试例:1、用边界值分析法,假定X为整数,1≤X≤10,那么X在测试中应该取()边界值。2、在软件测试中,假定X为整数,10≤X≤100,用边界值分析法,那么X在测试中应该取()边界值。A.X=9,X=10,X=100,X=101B.X=10,X=100C.X=9,X=11,X=99,X=101D.X=9,X=10,X=50,X=100注:边界值划分:应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,如:0—-1为一个边界)二、静态测试即不在机器上运行,采用人工检测和计算机辅助静态分析的手段进行检测,实践证明,30%~70%的逻辑设计和编码错误都能发现,其主要方法有:1、桌前检查(程序员自己检查自己编写的程序);2、代码审查(他人(一个小组)对程序员编写的程序进行检查);3、代码走查;注:静态测试也可以实现白盒测试,如使用人工检查代码方法来检查代码的逻辑问题。软件测试三、根据测试的目的、阶段不同,可将测试分为:1、单元测试模块测试,由开发人员自已负责,单元测试的计划是在软件详细设计阶段完成的;2、集成测试测试的是模块之间的协作性,集成测试计划应在概要设计阶段完成;3、确认测试验证软件的功能、性能及其他特性是否与用户要求一致,确认测试计划应在需求分析阶段完成;1)内部确认测试:主要由软件开发组织内部按软件需求说明书进行测试。2)α测试(Alpha测试):由用户在开发环境下进行测试;3)β测试(Beta测试):由用户在实际环境下进行测试;4)验收测试:针对软件需求说明书,在交付前以用户为主进行的测试。软件测试4、系统测试整个项目的各种都集成在一起的测试,系统测试计划应在需求分析阶段完成。系统测试的主要内容:1)、功能测试;2)、健壮性测试;3)、性能测试;4)、用户界面测试;5)、安全性测试;6)、安装与反安装测试等;软件测试四、性能测试1、性能测试的目的1)、评估系统的能力;2)、识别体系中的弱点;3)、系统调优;4)、检测软件中的问题;5)、验证稳定性和可靠性;2、性能测试的类型1)、负载测试;2)、强度测试;3)、容量测试;3、性能测试的步骤1)制定目标和分析系统;2)选择测试度量的方法;3)学习相关技术和工具;4)制定评估标准;5)设计测试用例;6)运行测试用例;7)分析测试结果。软件测试4、负载压力测试系统的负载压力测试(负载测试)中的负载是指系统在某种指定软件、硬件及网络环境下承受的流量,如并发用户数、持续运行时间、数据量等。注:并发用户数是负载压力的重要体现;一、负载压力测试的目的:1)在真实环境下检测系统性能,评估系统性能是否可以满足系统的性能设计要求;2)预见系统负载压力承受力,对系统的预期性能进行评估;3)进行系统瓶颈分析、优化系统。软件测试二、负载压力测试应重点关注客户端、网络、服务器(包括应用服务器和数据库服务器)的性能。应获取的关键测试指标如下:1)客户端:并发用户数、响应时间、交易通过率以及吞吐量等;2)网络:带宽利用率、网络负载、延迟以及网络传输和应用错误等;3)服务器:操作系统的CPU占用率、内存使用、硬盘I/O等;数据库服务器的会话执行情况、SQL执行情况、资源占用以及死锁等:应用服务器的并发连接数、请求响应时间等。软件测试五、验收测试1、验收测试的任务:即软件的功能和性能是否如同用户所合理期待的哪样。2、验收测试的结果:1)功能和性能指标满足软件需求说明的要求,用户可以接受;2)软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法。注:验收测试包括:正式验收测试、非正式验收测试。3、验收测试的条件1)软件开发已经完成,并全部解决了已知的软件缺陷;2)验收测试计划已经通过评审和批准,并且置于文档控制之下;3)对软件需求说明书的审查已经完成;软件测试4)对概要设计与详细设计的审查已经完成;5)对所有关键模块的代码审查已经完成;6)对单元、集成、系统测试计划和报告的审查已经完成;7)所有的测试脚本已完成,并至少执行过一次,且通过评审;8)使用配置管理工具有代码置于配置控制下;9)软件问题处理流程已经就绪;10)已经制定、评审并批准验收测试完成标准。4、验收测试的过程:1)审查软件需求分析;2)编制《验收测试计划》和《项目验收准则》;3)测试设计和测试用例设计;4)测试环境搭建;5)测试实施;6)测试结果分析;7)测试报告。软件测试5、软件配置审核(包括审查和审核)1)审查是指审查可执行程序、源程序、配置脚本、测试程序或脚本、主要的开发类文档和主要的管理类文档。2)审核过程:①计划②预备会议(指对审核内容进行介绍并讨论)③准备阶段(各责任人事先审核并记录发现的问题)④审核会议(指最终确定工作产品中包含的错误和缺陷)⑤问题追踪6、可执行程序的测试在文档审核、源代码审核、配置脚本审核、测试程序或脚本审核都顺利完成后,就可以进行验收测试的最后一个步骤——可执行程序的测试,包括功能、性能等方面的测试,每种测试也都包括目标、启动标准、活动、完成标准和度量5个部分。软件测试7、验收测试内容通常包括:1)、功能测试;2)、性能测试;3)、压力测试;4)、配置测试;5)、平台测试;6)、安全性测试;7)、恢复测试及可靠性测试等。8、第三方测试也称为“独立测试”。是由相对独立的组织进行的软件测试,一般是在模拟用户真实应用环境下进行软件确认测试。注:选择第三方测试机构时,主要查看其资质、信息系统工程测评经验、测试环境、测试工具及测试工程师队伍的素质、测试计划、测试方案等。软件维护软件维护占整个软件生命周期的60%~80%,常见的维护类型分为四种:(就是鱼丸)1.改正性维护(为了纠正软件存在的错误和缺陷所进行的维护);2
本文标题:7软件工程1
链接地址:https://www.777doc.com/doc-2932431 .html