(4.1.4)--第三章 软件工程基础.ppt





《(4.1.4)--第三章 软件工程基础.ppt》由会员分享,可在线阅读,更多相关《(4.1.4)--第三章 软件工程基础.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 软件工程基础软件工程基础主要内容主要内容3.1 软件工程基本概念软件工程基本概念 3.2 结构化分析方法结构化分析方法 3.3 结构化设计方法结构化设计方法3.4 软件测试软件测试 3.5 程序的调试程序的调试区分两组容易混淆名词:区分两组容易混淆名词:程序:程序:软件的组成部分。软件的组成部分。软件:软件:包括包括程序、数据和相关文档程序、数据和相关文档的完整组合。的完整组合。程序设计:程序设计:只是软件开发过程中的必要环节。只是软件开发过程中的必要环节。软件开发:软件开发:还包括需求分析、概要和详细设计、还包括需求分析、概要和详细设计、软件测试、运行和维护等多个环节。软件测试
2、、运行和维护等多个环节。如如:8(二二)3.1 软件工程基本概念软件工程基本概念3.1.1 软件定义与特点软件定义与特点 定义:定义:是指包括程序、数据以及相关文档的是指包括程序、数据以及相关文档的完整组合。完整组合。组成:组成:(1)机器可执行的程序和数据机器可执行的程序和数据 (2)机器不可执行的,与软件开发、运行、机器不可执行的,与软件开发、运行、维护和使用等有关的文档。维护和使用等有关的文档。分类:分类:系统软件、应用软件和支撑软件系统软件、应用软件和支撑软件(或工具软件或工具软件)。特点特点(6(6点点):具有抽象性具有抽象性(不是物理实体不是物理实体);没有明显制作过程;没有明显制
3、作过程;在运行、使用期间不存在磨损和老化问题;在运行、使用期间不存在磨损和老化问题;软件开发、运行对计算机系统具有依赖性。软件开发、运行对计算机系统具有依赖性。软件复杂性高、成本昂贵;软件复杂性高、成本昂贵;软件开发涉及诸多社会因素。软件开发涉及诸多社会因素。软件危机软件危机3.1.2 软件危机与软件工程软件危机与软件工程 定义:泛指在计算机软件的开发和维护过程中所定义:泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。遇到的一系列严重问题。软件工程软件工程 软件工程是应用于计算机软件的定义、开发和维软件工程是应用于计算机软件的定义、开发和维护的护的三要素:三要素:(1)(1)方法:方
4、法:完成软件工程项目的技术手段。完成软件工程项目的技术手段。(2)(2)工具:工具:支持软件的开发、管理和文档生成。支持软件的开发、管理和文档生成。(3)(3)过程:过程:支持软件开发各个环节的控制、管理。支持软件开发各个环节的控制、管理。为了消除软件危机,逐步形成了软件工程概念,为了消除软件危机,逐步形成了软件工程概念,开辟了工程学新兴领域开辟了工程学新兴领域软件工程学软件工程学。一整套方法、工具、文档、实践标准和工序。一整套方法、工具、文档、实践标准和工序。如如:2(7)如如:4(7)如如:6(三三)定义:软件产品从提出、实现、使用维护到定义:软件产品从提出、实现、使用维护到停止使用的过程
5、称为停止使用的过程称为软件生命周期软件生命周期。3.1.3 软件生命周期软件生命周期分三个阶段:软件定义、软件开发、运行维护分三个阶段:软件定义、软件开发、运行维护(1)(1)可行性研究与计划制定可行性研究与计划制定:确定开发目标和总:确定开发目标和总的要求,给出功能、可靠性等可能方案,制定实的要求,给出功能、可靠性等可能方案,制定实施计划。施计划。(2)(2)需求分析需求分析:对软件需求进行分析并给出详细:对软件需求进行分析并给出详细定义,编写软件规格说明书及初步的用户手册,定义,编写软件规格说明书及初步的用户手册,提交评审。提交评审。1 软件定义:软件定义:如如:1(四四)(1)(1)软件
6、设计软件设计:概要设计和详细设计,给出软件的:概要设计和详细设计,给出软件的结构、模块和功能的划分等。编写概要设计、详细结构、模块和功能的划分等。编写概要设计、详细设计说明书和测试计划初稿。设计说明书和测试计划初稿。(2)(2)软件实现软件实现:源程序编码,把软件设计转换成计:源程序编码,把软件设计转换成计算机可以接受的程序代码。编写用户手册、操作手算机可以接受的程序代码。编写用户手册、操作手册和单元测试计划。册和单元测试计划。(3)(3)软件测试软件测试:设计测试用例,检验软件各个组成:设计测试用例,检验软件各个组成部分。编写测试分析报告。部分。编写测试分析报告。3 3 软件运行软件运行和维
7、护和维护 软件投入运行,维护软件投入运行,维护(进行扩充和删改进行扩充和删改)。2 2 软件开发软件开发如如:预预1(一一),预预2(7)3.1.4 软件工程的目标与原则软件工程的目标与原则 基本目标:基本目标:较低开发成本达到要求软件功能较低开发成本达到要求软件功能,取得较取得较好性能;软件易于移植,维护费用低;按时完成开好性能;软件易于移植,维护费用低;按时完成开发,及时交付使用。发,及时交付使用。软件工程的理论和技术性研究的内容主要包括:软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过软件开发技术包括
8、:软件开发方法学、开发过程、开发工具和软件工程环境。程、开发工具和软件工程环境。软件工程管理包括:软件管理学、软件工程经软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。济学、软件心理学等内容。如如:4(二二)软件开发工具:软件开发工具:是用于帮助软件开发人员开发和是用于帮助软件开发人员开发和维护软件的一类特殊软件,它可以大大提高软件维护软件的一类特殊软件,它可以大大提高软件开发的效率。开发的效率。软件开发环境:软件开发环境:是全面支持软件开发全过程的是全面支持软件开发全过程的软软件工具件工具集合。这些软件工具按照一定的方法或模集合。这些软件工具按照一定的方法或模式组合起来,支持
9、软件生命周期内的各个阶段和式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。各项任务的完成。3.1.5 软件开发工具与软件开发环境软件开发工具与软件开发环境 3.2 分析方法分析方法 3.2.1 需求分析与需求分析方法需求分析与需求分析方法 1.1.需求分析:需求分析:需求分析定义:需求分析定义:开发人员准确理解用户的要求,开发人员准确理解用户的要求,调查分析,将用户非成形的需求陈述转化为完整的调查分析,将用户非成形的需求陈述转化为完整的需求定义,再转换到相应的需求格式说明的过程。需求定义,再转换到相应的需求格式说明的过程。软件开发方法包括:分析方法、设计方法、程软件开发方法包括:分析
10、方法、设计方法、程序设计方法。序设计方法。(1)需求获取需求获取:目的是确定系统各方面需求。与:目的是确定系统各方面需求。与用用户户交流、沟通全面地提炼出系统的功能性与非功能交流、沟通全面地提炼出系统的功能性与非功能性需求,即需求信息的来源是软件用户。性需求,即需求信息的来源是软件用户。(2)需求分析需求分析:对获取的需求分析和综合,给出系:对获取的需求分析和综合,给出系统解决方案和逻辑模型。统解决方案和逻辑模型。(3)编写需求规格说明书编写需求规格说明书:为用户、设计人员的交:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。流提供方便,还可作为控制软件开发进程的依据。(4)需
11、求评审需求评审:复审需求分析阶段的工作,验证需:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。求文档的一致性、可行性等。需求分析阶段的工作需求分析阶段的工作(四方面四方面):如如:7(2)如如:7(6)3.2.2 结构化结构化分析方法分析方法 结构化方法已成为系统、成熟的软件开发方法结构化方法已成为系统、成熟的软件开发方法之一。结之一。结构化方法的核心和基础是结构化程序设计构化方法的核心和基础是结构化程序设计理论。理论。结构化分析方法的实质:面向数据流,自顶向结构化分析方法的实质:面向数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图下,逐层分解,建立系统的处理流程,以数据流
12、图和数据字典为主要工具,建立系统的逻辑模型。和数据字典为主要工具,建立系统的逻辑模型。2.2.需求分析方法:需求分析方法:(1)1)结构化分析方法:主要包括面向数据流的结构结构化分析方法:主要包括面向数据流的结构化分析方法;面向数据结构的化分析方法;面向数据结构的JacksonJackson方法。方法。(2)(2)面向对象的分析方法。面向对象的分析方法。1.1.数据流图数据流图(DFDData Flow Diagram)作用:作用:以图形的方式描述数据在系统中流动和以图形的方式描述数据在系统中流动和处理的过程,使用处理的过程,使用DFD为系统建立逻辑模型。为系统建立逻辑模型。基本符号基本符号(
13、四种四种):箭头表示箭头表示数据流数据流,旁边标上数据流名称,旁边标上数据流名称。圆或椭圆表述圆或椭圆表述加工加工。双杠表示双杠表示数据存储数据存储,即保存的数据文件。,即保存的数据文件。矩形表示系统和环境的接口,即系统外部的实体。矩形表示系统和环境的接口,即系统外部的实体。结构化分析的常用工具结构化分析的常用工具:数据流图、数据字典、:数据流图、数据字典、判定树、判定表。判定树、判定表。数据流图包括数据流图包括4个方面:个方面:加工、数据流、存储文件、源和潭加工、数据流、存储文件、源和潭如如:1(3)如如:3(7)如如:5(1)如如:7(5)举例:举例:2.2.数据字典数据字典(DDData
14、 Dictionary)定义:是定义:是所有与系统相关的数据元素的一个有所有与系统相关的数据元素的一个有组织的列表,以及精确、严格的详细定义。组织的列表,以及精确、严格的详细定义。作用:作用:对对DFD中出现的被命名的图形元素的中出现的被命名的图形元素的确切解释。数据字典与确切解释。数据字典与DFD共同构成了系统的逻共同构成了系统的逻辑模型。辑模型。数据字典是各类数据描述的集合,它通常包括数据字典是各类数据描述的集合,它通常包括5 5个部分,即个部分,即数据项、数据结构、数据流、数据存数据项、数据结构、数据流、数据存储和处理过程储和处理过程。如如:5(一一),8(五五)3.2.3 软件需求规格
15、说明书软件需求规格说明书 定义:定义:是需求分析阶段的最后成果是需求分析阶段的最后成果。它对所。它对所开发的软件的功能、性能、用户界面及运行环境开发的软件的功能、性能、用户界面及运行环境等进行详细说明。等进行详细说明。作用作用:便于用户与开发人员交流;作为软件便于用户与开发人员交流;作为软件开发的依据;作为测试和验收的依据开发的依据;作为测试和验收的依据。内容:内容:制定出完整的数据描述、详细的功能制定出完整的数据描述、详细的功能说明、恰当的检验标准以及其他有关数据。说明、恰当的检验标准以及其他有关数据。特点:特点:正确而无歧义性,简明易懂正确而无歧义性,简明易懂,可修改可修改性,可验证性等。
16、性,可验证性等。如如:2(6)如如:6(4)3.3 结构化设计方法结构化设计方法 3.3.1 软件设计过程及原则软件设计过程及原则 1.1.软件设计基础知识软件设计基础知识 定义:定义:软件设计是把软件需求转换为软件的具体设计软件设计是把软件需求转换为软件的具体设计方案,即模块结构的过程。确定系统的物理模型。方案,即模块结构的过程。确定系统的物理模型。内容:内容:从技术观点:包括软件结构设计、数据设计、接从技术观点:包括软件结构设计、数据设计、接口设计、过程设计。口设计、过程设计。从工程管理角度:从工程管理角度:概要设计:确定软件系统结构,模块划分。概要设计:确定软件系统结构,模块划分。详细设
17、计:确立每个模块的实现算法和局部数据结构。详细设计:确立每个模块的实现算法和局部数据结构。软件设计的一般过程:软件设计的一般过程:先进行高层次结构设计;再进先进行高层次结构设计;再进行低层次过程设计;穿插数据设计和接口设计。行低层次过程设计;穿插数据设计和接口设计。2.2.软件设计基本原则软件设计基本原则(1)(1)抽象:抽象:抽出事物的本质特性而不考虑其他细节。抽出事物的本质特性而不考虑其他细节。(2)(2)模块化:模块化:指解决一个复杂问题时自顶向下逐层把软件系指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。统划分成若干模块的过程。(3)(3)信息隐蔽:信息隐蔽:模块内包含
18、的信息,不允许其他不需要这些模块内包含的信息,不允许其他不需要这些信息的模块访问。信息的模块访问。(4)(4)模块独立性:模块独立性:每个模块只完成系统要求的独立的子功能,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。并且与其他模块的联系最少且接口简单。度量标准度量标准耦合性:耦合性:模块间互相连接的紧密程度。模块间互相连接的紧密程度。内聚性:内聚性:一个模块内部各个元素间彼此结合一个模块内部各个元素间彼此结合的紧密程度。的紧密程度。一个设计良好的软件系统应具有一个设计良好的软件系统应具有高内聚、低耦合高内聚、低耦合的特征。的特征。如如:2(三三)如如:5(5)如如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 4.1.4-第三章 软件工程基础 4.1 第三 软件工程 基础

限制150内