Именно модель представляет объект исследования и определяет характер формального аппарата, используемого для описания задачи и выполнения необходимых преобразований информации. Модель объекта вычислений определяет ЧТО надо вычислить, а алгоритм определяет КАК нужно вычислять. Простая истина – прежде, чем определить КАК, необходимо сформулировать ЧТО является объектом решения, т.е. построить модель, очевидна для всякой науки, использующей математику.
Рисунок 1.19 – Определения модели и алгоритма
Отсюда, особенностью последовательности технологических операций ООП, изображенной на рисунке 1.19, является появление этапов моделирования и документирования, характерных для сложных программных проектов.
Рисунок 1.20 – Последовательность операций технологии ООП
Этап характеризуется появлением объектных языков программирования – Object Pascal, C++, в основе которых лежат следующие основные концепции:
– класс является описываемой на языке терминологии исходного кода моделью ещё не существующей сущности, т.е. объекта. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
– объект является сущностью в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска результатов компиляции исходного кода на выполнение).
Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений. Объект класса при этом обладает рядом характерных свойств (механизмов): абстрагирование, наследование, инкапсуляция, полиморфизм, существенно снижающая сложность проектирования ПО.
Абстрагирование – это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция – это набор таких характеристик.
Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
Наследование – это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.
Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
В результате существенно увеличивается показатель повторяемости использования кода и появляется возможность создания библиотек классов для различных применений.
Другой характерной особенностью технологии ООП является архитектура программы, представленная на рисунке 1.20.
Реализацией технологии ООП в рамках спиральной модели ЖЦ является получившая в последнее время широкое распространение технология быстрой разработки приложений RAD (Rapid Application Development).
Основные принципы (концепции) технологии RAD:
– разработка приложений итерациями;
– необязательность полного завершения работ на каждом из этапов ЖЦ;
– обязательное вовлечение пользователей в процесс разработки АИС;
– необходимое применение CASE-средств, обеспечивающих целостность проекта;
– применение средств управления конфигурацией, облегчающих внесение изменений в проект и сопровождение готовой системы;
– использование прототипирования, позволяющее полнее выяснить и удовлетворить потребности конечного пользователя;
– тестирование и развитие проекта одновременно с его разработкой;
– ведение разработки немногочисленной хорошо управляемой командой профессионалов;
– грамотное руководство разработкой системы, четкое планирование и контроль выполнения работ.
Рисунок 1.21 – Архитектура программы при технологии ООП