Требования к ПО определяют внешние (видимые) свойства программы, рассматриваемой как чёрный ящик.
Проектирование подразумевает выработку свойств системы на основе анализа постановки задачи
Определению внутренних свойств системы и детализации её внешних свойств собственно и посвящено проектирование.
В зависимости от класса создаваемого ПО, процесс проектирования может обеспечиваться как «ручным» проектированием, так и различными средствами его автоматизации.
Проектированию обычно подлежат:
· Архитектура ПО
· Устройство компонентов ПО
· Пользовательские интерфейсы
В процессе проектирования ПО для выражения его характеристик используются различные нотации — блок-схемы, ER-диаграммы, UML-диаграммы, DFD-диаграммы, а также макеты.
В понятие продукта разработки включается не только программный код — сюда относятся различные артефакты, такие как планы, отчеты, диаграммы.
В русскоязычной практике результат проектирования представляется в виде комплекса документов под названием «Эскизный проект», «Технический проект», в зарубежной — Software Architecture Document, Software Design Document.