Skip to content

ООП2. Технологии структурного программирования и ООП. Их преимущества и недостатки.

Winterpuma edited this page Jun 30, 2021 · 3 revisions

Структурное

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

Этапы:

  • Анализ (ТЗ, возможность формализации)
  • Проектирование
  • Кодирование
  • Тестирование
  • Сопровождение
  • Модификация

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

  • Легко распределять работу между программистами
  • Естественные контрольные точки
  • Легко выявлять ошибки
  • Легко поддается тестированию (комплексное тестирование)
  • Раннее начало процесса кодирования
  • Снижается вероятность допустить логическую ошибку
  • Возможен контакт с заказчиком на ранних стадиях, управление сроками
  • Упрощенное чтение кода

Недостатки:

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

ООП

Объектно-ориентированное программирование — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования. [x]

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

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

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Два вида взаимодействия:

  • Акцессорное – вступление в контакт, получение информации от объектов (синхронное взаимодействие)
  • Событийное взаимодействие – взаимодействие, связанное с изменением состояния объекта (асинхронное взаимодействие)

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

  • Возможность легкой модификации (при грамотном анализе и проектировании)
  • Более легкая расширяемость
  • «Более естественная» декомпозиция программного обеспечения, которая существенно облегчает его разработку. Сокращение количества межмодульных вызовов и уменьшение объемов информации, передаваемой между модулями
  • Увеличивается показатель повторного использования кода

Недостатки ООП:

  • Требуется другая квалификация
  • Резко увеличивается время на анализ и проектирование систем
  • Увеличение времени выполнения
  • Размер кода увеличивается
  • Мертвый код (который не используется)
  • Сложность распределения работ на начальном этапе
  • Себестоимость больше
Clone this wiki locally