Вы находитесь на странице: 1из 12

Конспект на тему:

Технология программирования Принципы работы COM.


Технологии, основанные на стандарте COM (DCOM, COM+, .NET).
Представление о технологии OLE.

Выполнил

Журавлева Д.Д.

Гр. ПСЗ- 18-418


Технология программирования
Технология программирования — это совокупность методов и средств для
разработки программного обеспечения. В технологии должны быть
определены последовательность выполнения операций, условия, при
которых выполняется каждая операция, описание самих операций: исходные
данные, нормативные документы, в том числе стандарты, критерии и методы
оценки, результаты и др.

Любая задача начинается со словесного описания, которое называется


условием задачи, а в программировании — спецификацией задачи. Далее
условие следует формализовать, т. е. так записать спецификацию, чтобы
можно было ее решить на компьютере. Формализацией условия начинается
этап, который называется математической формулировкой задачи. Выводятся
формулы и выбираются методы решения задачи, т. е. строится
математическая модель задачи. Далее в виде алгоритма строится
последовательность стандартных действий, выполнение которых даст
искомый результат. На выбранном языке программирования проектируется и
пишется программа для компьютера. Затем выполняется ее тестирование и
отладка на компьютере. Выполняются необходимые расчеты. Таким образом,
решение задачи проходит следующие этапы (рис. 3.7).

Схема решения задачи на компьютере

Рис. 3.7. Схема решения задачи на компьютере

Технология программирования предусматривает переход от алгоритма к


программе. Программы пишут специалисты — программисты, т. е. люди,
подготовленные в области создания программ. Каждый тип процессора
имеет свою систему команд, из которых и создаются компьютерные
программы. Но машинные коды сложны для восприятия человеком, поэтому
постепенно и стали развиваться языки, более приближенные к естественным.
Программисты стали писать программы (программировать) в удобной
форме, на понятных им языках программирования. А написанные
специальные программы (трансляторы), которые могут прочитать то, что
написал программист, и перевести в машинные коды, стали инструментом
программирования.
Постепенно программы накапливались, особенно на процессы, выполняемые
наиболее часто, например ввод данных с клавиатуры, вывод информации на
экран и др. Такие небольшие программы (процедуры) называют
стандартными. В настоящее время программист при создании большой
программы обращается к библиотекам стандартных программ, извлекает
необходимые программы-процедуры и включает их в свою программу. Это
значительно облегчает процесс программирования.

Под программированием понимается совокупность процессов, связанных с


разработкой программ и их реализацией.

В зависимости от назначения программирование подразделяют на:

• системное — разработка средств общего программного обеспечения, в том


числе операционных систем, вспомогательных программ, пакетов программ
общесистемного назначения, например автоматизированных систем
управления, систем управления базами данных и т. д.;

• прикладное — разработка и отладка программ для конечных пользователей,


например бухгалтерских, обработки текстов и т. п.

В зависимости от метода программирование подразделяют на:

• процедурное — метод, в соответствии с которым программы пишутся как


перечни последовательно выполняемых команд. При этом используются
процедурно-ориентиро- ванные языки программирования, например, PL/1,
Алгол-68, Паскаль, Си;

• структурное, модульное — метод написания программ небольшими


независимыми структурированными частями (модулями), каждый из
которых связан с какой-либо процедурой или функцией. Результирующая
программа организуется в виде совокупности взаимосвязанных по
определенным правилам модулей. Это упрощает разработку сложных
программных продуктов и их тестирование. Языки для модульного
программирования Турбо Паскаль (Turbo Pascal), Си++, Ада, Модула
(Modula);

• декларативное — метод, предназначенный для решения задач


искусственного интеллекта. В указанном контексте программа описывает
логическую структуру решения задачи, указывая преимущественно, что
нужно сделать, не вдаваясь в детали. Используются языки программирования
типа Пролог;
• параллельное — разработка программ, обеспечивающих одновременное
выполнение операций, связанных с обработкой данных;

• объектно-ориентированное (ООП) — метод, основанный на использовании


концепции объекта, абстрагирующего конкретные его реализации в
предметной области. При этом данные тесно связываются с выполняемыми
над объектами процедурами;

• функциональное — метод, основанный на разбиении алгоритма решения


задачи на отдельные функциональные модули, а также описании их связей и
характера взаимодействия. Для этого наиболее широко используются языки
Норе и М, частично Си и другие языки;

• эвристическое — метод, основанный на моделировании мыслительной


деятельности человека. Используется для решения задач, не имеющих строго
формализованного алгоритма или связанных с неполнотой исходных данных;

