Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Объектно-ориентированная разработка программного обеспечения

Содержание

План лекционного материала

Цель лекционного материала

Введение в объектно-ориентированную методологию

Целью лекционного материала является дать представление об основных понятиях объектно-ориентированного моделирования, его истории.

 

1. Объектно-ориентированная разработка программного обеспечения.

2.Объектно-ориентированные концепции: абстракция, инкапсуляция, объединение данных, совместное использование.

3. История объектно-ориентированного моделирования.

4. Основные понятия моделирования.

5. Общие понятия о моделях в объектно-ориентированной методологии.

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

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

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

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

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

 

2. Объектно-ориентированные концепции: абстракция, инкапсуляция, объединение данных, совместное использование

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

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

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

При вызове операции не нужно беспокоиться о том, сколько реализаций этой операции существует в системе. Полиморфизм операторов перекладывает ответственность за выбор подходящей реализации с вызывающего кода на иерархию классов. Рассмотрим в качестве примера обычный (не объектно-ориентированный) код, отображающий содержимое окна. Такой код должен учитывать тип каждой фигуры (многоугольник, окружность, текст) и вызывать соответствующие типу процедуры. Объектно-ориентированный код будет вызывать для каждой фигуры метод draw (прорисовать). Каждый объект выберет подходящую процедуру согласно своему классу. Это облегчает поддержку программы, потому что добавление нового класса не требует изменения вызывающего кода. В объектно-ориентированной системе иерархия структур данных соответствует иерархии наследования операций (рис. 1).

 

Рисунок 1 – Единая иерархия операций и структур данных

 

<== предыдущая лекция | следующая лекция ==>
Тема 1 | История объектно-ориентированного моделирования
Поделиться с друзьями:


Дата добавления: 2013-12-13; Просмотров: 1722; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.