В.В. Кулямин - Технологии программирования. Компонентный подход (1134162), страница 42
Текст из файла (страница 42)
Из-за ограниченности объема лекции мыостановимся здесь, а читателям, интересующимся данными вопросами, рекомендуем обратиться кспециальной литературе по удобству использования ПО [3,4,7,10-13].Литература к Лекции 9[1] У. Вудсон, Д. Коновер. Справочник по инженерной психологии для инженеров ихудожников-конструкторов. М.: Мир, 1968.[2] Ю. К. Стрелков. Инженерная и профессиональная психология. Доступно по ссылкеhttp://psy.msu.ru/science/public/strelkov/index.html.[3] Л. Константайн, Л. Локвуд.
Разработка программного обеспечения. СПб.: Питер, 2004.[4] В. В. Головач. Дизайн пользовательского интерфейса. Доступна на сайтеhttp://www.uibook1.ru.[5] D. O. Norman. The Design of Everyday Things. Basic Books, NY, 1988.136[6] P. M. Fitts. The Information Capacity of the Human Motor System in Controlling Amplitude ofMovement. Experimental Psychology, 47, pp. 381–391, 1954.[7] J. Nielsen. Usability Engineering.
Academic Press, Boston, 1993.[8] S. K. Card, T. P. Moran, and A. Newell. The Psychology of Human-Computer Interaction.Hillside, NJ: Lawrence Erlbaum, 1983.[9] B. E. John, D. E. Kieras. The GOMS Family of Analysis Techniques: Tools for Design andEvaluation. CMU Technical Report, 1994. Доступно по ссылкеftp://www.eecs.umich.edu/people/kieras/GOMS/John-Kieras-TR94.pdf.[10] Р.
Дж. Торрес. Практическое руководство по проектированию и разработкепользовательского интерфейса. М.: Вильямс, 2002.[11] А. Купер. Психбольница в руках пациентов. СПб.: Символ-Плюс, 2004.[12] Я. Нильсен. Веб-дизайн: книга Якоба Нильсена. СПб.: Символ-Плюс, 2001.[13] Я. Нильсен, М. Тахир. Дизайн Web-страниц. Анализ удобства и простоты использования50 узлов. М.: Вильямс, 2002.137Лекция 10. Основные конструкции языков Java и C#АннотацияРассматриваются базовые элементы технологий Java и .NET и основные конструкции языков Javaи С#.
Рассказывается о лексике, базовых типах, выражениях и инструкциях обоих языков, а такжео правилах описания пользовательских типов.Ключевые словаJava, .NET, J2SE, J2EE, C#, Unicode, пакет, пространство имен, примитивный тип, выражение,инструкция, исключение, ссылочный тип, тип значений, класс, интерфейс, массив, перечислимыйтип, делегатный тип.Текст лекцииПлатформы Java и .NETНа данный момент наиболее активно развиваются две конкурирующие линии технологийсоздания ПО на основе компонентов — технологии Java и .NET. В этой и следующих лекциях мырассмотрим несколько элементов этих технологий, являющихся ключевыми в создании широковостребованного в настоящее время и достаточно сложного вида приложений.
Это Webприложения, т.е. распределенное программное обеспечение, использующее базовуюинфраструктуру Интернет для связи между различными своими компонентами, а стандартныеинструменты для навигации по Web — браузеры — как основу для своего пользовательскогоинтерфейса.Технологии Java представляют собой набор стандартов, инструментов и библиотек,предназначенных для разработки приложений разных типов и связанных друг с другомиспользованием языка программирования Java. Торговая марка Java принадлежит компании SunMicrosystems, и эта компания во многом определяет развитие технологий Java, но в нем активноучаствуют и другие игроки — IBM, Intel, Oracle, Hewlett-Packard, SAP, Bea и пр.В этот набор входят следующие основные элементы.• Платформа Java Platform Standard Edition (J2SE) [1].Предназначена для разработки обычных, в основном, однопользовательских приложений.• Платформа Java Platform Enterprise Edition (J2EE) [2].Предназначена для разработки распределенных Web-приложений уровня предприятия.• Платформа Java Platform Micro Edition (J2ME) [3].Предназначена для разработки встроенных приложений, работающих на ограниченныхресурсах, в основном, в мобильных телефонах и компьютеризированных бытовыхустройствах.• Платформа Java Card [4].Предназначена для разработки ПО, управляющего функционированием цифровых карт.Ресурсы, имеющиеся в распоряжении такого ПО, ограничены в наибольшей степени.C некоторыми оговорками можно считать, что J2ME является подмножеством J2SE, а та, всвою очередь, подмножеством J2EE.
Java Card представляет собой, по существу, особый наборсредств разработки, связанный с остальными платформами только поддержкой (в сильноурезанном виде) языка Java.Язык Java — это объектно-ориентированный язык программирования, который транслируетсяне непосредственно в машинно-зависимый код, а в так называемый байт-код, исполняемыйспециальным интерпретатором, виртуальной Java машиной (Java Virtual Machine, JVM). Такаяорганизация работы Java-программ позволяет им быть переносимыми без изменений и одинаковоработать на разных платформах, если на этих платформах есть реализация JVM, соответствующаяопубликованным спецификациям виртуальной машины.138Кроме того, интерпретация кода позволяет реализовывать различные политики безопасностидля одних и тех же приложений, выполняемых в разных средах, — к каким ресурсам (файлам,устройствам и пр.) приложение может иметь доступ, а к каким нет, можно определять при запускевиртуальной машины.
Таким способом можно обеспечить запускаемое пользователем вручнуюприложение (за вред, причиненный которым, будет отвечать этот пользователь) большимиправами, чем аплет, загруженный автоматически с какого-то сайта в Интернет.Режим интерпретации приводит обычно к более низкой производительности программ посравнению с программами, оттранслированными в машинно-специфический код. Для преодоленияэтой проблемы JVM может работать в режиме динамической компиляции (just-in-time-compilation,JIT), в котором байт-код на лету компилируется в машинно-зависимый, а часто исполняемыеучастки кода подвергаются дополнительной оптимизации.В настоящем курсе мы рассмотрим ряд элементов платформ J2EE и J2SE, имеющих большоезначение для разработки Web-приложений.
Читателей, интересующихся деталями устройства ииспользования J2ME и Java Card, мы отсылаем к документации по этим платформам [3] и [4]..NET [5] представляет собой похожий набор стандартов, инструментов и библиотек, норазработка приложений в рамках .NET возможна с использованием различных языковпрограммирования.
Основой .NET являются виртуальная машина для промежуточного языка(Intermediate Language, IL, иногда встречается сокращение MSIL, Microsoft IL), в которыйтранслируются все .NET программы, также называемая общей средой выполнения (CommonLanguage Runtime, CLR), и общая библиотека классов (.NET Framework class library), доступная извсех .NET приложений.Промежуточный язык является полноценным языком программирования, но он непредназначен для использования людьми.
Разработка в рамках .NET ведется на одном из языков,для которых имеется транслятор в промежуточный язык —Visual Basic.NET, С++, C#, Java(транслятор Java в .NET называется J#, и он не обеспечивает одинаковой работы программ на Java,оттранслированных в .NET, и выполняемых на JVM) и пр. Однако разные языки достаточносильно отличаются друг от друга, и чтобы гарантировать возможность из одного языка работать скомпонентами, написанными на другом языке, необходимо при разработке этих компонентовпридерживаться общих правил (Common Language Specifications, CLS), определяющих, какимиконструкциями можно пользоваться во всех .NET языках без потери возможности взаимодействиямежду результатами.
Наиболее близок к промежуточному языку C# — этот язык был специальноразработан вместе с платформой .NET.Некоторым отличием от Java является то, что код на промежуточном языке в .NET неинтерпретируется, а всегда выполняется в режиме динамической компиляции (JIT).Компания Microsoft инициировала разработку платформы .NET и принятие стандартов,описывающих ее отдельные элементы (к сожалению, пока не все), и она же является основнымпоставщиков реализаций этой платформы и инструментов разработки. Благодаря наличиюстандартов возможна независимая реализация .NET (например, такая реализация разработана врамках проекта Mono [6]), но, в силу молодости платформы и опасений по поводу монопольноговлияния Microsoft на ее дальнейшее развитие, реализации .NET не от Microsoft используютсядостаточно редко.Прежде чем перейти к более детальному рассмотрению компонентных технологий Java и .NET,ознакомимся с языками, на которых создаются компоненты в их рамках.Для Java технологий базовым языком является Java, а при изучении правил построениякомпонентов для .NET мы будем использовать язык C#.
Он наиболее удобен при работе в этойсреде и наиболее похож на Java.Оба этих языка сейчас активно развиваются — в сентябре 2004 года вышла версия 1.5, она жебыла объявлена версией 5 платформы J2SE и языка Java. При переходе между версиями 1.4 и 1.5Java претерпела наиболее серьезные изменения за всю свою историю (достаточно полноеописание этих изменений стало доступно только в середине 2005 года). Во время написанияданной лекции готовится выход J2EE 1.5, пока доступной только в виде предварительныхспецификаций.139Существенное обновление C# также должно произойти в версии 2.0, выходящей в ноябре 2005года. Поэтому мы сопоставляем характеристики уже имеющейся на момент написания версииJava 5 с готовящейся к выходу версией C# 2.0.
Это представляется обоснованным еще и потому,что эти версии двух языков достаточно близки по набору поддерживаемых ими конструкций.Данная лекция дает лишь базовую информацию о языках Java и C#, которая достаточна дляпонимания приводимого далее кода компонентов и общих правил, регламентирующих ихразработку и может служить основой для дальнейшего их изучения.