Слайд 1Современные системы программирования
Слайд 2Состав системы программирования
Текстовый редактор
Компилятор
Компоновщик
Библиотеки прикладных программ
Загрузчик
Отладчик
Слайд 3Взаимосвязь технических средств, используемых при разработке программы
Подготовка текстов исходной программы
Подать
данные в виде текста исходной программы на вход компилятора
Получить от
компилятора результаты его работы в виде набора объектных файлов
Подать весь набор полученных объектных файлов на вход компоновщика
Получить от компоновщика единый исполняемый файл программы и подготовить его к выполнению с помощью загрузчика
Послать программу на выполнение, при необходимости использовать отладчик для проверки правильности выполнения программы
Слайд 4Программа MAKE (язык MAKEFILE)
Слайд 5Интегрированные среды разработки
Turbo Pascal (Borland International)
GUI (Graphical User Interface)
API (Application
Programming Interface)
Слайд 6Структура современной системы программирования
Слайд 7Принципы функционирования систем программирования
Функции текстовых редакторов в системах программирования
Лексический анализ
«на лету»
Системы гиперссылок подсказок и справок (пояснение, вариант кода)
Справка по
семантике и синтаксису входного языка
Руководство по работе с самой системой программирования
Справка о функциях библиотек системы программировани
Слайд 8Компилятор
Компоновщик
Загрузчики и отладчики
Трансляция адресов. Настраивающий загрузчик
Динамические загрузчики
Слайд 9Отладчик
Последовательное пошаговое выполнение результирующей программы на основе шагов по машинным
командам или по операторам входного языка;
Выполнение результирующей программы до достижения
ею одной из заданных точек останова;
Выполнение результирующей программы до наступления некоторых заданных условий, связанных с данными или адресами, выполняемыми этой программой;
Просмотр содержимого областей памяти, занятых командами или данными результирующей программы.
Слайд 10Дальнейшее развитие отладчиков
Появление интегрированных средств разработки;
Появление возможностей аппаратной поддержки средств
отладки.
Слайд 11Библиотеки подпрограмм
Turbo Pascal : TPU – Turbo Pascal Units
Fortran
Cobol
Слайд 12Статические библиотеки подпрограмм
Недостатки статических библиотек:
При наличии ошибки в библиотеке она
будет проявляться во всех программах, ее использующих;
Т.к. объектный код статических
библиотек встраивается в исполняемый файл, то это ведет к увеличению объема результирующей программы.
Слайд 13Динамические библиотеки подпрограмм
Варианты загрузки динамических библиотек:
Сразу же при загрузке программы;
При
непосредственном обращении к ее функциям.
Преимущества динамических библиотек – они не
требуют включать в результирующую программу объектный код часто используемых функций.
Недостатки динамических библиотек – результирующие программы связаны с объектным кодом, непосредственно не входящим в их состав.
Слайд 14Ресурсы пользовательского интерфейса
Множество данных, обеспечивающих внешний вид интерфейса пользователя результирующей
программы, не связанных напрямую с логикой ее выполнения.
Примеры ресурсов:
тексты
сообщений программы,
Цветовая гамма интерфейса;
Надписи на элементах управления.
Слайд 15Редакторы ресурсов
Язык описания ресурсов
RAD – средства быстрой разработки приложений.
Слайд 16Мобильность и переносимость программного обеспечения
Мобильность ПО – способность ПО выполнять
свои функции на различных вычислительных системах вне зависимости от их
архитектуры.
Факторы, влияющие на мобильность ПО:
Состав специализированных аппаратных средств и периферийных устройств, используемых ПО;
Тип ОС, на которую ориентировано ПО;
Состав и функции динамически загружаемых библиотек;
Структура и формат хранения ресурсов пользовательского интерфейса, используемых ПО;
Перечень внешних программ и модулей, с которыми взаимодействует данное ПО.
Слайд 17Обеспечение переносимости исходного кода программ
ПО сохраняет способность выполнять свои функции
на различных вычислительных системах вне зависимости от их архитектуры в
том случае, если оно создано на основе одного и того же исходного кода с помощью некоторой системы программирования и ориентировано на определенную целевую вычислительную систему (переносимость ПО).
Слайд 18Правила обеспечения переносимости исходного кода
Не использовать в исходном коде прямые
обращения к периферийным устройствам компьютера, к драйверам аппаратных средств;
Не включать
в исходный код прямые обращения к драйверам ОС;
Не использовать статические и динамические библиотеки, ориентированные на определенный тип ОС;
Использовать только широко распространенные динамические библиотеки, либо библиотеки, для которых имеется исходный код;
Подключать динамически подключаемые библиотеки только средствами системы программирования, не использовать для этого специфические функции ОС;
Использовать только средства системы программирования для создания ресурсов пользовательского интерфейса, не обращаться к системным ресурсам;
Исключить взаимодействие с внешними программами и модулями, либо ограничить его только программами, доступными во всех типах ОС;
Не использовать для взаимодействия с внешними программами и модулями прямые обращения к средствам ОС.
Слайд 20Стандарт переносимости
POSIX (IEEE Std 1003.1)
C, C++ (ОС UNIX)
FORTRAN
Basic, Pascal
Слайд 21Мобильность ПО на основе интерпретаторов
Полная переносимость исходного кода при условии
ограничения на прямое использование функций ОС
Недостатки:
Исходный текст программы может быть
выполнен интерпретатором далеко не для всех ЯП
Скорость выполнения кода интерпретатором ниже, чем у откомпилированного кода
Слайд 22Мобильность ПО на основе промежуточного двоичного кода
Слайд 23Преимущества и недостатки переносимости программ
Преимущества:
Расширение рынка сбыта ПО
Снижение зависимости от
изменения архитектуры вычислительных систем
Снижение зависимости коммерческого успеха создаваемого ПО от
позиции на рынке производителей ОС и систем программирования
Недостатки:
Потеря эффективности (работа с драйверами аппаратуры, прямое обращение к функциям ОС – самые эффективные средства работы)
Увеличение объема кода программ
Снижение скорости выполнения при интерпретации по сравнению с откомпилированным кодом
Слайд 24Разработка приложений в архитектуре «клиент-сервер»
Две логически цельные составляющие прикладной программы:
Обеспечение
«нижнего уровня» работы приложения, отвечающее за методы хранения, резервирования, доступа
и разделения данных
обеспечение «верхнего уровня» работы приложения, отвечающее за логику обработки данных и интерфейс пользователя
Слайд 25Структура приложения в архитектуре «файл - сервер»
Слайд 26Структура приложения в архитектуре «клиент - сервер»
Слайд 27Типы СУБД
Иерархические
Сетевые
Реляционные
Объектно-ориентированные
Слайд 28Современные серверы данных
Реляционные СУБД (Sybase, Microsoft SQL Server, Oracle, DB2)
Механизм
запросов (язык запросов SQL – Structured Query Language)
Слайд 29Язык запросов к данным
Основные операции над данными на сервере:
Выборка (SELECT)
Добавление
(INSERT)
Обновление (UPDATE)
Удаление (DELETE)
Механизм транзакций
Основной недостаток – интерпретируемость (каждый раз производится
распознавание запроса и проверка его правильности)
Слайд 30Технологии доступа к серверам данных
Динамически загружаемые библиотеки
Универсальный интерфейс взаимодействия клиентской
и серверной части - интерфейс ODBC (Open DataBase Connectivity)
Слайд 31Создание приложений в архитектуре «клиент-сервер»
Преимущества использования:
Разработчики приложений в архитектуре «клиент-сервер»
избавлены от необходимости самостоятельно создавать средства для хранения данных, разделения
доступа к ним, защиты и резервного копирования данных – все эти функции берет на себя СУБД
СУБД обеспечивает высоконадежные механизмы разделения доступа к данным и защиты их от несанкционированного доступа, удовлетворяющие общепризнанным стандартам
Все функции по управлению данными выполняются на сервере данных, что снижает требования к вычислительным ресурсам рабочих станций, на которых выполняются клиентские приложения
Для обмена данными между клиентскими приложениями и сервером данных через сеть передаются не все данные, а только запросы клиента и ответы сервера, что снижает нагрузку на сеть
При необходимости увеличить число клиентов в сети достаточно включить в сеть новые рабочие станции, увеличить мощность сервера и пропускную способность сети, но нет необходимости обновлять ПО и аппаратуру существующих рабочих станций
Слайд 32Недостатки архитектуры «клиент - сервер»
Функции управления возложены на сервер данных,
но обработка данных осуществляется по-прежнему клиентскими приложениями, что не позволяет
существенно снизить требования к ним, если логика системы предусматривает достаточно сложные манипуляции с данными
При необходимости изменить или дополнить логику обработки данных надо выполнить обновление клиентских приложений на всех рабочих местах, что может быть достаточно трудоемко
Если необходимо изменить только внешний вид интерфейса пользователя (отображение данных), но оставить неизменной логику обработки данных, то чаще всего требуется заново создать и установить на рабочем месте новый вариант клиентской части системы
При использовании мощной промышленной СУБД требуется наличие лицензии на подключение к СУБД каждого рабочего места, где установлена клиентская часть ПО
Слайд 33Разработка программ в многоуровневой архитектуре