Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы_тооп.doc
Скачиваний:
132
Добавлен:
23.01.2018
Размер:
495.1 Кб
Скачать
  1. Контрольные вопросы по дисциплине «Объектно-ориентированное программирование»

Появление ООП, как реакция на кризис ПО(зарождение ооп)

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

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

Так как сложные системы разрабатываются с расчетом на длительную эксплуатацию, то появляется еще 2 проблемы:

1. сопровождение системы (устранение обнаруженных ошибок)

2. модификация системы (появление новых требований)

Иногда затраты на сопровождение и модификацию могут быть равны затратам на собственно разработку системы.

Решение - разбиение на модули.

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

*/ нисходящее проектирование - сразу знаем, что нужно и уже подгоняем под то, что задумали; восходящее - из того, что уже есть */

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

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

  1. Ранняя история объектного подхода

Первым, компьютерным решением, воплотившим в себе объектный подход стал программно-аппаратный графический "планшет" в 1963 году, его разработал Айвлен Сайзерлен, помогавший в создании симулятора вертолетов в военно-научном отделе США ДАРПА (DARPA). С помощью светового пера и системы, выпадающих меню, пользователь планшета мог рисовать на аналоговом дисплее несложные изображения, перемещать их и точно располагать в определенных позициях на экране, а также хранить. В качестве понятия класс Сазерленд использовал понятие "мастер", разделяя описание и реально существующий на экране объект (экземпляр "мастера")

Основоположниками объектного подхода в программировании считаются норвежцы Оле-Йохан Да(ц/у) и Кристан Нигард, авторы языка программирования Симула. История Симулы началась в 1962 году с проекта simulation Language, предназначенного для моделирования метода Монте-Карло.

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

Одновременно готовились 2 версии Симулы:

1-ая формировалась по контракту с Униваг (унифицированная ЭВМ 50-ых годов)

2-ая версия Симулы была потомком языка программирования Алгол 60, который был выбран благодаря блочной архитектуре, хорошим средством сокрытия данных, а также в следствии высокой популярности в европейских научных центрах.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]