Байланысты: Технология программирования и ее преимущества
Модульное программирование — выделение групп подпрограмм, в которых используются одни и те же глобальные данные в отдельно транслируемые модули (библиотеки подпрограмм). Модули между собой связаны через интерфейс. Структурный подход в сочетании с модульным программированием позволяет разрабатывать надежные программы, содержащие не более 100 тыс. операторов.
Для сложного программного обеспечения на этапе 1980— 1990-х годов стало применяться объектно-ориентированное программирование (ООП), когда программа представлена в виде совокупности объектов, каждый из которых служит экземпляром определенного класса. Класс — совокупность объектов, характеризующихся общностью свойств и применяемых методов обработки. Классы образуют иерархию с наследованием свойств. Для обеспечения взаимодействия программных объектов используются сообщения. Механизмы наследования, полиформизма, композиции, наполнения позволяют строить сложные объекты из простых. ООП позволило создать огромное количество библиотек классов, ориентированных на разные задачи. Многократное использование этих библиотек позволяет повысить производительность разработки программ и уменьшить количество ошибок.
ООП явилось прологом к визуальному программированию. Были созданы системы визуального программирования: Visual C++ Builder, Visual Basic, Visual Fox Pro, Delphi и др.
В основе ООП лежат следующие понятия: объект, класс, инкапсуляция, наследование, полиморфизм. Объект рассматривается как некоторая структура, соответствующая объекту реального мира и его поведению. Задача, решаемая с помощью методики ООП, описывается в терминах объектов и операций над ними. Программа при таком подходе представляется в виде набора объектов и связей между ними.
Объекты — это динамически размещаемые структуры. Тип объекта называется классом. При создании нового типа объекта фактически создается класс. При создании новой программной конструкции на основе некоторого класса создается экземпляр класса — объект. Каждый объект содержит уникальную копию каждого поля, определенного в его базовом классе. Все объекты одного класса имеют одни и те же методы. Для создания и удаления объектов используются специальные методы, называемые конструкторами и деструкторами. Переменная, обозначающая объект, фактически является указателем, ссылающимся на данные объекта в памяти. На один и тот же объект могут ссылаться несколько объектных переменных. Поскольку объектные переменные являются указателями, они могут содержать значение nil, указывающее, что объектная переменная не ссылается ни на какой объект. В отличие от указателей, объектная переменная для доступа к объекту не требует разыменования. Например, оператор Editl.Text := 'NewData'; присваивает значение 'NewData' свойству Text поля ввода Editl. Оператор разыменования при этом не используется.
ОС Windows управляет событиями. Например, после щелчка по кнопке она генерирует событие, которое сопровождается рассылкой соответствующих сообщений. Компоненты и элементы управления, например в Delphi, фактически являются объектами, методы которых активизируются после получения сообщений от ОС.
Три фундаментальных составляющих ООП: инкапсуляция, наследование и полиморфизм.
Инкапсуляция означает объединение всех данных об объекте и характеристик его поведения в одном блоке. Объект содержит свойства и методы, при этом предоставляются средства для сокрытия данных.
Наследование позволяет расширять классы и способствует созданию родительско-дочерних отношений между объектами. Например, в приложении базы данных, в которой хранится информация о служащих компании, могут быть определены классы Employee (Служащий) и Manager (Менеджер). Класс Employee содержит информацию о служащих — фамилии, номера карточек социального страхования и др. Кроме того, для каждого менед- жера-служащего нужна та же информация, что и для служащих, и необходимы некоторые дополнительные сведения. Следовательно, между этими классами существует логическое отношение: класс Manager образует подмножество класса Employee. Класс Manager (дочерний класс) наследует все свойства и методы класса Employee, однако, кроме наследованных, он имеет собственные свойства и методы.
Полиморфизм (дословно — способность проявляться во многих формах) означает, что программа может обрабатывать объект по-разному в зависимости от его класса.
Этап компонентного подхода и CASE-технологии начался с середины 1990-х годов. Компонентный подход лежит в основе технологий СОМ и CORBA. Для программиста элемент такой технологии обладает свойствами, методами и событиями, и его можно использовать для построения приложений. COM (Component Object Model) — компонентная модель объекта. Эта технология является развитием технологии связывания и внедрения объектов OLE, используемой для создания сложных и составных документов в приложениях, работающих под управлением ОС Windows. СОМ позволяет использовать функции одной части ПО другой частью.
На базе СОМ для разработки программного обеспечения были созданы компонентные технологии:
• OLE-automation — технология создания программируемых приложений (например, ее поддерживает MS Excel);
• ActiveX — технология создания ПО как на одном компьютере, так и в распределенной сети. Создана на базе OLE-auto- mation. ActiveX применяется для создания ПО в Интернете и написания программ в среде Delphi, C++ Builder, Visual C++ и др.;
• MTS (Microsoft Transaction Server — сервер управления транзакциями) — технология для стабильной и безопасной работы распределенных приложений, работающих с большими объемами передаваемых данных;
• MIDAS (Multitier Distributed Application Server — сервер многозвенных распределенных приложений) — технология для организации доступа к данным разных компьютеров с учетом сбалансированности нагрузки сети.
Технология CORBA (Common Object Request Broker Architecture — общая архитектура с посредником обработки запросов объектов) используется для создания распределенных приложений. Может работать на всех основных аппаратных и программных платформах.
Для ускоренной разработки ПО применяют технологию RAD (Rapid Application Development). Она позволяет максимально быстро получить первые версии ПО. Эту технологию используют в основном для относительно небольших проектов, когда не требуется высокий уровень планирования и проектирования. Для крупных систем с большим количеством уникального кода эту технологию нельзя применять.
Языки программирования (ЯП) для создания ПО могут быть выбраны, исходя из конкретных условий. Это связано со знанием программистом определенного языка, с наличием у организации-разработчика лицензионной версии системы программирования, решаемых задач и т. д. Более подробно ЯП рассматривается далее. О линии ЯП Паскаль — Турбо Паскаль — Delphi рассказано в источнике [5].
С самого начала следует выработать хороший стиль программирования и оформления программ. При создании объектов следует давать им содержательные имена (идентификаторы), использовать ступенчатую форму записи, каждый оператор размещать на отдельной строке, давать ясные комментарии, размещать текст программы только в рамках экрана и др.
Программа — упорядоченный список команд (инструкций, включающих операторы и параметры) на языке программирования. Такая программа называется исходным текстом, или исходным кодом. Для реализации программа должна быть откомпилирована, в результате чего образуется объектный код, записанный в машинных кодах. Для подключения к программе необходимых стандартных процедур и функций используют редактор связей, который выполняет эту работу, извлекая из библиотек стандартных подпрограмм необходимые элементы и вставляя их в объектный код. Полученная программа называется исполняемым кодом и является уже рабочей программой, которую можно запустить на исполнение.