Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Техн.прогр.в.2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
962.56 Кб
Скачать

2.3. Проблемы разработки сложных программных систем

1. Сложность формального определения требований к ПС.

2. Отсутствие удовлетворительных средств описания дискретных систем с большим числом состояний при недетерминированной последовательности входных воздействий.

3. Коллективная разработка.

4. Необходимость увеличения степени повторяемости кода.

2.4. Жизненный цикл программного продукта

Жизненный цикл (ЖЦ) – это период от момента появления идеи создания ПО до момента завершения его поддержки.

Этапы жизненного цикла (для первых 4 этапов в скобках указаны выходные документы).

  1. Постановка задачи (Техническое задание).

  2. Анализ требований и разработка спецификаций (Эскизный проект).

  3. Проектирование (Технический проект).

  4. Реализация (Рабочий проект).

  5. Сопровождение (отсутствует в современном стандарте).

Стандарт ISO/IEC 12207: 1995 “Information Technology – Software Life Cycle Process”. Содержит этапы: подготовительная работа (выбор моделей ЖЦ, методов, средств разработки, составление плана работ); анализ требований к системе; проектирование архитектуры; анализ требований к программному обеспечению; проектирование архитектуры ПО; детальное проектирование ПО; кодирование и тестирование ПО; интеграция ПО; квалификационное тестирование ПО; интеграция системы; квалификационное тестирование системы; установку ПО; приёмку ПО.

Модели жц.

  1. Каскадная (водопадная) модель.

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

  1. КМ с промежуточным контролем.

  2. Спиральная модель.

Постановка задачи, анализ, проектирование, реализация. Прототипирование.

  1. RAD – технология.

RAD (от англ. rapid application development — быстрая разработка приложений) — концепция создания средств разработки программных продуктов, уделяющая особое внимание быстроте и удобству программирования, созданию технологического процесса, позволяющего программисту максимально быстро создавать компьютерные программы. С конца XX века RAD получила широкое распространение и одобрение. Концепцию RAD также часто связывают с концепцией визуального программирования.

  • Инструментарий должен быть нацелен на минимизацию времени разработки.

  • Создание прототипа для уточнения требований заказчика.

  • Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком.

  • Минимизация времени разработки версии, за счёт переноса уже готовых модулей и добавления функциональности в новую версию.

  • Команда разработчиков должна тесно сотрудничать, каждый участник должен быть готов выполнять несколько обязанностей.

  • Управление проектом должно минимизировать длительность цикла разработки.

5. Экстремальное программирование.

Экстремальное программирование

1. Короткий цикл обратной связи (Fine scale feedback)

– Разработка через тестирование (Test driven development) – техника программирования, при которой модульные тесты для программы или её фрагмента пишутся до самой программы (англ. test-first development) и, по существу, управляют её разработкой. Является одной из основных практик экстремального программирования;

– Игра в планирование (Planning game)

– Заказчик всегда рядом (Whole team, Onsite customer)

– Парное программирование (Pair programming)

2. Непрерывный, а не пакетный процесс

– Непрерывная интеграция (Continuous Integration) – это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем;

– Рефакторинг (Design Improvement, Refactor) – процесс полного или частичного преобразования внутренней структуры программы при сохранении её внешнего поведения.

– Частые небольшие релизы (Small Releases)

3. Понимание, разделяемое всеми

– Простота (Simple design)

– Метафора системы (System metaphor)

– Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership) – каждый член команды несёт ответственность за весь исходный код, каждый вправе вносить изменения в любой участок программы

– Стандарт кодирования (Coding standard or Coding conventions) – набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования

4. Социальная защищенность программиста (Programmer welfare):

– 40-часовая рабочая неделя (Sustainable pace, Forty hour week)