чмв лекция №5

Человеко-машинное взаимодействие
Зайдуллин С.С.
КГТУ им. А.Н.Туполева

1
Лекция 5
Тема: Общие вопросы

проектирования ПИ (окончание).

План лекции:
 Архитектура пользовательского
интерфейса.
 Справочные системы.
2
Ключевые слова
 Архитектура

ПИ

 Модель
 Представление
 Поведение

(контроллер)
 Презентатор
 Абстракция
 Управление
3
Вопрос 1
Архитектура пользовательского
интерфейса определяет основные
функциональные блоки приложения и
порядок их взаимодействия друг с другом
и с пользователем.

4
Архитектура интерфейса
простого приложения
командной строки
Приложение
приёмник команд
пользователя

анализатор
команд

обработчик
команды

ядро приложения

5
Архитектура MVC
 Название:

«Модель-ПредставлениеПоведение» (Model-view-controller)
 Автор: Трюгве Реенскауг (1979 год)
 Цель: Обеспечение пользователя
интерфейсом для манипуляции над многими
вариантами отображения данных, как
сущностей реального мира
 Идея: Разделение данных приложения, ПИ и
управляющей логики на три отдельных
слабосвязанных компонента: модель,
представление и поведение (контроллер).
6
Компоненты MVC
 Модель

предоставляет данные предметной
области представлению и реагирует на команды контроллера, изменяя свое состояние.
 Представление отвечает за отображение
данных предметной области пользователю с
помощью любых доступных визуальных и не
визуальных средств.
 Контроллер интерпретирует действия пользователя, оповещая модель о необходимости
изменений.
7
Типы моделей MVC
 Пассивная

модель не осведомлена о существовании представления, контроллера, и даже
о своем участии в MVC-триаде. Контроллер
отслеживает изменения модели и оповещает
представление.
 Активная модель «знает» о существовании
представлений и о том, что они должны
обновляться. Активность модели проявляется
в её праве самостоятельно оповестить представление об изменении своего состояния.
8
Общая модель архитектуры
MVC с активной моделью
Модель

запрос текущего
состояния

оповещение
об изменении
состояния
выбор представления
(при необходимости)

Представление

изменение
состояния

Поведение

оповещение о действиях пользователя

9
Архитектура MVP
 Название:

«Модель-ПредставлениеПрезентатор» (Model-View-Presenter)
 Автор: Майк Потел, Taligent Inc. (1996 год),
переработано Dolphin Smalltalk.
 Цель: Интеграция концепций MVC в
современные средства разработки ПО
 Идея: Выделение данных, спецификации данных, манипуляции над данными, координации приложения, взаимодействия с пользователем и визуализацию в специализированные
компоненты.
10
Компоненты MVP
 Модель

отвечает за данные и бизнес-логику
приложения.
 Представлением является визуализация
модели (включает в себя окна и элементы
управления, используемые в приложении).
Реализуется как интерфейс, который может
быть использован для получения и установки
данных модели.
 Презентатор реализует логику отображения
данных модели пользователю, управляет
моделью и представлением.
11
Общий вид архитектуры MVP
(версия от Dolphin Smalltalk)
Модель
(Domain model)

изменение
состояния

описание состояния
модели
Представление

Презентатор

оповещение о действиях пользователя

12
Основные отличия MVP от
MVC







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

13
Архитектура PAC
 Название:

«Представление-АбстракцияУправление» (Presentation-AbstractionControl)
 Цель: Построение иерархии компонентов
 Идея: Организуется иерархия взаимодействующих программных модулей (агентов).
Каждый агент реализует собственный аспект
функциональности приложения и представляет собой триаду из представления, абстракции (модели) и управления.
14
Архитектура HMVC
 Название:

«Иерархический MVC»
(Hierarchical Model-View-Controller)
 Цель: Построение иерархии компонентов
 Идея: В PAC агенты взаимодействуют только
через управление, а HMVC позволяет представлениям, контроллерам и моделям различных агентов связываться непосредственно
друг с другом, выстраивая независимые
иерархии.
15
Вопрос 2
Удобство взаимодействия человека с
программной во многом зависит
от качества её справочной системы.
Реализация справочной системы для
программ и для web-сайтов, как правило,
различается.

