Рис. 1.4. Стадии разработки
Сначала предпочтительно выпустить несколько версий. Они обычно используются для проверки аналитических решений в области архитектуры системы. Таким образом, вы не только анализируете проблему. На стадии создания система строится с помощью серии версий. При любой структуре разработки дополнительные вопросы всегда возникают неожиданно, что требует проведения нового анализа.
Диаграмма должна быть основным руководством для отражения жизненного цикла вашего проекта. Основная мысль заключается в следующем: если вы только думаете над тем, что собираетесь создавать, в то время когда уже пишете код, вероятно, у вас возникнут проблемы. Заметьте, что тестирование применяется в ходе всего итерационного процесса. То есть вы не ждете, когда весь код будет написан для проверки его работы.
В этой книге применяется упрощенная версия Rational Unified Process, в которой сделан акцент на использовании языка UML для получения и документального описания решений на стадиях задумки и проработки проекта. В последних главах кратко рассказывается об этапе создания. Несмотря на то что тестирование - неотъемлемая часть процесса разработки, его описание выходит за рамки данной книги.
Пакет Rational Rose
Методы создания программного обеспечения должны поддерживаться соответствующими инструментами разработки. Когда я впервые начала заниматься объектно-ориентированным моделированием, моими инструментами были бумага и карандаш. Теперь в продаже имеются более удобные программные инструменты - не только простые графические редакторы, но и сложные пакеты объектного моделирования. В этой книге для моделирования используется программа Rational Rose. На каждом этапе моделирования приводится описание необходимых действий.
Семейство продуктов Rational Rose призвано обеспечить разработчика программ полным набором инструментов визуального моделирования для эффективного решения сложных бизнес-задач с использованием архитектуры клиент/ сервер, распределенных сред и систем реального времени. В продуктах Rational Rose отражен универсальный стандартизированный подход к построению моделей, позволяющий программистам моделировать логику приложений, а не программистам - бизнес-процессы. Демонстрационную версию пакета Rational Rose можно получить на сайте компании Rational Software Corporation по адресу: www.rational.com.
Хотя в этой книге в качестве инструмента моделирования используется Rational Rose, ряд диаграмм можно получить также средствами программы Microsoft Visual Modeler. Этот продукт предназначен специально для начинающих разработчиков и предоставляет следующие возможности:
описывать и проектировать бизнес-объекты с последующим отображением их на программные компоненты;
разделять сервисы в трехзвенной сервисной модели;
распределять компоненты в сети;
генерировать исходные модули на Visual Basic по созданной модели;
использовать возвратное проектирование для создания модели по существующим компонентам и приложениям;
синхронизировать модели с кодом.
Пакет Rational Rose по сравнению с Microsoft Visual Modeler позволяет анализировать требования к бизнес-системе и бизнес-сценарии с помощью диаграмм последовательности действий и диаграмм взаимодействий, моделировать состояния, генерировать код и поддерживать встроенный скрипт для доступа к внутренним компонентам программы.
Резюме
Визуальное моделирование - это способ представления идей и проблем реального мира с помощью моделей. Модель помогает понять проблему всем участникам, задействованным в реализации проекта на различных этапах: заказчику, эксперту, аналитику, проектировщику, автору документации, программисту и др. Моделирование обеспечивает более точную оценку необходимых ресурсов, четкую проработку планов и эффективное функционирование создаваемых систем.
Нотация - важная составляющая любой модели, своего рода связующее звено между процессами. Унифицированный язык моделирования (UML) предлагает достаточно полную нотацию, которая расширяется при переходе от анализа к проектированию.
Успешно разработанный проект удовлетворяет или превосходит ожидание заказчика, выполняется в срок с оптимальными затратами и может быть адаптирован к изменению условий. Жизненный цикл разработки должен способствовать творческим и новаторским идеям. Правильно управляемый итеративный и инкрементальный жизненный цикл обеспечивает необходимый контроль и поддерживает творческий процесс на нужном уровне. В итеративном и инкрементальном жизненном цикле разработка осуществляется с помощью серии версий, которые развиваются в направлении конечной системы. Каждая версия состоит из одного или более компонентов процесса: построение бизнес-модели, определение требований к системе, анализ, проектирование, реализация, тестирование и внедрение.
В качестве средства управления итеративным и инкрементальным жизненным циклом разработки применяется методика Rational Unified Process, с помощью которой можно подробно описать технические и организационные аспекты разработки программного обеспечения на стадиях определения требований к системе, анализа и проектирования. В этой книге используется упрощенная версия Rational Unified Process.
Семейство продуктов Rational Rose призвано обеспечить разработчика программ полным набором инструментов визуального моделирования для эффективного решения сложных бизнес-задач с использованием архитектуры клиент/сервер, распределенных сред и систем реального времени.
Глава 2. Начало проекта
Определение правильного проекта
Главный вопрос при разработке системы не касается методологии. Это и не проблема технической реализации. Это с виду простой, но на самом деле достаточно сложный и важный вопрос: "Правильна ли создаваемая система?". К сожалению, он в большинстве случаев вообще не возникает или остается без ответа. Хотя неверная методология или технические проблемы могут привести к неудаче, иногда избыток ресурсов и титанические усилия талантливых людей спасают проект. Но ничто не поможет системе, которая не нужна или автоматизирует неправильные вещи.
Для начала проекта необходима идея. Зарождение идеи и определение общих требований и форм происходит на этапе задумки. Он заканчивается утверждением: "Наша система делает…". В процессе проработки идея приобретает ясные очертания, а предположения утверждаются или отвергаются. На этом этапе собираются и документируются основные идеи, предварительно описываются риски, внешние интерфейсы, общая функциональность системы и возможно создание тестовых прототипов для проверки общей концепции (proof of concept prototypes). Идеи поступают из разных источников (это могут быть заказчики, эксперты по предметной области, сами разработчики, отраслевые эксперты, результаты тестов, изучение существующих систем). Важно отметить, что любые прототипы, созданные в этом периоде, должны рассматриваться как временный код, предназначенный лишь для проверки предположений и не прошедший через стадии анализа и проектирования.
На этом этапе разработки процессы могут быть оформлены формально или проведены неформально, но они всегда включают анализ бизнес-требований, доступных ресурсов, возможностей использования различных технологий, а также идей и пожеланий конечных пользователей. Затем для выработки целевой концепции системы, описания задач и приоритетов могут быть использованы такие средства, как профессиональные и научные исследования, мозговой штурм, анализ эффективности, анализ функциональности и создание прототипов. Обычно в этот период происходят первичные сокращения запланированных ресурсов и времени. Для одних проектов концепцию можно изложить на обороте салфетки, для других описание идеи является формальным этапом, выполняемым при помощи итеративного процесса до достижения необходимого уровня точности и детализации.
Тщательно проработанная задумка помогает правильно оценить потребности и ресурсы для построения эффективной системы. Неправильно выполненный этап задумки может привести к тому, что система станет ненужной, неосуществимой, слишком дорогой или никогда не будет доведена до конца.
Несколько слов об университете ESU
Описание регистрации учебных курсов для университета Истерн (Eastern State University - ESU) будет использоваться в качестве основного примера книги.
После того как преподаватели ESU решат, какие курсы они будут вести в течение семестра, служба регистрации курсов внесет информацию в компьютерную систему. Затем для преподавателей распечатают сводный отчет по курсам, которые они будут читать, а для студентов - каталог курсов.
На этом этапе студенты заполняют специальную регистрационную форму, где указывают выбранные курсы, и отдают ее в службу регистрации. Обычно студент подписывается на четыре курса, после чего информация заносится в компьютер. Далее запускается ночная пакетная программа, которая распределяет студентов по курсам. При возникновении конфликтной ситуации служба регистрации уточняет студенческие данные. После успешного распределения студенту высылается расписание для проверки. Обычно процесс регистрации на курсы занимает около недели, но в ряде случаев может потребоваться до двух недель, чтобы уладить все вопросы. Затем преподаватели получают список студентов для каждого курса, который они будут читать.