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

кандидата технических наук
Галкин, Алексей Александрович
город
Санкт-Петербург
год
2004
специальность ВАК РФ
05.13.12
Диссертация по информатике, вычислительной технике и управлению на тему «Методы разработки переносимых систем автоматизированного проектирования»

Оглавление автор диссертации — кандидата технических наук Галкин, Алексей Александрович

Введение

Глава 1.Анализ видов переносимого программного обеспечения.

1.1. Базовые определения.

1.2. Классификация переносимых систем.

1.2.1. Системы, независимые от версии операционной системы на одной архитектурной платформе.

1.2.2. Системы, независимые от архитектурной платформы в рамках одной версии операционной системы и системы, независимые от версии операционной системы на разных архитектурных платформах.

1.2.3. Системы, независимые от операционной системы в рамках одной аппаратной архитектуры и системы, независимые от операционной системы на любой аппаратной платформе.

1.2.4. Полностью независимые.

1.2.5; Условно независимые с заменой (переделкой) одного (нескольких) из подмодулей без повторной трансляции всей системы.

1.2.6. Условно независимые с заменой (переделкой) одного (нескольких) из подмодулей с повторной трансляций всей системы.

Введение 2004 год, диссертация по информатике, вычислительной технике и управлению, Галкин, Алексей Александрович

CAD - программы появились очень давно, как только компьютеры стали достаточно мощными для того, чтобы производить необходимые расчеты. В то время операционные системы были намного проще. Поэтому все программное обеспечение ^писалось « в расчете на одну конкретную машину. При этом даже были возможны ситуации, когда при небольшом изменении конфигурации; машины программы переставала работать. В то время это было оправдано. Часто создавалось аппаратное обеспечение для конкретного программного пакета. Ведь, до сих. пор осталось верным? правило, что программное обеспечение: стоит дороже «железа», на котором оно работает. Так продолжалось примерно до того времени, пока не появились персональные компьютеры, стоившие на порядок дешевле больших машин, хотя по мощности это был некоторый шаг назад. Потребовалось перенести популярные программные пакеты = на PC, и начинать писать новые для > этой платформы. Вследствие этого, в этот момент появилось две ветви развития программного обеспечения. В' первой так и остались программы для больших машин, работающие в основном по UNIX, или ; подобной ему операционной системе, которая уже выросла в мощную многопользовательскую, многозадачную среду. Система к этому времени, развилась до такого уровня- что- изменение конфигурации машины оказывало очень малое влияние на работу программ: Поэтому актуальность вопроса адаптации программного обеспечения к конкретной машине уменьшилась. Хотя привязанность к определенному типу машин конечно; осталась, как и некоторые другие вопросы. Другая- ветвь, появилась на PC и подобных им малых и персональных машинах. На первом этапе, когда особых изменений; в архитектуре не проводилось, была одна простая- дисковая операционная система, путь напоминал тот, которым идут UNIX системы. Но, по мере развития этого класса вычислительной техники, начала сильно меняться? их архитектура, появлялись и исчезали различные стандарты на работу с памятью, с носителями информации, ее отображением и пр. Начали появляться различные операционные системы все сильнее отличавшиеся друг от друга. Вследствие этого начала теряться? совместимость программ и их данных. Это сильно * замедлило развитие GAD программного обеспечения на PC, поскольку переписать большую программу для новой конфигурации стоило очень дорого, и пользователи не хотели платить повторно за тот программный пакет, который они используют. В тоже время мощности;существующих машинбыло уже недостаточно для<текущих расчетов, тем более что изначально > персональные машиныбыли значительно «слабее» больших рабочих станций. Вследствие этого, наилучшим выходом для большинства предприятий и институтов был возврат к большим машинам;, которые хоть и были значительно дороже персональных, но не требовали постоянного обновления программных средств, которые, как уже было сказано, значительно дороже «железа». На этом ситуация была заморожена примерно до конца 90 годов.

