Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Вопрос 5-3. Инструментальные средства программирования и их состав

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

♦ Средства для создания приложений, включающие локальные средства и интегрированные среды разработки.

♦ Средства для создания информационных систем (CASE-технология).

Более подробно следует рассмотреть средства для создания приложений, так как CASE-технология изучается в курсе «Информационные системы в экономике».

Локальные средства разработки программ наиболее широко представлены на рынке ПС и содержат языки и системы программирования.

Современные системы программирования содержат:

—средства создания и редактирования текстов программ;

—большие библиотеки стандартных функций;

—средства отладки программ;

—мощные графические библиотеки;

—встроенную справочную службу.

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

разработка приложений для архитектуры клиент-сервер и т.п.

Изложение лекционного материала сопровождается демонстрацией следующих слайдов и плакатов.

♦ Жизненный цикл программного обеспечения.

♦ Основные этапы разработки алгоритма и реализующей его программы.

♦ Основные типы данных.

♦ Состав инструментальных средств программирования.

Тема 6. Компьютерные сети и телекоммуникации

Следует рассмотреть следующие вопросы.

6-1.Понятие, архитектура, классификация и основы работы компьютерных сетей. Эталонная модель взаимодействия открытых систем и модели архитектуры «клиент-сервер».

6-2.Понятие «локальные вычислительные сети» (ЛВС), классификация, назначение и характеристика отдельных видов ЛВС.

6-3.Понятие «корпоративная вычислительная сеть», ее назначение, структура и компоненты

6-4.Назначение, структура и состав сети Интернет. Административное устройство Интернета. Межсетевая адресация, протоколы, сервисы и технологии Интернета. Организация работы пользователя в сети Интернет.

Вопрос 6-1. Понятие, архитектура, классификация и основы работы компьютерных сетей. Эталонная модель взаимодействия открытых систем и модели архитектуры «клиент-сервер»

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

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

Под архитектурой сети понимаются компоненты, методы доступа, технология и топология ее построения.

Методы доступа регламентируют процедуры получения узлами сети доступа к среде передачи данных.

По методам доступа различают сети:

со случайным доступом CSMA/CS (множественный доступ с контролем несущей и обнаружением конфликтов);

с маркерными кольцами — на основе маркерной шины и маркерного кольца.

Существует две разновидности метода случайного доступа: CSMA/CS: множественный доступ с контролем несущей и обна­ружением конфликтов и приоритетный доступ.

К маркерным методам доступа относятся два типа передачи данных: маркерная шина (стандарт IEEE 802.4) и маркерное кольцо (стандарт IEEE 802.5). При этом под маркером понимается управляющая последовательность бит, передаваемая компьютером по сети.

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

Существуют четыре основные топологии: шина (Bus), кольцо (Ring), звезда (Star) и ячеистая топология (Mesh). Другие виды топологий представляют различные виды комбинаций этих типов.

В качестве современных технологий построения и функционирования компьютерных сетей используются следующие:

♦ технология Х.25 является одной из самых распространенных: за счет возможности работы на ненадежных линиях передачи данных благодаря использованию протоколов с установленным соединением и коррекцией ошибок на канальном и сетевом уровнях открытой модели OSI;

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

♦ технология ISDN (цифровая сеть с интеграцией услуг), позволяющая осуществить одновременную передачу данных, речи и мультимедиа-информацию;

♦ ATM (асинхронный режим передачи): технология расширяет возможности сетей ISDN по передачи мультимедиа-данных за счет повышения скорости передачи до 2,5 Гбит/с;

♦ VPN (виртуальная частная сеть): технология позволяет организовать частную сеть, функционирующую как туннель через большую сеть, например Интернет.

Компьютерные сети классифицируются по следующим признакам: размеру сети, ведомственной принадлежности, методам доступа, топологии построения, способам коммутации абонентов сети, типам передающей среды, интеграции услуг, типу используемых ЭВМ в сети, правам собственности.

