Объектно-ориентированный подход (ООП) в программировании в настоящее время является одним из наиболее популярных направлений, а средства разработки программного обеспечения на базе ООП доминируют на рынке.
Считается, что начало развитию ООП положил язык Simula 67, который был разработан в конце 60-х гг. в Норвегии. Несмотря на то, что язык намного опередил свое время, современники (программисты 60-х гг.) оказались не готовы воспринять нововведения языка Simula 67, и он не выдержал конкуренции с другими языками программирования (прежде всего, с языком Fortran).
Сегодня наиболее распространенным ООП-языком про-граммирования, вероятно, является язык C++. Разработка новых ООП-языков программирования продолжается и в настоящее время. В настоящее время компанией Microsoft активно продвигается ООП-язык C# (C Sharp /Си Шарп/), который является расширением классического С++.
Параллельно развитию ООП-программирования стали развиваться и объектно-ориентированные методы автоматизации разработки программного обеспечения на стадии анализа и проектирования. Среди признанных подходов к анализу и проектированию ООП можно указать методы Г. Буча, Д. Рамбо, А. Джекобсона, Шлеера-Меллора и Коуда-Йордона. В результате объединения усилий первых трех авторов появился на свет унифицированный язык моделирования UML, который в 1997 г. был принят в качестве стандарта консорциумом Object Management Group и получил широкое распространение в сфере производства программного обеспечения.
Основная идея ООП сводится к попытке дать программисту простой и понятный инструмент для разработки ПО, снижающий требования к квалификации программиста и позволяющий относительно быстро реализовывать сложные программные комплексы.
Современные системы ООП (C#) стремятся к реализации устойчивого к ошибкам и самодокументируемого кода, и предлагают гигантские библиотеки готовых функций, реализующих множество операций в соответствии с существующими открытыми стандартами.
Наряду с достоинствами, ООП привнес в программирование определенные издержки. Реализация сложных и универсальных объектов приводит к «избыточности» кода, увеличивает размеры программы, требования к ресурсам компьютера и снижает быстродействие программы.
Но пока альтернатив ООП при разработке сложных программ не наблюдается.
Цель данного курса лекций — ознакомление с основными идеями и принципами ООП-подхода к разработке программного обеспечения.