Ситуация изменилась, когда персональные машины по мощности стали сравниваться с рабочими станциями, в то же время как по цене: они оставались дешевле. Производители программного обеспечения? опять обратили внимание на этот сектор рынка. И • хотя сначала все серьезные CAD пакеты появляются для рабочих станций, для > операционных системы типа! Solaris, AIX, некоторые фирмы делают версии и для PC платформ, обычно для г Windows и Solaris. В качестве примера? можно привести известный программный продукт Pro/Engineer фирмы РТС. Изначально он был сделан, под UNIX для больших рабочих станций (Sun; IBM). Но в последнее время появились версии для ранее забытых систем - PC. Другим подобным примером может служить, также известный всем, Unigrafix. К сожалению, позволить себе сделать версии своего программного обеспечения- под; разные платформы) могут только большие софтверные фирмы, имеющие достаточно большой штат программистов. Большинство более мелких фирм, чьи продукты не менее популярны, не могут заниматься переносом своих программ, и поэтому выпускают их только для тех платформ, на которых, по их мнению, он принесет наибольший доход. Примером такого продукта может стать SolidWorks. И хотя спрос на многоплатформенные системы, сейчас довольно велик, ниша; остается практически незаполненной.

Наиболее интересной стала ситуация совсем: недавно. Сейчас различия между рабочими станциями! и старшими моделями персональных машин практически; стерлись и? многие фирмы, которые раньше производили исключительно рабочие станции, обратили внимание на соседнюю рыночную нишу. К примеру, Sun в дополнение к своей традиционной линейке Sun Sparc с операционной : системой Sun Solaris, начал заниматься ; Intel х86 совместимыми машинами? на базе серверного 64 разрядного процессора от AMD и с операционными системами Sun Solaris, Linux и Microsoft Windows.

Какова основная причина этой ситуации? В основном в том, что перенос уже существующего продукта под другую платформу очень дорогостоящий процесс, который могут себе позволить очень не многие фирмы. Более дешевый вариант, это уже при создании продукта заложить в него возможность переноса. Это будет значительно дешевле. Но и тут есть проблемы. Старые фирмы обычно создают новые продукты, используя свои прошлые наработки; которые не были переносимыми, а переписывать их еще раз - дорого [42].

Вследствие: этих причин, на рынке появилась новая небольшая ниша программного обеспечения, а точнее, программных технологий; Фирмы, работающие в этом направлении;, разрабатывают библиотеки; и набор инструментов, позволяющих на: их базе и с использованием их API создавать программы, работающие на некотором ; определенном списке : поддерживаемых платформ. Эти проекты не всегда носят коммерческий характер, иногда' за возможность переноса на часть платформ необходимо купить лицензию на данный инструментарий. К примеру,, так: работает Qt фирмы TrollTech. Их продукт можно использовать по GPL лицензии на всех XI1 совместимых платформах (это большинство UINX, OS/2 и т.д.), но за возможность работать на: платформах с операционной системой Windows, надо купить Professional версию. К сожалению,. из-за малой конкуренции в: этой области? цены на продукцию? данного класса: весьма высоки, и, несмотря' на; то, что; существуют варианты с GPB лицензий, многие фирмы не могут использовать, эти? продукты в своей работе. Но, несмотря] ни на что, эта» область все: же развивается.

Подобные инструменты используются bl основном малыми - и, средними; фирмами производителями программного обеспечения, поскольку они не могут себе позволить разработку соответствующего инструментария. Это. не относится к крупным компаниям, например Parametric Technology Inc, которые с момента, появления; проблемы переноса их систем создают свои проприетарные технологии и инструменты.

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

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

Цели и задачи исследования;

Разработать теоретическую основу, необходимую при» разработке, и проектировании переносимых программных систем: о Создать систему классификацию переносимого программного ; обеспечения? по классам и категориям; о Разработать базовые универсальные методы создания переносимого программного обеспечения.

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

TrollTech для операционных систем семейств UNIX, Microsoft Windows, IBM; OS/2.

Разработать собственный инструментарий - библиотеки, необходимые при разработке и построении переносимых программных систем: о Библиотеку, обеспечивающую использование переносимого пользовательского • интерфейса для переносимых программ написанных Hat языках стандарта С; о Библиотеку, обеспечивающую использование объектов операционной системы для переносимых программ написанных на языках стандарта С для операционных систем s семейств Microsoft Windows 9x-NT и UNIX (группы AT, BSD, Posix).

