что должно быть нарисовано первым, диаграмма класса или последовательности? - PullRequest
2 голосов
/ 10 января 2011

У меня была эта дискуссия с моим профессором в колледже о диаграммах UML. Он считает, что диаграммы последовательности должны быть нарисованы, прежде чем переходить к диаграммам классов, но я думаю, что все наоборот. Я думаю, что после завершения диаграммы вариантов использования следующая диаграмма должна быть диаграммой классов, и после этого мы должны перейти к диаграмме последовательности. Rational rose требует от нас использования классов в диаграмме последовательности, которые уже находятся в диаграмме классов.

Может ли кто-нибудь помочь мне с этим?

Ответы [ 8 ]

7 голосов
/ 10 января 2011

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

Конечно, это очень субъективно и лично, но многолетний опыт (в отличие от академической теории) научил меня работать над обоими одновременно. МОЖЕТ БЫТЬ, начиная с диаграммы классов, но диаграмма классов неизменно меняется, когда вы начинаете проходить через потоки процессов.

4 голосов
/ 10 января 2011

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

Но если вы предпочитаете определить, какова структура вашегоклассы, а затем адаптировать последовательность действий к этому, тогда вы сначала сделаете диаграмму классов, а затем последовательность.

По моему опыту, я делаю их одновременно.Я помещаю фундаментальные атрибуты в диаграмму классов, но не в действия, и пока я делаю диаграмму последовательности, я добавляю методы и атрибуты, которые мне нужны, в диаграмму классов.

1 голос
/ 17 марта 2011

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

1 голос
/ 10 января 2011

Единого стандартного ответа не существует. Есть несколько мнений, подходов и методов. Я полагаю, что в Unified Process вы сначала определяете варианты использования, а затем реализуете их, например, диаграммы последовательности. Как и в случаях использования, существуют действующие лица и системы и / или их части, взаимодействующие в определенной последовательности. На самом деле это взаимодействие должно помочь вам разложить ваш дизайн и добраться до классов. Когда у вас есть классы на уровне анализа, вы можете пойти дальше, чтобы проектировать классы и проектировать взаимодействия. Тем не менее, их довольно много для рисования на диаграмме, в большинстве случаев код - лучшая документация на этом уровне, даже сгенерированные диаграммы слишком большие и труднее для понимания, чем сам код.

0 голосов
/ 12 июля 2016

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

0 голосов
/ 13 января 2011

Вам нужно купить одежду, как вы поступите.Сначала вы выбираете одежду или сначала решите, куда идти?В то же время, вы пойдете в обувной магазин, если хотите купить рубашку.

Итак, оба являются итеративными, но определенно первым шагом является последовательность на очень высоком (компонентном) уровне, а затем детализация до уровня класса

0 голосов
/ 12 января 2011

Структурные и поведенческие модели для всех, кроме самых простых систем, естественно создаются одновременно и итеративно, уточняя их с течением времени.

У вас может быть какой-то метод «обнаружения объектов», такой как карты CRC, который даст набор начальных классов с коллаборациями (классами, с которыми они взаимодействуют) и обязанностями, который информирует оба метода, которые им понадобятсяи внутреннее поведение / состояние / активность.

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

Вы также можете изучить внутреннее поведение классов, особенно если они имеют состояние и/ или активное поведение;Для этого полезны диаграммы состояний и состояний.

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

0 голосов
/ 10 января 2011

Я не думаю, что существует порядок создания диаграмм, поскольку оба представляют собой два разных представления системы: структурная диаграмма классов (статическая) и последовательность - поведенческая (динамическая)Я бы начал с диаграмм последовательности, так как вы обнаружите больше классов, которые можно создавать по мере прохождения последовательностей.Делайте все, что имеет смысл для вас в то время.Если вы занимаетесь более объектно-ориентированным программированием, я бы подумал о том, чтобы делать классы перед последовательностями.

...