13. Цикл разработки ПО с использованием ООП: анализ, проектирование, эволюция, модификация.

Рабочие продукты объектно-ориентированного анализа.

Цикл разработки ПО с использованием ООП

Разработка программного обеспечения (ПО) с использованием объектно-ориентированного программирования (ООП) проходит через несколько ключевых этапов. Каждый этап имеет свои методы и цели, направленные на создание качественного и поддерживаемого кода.

Основные этапы разработки ПО

  1. Анализ требований

    • Цель: Понять, что именно должно делать ПО.

    • Действия:

      • Собрать требования от заказчика и конечных пользователей.

      • Провести анализ предметной области.

      • Определить основные объекты и их поведение.

    • Продукты:

      • Документ с требованиями.

      • Диаграммы классов, показывающие ключевые сущности.

    Пример: Разработка системы управления заказами для интернет-магазина. На этапе анализа будут определены основные сущности, такие как «Заказ», «Покупатель», «Товар» и их взаимосвязи.
  2. Проектирование

    • Цель: Спроектировать структуру системы, определив классы, их свойства и методы, а также взаимодействие между ними.

    • Действия:

      • Разработка архитектуры системы.

      • Определение классов и их отношений.

      • Спецификация интерфейсов и модулей.

    • Продукты:

      • Диаграммы классов и объектов.

      • Диаграммы взаимодействия.

      • Техническая документация.

    Пример: Проектирование системы управления заказами. На этом этапе будут разработаны классы «Order», «Customer», «Product» и «OrderLine», а также их взаимодействие.
  3. Реализация (Кодирование)

    • Цель: Написать программный код в соответствии с проектом.

    • Действия:

      • Написание кода классов и методов.

      • Проведение модульного тестирования.

    • Продукты:

      • Исходный код программы.

      • Тесты и тестовые данные.

    // Пример реализации класса Order
    class Order {
    private:
        std::vector<OrderLine> orderLines;
    public:
        void addProduct(const Product& product, int quantity) {
            orderLines.push_back(OrderLine(product, quantity));
        }
        double calculateTotal() const {
            double total = 0.0;
            for (const auto& line : orderLines) {
                total += line.getTotalPrice();
            }
            return total;
        }
    };
  4. Тестирование

    • Цель: Убедиться, что ПО работает правильно и соответствует требованиям.

    • Действия:

      • Проведение функционального тестирования.

      • Проведение интеграционного тестирования.

      • Проведение приемочного тестирования.

    • Продукты:

      • Тестовые планы и результаты.

      • Исправления кода на основе обнаруженных ошибок.

    Пример: Тестирование функции addProduct класса Order на добавление товара с корректным количеством.
  5. Внедрение

    • Цель: Развернуть ПО в рабочей среде.

    • Действия:

      • Установка ПО.

      • Настройка окружения.

      • Обучение пользователей.

    • Продукты:

      • Развернутая система.

      • Документация для пользователей.

    Пример: Установка системы управления заказами на сервер интернет-магазина и обучение персонала по работе с системой.
  6. Поддержка и эволюция

    • Цель: Обеспечить бесперебойную работу ПО и адаптировать его к новым требованиям.

    • Действия:

      • Исправление ошибок.

      • Обновление системы в ответ на изменения требований.

      • Оптимизация производительности.

    • Продукты:

      • Обновления и патчи.

      • Новые версии ПО.

    Пример: Добавление новой функции в систему управления заказами для поддержки скидок на товары.

Рабочие продукты объектно-ориентированного анализа

  1. Модель предметной области

    • Описание основных сущностей, атрибутов и связей.

    • Диаграммы классов предметной области.

  2. Сценарии использования (Use Case)

    • Описание взаимодействий между пользователями и системой.

    • Диаграммы сценариев использования.

  3. Диаграммы классов и объектов

    • Определение классов, их атрибутов и методов.

    • Показ взаимоотношений между объектами.

    Пример: Диаграмма классов для системы управления заказами, включающая классы Order, Customer, Product и их связи.
  4. Диаграммы взаимодействий

    • Описание последовательности взаимодействий между объектами.

    • Диаграммы последовательностей и сотрудничества.

    Пример: Диаграмма последовательностей для процесса размещения заказа в интернет-магазине.
  5. Модели состояний и переходов

    • Описание жизненного цикла объектов и их реакций на события.

    • Диаграммы состояний.

    Пример: Диаграмма состояний для объекта Order, включающая состояния "Создан", "Обработан", "Доставлен" и "Завершен".

Last updated