Новые научные результаты. о Предложена общая система» классификации переносимого программного обеспечения; о Разработаны методы создания инструментария обеспечивающего перенос программного обеспечения между различными версиями одной операционной системы семейств Microsoft Windows и Linux, о Разработаны методы создания инструментария» обеспечивающего перенос программного обеспечения < между различными типами операционных систем из семейств Microsoft Windows и Linux.

Практическая ценность. о Разработаны методы создания; инструментария, обеспечивающего перенос программного обеспечения между платформами Windows, Unix и s OS/2 (как между различными версиями одной системы, так и между различными, системами или семействами), о Разработаны готовые библиотеки инструментов создания переносимого графического пользовательского интерфейса для систем семейств Windows, Unix и OS/2. о Разработаны готовые библиотеки инструментов i для работы с объектами ядра операционной системы для платформ Intel х86 и Sun Sparc для операционных систем семейств Windows, Unix и OS/2.

Основные научные положения, выносимые на защиту. о Система классификации переносимого программного обеспечения; о Методы переноса: программ между различными версиями одной операционной системы; о Методы переноса программ использующие объекты ядра между различными ; операционными системами; о Методы переноса программ использующие? графический пользовательский интерфейс между различными операционными системами.

Практическая реализация результатов.

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

Внедрение результатов работы. Разработанные в ходе исследований методы и инструменты; были использованы на нескольких реально работающих проектах: о На базе библиотеки поддержки переносимого графического интерфейса был ; построен модуль ECAD по разводке- печатных плат в ЦНИИ РТК им. Калинина. Он обеспечивает работу модуля на всем, парке вычислительной • техники используемой в отделе - Sun Sparc с операционной системой Solaris, Intel х86 с операционными системами Linux, OS/2 и Windows, о Модуль отслеживания событий изменения файловой системы используется в рамках продукта автоматизированной обработки поступающей извне информации и ее сортировки в ООО «Параметр». На данный момент он позволяет работать системе на различных версиях одной операционной системы и в данный момент идет работа по его развитию для обеспечения функционирования в семействах операционных систем различных производителей.

Апробация работы. Основные теоретические результаты работы докладывались на: 1. Политехническом симпозиуме - «Молодые ученые - промышленности северо-западного региона», Санкт-Петербургский Государственный; Политехнический Университет, (Санкт-Петрбург, 2002 год); 2. Конференции профессорско-преподавательского состава СПбГЭТУ, Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ», (Санкт-Петрбург, 2003 год);

3. Международной конференции по мягким вычислениям и измерениям* БСМ2003, Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ», (Санкт-Петрбург, 2003 год);

4. Конференции профессорско-преподавательского состава СПбГЭТУ, Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ», (Санкт-Петрбург, 2004 год).

Публикации.

Основные положения диссертации были опубликованы в межвузовских сборниках и сборниках тезисов межвузовских и международных конференций [14],[15],[16],[17]. Структура.

В первой главе даны базовые определения платформы; и; переносимой программы, поскольку пока однозначного определения для этих терминов»не выведено. Определение переносимой программы, тесно связано с: классификацией этих программ; в этом же- разделе приведена подробная? классификация программ на две группы категорий. После этого проводится анализ программ каждой категории, с целью выяснения уровня пригодности их для переноса и необходимых для; этого действий. Здесь рассматриваются, только самые основные моменты переноса. Это все дает теоретическую основу для правильного позиционирования будущего, или существующего, проекта.,

Далее, во второй главе, рассмотрены: методы переноса программ на различные версии одной операционной системы, и между различными платформами и типами операционных систем. Перенос в рамках одной» операционной системы рассмотрен на; базе операционной системы Windows фирмы Microsoft, поскольку эта система наиболее активно изменялась в последнее время! и, вследствие этого, накопилось много различий между версиями; что затрудняет перенос программ; В подразделе, посвященном переносу между различными платформами, представлены требования; к подготовке программы к переносу, а также методы построения < промежуточной библиотеки; необходимой; для маскировки различий на разных платформах,. и реализации! отсутствующих функций < или функций; работающих по-разному. Здесь, рассматривается? только системные уровни? API - ввод/вывод,, работа с системными, объектами^ и пр. Здесь, же рассмотрены вопросы использования UNICODE символов в различных версиях Microsoft Windows. Сейчас эти вопросы становятся - все более актуальны с развитием мобильных: платформ и переносом программного обеспечения« на них и их взаимодействием между собой и с настольными системами. И в заключении этой главы, были изучены особенности различных ядер UNIX систем, некоторые тонкости наиболее сложной для ¡переноса подсистемы - IPC, а так же принятые в UNIX стандарты и стандарт Posix, призванный облегчить процесс создания переносимых систем.

