Версии. Модель проектной группы
1. Вспоминая предыдущую лекцию
Наша предыдущая лекция была посвящена визуальному моделированию в процессе анализа и проектирования и основам языка UML.
При этом сначала в качестве введения мы кратко повторили:
- типовую схему решения задач с использованием вычислительной техники;
- основные положения алгоритмической и объектной декомпозиции;
- принципы объектного подхода к анализу и проектированию.
Далее мы обсудили, чем вызвана необходимость в визуальном моделировании программных систем и рассмотрели историю языка UML.
Затем была рассмотрена структура и основные понятия UML, представлена постановка учебной задачи, на которой далее будет иллюстрироваться изучаемый материал на протяжении всего курса ("Система бронирования билетов для авиакомпании").
Наконец, мы подробно осветили средства UML для:
- визуального описания функциональной модели: актеры, варианты использования, диаграммы вариантов использования, диаграммы действия;
- описания структуры системы: классы, объекты и интерфейсы; пакеты, подсистемы и компоненты;
- описания отношений между элементами модели: зависимость, ассоциация, обобщение, реализация.
2. Введение в методологию MSF и историческая справка
Что такое методология?
"Толковый словарь русского языка" С.И. Ожегова определяет понятие "Методология" как "Принципы и способы организации теоретической и практической деятельности. Совокупность методов, применяемых в какой-либо науке" [4.12].
Применительно к разработке программного обеспечения это определение можно переформулировать так: "Методология есть принципы и способы организации деятельности проектной группы для создания программного продукта".
Разберем формулировку на элементы, начиная с конца.
Во-первых, "программный продукт". С этим понятием мы познакомились еще на первой лекции. Именно продукт является конечной целью в любой методологии. Отметим также, что в последнее время вместо термина "программный продукт" все чаще используют термин "решение" ("solution"), а компании-разработчики вместо фразы "мы поставляем программные продукты" все чаще говорят "мы поставляем (готовые) решения".
Во-вторых, "проектная группа". Синонимами, которые и мы нередко будем использовать, являются "команда разработчиков" или просто "команда". В любом случае за этим скрывается коллектив людей, непосредственно занятых созданием "готового решения". Именно люди являются точкой приложения любой методологии, поскольку, как уже сказано, в организации деятельности людей и состоит основное назначение методологий.
Таким образом, в оставшейся части курса речь пойдет о "святой троице": проектная группа, программный продукт, методология.
2.2. Основные концепции методологии MSF
Теперь перейдем непосредственно к Microsoft Solutions Framework (MSF)1По материалам http://www.wikipedia.org и статьи [4.6]
Приближение первое. MSF - методология разработки программного обеспечения от компании Microsoft, опирающаяся на практический опыт компании и описывающая управление людьми и управление процессами в ходе разработки решения. Взглянув на список программ, которые установлены на типовом персональном компьютере, нетрудно прийти к мысли, что практики, которые использовала Microsoft в своей работе, имеют под собой довольно весомые основания в виде множества выпущенных продуктов самой различной сложности, начиная от редактора Notepad и заканчивая операционными системами семейства Windows. В силу сказанного MSF не есть чисто теоретический взгляд на процесс разработки, напротив, методология предлагает не только концепции и модели, но и сугубо практические приемы и советы.
Приближение второе. MSF состоит из двух моделей и трех дисциплин. Они подробно описаны в пяти документах, так называемых "белых книгах" ("whitepapers"), каждый из которых охватывает определенную дисциплину или модель MSF:
- Модель процессов MSF
- Модель проектной группы MSF
- Дисциплина управления проектами MSF
- Дисциплина управления рисками MSF
- Дисциплина управления подготовкой MSF
Модель проектной группы мы подробно обсудим далее в этой лекции, модели процессов посвятим половину следующей. Что касается дисциплин, то мы потратим некоторое время на знакомство с управлением рисками и весьма детально изучим управление проектами. Управление подготовкой останется за рамками нашего курса (интересующихся отсылаем к соответствующей белой книге, доступной, например, на http://www.microsoft.com/rus/msdn/msf/default.mspx).
Приближение третье. MSF предлагает несколько оригинальных идей, с которыми мы подробно будем знакомиться далее, а пока просто перечислим их:
- Единое видение проекта
- Треугольник и матрица компромиссов
- "Проектная группа - команда равных"
- Управление рисками
- …
В качестве комментария. Конечно, MSF не единственная методология разработки программных продуктов. Широко известна, например, технология Rational Unified Process (RUP) (см., например, http://ru.wikipedia.org/wiki/RUP), имеющая инструментальную поддержку в виде различных программных систем, наиболее известная из которых - Rational Rose (http://www-306.ibm.com/software/rational/) и предлагающая весьма сильно формализованный подход к процессу разработки. До версии 3.0 включительно MSF существенно отличалась от RUP - во-первых, намного меньшей формализованностью, во-вторых, не просто отсутствием инструментов, а скорее отсутствием необходимости в таких инструментах. Идеология MSF предполагала, что концепции, которые MSF предлагает разработчикам, могут и должны быть адаптированы к требованиям конкретного проекта. В последней версии (4.0) идеология MSF претерпела некоторые изменения, но об этом дальше.
2.3. Историческая справка
В 1993 году, стремясь достичь максимальной отдачи от IT-проектов, компания Microsoft выпустила в свет пакет руководств по эффективному проектированию, разработке, внедрению и сопровождению решений, построенных на основе своих технологий2Источники: "Microsoft Solutions Framework" - материал из Википедии (http://www.wikipedia.org), презентация [4.14] Эти знания базировались на опыте, полученном Microsoft при работе над большими проектами по разработке и сопровождению программного обеспечения, опыте консультантов Microsoft и лучшем из того, что накопила на тот момент IT индустрия.
Вторая версия методологии датируется 1998 годом. Версия MSF 3.0 была представлена в 2001 году, а последняя - MSF 4.0 в 2005.
2.4. Источники информации
Источники, в которых можно почерпнуть информацию о методологии MSF, можно разделить на три типа:
Основным источником, безусловно, являются белые книги (в настоящий момент доступные для версии MSF 3.0).
Немало сведений можно найти на сайте компании Microsoft, включая разделы портала TechNet (http://www.microsoft.com/rus/technet/default.mspx).
Кроме того, желающие могут прослушать курсы, связанные с MSF (например, [4.4, 4.5]).
Наконец, информация по последней версии MSF 4.0 может быть получена на http://msdn.microsoft.com/vstudio/teamsystem/msf.