• компонентное — метод создания ПО путем сбора объектов-компонентов


(физически отдельно существующих частей ПО), взаимодействующих между
собой через стандартизованные двоичные интерфейсы, в библиотеки или
исполняемые файлы.

Программисты разрабатывают все более мощные и сложные программы.


Современные методы разработки качественных программ существенно
сокращают время и затраты на их создание. Это структурное
программирование, пошаговое нисходящее уточнение, разбиение на функции
(модули), объектно-ориентированное и компонентное программирование.
Широко используется мультипрограммирование, когда несколько задач или
программ одновременно разделяют между собой ресурсы компьютера.

Технология программирования развивалась вместе с развитием ЭВМ и


языков программирования. Она прошла этап «стихийного»
программирования, когда программы состояли из машинных кодов или
ассемблеров и обрабатываемых данных.

В 1949 г. сотрудник высшего технического училища Пенсильванского


университета Дж. Мочли поручил своим программистам создать программу,
которая позволила бы машине воспринимать алгебраические уравнения,
записанные в традиционной форме. Созданная система кодирования под
названием Short Code (Короткий код) позволяла записывать уравнения не в
двоичном виде, а с помощью двухсимвольных комбинаций. Например,
уравнение вида А = В + С могло быть введено в форме последовательности
00 S0 03 S1 07 S2, где переменные А, В, С обозначены SO, si, S2, а операции
равенства и сложения — 03 и 07 (комбинация 00 определяет номер строки
программы). Программист (кодировщик) мог затем дать указание присвоить
переменной S0, например, значение 5, а переменной si — значение 3. После
этого компьютер уже сам определял значение переменной S2.

Этап структурного программирования начался в 1960—1970-х годах. В его


основе лежит представление задачи в виде иерархии подзадач простейшей
структуры (линейной последовательности, альтернативы, многократного
повторения — цикла), реализуемых в виде небольших подпрограмм и
модулей.

Модульное программирование — выделение групп подпрограмм, в которых


используются одни и те же глобальные данные в отдельно транслируемые
модули (библиотеки подпрограмм). Модули между собой связаны через
интерфейс. Структурный подход в сочетании с модульным
программированием позволяет разрабатывать надежные программы,
содержащие не более 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 .

С самого начала следует выработать хороший стиль программирования и


оформления программ. При создании объектов следует давать им
содержательные имена (идентификаторы), использовать ступенчатую форму
записи, каждый оператор размещать на отдельной строке, давать ясные
комментарии, размещать текст программы только в рамках экрана и др.

Программа — упорядоченный список команд (инструкций, включающих


операторы и параметры) на языке программирования. Такая программа
называется исходным текстом, или исходным кодом. Для реализации
программа должна быть откомпилирована, в результате чего образуется
объектный код, записанный в машинных кодах. Для подключения к
программе необходимых стандартных процедур и функций используют
редактор связей, который выполняет эту работу, извлекая из библиотек
стандартных подпрограмм необходимые элементы и вставляя их в объектный
код. Полученная программа называется исполняемым кодом и является уже
рабочей программой, которую можно запустить на исполнение.

Разделение программы на части — важный элемент программирования, так


как сложные программы почти невозможно создать без их разделения на
относительно независимые части: основная часть программы и
подпрограммы — именованные группы программных действий, которые
могут быть вызваны из других мест программы. Подпрограммам дают
уникальные имена. Они должны быть один раз описаны и могут быть
многократно использованы.

Имена переменных, описываемых непосредственно после заголовка и до тела


подпрограммы, называются локальными. Они допустимы для использования
только в той подпрограмме, где они описаны. Имена переменных, описанных
перед всеми подпрограммами, называются глобальными. Они доступны для
использования как в подпрограммах, так и в основной части программы.
Принято соглашение: внутри подпрограммы действуют локальные
переменные, а снаружи — глобальные. Глобальные имена следует применять
очень осторожно.

Подпрограммы условно разделяют на подпрограммы-функции и


подпрограммы-процедуры. Но это относится не ко всем языкам
программирования.

Подпрограмма-функциия обязательно возвращает результат, который затем


используется в программе. Тип результата должен быть задан. Для
обозначения подпрограммы используют служебное слово function.

Задание компьютеру действий (т. е. функции, предназначения) в месте,


отличном от места их использования, называют описанием подпрограммы.

Общий вид описания подпрограммы-функции на языке Паскаль следующий:

function имя_функции (список_аргументов): тип результата

описания внутренних переменных подпрограммы

begin

тело подпрограммы (операторы, задающие действия с использованием


формальных аргументов)

end;