Классификация сетей по размеру является наиболее распространенной. По этому критерию выделяют локальные КС (LAN-сети), территориалъно-распределенные (региональные) КС (MAN-сети) и глобальные КС (WAN-сети).

По ведомственной принадлежности различают компьютерные сети отраслей, объединений и организаций. В качестве примеров таких сетей выступают компьютерные сети «РАО ЕС», объедине­ния «Сургутнефтегаз», Сберегательного банка России и др.

По методам доступа к среде передачи данных различают сети со случайным доступом CSMA/CS и доступом с помощью маркерной шины и маркерного кольца.

По топологии различают сети типа шина, кольцо, звезда, ячеистая, полносвязная и смешанная.

По способам коммутации абонентов сети выделяют сети с разделяемой средой передачи и коммутируемые сети.

По типу среды передачи данных различают проводные, кабельные и беспроводные КС.

К проводным КС относятся КС с проводами без какой-либо изолирующей или экранирующей защиты и проложенными по воздушной среде.

Кабельные линии связи включают три вида кабелей: кабели типа витая пара, коаксиальный кабель и волоконно-оптический кабель.

Беспроводные линии связи представляют различные радиоканалы наземной и спутниковой связи.

Сети с интеграцией услуг ISDN ориентированы на оказание услуг по использованию телефакса, телекса, видеотекса, организации конференц-связи и передачи мультимедиа-информации.

В зависимости от типа используемых ЭВМ различают гомогенные сети, имеющие в своем составе только однотипные ЭВМ, и гетерогенные сети, узлами которых могут быть ЭВМ разных типов.

В зависимости от прав собственности сети могут являться сетями общего пользования (public) или частными (private).

В процессе функционирования компьютерной сети все ее компоненты активно взаимодействуют друг с другом. Для унификации процессов взаимодействия Международной организацией по стандартам разработана эталонная модель взаимодействия открытых систем (модель OSI).

Модель OSI рекомендуется рассмотреть с использованием схемы модели и указанием взаимодействия протоколов и пакетов на различных уровнях модели OSI. Под протоколом обмена (связи, представления данных) понимают описание форматов передаваемых пакетов данных, а также систему правил и соглашений, которые должны соблюдаться при организации взаимодействия и передачи данных между отдельными процессами. В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический.

Прикладной уровень является высшим уровнем модели OSI. На нем обеспечивается доступ программ к компьютерной сети. При­мерами процессов прикладного уровня могут служить работы программ передачи файлов,

почтовых служб, управления сетью.

Уровень представления данных предназначен для преобразования данных из одной формы в другую, например из кодовой таблицы EBCDIC (расширенный двоично-десятичный код обмена информацией) в кодовую таблицу ASCII (американский стандартный кода для обмена информацией). На этом уровне осуществляется обработка специальных и графических символов, сжатие и восстановление данных, кодирование и декодирование данных. На сеансовом уровне производится контроль обеспечения безопасности передаваемой информации и поддержки связи до момента окончания сеанса передачи. Транспортный уровень является наиболее важным, так как служит посредником между верхними уровня­ми, ориентированными на приложения, и нижними уровнями, обеспечивающими подготовку и передачу данных по сети. Транспортный уровень отвечает за скорость, сохранность и присвоение уникальных номеров пакетам. На сетевом уровне определяются сетевые адреса узлов получателей, устанавливаются маршруты следования пакетов. На канальном уровне осуществляется генерация, передача и получение кадров данных. Физический уровень является низшим уровнем эталонной модели OSI. На этом уровне поступившие с сетевого уровня кадры преобразуются в последовательности электрических сигналов. На узле-приемнике осуществляется обратное преобразование электрических сигналов в кадры.

Взаимодействие компьютеров в сети основывается на различных моделях архитектуры «клиент-сервер». Под серверами сети понимают компьютеры, предоставляющие те или иные ресурсы. В зависимости от вида ресурса различают серверы баз данных, серверы приложений, серверы печати и т.д. Клиентами сети являются компьютеры, запрашивающие ресурсы в процессе решения конкретных задач.

