# Введение

Под современными технологиями программирования сегодня понимают в основном, Интернет-технологии, включающие в себя концептуальные знания WWW и HTML, Java, клиентских и серверных скриптов и языков запросов к базам данных, основы web-дизайна. Однако наиболее важной частью профессиональной подготовки специалиста является умение работать над большим проектом, быть в “команде” и доводить проект от замысла до реализации.

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

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

Существенная черта промышленной программы - уровень сложности: один разработчик практически не в состоянии охватить все аспекты такой системы. Грубо говоря, сложность промышленных программ превышает возможности человеческого интеллекта. Увы, но сложность, о которой мы говорим, по-видимому, присуща всем большим программных системам. Говоря "присуща", мы имеем в виду, что эта сложность здесь неизбежна: с ней можно справиться, но избавиться от нее нельзя.

Цель данного учебного курса – обучение методике анализа программных систем на основе построения визуальных моделей в рамках унифицированного процесса разработки ПО (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-страниц вопросам совместимости с браузерами приходится уделять особое внимание. Чтобы ускорить загрузку страниц, необходимо минимизировать общий объем расположенных на них иллюстраций.

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

Существует достаточное количество программных оболочек, в которых реализована графическая нотация и стереотипы языка UML. Наиболее популярными из них являются Rational Rose (разработчик Rational Software), в которой используется версия 1.5 языка UML и 5 Enterprise Architect (от Sparx Systems), где уже используется версия 2.0 языка UML Базовая нотация языка UML имеется также в графическом редакторе Visio.

В представленных ниже лабораторных работах в качестве основного инструмента для построения визуальных моделей будет использована программная оболочка Rational Rose Enterprise Edition 2003.