16
Базовые компоненты
справочной системы








Базовая справка – сущность и назначение системы
Обзорная справка – реклама пользователю функций
системы
Справка предметной области
Процедурная справка – отвечает: «Как это сделать?»
Контекстная справка – отвечает: «Что это делает?»
и «Зачем это нужно?»
Справка состояния – отвечает: «Что происходит в
настоящий момент?»
Сообщения об ошибках – отвечает: «В чём заключается проблема?», «Как исправить эту проблему
прямо сейчас?», «Как сделать так, чтобы проблема не
повторилась?»
17
Носители справочной
информации
 Бумажная

книга

– Легко позволяет читателю получить большой
объём материала за один сеанс, наилучшим
образом работает при последовательном чтении.
– Сравнительно плохой поиск нужных сведений.
– Объём практически всегда лимитирован.

 Справочная

карта – краткий бумажный
документ об основных способах работы с
системой

– Компактна, легкодоступна.
– Хороша как средство обучения «продвинутым»
способам взаимодействия с системой.
18
Носители справочной
информации


Структурированная электронная документация
– Плохо приспособлена для чтения больших объёмов
материала.
– Обеспечивает легкий поиск и не имеет лимита объёма.
– Занимает большой объём пространства экрана.
– Плохо подходит для показа крупных изображений, зато в
неё могут быть легко интегрированы видео и звук.



Фрагменты пространства интерфейса, показывающие
справочную информацию
– Постоянно занимают некоторое пространство экрана.
– Отвлекают внимание и, как правило, неспособны передавать
большой объём информации.

19
Носители справочной
информации
 Всплывающие

подсказки

– Хорошо справляются с ответом на вопросы «Что
это такое?» и «Зачем это нужно?» при условии,
что объём ответов сравнительно невелик.
– Поскольку вызываются пользователями вручную,
в обычном режиме не занимают пространства
экрана и не отвлекают внимание.
– Очень легко вызывают отвыкание, после первого
же случая неудовлетворения пользователя подсказкой, пользователь перестаёт вызывать и все
остальные подсказки.
20
Контрольные вопросы






Поясните значение термина «архитектура
пользовательского интерфейса».
Опишите суть архитектуры MVC.
В чём состоит основное различие между
архитектурами MVC и MVP?
Опишите основные достоинства
иерархических архитектур ПИ.
Какие компоненты справочных систем вам
известны? Проиллюстрируйте свой ответ на
примере распространённых программных
систем.
21
1 de 21

Recomendados

чмв лекция №6 por
чмв   лекция №6чмв   лекция №6
чмв лекция №6student_kai
826 visualizações30 slides
чмв лекция №3 por
чмв   лекция №3чмв   лекция №3
чмв лекция №3student_kai
415 visualizações16 slides
чмв лабораторная №3 por
чмв   лабораторная №3чмв   лабораторная №3
чмв лабораторная №3student_kai
723 visualizações21 slides
чмв лекция №7 por
чмв   лекция №7чмв   лекция №7
чмв лекция №7student_kai
625 visualizações24 slides
чмв лекция №8 por
чмв   лекция №8чмв   лекция №8
чмв лекция №8student_kai
982 visualizações20 slides
чмв лабораторная №4 por
чмв   лабораторная №4чмв   лабораторная №4
чмв лабораторная №4student_kai
594 visualizações20 slides

Mais conteúdo relacionado

Mais procurados

чмв лабораторная №1 por
чмв   лабораторная №1чмв   лабораторная №1
чмв лабораторная №1student_kai
534 visualizações12 slides
чмв лабораторная №2 por
чмв   лабораторная №2чмв   лабораторная №2
чмв лабораторная №2student_kai
697 visualizações15 slides
Designing UI - past and future por
Designing UI - past and futureDesigning UI - past and future
Designing UI - past and futureallileja
427 visualizações26 slides
designing UI, workshop, first day por
designing UI, workshop, first daydesigning UI, workshop, first day
designing UI, workshop, first dayallileja
377 visualizações12 slides
designing UI, workshop, second day por
designing UI, workshop, second daydesigning UI, workshop, second day
designing UI, workshop, second dayallileja
333 visualizações20 slides
designing UI workshop 2 day por
designing UI workshop 2 daydesigning UI workshop 2 day
designing UI workshop 2 dayallileja
402 visualizações20 slides

