1. Почему со временем неизбежно изменяются методы программирования?
Методы программирования со временем изменяются, поскольку появляются новые технологии, требования к программам становятся сложнее, а потребности пользователей эволюционируют. Более совершенные языки и парадигмы программирования позволяют создавать более эффективные, гибкие и поддерживаемые программы для решения более сложных задач.
2. Что такое декомпозиция, зачем она применяется?
Декомпозиция – это процесс разбиения сложной задачи на более мелкие, простые подзадачи. Она применяется для повышения эффективности разработки, понимания и сопровождения программного обеспечения. Декомпозиция позволяет структурировать сложную задачу и делать её решение более управляемым.
3. Что такое процедурное программирование? Какой вид декомпозиции в нём используется?
Процедурное программирование – это парадигма программирования, в которой программа представляет собой последовательность процедур (или функций). В процедурном программировании используется декомпозиция на основе функций, каждая из которых выполняет определённую задачу.
4. Какие проблемы в программировании привели к появлению ООП?
Проблемы в программировании, приведшие к появлению объектно-ориентированного программирования (ООП), включали сложность поддержания и модификации крупных программ, недостаточную гибкость и повторное использование кода, сложности в работе с большими командами разработчиков и ненадёжность в создании программного обеспечения.
5. Что такое абстракция? Зачем она используется в обычной жизни?
Абстракция – это процесс выделения наиболее важных свойств и характеристик объекта, игнорируя менее значимые детали. В повседневной жизни абстракция используется для упрощения восприятия сложных концепций и явлений. Например, мы можем абстрагироваться от деталей двигателя автомобиля, чтобы понять, как управлять им.
6. Объясните, как связана абстракция с моделированием.
Абстракция и моделирование тесно связаны. Моделирование – это создание упрощенной копии реального объекта или системы. Абстракция используется при моделировании для выделения существенных характеристик и игнорирования несущественных деталей, тем самым упрощая представление системы.
7. Какой вид декомпозиции используется в ООП?
В ООП используется декомпозиция на основе объектов. Объекты представляют собой самостоятельные сущности, обладающие своими данными (атрибутами) и методами (функциями).
8. Какие преимущества даёт объектный подход в программировании?
Объектный подход в программировании предоставляет такие преимущества, как: повышенная гибкость и масштабируемость, возможность повторного использования кода, более лёгкое сопровождение программ, снижение сложности разработки крупных программ, а также повышение надежности программного обеспечения.
9. Что такое интерфейс? Приведите примеры объектов, у которых одинаковый интерфейс и разное устройство.
Интерфейс – это набор методов, которые объект предоставляет для взаимодействия с другими объектами. Примеры объектов с одинаковым интерфейсом и разным устройством: различные устройства ввода (мышь, клавиатура, джойстик) имеют одинаковый интерфейс для взаимодействия с компьютером, но технически устроены по-разному.
10. Какие этапы входят в объектно-ориентированный анализ?
Этапы объектно-ориентированного анализа обычно включают: определение требований к системе, разработку модели предметной области, идентификацию классов и объектов, определение отношений между объектами и свойствами, а также описание поведения объектов.
11. Сравните понятия «класс» и «объект».
Класс – это шаблон или описание структуры для создания объектов. Объект – это конкретная реализация класса, экземпляр класса. Класс – это абстрактное понятие, объект – конкретное.
12. Почему при объектно-ориентированном анализе не уточняют, как именно объекты будут устроены и как они будут решать свои задачи?
При объектно-ориентированном анализе не уточняются внутренние реализации объектов и детали их работы, так как это не влияет на общее взаимодействие и взаимосвязи между объектами. Цель анализа — понять, какие объекты существуют и как они взаимодействуют. Детали реализации объектов могут быть определены на более поздних этапах.