Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консультация Кузьминой Т.М..docx
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
346 Кб
Скачать
☆

2/ Какие базовые понятия лежат в основе ооп?

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

Основные понятия объектно-ориентированного программирования (ООП). Основополагающей идеей одного из современных подходов к программированию — объектно-ориентированному — является объединение данных и обрабатывающих их процедур в единое целое — объекты.

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

Несмотря на то что в различных источниках делается акцент на те или иные особенности внедрения и применения ООП, три основных (базовых) понятия ООП остаются неизменными. К ним относятся:

• наследование (Inheritance);

• инкапсуляция (Encapsulation);

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

• имени объекта;

• состояния (переменных состояния);

• методов (операций).

Можно дать обобщающее определение: объект ООП— это совокупность переменных состояния и связанных с ними методов (операций). Упомянутые методы определяют, как объект взаимодействует с окружающим миром.

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

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

===================

Откуда появилось ООП

ООП родилось из недостатков структурное программирования.

Достатки / Недостатки структурного программирования.

+ Ошибки всплываютна на ранней стадии рахработки

+ Распределение работы

- Любая модификация изменяет иерархию программы

- Любая модификация приводит к измениям данных. А изменение данных приводит к изменению функций, всё из-за стремления опустить данное на низкий уровень

Базовые понятия ООП

В 1966 г. Чарльз Хоар провёл лекции по совместному использованию записей и предложил (эти лекции в интернете пока не нашёл)

1) Выделить действия над данными и для модификациии данных использовать надстройку.

Это было названо инкапсуляцией

2) Для модификации программных сущностей использовать при возможности надстройку над существуюшими сущностями. Это было названо наследованием

3) Хоар предложил взаимодействие в программе объектов делать таким же как и в реальном мире и выделили

акцессорное взаимодействие - как считывание характеристик объекта. Такое тип взаимодействия иногда называют статическим.

событийное взаимодействие - взаимодействие связанное с изменением состояния объекта. Такой тип взаимодействия называют динамическим.

Объект - конкретная реализация абстрактного типа, обладающая характеристиками состояния, поведения и индивидуальностью

Поведение - описание объекта в терминах изменения его состояния и передача сообщений в процессе воздействия или под воздействие других объектов

Индивидуальность - сущность объекта, отличающего его от других объектов

Отношения между объектами

Отношение использования (объект может выполнять роль воздействия, исполнения, посредничество)

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

Категории объектов:

Реальные объекты - абстракция фактического существования объектов в физическом мире (стол)

Роли - абстракция цели, назначения (студент, человек)

Инциденты - абстракция чего-то случившегося или произошедшего (скачок напряжения)

Взаимодействие - объекты получаемые из взаимодействия между объектами

Спецификации - используется как представление правил или критерий качества

Класс - это такая абстракция предметов реального мира, что:

Все предметы в этом множестве имеют одни и те же характеристики

Все объекты подчинены и согласованы с одним и тем же набором правил и линий поведения

Отношения между классами

1) Наследование. Какой-то класс строится на основе другого

2) Использование. Объект одного класса вызывает методы по работе с объектом другого класса

3) Наполнения. Класс включает в себя другие классы.

4) Мета-Классы. Класс, объекты которого есть классы.

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

3/ Что понимается под термином «модульность»? Определите понятие модульного программирования. (или Яз)

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

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

[править]

Модульность программного кода

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

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

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

- оптимальный по размерам модуль целиком помещается на экране дисплея;

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

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

Заметим, что нужно различать использование слова "модуль", когда имеется в виду синтаксическая конструкция языков программирования (unit в Object Pascal), и когда имеется в виду единица дробления большой программы на отдельные блоки (которые могут быть реализованы и в виде процедур, и в виде функций).

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

Упрощается процесс повышения эффективности программ, так как критичные по времени модули могут многократно переделывать независимо от других. Кроме того, модульные программы значительно легче понимать, а модули могут использоваться как строительные блоки в других программах.

4/ В чем отличие объектов от модулей?

Объект

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

Прототип

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

5/ Этапы создания объектно-ориентированной программы.

Этапы разработки программы

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

Программирование — это процесс создания (разработки) программы, который может быть представлен последовательностью следующих шагов:

Спецификация (определение, формулирование требований к программе).

Разработка алгоритма.

Кодирование (запись алгоритма на языке программирования).

Отладка.

Тестирование.

Создание справочной системы.

Создание установочного диска

Спецификация

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

Разработка алгоритма

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

Кодирование

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

Отладка

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

Тестирование

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

Создание справочной системы

Если разработчик предполагает, что программой будут пользоваться другие, то он обязательно должен создать справочную систему и обеспечить пользователю удобный доступ к справочной информации во время работы с программой. В современных программах справочная информация представляется в форме СНМ- или HLP-файлов. Помимо справочной информации, доступ к которой осуществляется из программы во время ее работы, в состав справочной системы включают инструкцию по установке (инсталляции) программы, которую оформляют в виде Readme-файла в одном из форматов: TXT, DOC или НТМ.

Создание установочного диска

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

Алгоритм и программа

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

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

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