第3章 软件工程基础

目录

一、软件工程基本概念

1.1 软件的定义与软件的特点

1.2 软件危机与软件工程

1.3 软件工程过程

二、结构化分析方法(重点)

2.1 结构化需求分析方法

2.2 面向对象的分析方法(略)

三、结构化设计方法(重点)

3.1 软件设计的划分

3.2 软件设计基本内容

3.3 概要设计

3.4 详细设计

四、软件测试

4.1 软件测试的概念

4.2 软件测试的分类

4.3 软件测试技术

4.4 软件测试步骤

五、程序的调试

5.1 程序调试的概念

5.2 程序调试的步骤


一、软件工程基本概念

1.1 软件的定义与软件的特点

软件定义:计算机系统中与硬件相互依存的另一部分,包括程序数据相关文档的完整集合。

软件按功能划分为:系统软件应用软件支撑软件

  1.         ①系统软件:操作系统、编译程序、汇编程序、网络软件、数据库管理系统。
  2.         ②应用软件:事务处理软件、工程与科学计算软件、实时处理软件等。
  3.         ③支撑软件(工具软件):需求分析工具软件、编译工具软件、测试工具软件、维护工具软件。

软件特点:

  1.         ①软件是逻辑实体,是人类治理成果的表现形式。
  2.         ②软件的开发和制造是一个统一的过程。
  3.         ③软件开发是一项经济活动。
  4.         ④软件不会磨损,但可能存在错误,需要进行维护。

1.2 软件危机与软件工程

软件危机:需求增长、开发难控、质量难保、难以维护、成本提高、生产率低。

软件工程的概念:应用于计算机软件的定义、开发和维护的一阵套方法、工具、文档、实践标准和工序。

软件工程的目的:提高软件生产率、提高软件质量、降低软件成本。

软件工程的核心思想:把软件当作一个工程产品来处理。

软件工程包括三个要素:方法工具过程

1.3 软件工程过程

软件生命周期:将软件产品从提出、实现、使用维护到停止使用退役的过程。

软件工程的3个时期(8个阶段):软件定义软件开发软件维护

软件定义:问题定义和可行性研究需求分析

        需求分析:确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。其目的是需求获取、需求分析、编写需求规格说明书、续修评审,最终产生需求规格说明书。需求规格说明书的3个作用如下:

  1.         ①便于用户、开发人员进行理解交流。
  2.         ②反应用户问题的结构,可以作为软件开发工作的基础和依据。
  3.         ③作为确认测试和验收的依据。

软件开发:概要设计详细设计实现测试

软件维护:使用维护

二、结构化分析方法(重点)

需求分析的内容:深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节。

需求分析方法:结构化需求分析方法面向对象的分析方法

2.1 结构化需求分析方法

结构化需求分析方法:使用数据流图(DFD)、数据字典(DD)、判定表和判定树等工具,来建立系统的逻辑模型。

需求分析工具:数据流图(DFD)数据字典(DD)判定表判定树

        数据流图(DFD)的图形元素

        举例:银行取款业务数据流图

2.2 面向对象的分析方法(略)

三、结构化设计方法(重点)

结构化设计方法的概念:给出一组帮助设计人员在模块层次上区分设计质量的原理和技术。

3.1 软件设计的划分

软件设计按工程管理角度划分:概要设计详细设计

软件设计按技术观点划分:结构设计、数据设计、接口设计、过程设计。

3.2 软件设计基本内容

抽象:在软件设计中,可以定出多个抽象级别,抽象层次从概要设计到详细设计逐步降低。

模块化:把一个待开发的软件分解成若干小的简单的部分,自顶向下逐层把软件划分成若干模块。

信息屏蔽:一个模块内的信息,对于不需要这些信息的其他模块来说不能访问。

模块独立性:每个模块只能完成独立的子功能,并且与其他模块的联系少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。内聚性和耦合性为两个定性的度量标准。

  1.         ①高内聚性:指一个模块内部各个元素间彼此结合的紧密程度。
  2.         ②低耦合性:指模块间互相连接的紧密程度。

3.3 概要设计

概要设计的任务:软件系统结构设计数据结构及数据库设计编写概要设计文档概要设计文档评审

概要设计的工具:结构图(SC)【或称系统结构图】

        结构图(SC)的基本图符:

        结构图(SC)的基本形式:

3.4 详细设计

详细设计的任务:确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。

详细设计的常用工具:

  1.         ①图形工具:程序流程图N-S图PADHIPO
  2.         ②表格工具:判定表
  3.         ③语言工具:PDL(伪码)

        程序流程图的基本图符

四、软件测试

4.1 软件测试的概念

利用测试工具按照测试方案和流程对产品进行功能和功能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。

4.2 软件测试的分类

从软件内部结构和具体实现的角度划分:白盒测试黑盒测试

从执行程序的角度划分:静态测试动态测试

从软件开发的过程按阶段划分:单元测试集成测试确认测试系统测试

4.3 软件测试技术

静态测试:不实际运行软件,通过人发挥思维优势发现程序的错误。有代码检查、静态结构分析、代码质量度量。

动态测试:基于计算机的测试,是为了发现错误而执行程序的过程。

白盒测试:把测试对象看作一个打开的盒子,利用程序内部的逻辑结构,对程序所有逻辑路径进行测试。有逻辑覆盖测试、基本路径测试。

黑盒测试:完全不考虑程序内部的逻辑结构,只检查程序是否能接收输入数据而产生正确的输出信息。有等价类划分法、边界值分析法、错误推测法。

4.4 软件测试步骤

单元测试:对软件设计的最小单位——模块进行测试,目的是发现各模块内部的错误。

集成测试:把模块设计要求组装起来的同时进行测试,目的是发现与接口有关的错误。

确认测试:验证软件的功能和性能是否满足各种需求,以及软件配置是否完全正确。

系统测试:将软件作为一个元素,与计算机系统其他元素组合在一起,进行集成测试。

五、程序的调试

5.1 程序调试的概念

将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程称为程序调试。

5.2 程序调试的步骤

步骤:

  1.         ①错误定位
  2.         ②修改设计和代码以排除错误
  3.         ③进行回归测试,防止引进新的错误

软件调试方法:强行排除法回溯法原因排除法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值