Я никогда не беспокоился об UML (в любом случае, не о "реальном" UML). Когда я начинаю проект, меня интересует несколько вещей:
- Как (и кем) будет использоваться мое программное обеспечение
- Что нужно сделать программному обеспечению
- Как соотносятся различные функции / компоненты
Для 1 вы можете использовать диаграммы вариантов использования UML. Я обычно использую свои собственные псевдо-схемы использования. Исходя из этого, вы определяете, кто и как будет использовать ваше программное обеспечение. Разные пользователи будут использовать программное обеспечение по-разному. Это полезно, потому что: а) помогает определить, кем являются ваши целевые пользователи, и б) помогает определить, какие функции требуются для 2. Кроме того, если вы знаете, кто будет использовать ваше программное обеспечение и как, вы можете настроить его специально для этих пользователей.
Для 2 я обычно просто делаю большой список. Иногда полезно разделить список на категории и / или приоритеты. Это часто становится моим списком "TODO".
Для 3 я рисую что-то похожее на диаграммы классов UML, кроме как без аннотаций UML. В основном каждый класс / модуль / компонент получает свой собственный блок, и они связаны между собой линиями. Это показывает мне, какие компоненты будут существовать в системе и как они связаны / взаимодействуют и т. Д. Я, вероятно, рисую это по-разному для каждого проекта, и некоторые получают больше деталей, чем другие, в зависимости от того, что мне нужно в данный момент.
После этого мне нравится создавать прототипы основных концепций, написав простые одноразовые макеты / прототипы. Это даст мне некоторые идеи относительно того, как это будет работать, как реализовать это и как не реализовывать это (часто я делаю прототип «неправильным образом», чего я бы не знал, если бы я не написал его) , Здесь важно то, что код НЕ используется в реальной версии.