В последней? главе показано,. как, используя: разработанные: методы, можно? создавать переносимое программное; обеспечение: В' первой? части« рассмотрен? инструментарий; предлагаемый^ фирмой? TrollTech для« написания» переносимого ? графического пользовательского интерфейса;. На его базе создан; один из работающих переносимых проектов. Во второй части подобная задача решена с использованием? собственной разработки)— библиотеки! графического ? пользовательского интерфейса i MWS (Manager Window System): В i заключении i главы рассмотрено создание более: низкоуровневневого универсального1 интерфейса - библиотека отслеживания событий файловой системы.

Библиография Галкин, Алексей Александрович, диссертация по теме Системы автоматизации проектирования (по отраслям)

1. Ауэр К., Миллер Р. Экстремальное программирование: постановка процесса. / К. Ауэр, Р. Миллер. — СПб.: Питер, 2003. — 368 с.

2. Бадд Т. Объектно-ориентированное программирование в действии. / Т. Бадд. — СПб.: Питер, 1997

3. Бардзинь Я.М., Калкинып A.A. Язык спецификаций SDL/PLUS и его применения. / Я.М. Бардзинь, A.A. Калкинып. — Рига, 1988

4. Бек К. Экстремальное программирование. / К. Бек. — СПб.: Питер, 2002. — 224 с.

5. Бен-Ари М. Языки программирования. Практический сравнительный анализ. / М. Бен-Ари. — М.: Мир, 2000

6. Березин Б.И., Березин С.Б. Начальный курс С и С++. / Б.И. Березин, С.Б. Березин. —М.: Диалог-Мифи, 1996. —288 с.

7. Боггс У., Боггс М. UML и Rational Rose. / У. Боггс, М. Боггс. — М.: Лори, 2000

8. Бредли Д. Программирование на языке ассемблера для персональной ЭВМ фирмы ЮМ. / Д. Бредли. — М.: Радио и связь, 1988

9. Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем. / А.М. Вендров. — М.: Финансы и статистика, 1998

10. Вирт Н. Алгоритмы и структуры данных. / Н. Вирт. — М.: Мир, 1989

11. Галкин A.A. Классификация переносимого программного обеспечения. Часть-1./ A.A. Галкин. // Изв. СПбГЭТУ «ЛЭТИ». Сер. Информатика, управление и компьютерные технологии.-2002.-Вып. 3: —С. 17-20

12. Галкин!■ A.A. Классификация переносимого: программного обеспечения. Часть-2./ A.A. Галкин. // Изв. СПбГЭТУ «ЛЭТИ». Сер. Информатика, управление и компьютерные технологии.-2003.-Вып. 2. — С. 28-31

13. Галкин A.A. Основные принципы создания платформо-независимых программных систем. / A.A. Галкин. // Международная; конференция: по мягким вычислениям и измерениям: Сб. докл. конф., г. С-Петерб., 25-27 июня. 2003. — СПб.: Изд-во СПбГЭТУ. 2003: — С. 11-18

14. Гамма Э., Хелм Р. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Э. Гамма, Р. Хелм: — СПб:: Питер, 2001

15. Грегори К. Использование Visual1 С++ 6. Специальное издание. / К. Грегори — СПб. : Вильяме, 199920: Джамса К., Коуп К. Программирование для Internet в среде Windows. / К. Джамса, К. Коуп. — СПб;: Питер, 1996. — 688 с

16. Дженнингс P. Windows-95 в подлиннике. / Р. Дженнингс. — СПб.: BHV-Петербург, 1995

17. Иванов А., Кознов Д. Поведенческая модель RTST++. / А. Иванов, Д. Кознов. — СПб.: Издательство С.-Петербургского университета, 1998

18. Иордон Э. Структурные модели в объектно-ориентированном: анализе и проектировании. / Э. Йордон. — М.: Лори, 1999

