将软件体系结构自顶向下,对过程细节和数据细节逐层细化,直到用编程语言的语句能够实现为止。
逐步求精是人类解决复杂问题时采用的基本技术,也是许多软件工程技术(例如,规格说明技术,设计和实现技术、测试和集成技术)的基础。可以把逐步求精定义为:“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。”求精实际上是细化过程。我们从在高抽象级别定义的功能陈述(或信息描述)开始。也就是说,该陈述仅仅概念性地描述了功能或信息,但是并没有提供功能的内部工作情况或信息的内部结构。求精要求设计者细化原始陈述,随着每个后续求精(细化)步骤的完成而提供越来越多的细节。
(1)系统容易开发:采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。
(2)系统可靠性高:模块化使软件容易测试和调试,因而有助于提高软件的可靠性。
(3)系统容易维护:因为程序错误通常局限在有关的模块及它们之间的接口中,所以因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。
(4)模块化也有助于软件开发工程的组织管理。一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。
结构化方法=结构化分析+结构化设计+结构化程序设计
1、结构化分析(SA)认为系统模型是由一系列数据流程图(DFD)组成的。这些数据流程图只显示了数据、数据的存贮以及进行数据变化的过程。由于数据流程图描述了过程之间的数据流,因此,结构化分析也称之为数据流方法(Data Flow Approach)。另一方面,许多专家都认为DFD是一种过程模型(Process Model),因此,结构化分析实际上是一种面向过程的方法。
2、结构化设计(SD)是对于一个清楚陈述的问题(well-stated problem),选择和组织模块和模块接口,从而求得所述问题的“最优”解(Edward Yourdon)。也就是说,结构化设计是运用一组标准的准则和工具帮助系统设计员确定软件系统是由哪些模块组成的,这些模块用什么方法联结在一起,才能构成一个最优的软件系统结构。结构化设计更强调软件总体结构的设计,是一种自顶向下的设计策略。