В настоящее время существуют и используются в практической работе четыре модели архитектуры «клиент-сервер».

В модели «файловый сервер» на сервере располагаются только данные. Вся

обработка данных ведется на компьютере клиента.

Модель «доступа к удаленным данным» требует размещения на сервере данных и менеджера информационных ресурсов. Запросы к информационным ресурсам направляются по сети менеджеру ресурсов, который их обрабатывает и возвращает клиенту результаты обработки.

Модель «комплексный сервер» предполагает расположение на сервере прикладных функций и функций доступа к данным за счет размещения данных, менеджера ресурсов и прикладного компонента. В данной модели по сравнению с «доступом к удаленным данным» достигается более высокая производительность сети за счет лучшей централизации прикладных вычислений и еще большего сокращения трафика сети.

Модель «трехзвенной архитектуры «клиент-сервер»» используется при сложном и объемном прикладном компоненте, для размещения которого используется отдельный сервер, называемый сервером приложений.

Вопрос 6-2. Понятие «локальные вычислительные сети», классификация, назначение и характеристика отдельных видов ЛВС

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

Читать еще:  Третье поколение языков программирования

Основным назначением ЛВС является предоставление информационных и вычислительных ресурсов подключенным к сети пользователям.

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

Аппаратные компоненты ЛВС включают компьютеры, оснащенные сетевыми картами; устройства межсетевой связи (маршрутизаторы); концентраторы и коммутаторы; специальное сетевое оборудование (повторители, терминаторы, разъемы, трансиверы, антенны и т.д.); технические устройства защиты ресурсов; кабельную систему.

Классификация ЛВС осуществляется по следующим признакам:

топология (шина, кольцо, звезда и смешанная топология);

метод доступа к среде передачи данных. В ЛВС используются следующие методы доступа: Ethernet, ARCnet, Token Ring, FDDI);

наличие сервера в сети (одноранговые ЛВС и сети с выделенным сервером);

♦ тип кабельной системы (коаксиальный кабель, витая пара, волоконно-оптический кабель).

Самостоятельно рассмотреть назначение, преимущества и недостатки.

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

Дата добавления: 2013-12-24 ; просмотров: 8487 ; Нарушение авторских прав

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

К средствам для создания приложений можно отнести:

1. Языки, системы программирования (например, C, Pascal, Basic) и инструментальные среды для разработки приложений (например, C++, Delphi, Visual Basic, Java), которые включают средства визуального программирования.

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

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

Средства для создания информационных систем — CASE-технологии — это программные комплексы, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных систем. Средства CASE-технологии делятся на встроенные в систему и независимые от системы реализации. Они нацелены на коллективную работу над проектом за счет возможности работы в локальной сети разработчиков.

Язык программирования — это формализованный язык, предназначенный для записи алгоритмов решения задач на ЭВМ.

Языки программирования можно классифицировать по различным признакам. Например, по синтаксису образования конструкций языка их условно делят на следующие классы:

машинные коды (наборы двоичных данных) — воспринимаются аппаратной частью компьютера;

машинно-ориентированные (ассемблеры) — отражают структуру конкретного типа компьютеров;

алгоритмические языки (Fortran, Basic, Pascal, C и др.) — отражают структуру алгоритма и не зависят от архитектуры компьютера;

процедурно-ориентированные языки — используются для описания программы как совокупности процедур (подпрограмм);

проблемно-ориентированные языка (Lisp, Prolog и др.) — используются для решения задач определенного класса.

Существует и другая классификация: по поколениям или по уровням привязки к машинным кодам. В этом случае, языки первого и второго поколения (машинные коды и языки ассемблера) относят к языкам низкого уровня, а языки третьего — пятого поколения считаются языками высокого уровня, которые, в свою очередь делят на следующие классы:

