Назад Оглавление Вперед




4. Достоинства и недостатки объектно-ориентированного подхода

    Необходимо явно разделять две категории объектно-ориентированного подхода: объектно-ориентированное программирование ( т.е. методика составления текстов программ на объектно-ориентированном языке ) и объектно-ориентированный анализ и проектирование ( т.е. создание проектов систем и описание предметной области в терминах объектно-ориентированного подхода - классов, атрибутов, методов ).

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

    Объектно-ориентированный анализ, как средство описания предметной области и объектно-ориентированное проектирование как способ создания высокоуровневых проектов сегодня подвергается критике. Одним из результатов этой критики является создание Универсального Языка Моделирования - UML ( Unified Modeling Language ), который подробно рассматривается в данном пособии. В рамках данного пособия, которое посвящено в основном методам проектирования объектно-ориентированных систем рассматриваются именно достоинства таких систем, т.е. проекты являются уже техническими, они описывают не структуру предметной области, а структуру объектно-ориентированной программы. Опыт авторов данного пособия показывает, что создание крупных проектов ( таких для которых важнейшей задачей является описание предметной области, и для которых невозможно найти человека, понимающего эту предметную область в целом ) требует использования традиционных технологий, т.к. они более понятны большому кругу неспециалистов и они более адекватно рассматривают именно проблемы предметной области.

4.1 Преимущества объектно-ориентированного подхода

    Сокращение числа возможных ошибок. Типичные ошибки при решении различных задач :

    Несогласованные параметры подпрограмм

    Часто может наблюдаться передача в подпрограмму разных параметров, несогласованных друг с другом. Пусть есть подпрограмма, выводящая на экран матрицу А размером N x M. Ее заголовок может быть таким:

procedure ShowMatrix( A : TMatrix; N,M : integer );

при вызове подпрограммы, за счет ошибки программиста, N и M могут не соответствовать реальному размеру матрицы. Эта задача решается за счет инкапсуляции, когда N и M включаются в качестве атрибутов в матрицу.

    Несогласованное изменение атрибутов

    Пусть у матрицы есть поля данных, характеризующих текущий размер матрицы. Если метод вставки элемента не учитывает возможное изменение размера матрицы, то может сложиться такая ситуация, когда содержимое матрицы и поля данных N M не будут соответствовать друг другу.

    Повторное использование. Предполагается какой-либо вариант многократного использования уже существующего проекта или его части в новом проекте. Повторное использование можно разделить на две категории:

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

4.2 Недостатки объектно-ориентированного подхода

    Усложнение методологии. Применение объектно-ориентированного подхода требует введения дополнительных способов представления информации о предметной области и методов ее анализа. Язык UML включает более 100 различных условных обозначений. Для успешного использования подобного механизма требуется наличие определенного уровня квалификации у специалистов. Для небольших проектов более эффективным может оказаться применение классических методов разработки. Разработка проектов, для которых важнейшей задачей является описание предметной области, и для которых невозможно найти человека, понимающего эту предметную область в целом также требует использования традиционных подходов, в виду их большей доступности для неспециалистов.

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

Назад Оглавление Вперед