比较面向对象方法与结构化方法的特点
解:分析是问题抽象 (做什么),设计是问题求解 (怎么做),实现是问题的解 (结 果)。任 何方法学对客观世界的抽象和求解过程都是如此。 在问题抽象阶段, 结构化方法面 向过程, 按照数据变换的过程寻找问题的结点,对问题进行分解。因此,与面向对象方法 强调的对象 模型不同,描述数据变换的功能模型是结构化方法的重点。如果问题世界的功 能比数据更复 杂或者更重要,那么结构化方法仍然应是首选的方法学。如果数据结构复杂且变换不多, 那么如果以过程主导分析和设计,一旦有系统变更就会给下游开发带来极大 混乱。
由于对过程的理解不同, 面向过程的功能细分所分割出的功能模块有时会因人而异。 而 面向 对象的对象细分,从同一问题领域的对象出发,不同人得出相同结论的比率较高。
在设计上, 结构化方法学产生自顶向下、 结构清晰的系统结构。 每个模块有可能保持较 强的独立性,但它往往与数据库结构相独立,功能模块与数据库逻辑模式间没有映射关系, 程序与数据结构很难封装在一起。 如果数据结构复杂, 则模块独立性很难保证。 面向对象方 法抽象的系统结构往往并不比结构化方法产生的系统结构简单,但它能映射到数据库结构 中,很容易实现程序与数据结构的封装。
在软件工程 基本原则中有一条 “形式化原则 ” ,即对问题世界的抽象结论应该以形式化语
言 (图形语言、伪码语言等)表述出来。结构化方法可以用数据流图、系统结构图、数据 辞典、 状态转移图、 实体关系图来进行系统逻辑模型的描述; 而面向对象方法可以使用对象 模型图、数据辞典、 动态模型图、功能模型图。其中对象模型图近似系统结构图与实体关系 图的结合,动态模型图类似状态迁移图,功能模型图类似数据流图。
暂无解析