3.1软件工程概述 3.1.1软件的组成与软件特点 1、软件的组成 软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文 档的完整集合。程序是对计算机的处理对象和处理规则的描述,是软件开发入员根据用户需 求开发的、用程序语言描述的、适合计算机执行的指令序列。数据是使程序能正常操作信息 的数据结构。文档是为了便于了解程序所需的资源说明,是与程序的开发、维护和使用有关 的资料。由此可见,软件由两部分组成 (1)机器可执行的程序和数据: (2)与软件开发、运行、维护及使用等有关的文档。 2、软件的特点 国标(GB)中对软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则, 以及可能有的文件、文档及数据 软件具有如下特点: ()软件是逻辑产品,而不是物理实体,它具有无形性,通过计算机的执行才能体现 它的功能和作用: (2)没有明显的制作过程,其成本主要体现在软件的开发和研制上,可进行大量的复 制: (③)不存在磨损和消耗问题 (4)软件的开发、运行对计算机系统具有依赖性: (⑤)开发和维护成本高: (6)软件开发涉及诸多社会因素。 3、软件的分类 结合 观 ,软件可分应用软件、系统软件和支撑软件3类。 ()应用软件是特定应用领域内专用的软件: (②)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计 算机使用效率并为计算机用户提供各种服务的软件: (3)支撑软件介于系统软件和应用软件之何,是支援其他软件的开发与维护的软件。 4、软件的 软件是用户与硬件之间的接口,是计算机系统的指挥者,是计算机系统结构设计的 重要依据 3.1.2软件危机与软件工程 1、软件产生和发展 软件生产的发展经历了程序设计时代、程序系统时代和软件工程时代。 (1)程序设计时代 从第一台计算机上的第一个程序的出现到实用的高级程序设计语言出现以前(194 年-1956年)。程序设计时代的生产方式是个体手工芳动,使用的工具是机器语言、汇编语言, 主要通过编程来实现,不重视程序设计方法
36 3.1 软件工程概述 3.1.1 软件的组成与软件特点 1、软件的组成 软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文 档的完整集合。程序是对计算机的处理对象和处理规则的描述,是软件开发入员根据用户需 求开发的、用程序语言描述的、适合计算机执行的指令序列。数据是使程序能正常操作信息 的数据结构。文档是为了便于了解程序所需的资源说明,是与程序的开发、维护和使用有关 的资料。由此可见,软件由两部分组成: (1)机器可执行的程序和数据; (2)与软件开发、运行、维护及使用等有关的文档。 2、软件的特点 国标(GB)中对软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则, 以及可能有的文件、文档及数据。 软件具有如下特点: (1)软件是逻辑产品,而不是物理实体,它具有无形性,通过计算机的执行才能体现 它的功能和作用; (2)没有明显的制作过程,其成本主要体现在软件的开发和研制上,可进行大量的复 制; (3)不存在磨损和消耗问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)开发和维护成本高; (6)软件开发涉及诸多社会因素。 3、软件的分类 结合应用观点,软件可分应用软件、系统软件和支撑软件 3 类。 (1)应用软件是特定应用领域内专用的软件; (2)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计 算机使用效率并为计算机用户提供各种服务的软件; (3)支撑软件介于系统软件和应用软件之间,是支援其他软件的开发与维护的软件。 4、软件的作用 软件是用户与硬件之间的接口,是计算机系统的指挥者,是计算机系统结构设计的 重要依据。 3.1.2 软件危机与软件工程 1、软件产生和发展 软件生产的发展经历了程序设计时代、程序系统时代和软件工程时代。 (1)程序设计时代 从第一台计算机上的第一个程序的出现到实用的高级程序设计语言出现以前(1945 年-1956 年)。程序设计时代的生产方式是个体手工劳动,使用的工具是机器语言、汇编语言, 主要通过编程来实现,不重视程序设计方法
(2)程序系结时代 从实用的高级程序设计语言出现以后到软件工程出现以前(1956年-1968年)。程序 系统时代的生产方式是作坊式小集团生产, 生产工具是高级语 开始提出结构化方法, 开发技术还没有根本性突破,开发人员素质和开发技术不适应规模大、结构复杂的软件开发, 导致了软件危机的产生。 (3)软件工得时代 软件工程出现以后至今1968年.至今)软件L程时代的生立方式是工程化生产,使 用数据库、开发工具、开发环境、网络等先进的开发技术和方法,使生产效率大大提高,但 未能完全摆脱软件危机 2、软件危机 在软件发展第二阶段末期,随着第二代计算机的诞生而产生的。第三代计算机(集 成电路计算机)与第二代计算机相比,性能大大提高。随若计算机软件规模的扩大,软件本 从而出现了入们难 软件危机主要 表现在: (1)软件需求的增长得不到满足: (2)软件开发成本和进度无法控制 (⑤)软件成本不断提高: (6)软件开发生产效率的提高赶不上硬件的发展和应用需求的增长。 总之,可以将软件危机归结为成本、质量和生产率等问题。 3、软件工程的产生 为了摆脱软件危机,北大西洋公约组织成员国软件一工作者于1968年和1969年两 次召开会议NTO会议),认识早期软件开发中所存在的问题和产生问题的原因,提出软件 工程的概念。 国标(GB)中指出软件工程是应用于计算机软件的定义、开发和维护的一整套方法 工具、文档、实践标准和工序 软件工程句括3个要素,即方法、工且和过程。方法是完成软件工程项目的技术手 段:工具支持软件的开发、管理、文档生成:过程支持软件开发的各个环节的控制 管理 自软件工程概念的提出,该研究领域吸引了众多的学者,并开展了大量的理论和技 术的研究,形成了“软件工程学"“这一计算机科学中的分支。它所包含的内容可概括为以下两 占, )软件开发技术:主要有软件开发方法学、软件工具、软件工程环境: (2)软件工程管理:主要有软件管理、软件工程经济学。 3.1.3软件工程过程 1SO9000定义:软件工程过程是把输入转化为输出的一组彼此相关的资源和活动, 软件工程过程包含4种基本活动: ()软件规格说明P(Plan)):规定软件的功能及其运行机制: (2)软件开发DD0):产生满足规格说明的软件: (3)软件确认C(Check):确认软件能够满足客户提出的要求 (4)软件演进A(Action:)为满足客户的变更要求,软件必须在使用的过程中演进。 3>
37 (2)程序系统时代 从实用的高级程序设计语言出现以后到软件工程出现以前(1956 年-1968 年)。程序 系统时代的生产方式是作坊式小集团生产,生产工具是高级语言,开始提出结构化方法,但 开发技术还没有根本性突破,开发人员素质和开发技术不适应规模大、结构复杂的软件开发, 导致了软件危机的产生。 (3)软件工程时代 软件工程出现以后至今(1968 年-至今)软件 L 程时代的生产方式是工程化生产,使 用数据库、开发工具、开发环境、网络等先进的开发技术和方法,使生产效率大大提高,但 未能完全摆脱软件危机。 2、软件危机 在软件发展第二阶段末期,随着第二代计算机的诞生而产生的。第三代计算机(集 成电路计算机)与第二代计算机相比,性能大大提高。随着计算机软件规模的扩大,软件本 身的复杂性不断增加,研制周期显著变长,正确性难以保证,软件开发费用上涨,生产效率 急剧下降,从而出现了入们难以控制软件发展的局面,即所谓的“软件危机”。软件危机主要 表现在: (1)软件需求的增长得不到满足; (2)软件开发成本和进度无法控制; (3)软件质量难以保证; (4)软件不可维护或维护程度非常低; (5)软件成本不断提高; (6)软件开发生产效率的提高赶不上硬件的发展和应用需求的增长。 总之,可以将软件危机归结为成本、质量和生产率等问题。 3、软件工程的产生 为了摆脱软件危机,北大西洋公约组织成员国软件一工作者于 1968 年和 1969 年两 次召开会议(NATO 会议),认识早期软件开发中所存在的问题和产生问题的原因,提出软件 工程的概念。 国标(GB)中指出软件工程是应用于计算机软件的定义、开发和维护的一整套方法、 工具、文档、实践标准和工序。 软件工程包括 3 个要素,即方法、工具和过程。方法是完成软件工程项目的技术手 段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。 自软件工程概念的提出,该研究领域吸引了众多的学者,并开展了大量的理论和技 术的研究,形成了“软件工程学”这一计算机科学中的分支。它所包含的内容可概括为以下两 点: (l)软件开发技术:主要有软件开发方法学、软件工具、软件工程环境; (2)软件工程管理:主要有软件管理、软件工程经济学。 3.1.3 软件工程过程 ISO9000 定义:软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。 软件工程过程包含 4 种基本活动: (l)软件规格说明 P(Plan):规定软件的功能及其运行机制; (2)软件开发 D(Do):产生满足规格说明的软件; (3)软件确认 C(Check):确认软件能够满足客户提出的要求; (4)软件演进 A(Action):为满足客户的变更要求,软件必须在使用的过程中演进
3.1.4软件生命周期 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期】 在国家标准“计算机软件开发规范”中,把软件生命周期划分为8个阶段,即可行性研究 与计划、需求分析、概要设计、详细设计、实现、综合测试、确认测试、使用与维护,对每 个阶段,都明确规定了该阶段的任务、实施方法、实施步骤和完成标志,其中特别规定了每 个阶段需要产生的文档。 当前出现的软件生命周期模型有:瀑布模型、快速原型模型、操作模型、组装可再用部 件模型 螺旋式模型以及基于知识的模型 瀑布模型将软件生命周期的各项活动规定为依次连续的若干阶段,形如澡布。瀑布 模型在支持结构化软件开发、控制软件开发的复杂性、促进软件开发工程化等方面起着显著 作用。 瀑布横型在大量软件开发实践中也逐渐暴霞出它的缺点、其中最为突出的缺点是该 模型缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求,而这些问恩可能导致开 发出的软件并不是用户真正需要的软件,反而要进行返工或不得不在维护中纠正需求的候 差,为此必须付出高额的代价,为软件开发带来不必要的损失。 原型模型是软件开发人员针对软件开发初期在确定软件系统需求方面存在的困难, 借鉴建筑师在设计和建造原型方面的经验,根据客户提出的软件要求,快速地开发一个原型 它向客户展示了待开发软件系统的全部或部分功能和性能,在征求客户对原型意见的过程 中,进一步修改、完善、确认软件系统的需求并达到一致的理解, 3.1.5软件工程的目标与原则 1、软件工程的目标 软件工程的目标是,在给定成本、进度的前提下,开发出具有有效性、可靠性、可 理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性巨满足用户需 求的产品 软件工程研究的内容主要包括:软件开发技术和软件工程管理。 ()软件开发技术。软件开发技术包括:软件开发方法学、开发过程、开发工具和 软件工程环境,其主体内容是软件开发方法学。 软件开发方法学是从不同的软件类型,按不同的观点和原则,对软件开发中应遵循 的管路、原则、步摩和必须产生的文档瓷料做出规定,从而使软件的开发能够规范化和工程 化,以克服早期的手工方式生产中的随意性和非规范性 现代软件工程方法得以实施 重要的保证是软件开发工具和环境。软件开发环境是 方法与工具的结合以及配套的软件的有机组合。 (2)软件工程管理软件工程管理包括软件管理学、软件工程经济学、软件心理学等 内容。软件工程管理是软件按工程化生产时的重要环节,它要求按照预先制定的计划、讲度 和预算执行,以实现预期的经济效益和社会效益。工程管理包括人员组织、进度安排、质量 保证和成本核算 软件 程经 学是研究 软件 发中对成本的估复 析的方 和技术。它应用经济学的基本原理来研究软件L程开发中的经济效益问题:软件心理学从 个体心理、入类行为、组织行为和企业文化等角度来研究软件管理和软件工程的。 2、软件工程的原则 软件工程原则包括抽象、信总隐蔽、模块化、局部化、确定性、一致性、完备性和
38 3.1.4 软件生命周期 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。 在国家标准“计算机软件开发规范”中,把软件生命周期划分为 8 个阶段,即可行性研究 与计划、需求分析、概要设计、详细设计、实现、综合测试、确认测试、使用与维护,对每 个阶段,都明确规定了该阶段的任务、实施方法、实施步骤和完成标志,其中特别规定了每 个阶段需要产生的文档。 当前出现的软件生命周期模型有:瀑布模型、快速原型模型、操作模型、组装可再用部 件模型、螺旋式模型以及基于知识的模型。 瀑布模型将软件生命周期的各项活动规定为依次连续的若干阶段,形如瀑布。瀑布 模型在支持结构化软件开发、控制软件开发的复杂性、促进软件开发工程化等方面起着显著 作用。 瀑布模型在大量软件开发实践中也逐渐暴露出它的缺点、其中最为突出的缺点是该 模型缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求,而这些问题可能导致开 发出的软件并不是用户真正需要的软件,反而要进行返工或不得不在维护中纠正需求的偏 差,为此必须付出高额的代价,为软件开发带来不必要的损失。 原型模型是软件开发人员针对软件开发初期在确定软件系统需求方面存在的困难, 借鉴建筑师在设计和建造原型方面的经验,根据客户提出的软件要求,快速地开发一个原型, 它向客户展示了待开发软件系统的全部或部分功能和性能,在征求客户对原型意见的过程 中,进一步修改、完善、确认软件系统的需求并达到一致的理解。 3.1.5 软件工程的目标与原则 1、软件工程的目标 软件工程的目标是,在给定成本、进度的前提下,开发出具有有效性、可靠性、可 理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性巨满足用户需 求的产品。 软件工程研究的内容主要包括:软件开发技术和软件工程管理。 (1)软件开发技术。软件开发技术包括:软件开发方法学、开发过程、开发工具和 软件工程环境,其主体内容是软件开发方法学。 软件开发方法学是从不同的软件类型,按不同的观点和原则,对软件开发中应遵循 的策略、原则、步骤和必须产生的文档资料做出规定,从而使软件的开发能够规范化和工程 化,以克服早期的手工方式生产中的随意性和非规范性 现代软件工程方法得以实施,重要的保证是软件开发工具和环境。软件开发环境是 方法与工具的结合以及配套的软件的有机组合。 (2)软件工程管理软件工程管理包括软件管理学、软件工程经济学、软件心理学等 内容。软件工程管理是软件按工程化生产时的重要环节,它要求按照预先制定的计划、进度 和预算执行,以实现预期的经济效益和社会效益。工程管理包括人员组织、进度安排、质量 保证和成本核算等;软件工程经济学是研究软件开发中对成本的估算、成本效益分析的方法 和技术。它应用经济学的基本原理来研究软件 L 程开发中的经济效益问题;软件心理学从 个体心理、入类行为、组织行为和企业文化等角度来研究软件管理和软件工程的。 2、软件工程的原则 软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和
可验证性。 ()抽象。抽象事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自 顶向下,逐层细化的办法控制软件开发过程的复杂性 (2)信息隐蔽。采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量 简单 (3)模块化。模块是程序中相对独立的成分,一个独立的编程单位,应有良好的接 口定义。模块的大小要适中,模块过大会使模块内部的复杂性增加,不利于模块的理解和修 也不利于模块的调试和重用:模块太小会导致整个系统表示过于复杂,不利于控制系统 的复杂性 (4)局部化。要求在一个物理模块内集中逻辑上相互关联的计算资源,保证模块间 具有松散的耦合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。 (⑤)确定性。软件开发过程中所有概念的表达应是确定的、无歧义的且规范的这有 助于入与入的交互,不会产生误解和遗漏,以保证整个开发工作的协调一致 (6 致性包括程序、 数据和文档的 个软件系统的各模块应使用已知的概念、符 号和术语:程序内外部接口应保持一致,系统规格说明与系统行为应保持一致。 (⑦)完备性。软件系统不丢失任何重要成分,完全实现系统所需的功能: (8)可验证性。开发大型软件系统需要对系统自顶向下,逐层分解。系统分解应遵 循容易检查、测评、评审的原则,以确保系统的正确性。 3.1.6软件开发工具与软件开发环境 1.软件开发工具 是协助开发入员进行软件开发活动所使用的软件或环境,它包括需求分析工具、设计工 具、编码工具、排错工具、测试工具等。 2.软件开发环境 是指支持软件产品开发的软件系统,它由软件工具集和环培生成机制构成。工具集包相 支持软件开发相关过程、活动、 成机制为工具 成和界面集成3个部分。 3.2结构化分析方法 软件开发方法是软件开发过程所遵循的方法和步聚,其目的在于有效地得到一些工作产 品,即程序和文档,并且满足质量要求。软件开发方法包括分析方法、设计方法和程序设计 方法 3.2.1需求分析与需求分析方法 1、需求分析 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 需求分析的任务是发现需求、求精、建模和定义需求的过程。需求分析将创建所需的数据模 30
39 可验证性。 (1)抽象。抽象事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自 顶向下,逐层细化的办法控制软件开发过程的复杂性。 (2)信息隐蔽。采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量 简单 (3)模块化。模块是程序中相对独立的成分,一个独立的编程单位,应有良好的接 口定义。模块的大小要适中,模块过大会使模块内部的复杂性增加,不利于模块的理解和修 改,也不利于模块的调试和重用;模块太小会导致整个系统表示过于复杂,不利于控制系统 的复杂性。 (4)局部化。要求在一个物理模块内集中逻辑上相互关联的计算资源,保证模块间 具有松散的耦合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。 (5)确定性。软件开发过程中所有概念的表达应是确定的、无歧义的且规范的这有 助于入与入的交互,不会产生误解和遗漏,以保证整个开发工作的协调一致。 (6)一致性包括程序、数据和文档的整个软件系统的各模块应使用已知的概念、符 号和术语;程序内外部接口应保持一致,系统规格说明与系统行为应保持一致。 (7)完备性。软件系统不丢失任何重要成分,完全实现系统所需的功能: (8)可验证性。开发大型软件系统需要对系统自顶向下,逐层分解。系统分解应遵 循容易检查、测评、评审的原则,以确保系统的正确性。 3.1.6 软件开发工具与软件开发环境 1.软件开发工具 是协助开发入员进行软件开发活动所使用的软件或环境,它包括需求分析工具、设计工 具、编码工具、排错工具、测试工具等。 2.软件开发环境 是指支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成。工具集包括 支持软件开发相关过程、活动、任务的软件工具,以便对软件开发提供全面的支持。环境集 成机制为工具集成和软件开发、维护与管理提供统一的支持,它通常包括数据集成、控制集 成和界面集成 3 个部分。 3.2 结构化分析方法 软件开发方法是软件开发过程所遵循的方法和步骤,其目的在于有效地得到一些工作产 品,即程序和文档,并且满足质量要求。软件开发方法包括分析方法、设计方法和程序设计 方法。 3.2.1 需求分析与需求分析方法 1、需求分析 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 需求分析的任务是发现需求、求精、建模和定义需求的过程。需求分析将创建所需的数据模
型、功能模型和控制模型。 (1)需求分析的定义 A、用户解决问题或达到目标所需的条件或权能 B、系统或系统部件要满足合同、标淮、规范或其他正式规定文档所需具有的条件 或权能: C、一种所映A、或B所描述的条件或权能的文档说明。 由需求分析定义可知,需求分析的内容包括:提炼、分析和仔细审查已收集到的需 求:确保所有利益相关者都明白其含义并找出其中的错误 、遗漏或其他不足的地方:从用 最初的非形式化需求到满足用户对软件产品的要求的映射:对用户意图不断进行提示和判 断。 (2)需求分析阶段的工作 需求分析阶段的工作,可以概括为四个方面: A、需求获取需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任 务是建立获取用户需求的方法框架 并支持和监控需求获取的过程 B、需求分析对获取的需求进行分析和综合,最终给出系统的解决方案和目标系 统的逻辑模型。 C、综写需求规格说明书需求规格说明书作为需求分析的阶段成果,可以为用户 分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认又可以作为控 制软件开发进程的依据。 D、需求词 在需求分析的最后一步,对需求分析阶段的工作进行得审,验证需 求文档的一致性、可行性、完整性和有效性。 2、需求分析方法 常见的需求分析方法有 (们)结构化分析方法】 主要包括: 面向数据流的结构化分析方法(SA一,)面向数据结构的 Jackson方法(JSD一Jackson system development method),面向数据结构的结构化数据系统 开发方法(DSSD-Data structured system development method)。 (2)面向对象的分析方法(OOA-一Object-Oriented method)。 从需求分析建立的模型的特性来分,需求分析方法又分为表态分析方法和动态分 析方法。 3.2.2结构化分析方法 1、关于结构化分析方法 结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。 对于面向数据流的结构化分析方法,按照DeMarco的定义,“结构化分析就是使用数据 流图(DD)、数据字典(DD)、结构化英语、判定表和羊定树等工具,来建立一种新的、称 为结构化规格说明的目标文档。” 结构化分析方法的实质是着眼于数据流自项向下,逐层分解,建立系统的处理流程,以 数据流图和数据字典为主要工具建立系统的逻辑模型。 结构化分析的步骤如下: A、通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型:
40 型、功能模型和控制模型。 (1)需求分析的定义 A、用户解决问题或达到目标所需的条件或权能; B、系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件 或权能; C、一种所映 A、或 B 所描述的条件或权能的文档说明。 由需求分析定义可知,需求分析的内容包括:提炼、分析和仔细审查已收集到的需 求;确保所有利益相关者都明白其含义并找出其中的错误、遗漏或其他不足的地方;从用户 最初的非形式化需求到满足用户对软件产品的要求的映射;对用户意图不断进行提示和判 断。 (2)需求分析阶段的工作 需求分析阶段的工作,可以概括为四个方面: A、需求获取 需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任 务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。 B、需求分析 对获取的需求进行分析和综合,最终给出系统的解决方案和目标系 统的逻辑模型。 C、编写需求规格说明书 需求规格说明书作为需求分析的阶段成果,可以为用户、 分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认又可以作为控 制软件开发进程的依据。 D、需求评审 在需求分析的最后一步,对需求分析阶段的工作进行得审,验证需 求文档的一致性、可行性、完整性和有效性。 2、 需求分析方法 常见的需求分析方法有: (1) 结构化分析方法。 主要包括:面向数据流的结构化分析方法(SA—Structured analysis),面向数据结构的 Jackson 方法(JSD—Jackson system development method),面向数据结构的结构化数据系统 开发方法(DSSD—Data structured system development method)。 (2)面向对象的分析方法(OOA—Object-Oriented method)。 从需求分析建立的模型的特性来分,需求分析方法又分为表态分析方法和动态分 析方法。 3.2.2 结构化分析方法 1、关于结构化分析方法 结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。 对于面向数据流的结构化分析方法,按照 DeMarco 的定义,“结构化分析就是使用数据 流图(DFD)、数据字典(DD)、结构化英语、判定表和羊定树等工具,来建立一种新的、称 为结构化规格说明的目标文档。” 结构化分析方法的实质是着眼于数据流自顶向下,逐层分解,建立系统的处理流程,以 数据流图和数据字典为主要工具建立系统的逻辑模型。 结构化分析的步骤如下: A、通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型; B、去掉具体模型中非本质因素,抽象出当前系统的逻辑模型; C、根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型; D、完善目标系统并补充细节,写出目标系统的软件需求规格说明;