较为完善面向对象的分析和设计方法出现在八十年代中后期。为了克服早期的方法的不足,这时是人们已经开始考虑使用面向对象方法来开发系统。早期的方法只使用一种系统的视角作为构造块,而没有容纳其他视角。例如结构化分析和设计集中于将功能作为系统的构造块,在数据分析方法中(实体关系模型)构造块是实体,但在该方法中用来满足系统需求的功能被完全忽略掉了。两种方法都没有处理对动态行为的捕获。声明性语义(规则)以及例外处理机制都被完全忽略了。