Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
853.35 Кб
Скачать

8. Наследование. Одиночное и множественное наследование. Определение. Примеры.

Цель объектно-ориентированного программирования состоит в повторном использовании созданных вами классов, что экономит время и силы. Если уже создан некоторый класс, то возможны ситуации, что новому классу нужны многие или даже все особенности уже существующего класса, и необходимо добавить один или несколько элементов данных или функций. В таких случаях C++ позволяет вам строить новый объект, используя характеристики уже существующего объекта. Другими словами, новый объект будет наследовать элементы существующего класса (называемого базовым классом). Когда строится новый класс из существующего, этот новый класс часто называется производным или родительским классом.

Простое (одиночное) наследование

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

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

Определение. Наследование представляет собой способность производить новый класс из уже существующего базового класса.

Задание

  1. Создать базовый класс типа employer, который содержит следующие поля:

  • Порядковый номер в списке (ID)

  • ФИО (FIO)

  • Возраст (Age)

  • Зарплата (Salary)

  1. Породить класс типа manager из базового класса типа employer, который будет содержать дополнительно следующие поля:

  • Ежегодная премия

  • Личные качества (коммуникабельность, решительность и др.)

  • Количество обслуживаемых клиентов

  • Объем продаж

  • Машина фирмы, которой пользуется manager

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

Задание

  1. Создать базовый класс типа Computer­Screen (Экран компьютера), содержащий следующие поля:

  • Тип экрана (SVGA и др.)

  • Количество цветов

  • Разрешение по Х

  • Разрешение по У

  1. Создать базовый класс типа MotherBoard (материнская плата), содержащий следующие поля:

  • Тип процессора

  • Тактовая частота в МГц

  • Размер ОЗУ в Мб

  1. Породить класс типа Computer­ (компьютер), используя в качестве базовых классов Computer­Screen и MotherBoard, содержащий дополнительно следующие поля:

  • Имя компьютера

  • Размер винчестера в Мб

  • Имеется ли DVD-RW

Доп. Вопрос. Пример наследования.

Проектирование информационных систем

  1. Каскадная и спиральная модели разработки информационных систем. Преимущества и недостатки.

Каскадная модель жизненного цикла (“модель водопада”, системная модель) была предложена в 1970 году Уинстоном Ройсом.

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

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

Преимущества:

  • на каждой стадии формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;

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

Недостатки:

  • существенная задержка в получении результатов

  • ошибки и недоработки на любом из этапов проявляются, как правило, на последующих этапах работ, что приводит к необходимости возврата назад

  • сложность параллельного ведения работ

  • чрезмерная информационная перенасыщенность каждого из этапов

  • сложность управления проектом

  • высокий уровень риска и ненадежность инвестиций.

Спиральная модель была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act).

Ее принципиальной особенностью является следующее: прикладное ПО создается не сразу, как в случае каскадного подхода, а по частям с использованием метода прототипирования

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

Преимущества спиральной модели:

  • наиболее реально отображает разработку ПО

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

  • включает шаг системного подхода в итерационную структуру разработки

  • использует моделирование для уменьшения риска и совершенствования программного изделия

  • упрощение внесения изменений в проект при изменении требований заказчика

  • интеграция отдельных элементов ИС в единое целое постепенно

  • уменьшение уровня рисков.

  • большая гибкость в управлении проектом

  • накопление и повторное использование созданных моделей и прототипов.

Недостатки спиральной модели

  • основная проблема спирального цикла — определение момента перехода на следующую стадию.

  • новизна (отсутствует достаточная статистика эффективности модели);

  • повышенные требования к заказчику;

  • трудности контроля и управления временем разработки.

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