Mais procurados(20)

чмв лабораторная №1 por student_kai
чмв   лабораторная №1чмв   лабораторная №1
чмв лабораторная №1
student_kai534 visualizações
чмв лабораторная №2 por student_kai
чмв   лабораторная №2чмв   лабораторная №2
чмв лабораторная №2
student_kai697 visualizações
Designing UI - past and future por allileja
Designing UI - past and futureDesigning UI - past and future
Designing UI - past and future
allileja427 visualizações
designing UI, workshop, first day por allileja
designing UI, workshop, first daydesigning UI, workshop, first day
designing UI, workshop, first day
allileja377 visualizações
designing UI, workshop, second day por allileja
designing UI, workshop, second daydesigning UI, workshop, second day
designing UI, workshop, second day
allileja333 visualizações
designing UI workshop 2 day por allileja
designing UI workshop 2 daydesigning UI workshop 2 day
designing UI workshop 2 day
allileja402 visualizações
designing UI past and future por allileja
designing UI past and futuredesigning UI past and future
designing UI past and future
allileja418 visualizações
Requirement modelling in software creation process por Dima Dzuba
Requirement modelling in software creation processRequirement modelling in software creation process
Requirement modelling in software creation process
Dima Dzuba209 visualizações
designing UI workshop 1 day por allileja
designing UI workshop 1 daydesigning UI workshop 1 day
designing UI workshop 1 day
allileja393 visualizações
Денис Бесков. Как обеспечивать полноту требований por Denis Beskov
Денис Бесков. Как обеспечивать полноту требованийДенис Бесков. Как обеспечивать полноту требований
Денис Бесков. Как обеспечивать полноту требований
Denis Beskov2.9K visualizações
Модифицируемость программных систем por Dima Dzuba
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных систем
Dima Dzuba581 visualizações
принципы проектирования интерфейса (37) por romachka_pole
принципы проектирования интерфейса (37)принципы проектирования интерфейса (37)
принципы проектирования интерфейса (37)
romachka_pole970 visualizações
Денис Бесков. Как задавать требования к качеству ПО в цифрах? por Denis Beskov
Денис Бесков. Как задавать требования к качеству ПО в цифрах?Денис Бесков. Как задавать требования к качеству ПО в цифрах?
Денис Бесков. Как задавать требования к качеству ПО в цифрах?
Denis Beskov3.2K visualizações
Экспертиза usability. Изучаем требования к продукту por Yury Solonitsyn
Экспертиза usability. Изучаем требования к продуктуЭкспертиза usability. Изучаем требования к продукту
Экспертиза usability. Изучаем требования к продукту
Yury Solonitsyn891 visualizações
Ot usability-k-analizu-digital-consumer-experience por Yanina Trofimenko
Ot usability-k-analizu-digital-consumer-experienceOt usability-k-analizu-digital-consumer-experience
Ot usability-k-analizu-digital-consumer-experience
Yanina Trofimenko383 visualizações
Use Cases por Vitaly Grigorash
Use CasesUse Cases
Use Cases
Vitaly Grigorash7.4K visualizações

Destaque

чмв лекция №3 por
чмв   лекция №3чмв   лекция №3
чмв лекция №3student_kai
505 visualizações16 slides
чмв лекция №2 por
чмв   лекция №2чмв   лекция №2
чмв лекция №2student_kai
777 visualizações19 slides
презентация por
презентацияпрезентация
презентацияstudent_kai
1.4K visualizações12 slides
User Centered Design: обзор процесса por
User Centered Design: обзор процессаUser Centered Design: обзор процесса
User Centered Design: обзор процессаAndrew Sikorskiy
2.1K visualizações58 slides
лек15 por
лек15лек15
лек15student_kai
214 visualizações8 slides
л 15 sld por
л 15  sldл 15  sld
л 15 sldstudent_kai
305 visualizações14 slides

Destaque(20)

