📜  结构化分析和面向对象分析的区别(1)

📅  最后修改于: 2023-12-03 14:56:52.045000             🧑  作者: Mango

结构化分析和面向对象分析的区别

简介

结构化分析和面向对象分析是软件工程领域中非常重要的两种分析方法。虽然它们都是为了理解和设计软件系统,但是它们的思想和方法却有着本质的不同。

结构化分析

结构化分析是由IBM公司的Tom DeMarco和Edward Yourdon于1978年发明的一种软件系统分析方法。它主要是通过分解和组合系统的不同功能来理解系统的行为和结构。

结构化分析通常使用DFD(数据流图)和ERD(实体关系图)这两种图形工具来展示系统的结构和行为。DFD用于描述程序中不同功能之间的数据传输,而ERD则用于描述系统中的实体及它们之间的关系。

结构化分析注重输入和输出,通过对输入和输出数据的分析来理解系统的行为和结构。它强调模块化和层次结构,并提倡自顶向下的设计方法。但是结构化分析也存在一些问题,例如它难以处理复杂的关系、难以描述对象的属性和方法等等。

面向对象分析

面向对象分析是在20世纪80年代发明的一种软件系统分析方法。它主要是通过描述系统中的各个对象之间的关系来理解系统的结构和行为。

在面向对象分析中,一个系统被分解为若干个对象,每个对象都拥有自己的属性和方法。对象之间通过消息传递来进行通信,这也是面向对象分析的核心思想之一。

面向对象分析通常使用UML(统一建模语言)这种图形工具来描述系统的结构和行为。UML包括类图、对象图、时序图、活动图等多种图形工具,可以用于表示软件系统的所有方面。

面向对象分析注重对象和消息,通过对对象和消息之间的分析来理解系统的结构和行为。它强调继承和多态,并提倡迭代式的设计方法。面向对象分析解决了结构化分析难以处理复杂关系和难以描述对象属性和方法的问题,但是它也存在一些问题,例如对初学者而言较难掌握等。

区别
  1. 关注点不同:结构化分析注重系统功能和输入输出数据的流向,而面向对象分析注重系统的对象、属性、方法及它们之间的关系。
  2. 描述方法不同:结构化分析主要使用DFD和ERD来描述系统,而面向对象分析主要使用UML来描述系统。
  3. 设计方法不同:结构化分析主张自顶向下的设计方法,而面向对象分析主张迭代式的设计方法。
总结

结构化分析和面向对象分析是两种不同的软件系统分析方法。它们各自有其适合的场景和优点,开发者应根据具体情况选择合适的分析方法来理解和设计系统。