19. Калянов F.H. CASE структурный системный анализ (автоматизация и применение). / Г.Н. Калянов. — М.: ЛОРИ, 1996

20. Карабегов A.B., Тер-Микаэлян T.Mi Введение в язык SDL. / A.B. Карабегов, Т.М. Тер-Микаэлян. — М;: Радио и связь, 1993

21. Касаткин А.И. Профессиональное программирование на языке С. Управление ресурсами. / А.И. Касаткин. — Минск: Высшая школа, 1993

22. Кенту-М. Delphi 4 для профессионалов. / М. Кенту- — СПб.: Питер,Л999

23. Керниган Б., Ритчи Д. Язык программирования С. / Б. Керниган, Д. Ритчи.М.: Финансы и статистика, 1992

24. Кнут Д. Искусство программирования для ЭВМ.7 Д. Кнут. — М.: Мир, 1976

25. Кознов Д. В. Проблемы разработки компонентного программного обеспечения. / Д. В. Кознов. — СПб.: Издательство С.-Петербургского университета, 1999

26. Костельцев A.B. GTK+. Разработка переносимых графических интерфейсов. / A.B. Костельцев. — СПб.: BHV-Петербург, 2002. — 368 с.

27. Коуд П. Объектные модели. Стратегии, шаблоны и приложения. / П. КоудМ.: Лори, 1999

28. Крэнц Дж., Майзел Э. Операционная система OS/2. Возможности, функции и приложения. / Дж. Крэнц, Э. Майзел. — М.: Мир, 1991

29. Кэмпбелл Дж. Л. Операционная система OS/2. Справочное руководство для программистов. / Дж. Л. Кэмпбелл. — М.: Финансы и статистика, 199138;Леоненков А. Самоучитель-UML. / А-Леоненков. — СПб.: BHV-Петербург, 2001

30. Лямин Л. В. Макроассемблер MASM. / Л. В. Лямин. — М.: Радио и связь, 1994

31. Мансуров H.H., Майлингова O.JL Методы формальной спецификации программ: языки MSC и SDL. / H.H. Мансуров, O.JI. Майлингова. — М.: "Диалог-МГУ", 1998?

32. Мейерс С. Эффективное использование STL. / С. Мейерс. — СПб.: Питер, 2002. —224 с.

33. Мюррей У., Паппас К. Создание переносимых, приложений для Windows. / У. Мюррей, К. Паппас. — СПб;: BHV-Петербург, 199743;Нортон П., Сохуэ Д; Язык ассемблера для IBM PC. / П. Нортон, Д. Сохуэ.— М.: Издательство «Компьютер» Финансы и статистика, 1992

34. Парфенов В;В., Терехов А.Н. RTST технология программирования встроенных-систем реального времени; / В.В. Парфенов, А.Н. Терехов.— Новосибирск, 1997

35. Петерсен Р. Linux, Руководство по операционной системе. / Р. Петерсен — K.:BHV, 1997

36. Пильщиков В.Н. Программирование на языке ассемблера IBM PC. / B.Hi Пильщиков. — М:: Диалог-Мифи,. 1996

37. Поттосин И.В. Программная инженерия: содержание, мнения и тенденции. / И.В. Поттосин. — М.: Программирование, 1997

38. Рихтер Дж.-Windows для профессионалов: создание эффективных Win32 приложений; / Дж. Рихтер. — 4-е изд. — СПб;: Питер, 2001 . —752 с.

39. Роббинс Дж. Отладка Windows-приложений. / Дж. Роббинс. —М.: ДМК, 2001. —448 с.

40. Романовский К.Ю, Кузнецов C.B., Кознов Дм. В: Объектно-ориентированная подход и диаграммы классов в UML. / К.Ю. Романовский, C.B. Кузнецов, Дм: В. Кознов. — СПб;: Издательство С.-Петербургского университета, 1999

41. Саймон P. Microsoft Windows 2000 API. Энциклопедия программиста. / Р. Саймон. — СПб.: ДиаСофт, 2002. — 1088 с.

42. Свами М. Графы, сети и алгоритмы. / М. Свами. — СПб.: BHV-Петербург, 1995

