欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    软件工程基础.ppt

    • 资源ID:235704       资源大小:4.26MB        全文页数:66页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程基础.ppt

    1,第三章 软件工程基础,考核知识点软件工程的基本概念。软件生命周期的概念。软件工具与软件开发环境。结构化分析方法。软件需求规格说明书。结构化设计方法。总体设计与详细设计。模块的独立性。软件测试的方法,软件测试的目的和准则,软件测试的实施。程序的调试、静态调试与动态调试。,2,重要考点提示软件定义与软件特点,软件危机与软件工程。软件生命周期定义,软件工程的目标与原则,软件开发工具和环境。需求分析工作与需求分析方法。结构化分析步骤、常用工具(数据流图、数据字典、判定树、判定表),软件需求规格说明书。软件设计基本原理,概要设计与详细设计(面向数据流设计方法,程序流程图)。白盒测试与黑盒测试,测试用例设计,软件测试的实施。单元测试、集成测试、确认测试、系统测试。程序调试的基本步骤、原则。程序调试方法。,3,3.1 软件工程基本概念3.2 结构化分析方法3.3 结构化设计方法3.4 软件测试3.5 程序的调试,4,3.1.1 软件定义与软件特点,3.1.2 软件危机与软件工程,退出,返回,3.1 软件工程基本概念,3.1.3 软件工程过程与软件生命周期,3.1.4 软件工程的目标与原则,3.1.5 软件开发工具与软件开发环境,5,一、定义 软件是包括程序、数据及相关文档的完整集合。二、软件两部分组成:可执行的程序和数据;不可执行的,与软件开发、运行维护、使用有关的文档三、按功能将软件分为:应用软件 系统软件 支撑软件(或工具软件),3.1.1 软件定义与软件特点,6,一、软件危机的主要表现二、软件危机产生的原因 1.与软件本身的特点有关,如开发过程的进展难衡量,质量难以评价;软件维护意味着改正或修改原来的设计;软件的规模庞大,复杂度超线性增长 2.与软件开发和维护方法不正确有关,这是主要原因。三、软件工程的概念 软件工程就是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。,3.1.2 软件危机与软件工程,7,四、软件工程的3个要素 方法:完成软件工程项目的技术手段;工具:支持软件的开发、管理、文档生成;过程:支持软件开发的各个环节的控制、管理。五、软件工程的核心思想 把软件产品看作是一个工程产品来处理。,3.1.1 软件危机与软件工程,8,一、软件工程过程 软件工程过程的4种基本活动:P(Plan):软件规格说明。D(DO):软件开发。C(Check):软件确认。A(Action):软件演进。二、软件生命周期 将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动,如图所示。,3.1.3 软件工程过程与软件生命周期,9,一、软件工程的目标 基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。1.软件开发技术 软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件开发方法学是根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料都做出规定,从而使软件的开发能够进入规范化和工程化的阶段,以克服早期的手工方法生产中的随意性和非规范性做法。,3.1.4 软件工程的目标与原则,10,2.软件工程管理 软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。二、软件工程的原则 为了达到上述的软件工程目标,在软件开发过程中,必须遵循软件工程的基本原则。这些原则适用于所有的软件项目。这些基本原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。,3.1.4 软件工程的目标与原则,11,一、软件开发工具 二、软件开发环境 软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。计算机辅助软件工程(CASE,Computer Aided Software Engineering)是当前软件开发环境中富有特色的研究工作和发展方向。CASE将各种软件工具、开发机器和一个存放开发过程信息的中心数据库组合起来,形成软件工程环境。软件开发环境包括:数据集成控制集成界面集成。注意不包括功能集成。,3.1.5 软件开发工具和软件开发环境,12,3.2.1 需求分析与需求分析方法,3.2.2 结构化分析方法,退出,返回,3.2 结构化分析方法,3.1.3 软件需求规格说明书,软件开发方法包括分析方法、设计方法和程序设计方法。结构化方法包括已经形成了配套的结构化分析方法、结构化设计方法和结构化编程方法,其核心和基础是结构化程序设计理论。,13,一、需求分析 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求的过程。需求分析将创建所需的数据模型、功能模型和控制模型。1.需求分析的定义2.需求分析阶段的工作 需求获取 需求分析 编写需求规格说明书 需求评审,3.2.1 需求分析与需求分析方法,14,二、需求分析方法1.结构化分析方法 面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)2.面向对象的分析方法 从需求分析建立的模型的特性来分,需求分析方法又分为:静态分析方法 动态分析方法。,3.2.1 需求分析与需求分析方法,15,一、关于结构化分析方法 结构化分析方法目的是帮助弄清用户对软件的需求。结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。逻辑模型由数据流图和数据字典构成。,3.2.2 结构化分析方法,16,二、结构化分析常用工具 1.数据流图(DFDData Flow Diagram)数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图中的主要图形元素与说明如下:加工(转换)。输入数据经加工变换产生输出。数据流。存储文件(数据源)。源,潭。表示系统和环境的接口,属系统之外的实体。,3.2.2 结构化分析方法,17,3.2.2 结构化分析方法,18,对复杂系统的表达应采用控制复杂度策略,需要按照问题的层次结构逐步分解细化,使用分层的数据流图表达这种结构关系,分层的数据流图的形式如图所示。,3.2.2 结构化分析方法,19,数据流图的构造规则和注意事项:对加工处理建立惟一、层次性的编号,且每个加工处理通常要求既有输入又有输出;数据存储之间不应该有数据流;数据流图的一致性。它包括数据守恒和数据存储文件的使用,某个处理用以产生输出的数据没有输入,即出现遗漏,另一种是一个处理的某些输入并没有在处理中使用以产生输出;数据存储(文件)应被数据流图中的处理读和写,而不是仅读不写、或仅写不读。父图、子图关系与平衡规则。子图个数不大于父图中的处理个数。,3.2.2 结构化分析方法,20,2.数据字典(DDData Dictionary)数据字典是结构化分析方法的核心。数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。数据字典把不同的需求文档和分析模型紧密地结合在一起,与各模型的图形表示配合,能清楚地表达数据处理的要求。概括地说,数据字典的作用是对DFD中出现的被命名的图形元素的确切解释。,3.2.2 结构化分析方法,21,2.判定树,3.2.2 结构化分析方法,22,3.判定表,3.2.2 结构化分析方法,所有可能的条件,各种条件组合,所选操作,所有操作,23,软件需求规格说明书(SRS)是需求分析阶段的最后成果,是软件开发中的重要文档之一。一、软件需求规格说明书的作用便于用户、开发人员进行理解和交流。作为软件开发工作的基础和依据。作为确认测试和验收的依据。2.软件需求规格说明书的内容 概述 数据描述 功能描述 性能描述 参考文献目录 附录,3.2.3 软件需求规格说明书,24,3.3.1 软件设计的基本概念,3.3.2 概要设计,退出,返回,3.3 结构化设计方法,3.3.3 详细设计,25,一、软件设计的基础 软件设计是一个把软件需求转换为软件表示的过程。软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。软件设计的一般过程是:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。,3.3.1 软件设计的基本概念,26,二、软件设计的基本原理1.抽象2.模块化(为了解决复杂的问题)3.信息隐蔽4.模块独立性 模块独立性是指,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。,3.3.1 软件设计的基本概念,27,内聚性从功能角度来度量模块内的联系。内聚由弱到强排列为:偶然内聚(最弱)、逻辑内聚、时间内聚、过程内聚、顺序内聚、功能内聚(最强)耦合性 是模块间互相连接的紧密程度的度量。耦合度由高到低排列为:内容耦合(最高)、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合(最低)。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。,3.3.1 软件设计的基本概念,28,一、概要设计的任务 1.设计软件体系结构 2.数据结构设计及数据库设计 3.编写概要设计文档 4.概要设计文档评审 常用的软件结构设计工具是结构图(SC),也称程序结构图。使用结构图描述软件系统的层次和分块结构关系,它反映了整个系统的功能实现以及模块与模块之间的联系与通讯,是未来程序中的控制层次体系。结构图是描述软件结构的图形工具。,3.3.2 概要设计,29,结构图的基本图符如图所示。模块用一个矩形表示,矩形内注明模块的功能和名字;箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭心表示传递的是数据。,3.3.2 概要设计,30,根据结构化设计思想,结构图构成的基本形式如图所示。,3.3.2 概要设计,31,传入模块,传出模块、变换模块和协调模块,3.3.2 概要设计,32,深度、上级模块、从属模块、宽度、扇入、扇出、原子模块好的软件设计结构通常顶层高扇出,中间扇出较少,底层高扇入。,3.3.2 概要设计,33,二、面向数据流的设计方法 在需求分析阶段,主要是分析信息在系统中加工和流动的情况。面向数据流的设计方法定义了一些不同的映射方法,利用这些映射方法可以把数据流图变换成结构图表示的软件结构。首先需要了解数据流图表示的数据处理的类型,然后针对不同类型分别进行分析处理。典型的数据流类型有两种:变换型和事务型。,3.3.2 概要设计,34,1.变换型 变换型系统结构图由输入、中心变换和输出等三部分组成,如图所示。,3.3.2 概要设计,35,2.事务型在事务型数据流系统结构图中,事务中心模块按所接受的事务类型,选择某一事务处理模块执行,各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。,3.3.2 概要设计,36,详细设计的任务,是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。常见的过程设计工具有:图形工具:程序流程图,N-S,PAD,HIPO。表格工具:判定表。语言工具:PDL(伪码)。,3.3.3 详细设计,37,1.程序流程图,3.3.3 详细设计,38,3.3.3 详细设计,39,1.程序流程图,3.3.3 详细设计,40,2.N-S图,3.3.3 详细设计,41,2.N-S图,3.3.3 详细设计,42,3.PAD图(Problem Analysis Diagram)问题分析图,3.3.3 详细设计,43,3.PAD图(Problem Analysis Diagram)问题分析图,3.3.3 详细设计,44,4.PDL(Procedure Design Language)过程设计语言 count();输入X:输入y;If(015)公式2计算;call sub;sub();for(i=1,3,i+)do 记账;输出;,3.3.3 详细设计,45,退出,返回,3.4 软件测试,软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软件生命期的过程,包括需求定义阶段的需求测试、编码阶段的单元测试(针对详细设计)、集成测试(针对概要设计)以及后期的确认测试(针对需求规格说明书)、系统测试,验证软件是否合格、能否交付用户使用等。3.4.1 软件测试的目的3.4.2 软件测试的准则3.4.3 软件测试技术与方法综述3.4.4 软件测试的实施,46,3.4.1 软件测试的目的,1.软件测试是为了发现错误而执行程序的过程;2.一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;3.一个成功的测试是发现了至今尚未发现的错误的测试。,47,3.4.2 软件测试的准则,1.所有测试都应追溯到需求2.严格执行测试计划,排除测试的随意性3.充分注意测试中的群集现象 4.程序员应避免检查自己的程序 5.穷举测试不可能 6.妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。测试只能证明程序中有错误,不能证明程序中没有错误。,48,3.4.3 软件测试技术与方法综述,一、静态测试与动态测试 静态测试不实际运行软件,主要通过人工进行。动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。设计高效、合理的测试用例是动态测试的关键。测试用例(Test Case)是为测试设计的数据。测试用例由测试输入数据和与之对应的预期输出结果两部分组成。测试用例的格式为:(输入值集),(输出值集),49,3.4.3 软件测试技术与方法综述,二、白盒测试方法与测试用例设计 白盒测试方法也称结构测试或逻辑驱动测试。它是根据软件产品的内部工作过程,检查内部成分,以确认每种内部操作符合设计规格要求。白盒测试的主要方法有逻辑覆盖、基本路径测试等。1.逻辑覆盖测试 分为语句覆盖路径覆盖判定覆盖条件覆盖判断-条件覆盖,50,3.4.3 软件测试技术与方法综述,语句覆盖,51,3.4.3 软件测试技术与方法综述,路径覆盖,52,3.4.3 软件测试技术与方法综述,判定覆盖,53,3.4.3 软件测试技术与方法综述,条件覆盖,54,3.4.3 软件测试技术与方法综述,判断-条件覆盖,55,3.4.3 软件测试技术与方法综述,2.基本路径测试 基本路径测试的思想和步骤是,根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。,56,3.4.3 软件测试技术与方法综述,三、黑盒测试方法与测试用例设计 黑盒测试方法也称功能测试或数据驱动测试。黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。所以,黑盒测试是在软件接口处进行,完成功能验证。,57,3.4.3 软件测试技术与方法综述,1.等价类划分法等价类划分法是一种典型的黑盒测试方法。它将程序的所有可能的输入数据划分成若干部分(及若干等价类),然后从每个等价类中选取数据作为测试用例。,58,3.4.3 软件测试技术与方法综述,2.边界值分析法 边界值分析法是对各种输入、输出范围的边界情况设计测试用例的方法。使用边界值分析方法设计测试用例,确定边界情况应考虑选取正好等于,刚刚大于,或刚刚小于边界的值作为测试数据,这样发现程序中错误的概率较大。3.错误推测法 人们可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子,这就是错误推测法。,59,3.4.3 软件测试的实施,一、单元测试 单元测试是对软件设计的最小单位-模块(程序单元)进行正确性检验的测试。单元测试的目的是发现各模块内部可能存在的各种错误。单元测试的依据是详细设计说明书和源程序。,60,3.4.3 软件测试的实施,二、集成测试 集成测试是测试和组装软件的过程。它是把模块在按照设计要求组装起来的同时进行测试,主要目的是发现与接口有关的错误。集成测试的依据是概要设计说明书。集成测试时将模块组装成程序通常采用两种方式:非增量方式组装与增量方式组装。,61,3.4.3 软件测试的实施,62,3.4.3 软件测试的实施,63,3.4.3 软件测试的实施,三、确认测试 确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中确定的各种需求,以及软件配置是否完全、正确。四、系统测试 系统测试的目的是在真实的系统工作环境下检验软件是否能与系统正确连接,发现软件与系统需求不一致的地方。,64,退出,返回,3.5 程序的调试,3.5.1 基本概念3.5.2 程序调试方法,65,3.5.1 基本概念,在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去执行找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。程序调试的基本步骤:错误定位修改设计和代码,以排除错误进行回归测试,防止引进新的错误,66,3.5.2 软件调试方法,一、强行排错法 作为传统的调试方法,其过程可概括为,设置断点、程序暂停、观察程序状态、继续运行程序。这是目前使用较多、效率较低的调试方法。涉及的调试技术主要是设置断点和监视表达式。二、回溯法三、原因排除法 原因排除法是通过演绎和归纳,以及二分法来实现的。,

    注意事项

    本文(软件工程基础.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开