赞
踩
目录
软件定义:计算机系统中与硬件相互依存的另一部分,包括程序、数据及相关文档的完整集合。
软件按功能划分为:系统软件、应用软件、支撑软件。
软件特点:
软件危机:需求增长、开发难控、质量难保、难以维护、成本提高、生产率低。
软件工程的概念:应用于计算机软件的定义、开发和维护的一阵套方法、工具、文档、实践标准和工序。
软件工程的目的:提高软件生产率、提高软件质量、降低软件成本。
软件工程的核心思想:把软件当作一个工程产品来处理。
软件工程包括三个要素:方法、工具、过程。
软件生命周期:将软件产品从提出、实现、使用维护到停止使用退役的过程。
软件工程的3个时期(8个阶段):软件定义、软件开发、软件维护。
软件定义:问题定义和可行性研究、需求分析;
需求分析:确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。其目的是需求获取、需求分析、编写需求规格说明书、续修评审,最终产生需求规格说明书。需求规格说明书的3个作用如下:
软件开发:概要设计、详细设计、实现、测试
软件维护:使用、维护
需求分析的内容:深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节。
需求分析方法:结构化需求分析方法、面向对象的分析方法。
结构化需求分析方法:使用数据流图(DFD)、数据字典(DD)、判定表和判定树等工具,来建立系统的逻辑模型。
需求分析工具:数据流图(DFD)、数据字典(DD)、判定表、判定树
数据流图(DFD)的图形元素
举例:银行取款业务数据流图
结构化设计方法的概念:给出一组帮助设计人员在模块层次上区分设计质量的原理和技术。
软件设计按工程管理角度划分:概要设计、详细设计
软件设计按技术观点划分:结构设计、数据设计、接口设计、过程设计。
抽象:在软件设计中,可以定出多个抽象级别,抽象层次从概要设计到详细设计逐步降低。
模块化:把一个待开发的软件分解成若干小的简单的部分,自顶向下逐层把软件划分成若干模块。
信息屏蔽:一个模块内的信息,对于不需要这些信息的其他模块来说不能访问。
模块独立性:每个模块只能完成独立的子功能,并且与其他模块的联系少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。内聚性和耦合性为两个定性的度量标准。
概要设计的任务:软件系统结构设计、数据结构及数据库设计、编写概要设计文档、概要设计文档评审。
概要设计的工具:结构图(SC)【或称系统结构图】
结构图(SC)的基本图符:
结构图(SC)的基本形式:
详细设计的任务:确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。
详细设计的常用工具:
程序流程图的基本图符
利用测试工具按照测试方案和流程对产品进行功能和功能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
从软件内部结构和具体实现的角度划分:白盒测试和黑盒测试
从执行程序的角度划分:静态测试和动态测试
从软件开发的过程按阶段划分:单元测试、集成测试、确认测试、系统测试。
静态测试:不实际运行软件,通过人发挥思维优势发现程序的错误。有代码检查、静态结构分析、代码质量度量。
动态测试:基于计算机的测试,是为了发现错误而执行程序的过程。
白盒测试:把测试对象看作一个打开的盒子,利用程序内部的逻辑结构,对程序所有逻辑路径进行测试。有逻辑覆盖测试、基本路径测试。
黑盒测试:完全不考虑程序内部的逻辑结构,只检查程序是否能接收输入数据而产生正确的输出信息。有等价类划分法、边界值分析法、错误推测法。
单元测试:对软件设计的最小单位——模块进行测试,目的是发现各模块内部的错误。
集成测试:把模块设计要求组装起来的同时进行测试,目的是发现与接口有关的错误。
确认测试:验证软件的功能和性能是否满足各种需求,以及软件配置是否完全正确。
系统测试:将软件作为一个元素,与计算机系统其他元素组合在一起,进行集成测试。
将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程称为程序调试。
步骤:
软件调试方法:强行排除法、回溯法、原因排除法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。