




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件生存周期一样能够划分为,问题概念、 、 、设计、编码、测试和基于软件的功能划分,软件能够划分成 、 、 三种。可行性研究,应从 、技术可行性、运行可行性、、 和开放方案可行性等方面研究。系统流程图是刻画. 的传统工具。它的大体思想是用图形符号以 刻画系统里面的每一个部件。TOC\o"1-5"\h\z数据流图的大体四种成份:数据输入的源点和数据输出汇点、 、 和 。结构化分析方式是面向 进行需求分析的方式。结构化分析方式利用 与 来描述。是自动地共享类、子类和对象中的方式和数据的机制。软件详细设计工具可分为3类,即 、 和 。为了在软件开发进程中保证软件的质量,要紧采取下述方法: 、复查和治理复审、大型软件测试包括 、 、确认测试和 四个步骤。1、 可行性研究需求分析运行与保护2、 系统软件支撑软件应用软件3、 经济可行性法律可行性4、 物理系统黑盒子形式5、 加工数据流数据存储文件6、 数据流数据流图DFD数据字典DD7、 继承性8、 图示工具、设计语言表格工具9、 审查测试10、 单元测试集成测试系统测试、单项选择题(每题2分,共20分)12345CCCAC678910DDACB软件设计中划分模块的一个准那么是()。A、 低内聚低耦合B、 低内聚高耦合C、 高内聚低耦合D、 高内聚高耦合Jackson设计方式是由英国的M.Jackson提出的,它是一种面向()的软件设计方式。A、 对象B、 数据流C、 数据结构D、 操纵结构试判定以下表达中,哪个(些)是正确的()。a、 软件系统中所有的信息流都能够以为是事务流b、 软件系统中所有的信息流都能够以为是变换流c、 事务分析和变换分析的设计步骤是大体相似的A、a B、b C、c D、b和c( )是用户和设计互换最频繁的方式。A、原型化方式 B、瀑布模型方式C、螺旋模型方式 D、构件组装模型软件工程方式学的目的是:使软件生产标准化和工程化,而软件工程方式得以实施的要紧保证是( )。A、硬件环境 B、软件开发的环境C、软件开发工具和软件开发的环境 D、开发人员的素养20世纪50年代以来,显现了许多不同的程序设计语言,以下语言中哪个语言是低级语言()。A、PASCALBA、PASCALC、 C++ D、汇编语言软件测试的目的是?( )A、 证明软件的正确性B、 找出软件系统中存在的所有错误C、 证明软件系统中存在错误D、 尽可能多的发觉软件系统中的错误利用白盒测试方式时,确信测试数据应依照()和指定的覆盖标准。B、程序的复杂程度DB、程序的复杂程度D、程序的功能)。B、适应性保护D、预防性保护C、该软件的编辑人员软件保护工作的最要紧部份是(A、校正性保护C、完善性保护PDL是()语言。A、高级程序设计语言C、中级程序设计语言B、伪码式D、低级程序设计语言三、判定题(正确的在括号内打上“V”错误的打上“X”。每题2分,共20分)用黑盒法测试时,测试用例是依照程序内部逻辑设计的。(X)发觉错误多的程序模块,残留在模块中的错误也多。(V)为了加速软件保护作业的进度,应尽可能增加保护人员的数量。(X)软件保护确实是更正软件中的错误。(X)质量保证是为了保证产品和效劳充分知足消费者要求的质量而进行的有打算,有组织的活动。(V)软件开发的要紧任务是写程序。(X)测试只能证明程序有错误,不能证明程序没有错误。(V)模块化程序设计中,模块越小,模块化的优势越明显。一样来讲,模块的大小都在10行以下。(X)在编制程序时,第一应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,专门好地琢磨程序具有什么样的功能,这些功能如何安排,等等。(X)程序设计风格指导原那么提出,尽可能多利用临时变量。(X)四、简答题(每题5分,共20分)1.什么是软件工程?软件工程是指导运算机软件开发和保护的工程学科。采纳工程的概念、原理、技术和方式来开发与保护软件,把通过时刻考验而证明正确的治理技术和当前能够取得的最好的技术方式结合起来。2.耦合性和内聚性有几种类型?其耦合度、内聚强度的顺序如何?低:非直接耦合T数据耦合T标记耦合T操纵耦合T外部耦合T公共耦合T内容耦合:高强:功能内聚T信息内聚T通信内聚T进程内聚T时刻内聚T逻辑内聚T巧合内聚:弱3.简述需求分析工作能够分成哪四个方面?软件需求分析的有哪三个大体原那么?:需求分析时期分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个大体原那么:必需能够表达和明白得问题的数据域和功能域;必需按自顶向下、慢慢分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。4.什么是黑盒测试法?黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处置进程,它只检查程序功能是不是能依照规格说明书的规定正常利用,程序是不是能适本地接收输入数据,产生正确地输出信息。五、程序设计与算法描述题(共15分)1.依照下面的伪代码程序,完成相应要求。(8分)STARTIFC1THENWHILEC2DOfENDDOELSEBLOCKgpENDBLOCKENDIFREPEATUNTILC3qrENDREPSTOP1)画出程序流程图(4分)2)用N—S图描述(4分)有以下伪码程序:STARTINPUT(M,N)IFM>=10THENX=10ELSEX=lENDIFIFN>=20THENY=20ELSEY=2ENDIFPRINT(X,Y)STOP设计该程序的语句覆盖和途径覆盖测试用例。(7分)M=9(或〈1O),N=19(或〈20);M=l0(或〉=10),N=20(或〉=20)途径覆盖的测试用例为M=9,N=19;M=九、N=20;M=l0,N=l9;M=10,N=20要目标是提高软件质量,减少软件保护代价。
软件定义彳问题定义(确定题目)可行性研究软件定义彳问题定义(确定题目)可行性研究概要设计软件生命周期:软件开发彳L详细设计软件生命周期:软件开发彳L编码和单元测试
I综合测试<运行维护:主要任务是使软件持久地满足用户的需要软件进程五个模型对照(瀑布模型、快速原型、增量、螺旋、喷泉模型)可行性研究:一、 任务:用最小的代价在尽可能短的时刻内确信问题是不是能够解决。二、 四个方面:技术、经济、操作可行性3、数据流图四种成份:一、源点/终点二、处置3、数据存储4、数据流需求分析:一、 任务:确信系统必需完成哪些工作,对目标系统提出完整、清楚、具体的要求。二、 结构化方式确实是面向数据流自顶向下慢慢求精进行需求分析的方式。3、实体联系图:一、数据对象二、属性3、联系(1:一、1:N、M:N)整体设计:任务:回答“归纳的说,系统应该如何实现”,用比较抽象归纳的方式确信系统如何完成预定的任务,也确实是说应该确信系统的物理配置方案,而且进而确信组成系统的每一个程序结构。系统设计时期(确信系统具体实施方案)、结构设计时期(确信软件结构)模块独立:内聚和耦合耦合表示一个软件结构内各个模块之间的互连程度,应尽可能选用松散耦合的系统TOC\o"1-5"\h\z五 胃存性 •高非直接耦合控制齢外部S洽公共耦合内雷洽TOC\o"1-5"\h\z鱼 慎块独苦三 爲内聚(Cohesion):一个模块内各元素结合的紧密程度W- Ftp'll 抵功能内橐信息内聚通惜内聚过程内橐时闻内聚逻輯内聚巧合内聚TOC\o"1-5"\h\z并… 模坡独兰fl 弱功'能兰* 才碇分敌面向数据流的设计方式:变换流和事务流详细设计:任务:确信应该如何具体的实现所要求的系统,也确实是说通过那个时期的设计工作应该得出对目标系统的精准描述,从而在编码时期能够把那个描述直接翻译成用某种程序设计语言书写的程序。进程设计的工具(程序流程图、盒图、PAD图、判定表、判定树)面向数据结构的设计方式(jackson方式):程序复杂程度的定量(McCabe方式):一、V(G)=E-N+2(E是流图中边的条数,N是结点数)二、V(G)=P+1(P是流图中判定结点的个数)3、流图中的区域数等于环形复杂度。编码单元测试:又称模块测试。每一个程序模块完成一个相对独立的子功能,因此能够对该模块进行单独的测试。由于每一个模块都有清楚概念的功能,因此通常比较容易设计相应的测试方案,以查验每一个模块的正确性。集成测试:在单元测试完成后,要考虑将模块集成为系统的进程中可能显现的问题,例如,模块之间的通信和和谐问题,因此在单元测试终止以后还要进行集成测试。那个步骤着重测试模块间的接口,子功能的组合是不是达到了预期要求的功能,全程数据结构是不是有问题等。白盒测试技术(逻辑覆盖、大体路经测试)白盒测试时将程序看做是一个透明的盒子,也确实是说测试人员完全了解程序的内部结构和处置进程。因此测试时依照程序内部的逻辑测试程序、查验程序中的每条通路是不是都能按预定的要求正确工作。白盒测试又称为结构测试。语句覆盖确实是设计足够的调试用例,使得程序中的每一个语句至少执行一次。判定覆盖确实是设计足够的测试用例,使得程序中每一个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖条件覆盖确实是设计足够的测试用例,使得程序判定中的每一个条件能取得各类可能的结果。判定/条件覆盖确实是设计足够的测试用例,使得判定中的每一个条件都取到各类可能的值,而且每一个判定表达式也都取到各类可能的结果。条件组合覆盖确实是设计足够的测试用例,使得每一个判定中的条件的各类可能组合都至少显现一次。大体路经测试:黑盒测试技术(等价划分)黑盒测试时完全不考虑程序内部的结构和处置进程,只依照规格说明书的规定来检查程序是不是符合它的功能要求。黑盒测试是在程序接口进行的测试,又称为功能测试。一、黑盒测试检查的要紧方面有:程序的功能是不是正确或完善;数据的输入可否正确接收,输出是不是正确;是不是能保证外部信息(如数据文件)的完整性等。用黑盒法设计测试用例时,必需用所有可能的输入数据来检查程序是不是都能产生正确的输出二、等价类划分等价类的划分在专门大程度上依托的是测试人员的体会,下面给出几条大体原那么:(1)若是输入条件规定了取值范围,那么可划分出一个有效的等价类(输入值在此范围内)和两个无效的等价类(输入值小于最小值、输入值大于最大值)。(2)若是输入条件规定了输入数据的个数,那么可相应地划分出一个有效的等价类(输入数据的个数等于给定的个数要求)和两个无效的等价类(输入数据的个数少于给定的个数要求、输入数据的个数多于给定的个数要求)。(3)若是输入条件规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处置,那么可将这组可能的值划分为一个有效的等价类,而这些值之外的值划分成无效的等价类。(4)若是输入条件规定了输入数据的一组可能的值,可是程序对不同的输入值做不同的处置,那么每一个输入值是一个有效的等价类,另外还有一个无效的等价类(所有不许诺值的集合)。(5)若是输入条件规定了输入数据必需遵循的规那么,那么能够划分一个有效的等价类(符合规那么)和假设干个无效的等价类(从各类角度违背规那么)。保护(更正性保护、适应性保护、完善性保护、预防性保护)决定软件可保护性因素(可明白得性、可测试性、可修改性、可移植性、可重用性)面向对象方式学优势:一、与人类适应的思维方式一致二、稳固性好3、可重用性好4、较易开发大型软件产品五、可保护性好对象模型一、关联二、聚集3、泛化4、依托和细化贰软件工程软件危机一、软件危机是指在运算机软件的开发和保护进程中所碰到的一系列严峻问题。(熟记)二、了解软件危机要紧的一些典型表现。(P2)3、 显现软件危机的缘故:4、 排除软件危机的途径:第一,咱们要对运算机软件有一个正确的熟悉;更重要的是,必需充分熟悉到软件开发不是某种个体劳动的神秘技术,而应该是一种组织良好、治理严格、各类人员协同配合、一起完成的工程项目;最后,应该开发和利用更好的软件工具。总之,为了解决软件危机,既要有技术方法(方式和工具),又要有必要的组织治理方法。软件工程一、软件工程:采纳工程的概念、原理、技术和方式来开发和保护软件,把通过时刻考验而证明正确的治理技术和当前能够取得的最好的技术方式结合起来,以经济地开发出高质量的软件并有效地保护它。(熟记)二、了解软件工程的本质特点:1)、软件工程关注于大型程序的构造2)、软件工程的中心课题是操纵复杂性3)、软件常常转变4)、开发软件的效率超级重要5)、和谐的合作是开发软件的关键6)、软件必需有效地支持它的用户7)、在软件工程的领域中通常由具有一种文化背景的人替具有另一种文化背景的人制造产品3、缺乏应用领域地相关知识,是软件开发项目显现问题的常见缘故。4、软件工程的大体原理:1)、用分时期的生命周期打算严格治理2)、坚持进行时期审评3)、实行严格的产品操纵4)、采纳现代程序设计技术5)、结果应能清楚地审查6)、开发小组的人员应该少而精7)、承认不断改良软件工程实践的必要性五、方式学(范型):在软件生命周期全进程中利用的一整套技术方式的集合。六、软件工程方式学3要素:方式、工具和进程。7、目前利用得最普遍的软件工程方式学,别离是传统方式学和面向对象方式学八、传统方式学也成为生命周期方式学或结构化范型。九、面向对象方式学具有的4个要点。(P10)软件生命周期一、归纳地说,软件生命周期由软件概念、软件开发和运行保护(也称为软件保护)3个时期组成,每一个时期又进一步划分成假设干个时期。二、软件概念时期的任务3、 软件概念时期通常进一步划分成3个时期:问题概念、可行性研究、需求分析4、 保护时期的要紧任务是使软件持久地知足用户的需要。五、 软件开发时期通常分成4个时期:整体设计、详细设计、编码和单元测试、综合测试。前两个时期又称为系统设计,后两个时期又称为系统实现。六、 软件生命周期每一个时期的大体任务:问题概念、可行性研究、需求分析、整体设计、详细设计、编码和单元测试、综合测试。软件工程生命周期模型(进程模型):瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。(对各类模型要了解)小结(熟读,对本章系统地了解)可行性分析可行性分析的目的:用最小的代价在尽可能短的时刻内确信问题是不是能够解决。可行性研究的任务研究解法的可行性的三个方面:技术可行性、经济可行性、操作可行性。可行性研究最全然的任务:对以后的行动方针提出建议。可行性研究需要的时刻长短取决于工程的规模。可行性研究进程复查系统规模和目标研究目前正在试用的系统导出新系统的高层逻辑模型进一步概念问题导出和评判供选择的解法推荐行动方针起草开发打算书写文档提交审查系统流程图一、系统流程图:归纳地刻画物理系统的工具。二、系统流程图的大体思想:用图形符号以黑盒子形式刻画组系统的每一个部件(程序、文档、数据库、人工进程等)。3、P39符号4、系统流程图的适应画法:使信息在图中从顶向下或从左向右流动。五、面对复杂的系统时,一个比较好的方式时分层次地刻画那个系统。数据流图数据流图(DFD):—种图形化技术,它刻画信息流和数据从输入移动到输出的进程中所经受的变换。数据流图的四种大体符号P41数据存储(静止状态)和数据流(运动)都是数据。数据流图的大体要点是刻画“做什么”,而不是考虑“怎么做”。星号(*)是数据流之间的“与”关系;加号(+)表示“或”关系;㊉号表示只能从当选一个(互斥关系)。画数据流图的大体目的是利用它作为交流信息的工具。数据字典数据字典应由对以下4类元素的概念组成:数据流、数据流分量(即数据元素)、数据存储、处置。由数据元素组成数据的方式的三种大体类型:顺序、选择、重复。+可选用以下符号描述由数据元素组成数据的关系:=意思是等价于(或概念为)、+意思是和(即连接两个分量)、[}意思是或(通经常使用“|”号隔开供选择的分量)、{}意思是重复、()意思是可选。数据字典最重要的用途是作为分析时期的工具。本钱/效益分析本钱/效益分析的目的:从经济角度分析开发一个特定的新系统是不是划算,从而帮忙客户组织的负责人正确地作出是不是投资于这项开发工程的决定。软件开发本钱:要紧表现为人力消耗。本钱估算技术:代码行技术、任务分解技术、自动估量本钱技术。货币的时刻价值:用利率的形式。假设年利率为i,若是此刻存入P元,那么n年后的价值:F=P(1+i厂n衡量一项开发工程的价值:投资回收期。纯收入投资回收率小结三需求分析需求分析是软件概念时期的最后一个时期。大体任务:准确地回答“系统必需做什么?”那个问题。用于需求分析的结构化分析方式必需遵守下述准那么:(1) 、必需明白得并描述问题的信息域,依照这条准那么应该应该成立数据模型。E-R图(2) 、必需概念软件应完成的功能,这条准那么要求成建功能模型。数据流图(3) 、必需描述作为外部事件结果的软件行为,这条准那么要求成立行为模型。状态图(4) 、必需对描述信息、功能和行为的模型进行分解,用层次的方式展开细需求分析的任务对软件系统的综合要求:功能需求、性能需求、靠得住性和可用性需求、犯错处置需求、接口需求、约束、逆向需求、以后可能提出的要求。需求分析的任务:确信对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发打算与用户沟通获取需求的方式访谈、面向数据流自顶向下求精、简易地应用规格说明技术,快速成立软件原型。结构化分析方式确实是面向数据流自顶向下求精进行需求分析的方式。快速成立软件原型是最准确、最有效、最壮大的需求分析技术。分析建模与规格说明需求分析进程应成立3种模型:数据模型、功能模型、行为模型。数据流图是成建功能模型的基础。状态转换图是行为建模的基础。实体-联系图(E-R)E-R图中包括实在体(即数据对象)、关系和属性3种大体成份。数据标准化第一范式:每一个属性值都必需是原子值,即仅仅是一个简单值而不含内部结构。第二范式:知足第一范式的条件,而且每一个非关键字都由整个关键字决定(而不是由关键字的一部份来决定)。第三范式:符合第二范式的条件,每一个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依托于另一个非关键字属性值)。状态转换图状态转换图(简称状态图):通过刻画系统的状态及引发系统状态转换的事件,来表示系统的行为。在状态图中概念的状态要紧有:初态(即初始状态)、终态(即最终状态)和中间状态。在状态图中只能有一个初态,而终态那么能够有0最多个。事件确实是引发系统做动作或(和)转换状态的操纵信息。在状态图中,初态用一对同心圆(内圆为实心圆)表示。中间状态用圆角矩形表示。如图:活动表的语法格式:事件名(参数表)/动作表达式在活动表中通常利用的3种标准事件:Entry事件指定进入该状态的动作Exit事件指定退出该状态的动作Do事件制定在该状态下的动作状态转换:箭头指明的转换方向。事件表达式的语法:事件说明【守卫条件】/动作表达式事件说明与守卫条件同时利历时,那么当且仅当事件发生且布尔表达式为真时,状态转换才发生;若是只有守卫条件没有事件说明那么只要守卫条件为真,状态转换就发生。守卫条件是一个布尔表达式。动作表达式是一个进程表达式,当状态表达式开始时执行该表达式。其他图形层次方框图、warnier图、IPO图(输入、处置、输出图的简称)验证软件需求从四个方面进行验证:一致性、完整新、现实性、有效性小结五整体设计设计进程整体设计进程通常有两个要紧时期组成:系统设计时期,确信系统的具体实现方案;结构设计时期,确信软件的结构。典型的整体设计进程包括下述9个步骤:1) 、假想宫选择的方案需求分析时期得出的数据流程图是整体设计的极好的起点。2) 、选择合理的方案对每一个合理的方案,分析员都应预备以下四份材料:系统流程图组成系统的物理元素清单本钱/效益分析实现各个系统的进度打算3) 、推荐最正确方案4) 、功能分解5) 、设计软件结构软件结构能够用层次图或结构图来刻画。6)、设计数据库7) 、制定测试打算8) 、书写文档那个时期完成的文档有:系统说明、用户手册、测试打算、详细的实现打算、数据库设计结果。9)、审查和复查设计原理模块化、抽象、慢慢求精、信息隐藏和局部化、模块独立模块是由边界元素限定的相邻程序元素的序列,而且有一个整体标识符代表它。模块是组成程序的大体构件。模块化确实是把程序分成独立命名且可独立访问的模块,每一个模块完成一个子功能,把这些模块集成起来组成一个整体,能够完成指定的功能知足用户的需求。抽象:把相似的方面集中和归纳起来,临时忽略它们之间的不同,或说,抽出事物的本质特性而临时不考虑它们之间的细节。慢慢求精是人类解决复杂问题时采纳的大体方式,也是许多软件工程技术的基础。概念:为了能集中精力解决要紧问题而尽可能推延对问题细节的考虑。信息隐藏原理指出:应该如此设计和确信模块,使得一个模块内包括的信息(进程和数据)关于不需要这些信息的模块来讲,是不能访问的。局部化:把一些关系紧密的软件元素物理地放得彼此靠近。模块独立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果。模块独立化重要性的缘故:第一,有效地模块化的软件比较容易开发出来;第二,独立的模块化比较容易测试和保护。模块的独立程度能够由两个定性标准气宇,这两个标准别离称为内聚和耦合。耦合是对一个软件结构内不同模块之间互连程度的气宇。耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,和通过接口的数据。若是两个模块彼其间通过参数互换信息,而且互换的信息仅仅是数据,那么这种耦合称为数据耦合。若是传递的信息中有操纵信息(尽管有时这种操纵信息以数据的形式显现),那么这种耦合称为操纵耦合。数据耦合是低耦合。公共环境耦合、最高程度的耦合式内容耦合。内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。偶然内聚、逻辑内聚、时刻内聚低内聚、中内聚、高内聚的分类。启发规那么/软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入都应适当模块的应用域应该在操纵域之内力争降低模块接口的复杂程度设计单入口单出口的模块模块功能应该能够预测刻画软件结构的图形工具层次图和HIPO图结构图面向数据流的设计方式面向数据流的设计方式把信息流映射成软件结构,信息流的类型决定了映射的方式。信息流分成两种类型:转变流、事物流(概念)变换分析是一系列设计步骤的总称,通过这些步骤吧具有变换流特点的数据流图按预先确信的模式映射成软件结构。变换分析的设计步骤。小结第6章详细设计目标:1.确信应该如何具体的实现所要求的系统设计出程序的“蓝图”详细设计的结果大体决定了最终的程序代码的质量结构程序设计概念:结果程序设计是一种设计程序的技术,它采纳自顶向下慢慢求精的的设计方式和单入口但出口的操纵结构。三种大体操纵结构:1) 顺序结构:相当于“A、B”2) 选择结构:相当于“fexpthenAelseBendif;”3) 循环结构:相当于“WhileexpdoA”扩充的两种操纵结构:1)多分支结构:相当于“CaseIofI=1:C1; I=n:Cn;”2) UNTIL循环结构:相当于“RepeatAuntilexp;”结构程序设计的种类:1)经典的结构程序设计:只许诺利用顺序、IF_THEN_ELSE型分支和DO_WHILE型循环;2)扩展的结构程序设计:除三种大体操纵结构,还利用DO_CASE型多分支结构和DO_WHILE型循环结构;3)修正的结构程序设计:除三种大体操纵结构和两种扩充结构,还利用LEAVE(或BREAK)结构。人机界面设计6.2.1设计问题系统响应时刻用户帮忙设施犯错信息处置命令交互6.2.2设计进程6.2.3人机界面设计指南一样交互指南信息显示指南数据输入指南进程设计的工具程序流程图程序流程图是一种描述程序的操纵结构流程和指令执行情形的有向图。程序流程图的要紧缺点:程序流程图本质上不是慢慢求精的好工具,它诱使程序员过早地考虑程序的操纵流程,而不去考虑程序的全局结构。程序流程图顶用箭头代表操纵流,因此程序员不受任何约束,能够完全不顾结构程序设计的精神,随意转移操纵。程序流程图不易表示数据结构。6.3.2盒图盒图特点:功能域明确,能够从盒图上一眼就看出来。不可能任意转移操纵。很容易确信局部和全程数据的作用域。很容易表现嵌套关系,也能够表示模块的层次结构。PAD图是一种问题分析图。PAD图优势:利用表示结构化操纵结构的PAD符号所设计出来的程序必然是结构化程序PAD图所刻画的程序结构十分清楚。图中最左面的竖线是程序的主线,即第一层结构。随着德程序层次的增加,PAD图慢慢向右延伸,每次增加一个层次,图形向右扩展竖线。PAD图中竖线的总条数确实是程序的层次数。用PAD图表现程序逻辑,易懂、易读、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件靠得住性和软件生产率。即可用于表示程序逻辑,也可用于刻画数据结构。PAD图的符号支持自顶向下、慢慢求精方式的利用。开始时设计者能够概念一个抽象的程序,随着设计工作的深切而利用def符号慢慢增加细节,直至完成详细设计。判定表判定表由四部份组成:左上部列出所有条件左下部是所有可能做的动作右上部是表示各类条件组合的一个矩阵右下部是和每种条件组合相对应的动作6.3.5判定树判定树是判定表的变种。进程设计语言进程设计语言(PDL)也称为伪码。PDL的优势:能够作为注释的直接插在源程序中间能够利用一般的正文编辑程序或文字处置系统,很方便地完成PDl的书写和编辑工作已经有自动处置PDL的程序存在,而且能够自动由PDL生成程序代码。PDL缺点:不如图形工具形象直观。面向数据结构的设计方式Jackson图顺序结构选择结构重复结构改良的Jackson图Jackson方式Jackson结构程序设计方式大体上由5个步骤组成:分析并确信输入数据和输出数据的逻辑结构,并用Jackson图刻画这些数据结构。找出输入数据结构和输出数据结构中有对应关系的数据单元。用下述3条规那么从刻画数据结构的Jackson图导出刻画程序结构的Jackson图。为每对有对应关系的数据单元,依照它们在数据结构图中的层次在程序结构图的相应层次画一个处置框。依照输入数据结构中剩余的每一个数据单元所处的层次,在程序结构图的相应层次别离为它们画上对应的处置框。依照输入数据结构中剩余的每一个数据单元所处的层次,在程序结构图的相应层次别离为它们画上对应的处置框。列出所有操作和条件,而且把它们分派到程序结构图的适当位置。用伪码表示程序。程序复杂程度的定量气宇McCabe方式流图“退化了的”程序流程图,它仅仅刻画程序的操纵流程,完全不表现对数据的具体操作和分支或循环的具体条件。计算环形复杂度的方式环形复杂度等于流图中的区域数。流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数的,N是结点数。流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数量。环形复杂度的用途它是对测试难度的一种定量气宇,也能对软件最终的靠得住性给出某种预测。实践说明,模块规模以V(G)<=10为宜。Halstead依照程序中运算符和操作数的总数来气宇程序的复杂程度。N=N1+N2程序总长度:N运算符显现的总次数:N1操作数显现的总次数:N2Halstead给出的预测程序长度的公式:H=n1log2n1+n2log2n2预测程序中包括错误的个数的公式:E=Nlog2(n1+n2)/3000212第七章实现概念:编码和测试统称为实现。编码:把软件设计结果翻译成程序。测试:检测程序并更正错误的进程。编码选择程序设计语言运算机程序设计语言大体上能够分为两大类:汇编语言:高级语言选择语言时应考虑的有效标准:系统用户要求能够利用的编译程序能够取得的软件工具工程规模程序员的知识软件可移植性要求软件的应用领域编码风格程序内部的文档数听说明语句构造输入输出效率软件测试基础7.2.1软件测试的目标1.有关测试的一些规那么:测试是为了发觉程序中的错误而执行程序的进程好的测试方案是极可能发觉迄今为止尚未发觉的错误的测试成功的测试是发觉多了至今为止尚未发觉的错误的测试软件测试准那么所有测试都应该追溯到用户要求应该远在测试开始之前就制定出侧是打算把Pareto原理应用到软件测试中应该从“小规模”测试开始,并慢慢进行“大规模”测试穷举测试是不可能的为了达到最正确的测试成效,应该由独立的第三方从事测试工作测试方式黑盒测试白盒测试测试步骤模块测试子系统测试系统测试验收测试平行运行测试时期的信息流单元测试测试重点:模块接口局部数据结构重要的执行通路犯错处置通路边界条件代码审查运算机测试集成测试自顶向下集成自顶向下集成是一种递增的装配软件结构的方式,这种应用方式超级普遍。它需要存根程序,不需要驱动程序。自底向上集成自底向上集成是从软件结构最底层模块开始进行组装和测试,它与自顶向下结合方式相反,需要驱动程序,可是不需要存根程序。不同集成测试策略的比较回归测试包括3类不同的测试用例检测软件全数功能的代表性测试用例专门针对可能受修改阻碍的软件功能的附加测试针对被修悔改的软件成份的测试确认测试7.5.1确认测试的范围确认测试的两种可能的结果:功能和性能与用户要求一致,软件是能够同意的功能和性能与用户要求有差距
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电梯赠予合同7篇
- 小产权转让合同6篇
- 国际贸易之间合作合同
- 公司技术合作合同协议书
- 2025年中山货运资格证模拟考试题库
- 2025年扬州货运从业资格证模拟考试下载安装
- 室内装修合同二5篇
- 的担保借款合同7篇
- 观看湖北消防119宣传月节目心得感悟集合4篇
- 在民主生活会上的点评讲话模板
- 现代控制理论课件-矩阵复习
- 《化工生产技术》配套教学课件
- 液压与气压传动技术全套课件
- 中国传媒大学《纪录片创作教程》课件
- 蛋白电泳在肾脏疾病中的实际临床应用
- T∕CCCMHPIE 1.3-2016 植物提取物 橙皮苷
- 毫火针疗法PPT课件
- 三年级部编版语文下册第二单元日积月累
- 前轮毂止口不合格8D报告
- 蝴蝶兰温室工厂化栽培管理技术
- 银行对账单(共9页)
评论
0/150
提交评论