Методы борьбы со сложностью
Мы уже обсуждали в лекции 2 сущность вопроса борьбы со сложностью при разработке ПС. Известны два общих метода борьбы со сложностью систем:
- обеспечения независимости компонент системы;
- использование в системах иерархических структур.
Обеспечение независимости компонент означает разбиение системы на такие части, между которыми должны остаться по возможности меньше связей. Одним из воплощений этого метода является модульное программирование. Использование в системах иерархических структур позволяет локализовать связи между компонентами, допуская их лишь между компонентами, принадлежащими смежным уровням иерархии. Этот метод, по существу, означает разбиение большой системы на подсистемы, образующих малую систему. Здесь существенно используется способность человека к абстрагированию.
Обеспечение точности перевода
Обеспечение точности перевода направлено на достижение однозначности интерпретации документов различными разработчиками, а также пользователями ПС. Это требует придерживаться при переводе определенной дисциплины. Майерс предлагает использовать общую дисциплину решения задач, рассматривая перевод как решение задачи. Лучшим руководством по решению задач он считает книгу Пойа "Как решать задачу". В соответствии с этим весь процесс перевода можно разбить на следующие этапы:
- Поймите задачу;
- Составьте план (включая цели и методы решения);
- Выполните план (проверяя правильность каждого шага);
- Проанализируйте полученное решение.
Подробно обсуждать этот вопрос мы здесь не будем.
Преодоление барьера между пользователем и разработчиком
Как обеспечить, чтобы ПС выполняла то, что пользователю разумно ожидать от нее? Для этого разработчикам необходимо правильно понять, во-первых, чего хочет пользователь, и, во-вторых, его уровень подготовки и окружающую его обстановку. Ясное описание соответствующей сферы деятельности пользователя или интересующей его проблемной области во многом облегчает достижение разработчиками этой цели. При разработке ПС следует привлекать пользователя для участия в процессах принятия решений, а также тщательно освоить особенности его работы (лучше всего - побывать в его "шкуре").
Контроль принимаемых решений
Обязательным шагом в каждом процессе (этапе) разработки ПС должна быть проверка правильности принятых решений. Это позволит обнаруживать и исправлять ошибки на самой ранней стадии после ее возникновения, что, во-первых, существенно снижает стоимость ее исправления и, во-вторых, повышает вероятность правильного ее устранения.
С учетом специфики разработки ПС необходимо применять везде, где это возможно,
- смежный контроль,
- сочетание как статических, так и динамических методов контроля.
Смежный контроль означает, проверку полученного документа лицами, не участвующими в его разработке, с двух сторон: во-первых, со стороны автора исходного для контролируемого процесса документа, и, во-вторых, лицами, которые будут использовать полученный документ в качестве исходного в последующих технологических процессах. Такой контроль позволяет обеспечивать однозначность интерпретации полученного документа.
Сочетание статических и динамических методов контроля означает, что нужно не только контролировать документ как таковой, но и проверять, какой процесс обработки данных он описывает. Это отражает одну из специфических особенность ПС (статическая форма, динамическое содержание).
Консольные приложения
Приложение, как вы знаете, это компьютерная программа. Word, Excel, пасьянс "Косынка" и Internet Explorer - это всё приложения. Приложения бывают разными. Не только по функциональному назначению, внешнему виду, но и по принципу организации своего пользовательского интерфейса. Интерфейс - это внешний вид программы, и в Windows он бывает двух типов. Первый - это графический, второй - текстовый. Все программы, имеющие красивые разноцветные окна, имеют и графический интерфейс. Даже Word и "Блокнот", хоть и работают с текстом, но интерфейс имеют графический.
Где же тогда в наши дни можно увидеть программу, работающую в режиме текстового интерфейса?
Для того, чтобы увидеть текстовый пользовательский интерфейс нужно, например, вызвать командную строку.
Нажмите кнопку "Пуск", выберите пункт "Выполнить", наберите в строке появившегося окна текст "command" или «cmd» и нажмите кнопку "Выполнить". Вы увидите перед собой окно с серым текстом на чёрном фоне - примерно такое же, как изображено на иллюстрации к статье. Это - командная строка, одна из самых старых вещей в современном персональном компьютере.
Дело в том, что ещё не так давно, около двадцати лет назад, мощности компьютеров, стоящих у пользователей дома и на работе, не хватало на отображение даже такой несложной графики, как окна. Поэтому компьютеру и пользователям приходилось общаться с помощью текста. Пользователь вводил специальные команды - например, команда dir в первой из систем производства Microsoft, DOS, позволяла просмотреть список файлов и папок в определённой директории, а команда ver показывала версию операционной системы, с которой работал пользователь. Программы, которые запускал пользователь, тоже, естественно, работали в текстовом режиме.
Командная строка, как вы видите, сохранилась в Windows до сих пор. Команды, которые можно выполнить из неё, подробно описаны в справке Windows. А приложения, которые выполняются в текстовом режиме, теперь называются консольными. Командная строка – пример консольного приложения.
Консольное приложение - это программа, которая работает с командной строкой. То есть это обычное окно, где пользователь может ввести какую-то команду и получить результат. Здесь нет никаких кнопочек и прочих прелестей Windows.
Консольные приложения удобны как иллюстрации при рассмотрении общих вопросов программирования, когда надо сосредоточиться на сути проблемы, а также как небольшие утилиты "для внутреннего потребления".
Часто нет необходимости и времени для создания графического интерфейса, а программа должна что-то делать, например, обрабатывать большие объемы информации. И вот тут на помощь приходят консольные приложения. Консольные приложения очень компактны не только в откомпилированном виде, но и в текстовом варианте. Но главное, консольное приложение имеет такие же возможности обращаться к ресурсам Windows, как и обычное графическое приложение.
Консольные приложения используются для отладки программных конструкций, они не имеют графического интерфейса в виде формы с элементами управления (кнопками, текстовыми окнами, списками и так далее).
Консольные приложения открываются в специальном окне (консоли). Пользователь должен либо вводить информацию в окно и нажимать Enter, либо читать информацию о ходе вычислительного процесса, то есть консоль строится для диалога с пользователем в текстовом режиме. Обычно, это отладочный режим для построения какого-либо вычислительного алгоритма.
Графи́ческий интерфе́йс по́льзователя (ГИП), графический пользовательский интерфейс (ГПИ) (англ. graphical user interface, GUI) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений.
В отличие от интерфейса командной строки, в GUI пользователь имеет произвольный доступ (с помощью устройств ввода — клавиатуры, мыши, джойстика и т. п.) ко всем видимым экранным объектам (элементам интерфейса) и осуществляет непосредственное манипулирование ими. Чаще всего элементы интерфейса в GUI реализованы на основе метафор и отображают их назначение и свойства, что облегчает понимание и освоение программ неподготовленными пользователями.
Графический интерфейс пользователя является частью пользовательского интерфейса и определяет взаимодействие с пользователем на уровне визуализированной информации.
Содержание
История
Благодаря исследованиям, проведённым в 60-е годы Дагом Энгельбартом в научно исследовательском институте Стэнфорда был изобретён графический интерфейс пользователя.
Впоследствии концепция GUI была перенята учеными из исследовательской лаборатории Xerox PARC в 1970-х. В 1973 году в лаборатории Xerox PARC собрали молодых учёных и дали свободу исследований. В результате, кроме всего прочего, на свет появляется концепция графического интерфейса WIMP (Windows, Icons, Menus, Point-n-Click) и в рамках этой концепции создаётся компьютер Alto. Он не был выпущен как коммерческий продукт, но широко использовался на фирме как корпоративный Xerox инструмент.
В 1979 году Three Rivers Computer Corporation выпускает рабочую станцию PERQ, похожую по принципам построения на Alto. В 1981 году Xerox выпускает продолжение Alto — Star.
Коммерческое воплощение концепция GUI получила с 1984 года в продуктах корпорации Apple Computer. В операционной системе AmigaOS GUI с многозадачностью был использован в 1985 году.
В настоящее время GUI является стандартной составляющей большинства доступных на рынке операционных систем и приложений. Примеры систем, использующих GUI: Mac OS, GEM, Atari TOS, Microsoft Windows, Solaris, GNU/Linux, NeXTSTEP, OS/2, BeOS, Android, iOS, Bada, MeeGo.
Хотя в подавляющем большинстве систем GUI является надстройкой для операционной системы, существуют и независимые его реализации. Известен вариант графической программы BIOSSetup, когда, ещё до загрузки ОС, управление настройками IBM PC-совместимой ЭВМ производится мышью, аналогично полноценному GUI. Впрочем, такой вариант BIOS не прошёл проверку временем. Также имеются GUI для МК, не требующие ОС.
Классификация
Можно выделить следующие виды GUI:
- простой: типовые экранные формы и стандартные элементы интерфейса, обеспечиваемые самой подсистемой GUI;
- истинно-графический, двумерный: нестандартные элементы интерфейса и оригинальные метафоры, реализованные собственными средствами приложения или сторонней библиотекой;
- трёхмерный
DWIM
Одним из требований к хорошему графическому интерфейсу программной системы является концепция «делай то, что я имею в виду» или DWIM (англ. Do What I Mean). DWIM требует, чтобы система работала предсказуемо, чтобы пользователь заранее интуитивно понимал, какое действие выполнит программа после получения его команды.
Достоинства
Графический интерфейс является «дружелюбным» для пользователей, которые начали знакомство с компьютером с графического интерфейса.
- В программах обработки графики он, зачастую, является единственно возможным
Недостатки
Большее потребление памяти в сравнении с текстовым интерфейсом
- Сложнее организовать удаленную работу
- Невозможность автоматизации, если она не была заложена автором программы
- Графический интерфейс не является «дружелюбным» для пользователей, которые начали знакомство с компьютером с интерфейса командной строки.
- Графический интерфейс сложнее в использовании для незрячих людей.