линейные языки (набор операторов);

процедурные языки (Fortran, Cobol, Algol, Basic, Pascal, C и др.);

логические языки (Prolog и др.);

объектно-ориентированные языки (C++, JAVA, Delphi, Visual Basic и др.);

языки запросов к базам данных (стандарт всех языков — SQL 92);

языки сценариев (скриптов) (Visual Basic Script, JAVA Script и др.);

языки макропрограммирования (Visual Basic for Application).

Система программирования — это совокупность программного обеспечения, включающая: транслятор, интерфейс разработчика, набор библиотек подпрограмм, редактор связей, отладчик, сервисные средства, справочную систему и др.

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

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

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

Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.

Редактор связей — осуществляет перевод объектного модуля в загрузочный (исполняемую программу) с подключение всех используемых подпрограмм. Он включает в себя: отладчик; набор библиотек; средства оптимизации кода программ; справочные системы; сервисные средства для работы с библиотеками и др.

Назначение и состав инструментальных средств программирования и проектирования программного обеспечения

В основе решения любой задачи на компьютере используется соответствующая программа, представляющая, в общем случае, формализованное описание взаимосвязанной последовательности операций, выполняемых различными устройствами компьютера. В последние годы широкое распространение получил термин “программное средство” (программное приложение или просто приложение). В целом под программным средствомпринято понимать программу или другое формализованное описание, обеспечивающее автоматизацию решения на компьютере задачи пользователя, как автономно, так и с помощью каких-либо программно-инструментальных средств. Множество видов программно-инструментальных средств может быть представлено различными языками программирования с соответствующими трансляторами, языковыми средствами для формирования запросов и выполнения других операций с базами данных, средствами настройки электронных таблиц и др.

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

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

Инструментарий технологии программирования включает в себя:

· средства разработки приложений (программ), состоящие из систем программирования и языков программирования;

· CASE-системы (Computer–Aided System Engineering).

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

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

Языки семейства ассемблеров относятся к языкам низкого уровня, для которых характерны возможности создания эффективных и компактных программ, поскольку программист имеет непосредственный доступ к аппаратным ресурсам компьютера (процессору, основной и внешней памяти, контроллерам и др.). В настоящее время ассемблер, как правило, используют при написании небольших системных приложений, драйверов (программ, управляющих взаимодействием внешних устройств с процессором и с ОЗУ), отдельных процедур обработки данных и др. Как и для других языков программирования, для ассемблеров написан ряд библиотек, в которых реализованы процедуры различных видов обработки данных, что способствует ускорению процесса разработки программ. Многие языки программирования высокого уровня позволяют вставлять в разрабатываемые на их основе программы отдельные модули, написанные на языке ассемблер.

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

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

Читать еще:  Типы данных в программировании это

В целом языки программирования позволяют кардинальным образом повысить производительность программиста по сравнению с написанием программ на языке ассемблер. Однако оттранслированные с языка высокого уровня на уровень машинных команд программы имеют, как правило, в несколько раз больший объем, чем аналогичные программы, изначально написанные на языке ассемблер. Кроме того, в силу избыточности сгенерированного машинного кода оттранслированные программы работают в несколько раз медленнее.

Системы программирования (например, Delphi) включают в себя: конкретный язык программирования, транслятор, библиотеки стандартных программ, редактор связей, отладчик, средства оптимизации сгенерированного кода программ, средства управления создаваемым проектом, различного рода техническую документацию. Основное назначение систем программирования – повышение эффективности разработки и отладки программ.

Общая схема получения исполняемого кода программы из исходной программы, написанной на языке высокого уровня, приведена на рисунке 5.1.

Рис. 5.1. Обобщенная схема обработки исходной программы

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

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

В основе работы программ трансляторов используются два подхода: интерпретация команд (операторов) и компиляция программ в целом.

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