43. Секунов Hi Самоучитель С#. / Н. Секунов. — СПб.: BHV-Петербург, 2001

44. Скловская С. Команды Linux. / С. Скловская.— К.: Издательство «ДиаСофт», 2001

45. Стивене Р. Протоколы TCP/IP. Практическое руководство. / Р. Стивене. — СПб.: BHV-Петербург, 2003. — 672 с.

46. Стивенс У.Р. UNIX: Взаимодействие процессов. / У.Р. Стивене. — СПб.: Питер, 2003. —576 с.

47. Страуструп Б. Язык программирования С++. / Б. Страуструп. — Киев: ДиаСофт, 1993

48. Терехов А.Н., Романовский К.Ю Объектно-ориентированная методология разработки информационных систем и систем реального времени. / А.Н. Терехов.— СПб.: Издательство С.-Петербургского-университета,.1999

49. Терехов А.Н., Романовский К.Ю. Методология и CASE-средство для разработки систем реального времени и информационных систем. / А.Н: Терехов: — М.: Программирование, 1999

50. Фролов A.B. , Фролов F.B. Библиотека системного программиста. / А. В. Фролов, F.B. Фролов. — М.: Диалог-Мифи, 1991

51. Фролов A.B., Фролов Г.В. Операционная система IBM OS/2 Warp. / A.B. Фролов, Г.В. Фролов. — М.: Диалог-Мифи, 1995

52. Хорстманн К., Корнелл Г. Библиотека профессионала. Java2. Том 2. Тонкости программирования. / К. Хорстманн, F. Корнелл. — М.: Вильяме, 2002. — 1120 с.

53. Хорстманн К.С., Корнелл F. Библиотека профессионала. Java 2. Том 1. Основы. / К.С. Хорстманн, Г. Корнелл. — М.: Вильяме, 2003. — 848 с.

54. Чеппел Д. Технологии ActiveX и OLE. / Д. Чеппел. — М.: Издательский отдел "Русская редакция", 199765.шилдт Г. Java 2. / F. Шилдт— СПб.: BHV-Петербург, 2001. — 1072 с.

55. Шрайбер С. Недокументированные возможности Windows 2000. Библиотека программиста. / С. Шрайбер. — СПб.: Питер, 2002. — 544 с.

56. Эккель Б. Философия Java. Библиотека программиста. / Б. Эккель. — СПб.: Питер, 2001. —880 с.

57. Cooper A. The Essentials of User Interface Design. / A. Cooper. — IDG Books,1995

58. Bach M.J. The Design of the UNIX Operating System. / M.J. Bach. — Prentice Hall, 1986

59. Bach. M The Design of the UNIX Operating System. / M. Bach. — Prentice-Hall, 1986

60. Bar M. Linux File Systems. / M. Bar. — McGraw-Hill, 2001

61. Barker R. Storage Area Networking Essentials. / R. Barker. — John Wiley & Sons, 200273;Beck M: Linux Kernel Internals. / M: Beck: — Addison-Wesley; 1996

62. Booch G. Object-Oriented Analysis And Design With Application. / G. Booch. — The Benjamin/Cummings Publishing Company, Inc, 1994. — 589 p.

63. Braek F. The Engineering Real Time Systems. / F. Braek. — Prentice Hall, 1993. — 398 p.

64. Butenhorf D.R. Programming with POSIX Threads. / D.R. Butenhorf. — Addison-Wesley, 1997

65. Coplien J.O. Advanced C++ Programming Styles and Idioms. / J.O. Coplien. — Addison-Wesley, 1995

66. Corbin J.R. Programming Techniques for Remote Procedure Calls. / J.R. Corbin. — Springer-Verlag, 1991

67. Douglass B.P. Real-Time UML. / B.P. Douglass. — Addison-Wesley, 1998. — 365 p.

68. Edward A. Interactive Computer Graphics. / A. Edward. — Addison-Wesley,1996

69. Foley J. Introduction to Computer Graphics. / J. Foley. — Addison-Wesley, 1994

70. Foley J., Dam V. Computer Graphics is C: Principles and Particle. / J. Foley, V. Dam. — Addison-Wesley, 1995

71. Gallmeister B. Posix.4 : Programming for the Real World. / B. Gallmeister. — O'Reilly, 1995

