
- •Лекция №1 «Современные средства разработки по. Терминология. Основные понятия.»
- •Проектирование приложения.
- •Реализация программного кода приложения.
- •Тестирование приложения.
- •Лекция 2. История развития ооп и сред rad
- •Преимущества ооп
- •Среды разработки, использующие принципы rad
- •Лекция №3 ооп. Понятия объекта, свойства, метода, события.
- •Лекция №4 Классы
- •4.1 Объявление класса
- •4.2. Перегрузка функций.
- •4.3. Конструкторы.
- •4.4. Деструкторы.
- •4.5. Конструкторы с параметрами.
- •4.6. Указатели на объекты.
- •Лекция №5 Данные-элементы, статические данные, константные данные
- •6. Функции-элементы, дружественные функции, константные функции
- •Inline void SetA(int); // функция записи
- •Встраиваемые функции inline
- •3.3. Введение в наследование.
- •Виртуальные функции.
- •Производные классы: множественное наследование
Преимущества ооп
Первые программы на языке BASIC часто представляли собой многостраничные листинги, в которых не прослеживалось четкой структуры. Огромные программные блоки связывались друг с другом посредством одно- или двухбуквенных меток, по которым осуществлялись переходы с помощью многочисленных команд goto. Анализ и отладка таких программ были тяжёлой задачей, требующей большого внимания, а их модификация являлась источником ошибок.
(В настоящее время не рекомендуется вообще использовать метки, т.к. использование усложняет понимаемость кода программы.)
В 60-х годах была реализована методика структурного программирования, подразумевавшая использование переменных с осмысленными именами, существование глобальных и локальных переменных и процедурное проектирование приложений по принципу "сверху вниз". Благодаря внедрению в жизнь этих концепций тексты программ стали понятнее и читабельнее, в результате чего упростился процесс отладки программ. Стало проще сопровождать программы, так как появилась возможность контролировать выполнение не отдельных команд, а целых процедур. Примерами языков, ориентированных на подобный процедурный подход, могут быть Ada, С и Pascal.
ООП дало программистам три важных преимущества. Первое состоит в упрощении программного кода и улучшении его структуризации. Программы стали проще для чтения и понимания. Код описания классов, как правило, отделен от кода основной части программы, благодаря чему над ними можно работать по отдельности. Второе преимущество заключается в том, что модернизация программ (добавление и удаление программных блоков) стало более простой задачей. Чаще всего она сводится к добавлению нового класса, который наследует все свойства одного из имеющихся классов и содержит требуемые дополнительные методы. Третье преимущество состоит в том, что одни и те же классы можно много раз использовать в разных программах. Созданный класс можно сохранить отдельно в библиотечном файле, и его добавление в программу, как правило, не требует внесения серьезных изменений в ее текст.
Создателем ООП считают Бьярна Страуструпа (Bjarne Stroustrup). Концепция ООП была представлена им в языке C++, разработанном им в начале 80-х в компании BellLabs. ООП в C++ в значительной степени основано на концепциях и средствах структурного программирования языка С.
Отличия ООП от процедурных программ
До появления ООП в языках программирования реализовывалось процедурное программирование. В этом случае основой программы служат функции и процедуры, или иными словами действия. Разработчик программы решал, какие функции и процедуры ему нужны, определял последовательность их выполнения и объединял их в программу. Программа в этом случае имела чёткий и понятный алгоритм работы, т.е. начиналась в какой-либо одной точке и заканчивалась в одной или нескольких точках в зависимости от логических операторов внутри программы.
Структура процедурных программ в общем такова: имеется функция main(), а из нее вызываются другие функции программы. Тело функции main(), как правило, невелико. Ее роль обычно сводится к распределению задач между остальными функциями, которые описывают действия, выполняемые над данными.
Основным недостатком такого подхода являются проблемы, возникающие при сопровождении программ. Например, если в программу нужно добавить какой-нибудь программный блок, то чаще всего ее приходится полностью перекомпилировать. Это отнимает много времени и является источником ошибок.
В объектно-ориентированном программировании нет какой-либо начальной или конечной точки. Основным понятием является не процедура или функция, а объект и сообщения. По аналогии с окружающим миром всё можно представить в виде объектов и сообщений (например, люди и их общение между собой, человек и компьютер – обмен информацией, в программе любой расчет может быть представлен как объект, а обмен сообщениями будет заключаться во вводе начальных значений переменных, сигналом к началу расчета и выводу рассчитанных значений и т.д.).
Например, задача, сформулированная как расчет суммы двух чисел может быть представлена объектом
Таким образом, программа, построенная в соответствии с принципами ООП, представляет собой не последовательность действий, заданных алгоритмом, а набор объектов и описаний способов их взаимодействия. Обмен между объектами происходит с помощью сообщений. Одним из объектов является пользователь, который может принимать сообщения от объектов (визуальное отображение чисел, строк, диаграмм) и передавать сообщения нажатием клавиш на клавиатуре или щелчком мыши на соответствующих интерфейсных элементах программы.
В результате развития технологий ООП возникли среды для быстрой разработки программного обеспечения.
Кроме этого ООП поддерживает три основных принципа: инкапсуляцию, наследование и полиморфизм.
Под инкапсуляцией понимают то, что и информация об объекте (его свойства), уровни доступа к ним и функции объекта (методы) содержатся в описании этого объекта.
Наследование означает то, что один объект может быть построен на базе описания другого объекта.
Полиморфизмом называют способность многих объектов использовать один и тот же метод, при этом выполняемые действия зависят от того объекта, который его вызвал.
RAD (от англ. rapid application development -- быстрая разработка приложений) - концепция создания средств разработки программных продуктов, уделяющая особое внимание быстроте и удобству программирования, созданию технологического процесса, позволяющего программисту максимально быстро создавать компьютерные программы. Концепцию RAD также часто связывают с концепцией визуального программирования.
Основные принципы RAD
· Инструментарий должен быть нацелен на минимизацию времени разработки.
· Создание прототипа для уточнения требований заказчика.
· Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком.
· Минимизация времени разработки версии, за счёт переноса уже готовых модулей и добавления функциональности в новую версию.
· Команда разработчиков должна тесно сотрудничать, каждый участник должен быть готов выполнять несколько обязанностей.
· Управление проектом должно минимизировать длительность цикла разработки.
Основателем RAD считается сотрудник IBM Джеймс Мартин, который в 1980-х годах сформулировал основные принципы RAD. А в 1991 году Мартин опубликовал книгу, в которой детально изложил концепцию RAD и возможности её применения. В настоящее время RAD становится общепринятой схемой для создания средств разработки программных продуктов. Именно средства разработки, основанные на RAD, имеют наибольшую популярность среди программистов.