谁能给我解释一下什么是软件框架?为什么我们需要一个框架?框架做了什么来简化编程?

内聚和耦合之间的区别是什么?耦合和内聚如何导致软件设计的好坏?举些什么例子来概括这两者之间的区别,以及它们对整体代码质量的影响?