Содержание к диссертации
Введение
Глава 1. Существующие методы и технологии реализации интернет-приложений с использованием java 14
Понятие интернет-приложения и его роль в информационной инфраструктуре организации 14
Анализ существующих методов проектирования и управления процессом разработки программных продуктов 16
Современные платформы создания интернет-приложений 18
Jsp / servlet 28
Apache struts 29
Spring m vc 31
Jboss seam 32
Ion cms 33
Opencms 34
Ограничения существующих технологий разработки интернет-приложений. Постановка задачи. 36
Выводы 39
Глава 2. Архитектуры интернет-приложения в системе управления веб-сайтами i.portal 41
Классификация компонентов системы. Сервисы, фабрики, модули, сайты, темы и раскладки 41
Архитектура доступа к хранилищу данных из приложения в системе .portal 55
Организация взаимодействия приложения с пользователем 69
Реализация изменяемого интерфейса пользователя на основе velocity-шаблонов 74
Локализация приложений системы 76
Понятие шаблона проектирования mvc и model 2 78
Применение шаблона проектирования model 2 при реализации приложений 79
Выводы 83
Глава 3. Метод создания веб-приложений i.portal mse 84
Понятие и особенности метода .portal mse 84
Технологическая база разработки в .portal mse 86
Этапы н уровни .portal mse 91
Управление требованиями заказчика и планирование архитектуры в процессе разработки 94
Контроль качества разрабатываемого решения 108
Первый этап уровня разработки приложения. Создание uml — модели 120
Второй этап уровня разработки приложения. Генерация шаблона приложения 125
Третий этап разработки приложения. Модификация/доработка шаблона. 131
Автоматизированное тестирование как механизм контроля качества. 134
Понятие автоматизированного тестирования. Преимущества применения автоматизированных
Тестов 134
Виды тестов, применимые для проверки работоспособности приложений системы управления вебсайтами .portal 135
Код функциональных тестов и их доработка 138
Выводы 139
Глава 4. Пример реализации интернет-приложения на основе предложенного метода 140
Первый уровень .portal mse. Управление требованиями 140
Второй уровень .portal mse. Управление качеством готового продукта . 141
Третий уровень .portal mse. Архитектурное моделирование и программная реализация. 145
Выводы 155
Заключение 156
Список литературы 159
- Анализ существующих методов проектирования и управления процессом разработки программных продуктов
- Архитектура доступа к хранилищу данных из приложения в системе .portal
- Управление требованиями заказчика и планирование архитектуры в процессе разработки
- Второй уровень .portal mse. Управление качеством готового продукта
Введение к работе
Объектом исследования диссертационной работы являются технологическая база и методы создания Интернет-приложений с использованием языка Java.
Этап разработки веб-приложения является той составляющей жизненного цикла программного продукта, на которой закладываются его качественные и количественные характеристики. При этом организация работ по разработке с применением средств автоматизации и эффективных инструментов позволяет значительно уменьшить сроки создания готового продукта и повысить его качество.
Предлагаемая в рамках работы автором технология включает в себя комплекс мероприятий и технологических инструментальных средств, позволяющих создать J2EE приложения для платформы i.Portal CMS (i.Portal Content Management System - системы управления содержанием веб-сайтов i.Portal), удовлетворяющее требованиям заказчика.
Актуальность исследования обусловливается необходимостью повышения эффективности коллективного доступа к информационным ресурсам Интернет. Необходима системная интеграция существующих программных продуктов, хранилищ информации и вновь создаваемых программных разработок на базе единой среды, обладающей возможностями удобного доступа к разнообразным информационным ресурсам - из области производства, науки, образования и других сфер деятельности человека и общества.
Эффективность использования веб-интерфейса очевидна. Переход к его использованию в программных продуктах для автоматизации деятельности организаций [94, 110] привел к возникновению новых видов ресурсов, позволяющих значительно повысить доступность для пользователей, как информации, так и вычислительных мощностей. В тоже время разработка Интернет-приложений остаётся в настоящий момент достаточно сложным и трудоёмким процессом, что не позволяет в полной мере использовать все их преимущества начинающему разработчику.
Однако переход от традиционных программных продуктов к технологии «тонких» клиентов становится все более очевидным. Примером этого может служить возникновение широкодоступных веб-приложений в таких областях, которые ранее считались областью применения традиционных программных продуктов [1].
В сфере корпоративного и научного программного обеспечения из-за высокой конкуренции существуют жёсткие требования, как к срокам разработки, так и к её качеству и стабильности. В случае разработки Интернет-приложения для доступа к существующим информационным ресурсам в нём необходимо обеспечить минимально возможное количество ошибок с целью повышения общей отказоустойчивости системы. Это важно из-за того, что полученные от новой среды доступа преимущества могут быть нивелированы синергетическим ростом нестабильности за счёт взаимного влияния уже существовавших и новых ошибок. Это в свою очередь требует создания новых инструментальных средств и методических подходов, позволяющих систематизировать процесс создания программного продукта.
Важным условием заказчиков из всех отраслей народного хозяйства, включая государственное управление, бизнес, образование и науку, при разработке Интернет- приложений является предсказуемость сроков создания решения и законченность реализации функциональных требований[74,111]. Только в данном случае можно говорить об эффективности реализации проекта по разработке. Для обеспечения выполнения данного требования разработка Интернет-приложения должна производиться в соответствии с формальными методами управления процессом разработки на основе проверенной технологической платформы, которые и предложены автором в рамках диссертационной работы.
К настоящему моменту можно выделить различные технологические платформы, служащих основой для создания Интернет-приложений. В качестве примера можно привести Microsoft SharePoint, Apache Struts[9,27,56], JBoss Seam[52], JBoss Portal, Oracle Portal, IBM WebSphere Portal. Однако часть данных решений является коммерческими, что накладывает значительные ограничения на их использование. Кроме того, каждый из данных инструментов предъявляет достаточно высокие требования к подготовке разработчиков.
Всё вышеизложенное подтверждает актуальность исследования, которое позволяет формализовать процесс разработки программного обеспечения для системы управления содержанием веб-сайтов.
Целью работы является разработка метода и инструментальных средств для создания веб-ориентированного программного обеспечения на основе открытой технологической базы, позволяющей обеспечить высокое качество, масштабируемость и модифицируемость готового решения.
Для достижения поставленной цели в работе были решены следующие задачи:
• Адаптированы существующие подходы к созданию программного обеспечения, на базе которых разработан многоуровневый метод проектирования, управления качеством, стандартизации и сопровождения программного обеспечения для системы управления содержанием веб-сайтов i.Portal. Он включает как непосредственно уровень разработки программного кода, регламентирующий архитектурные требования к системе, так и уровни управления качеством и требованиями к программному продукту.
• Реализована на основе разработанных инструментальных средств автоматизированная процедура генерации каркаса приложения, позволяющая в значительной степени уменьшить число архитектурных ошибок компонентного уровня.
• Предложены методические рекомендации в области управления процессом разработки программного продукта для платформы i.Portal, соответствующие базовым требованиям международных стандартов управления качеством.
• Создана технология хранения сложных структурированных данных в реляционной базе, представляющая программный и пользовательский интерфейс управления метаинформацией хранилища.
• Создана открытая платформа i.Portal для разработки Интернет-решений, основанная на стандарте Java 2 Enterprise Edition.
В качестве методов исследования в диссертационной работе применяются принципы объектно-ориентированного программирования, системного анализа, теории графов, теории множеств. Основой для создания работы послужили принципы технологичности, автоматизации процесса разработки, повторного использования, применения шаблонов проектирования. В диссертации используются: архитектура и технологии платформы J2EE[70], включая Java Management Extensions (JMX) [42,59], Java Message Service (JMS) и др. В работе использованы стандарты Unified Modeling
Language (UML) [49,77,88,90,102,109], Ecore[5], и методики разработки Agile[41,56,69,111].
Достоверность результатов диссертационной работы подтверждается следующим образом:
• Достоверность технических решений, принятых автором, подтверждается:
Сравнением с конкурирующими программными продуктами; о Анализом результатов практического использования платформы для создания промышленно-эксплуатируемых решений.
• Соответствие приложений для авторской платформы шаблону проектирования Model-Vision-Controller (MVC) подтверждено экспертизой, проведённой сотрудниками кафедры автоматизированных систем Иркутского государственного технического университета и компании по разработке программного обеспечения «КВУД».
• Модели, создаваемые для генерации каркаса программного обеспечения, полностью соответствуют стандарту UML.
• Система управления содержанием веб-сайтов i.Portal основана на открытых стандартах и программных компонентах, которые используются во множестве программных продуктов.
• Генерируемый каркас приложения неоднократно проверялся на соответствие требованиям, предъявляемым к приложениям сервера JBoss и системы управления содержанием веб-сайтов i.Portal.
Научная новизна работы заключается в том, что:
• Создан новый метод разработки Интернет-приложений для системы управления веб-сайтами i.Portal, включающий новые унифицированные архитектурные решения и способ управления процессом реализации программного обеспечения.
• Разработана новая модель и программный интерфейс технологии хранения структурированных данных в системе i.Portal, отличающаяся возможностью динамического изменения метаинформации приложения без доработки программного кода.
Создана программная реализация платформы управления содержанием вебсайтов, позволяющая формировать на языке Java информационные ресурсы, интегрированные в единую информационную инфраструктуру организации. На защиту выносятся следующие основные положения:
Метод создания программного обеспечения для системы управления содержанием веб-сайтов i.Portal.
Процедуры управления процессом разработки программного обеспечения для компьютерной сети Интернет.
Метод и инструментальные средства автоматизации процесса создания каркаса программного обеспечения для системы управления содержанием веб-сайтов i.Portal, включающий функции преобразования UML-модели в программные артефакты.
Технология хранения разнородных структурированных данных и программный интерфейс, позволяющий разработчикам и конечным пользователям динамически изменять метаданные в процессе промышленной эксплуатации программного обеспечения с использованием веб-интерфейса.
Платформа для обеспечения функционирования веб-ресурсов, реализующая как компонентный, так и классический подход создания модульных программных продуктов для сети Интернет.
Практическая значимость работы заключается в следующем: Полученные в работе результаты использованы при реализации:
о Федеральной целевой программы развития образования на 2006-2010 годы, в рамках реализации задачи III «Повышение эффективности управления в системе образования», мероприятия 25 «Организация сетевого взаимодействия образовательных учреждений», проект «Разработка и апробация модели сетевого взаимодействия учреждений профессионального образования в интересах работодателей макрорегиона (на примере Дальневосточного и Байкальского регионов)». Государственный контракт №П657 от 19.09.2007 г. о Госбюджетной научно-исследовательской работы (§ 47) «Методы и модели управления и организации сложных систем». Код ВНТИ 28.17.31; 28.17.19. о Хозяйственного договора с Администрацией Иркутской области по реализации информационного ресурса департамента малого и среднего бизнеса.
• Разработанная платформа для обеспечения функционирования веб-ресурсов признана самым «Коммерчески-перспективным продуктом» в первом JavaKonkurs - открытом конкурсе компании Sun Microsystem среди программных продуктов на языке Java.
• Предложенный метод создания программного обеспечения для сети Интернет представлен в виде решения, которое используется в практической деятельности коллективом программистов.
• Модель хранения разнородной структурированной информации реализована в виде сервиса системы управления содержанием веб-сайтов i.Portal, нашедшем своё применение в модуле опросов Иркутского государственного технического университета и системе управления информацией о недвижимости Иркутского регионального ипотечного агентства.
• Использование предложенного автором метода позволило сократить сроки создания приложений для системы управления содержанием веб-сайтов i.Portal. Общее снижение времени разработки по экспертным оценкам и экспериментальным данным достигает 30%.
Публикации. Личный вклад автора. По теме диссертации опубликовано 9 печатных работ, среди которых присутствуют издания, рекомендуемые ВАКом.
Результаты работы, связанные с разработкой метода создания программного обеспечения для сети Интернет, с архитектурными решениями системы управления содержанием веб-сайтов, а также с методами автоматизации создания программного обеспечения получены автором самостоятельно. Программная реализация технологической платформы велась под руководством автора совместно Киселёвым Сергеем Сергеевичем, Черных Алексеем Владимировичем и Буровым Константином Сергеевичем и её результат является неделимым. Научные консультации по вопросам архитектуры систем управления содержанием веб-сайтов были оказаны к.т.н. Ульяновым Дмитрием Александровичем.
Основные результаты диссертационной работы обсуждались на XI Международной конференции «Информационные и математические технологии в научных исследованиях» (Иркутск, 2006 г.), XII конференции «Информационные и математические технологии в науке и управлении» (Иркутск, 2007 г.), VIII Международной научно-практической конференции «Фундаментальные и прикладные проблемы приборостроения, информатики и экономики» (Сочи, 2005 г.), IX Международной научно- практической конференции «Фундаментальные и прикладные проблемы приборостроения, информатики и экономики» (Сочи, 2006 г.), на семинарах для сотрудников отдела разработки компании i.Point (Иркутск, 2005-2006 гг.) и на семинарах для сотрудников кафедры Автоматизированных систем Иркутского государственного технического университета.
Также автором проводились учебные курсы для сотрудников системного интегратора на языке Java компании «КВУД», в которой в настоящий момент автором осуществлено практическое внедрение результатов работы в производство.
Рассмотрим структуру представляемой работы. Диссертация содержит 222 страницы, 35 рисунков, 13 таблиц и состоит из введения, 4 глав, заключения, списка использованных источников и 15 приложений.
Анализ существующих методов проектирования и управления процессом разработки программных продуктов
При этом в рамках общей информационной системы можно выделить такие функции отдельного Интернет-приложения или группы приложений, как: Интеграция приложений, удаленный доступ к приложениям. При этом данные приложения могут быть не только новыми разработками, но и унаследованным программным обеспечением. Автоматизация бизнес-процессов, включая как непосредственную реализацию функций традиционных ERP (MRP II)/CRM/SCM систем, так и доступ к уже внедрённым приложениям подобного класса. Сбор, хранение и выдача информации. Автоматизация документирования бизнес-процессов и результатов их выполнения. В результате создаётся единое хранилище данных и знаний компании. Подключение экспертным системам и сбор мнений экспертов.
Любой из рассмотренных в классификации типов приложений может быть представлен в среде Интернет, позволяя тем самым упростить развёртывание и использование программного продукта. В настоящий момент использование данной среды позволяет решить множество проблем, связанных с обеспечением высокой управляемости информационной инфраструктурой предприятия.
Анализ существующих методов проектирования и управления процессом разработки программных продуктов
Исследования в области проектирования программных продуктов ведутся с 70- х годов 20 века. В настоящий момент широко известны такие методы, как структурные методологии Йордона[10,11] и Гейна-Сарсона [30,82], ориентированные на первоочередное проектирование функций; структурные методологии Джексона[68], Вар- нье-Орра[61,65], ориентированные на первоочередное проектирование данных; объектно-ориентированные методологии на базе языка UML (Unified Modeling Language) Буча[78]; промышленные методологии фирм разработчиков программного обеспечения, таких как IBM[85], Microsoft[45].
При разработке и внедрении любого сложного программного продукта возникает вопрос управления его жизненным циклом. Первые исследования данного вопроса относятся к 70-м годам XX века, когда в своих работах Брукс изложил подходы к организации и управлению процессом программных разработок [76]. В 80-х гг. тематика создания и проектирования программных систем, а также управления этим процессом получила развитие в трудах Р. Гантера [81].
В свое работе Гантер предложил фазово-функциональную модель жизненного цикла программного обеспечения, которая является по своей сути развитие классической модели жизненного цикла.
Значительный вклад в исследования процесса разработки и обеспечения качества программных продуктов внес Липаев В.В., который, начиная с 80-хх годов прошлого века, формулирует в своих работах методы и подходы к созданию сложных интегрированных программных продуктов [100]. Особое место в данных исследованиях занимает монография [99]. В данной работе можно найти детальный обзор стандартов в области жизненного цикла программного обеспечения, этапы разработки, методы тестирования и верификации информационных систем. Приложение рассмотренных в данной работе методов к системе управления веб-сайтами 1.Ро11а1 можно найти в настоящей диссертации.
Подробный анализ современных подходов в области создания компьютерных приложений можно найти в работе Скопина [97], который не только развил предложенные ранее модели с учётом итерационности современных подходов к разработке программного обеспечения, но и учёл важные аспекты изменения технологий, на базе которых создаются программные продукты. Особое внимание в его работах уделено изменению подходов к управлению процессом создания информационных систем с учётом использования объектно-ориентированной парадигмы.
В 1999 году в Российской Федерации вступает в силу ГОСТ Р ИСО/МЭК 12207-99 «Процессы жизненного цикла программных средств», основанный на международном стандарте ИСО/МЭК 12207—95 «Информационная технология. Процессы жизненного цикла программных средств». Он представляет собой вариант классической линейной модели жизненного цикла программного обеспечения. При этом в
нём можно найти не только универсальные рекомендации по этапам разработки, но и общепринятую терминологию в данной области.
Приведённые выше исследования и документы являются обобщением практического опыта разработки программных продуктов различного типа и не ограничиваются какой-либо программной и аппаратной платформой. Их можно расценивать как базис, который можно использовать для описания управления процессом разработки для определённой платформы с учётом наличия определённых программных инструментов, целевой среды выполнения и доступных вариантов архитектуры. В рамках диссертационного исследования автор предложил специализированный вариант метода управления жизненным циклом приложения на этапе разработки, а также подходы к созданию и программной реализации Интернет-приложения, ориентированный на платформу i.Portal CMS.
Архитектура доступа к хранилищу данных из приложения в системе .portal
Основу Struts составляют следующие компоненты: Универсальный сервлет, который осуществляет диспетчеризацию запросов пользователя специализированным классам-действиям, создаваемым разработчиком приложения. Библиотека JSP-тегов для создания форм. Эти теги поддерживаются на стороне сервера контроллером. Специализированные вспомогательные классы для разбора XML-кода, установки свойств JavaBeans на основе механизма reflection, локализации приложений.
Одно из основных достоинств Struts - возможность использования его в качестве «легковесного» набора инструментов, которому не требуется полное J2EE окружение. Тем самым можно уменьшить требования к серверному оборудованию, на котором будет выполняться созданное приложение.
Однако Struts - это лишь инструментарий с базовым набором функций. Дополнительные функции, такие как развитая система безопасности, индексирование данных, специализированные хранилища информации могут быть использованы лишь с использованием дополнительных модулей. В таких случаях интеграция данных модулей в приложеиие полностью ложится на разработчика, что осложняет процесс разработки и требует разработку грамотных архитектурных решения для интеграции. Spring MVC
Spring - это набор инструментов, созданный Родом Джонсоном (Rod Johnson) для упрощения разработки комплексных приложений [66]. Он может быть использован не только в серверных приложениях, но и в обычных десктоп-программах. В целом Spring можно рассматривать как контейнер для реализации шаблона IoC (Inversion of control) и аспектно-ориентированного программирования. Основные преимущества Spring включают в себя:
Возможность создания «легковесных» приложений в терминах современной разработки для сети.
Реализация шаблона проектирования IoC, позволяющая создавать слабосвязанные приложения за счёт инициализации, требуемых классу данных, непосредственно контейнером, а не самим классом.
Возможность в полном объёме использовать аспектно-ориентированное программирование для отделения логики приложения от системных сервисов.
По своей природе Spring является контейнером, потому что он отвечает за управление жизненным циклом попавших в него классов.
Также Spring является набором инструментов для разработки как десктоп, так и Интернет-приложений.
В стандартной поставке Spring присутствуют инструменты для создания комплексных веб-приложений. Они носят название Spring MVC, так как позволяют в полной мере реализовать преимущества разделения кода бизнес-логики и интерфейса пользователя на основе шаблона Model 2.
Как видно из приведённого описания, Spring обладает развитым набором функций для создания Интернет-приложений. В нём предусмотрено множество механизмов поддержки транзакционной обработки данных, позволяющих изолировать многопоточную природу Интернет-приложений от пользователя. Однако наряду с неоспоримыми преимуществами в нём есть и недостатки, такие как очень большой рост конфигурационных файлов, сопровождение которых в больших проектах становится сложнейшей задачей. Также использование Spring вне J2EE контейнера накладывает ограничение на масштабируемость решения. JBoss Seam JBoss Seam - это набор инструментов для создания Интернет-приложений, основанный на 5 версии стандарта Java 2 Enterprise Edition [52]. Он создан компанией RedHat для интеграции в рамках общей парадигмы таких технологий как JSF, EJB3.0, jBPM.
Преимущества данного набора инструментов в том, что: Интегрируется в одну модель разработки JSF и EJB3.0. В стандартной поставке поддерживает технологию Web 2.0 за счёт набора компонентов ICEfaces и Ajax4JSF. Имеются развитые механизмы управления совместным доступом, что позволяет упростить обработку множества одновременных запросов клиента. Использование декларативного механизма управления состоянием приложения, позволяющего реализовывать различные мастера и многоэкранные взаимодействия с пользователем с меньшим числом ошибок, таких как утечки памяти, переходы на некорректные страницы и др. Реализация расширенного варианта 1оС, который назван разработчиками Bijec- tion. Современные Интернет-приложения на базе платформы Java включают огромное число конфигурационных файлов. Для уменьшения их числа Sun Microsystems был предложен механизм аннотации Java-кода, позволяющий перенести многие конфигурационные параметры непосредственно в код приложения. Данный подход широко используется в EJB3.0 и построенном на их базе Seam. Облегчение модульного тестирования приложений, так как вся бизнес логика в нём создаётся в обычных Java-классах.
В приложениях на базе JBoss Seam в качестве уровня управления состоянием приложения может выступать технология EJB3.0, jBPM, Hibernate. Выбор конкретной технологии зависит от разработчика. При этом разные технологии обладают различным набором функций и масштабируемостью.
В качестве обработчика запросов пользователя в Seam выступает технология JSF, позволяющая перейти к компонентному подходу создания Интернет- приложений.
В качестве уровня формирования пользовательского интерфейса в Seam могут выступать JSP-страницы, Facelet bi, либо портлеты. Выбор конкретной технологии остаётся за разработчиком, однако создатели Seam рекомендуют использования технологии facelets.
Таким образом, Seam является развитым инструментальным средством, позволяющим интегрировать множество современных технологий. Однако это является и его недостатком, так как требует от разработчика достаточно высокой квалификации и умения мыслить на очень высоких уровнях абстракции. Seam остаётся востребованным для очень сложных приложений в среде опытных разработчиков. Также, несмотря на попытку авторов упростить механизм создания приложений, поиск ошибки в приложении является достаточно нетривиальной задачей в частности из-за большого числа конфигурационных файлов.
Управление требованиями заказчика и планирование архитектуры в процессе разработки
Требования заказчика к программному продукту характеризуют сложность разрабатываемого программного решения. Под сложностью мы будем понимать меру количества элементов системы и зависимостей между ними, о которых необходимо помнить при работе с одним элементом системы.
Управление сложностью программного обеспечения на этапе первичного анализа требований позволяет учесть её в архитектуре системы. Основным способом уменьшения сложности является разделение на модули, слои, функциональные подсистемы. Система управления содержанием веб-сайтов i.Portal предоставляет широкие возможности по такому разделению.
Однако при анализе требований и разработке архитектуры необходимо учитывать наиболее распространённые проблемы, с которыми сталкиваются разработчики, пытаясь управлять сложностью решения: Сложное решение для простой проблемы (over-design). Упрощённое решение для сложной проблемы (Under-design). Неподходящее сложное решение для сложной проблемы.
Таким образом, изменение требований заказчика к программному решению являются источником изменения его сложности, а управление этими требованиями, в конечном счете, приводит к управлению сложностью готового решения.
Для исключения ошибок к требованиям в i.Portal MSE предъявляются следующие условия: Непротиворечивость. Высокая степень детализации. Чёткое описание всех ролей пользователей системы на этапе постановки задачи.
Управление требованиями в i.Portal MSE включает в себя следующие мероприятия: Анализ автоматизируемых бизнес-процессов (обязательная задача); Формирование постановки задачи в виде специализированного документа (факультативная задача); Создание диаграмм прецедентов автоматизируемых бизнес-процессов (обязательная задача); Создание плана сборок и версий (обязательная задача); Управление изменениями требований (обязательная задача).
Рассмотрим каждую из задач первого уровня метода более подробно. Анализ автоматизируемых бизнес-процессов. Основная проблема, решаемая в рамках данного мероприятия - понимание реальных проблем, которые решаются в ходе написании программного обеспечения [71,89].
Ни для кого не секрет, что создание программного обеспечения под заказ в определённой мере отличается от создания «коробочного» программного продукта. Важной составляющей при разработке под заказ является как молено более полное удовлетворение требований заказчика. Поэтому необходимо определить именно фактически решаемую задачу, а не его видение заказчиком.
Как правило, данное мероприятие выполняется отдельным человеком - бизнес- аналитиком. Он должен обладать такой компетенцией, как умение общаться с людьми, потому что только так можно получить всю необходимую для создания приложения информацию. Также необходимо, чтобы бизнес-аналитик обладал техническими знаниями в области разработки Интернет-приложений, чтобы исключить включение в требования к программному продукту требований, заведомо невыполнимых на первом этап.
Первое, что требуется в данном мероприятии - это выявление заинтересованных в проекте сторон. Только выявив все заинтересованные в программном продукте стороны, можно определить полный перечень требований к нему.
Для определения заинтересованных сторон исходят из следующих предпосылок:
Любая сторона, выдвигающая требования к программному продукту является заинтересованной. Если не учесть любое, даже самое малозначимое требование, согласование проекта программного продукта может быть бесконечно затянуто. Например, при разработке программного продукта для автоматизации деятельности финансово-аналитического отдела необходимо учитывать требования к продукту менеджеров по продажам, так как они являются источником первичной информации. Если они не будут наполнять систему реальными данными, то её не удастся передать в промышленную эксплуатацию.
Из списка заинтересованных сторон можно исключить те, чьи требования не являются функциональными, и при этом они не могут блокировать процесс разработки.
Если после формирования перечня требований присутствует пробел или избыточность и не одна из выявленных к настоящему моменту заинтересованных сторон не в состоянии сделать уточнение, то необходимо найти дополнительные заинтересованные стороны. Как правило, это удаётся достичь опросом уже выявленных заинтересованных сторон.
Архитектор и руководитель проекта по разработке всегда являются заинтересованными сторонами. Первый может принять решение о технической возможности реализации проекта в соответствии с уже сформированными требованиями, а второй может сопоставить выявленные требования с графиком и бюджетом.
Заинтересованной стороной всегда является представитель заказчика, решение которого может затормозить или прекратить проект по разработке.
Когда все заинтересованные стороны выявлены, переходят к определению требований к программному продукту. При этом требования должны быть представлены в сжатой текстовой форме, не требующей глубоких технических знаний.
Второй уровень .portal mse. Управление качеством готового продукта
Понятие автоматизированного тестирования. Преимущества применения автоматизированных тестов
Test-Driven Development (TDD) - одна из наиболее популярных концепций, используемых в настоящее время при разработке приложений [75]. Основа такой популярности TDD - широкое распространение Agile-методик разработки и значительный рост их популярности.
Предлагаемый автором метод разработки включает в себя TDD по следующим причинам:
Во-первых, третий этап описываемого метода подразумевает использование Agile для реализации каркаса. А большинство Agile-техник требуют использования тестов для верификации качества программного кода.
Во-вторых, любое применение рефакторинга к программному коду требует наличия тестов для проверки его работоспособности. Чем более полным является набор тестов для приложения, тем более «агрессивный» рефакторинг допустимо применять к программному коду. Например, все современные среды разработки позволяют применять шаблон рефакторинга «переименование метода». Однако это не всегда безопасно. Если этот метод вызывается через java reflection, то среда разработки не сможет установить этот факт и изменить исходный код. Соответственно в данной ситуации может возникнуть ошибка, которая достаточно легко может быть найдена на уровне модульного тестирования.
В-третьих, написание тестов по своей сути является одной из моделей документирования исходного кода. В данном случае под документацией понимается набор исполняемых файлов, представляющих собой исполняемую спецификацию продукта. Тем самым получается, что внесение изменений в программный продукт начинается с изменения тестов, что приводит к переходу в красную стадию разработки, когда некоторые из тестов не проходят. После исправления исходного кода переходят к зелёной стадии, когда все тесты проходят успешно. А уже далее применяют рефак- торинг для повышения качества и читаемости кода приложения.
В-четвёртых, модульное тестирование позволяет снизить общее время отладки приложения за счёт сокращения времени на локализацию и исправление ошибок. Особенно это важно при внесении изменений в функционирующую систему.
В-пятых, тесты служат отличной основой для формирования многих метрик по проекту. Так общее количество тестов характеризует объём реализуемого кода. Соотношение между числом public-методов и тестов характеризует степень покрытия тестами кода системы.
Таким образом, использование автоматизированных тестов при разработке программного решения позволяет внести на второй уровень метода разработки элементы автоматизации.
Виды тестов, применимые для проверки работоспособности приложений системы управления веб-сайтами .Portal
В современной практике разработки программных решений выделяют две больших группы тестов, проверяющих набор функций системы. Это модульные (юнит) и функциональные тесты [12,30,74,75,84].
Модульные тесты по своей сути представляют по своей сути реализованный программно алгоритм тестирования реализуемой системы. В настоящий момент такой раздел прикладной математики как планирование эксперимента достаточно хорошо разработал методики подготовки и верификации наборов тестовых данных. На базе этих данных можно проверить корректность функционирования программного кода, особенно в граничных случаях.
В случае автоматизированного модульного тестирования желательно, чтобы каждый из доступных разработчику public-методов класса имел тест для проверки его работоспособности. То есть, модульные тесты - это такие тесты, которые направлены на автоматизированную верификацию программного кода на минимально возможном в случае объектно-ориентированного программирования уровне.
Однако подход стопроцентного покрытия тестами программного кода труднореализуем и экономически не оправдан. Бессмысленно тестировать работоспособность методов доступа к значениям полей Веап-классов, так как они представляют всего лишь программный интерфейс к скрытым полям. С другой стороны в большинстве проектов существует множество методов, тестирование которых обязательно. Это:
Методы, отвечающие за бизнес-логику приложения. Например, метод начисления районного коэффициента на заработную плату сотрудника обязательно должен контролироваться автоматизировано. В связи с частой сменой регулирующего законодательства в этой области при сопровождении готового программного продукта высока вероятность изменения алгоритма этого метода. Такое изменение должно соответственно быть отражено и в тестах, являющихся в данном случае эталоном реализации расчета.
Методы, отвечающие за сохранение/загрузку данных из информационного хранилища. Методы такого рода, как правило, представляют собой большие фрагменты однородного программного кода. При этом их разработка может поручаться программистам с не очень высокой квалификацией. Поэтому необходим тщательный контроль над корректностью их работы. Вторая причина, по которой автоматизация тестирования подобных методов обязательна, - это достаточно высокая вероятность изменения информационного состава сущностей системы. При практической реализации большинства современных программных продуктов требования к ним могут изменяться постоянно. Это приводит к изменению требований к хранимой в системе информации и, как следствие, изменению программного кода, ответственного за сохранение/загрузку данных.
Обязательно должны подвергаться автоматизированному тестированию все методы, отвечающие за обмен информацией с внешними сущностями. Если предполагается, что какой-то набор функций системы будет доступен, например, в качестве \УеЬ-сервисов, то он должен постоянно контролироваться на соответствие требованиям.
Методы утилитарного характера также желательно включать в перечень методов, для которых создаётся пакет тестов. Как правило, такие методы достаточно легко поддаются тестированию, что требует незначительного времени для проверки их работоспособности.