Файл: Конспект лекций для студентов специальности i 53 01 07 Информационные технологии и управление в технических системах.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 103
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет информатики и радиоэлектроники»
Кафедра систем управления
А.П. Пашкевич, О.А. Чумаков
СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ПРГРАММИРОВАНИЯ
Конспект лекций для студентов специальности
I – 53 01 07 «Информационные технологии и управление в технических системах»
дневной формы обучения
Минск 2007
2
Содержание
Введение ........................................................................................................... 4 1 Технологии Web-программирования ........................................................... 7 1.1 Серверные Web приложения ................................................................. 7 1.2 Клиентские приложения ....................................................................... 9 2 Средства просмотра гипертекста ............................................................... 10 2.1 Отображение страницы в окне браузера............................................. 11 3 Графика и текст в Web................................................................................ 12 3.1 Графика в Web..................................................................................... 12 3.2 Текст в Web. Два комплекта шрифтов ................................................ 13 4 Концепция HTML........................................................................................ 13 4.1 Структура HTML страницы................................................................. 13 4.2 Раздел заголовка ................................................................................... 15 4.3 Раздел тела документа.......................................................................... 15 4.4 Управление отображением текста...................................................... 16 4.5 Таблицы ................................................................................................ 16 4.6 Гиперссылки ......................................................................................... 18 4.7 Списки стилей ...................................................................................... 18
Язык UML....................................................................................................... 22 1 Структура и компоненты языка UML........................................................ 23 1.1 Общие принципы.................................................................................. 23 1.2 Сущности .............................................................................................. 23 1.2 Отношения ............................................................................................ 27 1.2 Диаграммы............................................................................................ 28 2 Диаграммы вариантов использования (use case diagram) ......................... 30 2.1 Базовые элементы диаграммы вариантов использования.................. 30 2.2 Отношения на диаграмме вариантов использования ......................... 32 2.3 Пример диаграммы вариантов использования ................................... 34 3 Диаграммы последовательности (sequence diagram)................................. 34 3.1 Объекты диаграммы последовательности .......................................... 35 3.2 Пример диаграммы последовательности ............................................ 37 4 Диаграммы кооперации (collaboration diagram) ........................................ 39 4.1 Объекты диаграммы кооперации ........................................................ 39 4.2 Пример диаграммы кооперации .......................................................... 42 5 Диаграммы классов(class diagram) ............................................................. 42 5.1 Компоненты диаграммы классов......................................................... 43
3 5.2 Прямое и обратное проектирование.................................................... 47 5.3 Примеры диаграмм классов................................................................. 49 6 Диаграммы состояний (statechart diagram) ................................................ 50 6.1. Автоматы ............................................................................................. 51 6.2 Пример диаграммы состояний............................................................. 53 7 Диаграммы деятельности (activity diagram)............................................... 54 7.1. Основные элементы диаграммы деятельности.................................. 54 7.2 Пример диаграммы деятельности........................................................ 57 8 Диаграммы компонентов (component diagram).......................................... 58 8.1 Основные графические элементы диаграммы компонентов ............. 58 9 Диаграммы развертывания (deployment diagram)...................................... 60 9.1 Элементы диаграммы компонентов .................................................... 61 9.2 Пример диаграммы развертывания ..................................................... 63
Литература...................................................................................................... 64
4
Введение
Под современными технологиями программирования сегодня понимают в основном, Интернет-технологии, включающие в себя концептуальные знания
WWW и HTML, Java, клиентских и серверных скриптов и языков запросов к базам данных, основы web-дизайна. Однако наиболее важной частью профессиональной подготовки специалиста является умение работать над большим проектом, быть в “команде” и доводить проект от замысла до реализации.
В силу специфичности производства ПО (практически нулевая стоимость тиражирования, очень быстрый процесс устаревания и т. д.) технология его создания очень сильно завязана на человеческий ресурс и поэтому должна включать в себя организационный и управленческий аспекты. На сегодняшний день в мире существует огромное количество различных процессов для создания
ПО. Тем не менее, именно технологий, рассматривающих полный жизненный цикл проекта разработки ПО, сочетающих в себе научный подход, серьезную базу исследований и имеющих историю реального использования и адаптации,
относительно немного.
Нас интересует разработка того, что мы будем называть промышленными программными продуктами. Они применяются для решения самых разных задач,
таких, например, как системы с обратной связью, которые управляют или сами управляются событиями физического мира и для которых ресурсы времени и памяти ограничены; задачи поддержания целостности информации объемом в сотни тысяч записей при параллельном доступе к ней с обновлениями и запросами; системы управления и контроля за реальными процессами
(например, диспетчеризация воздушного или железнодорожного транспорта).
Системы подобного типа обычно имеют большое время жизни, и большое количество пользователей оказывается в зависимости от их нормального функционирования. В мире промышленных программ мы также встречаем среды разработки, которые упрощают создание приложений в конкретных областях, и программы, которые имитируют определенные стороны человеческого интеллекта.
Существенная черта промышленной программы - уровень сложности:
один разработчик практически не в состоянии охватить все аспекты такой системы. Грубо говоря, сложность промышленных программ превышает возможности человеческого интеллекта. Увы, но сложность, о которой мы говорим, по-видимому, присуща всем большим программных системам. Говоря "присуща", мы имеем в виду, что эта сложность здесь неизбежна: с ней можно справиться, но избавиться от нее нельзя.
Цель данного учебного курса – обучение методике анализа программных
5
систем на основе построения визуальных моделей в рамках унифицированного процесса разработки ПО (The Unified Software Development Process) [2] и с использованием унифицированного языка моделирования UML (The Unified
Modeling Language) [4].
В последние годы прошлого века появился и очень быстро завоевал огромную популярность новый класс приложений – так называемые Web- приложения. Обеспечивающие доступ через Интернет или интрасеть к информационным системам и базам данных, Web-приложения стали одним из наиболее эффективных инструментов современного бизнеса.
Для разработки Web-серверов, являющихся Web-приложениями, широко используется язык разметки гипертекста HTML (HyperText Markup Language).
Фактически, все страницы, которые видят посетители Web-сервера, составлены на языке HTML и содержат объекты различных типов (изображения, анимацию,
формы для ввода информации и т.д.). Если Web-сервер содержит только статическую информацию, изменяющуюся эпизодически, ее можно представить в виде набора документов HTML. Для их создания подходить практически любой текстовый редактор (даже простейший Notepad), хотя лучше воспользоваться специальными средствами визуального проектирования страниц HTML, такими, как Microsoft FrontPage.
Сам по себе язык HTML несложен, однако эта простота обманчива. В силу ограниченности его возможностей и ряда других обстоятельств приходится немало потрудиться, чтобы получить желаемый результат. Одна и та же страница может по-разному отображаться в различных браузерах, поэтому при проектировании Web-страниц вопросам совместимости с браузерами приходится уделять особое внимание. Чтобы ускорить загрузку страниц, необходимо минимизировать общий объем расположенных на них иллюстраций.
В данном курсе лекций рассматриваются архитектура, принципы функционирования и обработки информации в микропроцессорных системах управления. Приводятся базовые сведения о построении подсистемы памяти,
организации ввода/вывода информации и системе команд восьмиразрядного микропроцессора. В заключительном разделе раскрываются принципы программной реализации алгоритмов генерации импульсов, двухпозиционных и пропорциональных регуляторов, а также алгоритмов контурного управления.
Поскольку происходящее сегодня быстрое обновление технических средств делает нецелесообразным описание конкретных устройств, то в данном курсе лекций изложены базовые принципы построения микропроцессорных систем управления.
6
Существует достаточное количество программных оболочек, в которых реализована графическая нотация и стереотипы языка UML. Наиболее популярными из них являются Rational Rose (разработчик Rational Software), в которой используется версия 1.5 языка UML и 5 Enterprise Architect (от Sparx
Systems), где уже используется версия 2.0 языка UML Базовая нотация языка
UML имеется также в графическом редакторе Visio.
В представленных ниже лабораторных работах в качестве основного инструмента для построения визуальных моделей будет использована программная оболочка Rational Rose Enterprise Edition 2003.
7
1 Технологии Web-программирования
1.1 Серверные Web приложения
Различают пассивные и активные серверы Web. Если страницы сервера содержат только статическую текстовую и мультимедийную информацию, а также гипертекстовые ссылки на другие страницы, то сервер называется
пассивным. Когда же страницы сервера ведут себя аналогично окнам обычных интерактивных приложений, вступая в диалог с пользователем, пользователь имеет дело с активным сервером. Очевидно, статический сервер Web не может служить основой для создания интерактивных приложений в сети Интернет с базами данных, так как он не предусматривает никаких средств ввода и обработки запросов.
Программы CGI. Для того чтобы сервер Web мог вести диалог с пользователем, разработан механизм программных расширений сервера,
основанный на применении так называемого стандартного шлюзового интерфейса (Common Gateway Interface, CGI). Программы CGI пользуются этим интерфейсом для получения сведений от пользователя, для их обработки и отправки обратно в виде нового документа HTML, ссылки на существующий документ или на другой объект.
При этом для ввода информации пользователем в документ HTML
встраиваются формы, содержащие различные органы управления. Заполнив всю форму, пользователь нажимает кнопку ввода, и данные из полей формы передаются программе CGI (рис. 1). Обработав данные, программа CGI
динамически формирует новый документ HTML с результатами обработки и отправляет его обратно пользователю. При необходимости программа CGI
обращается к СУБД или другим программным системам, работающим на сервере.
Программы CGI можно составлять на различных языках программирования – С, C++, Perl, Pascal, Java и т. д. Perl особенно удобен для создания программ CGI, так как, он содержит соответствующие функции, и доступен в различных операционных системах, в том числе Linux и Solaris.
Программа CGI – это консольное приложение, работающее в среде операционной системы сервера Web и осуществляющее обмен данными через стандартные потоки ввода и вывода. Такое приложение запускается только по запросу пользователя, когда к нему выполняется обращение из документа
HTML. Окончив обработку запроса пользователя, программа CGI завершается.
Расширения ISAPI. Другая технология расширения сервера Web –
программный интерфейс сервера Microsoft IIS – ISAPI (Internet information Server
Application Program Interface). По своим функциональным возможностям модули
ISAPI аналогичны программам CGI, однако они работают быстрее за счет того,
что приложение не завершается после обработки данных, а постоянно работает в виде процесса. Для CGI программ, для каждого пользователя приходится
8
запускать отдельный процесс, что занимает время, а приложение ISAPI
обрабатывает запросы от всех пользователей. С другой стороны, так как ISAPI
работает в адресном пространстве сервера Web, ошибка в приложении ISAPI
способна вызвать аварийное завершение работы сервера Web. Ошибки в программе CGI менее значимы, так как авария произойдет в том процессе, в котором работает эта программа.
Рис. 1. Взаимодействие клиентского браузера и программного расширения
Хотя технология ISAPI изначально предназначалась только для сервера
Microsoft IIS, сейчас ее можно использовать и на платформе Linux. Для создания расширения ISAPI, используются языки С и C++, а также функции программного интерфейса Windows.
Приложения ASP. Технология Active Server Pages (ASP) предполагает использование на сервере Internet Information Server текстовых файлов с расширением asp, содержащих операторы языка HTML, и сценарии, на JScript или VB Script. Когда пользователь обращается к странице ASP, сервер Web интерпретирует расположенный в ней сценарий. При этом анализируются параметры, переданные этой странице. Далее страница модифицируется (или создается заново), а затем отправляется обратно пользователю. Сервер Web отправляет не саму страницу, а результат ее интерпретации, а логика работы страницы скрыта от пользователей.
Приложения РНР. Еще один способ создания активных серверов Web –
использование технологии предварительной обработки гипертекста РНР
(сокращение от «Php: Hypertext Preprocessor»). В то время как ASP предполагает активное использование модели компонентного объекта СОМ и элементов управления ActiveX, технология РНР базируются на классических библиотеках объектных модулей. Разработанная для платформы Unix и ее клонов, РНР
сегодня доступна и на платформе Microsoft Windows.
9
1.2 Клиентские приложения
Целесообразно разделять работу между клиентом и сервером, чтобы добиться оптимальной производительности в условиях низкоскоростных каналов Интернета. Предварительную обработку введенных данных,
отправляемых серверу, имеет смысл выполнять на стороне клиента. Это позволит исключить, повторные передачи неправильно заполненных форм. А
вот выборку из базы данных должен выполнять сервер.
Браузер, отображающий содержимое страниц, играет роль
«интеллектуального» терминала. Помимо показа текста и графических изображений, браузер представляет собой среду, в которой работают активные объекты, встроенные в страницы Web. Это сценарии JavaScript, VB Script,
аплеты Java, элементы управления ActiveX и некоторые другие.
Клиентские сценарии JavaScript. Язык сценариев JavaScript разработан фирмой Netscape Communication Corporation и первоначально назывался
LiveScript. Язык JavaScript не имеет никакого отношения к языку Java,
созданному Sun Microsystems.
Конструкции языка JavaScript встраиваются в страницы HTML и интерпретируются под управлением браузера при загрузке страниц, а также при совершении пользователем определенных действий над объектами,
расположенными в этих страницах. Сценарии JavaScript способны обрабатывать данные, введенные пользователями в полях форм, а также события,
возникающие в процессе манипуляций пользователя с мышью, копировать в окно браузера другие страницы HTML или изменять содержимое уже загруженных страниц.
Сценарии JavaScript широко применяются для создания различных визуальных эффектов, таких, например, как изменение внешнего вида элементов управления, над которыми установлен курсор мыши, анимация графических изображений, создание звуковых эффектов и т. д.
Механизм локальной памяти Cookie позволяет сценариям JavaScript сохранять на компьютере локальную информацию, введенную пользователем.
Например, в Cookie может храниться список товаров из Интернет-магазина,
отобранных для покупки.
Для обеспечения совместимости с различными браузерами приходится учитывать такие особенности, что например, браузер IE реализует собственную версию JavaScript, называемую JScript.
Клиентские сценарии VB Script. Помимо JScript, браузер IE способен работать с VB Script, являющийся подмножеством Visual Basic и функционально равноценен языку JavaScript. Так как не все в Интернет работают с IE,
применение VB Script для создания страниц, расположенных в Интернете,
неоправдано. Ситуация меняется, если эта технология применяется в корпоративной интрасети. Когда администратор может установить на компьютеры всех пользователей IE, а в штате компании есть программисты,