Uploaded by Анастасия Баслакова

АИС зачет определения

advertisement
1. RAD и Monolithic
RAD
Модель Rapid Application Development (RAD) использует инструменты, позволяющие
разработчикам использовать возможности таких IDE-сред, как Visual Studio. Примером
использования быстрой разработки можно считать простое перетаскивание элементов управления
на поверхность разработки IDE, а затем настройка этих элементов управления с помощью
дизайнера IDE. Затем создается "монолитная" бизнес-логика для работы приложения.
RAD - один из возможных подходов к разработке ПО в рамках спиральной
модели ЖЦ. Под этим термином обычно понимается процесс разработки ПО,
содержащий 3 элемента:



небольшую команду программистов (от 2 до 10 человек);
короткий, но тщательно проработанный производственный график (от 2
до 6 мес.);
повторяющийся цикл, при котором разработчики, по мере того, как
приложение начинает обретать форму, запрашивают и реализуют в
продукте требования, полученные через взаимодействие с заказчиком.
Жизненный цикл ПО по методологии RAD состоит из четырех фаз:




фаза анализа и планирования требований;
фаза проектирования;
фаза построения;
фаза внедрения.
-На фазе анализа и планирования требований пользователи системы определяют
функции, которые она должна выполнять, описывают информационные
потребности. Определение требований выполняется силами пользователей под
руководством специалистов-разработчиков. Ограничивается масштаб проекта,
определяются временные рамки для каждой из последующих фаз.
- На фазе проектирования часть пользователей принимает участие в
техническом проектировании системы под руководством специалистовразработчиков. Пользователи, непосредственно взаимодействуя с ними,
уточняют и дополняют требования к системе, которые не были выявлены на
предыдущей фазе. Анализируется и корректируется функциональная модель.
Далее принимается решение о разделении ИС на подсистемы, поддающиеся
реализации одной командой разработчиков за приемлемое для RAD-проектов
время - порядка 60 - 90 дней.
- На фазе построения выполняется непосредственно сама быстрая разработка
приложения. На данной фазе разработчики производят итеративное построение
реальной системы на основе полученных в предыдущей фазе моделей, а также
требований нефункционального характера. Результатом фазы является готовая
система, удовлетворяющая всем согласованным требованиям.
- На фазе внедрения производится обучение пользователей, организационные
изменения и параллельно с внедрением новой системы осуществляется работа с
существующей системой.
Методология RAD, как и любая другая, не может претендовать на
универсальность, она хороша в первую очередь для относительно небольших
проектов, разрабатываемых для конкретного заказчика.
Методология RAD неприменима для построения сложных расчетных программ,
т.е. программ, требующих написания большого объема (сотни тысяч строк)
уникального кода. А также не подходят для разработки приложения, в которых
отсутствует ярко выраженная интерфейсная часть, наглядно определяющая
логику работы системы.
3 основных преимущества RAD — высокая скорость разработки, низкая
стоимость и высокое качество.
Но самым главным преимуществом RAD-разработки, конечно, является легкость
разработки. Весь код графического интерфейса и его привязки к данным генерируется
IDE-средой и нам не нужно беспокоиться о деталях его реализации.
Monolithic design
Корпоративные приложения используются для отображения, обработки и сохранения данных.
Если мы строим приложение без использования паттернов проектирования, то можем столкнуться
с потенциальной проблемой при расширении графического интерфейса приложения или
дополнении кода доступа к данным. На следующей диаграмме показана тенденция "монолитного"
проектирования графических интерфейсов:
Как видите бизнес-логика и код доступа к данным инкапсулируются глубоко в графическом
интерфейсе
Этот код выполняет свою работу, так в чем проблема и почему есть необходимость
реструктурировать его? Этот код тесно связан с графическим интерфейсом пользователя и требует
добавления множества обработчиков событий, которые конструируют логику приложения. При
этом он имеет плохую расширяемость, например, если вы захотите перенести бизнес-логику
данного приложения в веб-приложение, придется очень сильно реконструировать проект, т.к.
бизнес-логика сильно связана с графическим представлением.
2.MVC
модель-представление-контроллер (model-view-controller) - схема разделения данных
приложения, пользовательского интерфейса и управляющей логики на три отдельных
компонента: модель, представление и контроллер — таким образом, что модификация
каждого компонента может осуществляться независимо.
Если оперировать понятиями высокого уровня, архитектурный шаблон MVC означает, что
приложение MVC будет разделено, по крайней мере, на три части:
Модели - предоставляет данные и реагирует на команды контроллера, изменяя своё состояние
Содержат или представляют данные, с которыми работают пользователи. Они могут быть
простыми моделями представлений, которые только представляют данные, передаваемые между
представлениями и контроллерами; или же они могут быть моделями предметной области,
которые содержат бизнес-данные, а также операции, преобразования и правила для
манипулирования этими данными.
Представления (View) - отвечает за отображение данных модели пользователю, реагируя на
изменения модели.
Применяются для визуализации некоторой части модели в виде пользовательского интерфейса.
Контроллеры изменений.
интерпретирует действия пользователя, оповещая модель о необходимости
Обрабатывают поступающие запросы, выполняют операции с моделью и выбирают представления
для визуализации пользователю.
Если рассматривать приложение в призме бизнес-логики, то можно выделить три уровня на
которых строится приложение:
Уровень представления - данный уровень отвечает за отображение данных, обеспечение
обратной связи с пользователем, сбор пользовательской информации, которая передается в
уровень бизнес-логики для обработки.
Бизнес-уровень - бизнес-уровень или, если говорить проще, уровень приложения,
обеспечивает логику взаимодействия представления и данных. В MVC бизнес-уровень реализует
структуру модели.
Уровень данных - уровень данных отвечает за получение, передачу и сохранение данных в
файле, базе данных, службе или XML.
Основная цель применения этой концепции состоит в отделении бизнес-логики (модели) от её
визуализации (представления, вида). За счёт такого разделения повышается
возможность повторного использования кода. Наиболее полезно применение данной
концепции в тех случаях, когда пользователь должен видеть те же самые данные
одновременно в различных контекстах и/или с различных точек зрения.
Поскольку MVC не имеет строгой реализации, то реализован он может быть поразному. Нет общепринятого определения, где должна располагаться бизнес-логика. Она
может находиться как в контроллере, так и в модели. В последнем случае, модель будет
содержать все бизнес-объекты со всеми данными и функциями
3. MVP
Model View Presenter (MVP) - шаблон, который впервые появился в IBM, а затем использовался в
Taligent в 1990-х. MVP является производным от MVC, при этом имеет несколько иной подход. В
MVP представление не тесно связано с моделью, как это было в MVC. На следующей диаграмме
показана структура MVP:
Как видно на этой диаграмме, Presenter занял место контроллера и отвечает за перемещение
данных, введенных пользователем, а также за обновление представления при изменениях, которые
происходят в модели. Presenter общается с представлением через интерфейс, который позволяет
увеличить тестируемость, так как модель может быть заменена на специальный макет для
модульных тестов. Также как и для MVC, давайте рассмотрим структуру MVP со стороны бизнеслогики приложения:
В данном случае структура MVP аналогична MVC в том плане, что код доступа к данным
находится вне этой модели, а вся бизнес-логика приложения концентрируется в модели (эта
схожесть подтверждает то, что MVP является производным от MVC, изменилась только логика
представления).
MVP был разработан для облегчения автоматического модульного тестирования и
улучшения разделения ответственности в презентационной логике (отделения логики от
отображения):