чмв лекция №3 por student_kai
чмв   лекция №3чмв   лекция №3
чмв лекция №3
student_kai505 visualizações
чмв лекция №2 por student_kai
чмв   лекция №2чмв   лекция №2
чмв лекция №2
student_kai777 visualizações
презентация por student_kai
презентацияпрезентация
презентация
student_kai1.4K visualizações
User Centered Design: обзор процесса por Andrew Sikorskiy
User Centered Design: обзор процессаUser Centered Design: обзор процесса
User Centered Design: обзор процесса
Andrew Sikorskiy2.1K visualizações
лек15 por student_kai
лек15лек15
лек15
student_kai214 visualizações
л 15 sld por student_kai
л 15  sldл 15  sld
л 15 sld
student_kai305 visualizações
лекция 14 por student_kai
лекция 14лекция 14
лекция 14
student_kai134 visualizações
презентация 3 por student_kai
презентация 3презентация 3
презентация 3
student_kai196 visualizações
лекция 8 управление конфигурациями-ч2 por student_kai
лекция 8 управление конфигурациями-ч2лекция 8 управление конфигурациями-ч2
лекция 8 управление конфигурациями-ч2
student_kai264 visualizações
лекция28 por student_kai
лекция28лекция28
лекция28
student_kai140 visualizações
лабораторная работа 5 por student_kai
лабораторная работа 5лабораторная работа 5
лабораторная работа 5
student_kai186 visualizações
лекция№13 por student_kai
лекция№13лекция№13
лекция№13
student_kai261 visualizações
L8 sld por student_kai
L8 sldL8 sld
L8 sld
student_kai125 visualizações
занятие2. несвободная точка. por student_kai
занятие2. несвободная точка.занятие2. несвободная точка.
занятие2. несвободная точка.
student_kai231 visualizações
лекция№18 por student_kai
лекция№18лекция№18
лекция№18
student_kai327 visualizações
лекция 23 средства автоматизации por student_kai
лекция 23 средства автоматизациилекция 23 средства автоматизации
лекция 23 средства автоматизации
student_kai212 visualizações
лабораторная работа 4 por student_kai
лабораторная работа 4лабораторная работа 4
лабораторная работа 4
student_kai215 visualizações
л9 por student_kai
л9л9
л9
student_kai365 visualizações
лекция 4 por student_kai
лекция 4лекция 4
лекция 4
student_kai268 visualizações
лекция 4 управление инцидентами-ч2 por student_kai
лекция 4 управление инцидентами-ч2лекция 4 управление инцидентами-ч2
лекция 4 управление инцидентами-ч2
student_kai423 visualizações

Similar a чмв лекция №5

Паттерны проектирования por
Паттерны проектированияПаттерны проектирования
Паттерны проектированияITCP Community
131 visualizações26 slides
Droidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - Zvooq por
Droidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - ZvooqDroidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - Zvooq
Droidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - ZvooqMail.ru Group
701 visualizações14 slides
Как пройти собеседование и получить первую работу на Swift por
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftAnton Loginov
2.1K visualizações19 slides
Backbone lesson 1 por
Backbone lesson 1Backbone lesson 1
Backbone lesson 1Mihail Skida
1.4K visualizações13 slides
Основы концептуального проектирования por
Основы концептуального проектированияОсновы концептуального проектирования
Основы концептуального проектированияAnton Tyukov
732 visualizações19 slides
Mvc, mvp and mvvm: A comparison of architectural patterns por
Mvc, mvp and mvvm: A comparison of architectural patternsMvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patternsIvan Dyachenko
2.6K visualizações34 slides

Similar a чмв лекция №5(20)

