Москва, ул.Образцова, 15. Типография МИИТа 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Москва, ул.Образцова, 15. Типография МИИТа




3. Объектно-ориентированный подход к разработке модели

 

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

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

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

 

3.1. Особенности сложных информационных систем

 

Иерархичность. Описывая характерные черты сложных систем, Г. Буч особое внимание уделяет их иерархическому характеру. Иерархическое построение таких систем облегчает понимание их человеком, возможности которого, связанные с восприятием информации, весьма ограничены. Иерархические структуры позволяют рассматривать только определенный уровень, не вдаваясь в детали реализации. Для сложной системы целесообразно моделировать два типа иерархии — типовую и структурную. Типовая иерархия отражает взаимосвязи "общее-частное", в объектно-ориентированном подходе ей соответствует иерархия классов. Структурная иерархия показывает связи типа "это — часть того". При объектно-ориентированном подходе ей соответствует иерархия объектов.

Групповая разработка. Разработка сложной информационной системы не может быть прерогативой одного человека. Для этой цели формируется группа, в которой каждый выполняет определенные функции. Иерархический характер сложных систем хорошо согласуется с принципом групповой разработки. В этом случае деятельность каждого участника проекта ограничивается соответствующим иерархическим уровнем.

Применяемые инструментальные средства (ИС) должны поддерживать групповую разработку. Для этого современные ИС реализуются в комплексах с архитектурой "клиент-сервер". В них должна быть предусмотрена возможность интеграции результатов работы отдельных участников проекта и защиты их от несанкционированного доступа.

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

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

Использование стандартных СУБД. Современные большие информационные системы используют в работе стандартные СУБД в основном реляционного типа, причем реализация таких систем обычно осуществляется в среде "клиент-сервер". Интеграция прикладной системы с базой данных (БД) ставит перед разработчиками ряд дополнительных задач. Главной из них является обеспечение преемственности, т.е. возможности использования в разрабатываемом приложении данных, накопленных в БД. Кроме того, при разработке приложения в большинстве случаев возникает необходимость проектирования логической структуры новой БД. Для интегрированных систем с клиент-серверной архитектурой используются специальные инструментальные средства.

 

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

 

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

Каждый объект является представителем некоторого класса однотипных объектов. Класс определяет общие свойства для всех его объ-ектов. К таким свойствам относятся:

· состав и структура данных, описывающих атрибуты класса и соответствующих объектов;

· совокупность методов — процедур, определяющих взаимодействие объектов этого класса с внешней средой.

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

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

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

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

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

При таком подходе сложная система описывается наиболее естественным образом.

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

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

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

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

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

 

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

 

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

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

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

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

Для того чтобы повторное использование компонентов приносило свои плоды, разработчики программных систем должны:

· осознавать выгоды такого подхода;

· знать, какие части задачи могут быть решены с применением существующих программных средств;

· заниматься поиском подходящих для повторного использования программ;

· стремиться найти такие программы;

· использовать их даже в том случае, если они лишь частично совпадают с тем, что программист написал бы сам.

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

Естественность описания. Объектно-ориентированный подход позволяет описывать как статические, так и динамические отношения между объектами модели. По описанию предметной области, выполненному на естественном языке, легко выделить объекты и статические связи между ними. Объекты соответствуют существительным, а связи — глаголам и отглагольным формам. Например, фраза "фирмы выполняют заказ" позволяет выделить классы объектов "фирма" и "заказ" и отношение между ними типа M:N, так как фирма может выполнять много заказов, а заказ может быть реализован разными фирмами.

Кроме того, свойства наследования и инкапсуляции предоставляют возможность каждому участнику проекта рассматривать модель с удобным для него уровнем детализации. Руководители проекта могут работать с верхним уровнем модели, где отражаются только основные классы, объекты и связи. Другие разработчики или эксперты имеют возможность работать с более мелкими терминальными объектами, их свойствами, связями, методами.

 

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

 

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

Недостатки самого объектно-ориентированного подхода лежат в области программирования. Рассмотрим основные из них.

Динамическое связывание, предполагающее поиск метода в классе, которому принадлежит получающий сообщение объект, приводит к тому, что обращение к методу занимает в 1,75-2,5 раза больше времени, чем к обычной подпрограмме. Это, конечно, замедляет работу приложения. Однако, как указывает Г. Буч, динамическое связывание при использовании строго типизированных языков применяется примерно в 20% случаев вызовов методов. В результате снижаются непроизводительные потери времени. В приложениях, где такие потери критичны, приходится прибегать к специальным программистским приемам.

Другой недостаток связан с многочисленностью методов и их излишними вызовами. Это объясняется тем, что для доступа ко многим атрибутам объектов (а к защищенным — всегда) используются специальные методы. Вызов метода высокого уровня абстракции приводит к тому, что в системе происходит каскад вызовов — от методов более высоких уровней иерархии к методам более низких уровней. Если время является ограничивающим фактором, такая ситуация может оказаться неприемлемой. Выход здесь видится в том, что после создания начального варианта системы производится его оптимизация для сокращения количества вызовов. Например, защищенные переменные можно сделать общедоступными и обращаться к ним напрямую, уменьшая тем самым число вызовов.

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

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

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


Рецензия

на методические указания к выполнению лабораторных работ

по дисциплине «_________________________»

авторов доцента кафедры ИСЭК МИИТа Морозовой Веры Ивановны

и ассистента кафедра ИСЭК МИИТа Врублевского Константина Эдуардовича

 

Настоящие указания по CASE-средствам разработки информационных систем BPwin и ERwin были выполнены по заявке __________________________ для студентов __-го курсов направления «Экономика» и «Информационные системы в экономике».

С точки зрения последовательности и доходчивости изложения материала, в работе использован принцип постепенного наращивания материала и перехода от простых понятий к более сложным деталям разработки ___________. Особый интерес представляет практический материал по использованию основных возможностей.

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

Следует обратить внимание на то, что при условии выполнения всех пунктов заданий, студенты ________ гарантированно получат необходимые навыки по самостоятельной разработке ____________. Дополнительным эффектом от использования рассматриваемых методических указаний является гарантированное приобретение навыков по самостоятельному поиску и изучению программных средств достаточной степени сложности.

Представленные методические указания к выполнению лабораторных работ по дисциплине «_______________» соответствуют стандартам и могут быть рекомендованы для практического использования студентами направления «Экономика» и «Информационные системы в экономике».

 

 

Рецензент:

 

_______________________ А.Н. Соломатин

 

«____»______________ 2004 г.


[1] Таксономия – расположение по порядку, иерархия, соподчиненность

[2] Онтология – теория познания и логики, структуры и закономерностей

[3] Workflow – методики и программное обеспечение для описания и проектирования бизнес-процессов.



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 212; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.19.211.134 (0.031 с.)