-
Notifications
You must be signed in to change notification settings - Fork 0
ООП2. Технологии структурного программирования и ООП. Их преимущества и недостатки.
В основе структурного подхода лежит декомпозиция сложных систем с целью последующей реализации в виде отдельных небольших подпрограмм.
Этапы:
- Анализ (ТЗ, возможность формализации)
- Проектирование
- Кодирование
- Тестирование
- Сопровождение
- Модификация
- Легко распределять работу между программистами
- Естественные контрольные точки
- Легко выявлять ошибки
- Легко поддается тестированию (комплексное тестирование)
- Раннее начало процесса кодирования
- Снижается вероятность допустить логическую ошибку
- Возможен контакт с заказчиком на ранних стадиях, управление сроками
- Упрощенное чтение кода
- Отсутствие гибкости системы. После некоторого количества модификаций происходит смещение уровней абстракции, нарушается структура
- Сложно изменить формы данных и структур
- Сложно сопровождать программный продукт
Объектно-ориентированное программирование — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования. [x]
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.
Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.
Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Два вида взаимодействия:
- Акцессорное – вступление в контакт, получение информации от объектов (синхронное взаимодействие)
- Событийное взаимодействие – взаимодействие, связанное с изменением состояния объекта (асинхронное взаимодействие)
- Возможность легкой модификации (при грамотном анализе и проектировании)
- Более легкая расширяемость
- «Более естественная» декомпозиция программного обеспечения, которая существенно облегчает его разработку. Сокращение количества межмодульных вызовов и уменьшение объемов информации, передаваемой между модулями
- Увеличивается показатель повторного использования кода
- Требуется другая квалификация
- Резко увеличивается время на анализ и проектирование систем
- Увеличение времени выполнения
- Размер кода увеличивается
- Мертвый код (который не используется)
- Сложность распределения работ на начальном этапе
- Себестоимость больше