Существуют различные общие стратегии, помогающие в проведении работ по проектированию и методологий проектирования. Каждая методология обычно использует собственный набор нотаций для описания моделей ПО. Наибольшую известность и популярность в проектировании ПО получили следующие методы:
1. Функционально-ориентированное или структурное проектирование.
Это один из классических методов проектирования, в котором декомпозиция сфокусирована на идентификации основных программных функций и, затем, детальной разработке и уточнении этих функций “сверху-вниз”. Структурное проектирование, обычно, используется после проведения структурного анализа с применением диаграмм потоков данных (DFD) и связанным описанием процессов.
2. Объектно-ориентированное проектирование.
Представляет собой множество методов проектирования, базирующихся на концепции объектов.
Объекты, это сущности, которые имеют уникальность(идентификатор), состяние, которе описывается в виде набора атрибутов (переменных) и поведение или действия, пердсталенное в виде методов (програмнных процедур). В рамках развития данной методолгии был создан язык моделипрования UML.
3 Проектирование на основе структур данных
В данном подходе фокус сконцентрирован в большей степени на структурах данных, которымиуправляет система, чем на функциях системы. Инженеры по программному обеспечению частовначале описывают структуры данных входов (inputs) и выходов (outputs), а, затем, разрабатываютструктуру управления этими данными (или, например, их трансформации).
4 Компонентное проектирование (в настоящее развилось в сервисно-ориентированный подход в проектировании).
Существуют и другие интересные, но менее распространенные подходы