Что является результатом объектно-ориентированного анализа (ООА)

Ответ

Результатом объектно-ориентированного анализа (ООА) является формализованная модель предметной области, которая служит основой для дальнейшего проектирования и разработки. Эта модель не зависит от конкретной технологии реализации и описывает систему в терминах объектов, их атрибутов и взаимодействий.

Основные артефакты, получаемые в процессе ООА:

  1. Модель предметной области (Domain Model) Представляет собой набор классов, описывающих ключевые сущности системы, их атрибуты, операции и связи между ними (ассоциация, агрегация, наследование).

  2. Диаграммы UML (Unified Modeling Language) Визуальное представление модели. Наиболее важные для ООА:

    • Диаграмма вариантов использования (Use Case Diagram): Описывает взаимодействие акторов (пользователей, систем) с системой.
    • Диаграмма классов (Class Diagram): Статическая структура системы.
    • Диаграмма последовательности (Sequence Diagram): Динамика взаимодействия объектов во времени для конкретного сценария.
  3. Сценарии использования (Use Cases) Текстовое описание шагов, которые выполняет система для достижения цели актора. Каждый сценарий детализирует один из вариантов использования.

  4. Глоссарий проекта Единый словарь терминов и определений, используемых в предметной области, для устранения неоднозначности.

Главная цель ООА — создать четкое и полное понимание того, что система должна делать, прежде чем переходить к вопросу, как она будет это делать.

Ответ 18+ 🔞

Слушай, а вот этот ваш объектно-ориентированный анализ, он же, по сути, как сборка мебели по инструкции, только для софта. Только инструкцию сначала самому и написать надо, иначе потом хуй поймёшь, почему шкаф кривой стоит, а дверца не закрывается.

Вот смотри, в итоге у тебя должна получиться не просто какая-то абстрактная херня, а вполне себе осязаемая модель этой самой предметной области. Это как если бы ты, блядь, решил построить дом, а начал не с того, что тащить кирпичи, а с чертежей, где каждая комната, каждая розетка и даже унитаз на схеме отмечены. И главное — эта схема не зависит от того, будешь ли ты потом кирпичи класть или бревна рубить. Она про то, что должно быть в доме, а не как именно это строить.

И что же у нас в этой коробке с инструментами лежит, после всех этих мозговых штурмов?

  1. Модель предметной области (Domain Model). Это, сука, самый главный документ. Набор классов — вот этих самых сущностей из реального мира, которые мы в код превращаем. Клиент, заказ, товар, счёт, чёрт в ступе. У каждого — свои свойства (атрибуты), свои действия (операции) и свои связи с другими. Как они друг другу руки жмут: ассоциация, кто в кого вложен (агрегация) и кто от кого унаследовал свои повадки (наследование). Без этого — полный пиздец и каша.

  2. Диаграммы UML. Ну, это чтобы начальству или самому себе картинки красивые рисовать, а то одни буквы читать — терпения ноль ебать. Самые нужные тут:

    • Диаграмма вариантов использования (Use Case Diagram): Показывает, кто (актор) и что хочет от системы сделать. "Пользователь хочет купить тапки" — вот и весь вариант.
    • Диаграмма классов (Class Diagram): Застывший снимок структуры. Все эти классы, их атрибуты и связи между ними — статика, блядь.
    • Диаграмма последовательности (Sequence Diagram): А вот это уже кино! Показывает, как объекты, эти самые экземпляры классов, перекидываются сообщениями во времени, чтобы тот самый "вариант использования" выполнить. Оживающая схема, ёпта.
  3. Сценарии использования (Use Cases). Это когда диаграмму вариантов взяли и расписали по шагам, как в кулинарном рецепте. "1. Пользователь тыкает кнопку 'Купить'. 2. Система открывает корзину. 3. Пользователь подтверждает..." и так далее, пока не дойдёт до "10. Система говорит 'Спасибо, идите нахуй' (шутка)". Без детальных сценариев — подозрение ебать чувствую, что что-то упустили.

  4. Глоссарий проекта. А это, блядь, чтобы не было вот этой ебаной ситуации, когда заказчик говорит "модуль", а имеет в виду целый цех, а ты думаешь про маленькую функцию. Или когда в документации "клиент" — это и юзер, и организация, и ещё чёрт знает кто. Собрали все термины, дали каждому одно чёткое определение — и живём спокойно. Удивление пиздец, как много споров это снимает.

И вся эта, с позволения сказать, движуха имеет одну простую, как три копейки, цель: понять и зафиксировать, ЧТО система должна делать. Железобетонно, недвусмысленно, без вариантов "а можно вот так?". А уж КАК это делать — на каком языке писать, какую базу данных юзать — это уже следующий шаг, проектирование и реализация. Сначала договориться, что строим дом, а не сарай. А то ведь бывает — начали кодить, а через месяц выясняется, что заказчик хотел вообще не то. Вот тогда и накрывается всё медным тазом.