Я думаю, что это неформальные термины, а определения субъективны. Я бы использовал «shape» для обозначения того, как объект вписывается в другие объекты в системе. (Сравните «площадь поверхности», которая является грубой (без каламбура :-) мера сложности интерфейса объекта.) Я бы использовал «структуру», чтобы указать, как объект спроектирован и реализован внутри.
Следовательно, у вас могут быть классы, которые имеют хорошую «форму», но такую структуру, как крепированная бумага. Это, вероятно, легче реорганизовать, чем наоборот: плохая форма, но хорошая реализация. (Я уверен, что некоторые люди зададутся вопросом, возможно ли последнее.)