Ответ
Результатом объектно-ориентированного анализа (ООА) является формализованная модель предметной области, которая служит основой для дальнейшего проектирования и разработки. Эта модель не зависит от конкретной технологии реализации и описывает систему в терминах объектов, их атрибутов и взаимодействий.
Основные артефакты, получаемые в процессе ООА:
-
Модель предметной области (Domain Model) Представляет собой набор классов, описывающих ключевые сущности системы, их атрибуты, операции и связи между ними (ассоциация, агрегация, наследование).
-
Диаграммы UML (Unified Modeling Language) Визуальное представление модели. Наиболее важные для ООА:
- Диаграмма вариантов использования (Use Case Diagram): Описывает взаимодействие акторов (пользователей, систем) с системой.
- Диаграмма классов (Class Diagram): Статическая структура системы.
- Диаграмма последовательности (Sequence Diagram): Динамика взаимодействия объектов во времени для конкретного сценария.
-
Сценарии использования (Use Cases) Текстовое описание шагов, которые выполняет система для достижения цели актора. Каждый сценарий детализирует один из вариантов использования.
-
Глоссарий проекта Единый словарь терминов и определений, используемых в предметной области, для устранения неоднозначности.
Главная цель ООА — создать четкое и полное понимание того, что система должна делать, прежде чем переходить к вопросу, как она будет это делать.
Ответ 18+ 🔞
Слушай, а вот этот ваш объектно-ориентированный анализ, он же, по сути, как сборка мебели по инструкции, только для софта. Только инструкцию сначала самому и написать надо, иначе потом хуй поймёшь, почему шкаф кривой стоит, а дверца не закрывается.
Вот смотри, в итоге у тебя должна получиться не просто какая-то абстрактная херня, а вполне себе осязаемая модель этой самой предметной области. Это как если бы ты, блядь, решил построить дом, а начал не с того, что тащить кирпичи, а с чертежей, где каждая комната, каждая розетка и даже унитаз на схеме отмечены. И главное — эта схема не зависит от того, будешь ли ты потом кирпичи класть или бревна рубить. Она про то, что должно быть в доме, а не как именно это строить.
И что же у нас в этой коробке с инструментами лежит, после всех этих мозговых штурмов?
-
Модель предметной области (Domain Model). Это, сука, самый главный документ. Набор классов — вот этих самых сущностей из реального мира, которые мы в код превращаем. Клиент, заказ, товар, счёт, чёрт в ступе. У каждого — свои свойства (атрибуты), свои действия (операции) и свои связи с другими. Как они друг другу руки жмут: ассоциация, кто в кого вложен (агрегация) и кто от кого унаследовал свои повадки (наследование). Без этого — полный пиздец и каша.
-
Диаграммы UML. Ну, это чтобы начальству или самому себе картинки красивые рисовать, а то одни буквы читать — терпения ноль ебать. Самые нужные тут:
- Диаграмма вариантов использования (Use Case Diagram): Показывает, кто (актор) и что хочет от системы сделать. "Пользователь хочет купить тапки" — вот и весь вариант.
- Диаграмма классов (Class Diagram): Застывший снимок структуры. Все эти классы, их атрибуты и связи между ними — статика, блядь.
- Диаграмма последовательности (Sequence Diagram): А вот это уже кино! Показывает, как объекты, эти самые экземпляры классов, перекидываются сообщениями во времени, чтобы тот самый "вариант использования" выполнить. Оживающая схема, ёпта.
-
Сценарии использования (Use Cases). Это когда диаграмму вариантов взяли и расписали по шагам, как в кулинарном рецепте. "1. Пользователь тыкает кнопку 'Купить'. 2. Система открывает корзину. 3. Пользователь подтверждает..." и так далее, пока не дойдёт до "10. Система говорит 'Спасибо, идите нахуй' (шутка)". Без детальных сценариев — подозрение ебать чувствую, что что-то упустили.
-
Глоссарий проекта. А это, блядь, чтобы не было вот этой ебаной ситуации, когда заказчик говорит "модуль", а имеет в виду целый цех, а ты думаешь про маленькую функцию. Или когда в документации "клиент" — это и юзер, и организация, и ещё чёрт знает кто. Собрали все термины, дали каждому одно чёткое определение — и живём спокойно. Удивление пиздец, как много споров это снимает.
И вся эта, с позволения сказать, движуха имеет одну простую, как три копейки, цель: понять и зафиксировать, ЧТО система должна делать. Железобетонно, недвусмысленно, без вариантов "а можно вот так?". А уж КАК это делать — на каком языке писать, какую базу данных юзать — это уже следующий шаг, проектирование и реализация. Сначала договориться, что строим дом, а не сарай. А то ведь бывает — начали кодить, а через месяц выясняется, что заказчик хотел вообще не то. Вот тогда и накрывается всё медным тазом.