Паттерны проектирования por ITCP Community
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
ITCP Community131 visualizações
Droidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - Zvooq por Mail.ru Group
Droidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - ZvooqDroidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - Zvooq
Droidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - Zvooq
Mail.ru Group701 visualizações
Как пройти собеседование и получить первую работу на Swift por Anton Loginov
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
Anton Loginov2.1K visualizações
Backbone lesson 1 por Mihail Skida
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
Mihail Skida1.4K visualizações
Основы концептуального проектирования por Anton Tyukov
Основы концептуального проектированияОсновы концептуального проектирования
Основы концептуального проектирования
Anton Tyukov732 visualizações
Mvc, mvp and mvvm: A comparison of architectural patterns por Ivan Dyachenko
Mvc, mvp and mvvm: A comparison of architectural patternsMvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patterns
Ivan Dyachenko2.6K visualizações
Быстрое масштабирование систем por Media Gorod
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
Media Gorod529 visualizações
лекция № 11 por Gulnaz Shakirova
лекция № 11лекция № 11
лекция № 11
Gulnaz Shakirova462 visualizações
Бизнес и системный анализ весна 2013 лекция 7 por Technopark
Бизнес и системный анализ весна 2013 лекция 7Бизнес и системный анализ весна 2013 лекция 7
Бизнес и системный анализ весна 2013 лекция 7
Technopark474 visualizações
4я лекция - Прототипирование. por allileja
4я лекция - Прототипирование.4я лекция - Прототипирование.
4я лекция - Прототипирование.
allileja1.3K visualizações
Концепция применения онтологических структур в ERP-системах por Anatoly Simkin
Концепция применения онтологических структур в ERP-системахКонцепция применения онтологических структур в ERP-системах
Концепция применения онтологических структур в ERP-системах
Anatoly Simkin276 visualizações
Шаблоны проектирования в Magento por Pavel Usachev
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
Pavel Usachev2.3K visualizações
JavaScript Design Patterns overview by Ksenia Redunova por Lohika_Odessa_TechTalks
JavaScript Design Patterns overview by Ksenia RedunovaJavaScript Design Patterns overview by Ksenia Redunova
JavaScript Design Patterns overview by Ksenia Redunova
Lohika_Odessa_TechTalks877 visualizações
AiCare - самоорганизующийся сервис управления por Кварта Технологии
AiCare - самоорганизующийся сервис управленияAiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управления
Кварта Технологии213 visualizações
Егор Стремоусов. Модульная сетка: Что? Где? Когда? por Egor Stremousov
Егор Стремоусов. Модульная сетка: Что? Где? Когда?Егор Стремоусов. Модульная сетка: Что? Где? Когда?
Егор Стремоусов. Модульная сетка: Что? Где? Когда?
Egor Stremousov1.1K visualizações
Лекции и задания по рнр por Rauan Ibraikhan
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнр
Rauan Ibraikhan320 visualizações
методология Rad (46) por romachka_pole
методология Rad (46)методология Rad (46)
методология Rad (46)
romachka_pole790 visualizações
рит2007 требования и состав работ бесков доронин por Media Gorod
рит2007   требования и состав работ   бесков доронинрит2007   требования и состав работ   бесков доронин
рит2007 требования и состав работ бесков доронин
Media Gorod262 visualizações
Шаблоны проектирования баз данных — Введение por Denis Beskov
Шаблоны проектирования баз данных — ВведениеШаблоны проектирования баз данных — Введение
Шаблоны проектирования баз данных — Введение
Denis Beskov3.4K visualizações

Mais de student_kai

презентации продолжение банкета por
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкетаstudent_kai
1K visualizações130 slides
основы программирования на языке C por
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке Cstudent_kai
1.9K visualizações174 slides
презентация курсовой работы por
презентация курсовой работыпрезентация курсовой работы
презентация курсовой работыstudent_kai
901 visualizações15 slides
лекция№34 por
лекция№34лекция№34
лекция№34student_kai
686 visualizações7 slides
лекция№32 por
лекция№32лекция№32
лекция№32student_kai
503 visualizações2 slides
лекция№33 por
лекция№33лекция№33
лекция№33student_kai
582 visualizações17 slides

Mais de student_kai(20)

