- •Методологии разработки программного обеспечения. Введение Структура методологии разработки/внедрения программного обеспечения
- •Часть 1
- •От редакции
- •Введение
- •Этапы жизненного цикла по
- •Стратегия
- •Проектирование
- •Реализация
- •Тестирование
- •Внедрение
- •Эксплуатация и техническая поддержка
- •Каскадная модель
- •Поэтапная модель с промежуточным контролем
- •Спиральная модель
- •. Экстремальное программирование часть 2
- •Ускоренная и совместная разработка приложений
- •Экстремальное программирование Принципы xp и используемые методы ускорения разработки
- •Практики
- •Rational Unified Process Часть 3.
- •Введение
- •Структура rup
- •Продукты, поддерживающие rup
- •Артефакты и роли
- •Business modeling
- •Requirements
- •Analysis and design
- •Implementation
- •Deployment
- •Unified Modelling Language Часть 4.
- •История uml
- •Средства uml-моделирования
- •Для чего применяется uml
- •Элементы языка
- •Сущности
- •Отношения
- •Диаграммы uml
- •Microsoft Solutions Framework Часть 5.
- •Введение
- •Основные компоненты и модели msf
- •Процесс msf
- •Модель команды
- •Модель приложения
- •Проектирование компонентного по
- •Планирование архитектуры предприятия
- •Обзор методологии scrum
- •Product Owner
- •Команда (Team)
- •Артефакты Product Backlog
- •Sprint Backlog
- •Спринт (Sprint)
- •Жизненный цикл спринта Планирование спринта
- •Планирование спринта, митинг первый
- •Планирование спринта, митинг второй
- •Остановка спринта (Sprint Abnormal Termination)
- •Daily Scrum Meeting
- •Демо и ревью спринта
От редакции
последнее
время вопросу выбора методологии
разработки программного обеспечения
уделяется повышенное внимание: как
показывает опыт, без правильной
методологии даже небольшие проекты
вряд ли могут быть успешными, и сегодня
все больше разработчиков, аналитиков
и руководителей проектов начинают это
осознавать. Мы предлагаем вашему вниманию
краткий обзор методологий разработки
ПО, подготовленный экспертом в этой
области.
Введение
начале
сформулируем цели, без которых невозможен
ни один проект. Основная задача любого
успешного проекта заключается в том,
чтобы на момент запуска системы и в
течение всего срока ее эксплуатации
можно было обеспечить:
• требуемую функциональность системы и степень адаптации к изменяющимся условиям ее функционирования;
• требуемую пропускную способность системы;
• требуемое время реакции системы на запрос;
• безотказную работу системы в требуемом режиме, то есть: готовность и доступность системы для обработки запросов пользователей;
• простоту эксплуатации и поддержки системы;
• требуемую безопасность.
Производительность является главным фактором, который определяет эффективность системы. Хорошее проектное решение — основа высокопроизводительной системы.
Проектирование информационных систем охватывает три основные области:
• проектирование объектов данных, которые будут реализованы в базе данных;
• проектирование программ, экранных форм, отчетов, которые будут обеспечивать выполнение запросов к данным;
• учет конкретной среды или технологии: топологии сети, конфигурации аппаратных средств, использования архитектур «файл-сервер», «клиент-сервер», параллельной обработки, распределенной обработки данных и т.п.
В реальных условиях проектирование информационных систем — это поиск способа, который обеспечивает необходимую функциональность системы средствами имеющихся технологий с учетом заданных ограничений.
Под методологией разработки подразумевается набор методов и критериев оценки, которые используются для постановки задачи, планирования, контроля и в конечном итоге — для достижения поставленной цели. Сам процесс разработки описывается моделью, которая определяет последовательность наиболее общих этапов и получаемых результатов.
Долгое время процесс разработки ПО осуществлялся в соответствии с методиками, наработанными в инженерной области, — стандартная практика поэтапного создания продукта, начиная с составления спецификаций и заканчивая поставкой заказчику. Существуют стандарты ГОСТ (Россия) и ISO (Европа, Россия), CMM (Capability Maturity Model — распространен в США), регламентирующие данный процесс.
Известны несколько основных моделей жизненного цикла ПО.
Каскадная модель — переход на следующий этап означает полное завершение работ на предыдущем этапе.
Поэтапная модель с промежуточным контролем — разработка ПО ведется итерациями с циклами обратной связи между этапами. Межэтапные корректировки позволяют уменьшить трудоемкость процесса разработки по сравнению с каскадной моделью, но время жизни каждого из этапов растягивается на весь период разработки.
Спиральная модель — особое внимание уделяется начальным этапам разработки: выработке стратегии, анализу и проектированию, где реализуемость тех или иных технических решений проверяется и обосновывается посредством создания прототипов (макетирования). Каждый виток спирали предполагает создание некой версии продукта или какого-либо его компонента; при этом уточняются характеристики и цели проекта, определяется его качество и планируются работы следующего витка спирали.
Активное программирование и его клоны — наиболее популярным для данной модели стало экстремальное программирование (extreme Programming, XP). Отцом-идеологом XP считают Кента Бека (Kent Beck). XP является довольно молодой методологией, оценки которой весьма противоречивы: от восторженных до резко негативных. Основными принципами являются простота решений и интенсивная разработка малыми группами, активное общение в группе и обратная связь с клиентом, фактически вовлеченным в процесс разработки, а также известная доля куража.
Ниже мы рассмотрим классические модели, а об экстремальном программировании расскажем в отдельной части данной статьи.
