Главная страница
Навигация по странице:

  • Принцип единственности ответственности

  • Принципминимальногознания

  • Минимизируйте проектирование наперед

  • Типовыеархитектурныестили Архитектурный

  • Архитектурный

  • Насыщенные клиентские приложения

  • НасыщенныеИнтернет-приложения

  • Преимущества и недостаткиархетиповприложений

  • Типприложения Преимущества Недостатки

  • Практическая работа 2,1. Лабораторная работа Проектирование архитектуры программного средства


    Скачать 197.25 Kb.
    НазваниеЛабораторная работа Проектирование архитектуры программного средства
    Дата05.04.2022
    Размер197.25 Kb.
    Формат файлаdocx
    Имя файлаПрактическая работа 2,1.docx
    ТипЛабораторная работа
    #443825

    Лабораторная работа 2. Проектирование архитектуры программного средства

    Цельработы

    Целью работы является изучение базовых принципов ишаблонов построения архитектуры приложений, выбор стратегии и шаблона проектирования, которые помогут при проектировании слоев, компонентов и сервисов решения, а такжевизуальноепроектированиеархитектурыприложениясис-пользованиемMicrosoftVisio.

    Теоретическиесведения

    Создание архитектуры приложения — это процесс фор-мированияструктурированногорешения,отвечающеговсемтехническим и операционным требованиям и обеспечивающего оптимальные общие атрибуты качества, такие как производительность, безопасность и управляемость. Онвключаетпринятиерядарешенийнаоснованииширокогодиапазонафакторов. Каждое из этих решений может иметь существенноевлияние на качество, производительность, удобство обслуживания и общий успех приложения.

    Какилюбаядругаясложнаяструктура,программноеобес-печение(ПО)должностроитьсянапрочномфундаменте.Непра-вильноеопределениеключевыхсценариев,неправильноепроектирование общих вопросов или неспособность выявить долгосрочные последствия основных решений могут поставить под угрозу все приложение. Современные инструменты и плат-формыупрощаютзадачупосозданиюприложений,нонеустра-няютнеобходимостивтщательномихпроектированиинаосновании конкретных сценариев и требований. Неправильновыработанная архитектура обусловливает нестабильность ПО,невозможность поддерживать существующие или будущие бизнес требования, сложности при развертывании или управлении в среде производственной эксплуатации.

    Проектирование систем должно осуществляться с учетомпотребностей пользователя, системы (ИТ-инфраструктуры) ибизнес-целей. Для каждой из этих составляющих определяются ключевые сценарии выделяются важные параметры качества (например, надежность или масштабируемость), а также ос-новныеобластиудовлетворенностиинеудовлетворенности.По возможности необходимо выработать и учесть показателиуспешностивкаждойизэтихобластей.

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

    Приступая к работе над архитектурой приложения, необ-ходимо помнить об основных принципах проектирования. Этопоможет создать архитектуру, которая будет следовать прове-реннымподходам,обеспечитминимизациюзатрат,простотуобслуживания,удобствоиспользованияирасширяемость.

    Рассмотримосновныепринципы:

    1. Разделениефункций.Разделитеприложениенаот-дельныекомпоненты,повозможности,минимальнымпере-крытиемфункциональности.Важнымфакторомявляетсяпредельноеуменьшениеколичестваточексоприкосновения,чтообеспечитвысокуюсвязность(highcohesion)ислабуюсвязанность (lowcoupling). Неверное разграничение функцио-нальности может привести к высокой связанности и сложно-стямвзаимодействия,даженесмотрянаслабоеперекрытиефункциональностиотдельныхкомпонентов.

    2. Принцип единственности ответственности. Каждыйотдельновзятыйкомпонентилимодульдолженотвечатьтолькозаодноконкретноесвойство/функциюилисовокуп-ностьсвязанных функций.

    3. Принципминимальногознания(такжеизвестныйкакЗаконДеметера(LawofDemeter,LoD)).Компонентуилиобъектуне должны быть известны внутренние детали других компо-нентовилиобъектов.

    4. Не повторяйтесь. Намерение должно быть обозначенотолькоодинраз.Вприменениикпроектированиюприложения

    этоозначает,чтоопределеннаяфункциональностьдолжнабытьреализованатольководномкомпонентеинедолжнадублироватьсяниводномдругом компоненте.

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

    Цель архитектора ПОпри проектировании приложенияилисистемы —максимальноеупрощениедизайначерезегоразбиение на функциональные области. Например, пользова-тельскийинтерфейс(userinterface,UI),выполнениебизнес-процессовилидоступкданным —всеэторазныефункцио-нальныеобласти.Компонентывкаждойизэтихобластейдолжныреализовыватьданнуюконкретнуюфункциональ-ностьинедолжнысмешиватьвсебекодразныхфункцио-нальных областей. Так в компонентах UI не должно быть кодапрямогодоступакисточникуданных;дляизвлеченияданныхв них должны использоваться либо бизнес-компоненты, либокомпонентыдоступа к данным.

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

    Архитектурапрограммногообеспечениязаключаетвсеберяд важных решений об организации программной системы,средикоторыхвыборструктурныхэлементовиихинтерфейсов,составляющих и объединяющих систему в единое целое; пове-дение,обеспечиваемоесовместнойработойэтихэлементов;организациюэтихструктурныхиповеденческихэлементов

    в более крупные подсистемы, а также архитектурный стиль,которогопридерживаетсяданнаяорганизация.

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

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

    Пониманиеархитектурныхстилейобеспечиваетне-сколькопреимуществ.Самоеглавноеизних —общийязык.Также они дают возможность вести диалог, не касаясь техно-логий, т. е. обсуждать схемы и принципы, не вдаваясь в детали.Например, архитектурные стили позволяют сравнивать схемуклиент/серверсn-уровневойсхемойприложения.Архитек-турныестилиможноорганизоватьпоих фокусу.

    Втабл. 8.1приведенсписоктиповыхархитектурныхстилей,идаетсякраткоеописание каждогоиз них.

    Таблица8.1

    Архитектурный'>Типовыеархитектурныестили


    Архитектурныйстиль/парадигма

    Описание



    Клиент/сервер

    Система разделяется на два приложения, гдеклиент выполняет запросы к серверу. Во многихслучаяхвролисерверавыступаетбазаданных,

    а логика приложения представлена процедура-михранения


    Компонентнаяархитектура

    Дизайн приложения разлагается на функцио-нальные или логические компоненты с возмож-ностьюповторногоиспользования,

    предоставляющие тщательно проработанныеинтерфейсысвязи

    Окончаниетабл.8.1

    Архитектурныйстиль/парадигма

    Описание


    Дизайн на основепредметнойобласти4

    Объектно-ориентированный архитектурныйстиль, ориентированный на моделированиесферы деловой активности и определяющийбизнес-объекты на основании сущностей этойсферы

    Многослойнаяархитектура

    Функциональныеобластиприложенияразде-ляютсянамногослойныегруппы(уровни)



    Шинасообщений

    Архитектурный стиль, предписывающий ис-пользование программной системы, котораяможет принимать и отправлять сообщения поодному или более каналам связи, так что при-ложения получают возможность взаимодей-ствовать, не располагая конкретнымисведениямидруго друге


    N-уровневая/3-уровневая

    Функциональность выделяется в отдельныесегменты, во многом аналогично многослойно-му стилю, но в данном случае сегменты физиче-скирасполагаютсянаразныхкомпьютерах.


    Объектно-ориентированная

    Парадигма проектирования, основанная нараспределении ответственности приложенияили системы между отдельными многократноиспользуемыми и самостоятельными объекта-ми,содержащимиданныеиповедение

    Сервисно-оринетрированнаяархитектура(SOA)

    Описывает приложения, предоставляющиеипотребляющиефункциональностьввиде

    сервисовспомощьюконтрактовисообщений

    Архитектурапрограммнойсистемыпрактическинико-гда не ограничена лишь одним архитектурным стилем, зача-стуюонаявляетсясочетаниемархитектурныхстилей,образующих полную систему. Например, может существоватьSOA-дизайн, состоящий из сервисов, при разработке которыхиспользоваласьмногослойнаяархитектураиобъектно-ориентированныйархитектурный стиль.

    Рассмотримосновныебазовыетипыприложений:

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

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

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

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

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

      6. Существуетмножестводругихболееспециализиро-ванных типов приложений. Как правило, эти типы являютсяспециализациямиилисочетаниямибазовыхтипов,перечис-ленныхвданномсписке.

    Втабл.8.2перечисленыпреимуществаинедостаткиоб-щихархетиповприложений.

    Таблица8.2

    Преимущества и недостаткиархетиповприложений


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

    Преимущества

    Недостатки




    Возможностьиспользова-







    нияресурсовклиента.

    Сложностьразвер-




    Лучшеевремяотклика,

    тывания;приэтом




    насыщеннаяфункцио-

    широкийвыбор




    нальностьUIиулучшен-

    вариантовустанов-

    Насыщенныеклиентскиеприложения

    ное взаимодействие спользователем.

    Очень динамичное взаи-модействиескоротким

    ки, такихкакClickOnce,Windows

    Installer и XCOPY.Сложностиобеспе-




    временемотклика.

    чениясовместимо-




    Поддержкасценариевбез

    стиверсий.




    подключенияисценариев

    Зависимостьот




    безпостоянногоподклю-чения

    платформы




    Поддержкапортативных


    Ограниченныевозможности вводаи навигации.

    Ограниченнаяобласть отображе-нияэкрана




    устройств.




    Доступностьипростота

    Мобильныеприложения

    использованиядлямо-

    бильных пользователей.Поддержкасценариевбез




    подключенияисценариев




    безпостоянногоподклю-




    чения




    Такиеженасыщенные


    Большийобъемпамяти,занимае-мыйнаклиенте,

    посравнениюсВеб-приложением




    возможностипользова-

    Насыщенные

    тельскогоинтерфейса,

    Интернет-

    какидлянасыщенных

    приложения

    клиентов.

    (RIA)

    Поддержканасыщенныхи




    потоковыхмультимедиаи




    графики

    Окончаниетабл.8.2

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

    Преимущества

    Недостатки





    Простотаразвертываниясвозможностямираспреде-ления(насыщенными)такимиже,какидляВеб-клиентов.

    Простотаобновленияисменыверсий.

    Поддержкаразличныхплатформибраузеров

    Ограниченное ис-пользование ресур-совклиента

    по сравнению снасыщеннымклиентскимприло-жением.

    Необходимостьразвертывания наклиентеподходящей

    средывыполнения

    Сервисныеприложения

    Слабосвязанноевзаимо-действиемеждуклиентомисервером.

    Могут использоваться раз-личными и невзаимосвязан-нымиприложениями.

    Поддержкадляобеспече-ниявозможностивзаимо-

    действия



    Отсутствиепод-держкиUI.Зависимостьотвозможностисете-вогоподключения

    Веб-приложения

    Широкодоступныйиосно-ванныйнастандартахUI,поддерживаемыйнамногихплатформах.

    Простотаразвертыванияивнесенияизменений

    Необходимостьустойчивогосете-вогоподключения.Сложнообеспечитьнасыщенныйполь-

    зовательскийинтерфейс

    Каждыйтипприложенияможетбытьреализовансиспользованиемоднойилиболеетехнологий.Выбортехнологиибудетопределятьсясценариямииограничениямитехнологий,атакжевозможностямииопытомгруппыразработки.

    Ходработы

    Визуальное проектирование может быть осуществлено спомощьюпрограмм,поддерживающихбазовыефункциипопостроению диаграмм. Рассмотрим основные элементы, которыеможно использовать для построения архитектуры в MicrosoftVisio.

    Приразработкеосновныеэлементыможновзятьизшаблонов «Программы ибазыданных»(рис.8.1).

    Рис.8.1. Шаблоны диаграмм группы «Программыибазыданных»

    Дополнительноможноиспользоватьэлементыизшаблонов «Сеть»(рис.8.2).

    Рис.8.2.Шаблоныдиаграммгруппы«Сеть»

    Припроектированииархитектурыиспользуютсяблоки:

    «Процесс», «Объект», «Компонент», «Линия связи» и т.п.

    (рис.8.3).


    Рис.8.3.Фигурыдляпостроениядиаграммы

    «Корпоративноеприложение»

    Примерразработаннойархитектурыприложенияпредставленна рис.8.4.

    Рис.8.4.Примерархитектурыпрограммногокомплекса

    Индивидуальныезадания

    В соответствии с вариантом задания (вариант выбираетсяи обсуждается с преподавателем) определить и описать особенностиреализациисистемы(подходы,технологииит.п.).

    На основе описанных особенностей системы обосноватьвыбор вида архитектуры, наиболее подходящей для реализацииданнойсистемы.

    Произвести визуальное проектирование архитектуры системы(рекомендуетсяиспользоватьпрограммуMicrosoftVisio).

    Добавить текстовое описание к архитектуре, поясняющееееструктуруисвязи.

    Контрольныевопросы

    1. Что подразумевается под созданием архитектуры приложения?

    2. Каковоосновноеназначениеархитектурыприложения?

    3. Перечислите основные принципы разработки архитектурыпрограммногообеспечения.

    4. Перечислитеосновныетиповыеархитектурныестили.

    5. Перечислитеосновныеархетипыприложений.

    6. Перечислите основные элементы, которые можно использовать для построения архитектуры программного обеспечения.


    написать администратору сайта