§ при многократном включении конкретного оператора в программу каждое его выполнение требует заново реализации операции трансляции в машинные команды, что приводит к значительному замедлению выполнения программы;

§ программа интерпретатор в течение всего времени выполнения исходной программы должна находиться в ОЗУ и, следовательно, она уменьшает доступный системе объем оперативной памяти;

§ интерпретаторы поддерживают диалоговый режим работы, что способствует разработке и отладке программ, благодаря возможности оперативного внесения изменений в конкретный выполняемый оператор.

Примером реализации интерпретатора является инструментарий языка Basic (однако есть версии, например Quick Basic, позволяющие создавать исполняемые модули).

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

В ряде случаев дополнительно используют средства оптимизации кода программ – оптимизирующие трансляторы, которые после завершения компиляции осуществляют оптимизацию полученного объектного модуля. В частности, при оптимизации кода выполняется поиск команд, которые не выполняются ни при каких условиях, и их удаление. Оптимизация, как правило, позволяет повысить производительность исполняемого программного кода на 10 — 15%, однако сам процесс оптимизации требует значительных временных затрат.

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

В целом для компиляторов характерны следующие особенности:

· откомпилированная программа работает на несколько порядков быстрее, чем эта же исходная программа выполняется с использованием интерпретатора;

· в отличие от интерпретатора, компилятор при выполнении программы не занимает место в ОЗУ (выгружается оттуда после завершения компиляции);

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

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

X Международная студенческая научная конференция Студенческий научный форум — 2018

ИНСТРУМЕНТАРИЙ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ

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

База данных — представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).

Многие специалисты указывают на распространённую ошибку, состоящую в некорректном использовании термина «база данных» вместо термина «система управления базами данных», и указывают на необходимость различения этих понятий.

ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ

В технологии программирования основное внимание уделяется изучению процессов разработки ПС (технологических процессов) и порядку их прохождения: методы и инструменты разработки ПС участвуют в этих процессах, их применении и формировании технологических процессов. В разработке программного обеспечения различные методы и инструменты для разработки ПС изучаются с точки зрения достижения определенных целей. Эти методы могут использоваться в различных технологических процессах [1].

Рассмотрим несколько аспектов развития технологии программирования:

«Стихийное» программирование — это отсутствие четко сформулированных технологий программирования. Этот период охватывает 60-е годы XX века. Разработка технологии должна изменить язык компьютера ассемблерами, а затем алгоритмическими языками. Также была заменена повторное использование подпрограмм. Разработка «снизу в верх» использовалась спонтанно, подход, в котором были разработаны и внедрены первоначально относительно простые подпрограммы, из которых они позже пытались построить сложную программу. За это время начался кризис программирования. Это было выражено в том, что фирмы превысили все предельные сроки завершения программных проектов и их стоимость. В результате многие проекты еще не завершены.

Структурный подход к программированию. Этот период охватывает 60-70-е годы XX века. Структурный подход был набором технологических методов. Этот подход основан на принципе разложения сложных частей с целью их последующей реализации в виде отдельных подпрограмм. Структурный подход представляется в виде иерархии подзадач простейшей структуры. Алгоритм представлялся «сверху вниз» и подразумевал реализацию общей идеи, обеспечивающей разработку интерфейсов подпрограмм. Были введены ограничения на разработку алгоритмов, рекомендованы формальные модели для их описания, а также специальный метод разработки алгоритмов — метод пошаговой детализации. Поддержка принципов структурного программирования была заложена в основу языков процедурного программирования (PL / 1, Algol-68, Pascal, C).

Объектный подход. Сформирован с середины 80-х и до конца 90-х годов XX века. Объектно-ориентированное программирование или ООП определяется технологией создания сложного программного обеспечения на основе представления программы в виде объектов, каждый из которых является экземпляром определенного класса. Классы, в свою очередь, образуют иерархию с наследованием свойств. Основным преимуществом ООП по сравнению со структурным подходом является более естественное разложение программного обеспечения, что значительно упрощает разработку программы.

