Какие техники диаграмм (а не инструменты) вы используете во время программирования?
Какие техники диаграмм вы используете во время программирования, чтобы помочь вам
или другие понимают вашу программу или дизайн. Я не говорю о человеке
любимый инструмент, хотя хороший инструмент, вероятно, помогает человеку значительно с
диаграмм.
Мое намерение в этом вопросе состоит в том, чтобы найти простые полезные методы диаграмм
люди действительно используют и находят новые, чтобы учиться.
Используете ли вы диаграммы потоков, диаграммы потоков данных, диаграммы 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-диаграмм. Что бы это ни стоило, чтобы понять суть.