Казахстан, Караганды, Карагандинский экономический университет, 2009 |
Проектирование программных продуктов
Постоянное применение на практике знаний и принципов проектирования
Утверждение о том, что технологии и их применение на сегодняшний день –одна из основных составляющих успеха любой компании, уже неоспоримо. Успешные организации вынуждены подстраиваться под высокий ритм изменений, диктуемый актуальным состоянием экотехнологических процессов, пронизывающих современный мир.
Именно то, как быстро компании смогут адаптироваться под динамично меняющиеся условия глобальных и локальных рынков, будет определять их способность функционирования.
Руководителей компаний волнуют такие темы, как технологии, цифровая трансформация компаний и связь между этими двумя вещами. При этом очень часто, будучи специалистами в своих предметных областях, они не понимают технологий, а иногда и боятся их. Все, что они знают, – это то, что технологии приводят к серьезным переменам в бизнесе, и лучше им уделять должное внимание, поскольку всегда есть опасность, что какая-нибудь новая технология подкрадется незаметно сзади и ударит по голове.
Шаблоны проектирования приложений, описанные в этой книге, обеспечат руководителям некоторую гарантию того, что инновационная информационная технология не будет безальтернативным выходом из складывающихся обстоятельств конкретной организации.
Самая насущная проблема в области разработки корпоративных информационных систем–необходимость синхронизации и последующей модернизации информационного ландшафта компании с целями бизнеса. Руководство мыслит в терминах бизнес-моделей, процессов и функций, а сотрудников IT беспокоят вопросы того, как конкретные технологии интегрировать в общую архитектуру предприятия. В результате очень часто образуется разрыв между ожиданиями и конкретной реализацией.
Очевидно, что способ обеспечения связей между бизнес-целями и ITнеобходим каждой компании. Крупным организациям нужен единый синхронный подход, который позволит создать согласованные между собой программные продукты.
Распространяемый сегодня подход к построению эффективного бизнеса сосредоточивается на концепции "архитектура предприятия", одной из частей которых является архитектура программных продуктов. Без понимания основного источника преимуществ организации и их развития достаточно затруднительно сформировать ясные базисные требования для "архитектуры предприятия".В связи с этим повышается важность постоянного, поточного использования подходов, которые смогут трансформировать высокоуровневые требования, отраженные в концептуальных документах в вид понятных задач для реализации в конкретных программных продуктах.
Стратегия компании должна однозначно определять направления развития бизнеса организации и причины движения в данном направлении.
Задачи архитектуры и шаблонов проектирования должны идентифицировать информационные системы и их компоненты, которые требуются для поддержки бизнес-процессов. Шаблоны проектирования приложений определяют архитектуру компании, которая при надлежащей степени зрелости, определяемой не только технологической развитостью, но и косвенными процессами, такими как документирование и совершенствование, гарантирует быстрое и надежное внесение изменений, необходимых для поддержки бизнес-деятельности.
Одним из основных факторов на пути достижения коммерческого успеха является постоянное и повсеместное использование шаблонов проектирования, сочетающихся между собой. Только при условии стандартизированного применения концепции "шаблонного проектирования" можно гарантировать ступенчатую и качественную трансформацию бизнес-замыслов на уровень информационных систем без значительной потери сути смысла выполняемых разработок. Когда "шаблоны проектирования" станут частью "гена" архитектуры организации и будут использоваться на всех этапах жизненного цикла программных продуктов – с момента внедрения до стадии утилизации, – компания сможет прогнозировать и планировать свою информационную трансформацию с высокой степенью достоверности последующей реализации. В этой связи значимость шаблонов проектирования как "переходного звена" трансформации концептуальных замыслов в рабочую автоматизированную функциональность приобретает дополнительную значимость и ценность.
Размышление о будущем проектирования
Факторы, которые составляют базис архитектуры организации, будут способствовать ее дальнейшему совершенствованию или станут основным препятствием в развитии.
Эти факторы определяются ожиданиями и требованиями бизнес-пользователей для достижения быстрых результатов, поддержки изменяющихся стилей работ и процессов.
Можно выделить следующие направления, которые должны поддерживаться шаблонами проектирования приложения для достижения оптимальной информационной архитектуры:
- Наделение пользователя полномочиями. Архитектура приложения, поддерживающая наделение пользователя всеми необходимыми для работы полномочиями, является гибкой, настраиваемой и ориентированной на пользователя. При использовании специализированных шаблонов проектируйте приложения, учитывая соответствующий уровень персонализации и конфигурации для пользователя. Позволяйте пользователям определять стиль взаимодействия с приложением, но при этом не перегружайте их ненужными опциями и настройками. Определитесь с ключевыми доступными для применения сценариями и сделайте их предельно простыми.
- "Зрелые" приложения. Следует разрабатывать информационные системы в таких высокоуровневых средах, насколько это позволяют предъявляемые к приложениям требования. Это позволит сконцентрироваться на тех аспектах, которые составляют конкурентное преимущество Приложения взамен воспроизведения уже существующих функций.
- Гибкая архитектура. Распространение гибких методологий разработки программного обеспечения приводит к возрастанию интереса к "гибкому дизайну", использующему слабое связывание, что делает возможным повторное использование и упрощает последующую поддержку приложений. Архитектура с возможностью подключения модулей позволяет реализовать расширяемость после развертывания.
- Тенденции. При построении информационной архитектуры необходимо понимать тенденции, которые могут оказать влияние на ее последующую трансформацию. Речь идет о тенденциях в насыщенных UI и мультимедиа, составных приложениях, интересе к моделям блогов и сообществ, росте популярности вычислений в облаке и удаленной работы. Все эти тенденции должны поддерживаться базисом архитектуры. В противном случае есть вероятность, что приложение достаточно быстро станет морально и технологически устаревшим, неспособным поддержать бизнес-потребности.
Предложенный список факторов не является полным и достаточным. Текущие условия развития архитектур программных продуктов отличаются высокой динамикой и степенью изменчивости, и это приводит к тому, что отдельные информационные системы подвергаются полному, но постепенному эволюционному реинжинирингу методом рефакторинга один раз в несколько лет.
Можно с уверенностью сказать, что это – реалии современного рынка программных продуктов, которые бесполезно игнорировать и к которым необходимо адаптироваться. Шаблоны проектирования – средство, которое сможет позволить реализовывать поэтапную трансформацию программных продуктов, поддерживая при этом высокий уровень качества информационных систем за счет детальной проработки основной функциональности, необходимой для их целостной реализации.
Выводы
При использовании шаблонов проектирования следует руководствоваться набором следующих принципов:
- Необходимо постоянно изменять уже созданное. Продумывайте, как со временем придется изменять приложение, чтобы оно отвечало актуальным требованиям изадачам. Реализованное должно быть в состоянии поддержать необходимую гибкость.
- Используйте модели для анализа и сокращения рисков. При проектировании систем необходимо выполнять высокоуровневое моделирование и использовать для этого унифицированный язык моделирования (UML) и средства визуализации. После выявления необходимых требований следует приступить к принятию наиболее значимых архитектурных и проектных решений, а также оценить возможные риски и последствия. Вот тут необходимы модели, которые могут визуально представить автоматизированные процессы. Тем не менее создавать слишком нормализованные модели неправильно –следует помнить о принципе итеративности.
- Используйте модели и визуализации как средства общения при совместной работе. Для разработки качественных программных продуктов критически важен эффективный обмен информацией о дизайне, принимаемых решениях и изменениях. Тут помогут созданные модели для визуализации архитектуры и эффективного обмена информацией со всеми заинтересованными сторонами.
- Выявляйте ключевые шаблоны и инженерные решения, которые смогут воплотить архитектуру на практике.
В самом начале проекта уделите достаточное количество времени и внимания для принятия правильных решений– это обеспечит создание более гибкого дизайна, внесение изменений в который не потребует полной его переработки. Следует начинать с базовой архитектуры, создавая над ней полную картину, после чего прорабатывая возможные варианты. Не следует пытаться сделать все и сразу. Проектировать следует настолько "глубоко", насколько это необходимо для начала использования программного продукта. Усложнять продукт следует постепенно, в процессе многократного рефакторинга, чтобы убедиться прежде всего в правильности принятых крупных решений и лишь затем сосредоточиваться на деталях. Общей ошибкой, свойственной всем начинающим проектировщикам, является быстрый переход к деталям при ошибочном представлении о правильности крупных решений.
Шаблоны проектирования — это один из инструментов разработчика, который помогает ему сэкономить время и создать более качественное решение.
Нужно помнить о том, что шаблоны проектирования не связаны с каким-то конкретным языком программирования. Это подход к проектированию, который представляет исполнителю средство для итеративной проработки деталей с условием сохранения целостного и полного взгляда на решение в целом.