Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Интерфейс имеет важное значение для любой программной системы и является неотъем-лемой ее составляющей, ориентированной, прежде всего, на конечного пользователя. Имен-но через интерфейс пользователь судит о прикладной программе в целом; более того, часто решение об использовании прикладной программы пользователь принимает по тому, нас-колько ему удобен и понятен пользовательский интерфейс. Вместе с тем, трудоемкость про-ектирования и разработки интерфейса достаточно велика. По оценкам специалистов в сред-нем она составляет более половины времени реализации проекта. Актуальным является снижение затрат на разработку и сопровождение программных систем или разработка эффективного программного инструментария.
Одним из путей снижения затрат на разработку и сопровождение программных систем яв-ляется наличие в инструментарии средств четвертого поколения, позволяющих на высоком уровне описать (специфицировать) создаваемое программное средство и далее по спецификации автоматически сгенерировать исполнимый код.
В литературе не существует единой общепринятой классификации средств для разработки пользовательского интерфейса. Так, программное обеспечение для разработки пользова-тельского интерфейса можно разделить на две основные группы - инструментарий для раз-работки пользовательского интерфейса (toolkits) и высокоуровневые средства разработки интерфейса (higher-level development tools). Инструментарий для разработки пользовательс-кого интерфейса, как правило, включает в себя библиотеку примитивов компонентов ин-терфейса (меню, кнопки, полосы прокрутки и др.) и предназначен для использования программистами. Высокоуровневые средства разработки интерфейса могут быть использо-ваны непрограммистами и снабжены языком, который позволяет специфицировать функции ввода-вывода, а также определять, используя технику непосредственного манипулирования, интерфейсные элементы. К таким средствам относятся построители диалога (interface builders) и СУПИ - системы управления пользовательским интерфейсом (User Interface Management Systems - UIMS). Помимо СУПИ, некоторые авторы используют такие термины, как User Interface Development Systems (UIDS) - системы разработки пользовательского интерфейса, User Interface Design Environment (UIDE) - среда разработки пользовательского интерфейса и др.
Специализированные средства для разработки интерфейса позволяют упростить разра-ботку пользовательского интерфейса, предлагая разработчику специфицировать компоненты пользовательского интерфейса с использованием языков спецификаций. Можно выделить несколько основных способов спецификации интерфейса:
1. Языковой, когда применяются специальные языки для задания синтаксиса интерфейса (декларативные, объектно-ориентированные, языки событий и др.).
2. Графическая спецификация связана с определением интерфейса, как правило, средствами визуального программирования, программированием демонстраций и по примерам. Подобный способ поддерживает ограниченный класс интерфейсов.
3. Спецификация интерфейса, основанная на объектно-ориентированном подходе, связана с принципом, называемым непосредственное манипулирование. Основное его свойство - взаимодействие пользователя с индивидуальными объектами, а не со всей системой как единым целым. Типичными компонентами, используемыми для манипуляций с объектами и управляющими функциями, являются обработчики, меню, зоны диалога, кнопки различного вида.
4. Спецификация интерфейса по спецификации прикладной задачи. Здесь интерфейс создается автоматически по спецификации семантики прикладной задачи. Однако сложность описания интерфейса затрудняет возможности скорого появления систем, реализующих данный подход.
Основной концепцией СУПИ является отделение разработки пользовательского интерфейса от остального приложения. В настоящее время идея раздельного проектирования интерфейса и приложения либо закреплена в определении СУПИ либо является основным его свойством.
В состав СУПИ определен как набор инструментов этапа разработки и периода исполнения. Инструменты этапа разработки оперируют с моделями интерфейса для построения их проектов. Они могут разделяться на две группы: интерактивные инструменты, например редакторы моделей, и автоматические инструменты, например генератор форм. Инструменты периода исполнения используют модель интерфейса для поддержки деятельности пользователя, например, для сбора и анализа используемых данных.
Функциями СУПИ является содействие и облегчение разработки и сопровождения пользовательского интерфейса, а также управление взаимодействием между пользователем и прикладной программой.
Таким образом, в настоящее время существует большое количество инструментальных средств для разработки интерфейса, поддерживающих различные методы его реализации.
Основное назначение тех средств разработки пользовательских графических интерфейсов, которые разрабатываются и поставляются отдельно от оконной системы, является облегчение создания нового графического интерфейса за счет использования существующих параметризованных заготовок. Как видно, в принципе это те же самые идеи, на которых основана объектно-ориентированная библиотека оконной системы X Xt Intrinsics.
И действительно, наиболее распространенный пакет, предназначенный для быстрой и качественной разработки графических пользовательских интерфейсов, Motif, который был спроектирован и разработан в северо-американском консорциуме OSF, в основном является развитием идей Xt Intrinsics. Motif является сугубо коммерческим продуктом. Дело дошло до того, что компания OSF запатентовала внешний интерфейс продуктов, входящих в состав Motif, чтобы не дать кому-нибудь возможность воспроизвести этот интерфейс.
Это привело к настоящему скандалу в сообществе американских программистов, потому что создало опасный прецедент патентования интерфейсов. Если можно закрыть своим авторским правом возможность повторения графического интерфейса, то почему нельзя запатентовать синтаксис языка программирования, интерфейс операционной системы и т.д.? Однако строгость американских законов не оправдывается необязательностью их исполнения, и поэтому недовольные свободолюбивые американские программисты ропчат, но терпят, а тем временем пытаются сагитировать восточно-европейских программистов (не так сильно зависящих от американских законов) на нелегальную свободно доступную реализацию интерфейсов Motif.
С другой стороны, сравнительно недавно (4-5 лет тому назад) в Калифорнийском университете г. Беркли был создан альтернативный механизм под названием Tcl/Tk. Этот механизм основан на наличии специализированного командного языка, предназначенного для описания графических пользовательских интерфейсов, соответствующего интерпретатора и библиотеки ранее разработанных заготовок интерфейсов. Пакет Tcl/Tk распространяется (вместе с полной документацией) свободно, и многие профессиональные программисты находят его более удобным, чем Motif.
3.1Пакет Motif
Motif (официальное название этого продукта - OSF/Motif) представляет собой программный пакет, включающий оконный менеджер, набор вспомогательных утилит, а также библиотеку классов, построенных на основе Xt Intrinsics. Для конечных пользователей оконных систем, опирающихся на Motif, основной интерес представляет менеджер окон, хотя, скорее всего, вы не сможете определить, применяется ли оконный менеджер Motif в используемой вами установке.
Для разработчиков же графических интерфейсов важны все три компонента Motif. Новый интерфейс разрабатывается в графическом же режиме с использованием оконного менеджера. При этом полезно использование утилит Motif и необходимо использование библиотеки классов Motif.
Библиотека классов Motif является расширением библиотеки Xt Intrinsics с целью предания этой библиотеке практического смысла (по-другому можно сказать, что Motif - это то, чем должен был бы быть Xt, если бы при его создании ставились коммерческие цели). Все графические объекты (правильнее сказать, классы) Xt Intrinsics включаются в библиотеку классов Motif, хотя в ней используются другие имена.
Но Motif существенно расширяет возможности Xt Intrinsics. В его библиотеке поддерживается большое число классов, позволяющих создавать меню, "нажимаемые" кнопки и т.д. Основное назначение этих классов - определение новых виджетов, связанных с окнами.
Однако в Motif поддерживается и новый вид графических объектов (их классов) - так называемые гаджеты (gadgets). Гаджет отличается от виджета тем, что соответствующий класс также может использоваться для создания элементов интерфейса, но графический объект не привязывается к определенному окну. При отображении на экран гаджета используется окно объекта, относящегося к суперклассу класса гаджета.
Понятно, что здесь мы не можем привести подробное описание Motif (еще раз повторим, что соответствующий материал содержится в нескольких солидных книгах). Однако основная идея должна быть понятна: развитая библиотека классов языка Си++, возможности применения этих классов при использовании обычного стиля программирования и поддержка визуального программирования с немедленным отображением получающихся графических объектов.
3.2 Язык и интерпретатор Tcl/Tk
Продукт Tcl/Tk в действительности представляет собой два связанных программных пакета, которые совместно обеспечивают возможность разработки и использования приложений с развитым графическим пользовательским интерфейсом. Название Tcl относится к "командному языку инструментальных средств - tool command language", и, как не странно, его рекомендуется произносить "тикл". Это простой командный язык для управления приложениями и расширения их возможностей. Язык Tcl является "встраиваемым": его интерпретатор реализован в виде библиотеки функций языка Си, так что интерпретатор может быть легко пристыкован к любой прикладной программе, написанной на языке Си.
Tk (рекомендуемое произношение - "ти-кей") является библиотекой Си-функций, ориентированной на облегчение создания пользовательских графических интерфейсов в среде оконной системы X (т.е., по сути дела, некоторый аналог Xt Intrinsics). С другой стороны, аналогично тому, как это делается в командных языках семейства shell, функции библиотеки Tk являются командами языка Tcl, так что любой программист может расширить командный репертуар языка Tcl путем написания новой функции на языке Си.
Совместно, Tcl и Tk обеспечивают четыре преимущества для разработчиков приложений и пользователей (мы используем здесь авторские тексты разработчиков). Во-первых, наличие командного языка Tcl дает возможность в каждом приложении использовать мощный командный язык. Все, что требуется от разработчика приложения, чтобы удовлетворить его/ее специфические потребности, - это создать несколько новых команд Tcl, требующихся приложению (и, возможно, другим приложениям - явно традиционный стиль командного программирования в ОС UNIX). После этого нужно связать прикладную программу с интерпретатором Tcl и пользоваться полными возможностями командного языка.
Вторым преимуществом использования Tcl/Tk является возможность быстрой разработки графических интерфейсов. Многие интересные оконные приложения могут быть написаны в виде скриптов языка Tcl без привлечения языков Си или Си++ (а Tcl позволяет скрыть многие несущественные детали). Как утверждают разработчики Tcl/Tk, пользователи оказываются способными к созданию новых графических интерфейсов уже после нескольких часов знакомства с продуктом. Другой особенностью языка Tcl, способствующей быстрой разработке оконных приложений, является то, что язык является интерпретируемым. Можно опробовать новую идею интерфейса, выражающуюся в сотнях или тысячах строк кода на языке Tcl, без потребности вызова новых программных средств, путем простого нажатия на клавишу мыши (не наблюдая существенных задержек при использовании современных рабочих станций).
Третьим преимуществом языка Tcl является то, что его можно применять в качестве языка "склейки" приложений. Например, любое основанное на Tcl и использующее Tk оконное приложение может направить свой скрипт любому другому аналогично ориентированному приложению. С использованием Tcl/Tk можно создавать приложения, работающие в стиле мультимедиа, и опять же они смогут обмениваться скриптами, поскольку пользуются общим интерпретатором командного языка Tcl и общей внешней библиотекой Tk.
Наконец, четвертым удобством интегрированного пакета Tcl/Tk является удобство пользователей. Для написания нового приложения в среде Tcl/Tk достаточно выучить несколько совершенно необходимых команд, и этого окажется достаточно. Другими словами оказывается возможным инкрементальный (пошаговый) стиль погружения в предмет. Такая возможность всегда радует сердце и греет душу.
Впрочем, заметим, что далеко не все программисты разделяют выраженное выше глубоко радостное отношение разработчиков Tcl/Tk к своему продукту.
3.3 Microsoft Expression Blend – инструмент создания интерфейсов
Появление языка описания пользовательских интерфейсов XAML (произносится – зáммель) и новой среды разработки Expression Blend позволяет заметно ускорить и облегчить проектирование и построение пользовательских интерфейсов как для веб-, так и для настольных приложений.
Данный язык позволяет описывать внешний вид и поведение интерфейсных элементов, устанавливать взаимодействие этих элементов с различными данными и событиями. Допускает прямое подключение к Common Language Runtime (CLR), что обеспечивает большую гибкость при проектировании ПО.
Функциональность, взаимодействие XAML и процедурного кода
XAML – это скриптовый язык, базирующийся на XML, он имеет набор правил, которые устанавливают взаимодействие между объектами и классами, атрибутами и свойствами или событиями и пространствами имен XML и CLR. Для описания элементов, панелей, свойств текста, векторной графики и т.п. используются теги.
<Button VerticalAlignment="Top" Width="Auto" Height="Auto" Content="Button"/>
Каждый тег в XAML имеет соответствующий класс в WPF, который имеет набор инструкций, как выполнить этот тег. XAML включает в себя: панели, элементы управления, элементы управления документами и элементы векторной графики.
При создании проекта в Expression Blend каждый файл на XAML имеет файл-соратник (code-behind) на C# или VB.
XAML взаимодействует с кодом на C# или VB посредством обработчика событий, который прописывается внутри тега объекта.
Код на XAML
<Button Content="Button" Click="Button_Click"/>
Пример обработчика события Button_Click на C#
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
MessageWindow MessageWindow = new MessageWindow();
MessageWindow.ShowDialog();
Microsoft Expression Blend
Есть несколько визуальных редакторов позволяющих создавать и редактировать XAML: Microsoft XamlPad, Microsoft Visual Studio 2005, 2008, Microsoft Expression Blend, Mobiform Avrora, XamlHack.
Подробно хочу остановиться на основном приложении для работы с XAML – Microsoft Expression Blend, далее просто Blend.
Blend представляет собой современное средство визуального проектирования интерфейсов, оснащенное встроенным редактором XAML, что позволяет, с одной стороны проектировать интерфейсы не обращая внимания на исходный код, а с другой стороны, позволяет более «тонко» настраивать создаваемый интерфейс.
Так как свойства объектов в Blend неразрывно связаны с возможностями XAML, дальнейшее описание элементов проводится через представление этих объектов в Blend, как графических, так и интерактивных, т.е. так как видит это дизайнер.
Интерфейс Blend
Blend имеет современный интерфейс, привычный как дизайнерам графикам, так и веб-дизайнерам.
Рабочее пространство разделено на три основные части.
Рисунок 4 - Рабочее пространство Microsoft Expression Blend
Панель инструментов (подкрашена красным), панели Interaction и Objects and Timeline (пурпурным) слева, основное рабочее пространство с панелью инструментов и вкладками переключения вида Design, XAML или Split посередине и панель Results в центре снизу (подкрашено зеленым) и панели Project, Properties, Resourses и Data справа (синие).
Все панели позволяют переключаться в «плавающий» режим или исчезать с экрана при помощи «горячих» клавиш. В меню Tools/Options/Workspace есть возможность настройки размеров панелей. Blend использует большое количество «горячих» клавиш, спасибо разработчикам о заботе, большинство сочетаний хорошо известны всем дизайнерам, работающим с графическими программами от Adobe.
Панель инструментов имеет практически стандартный вид для программ редакторов векторной графики и включает в себя основные инструменты создания и редактирования графики плюс специфичные для Blend инструменты и библиотеки стандартных и пользовательских элементов.
По умолчанию в Blend включены две библиотеки интерфейсных элементов System Controls – стандартные элементы и Simple Styles – библиотека-пример построения пользовательских интерфейсных элементов, раскрывающая возможности XAML.
Инструменты рисования
Векторный редактор Blend обладает всеми возможностями современного векторного редактора плюс обладает некоторыми уникальными свойствами.
Инструменты для построения и редактирования векторной графики типичны для многих векторных редакторов и включают в себя редактор кривых, представленный инструментами: Перо (Pen), Карандаш (Pencil), инструмент выделения (Selection) и инструмент непосредственного выделения (Direct Selection), а также инструментами для построения простых геометрических форм: Прямоугольник (Rectangle), Овал (Ellipse) и Линия (Line).
Blend позволяет:
создавать составные векторные объекты (Compound paths);
создавать векторные объекты посредством логических операций (вычитание, сложение и т.д.) (Combining paths);
переводить шрифт в векторный объект (Convert to Path);
кадрировать как растровое, так и векторное изображение (Clipping paths);
создавать маски прозрачности (Opacity masks).
Настройка свойств графических элементов, имеет ряд особенностей, делающих работу дизайнера более удобной, и позволяет достигнуть большей гибкости в построении интерфейса по сравнению с обычными (классическими) способами.
Остановимся подробнее на некоторых из них:
Возможность раздельно задавать толщину линий образующих стороны объектов типа Граница (Border) и Прямоугольник (Rectangle).
Возможность раздельно задавать радиус скругления для всех углов в объекте Граница (Border).
Рисунок 5 - Пример построения пользовательского элемента с кодом на XAML
<Border Height="22" BorderThickness="1,0,1,3" BorderBrush="#FFFF0000"
CornerRadius="0,0,2,2" Width="100"/>
Настройка внешнего вида объектов
Внешний вид объектов зависит от свойств, которые задаются как при помощи прямых настроек, так и при помощи кистей (Brushes):
Прозрачность (Opacity)
Видимость (Visibility)
Заливка (Fill)
Штрих (Stroke)
Фон (Background)
Передний план (Foreground)
BorderBrush (Граница)
Маска прозрачности (Opacity masks)
Кисти используются для задания внешнего вида объектов и могут быть следующих типов:
Одноцветная кисть (Solid color brush)
Линейный градиент (Linear gradient brush)
Радиальный градиент (Radial gradient brush)
Кисть растровое изображение (Image brush)
Кисть векторное изображение (Drawing brush)
Кисть визуальных эффектов (Visual brush)
Кисти можно конвертировать в ресурсы и многократно применять к различным объектам.
Blend имеет стандартный редактор цветов позволяющий оперировать четырьмя цветовыми моделями: RGB, HLS, HSB и CMYK, а так же специальный инструмент для настройки градиентов (Brush transform tool) и инструменты для переноса свойств объектов (Eyedropper и Paint Bucket).
Особо бы хотелось отметить наличие в Blend специальных растровых эффектов (Bitmap effects):
Размытие (Blur)
Внешнее свечение (Outer glow)
Тень (Drop shadow)
Фаска (Bevel)
Рельеф (Emboss)
Все фильтры работают в реальном масштабе времени и могут применяться ко всем без исключения интерфейсным элементам, в том числе и генерируемым «на лету».
Работа с текстом
Blend является специализированным инструментом для построения пользовательских интерфейсов и имеет несколько типов текстовых объектов:
Текстовое поле (TextBox)
Текстовое поле с расширенными возможностями (RichTextBox)
Текстовый блок (TextBlock)
Поле пароля (PasswordBox)
Метка (Label)
Текстовый блок с расширенным содержимым и полосой прокрутки (FlowDocumentScrollViewer)
Настройки текста зависят от типа объекта и его функциональности.
Библиотека интерфейсных элементов
Библиотека интерфейсных элементов содержит все типы стандартных интерфейсных элементов, специфические элементы Blend и элементы, содержащиеся в стиле SimpleStyles.
Рисунок 6 - Список интерфейсных элементов, доступных из встроенной библиотеки
Элементы подразделяются на следующие категории:
Панели разметки (Layout Panels), используются как контейнеры для других элементов, определяя их местоположение относительно друг друга.
Интерфейсные элементы (Controls).
Построение интерфейса в общем случае сводится к переносу интерфейсных элементов из библиотеки на рабочее пространство с последующей их компоновкой.
Создание интерфейсов в Expression Blend
Blend обладает разветвленными возможностями для построения качественных интерфейсов и главной возможностью, на мой взгляд, является создание пользовательских библиотек-стилей, содержащих интерфейсные элементы с заранее заданным внешним видом и поведением.
Стили и шаблоны
Стили и шаблоны уникальная возможность XAML, позволяющая сочетать в себе мощность стилей CSS и гибкость шаблонов графических программ.
Стили описываются содержимым заключенным в тег <Style> и могут содержать следующие элементы:
Кисти всех типов (Brush)
Геометрические свойства элементов (Высота, ширина, скругление углов, толщина линий и т.д.)
Специальные эффекты (BitmapEffects и Visual brush)
Интерфейсные элементы
Векторные графические объекты.
Как видно из списка элементов, стиль может содержать в себе полное описание всех интерфейсных элементов и их составляющих и позволяет гибко управлять внешним видом интерфейса.
Стиль может содержаться как в самом файле проекта, так и в отдельном файле, содержащем только стили. Второй вариант предпочтительней, т.к. позволяет иметь столько стилей для приложения, сколько может позволить ваше воображение и в этом главное преимущество новой технологии: код на процедурном языке, а интерфейс на скриптовом языке, что позволяет улучшить или заменить интерфейс без больших ресурсоемких и временных издержек.
Создание пользовательских интерфейсных элементов
Есть два пути для создания элементов: можно выучить синтаксис XAML и «писать» элементы кодом или же можно воспользоваться Blend. Второй способ проще, нагляднее и быстрее.
Для создания пользовательского вида интерфейсного элемента в Blend имеется возможность как редактирования существующего, так и создания нового элемента. Для того чтобы отредактировать элемент достаточно «щелкнуть» по нему правой кнопкой мыши и выбрать Edit Control Parts (Template). Появится «начинка» элемента и вы можете изменить внешний вид – с помощью графического редактора Blend или изменить поведение элемента, редактируя переключатели событий (Event Triggers) или задать анимацию, используя Timeline.
Разметка
Разметка документа осуществляется специальными панелями (Layout Panels), которые могут включать в себя как сами панели, так и интерфейсные элементы. Доступ к панелям осуществляется на панели инструментов и что самое неожиданное, как функция Группировки (Group), наконец то группировка перестала быть абстрактной сущностью!
Панели разметки могут быть следующих типов:
Холст (Canvas panel)
Стыковочная панель (Dock panel), содержимое панели может пристыковываться к заданным сторонам панели
Таблица (Grid panel), содержимое находится внутри ячеек таблицы
Стопка (Stack panel), содержимое группируется в последовательном порядке по горизонтали или вертикали
Панель с возможностью скрытия содержимого (Wrap panel) – если содержимое не помещается внутри панели, например, при изменении размера панели, содержимое скрывается определенным образом.
Расположение объектов, привязки и выравнивание
Как известно, внешний вид эстетичного интерфейса определяется месторасположением формирующих его элементов, а также наличием пустого пространства (отступов) и пропорциональным строем его составляющих, т.е. то, что зовется композицией. Blend обладает рядом гибких инструментов, помогающих дизайнеру точно располагать и компоновать элементы интерфейса.
Рисунок 7 - Визуальная привязка
Инструмент визуальной привязки (Snap) имеет уникальное свойство, а именно предопределяемое свойство показывать заданный размер границы между элементами (Default margin и Default padding). Эта функция здорово ускоряет расположение элементов в форме: достаточно просто выбросить элемент на плоскость и Blend сам покажет нужные для него отступы.
Визуальная привязка позволяет точно позиционировать элементы относительно друг друга, соблюдая заданные размеры границ между элементами, и показывает, как эти границы, так и местоположение элементов относительно друг друга и базовую линию текста (для элементов, содержащих текст).
Функция выравнивания (Align) работает не совсем обычно: выравнивание элементов происходит не относительно друг друга, как это обычно практикуется в графических программах, а относительно Панели разметки (Layout Panels), в которой находятся элементы, что очень удобно, но непривычно. Если элементы находятся внутри Таблицы (Grid Panel), то появляется возможность управлять поведением элементов при изменении размеров окна приложения, имеется 3 вида поведения:
Auto – при изменении размеров таблицы изменяется размер заключенных в нее элементов.
Pixel – строка или столбец таблицы имеют фиксированное значение в пикселях.
Star – изменяет размеры элементов аналогично изменению размеров в процентах в HTML.
Данные свойства устанавливаются, как на строки, так и столбцы таблицы и могут применяться в любой комбинации.
Плюсы и минусы Expression Blend
Как мы видим, Blend является мощным приложением для создания пользовательских интерфейсов и, подводя итоги, хотелось бы указать на плюсы и минусы данного инструмента с точки зрения дизайнера интерфейсов:
Плюсы:
Удобный минималистический интерфейс
Встроенный редактор векторной графики с разветвленным инструментарием
Встроенный редактор XAML с подсветкой синтаксиса
Встроенный компилятор
Наличие привычных для дизайнеров «горячих» клавиш
Наличие уникальных инструментов и интерфейсных решений
Минусы:
Программа предназначена для дизайнеров с хорошим знанием или отношением к XML подобным языкам разметки
Требует установки.NET Framework 3 или 3.5 (даже для просмотра готового проекта.exe) и еще желательно Visual Studio (для редактирования C# файлов)
Неустойчиво и медленно работает (Бета-версия).
Требует вмешательство в XAML код, т.к. не все свойства могут устанавливаться из графического интерфейса Blend.
Стандартные библиотечные элементы не всегда корректно сверстаны, требуется переделка некоторых из них.
Справочная система не достаточно проработана.
Разветвленная система файлов, необходимых для проекта.
Blend и классические способы создания прототипов интерфейсов
По большому счету, сравнение классических технологий прототипирования интерфейсов и новой технологии WPF – представителем которой является Blend, является не совсем корректным.
Классическое прототипирование это в первую очередь, проектирование взаимодействия, создание внешнего вида приложения уже вторично, хотя и немаловажно.
Blend программа для создания уже готовых интерфейсов, т.е. дизайнер выдает программистам готовый интерфейс, не требующий их вмешательства в графическое решение. Программист только подключает интерфейс к процедурному коду. Данная концепция является достаточно новаторской, как для дизайнеров интерфейсов, так и для программистов. С точки зрения дизайнера интерфейсов, Blend является дополнительным инструментом при проектировании интерфейсов, так как проектирование интерфейсов это не только и даже не совсем внешний вид, а в первую очередь взаимодействие программы и человека, а инструменты, позволяющие это делать в Blend, малоразвиты или отсутствуют совсем.
Что несет нам новая технология?
Прежде всего, гибкость при создании приложений, которая обеспечивается наличием современных средств визуализации и новых технологий:
Векторная графика: теперь интерфейс состоит полностью из векторных объектов (интерфейсные элементы, графика, пиктограммы).
Новые экранные шрифты.
Новая технология попиксельного позиционирования изображения на экране.
Одна программа может содержать несколько интерфейсов (разные разрешения, веб и настольные приложения и т.д.).
Дизайнер и программист могут одновременно работать над одним проектом, каждый выполняя свою функцию, что обеспечивает, как гибкость при создании приложений, так и увеличивает скорость работы. (http://gendocs.ru/v10991)
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Т е м а 1.2. Структура операционных систем (2ч)
Структура операционных систем. Классификация операционных систем по различным критериям: количеству пользователей, обрабатываемых процессов, разрядности кода, типу интерфейса, использования ресурсов, методу организации вычислительных процессов.
Основным предназначением ОС является организация эффективных и надежных вычислений, создание различных интерфейсов для взаимодействия с этими вычислениями и с самой вычислительной системой.
Широко известно высказывание, согласно которому любая наука начинается с классификации. Само собой, что вариантов классификации может быть очень много, здесь все будет зависеть от выбранного признака, по которому один объект мы будем отличать от другого. Однако, что касается ОС, здесь уже давно сформировалось относительно небольшое количество классификаций:
§ по назначению,
§ по режиму обработки задач,
§ по способу взаимодействия с системой,
§ по способам построения (архитектурным особенностям системы).
Прежде всего, традиционно различают ОС общего и специального назначения.
ОС специального назначения, в свою очередь, подразделяются на ОС для носимых микрокомпьютеров и различных встроенных систем, организации и ведения баз данных, решения задач реального времени и т. п. Еще не так давно операционные системы для персональных компьютеров относили к ОС специального назначения. Сегодня современные мультизадачные ОС для персональных компьютеров уже многими относятся к ОС общего назначения, поскольку их можно использовать для самых разнообразных целей — так велики их возможности.
По режиму обработки задач различают ОС, обеспечивающие однопрограммный и мультипрограммный (мультизадачный) режимы.
К однопрограммным ОС относится, например, всем известная, хотя нынче уже практически и не используемая MS DOS. Напомним, что под мультипрограммированием понимается способ организации вычислений, когда на однопроцессорной вычислительной системе создается видимость одновременного выполнения нескольких программ. Любая задержка в решении программы (например, для осуществления операций ввода-вывода данных) используется для выполнения других (таких же либо менее важных) программ. Иногда при этом говорят о мультизадачном режиме, причем, вообще говоря, термины «мультипрограммный режим» и «мультизадачный режим» — это не синонимы, хотя и близкие понятия. Основное принципиальное отличие этих терминов заключается в том, что мультипрограммный режим обеспечивает параллельное выполнение нескольких приложений, и при этом программисты, создающие эти программы, не должны заботиться о механизмах организации их параллельной работы (эти функции берет на себя сама ОС; именно она распределяет между выполняющимися приложениями ресурсы вычислительной системы, осуществляет необходимую синхронизацию вычислений и взаимодействие). Мультизадачный режим, наоборот, предполагает, что забота о параллельном выполнении и взаимодействии приложений ложится как раз на прикладных программистов. Хотя в современной технической и тем более научно-популярной литературе об этом различии часто забывают и тем самым вносят некоторую путаницу.
Можно, однако, заметить, что современные ОС для персональных компьютеров реализуют и мультипрограммный, и мультизадачный режимы.
Если принимать во внимание способ взаимодействия с компьютером, то можно говорить о диалоговых системах и системах пакетной обработки. Доля последних хоть и не убывает в абсолютном исчислении, но в процентном отношении она существенно сократилась по сравнению с диалоговыми системами.
При организации работы с вычислительной системой в диалоговом режиме можно говорить об однопользовательских (однотерминальных) и мультитерминальных ОС.
В мультитерминальных ОС с одной вычислительной системой одновременно могут работать несколько пользователей, каждый со своего терминала. При этом у пользователей возникает иллюзия, что у каждого из них имеется собственная вычислительная система.
Очевидно, что для организации мультитерминального доступа к вычислительной системе необходимо обеспечить мультипрограммный режим работы. В качестве одного из примеров мультитерминальных операционных систем для персональных компьютеров можно назвать Linux. Некая имитация мультитерминальных возможностей имеется и в системе Windows XP. В этой операционной системе каждый пользователь после регистрации (входа в систему) получает свою виртуальную машину. Если необходимо временно предоставить компьютер другому пользователю, вычислительные процессы первого можно не завершать, а просто для этого другого пользователя система создает новую виртуальную машину. В результате компьютер будет выполнять задачи и первого, и второго пользователя. Количество параллельно работающих виртуальных машин определяется имеющимися ресурсами.
Основной особенностью операционных систем реального времени (ОСРВ) является обеспечение обработки поступающих заданий в течение заданных интервалов времени, которые нельзя превышать. Поток заданий в общем случае не является планомерным и не может регулироваться оператором (характер следования событий можно предсказать лишь в редких случаях), то есть задания поступают в непредсказуемые моменты времени и без всякой очередности. В то время как в ОС, не предназначенных для решения задач реального времени, имеются некоторые накладные расходы процессорного времени на этапе инициирования задач (в ходе которого ОС распознает все пожелания пользователей относительно решения своих задач, загружает в оперативную память нужную программу и выделяет другие необходимые для ее выполнения ресурсы), в ОСРВ подобные затраты могут отсутствовать, так как набор задач обычно фиксирован, и вся информация о задачах известна еще до поступления запросов. Для подлинной реализации режима реального времени необходима (хотя этого и недостаточно) организация мультипрограммирования. Мультипрограммирование является основным средством повышения производительности вычислительной системы, а для решения задач реального времени производительность становится важнейшим фактором. Лучшие характеристики по производительности для систем реального времени обеспечиваются однотерминальными ОСРВ. Средства организации мультитерминального режима всегда замедляют работу системы в целом, но расширяют функциональные возможности системы. Одной из наиболее известных ОСРВ для персональных компьютеров является ОС QNX.
По основному архитектурному принципу операционные системы разделяются на микроядерные и макроядерные (монолитные).
В некоторой степени это разделение тоже условно, однако можно в качестве яркого примера микроядерной ОС привести ОСРВ QNX, тогда как в качестве монолитной можно назвать Windows 95/98 или ОС Linux. Если ядро ОС Windows мы не можем изменить, нам недоступны его исходные коды и у нас нет программы для сборки (компиляции) этого ядра, то в случае с Linux мы можем сами собрать то ядро, которое нам необходимо, включив в него те программные модули и драйверы, которые мы считаем целесообразным включить именно в ядро (ведь к ним можно обращаться и из ядра).
Т е м а 1.3 Виды программ операционной системы (2ч)
Управляющая программа. Системные обрабатывающие программы. ОС в процессе программирования.
ОС – комплекс программ, которые обеспечивают управление аппаратурой ЭВМ, планирование эффективного использования ее ресурсов, автоматизацию процесса подготовки программ и прохождения их в ЭВМ.
ОС является посредником между ЭВМ и человеком (пользователь, программист, инженер, оператор…). Другими словами ОС – логическое расширение аппаратуры в сторону человека, позволяя перейти от физического уровня аппаратуры к более высокому логическому уровню.
ОС осуществляет достаточно сложный процесс управления ресурсами ЭВМ, все нюансы которого скрыты от пользователя. Взаимодействие с программистами, операторами и т.д. осуществляется через интерфейс пользователя, который поддерживается ОС.
Компонентный состав ОС определяется набором функций, для выполнения которых она предназначена. Все программы ОС можно разбить на две группы: управляющая программа и системные обрабатывающие программы.
Управляющая программа – обязательный компонент любой ОС. Ее функции – планирование прохождения непрерывного потока заданий, управление распределением ресурсов, реализация принятых методов организации данных, управление операциями ввода-вывода (В-В), организация мультипрограммной работы, управление работоспособностью системы после сбоев и др.
Управляющая программа состоит из ряда компонентов, среди которых следует выделить четыре основных.
Управление статическими ресурсами (управление заданиями) осуществляет предварительное планирование потока заданий для выполнения и статич. распределение ресурсов между одновременно выполняемыми заданиями в процессе подготовки к выполнению. К статическим ресурсам относят разделы памяти (основной, виртуальной, внешней), доступные для использования устройства, допускающие только монопольное использование, наборы данных и др. такие ресурсы закрепляются за заданием или его частью с момента инициализации до момента завершения и используются обычно в монопольном порядке.
Управление динамическими ресурсами (управление задачами) осуществляет динамическое распределение ресурсов системы между несколькими задачами, решаемых одновременно в мультипрограммном режиме для выполняемого потока заданий. Входящие в ядро ОС и постоянно находящиеся в ОП.
Управление данными обеспечивает все операции В-В (т.е. обмен между ОП и ПУ) на физическом и логическом уровнях. Оно включает в себя ряд служб, обеспечивающих выполнение таких функций, как управление каталогом, управление распределением памяти прямого доступа, обработку ошибок В-В и др., реализует различные структуры данных и возможность доступа к ним.
Управление восстановлением регистрирует машинные сбои и отказы и восстанавливает работоспособность системы после сбоев, если это возможно.
Системные обрабатывающие программы выполняются под управлением управляющей системы, так же как и любая обрабатывающая программа, в т.ч. пользовательская. Это значит, что она в полном объеме может пользоваться услугами управляющей программы и не может самостоятельно выполнять системные функции. Так, обрабатывающая программа не может самостоятельно осуществлять собственный В-В. операции В-В обрабатывающая программа реализует с помощью запросов к управляющей программе, которая и выполняет непосредственно ввод и вывод данных. Централизованное выполнение системных функций управляющей программой позволяет выполнять их более эффективно и обеспечивает высокий уровень услуг для пользователя.
К системным обрабатывающим программам относятся программы, входящие в состав ОС: ассемблеры, трансляторы, редакторы связей, загрузчик, программы обслуживания и ряд других. Трансляторы, редактор связей и загрузчик образуют основу систем программирования, построенных на базе ОС.
Дата публикования: 2014-11-04; Прочитано: 9292 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!