- 1
- 0
- 约1.36万字
- 约 125页
- 2022-06-06 发布于四川
- 举报
软件危机 所谓软件危机是指在计算机软件开发和维护过程中所遇到的一系列严重问题,包括: 软件需求的增长得不到满足 软件开发成本和进度无法控制 软件质量难以保证 软件不可维护或可维护性低 软件成本不断提高 软件开发生产率的提高赶不上硬件的发展和应用需求的增长。 软件工程 为了消除软件危机,提出了软件工程学。软件工程是应用于计算机软件定义、开发和维护的一整套方法、工具、文档、实践标准和工序。 软件工程的三要素 方法 工具 过程 软件工程过程 软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。它包括两方面含义: 1. 软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列工程活动。通常包括四种基本活动: P(Plan):软件规格说明 D(Do):软件开发 C(Check):软件确认 A(Action):软件演进 2.从软件开发的观点看,软件工程过程是使用适当的资源,为开发软件进行的一组开发活动,在活动结束时将输入(用户需求)转化为输出(软件产品)。 软件生命周期 软件从提出、实现、使用、维护到停止使用的过程称为软件的生命周期。一般包括以下几个阶段: 可行性研究与计划制定 需求分析 软件设计 软件实现 软件测试 运行和维护 软件工程目标与原则 软件工程的目标是在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的软件产品。 为达到上述目标,在软件开发的过程中,必须遵循软件工程的基本原则: 抽象 信息隐蔽 模块化 局部化 确定性 一致性 完备性 可验证性 软件开发工具与软件开发环境 软件开发工具对过程和方法提供自动或半自动的支持。当这些工具被集成起来使得一个工具产生的信息可以被另外一个工具使用时,一个支持软件开发的系统就建立起来了,称为计算机辅助软件工程(CASE)。CASE集成了软件、硬件和一个软件工程数据库(包含了有关分析、设计、程序构造和测试的重要信息)从而创建了一个软件开发环境。 结构化分析方法 结构化分析方法大多使用自顶向下、逐层分解的系统分析方法来定义系统需求。在结构化分析的基础上,完成系统的规格说明,建立系统的一个自顶向下的任务分析模型。结构化分析方法是一种建模技术,模型的核心是数据辞典,它描述了所有在目标系统中使用和生成的数据对象。结构化分析常用的工具: 数据流图(DFD):描述数据在系统中如何被传送或变换以及描述如何对数据流进行变换的功能,用于功能建模。 数据字典 判定树 判定表 数据流图 数据流图是描述数据处理过程的工具,它从数据传递和加工的角度,来刻画数据流从输入系统到从系统输入的移动变换过程。 数据流图的基本元素 外部实体 数据流 处理(加工) 数据存储 数据字典 数据字典是关于数据的信息的集合,对数据流图中的各个元素进行完整的定义和说明。数据流图和数据字典共同构成系统的逻辑模型。 数据字典通常包含的信息有:名称、别名、何处使用、如何使用、内容描述以及补充信息等。 软件需求 软件需求包括:功能需求、性能需求、环境需求、可靠性需求、安全保密需求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。 需求分析应交付的主要文档是软件需求规格说明书(SRS)。 结构化设计 结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程:它决定用哪些方法把哪些部分联系起来,才能解决好某个具体的有清楚定义的问题。从工程管理的角度看,软件设计分两步完成: 1.概要设计,即总体设计。将软件需求转化为数据结构和软件的系统结构。常用的软件结构设计工具是结构图(Structure Chart)。 2.详细设计:即过程设计。通过对结构表示进行细化,得到软件详细的数据结构和算法。过程设计常用的工具有:程序流程图、N-S图、PAD图、过程设计语言PDL(伪码)。 软件测试 定义: 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 软件测试是为了发现错误而执行程序的过程。 一个好的测试用例是指可能找到迄今为止尚未发现的错误的用例。 一个成功的测试是发现了至今尚未发现的错误的测试。 测试不能表明软件中不存在错误,它只能说明软件中存在错误。 测试技术与方法综述 从是否需要执行被测试软件的角度,可将测试分为静态测试和动态测试。 静态测试主要包括代码检查、静态结构分析、代码质量度量等。 动态测试是基于计算机的测试,是为了发现错误而执行程序的过程,或者说,是根据软件开发的各个阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。
原创力文档

文档评论(0)