Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы с ответами 2018.doc.doc
Скачиваний:
14
Добавлен:
16.05.2023
Размер:
2.1 Mб
Скачать

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

Обьектно–ориентированное программирование - это подход, в котором данные и поведение (методы обработки данных) жестко связаны. Данные и поведение представлены в виде классов, экземпляры которых - объекты. ООП позволяет пользователю вводить собственные типы данных, расширяя тем самым набор встроенных в язык типов данных. Для обозначения этих расширений используется термин абстрактные типы данных (АТД). Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм. Под инкапсуляцией понимается сокрытие данных и операций АТД от внешних программ, использующих хих. Наследование - это средство получения новых типов данных (классов) из уже существующих типов, называемых базовыми классами. При этом повторно используется существующий код. Порождённый класс образуется из базового путем добавления или изменения кода. Полиморфизм - средство для придания различных значений одному и тому же сообщению в зависимости от типа обрабатываемых данных. Например, если аргументы оператора целого типа, то используется целочисленное деление. Если же один или оба аргумента - значения с плавающей точкой, то используется деление с плавающей точкой.

16. Блочно-иерархический подход к созданию программных систем.*

Этот подход предусматривает сначала создавать части таких объектов (блоки, модули), а потом собирать из них сам объект.

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

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

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

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

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

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

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

Следовательно, в основе блочно-иерархического подхода лежат декомпозиция и иерархическое упорядочивание