Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конструирование_ПО_Лекции.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
13.11 Mб
Скачать

Конструирование программного обеспечения Software Development

Структура курса: 8 лк + 16 лб + к.р. + экзамен

Для сокращенной формы: 4 лк + 8 лб + к.р. + экзамен

Литература

  1. С,А. Орлов Технологии разработки программного обеспечения.

  2. Басс Л., Клементс П., Кацман Р. Архитектура программного обеспечения на практике. 2-е изд.

  3. Константайн Л., Локвуд Л. Разработка программного обеспечения.

  4. Липаев В.В. Качество программных средств.

  5. Липаев В.В. технико-экономическое обоснование проектов сложных программных средств

Основные технологии разработки программного обеспечения

Разработка Программного обеспечения = анализ + проектирование +  программирование (кодирование) +  тестирование + отладка

Наиболее распространенными технологиями разработки программных систем являются:

  1. Макетирование;

  2. Инкрементальный подход;

  3. Унифицированный процесс разработки;

  4. Гибкие технологии.

Процесс разработки программного обеспечения включает в себя следующие этапы.

1.Определение процесса

2.Управление процессом разработки

3.Описание целевого программного продукта

4.Проектирование продукта

5.Разработка продукта

6.Тестирование частей

7.Интеграция частей и тестирование продукта в целом

Сопровождение продукта.

Таким образом, основными этапами жизненного цикла программ являются представленные на рис. 1 шаги каскадной модели.

Рис. 1

Важную роль играет макетирование проекта, которое позволяет согласовать требования заказчика и возможности разработчика (рис.2).

Рис. 2

При макетировании широко используется инкрементальная модель, в соответствии с которой разработка ПО осуществляется постепенно, как показано на рис. 3.

Рис. 3

В последнее время одним из наиболее популярных направлении является быстрый подход к разработке программного обеспечения (RAD - RAPID APPLICATION DEVELOPMENT). Он включает в себя следующие этапы.

1. Бизнес-моделирование

2. Моделирование данных

3. Моделирование обработки

4. Генерация приложения

5. Тестирование и объединение

Современные стратегии конструирования программного обеспечения базируются на спиральной модели жизненного цикла ПО (рис. 4).

При этом разработка программных систем представляет собой итерационный процесс, реализуемый технологией USDP (Унифицированный процесс разработки программного обеспечения). В соответствии с USDP отдельные рабочие процессы (этапы) проходят ряд стадий:

  1. Начальную;

  2. Уточнения;

  3. Конструирования;

  4. Внедрения.

Причем, как показано на рис. 5, для каждой стадии и итерации может потребоваться свой вид и объем работ.

Рис. 5

Более подробно трудоемкость каждой операции изображена на рис. 6.

Рис. 6

USDP описывает шесть моделей:

● Вариантов использования

● Аналитическая

● Проектирования

● Развертывания

● Реализации

● Тестирования.

Гибкие технологии и экстремальное программирование

Гибкие технологии

Гибкая методология разработки программного обеспечения ориентирована на использование итеративного подхода, при котором программный продукт создается постепенно, небольшими шагами, включающими реализацию определенного набора требований.

Ключевыми постулатами гибкой разработки являются

● Люди и их взаимодействие

● Создание работающего программного обеспечения

● Сотрудничество с заказчиком

● Реакция на изменение.

Ключевые правила поведения сводятся к следующему.

● Уважение мнения каждого участника команды

● Правдивость при любом общении

● Прозрачность всех данных, действий и решений

● Уверенность, что каждый участник поддержит команду

● Приверженность команде и её целям

Принципы гибкой методологии

1) Высшим приоритетом следует считать удовлетворение пожеланий заказчика

2) Не игнорировать изменения требований

3) Частое создание новых работающих версий ПО

4) Заказчики и разработчики должны работать совместно

5) Проекты должны воплощать в жизнь целеустремленные люди

6) Эффективный метод передачи информации – разговор лицом к лицу

7) Работающая программа – основной показатель прогресса в проекте

8) Гибкие процессы способствуют долгосрочной разработке

9) Непрестанное внимание к качественному проектированию

10) Простота

11) Самые лучшие решения выдают самоорганизующиеся команды

12) Команда должна регулярно задумываться над тем, как стать ещё более эффективной

Примеры реализации гибких методологий

Одним из прогрессивных направлений в гибких технологиях считается экстремальное программирование – eXtreme Programming). Его основные особенности перечислены в следующих таблицах.

Б азис XP

1)Игра планирования (Planning game)

2)Частая смена версий (Small releases)

3)Метафора (Metaphor)

4)Простое проектирование

5)Тестирование (TDD - Test Driven Development)

6)Реорганизация (Refactoring)

7)Парное программирование

8)Коллективное владение кодом

9)Непрерывная интеграция.

10)40-часовая неделя.

11)Локальный заказчик.

1 2)Стандарты кодирования

Рис. 7

Scrum

Scrum — методология управления разработкой информационных систем для гибкой разработки программного обеспечения. Scrum делает упор на качественный контроль процесса разработки. Кроме управления проектами по разработке ПО Scrum может также использоваться в работе команд поддержки программного обеспечения (software support teams), или как подход управления разработкой и сопровождением программ: Scrum of Scrums. Особенности рассматриваемой методологии иллюстрируют рис. 7 и 8.

Рис.8

Спринт — итерация в скрам, в ходе которой создаётся функциональный рост программного обеспечения. Она жестко фиксирована по времени. Длительность одного спринта от 2 до 4 недель.

Резерв проекта — это список требований к функциональности, упорядоченный по степени их важности, подлежащих реализации. Элементы этого списка называются «пожеланиями пользователя» (user story) или элементами резерва (backlog items). Резерв проекта открыт для редактирования для всех участников скрам процесса.

П ример характеристик СКРАМ приведен на рис. 9.

Scrum (роли)

По методике Scrum в производственном процессе есть определенные роли, разбитые на 2 группы «свиней» и «кур».

Свиньи:

● Скрам-мастер (ScrumMaster)

● Владелец проекта (Product Owner)

● Скрам-команда (Scrum Team).

Куры:

● Пользователи (Users)

● Клиенты, Продавцы (Stakeholders)

● Управляющие (Managers)

● Эксперты-консультанты (Consulting Experts).

План работы по методологии Scrum состоит из трех позиций:

  1. Нужно сделать;

  2. Делается;

  3. Сделано.

Пример плана приведен на рис. 10

Нужно сделать Делается Сделано

Рис. 10