Компонентный подход и CASE-технологии (с середины 90-х годов 20-го века до нашего времени). Этот подход включает в себя создание программного обеспечения из отдельных компонентов — физически отдельных частей программного обеспечения, которые взаимодействуют друг с другом посредством стандартизованных двоичных интерфейсов. В отличие от обычных объектов объекты компонента могут быть собраны в динамически называемые библиотеки или исполняемые файлы, распределенные в двоичной форме (без исходного кода) и используемые на любом языке программирования, который поддерживает соответствующую технологию. В настоящее время рынок компонентов поддерживается в Интернете, массовой рекламе и публикациях. Принципы компонентного подхода были разработаны Microsoft, начиная с технологии OLE (Object Linking and Embedding), которая использовалась в более ранних версиях Windows для создания составных документов. Его разработкой стало появление COM-технологии (Component Object Model), а затем ее распределенной версии (DCOM), на основе которой были разработаны различные технологии [2].

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

Читать еще:  Что такое сокеты в программировании

Выделяют две группы программных продуктов:

Инструменты для создания приложений.

Средства для создания информационных систем (CASE-технологии).

Средства для создания приложений

Средства для создания приложений делятся на локальные и интегрированные средства, рисунок 1.

Рисунок 1. Инструментарий технологии программирования

Локальные инструменты делятся на языки и системы программирования, а также на среду инструментов пользователя.

Язык программирования — формализованный язык для описания алгоритма решения проблемы на компьютере. Они делятся на классы [1]:

машинные языки — языки программирования, воспринимаемые аппаратным обеспечением компьютера (машинные коды);

машинно-ориентированные языки — языки программирования, которые отражают структуру конкретного типа компьютера (сборщиков);

алгоритмические языки — компьютерно-независимые языки программирования для отражения структуры алгоритма (Pascal, BASIC, FORTRAN);

процессно-ориентированные языки — языки программирования, где есть возможность описать программу как набор процедур (подпрограмм);

проблемно-ориентированные языки — предназначены для решения задач определенного класса (Lisp, Simula);

интегрированные системы программирования.

Под системой программирования понимается набор языков программирования и виртуальная машина, которая обеспечивает выполнение программ, написанных на этом языке [1].

Система программирования, помимо переводчика, включает в себя текстовый редактор, компоновщик, стандартную библиотеку программ, отладчик, средства визуальной автоматизации для программирования. Примерами таких систем являются Delphi, Visual Basic, Visual C ++, Visual FoxPro [3]. Инструментальная среда пользователя представлена специальными средствами, встроенными в пакеты прикладных программ, такими как:

библиотека функций, процедур, объектов и методов обра­ботки;

клавишные и языковые макросы;

конструкторы экранных форм и отчетов;

языки запросов высокого уровня;

конструкторы меню и многое другое.

Средства для создания информационных систем (CASE-технологии)

CASE (Computer Aided Software/System Engineering) — в дословном переводе – разработка программного обеспечения информационных систем с помощью компьютера.

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

Средства CASE-технологии делятся на две группы:

встроенные в систему реализации — все решения по проектированию и реализации привязаны к выбранной системе управления базами данных (СУБД);

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

Основное достоинство CASE-технологии — поддержка коллективной работы над проектом за счет возможности работы в локальной сети разработчиков, экспорта/импорта любых фрагментов проекта, организационного управления проектом [2].

Информационная система – взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели.

2. РАЗРАБОТКА КОНЦЕПТУАЛЬНОЙ МОДЕЛИ БАЗЫ ДАННЫХ

База данных предназначена для хранения информации о классификации инструментария технологии программирования, который делится на две основные группы: средства для разработки приложений и CASE-технологии. Как уже известно (рисунок 1) средства для разработки приложений делятся на локальные средства и интегрированные среды. Локальные средства, в текущей базе данных, будут включать в себя языки программирования и инструментальную среду пользователя. Так как инструментальная среда по своей сути является интегрированной средой программирования, учитывать её в модели текущей базы данных не будем.

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

