Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Аналитические шаблоны проектирования приложений

Покупка
Новинка
Артикул: 825524.01.99
Доступ онлайн
1 000 ₽
В корзину
В курсе систематизирована информация о шаблонах проектирования отдельных компонентов, модулей, сервисов и программных приложений. Акцент в курсе сделан на аналитическом применении шаблонов проектирования, которые выступают не просто способом реализации той или иной бизнес-задачи, а архитектурным инструментом разработки, которым сможет воспользоваться не только разработчик, но и любой другой компетентный специалист.
Никитин, И. А. Аналитические шаблоны проектирования приложений : краткий учебный курс / И. А. Никитин, М. Т. Цулая. - Москва : ИНТУИТ, 2016. - 105 с. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2138154 (дата обращения: 13.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
И.А. Никитин М.Т. Цулая






Аналитические шаблоны проектирования приложений











ФИНТУИТ
/ НАЦИОНАЛЬНЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ

С.ИНТУ ИТ

    У НАЦИОНАЛЬНЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ


Аналитические шаблоны проектирования приложений
2-е издание, исправленное

Никитин И.А.
Цулая М.Т.



Национальный Открытый Университет “ИНТУИТ”
2016


2

Аналитические шаблоны проектирования приложений/ И.А. Никитин, М.Т. Цулая - М.: Национальный Открытый Университет “ИНТУИТ”, 2016
В курсе систематизирована информация о шаблонах проектирования отдельных компонентов, модулей, сервисов и программных приложений.
Акцент в курсе сделан на аналитическом применении шаблонов проектирования, которые выступают не просто способом реализации той или иной бизнес-задачи, а архитектурным инструментом разработки, которым сможет воспользоваться не только разработчик, но и любой другой компетентный специалист.
(c) ООО “ИНТУИТ.РУ”, 2017-2016
(c) Никитин И.А., Цулая М.Т., 2017-2016

3

                Проектирование программных продуктов





Современный мир с каждым днем все более и более зависит от информационных систем. Программы - это основа, “цифровое сердце” повсеместно используемых электронных устройств, транспортных средств, финансовых сервисов, инфраструктурных объектов и пр.

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

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

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

Введение

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

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

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


4

Дж. Захман

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

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

Современный уровень развития информационных технологий с точки зрения стандартизации и совместимости сейчас, по мнению многих экспертов, соответствует уровню развития процессов урбанизации, промышленного производства примерно 80х годов XIX века. В это время господствовали мелкие магазины, предлагающие товар, который требовалось подгонять под заказчика, поскольку единых стандартов не существовало. Изделия изготавливались под заказ в мастерских. Эта ситуация начала меняться, когда появилось массовое производство с применением сборочных линий и развитием сети железных дорог. Это привело к бурному росту распространения стандартизированных товаров.

Очевидно, что и в сфере IT предстоит пережить переход к новому уровню развития систем. Новый уровень будет характеризоваться повышением значимости стадии проектирования, увеличением взаимодействия между стандартными компонентами и пр.

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

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

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


5

экспертов.

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

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

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

Основной принцип системного мышления гласит: “То, что является в меру хорошим для каждой части, обычно является наилучшим для всей системы в целом. Если одна часть изменяется, то это приводит к изменению остальных частей”.

Качественная архитектура и зрелый процесс проектирования - компромисс между такими факторами, как:

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

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

Немного об архитектуре и истории проектирования программных продуктов

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

Шаблоны проектирования - это инструмент, разработанный в области архитектуры и культурологии. В 70-х годах XX века архитектор Кристофер Александер задумался над радом вопросов:

  1. Является ли качество объективной категорией?
  2. Следует ли считать представление о красоте сугубо индивидуальным, или люди


6

могут прийти к общему соглашению, согласно которому некоторые вещи будут считаться красивыми, а другие нет?

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

  • как он может получить гарантии, что создаваемый им объект будет “хорош”?
  • имеются ли “объективные”предпосылки для вынесения такого суждения?
  • существует ли “основа” для достижения “всеобщего” согласия?

Александер в качестве постулата принял, что в области архитектуры такое объективное

основание существует. Утверждение, что здание является красивым,-это не вопрос вкуса. “Красоту” можно описать и измерить с помощью объективных критериев.

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

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

Все это приводит к выводам о существовании “мета”-образов или шаблонов, которые могут являться объективными “шкалами” для оценки предметов в различных сферах деятельности.

Предпосылки к созданию шаблонов проектирования сферы разработки программного обеспечения заключались в потребности объективной оценки качества создаваемого программного обеспечения. Замысел оценки и описания программного обеспечения, которое отвечало бы заданным требованиям, оказался полностью воплотим на практике.

Но для этого необходимо ответить на следующий вопрос(более того, ответы на него следует воспринимать как “дорожную карту” процесса разработки программного обеспечения):

  • Какие качественные величины (не следует путать их с количественными) отличают хороший программный продукт от посредственного?

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


7

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

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

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

  • Наименование шаблона.
  • Назначение шаблона: описание задачи, которую он призван решать.
  • Способ решения поставленной задачи.
  • Ограничения и требования, которые необходимо принимать во внимание при решении задачи.

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

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

Актуальность темы “шаблонного” проектирования

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


8

потребностей отдельных людей или определенных сообществ и групп.

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

Почему же вопросы применения эффективных шаблонов проектирования при последующей разработке программных продуктов становятся особенно актуальны именно сейчас?

Объяснение может основываться на целой совокупности факторов, основные из которых связаны с:

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

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

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

К числу характерных изменений бизнеса, которые оказывают существенное влияние на использование информационных технологий, относятся:

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

Последний фактор нуждается в более подробном рассмотрении. Сейчас активно


9

обсуждаются такие понятия, как “Интернет вещей”, “цифровая трансформация бизнеса”.

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

На практике фактически это означает следование следующим основным принципам:

  • Концентрация на основных компетенциях.
  • Максимально возможная передача непрофильной деятельности внешним поставщикам услуг (аутсорсинг).
  • Систематическая разработка и реализация инноваций.
  • Расширение полномочий нижестоящих менеджеров - иерархическая структура управления “раздается вширь”.
  • Активность в образовании альянсов, в том числе частичное сотрудничество с конкурентами.
  • Максимальное использование опыта и способностей всех сотрудников.

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

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

С другой стороны, при планировании инвестиций в IT критичным становится факт существенного сокращения характерного времени изменения для бизнес-процессов и организационной структуры компании - с 10 лет до порядка 3 лет, с перспективой дальнейшего сокращения до полутора-двух лет. В связи с этим наблюдается очевидное несоответствие между временными рамками краткосрочного планирования IT в рамках годовых бюджетов и реализацией крупных IT-проектов - таких как внедрение ERP-систем, требующее 2-3 лет.

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


10

Доступ онлайн
1 000 ₽
В корзину