《软件工程基础.ppt》由会员分享,可在线阅读,更多相关《软件工程基础.ppt(66页珍藏版)》请在第壹文秘上搜索。
1、1考核知识点软件工程的基本概念。软件生命周期的概念。软件工具与软件开发环境。结构化分析方法。软件需求规格说明书。结构化设计方法。总体设计与详细设计。模块的独立性。软件测试的方法,软件测试的目的和准则,软件测试的实施。程序的调试、静态调试与动态调试。2重要考点提示重要考点提示软件定义与软件特点,软件危机与软件工程。软件生命周期定义,软件工程的目标与原则,软件开发工具和环境。需求分析工作与需求分析方法。结构化分析步骤、常用工具(数据流图、数据字典、判定树、判定表),软件需求规格说明书。软件设计基本原理,概要设计与详细设计(面向数据流设计方法,程序流程图)。白盒测试与黑盒测试,测试用例设计,软件测试
2、的实施。单元测试、集成测试、确认测试、系统测试。程序调试的基本步骤、原则。程序调试方法。345一、定义一、定义 软件是包括软件是包括程序、数据及相关文档程序、数据及相关文档的完整集合。的完整集合。二、软件两部分组成: 可执行的程序和数据; 不可执行的,与软件开发、运行维护、使用有关的文档三、按功能将软件分为: 应用软件应用软件 系统软件系统软件 支撑软件支撑软件(或工具软件)或工具软件) 6一、软件危机的主要表现二、软件危机产生的原因 1.与软件本身的特点有关,如开发过程的进展难衡量,质量难以评价;软件维护意味着改正或修改原来的设计;软件的规模庞大,复杂度超线性增长 2.与软件开发和维护方法不
3、正确有关,这是主要原因。三、软件工程的概念 软件工程就是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。 7四、软件工程的四、软件工程的3个要素个要素 方法方法:完成软件工程项目的技术手段; 工具工具:支持软件的开发、管理、文档生成; 过程过程:支持软件开发的各个环节的控制、管理。五、五、 软件工程的核心思想软件工程的核心思想 把软件产品看作是一个把软件产品看作是一个工程产品工程产品来处理。来处理。 8一、软件工程过程 软件工程过程的4种基本活动: P(Plan):软件规格说明。 D(DO):软件开发。 C(Check):软件确认。 A(Action):软件演进。二
4、、软件生命周期二、软件生命周期 将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动,如图所示。9一、软件工程的目标 基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:内容主要包括:软件开发技术和软件工程管理软件开发技术和软件工程管理。1.软件开发技术 软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其其主体内容是软件开主体内容是软件开发方法学发方法学。软件开发方法学是根据不同的软件类型,按不同的观点和原则,对软件开发中应遵循的策略、原则、步骤和必须产生的文档资料都做出规定,
5、从而使软件的开发能够进入规范化和工程化的阶段,以克服早期的手工方法生产中的随意性和非规范性做法。102.软件工程管理 软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。二、软件工程的原则 为了达到上述的软件工程目标,在软件开发过程中,必须遵循软件工程的基本原则。这些原则适用于所有的软件项目。这些基本原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。11一、软件开发工具 二、软件开发环境 软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。 计算机辅助软件
6、工程计算机辅助软件工程(CASE,Computer Aided Software Engineering)是当前软件开发环境中富有特色的研究工作和发展方向。CASE将各种软件工具、开发机器和一个存放开发过程信息的中心数据库组合起来,形成软件工程环境。软件开发环境包括:数据集成控制集成界面集成。注意不包括功能集成。12软件开发方法包括分析方法、设计方法和程序设计方法。结构化方法包括已经形成了配套的结构化分析方法、结构化设计方法和结构化编程方法,其核心和基础是结构化程序设计理论。 13一、需求分析 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求
7、精、建模和定义需求的过程。需求分析将创建所需的数据模型、功能模型和控制模型。1.需求分析的定义2.需求分析阶段的工作需求分析阶段的工作 需求获取需求获取 需求分析需求分析 编写需求规格说明书编写需求规格说明书 需求评审需求评审14二、需求分析方法1.结构化分析方法 面向数据流数据流的结构化分析方法(SA) 面向数据结构数据结构的Jackson方法(JSD) 面向数据结构的结构化数据系统开发方法(DSSD)2.面向对象的分析方法 从需求分析建立的模型的特性来分,需求分析方法又分为: 静态分析方法 动态分析方法。 15一、关于结构化分析方法 结构化分析方法目的是帮助弄清用户对软件的需求。 结构化分
8、析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。 结构化分析方法的实质是着眼于数据流,自顶向着眼于数据流,自顶向下,逐层分解下,逐层分解,建立系统的处理流程,以数据流图和数据流图和数据字典数据字典为主要工具,建立系统的逻辑模型。 逻辑模型由数据流图和数据字典构成。16二、结构化分析常用工具 1.数据流图(DFDData Flow Diagram) 数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。 数据流图中的主要图形元素与说明如下: 加工(转换)。输入数据经加工变换产生输
9、出。 数据流数据流。 存储文件(数据源)。 源,潭。表示系统和环境的接口,属系统之外的实体。1718 对复杂系统的表达应采用控制复杂度策略,需要按照问题的层次结构逐步分解细化,使用分层的数据流图表达这种结构关系,分层的数据流图的形式如图所示。19数据流图的构造规则和注意事项: 对加工处理建立惟一、层次性的编号,且每个加工处理通常要求既有输入又有输出; 数据存储之间不应该有数据流; 数据流图的一致性。它包括数据守恒和数据存储文件的使用,某个处理用以产生输出的数据没有输入,即出现遗漏,另一种是一个处理的某些输入并没有在处理中使用以产生输出;数据存储(文件)应被数据流图中的处理读和写,而不是仅读不写
10、、或仅写不读。 父图、子图关系与平衡规则。子图个数不大于父图中的处理个数。202.数据字典(DDData Dictionary) 数据字典是结构化分析方法的核心。数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。数据字典把不同的需求文档和分析模型紧密地结合在一起,与各模型的图形表示配合,能清楚地表达数据处理的要求。 概括地说,数据字典的作用是对DFD中出现的被命名的图形元素的确切解释。 212.判定树223.判定表所有可能的条件各种条件组合所选操作所有操作23软件需求规格说明书(SRS)是需求
11、分析阶段的最后成果,是软件开发中的重要文档之一。一、软件需求规格说明书的作用便于用户、开发人员进行理解和交流。作为软件开发工作的基础和依据。作为确认测试和验收的依据。2.软件需求规格说明书的内容 概述 数据描述数据描述 功能描述功能描述 性能描述性能描述 参考文献目录 附录2425一、软件设计的基础一、软件设计的基础 软件设计是一个把软件需求转换为软件表示的过程。软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统软件设计是确定系统的物理模型。的物理模型。 从工程管理角度来看,软件设计分两步完成:概要概要设计和详细设计设计和详细设计。概要设计(又称结构设
12、计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。 软件设计的一般过程是:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。26二、软件设计的基本原理二、软件设计的基本原理1.抽象2.模块化(为了解决复杂的问题)3.信息隐蔽4.模块独立性 模块独立性是指,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。 模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性耦合性和内聚性两个定性的度
13、量标准。27内聚性从功能角度来度量模块内的联系。 内聚由弱到强排列为:偶然内聚(最弱)、逻辑内聚、时间内聚、过程内聚、顺序内聚、功能内聚(最强)耦合性 是模块间互相连接的紧密程度的度量。 耦合度由高到低排列为:内容耦合(最高)、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合(最低)。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。28一、概要设计的任务 1.设计软件体系结构 2.数据结构设计及数据库设计 3.编写概要设计文档 4.概要设计文档评审 常用的软件结构设计
14、工具是结构图软件结构设计工具是结构图(SC),也称程序,也称程序结构图结构图。使用结构图描述软件系统的层次和分块结构关系,它反映了整个系统的功能实现以及模块与模块之间的联系与通讯,是未来程序中的控制层次体系。结构图是描述软件结构的图形工具。29结构图的基本图符如图所示。模块用一个矩形表示模块用一个矩形表示,矩形内注明模块的功能和名字;箭头表示模块间的调用关系箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭心表示传递的是数据。30根据结构化设计思想,结
15、构图构成的基本形式如图所示。 31传入模块,传出模块、变换模块和协调模块32深度、上级模块、从属模块、宽度、扇入、扇出、原子模块好的软件设计结构通常顶层高扇出,中间扇出较少,底层高扇入。33二、面向数据流的设计方法 在需求分析阶段,主要是分析信息在系统中加工和流动的情况。面向数据流的设计方法定义了一些不同的映射方法,利用这些映射方法可以把数据流图变换成结构图表示的软件结构。首先需要了解数据流图表示的数据处理的类型,然后针对不同类型分别进行分析处理。典型的数据流类型有两种:变换型和事务型。典型的数据流类型有两种:变换型和事务型。341.变换型 变换型系统结构图由输入、中心变换和输出等三部分组成,
16、如图所示。 352.事务型在事务型数据流系统结构图中,事务中心模块按所接受的事务类型,选择某一事务处理模块执行,各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。36详细设计的任务,是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。 常见的过程设计工具有:图形工具:程序流程图,程序流程图,N-S,PAD,HIPO。表格工具:判定表。语言工具:PDL(伪码)(伪码)。371.程序流程图38391.程序流程图402.N-S图 412.N-S图 423.PAD图(Problem Analysis Diagram)问题分析图433.PAD图(Problem Analysis Diagram)问题分析图444.PDL(Procedure Design Language) 过程设计语言 count();输入X:输入y; If(0X15) 公式2计算;call sub;sub(); for(i=1,3,i+) do 记账;输出;45 软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软件生命期的过