Какие техники диаграмм (а не инструменты) вы используете во время программирования?

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

Мое намерение в этом вопросе состоит в том, чтобы найти простые полезные методы диаграмм люди действительно используют и находят новые, чтобы учиться.

Используете ли вы диаграммы потоков, диаграммы потоков данных, диаграммы ER и т.д.?

Сеть полна рекомендаций! Но что делают настоящие программисты, дизайнеры, и поддерживающие код фактически используют в своей повседневной работе.

Спасибо за ваши отзывы

Ответы

Ответ 1

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

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

Если для решения требуется знание состояния, тогда также используется диаграмма состояний.

Это те, которые я использую больше всего.

При создании проекта Data Warehouse я рисую Star Schemas, чтобы определить, как хранить данные. При выполнении проекта Transactional DB я использую диаграммы Entity Relationship для работы с нашим хранилищем данных.

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

Ответ 2

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

Ответ 3

Я использую доску для моделирования, поэтому я думаю, что "язык моделирования доски" будет моим ответом.

Ответ 4

Я сделаю диаграмму класса UML для всего, что я проектирую, это больше, чем несколько классов. Рисунок диаграммы классов заставляет меня тратить время на размышления над дизайном, а не пахать прямо в код и всегда дает лучший результат.

Для более крупных и сложных архитектур я обнаружил, что диаграммы последовательности являются хорошим способом общения, особенно для многопоточных систем.

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

У меня есть блок-схема основного продукта, с которым я работаю и разрабатываю.

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

Ответ 8

Доска для обсуждения.

Ручка и бумага для менее временной записи.

Кодовые заглушки для "Вещи для impelement".

Протестированный и рабочий код (с обширными комментариями) для потомков.

Ответ 9

Я использую диаграммы ER и классов на бумаге и доске для любого проекта, который больше, чем оболочка script.

Блок-схемы, только когда мне нужно объяснить процесс не-программисту (или если это действительно сложный процесс, и я должен сначала его понять).

Мой старый босс говорил: "Парень просто любит рисовать вещи".

Ответ 10

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

Затем, когда так получится, что мы действительно получаем некоторое время для работы над документацией (и это почти никогда), я буду использовать BOUML и перерисовываем каракули в правильную диаграмму.

Теперь, чтобы поставить все в контексте, я работаю в относительно небольшой команде (5 разработчиков), создавая платформы для торговли и конфигурации продуктов на Java. У нас есть два наших продукта, которые мы затем дополнительно настраиваем на запросы клиентов. Будучи сплоченным сообществом, с небольшим (нулевым) переворотом в течение нескольких лет, мы используем документацию прежде всего как остаток для нас самих. И в этой установке вышеупомянутый подход работает достаточно хорошо.

Ответ 11

Я работаю в среде разработки AJAX, и большая часть кода, который я пишу, работает как канал между реляционной базой данных и интерфейсом javascript (пользовательский интерфейс). Таким образом, самая используемая "диаграмма" для каждого из них, которую я использую, - это объекты JSON для описания того, как данные должны передаваться между базой данных и интерфейсом. Это простые, универсальные и легко понятные структуры данных.

Пример:

{      "id": row ['id'],              "name": row ['name'],              "обязательный": строка ['обязательная'],              "rangeDescription": "Это диапазон",              "globalRate": row ['global']         }

Ответ 12

Мне нравятся диаграммы потоков данных. Много.

Ответ 13

Я использую все, что необходимо для коммуникации. Обычно ничего нет. Иногда это доска.

Время от времени я использую Sparx Enterprise Architect, который является инструментом моделирования UML , хотя он производит приличные диагамы, пока он у него. Я использовал его для требований, использования, активности, последовательности, домена и даже моделирования классов, а иногда и некоторых обратных схем ER-диаграмм. Что бы это ни стоило, чтобы понять суть.