Построим ER диаграмму, описывающую нашу модель базы данных (рисунок 2).

3. ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

Для разработки заданной базы данных выбрана СУБД Microsoft Access 2016.

С учетом типов данных и ограничений, принятых в MS Access, опишем требования к таблицам (таблица 1-3).

Таблица 1 – Требования к таблице “Язык программирования

Лекция 8. Инструментальные средства разработки программ

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

1) локальные средства, обеспечивающие выполнение отдельных стадий по созданию программ. В их составе трансляторы, компоновщики, библиотекари, библиотеки подпрограмм, отладчики;

2) интегрированные среды для разработки программ, обеспечивающие выполнение всего комплекса взаимосвязанных работ по созданию программ за счет объединения локальных средств программирования.

Транслятор – это программа, которая переводит входную программу в эквивалентную ей выходную программу на выходном языке, к примеру с языка Visual Basic на язык С++.

Трансляторы делятся на компиляторы и интерпретаторы.

Компилятор (англ. compiler – составитель, собиратель) транслятор, который осуществляет перевод исходной программы в объектную программу на языке машинных команд или ассемблера. Результатом работы компилятора будет файл, содержащий объектный код, поэтому файл обычно имеет расширение *.obj. Объектный код не является готовой для исполнения программой, требуется еще работа редактора связей (компоновщика).

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

откомпилированный код выполняется быстрее;

откомпилированный код оптимизирован и, следовательно, рациональнее использует ресурсы компьютера.

В то же время компиляторы сложнее в разработке и имеют один существенный недостаток: откомпилированный код всегда привязан к системе команд данного компьютера (построен с учетом особенностей данной ВС). В компьютерных сетях требуется единообразное выполнение программ на всех подключенных машинах. Поэтому во многих языках программирования, использующихся в Internet, практикуется интерпретация текста или сочетание компиляции и интерпретации (например, С#, Java и JavaScript).

Транслирование программы состоит из следующих этапов.

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

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

Контроль типов. Этот этап направлен на выявление ошибок, связанных с несовместимостью типов данных.

Генерация кода. Генератор превращает лексемы в последовательность машинных команд.

Редактор связей (компоновщик) программа, связывающая между собой объектные файлы, порождаемые компилятором, файлы библиотек подпрограмм. Обычное имя данной программы – LINK. Результатом работы компоновщика является исполняемый файл с расширением .EXE или сообщение об ошибке, если компоновщик не обнаружит какой–либо необходимый модуль программы или библиотечную функцию.

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

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

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

Библиотеки подпрограмм – файлы, содержащие набор описаний подпрограмм и их объектные коды. В библиотеки подпрограмм включены удобные для пользователей реализации широко распространенных алгоритмов.

Важное место в системе программирования занимают ассемблеры, представленные комплексами, состоящими из входного языка программирования ассемблера и программы ассемблер, которая является простейшим транслятором.

Следующим шагом в развитии систем программирования стало появление интегрированных средств разработки (ИСР). Интегрированные системы, помимо набора обычных инструментальных средств (компилятор, компоновщик, библиотекарь, отладчик), включают:

средства оптимизации кода программ;

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

документатор исходного кода программы;

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

Средства поддержки проектов – новый класс программного обеспечения, предназначен:

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

поддержки версий программы с автоматической разноской изменений;

получения статистики о ходе работ проекта.

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

Примерами таких популярных систем являются разработки фирмы Microsoft (Visual Studio). Среда сочетает в себе разнообразные возможности повторного использования кода, открытую архитектуру и высокопроизводительные компиляторы языков C++ и Object Pascal, а также масштабируемый доступ к данным, хранящимся в различных СУБД, как настольных, так и серверных.

Ссылка на основную публикацию
Adblock
detector