Модель (англ. Model) — хранит в себе всю бизнес-логику, при необходимости получает
данные из хранилища.
Вид (англ. View) — реализует отображение данных (из Модели), обращается к Presenter
за обновлениями.
Представитель (англ. Presenter) — реализует взаимодействие между моделью и
представлением.
Обычно экземпляр Вида (Представления) создаёт экземпляр Представителя, передавая ему
ссылку на себя. При этом Представитель работает с Видом в абстрактном виде, через
его интерфейс. Когда вызывается событие Представления, оно вызывает конкретный метод
Представителя, не имеющего ни параметров, ни возвращаемого значения. Представитель
получает необходимые для работы метода данные о состоянии пользовательского
интерфейса через интерфейс Вида и через него же передаёт в Вид данные из Модели и
другие результаты своей работы.
Итак, MVP представляет собой большой шаг вперед по сравнению с MVC в
нескольких направлениях:

MVP обеспечивает проверяемость состояния и логики представления,
перемещая их в Presenter.

Представление жестко отделяется от модели, при этом связь организуется
через Presenter. В отличие от MVC, MVP допускает повторное использование
бизнес-логики без непосредственного видоизменения модели (за счет
использования интерфейса IView). Например, если вы захотите перенести это
WPF-приложение на Silverlight, вам потребуется только создать представление
в Silverlight, реализующее IProjectsView, а IProjectsPresenter и IProjectsModel
можно использовать повторно.
4. MVVM
MVVM (Model-View-ViewModel) - это шаблон, который появился для обхода ограничений
паттернов MVC и MVP, и объединяющий некоторые из их сильных сторон. Эта модель
впервые появилась в составе фреймворка Small Talk в 80-х, и была позднее улучшена с
учетом обновленной модели презентаций (MVP).
Шаблон MVVM имеет три основных компонента:
-модель, которая представляет бизнес-логику приложения;
-представление пользовательского интерфейса XAML - графический интерфейс, то есть
окно, кнопки и т. п. Представление является подписчиком на событие изменения значений
свойств или команд, предоставляемых Моделью Представления.
-представление-модель, в котором содержится вся логика построения графического
интерфейса и ссылка на модель, поэтому он выступает в качестве модели для
представления.
На следующем рисунке представлена диаграмма, которая показывает, как реализовать
шаблон MVVM. Конечно, это общая реализация:
MVVM используется для разделения модели и её представления, что необходимо для
изменения их отдельно друг от друга. Например, разработчик задает логику работы с
данными, а дизайнер соответственно работает с пользовательским интерфейсом.
MVVM удобно использовать вместо классического MVC и ему подобных в тех случаях, когда в
платформе, на которой ведётся разработка, присутствует «связывание данных». В шаблонах
проектирования MVC/MVP изменения в пользовательском интерфейсе не влияют
непосредственно на Mодель, а предварительно идут через Контроллер (англ. Controller) или
Presenter. В таких технологиях как WPF и Silverlight есть концепция «связывания данных»,
позволяющая связывать данные с визуальными элементами в обе стороны. Следовательно,
при использовании этого приема применение модели MVC становится крайне неудобным изза того, что привязка данных к представлению напрямую не укладывается в концепцию
MVC/MVP.
5.DAL
Слой доступа к данным -DAL (Data Access Layer) в программном обеспечении — это
слой компьютерной программы, который предоставляет упрощенный доступ к данным,
хранимым в постоянном хранилище какого-либо типа, таком как реляционная база данных.
Для архитектуры конкретного приложения входит в норму подбор средства
или класса средств хранения под конкретную решаемую задачу. Для масштабных
ИТ-систем оптимальным нередко становится одновременное использование
нескольких БД различного типа в рамках одного приложения (гетерогенное
хранение, рис. 1) для разных групп данных.
модель объектов описания DAL
Концепция вводит несколько понятий:






класс данных;
средство хранения;
характеристика средства хранения;
класс средств хранения;
группа данных;
контейнер данных
Класс данных - определяет идеальную абстракцию данных, не зависящую
ни от конкретных технологий, ни от ограничений реализуемости:




абстрактную («логико-математическую») модель самих данных (например, «набор
реляционных отношений» или «набор пар ключ-значение»);
модель (или несколько моделей) доступа к данным и вычисления над данными
(например, «реляционная алгебра» или MapReduce);
модель безопасности (например, «именованные контейнеры», «пользователи»
и «права»);
модель структуры данных (например, «схема с описанием таблиц» или «перечень
групп атрибутов»).
Бизнес-логика приложения реализована на основе определенного класса данных,
и смена класса данных никак не может произойти без перепроектирования логики
приложения.
Средства хранения - Конкретные имеющиеся на рынке или развернутые
на предприятии средства хранения (различные виды БД) предоставляют возможности
одного или нескольких классов средств хранения для нескольких классов данных.
Характеристика средства хранения - Представляет собой какую-либо
значимую числовую, качественную характеристику или бинарный признак средства
хранения:






производительность чтения/записи;
масштабируемость;
работа в памяти (in-memory);
ограничения;
специализация (например, Big Data или Fast Data);
поддержка ACID-транзакций и т. д.
Класс средств хранения (SLA)
В рамках одного класса данных группирует такой набор характеристик хранения, который,
с одной стороны, часто востребован в приложениях, а с другой — обеспечивает
альтернативную реализацию (средство хранения).
Для различных классов данных могут определяться разные SLA. Перевод данных
приложения с одного класса хранения на другой может потребовать частичного
перепроектирования, поскольку понадобится компенсация ослабевающих
или пропадающих свойств SLA. Переделки также вероятны в случае необходимости
выделения внутри приложения отдельной группы данных для размещения в другом
классе данных или средстве хранения с последующей интеграцией этих данных
с другими группами.
Группа данных - Данные в рамках конкретного приложения, по логике этого
приложения принадлежащие к одному классу данных и требующие одного SLA;
например, в приложении может быть выделена группа данных «справочники X»,
принадлежащая классу key-value и требующая быстрого чтения по ключу.
Контейнер данных - Идентифицируемый объем данных, хранимых с помощью
некоторого средства хранения и соответствующих одной группе данных одного
приложения. В ответ на запрос хранения данных для приложения выделяется один
или несколько контейнеров данных.
DAL образует контролируемый «слой» между бизнес-приложениями и средствами
хранения (базами данных):
Структура DAL представляет собой набор слабо связанных программных модулей
для организации доступа к данным разных приложений. Слабая связанность модулей
позволяет избежать проблем в синхронизации процессов разработки и обновления
разных приложений и программного обеспечения DAL. Сами модули доступа могут иметь
специфические реализации для различных базовых технологий, на которых разработаны
бизнес-приложения.
Структура DAL предполагает два варианта размещения модулей доступа
к данным:
1. В виде библиотеки, включаемой в состав приложения. В этом варианте
необходима разработка разных видов модулей доступа для разных
технологий разработки АС.
2. В виде сетевого сервиса. Этот вариант предназначен для тех случаев, когда
по каким-то причинам невозможна или нежелательна работа сервиса доступа
к данным в виде библиотеки (например, ИС разработана на платформе,
у которой нет библиотеки для работы с DAL). В таком варианте DAL доступен
для любого приложения, способного работать с сетевыми сервисами
по протоколу HTTP. Для этого способа размещения набор предоставляемых
интерфейсов доступа к данным может быть ограничен.
Если предприятие хочет сохранить независимость от поставщиков конкретных решений
для ИТ-инфраструктуры, то разработчикам ИТ-систем предприятия следует максимально
абстрагироваться от специфики этих решений. Следование архитектурным принципам
Data Access Layer позволит предприятию не быть заложниками проприетарных СУБД
и выбирать наиболее подходящее по возможностям и стоимости решение для хранения
данных. Помимо этого, у компании появится возможность использования новых
технологий для работы с данными без значительных доработок АС.
Download