72. Garfinkel S.L. Practical UNIX and Internet Security. / S.L. Garfinkel. — O'Reilly,1996

73. Goodheart B. The Internals of UNIX System V Release 4, an Open systems Design. / B. Goodheart. — Prentice Hall, 1994

74. Hamilton G. The Spring Nuclear: A Microkernel for Objects. / G. Hamilton. — Cincinnati, 1993

75. Harel D. Modeling Reactive Systems with State charts: state machine approach. / D • Harel. — McGraw-Hill, 1998: — 258 p.

76. Helm R. Design Patterns: Elements of Reusable Object-Oriented Software. / R. Helm. — Addison-Wesley, 199589;Jeffrey E. Friedl Mastering Regular Expression. / E. Jeffrey. — O'Reilly, 1997

77. Josey A. The Authorized Guide to Version 2 of the Single UNIX Specification. / A. Josey. — Prentice Hall, 1997

78. Kernighan B: The UNIX Programming Environment. / B. Kernighan. — Prentice Hall, 1984

79. Kleiman S. Programming with Treads. / S. Kleiman. — prentice Hall; 1996;

80. Kruchten P. The Rational Unified Process: An Introduction. / P. Kruchten.— Addison-Wesley, 1998. — 255 p.

81. Lewine D. POSIX Programmer's Guide. / D. Lewine. — O'Reilly, 1992

82. Lewis B. Multithreaded Programming with pthreads. / B. Lewis. — Prentice Hall, 1998

83. Lippman S. Inside the C++ Object Model. / S. Lippman. — Addison-Wesley, 1994

84. Mandel T. The Elements of User Interface Design. / T. Mandel. — John Wiley,1997

85. Matthias K.D. Programming with Qt. / K.D. Matthias. — O'Reilly, 1999

86. McKusickM.K. The Design and Implementation of the 4.4BSD Operating System. / M.K. McKusick. — Addison-Wesley, 1996

87. Moo B. Ruminations on C++. / B. Moo. — Addison-Wesley, 1996

88. Quinn B. Windows Sockets Network Programming. / B. Quinn. — Addison-Wesley, 1996

89. Rochkind M.J. Advanced UNIX Programming. / M.J. Rochkind. — Prentice Hall, 1985

90. Rumbaugh J. Obj ect-oriented modeling and design. / J. Rumbaugh. — Prentice-Hall, 1991. — 500 p.

91. Rumbaugh J. The Unified Modeling Language Reference Manual. / J. Rumbaugh. — Addison-Wesley, 1999. — 550 p.

92. Salus P.H. Quarter Century of Unix. / P.H. Salus. — Addison-Wesley, 1994

93. Scott M. Effective C++. / M. Scott. — Addison-Wesley, 1998

94. Scott M. More Effective C++. / M. Scott. — Addison-Wesley,. 1996.

95. Selic B. Real-Time Object-Oriented Modeling. / B. Selic. — John Wiley & Sons. Inc, 1994. — 525 p.

96. Siegel J. CORBA Fundamentals and Programming. / J. Siegel. — John Wiley & Sons, Inc, 1997. — 693 p.

97. Stevens W.R. Unix Network Programming. / W.Rl Stevens. — Prentice-Hal^ 1997

98. Stevens W.R. Advanced Programming in the UNIX Environment. / W.R. Stevens. — Addison-Wesley, 1992

99. Stevens W.R. TCP/IP Illustrated Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. / W.R. Stevens. — Addison-Wesley, 1996

100. Stevens W.R. TCP/IP Illustrated Volume 1: The Protocols. / W.R. Stevens. — Addison-Wesley, 1994

101. Stevens W.R. UNIX Network Programming, Volume 1, Networking APIs: Sockets and XTI. / W.R. Stevens. — Prentice Hall, 1998.115; Stevens W.R. UNIX Network Programming, Volume 2, Intercrosses Communications. / W.R. Stevens. — Prentice Hall, 1999.

102. Vahalia U. UNIX Internals: The New Frontiers. / U. Vahalia. — Prentice hall, 1996

103. Wright G.R. TCP/IP Illustrated, Volume 2: The Implementation. / G.R. Wright. — Addison-Wesley, 1995