Экономическая информатика-стр.341

•    абстракция данных, при которой тип данных определяется на основе некоторого внутреннего представления и множества процедур для доступа и обработки данных абстрактного типа;

•    динамическая связка программ, позволяющая отказаться от перекомпиллирования всей программы при внесении изменений некоторых типов в отдельные модули;

•    использование механизма «наследования», который позволяет создавать классы объектов и выделять в них подклассы объектов, обладающих теми или иными конкретными свойствами.

Такое качество позволяет создавать компактные программы при спецификации нового объекта, незначительно отличающегося от уже известного, в которых нет необходимости заново описывать общие части, а достаточно только задать различия.

Жизненный цикл объектно-ориентированной разработки программных систем содержит несколько этапов, но в отличие от структурного подхода в нем нет строгой последовательности их выполнения. Весь процесс носит принципиально итеративный характер. Главная особенность жизненного цикла при объектно ориентированном подходе заключается в том, что он не предполагает жесткой последовательности выполнения отдельных этапов. При разработке может выясниться необходимость проведения дополнительного обследования; программирование и последующее тестирование могут потребовать возврата к проектированию.

Объектно-ориентированный подход обеспечивает быстрое создание прототипов проектируемой системы, постепенное развитие которых приводит к конечному результату. Однако объектно-ориентированный подход также имеет ряд недостатков. Эти недостатки прежде всего лежат в области программирования и заключаются в том, что в условиях динамического связывания объектов, многочисленности методов в классах и их вызовов, а также интенсивного межсегментного обмена, снижение производительности программ может носить критический характер. Частично решение этой проблемы может быть осуществлено за счет использования объектно-ориентированных языков программирования, включающих в себя средства, обеспечивающие более высокую производительность программ по сравнению с традиционными языками, а также за счет использования специальных программистских приемов.