Подпрограммы по своему строению напоминают простую программу.

Подпрограммы-процедуры не возвращают ни одного значения или


возвращают более одного значения. Для обозначения таких подпрограмм
используют служебное слово procedure, а задание типа результата
отсутствует.

Общий вид описания подпрограммы-процедуры на языке Паскаль


следующий:

procedure имя_ процедуры (список_аргументов); описание внутренних


переменных программы begin

тело подпрограммы

end;
Имя процедуры не может использоваться внутри процедуры как
псевдопеременная.

Для записи исходного текста программы прежде всего необходимы три


простые команды: присваивание, ввод, вывод. Команда присваивания служит
для изменения состояния объектов алгоритма и обозначается, к примеру, в
языке Pascal [5] символом := (например х: =1, А: =в). Команды ввода-вывода
необходимы для связи ЭВМ с внешним миром. Эти команды относятся к
разряду основных и реализованы в любой машине. Основной единицей
программы, выполняющей определенные действия над данными, является
оператор. Операторы бывают управляющие и обрабатывающие.

В программах для ЭВМ используются описания объектов следующих типов:


целые, вещественные, литерные (символьные) и др. С каждым типом связан
свой способ представления объекта в памяти ЭВМ.

Основная структура программы на языке Паскаль имеет следующие разделы:

Заголовок. Описание данных. Начало программы. Операторы. Конец


программы.

Как правило, в любой программе компьютер должен выполнять ввод,


обработку, хранение и вывод информации. Составление программы
осуществляют набором констант, переменных, операторов и др., как правило,
указывая их в определенной последовательности. Часто программа состоит
из основной (главной) части и подпрограмм.

Изучение программирования начнем с помощью команд языка Паскаль в


среде Турбо Паскаль.

Составление программы осуществляют описанием переменных, констант и


др., а также набором последовательно записанных команд.

Пример 3.1. Вывести на экран текст «Я хочу учиться».

Program Student;

begin

writeln ('Я хочу учиться');

end.

В этой программе имеется только главная часть, которая находится между


служебными словами begin (начало) и end (конец). Предложения языка
программирования, задающие действия компьютера, называются
операторами (т. е. заданиями операции над информацией). В примере
оператор writeln — оператор вывода.

Операторы вывода:

• write (b:m), где b — имя выводимой переменной, m — число позиций,


константа или выражение целого типа;

• write (b:m;n), где п — дробная часть значения выводимой переменной.

По формальным правилам языка то, что надо вывести на экран, помещают в


круглые скобки ( ), а сам текст заключается в апострофы. Если задана
команда writeln, то экран настраивается на вывод в следующей строке, если
write — то будет предложен вывод в этой же строке экрана. В конце
программы ставится точка.

Правила строги, если их нарушить, то система программирования выдаст


сообщение об ошибке.

Символ ; (точка с запятой) используется для разделения предложений языка


(операторов).

В Паскале оператор ввода с клавиатуры — read, за которым в круглых


скобках указываются переменные через запятую. Завершение ввода —
нажатие на клавишу Enter.

Собственно вычисление в программе выполняет оператор присваивания.


Общий вид записи оператора присваивания: а: = Ь, где а — имя переменной,
b — выражение.

В фигурных скобках { } даются комментарии, которые предназначены для


человека и не воспринимаются компьютером.

Имя переменной обязательно начинается с латинской буквы или символа


подчеркивания, а далее могут быть цифры, буквы, символы подчеркивания,
например student l.

Тип переменных определяет, какое значение может принимать эта


переменная и какие операции над этой переменной возможны. Наиболее
простые типы: целые числа (integer), числа с дробной частью —
вещественный (real), буквы, символы — символьный (char).

Для записи математических формул на языке программирования


используются следующие обозначения:
• * (звездочка) — знак умножения;

• Л — знак возведения в степень;

• / — знак деления и дополнительное применение скобок

(х+у)/(х-у);

• стандартные математические функции требуют обязательного указания


аргументов в скобках — Sin (х);

• корень квадратный записывается через функцию sqr;

• переменные с индексами будут рассматриваться далее (см. информацию о


массивах);

• используют некоторые функции, например Round — для округления


дробного значения до ближайшего целого, Trunc — для отбрасывания
дробной части (Truncate — усечь, обрезать) и др.

Рассмотрим примеры создания программ разной структуры в соответствии со


следующими этапами:

• постановка задачи;

• определение метода решения;

• составление сценария работы с ЭВМ;

• разработка алгоритма;

• перевод алгоритма в программу;

• ввод и тестирование программы;

• анализ полученных результатов.