Дилара Валитова

+2
с 2023
0 подписчиков
0 подписок

Аналитики не смотрят в код, смотрят в документацию описывающее решение. При этом документация содержит диаграммы классов, описание свойств и методов классов.
В свою очередь при изменении решения, аналитики должны оставить информацию о том какие классы изменялись, в чем состоят эти изменения, какие классы добавились с описанием свойств и методов.
Возможно где-то это делают разработчики, в нашем случае разработчики только пишут код.

Элементарные паттерны описаны вот в этой книге Смит Дж. "Элементарные шаблоны проектирования". Принцип такой - сначала изучаем элементарные паттерны (кирпичи), потом более сложные Банды четырех (стены).
Аналитики изучают основы ООАП и паттерны:
- для того чтобы понимать текущую реализацию и не сломать то, что работает;
- для того, чтобы не тратить время на проекте для нахождения общего языка с разработчиком;
- предварительная проработка архитектуры решения, чтобы сразу увидеть слабые места решения, а также учесть, например, масштабирование.
При этом нет задачи декомпозировать объекты, так как это происходит на уровне кода. Достаточно видеть укрупненно из каких классов будет состоять система и как они между собой связаны.

1

Очень часто встречается просто журнал, просто документ, просто набор данных, например, об оборудовании. При этом они не участвуют в процессах согласования или передачи от одной роли к другой.
Для случая с журналом абстракция также присутствует, например, нам не нужно физическое место его хранения. При этом в класс могут добавиться свойства, которых нет в журнале, но заказчик хочет их фиксировать.
Сомневаюсь, что Гради Буч определял ООП только для сложных объектов, не встречала такого утверждения в его книгах.

Тогда остается обратиться к первоисточнику - из книги Гради Буч Объектно-ориентированный анализ и проектирование с примерами приложений

1. Аналог при этом не является оригиналом, а значит это не одно и тоже.
2. То что не в системе, является объектом изучения, аналитики уточняют у заказчика:
- необходимо ли вносить данный объект в систему;
- какие атрибуты должны быть в системе;
- какие действия необходимо будет совершать над объектом в системе.
Далее аналитик проектирует и описывает классы системы на основе собранной информации об автоматизируемых объектах.
Разработчик в соответствии с описанием реализует систему.
И в системе начинается создание экземпляров класса.
При этом экземпляр класса не равно объект, который мы первоначально исследовали, так как в любом случае присутствует абстракция от некоторых свойств изучаемого объекта и действий, которые можно с ним совершить.

Вы уже говорите о реализации. Когда аналитик только собирает информацию для проектирования, он исследует все, что должно попасть в систему и только потом появляются классы. Поэтому и остается вопрос - чем является бумажный журнал при проектировании системы?

2. По этому пункту соглашусь, что интерфейс - это не класс, но в языке UML, который используется для проектирования, интерфейс отображается как класс. Что и указано в книге авторов Буч, Рамбо, Якобсон: Язык UML. Руководство пользователя.
3. Предлагаю взять другой пример. Стоит задача автоматизировать бумажный документооборот, например, журнал, в котором фиксируется поступившая входящая корреспонденция. Чем в этом случае является бумажный журнал при проектировании системы?

Давайте тогда вместе распутываться:
1. Если мы рассматриваем документооборот компании, то в нем существуют объекты и входящих писем и исходящих. Также при автоматизации в рамках одной системы электронного документооборота создает как класс для Входящих писем, так и класс для Исходящих писем. Поэтому в этой статье не рассматриваются другие системы.
2. В ООП методы не являются самостоятельными элементами, как класс. А вот интерфейсы вполне могут обладать атрибутами.
3. С понятием Объект в ООП есть путаница, потому что его применяют в разных контекстах. Когда мы исследуем на проекте, мы исследуем объекты, это могут быть как физические объекты, так и абстрактные. А вот то, что является порождением класса является его экземпляром, но нередко экземпляр класса также называют объектом.
Если брать аналогию с домами, то архитектор прежде, чем сделать свой первый чертеж долго изучает различные объекты архитектуры, построенные в разных стилях. Далее он с заказчиком определяет в каком стиле он хочет построить дом и создает чертежи (классы). На основе чертежей рабочие строят дом (создается экземпляр класса). В последствии этот дом может также стать объектом изучения.

ООП как и любой инструмент имеет свои достоинства и недостатки, а также область применения. Если используется язык ООП или у вас уже есть продукт написанный на языке ООП, то вы или адаптируетесь под его использование или полностью переписываете весь продукт на другом языке. Из двух зол обычно выбирают меньшее.

1

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