Проектирование программного обеспечения — процесс создания проекта программного обеспечения (ПО), а также дисциплина, изучающая методы проектирования. Проектирование ПО является частным случаем проектирования продуктов и процессов.
Проектирование ПО включает следующие основные виды деятельности: выбор метода и стратегии решения; выбор представления внутренних данных; разработка основного алгоритма; документирование ПО; тестирование и подбор тестов; выбор представления входных данных.
Первоначально программа рассматривается как чёрный ящик. Ход процесса проектирования и его результаты зависят не только от состава требований, но и выбранной модели процесса, опыта проектировщика.
Модель предметной области накладывает ограничения на бизнес-логику и структуры данных.
В зависимости от класса создаваемого ПО, процесс проектирования может обеспечиваться как «ручным» проектированием, так и различными средствами его автоматизации. В процессе проектирования ПО для выражения его характеристик используются различные нотации — блок-схемы, ER-диаграммы, UML-диаграммы, DFD-диаграммы, а также макеты.
Проектированию обычно подлежат: Архитектура ПО; Устройство компонентов ПО; Пользовательские интерфейсы.
В российской практике проектирование ведется поэтапно в соответствии со стадиями, регламентированными ГОСТ 2.103-2013 : Техническое задание(по ГОСТ 2.103-2013 к стадиям разработки не относится), Техническое предложение, Эскизный проект, Технический проект, Рабочий проект. На каждом из этапов формируется свой комплект документов, называемый проектом (проектной документацией). В зарубежной практике регламентирующими документами, например, являются Software Architecture Document, Software Design Document.
См. также Шаблон проектирования Антипаттерн
Примечания
Ссылки Статьи по проектированию ПО на RSDN.ru Форум «Объектно-ориентированный анализ и проектирование» на AgileDev.ru Форум «Проектирование ПО» на UML2.ru Учебный курс «Объектно-ориентированный анализ и проектирование»
Литература
Категория:Разработка программного обеспечения Категория:Проектирование программного обеспечения