презентации продолжение банкета por student_kai
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкета
student_kai1K visualizações
основы программирования на языке C por student_kai
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке C
student_kai1.9K visualizações
презентация курсовой работы por student_kai
презентация курсовой работыпрезентация курсовой работы
презентация курсовой работы
student_kai901 visualizações
лекция№34 por student_kai
лекция№34лекция№34
лекция№34
student_kai686 visualizações
лекция№32 por student_kai
лекция№32лекция№32
лекция№32
student_kai503 visualizações
лекция№33 por student_kai
лекция№33лекция№33
лекция№33
student_kai582 visualizações
лекция№31 por student_kai
лекция№31лекция№31
лекция№31
student_kai788 visualizações
лекция№30 por student_kai
лекция№30лекция№30
лекция№30
student_kai445 visualizações
лекция№29 por student_kai
лекция№29лекция№29
лекция№29
student_kai425 visualizações
лекция№28 por student_kai
лекция№28лекция№28
лекция№28
student_kai347 visualizações
лекция№27 por student_kai
лекция№27лекция№27
лекция№27
student_kai332 visualizações
лекция№26 por student_kai
лекция№26лекция№26
лекция№26
student_kai303 visualizações
лекция№25 por student_kai
лекция№25лекция№25
лекция№25
student_kai362 visualizações
лекция№25 por student_kai
лекция№25лекция№25
лекция№25
student_kai299 visualizações
лекция№24 por student_kai
лекция№24лекция№24
лекция№24
student_kai310 visualizações
лекция№23 por student_kai
лекция№23лекция№23
лекция№23
student_kai270 visualizações
лекция№22 por student_kai
лекция№22лекция№22
лекция№22
student_kai256 visualizações
лекция№21 por student_kai
лекция№21лекция№21
лекция№21
student_kai289 visualizações
лекция№20 por student_kai
лекция№20лекция№20
лекция№20
student_kai293 visualizações
лекция№19 por student_kai
лекция№19лекция№19
лекция№19
student_kai342 visualizações

чмв лекция №5

  • 2. Лекция 5 Тема: Общие вопросы проектирования ПИ (окончание). План лекции:  Архитектура пользовательского интерфейса.  Справочные системы. 2
  • 3. Ключевые слова  Архитектура ПИ  Модель  Представление  Поведение (контроллер)  Презентатор  Абстракция  Управление 3
  • 4. Вопрос 1 Архитектура пользовательского интерфейса определяет основные функциональные блоки приложения и порядок их взаимодействия друг с другом и с пользователем. 4
  • 5. Архитектура интерфейса простого приложения командной строки Приложение приёмник команд пользователя анализатор команд обработчик команды ядро приложения 5
  • 6. Архитектура MVC  Название: «Модель-ПредставлениеПоведение» (Model-view-controller)  Автор: Трюгве Реенскауг (1979 год)  Цель: Обеспечение пользователя интерфейсом для манипуляции над многими вариантами отображения данных, как сущностей реального мира  Идея: Разделение данных приложения, ПИ и управляющей логики на три отдельных слабосвязанных компонента: модель, представление и поведение (контроллер). 6
  • 7. Компоненты MVC  Модель предоставляет данные предметной области представлению и реагирует на команды контроллера, изменяя свое состояние.  Представление отвечает за отображение данных предметной области пользователю с помощью любых доступных визуальных и не визуальных средств.  Контроллер интерпретирует действия пользователя, оповещая модель о необходимости изменений. 7
  • 8. Типы моделей MVC  Пассивная модель не осведомлена о существовании представления, контроллера, и даже о своем участии в MVC-триаде. Контроллер отслеживает изменения модели и оповещает представление.  Активная модель «знает» о существовании представлений и о том, что они должны обновляться. Активность модели проявляется в её праве самостоятельно оповестить представление об изменении своего состояния. 8
  • 9. Общая модель архитектуры MVC с активной моделью Модель запрос текущего состояния оповещение об изменении состояния выбор представления (при необходимости) Представление изменение состояния Поведение оповещение о действиях пользователя 9
  • 10. Архитектура MVP  Название: «Модель-ПредставлениеПрезентатор» (Model-View-Presenter)  Автор: Майк Потел, Taligent Inc. (1996 год), переработано Dolphin Smalltalk.  Цель: Интеграция концепций MVC в современные средства разработки ПО  Идея: Выделение данных, спецификации данных, манипуляции над данными, координации приложения, взаимодействия с пользователем и визуализацию в специализированные компоненты. 10
  • 11. Компоненты MVP  Модель отвечает за данные и бизнес-логику приложения.  Представлением является визуализация модели (включает в себя окна и элементы управления, используемые в приложении). Реализуется как интерфейс, который может быть использован для получения и установки данных модели.  Презентатор реализует логику отображения данных модели пользователю, управляет моделью и представлением. 11
  • 12. Общий вид архитектуры MVP (версия от Dolphin Smalltalk) Модель (Domain model) изменение состояния описание состояния модели Представление Презентатор оповещение о действиях пользователя 12
  • 13. Основные отличия MVP от MVC     Модель не общается с представлением даже опосредовано, через механизм оповещений, как это реализовано в MVC с активной моделью. Передача данных о состоянии модели в представление, а также изменение этого состояния реализуются через презентатор. Перехват сообщений пользователя выполняет представление, передавая его затем в презентатор. Взаимодействие представления и презентатора реализуется через специальный интерфейс, а не напрямую через вызов методов класса-презентатора. 13
  • 14. Архитектура PAC  Название: «Представление-АбстракцияУправление» (Presentation-AbstractionControl)  Цель: Построение иерархии компонентов  Идея: Организуется иерархия взаимодействующих программных модулей (агентов). Каждый агент реализует собственный аспект функциональности приложения и представляет собой триаду из представления, абстракции (модели) и управления. 14
  • 15. Архитектура HMVC  Название: «Иерархический MVC» (Hierarchical Model-View-Controller)  Цель: Построение иерархии компонентов  Идея: В PAC агенты взаимодействуют только через управление, а HMVC позволяет представлениям, контроллерам и моделям различных агентов связываться непосредственно друг с другом, выстраивая независимые иерархии. 15
  • 16. Вопрос 2 Удобство взаимодействия человека с программной во многом зависит от качества её справочной системы. Реализация справочной системы для программ и для web-сайтов, как правило, различается. 16
  • 17. Базовые компоненты справочной системы        Базовая справка – сущность и назначение системы Обзорная справка – реклама пользователю функций системы Справка предметной области Процедурная справка – отвечает: «Как это сделать?» Контекстная справка – отвечает: «Что это делает?» и «Зачем это нужно?» Справка состояния – отвечает: «Что происходит в настоящий момент?» Сообщения об ошибках – отвечает: «В чём заключается проблема?», «Как исправить эту проблему прямо сейчас?», «Как сделать так, чтобы проблема не повторилась?» 17
  • 18. Носители справочной информации  Бумажная книга – Легко позволяет читателю получить большой объём материала за один сеанс, наилучшим образом работает при последовательном чтении. – Сравнительно плохой поиск нужных сведений. – Объём практически всегда лимитирован.  Справочная карта – краткий бумажный документ об основных способах работы с системой – Компактна, легкодоступна. – Хороша как средство обучения «продвинутым» способам взаимодействия с системой. 18
  • 19. Носители справочной информации  Структурированная электронная документация – Плохо приспособлена для чтения больших объёмов материала. – Обеспечивает легкий поиск и не имеет лимита объёма. – Занимает большой объём пространства экрана. – Плохо подходит для показа крупных изображений, зато в неё могут быть легко интегрированы видео и звук.  Фрагменты пространства интерфейса, показывающие справочную информацию – Постоянно занимают некоторое пространство экрана. – Отвлекают внимание и, как правило, неспособны передавать большой объём информации. 19
  • 20. Носители справочной информации  Всплывающие подсказки – Хорошо справляются с ответом на вопросы «Что это такое?» и «Зачем это нужно?» при условии, что объём ответов сравнительно невелик. – Поскольку вызываются пользователями вручную, в обычном режиме не занимают пространства экрана и не отвлекают внимание. – Очень легко вызывают отвыкание, после первого же случая неудовлетворения пользователя подсказкой, пользователь перестаёт вызывать и все остальные подсказки. 20
  • 21. Контрольные вопросы      Поясните значение термина «архитектура пользовательского интерфейса». Опишите суть архитектуры MVC. В чём состоит основное различие между архитектурами MVC и MVP? Опишите основные достоинства иерархических архитектур ПИ. Какие компоненты справочных систем вам известны? Проиллюстрируйте свой ответ на примере распространённых программных систем. 21