Проектирование программного обеспечения
Проектирование программного обеспечения — процесс создания проекта программного обеспечения (ПО), а также дисциплина, изучающая методы проектирования. Проектирование ПО является частным случаем Проектирования продуктов и процессов.
Целью проектирования является определение внутренних свойств системы и детализации её внешних (видимых) свойств на основе выданных заказчиком требований к ПО (исходные условия задачи). Эти требования подвергаются анализу.
Первоначально программа рассматривается как чёрный ящик. Ход процесса проектирования и его результаты зависят не только от состава требований, но и выбранной модели процесса, опыта проектировщика.
Модель предметной области накладывает ограничения на бизнес-логику и структуры данных.
В зависимости от класса создаваемого ПО, процесс проектирования может обеспечиваться как «ручным» проектированием, так и различными средствами его автоматизации. В процессе проектирования ПО для выражения его характеристик используются различные нотации — блок-схемы, ER-диаграммы, UML-диаграммы, DFD-диаграммы, а также макеты.
Проектированию обычно подлежат:
- Архитектура ПО;
- Устройство компонентов ПО;
- Пользовательские интерфейсы.
В российской практике проектирование ведется поэтапно в соответствии со стадиями, регламентированными ГОСТ 2.103-68: Техническое задание, Техническое предложение, Эскизный проект, Технический проект, Рабочий проект. [1] На каждом из этапов формируется свой комплект документов, называемый проектом (проектной документацией).
В зарубежной практике регламентирующими документами, например, являются Software Architecture Document, Software Design Document.
Примечания
- ↑ГОСТ 2.103-68. Единая система конструкторской документации. Стадии разработки
Ссылки
- Основы программной инженерии (по SWEBOK). Проектирование. (рус.) (перевод SWEBOK с замечаниями и комментариями от Сергея Орлика и Юрия Булуя).
- Статьи по проектированию ПО на RSDN.ru
- Форум «Объектно-ориентированный анализ и проектирование» на AgileDev.ru
- Форум «Проектирование ПО» на UML2.ru
- Учебный курс «Объектно-ориентированный анализ и проектирование»
- Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
- Дополнить статью (статья слишком короткая либо содержит лишь словарное определение).
Кент Бек • Гради Буч • Фред Брукс • Barry Boehm • Уорд Каннингем • Оле-Йохан Даль • Том Демарко • Эдсгер Вибе Дейкстра • Дональд Кнут • Мартин Фаулер • Чарльз Энтони Ричард Хоар • Watts Humphrey • Майкл Джексон • Ивар Якобсон • Craig Larman • James Martin • Мейер Бертран • Дэвид Парнас • Winston W. Royce • James Rumbaugh • Никлаус Вирт • Эдвард Йордан • Стив Макконнелл
Моделирование данных • Архитектура ПО • Функциональная спецификация • Язык моделирования • Парадигма • Методология • Процесс разработки • Качество • Обеспечение качества • Структурный анализ)
CMM • CMMI • Данных • Function model • IDEF • Информационная • Metamodeling • Object model • View model • UML
- Разработка программного обеспечения
- Проектирование программного обеспечения
Wikimedia Foundation . 2010 .
- Барзен, Леон Эжен
- Требования к программному обеспечению
Полезное
Смотреть что такое «Проектирование программного обеспечения» в других словарях:
- Проектирование программного обеспечения — этап жизненного цикла программного обеспечения, во время которого исследуется структура и взаимосвязи элементов разрабатываемой системы. Результатом этого этапа является проект, содержащий достаточное количество информации для реализации системы … Финансовый словарь
- проектирование программного обеспечения — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN software design … Справочник технического переводчика
- Разработка программного обеспечения — Когда Грейс Хоппер работала с компьютером Гарвард Марк II в Гарвардском университете, её коллеги обнаружили эту моль, застрявшую в реле и таким образом помешавшую работе устройства, после чего она отметила, что они «отлаживали»(debug) систему.… … Википедия
- Инженерия программного обеспечения — Новый Airbus A 380 использует довольно много ПО, чтобы создать современную кабину в самолете. Метод инженерии программного обеспечения позволил создать программное обеспечение самолёта, описываемое миллионами строк … Википедия
- Производитель программного обеспечения — Разработка программного обеспечения (англ. software engineering, software development) это род деятельности (профессия) и процесс, направленный на создание и поддержание работоспособности, качества и надежности программного обеспечения, используя … Википедия
- Жизненный цикл программного обеспечения — (ПО) период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации[1]. Этот цикл процесс построения и развития ПО. Содержание 1 Стандарты… … Википедия
- Архитектура программного обеспечения — (англ. software architecture) это структура программы или вычислительной системы, которая включает программные компоненты, видимые снаружи свойства этих компонентов, а также отношения между ними. Этот термин также относится к… … Википедия
- Тестирование программного обеспечения — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия
- Сопровождение программного обеспечения — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия
- Качество программного обеспечения — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен … Википедия
- Обратная связь: Техподдержка, Реклама на сайте
- Путешествия
Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.
- Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
- Искать во всех словарях
- Искать в переводах
- Искать в ИнтернетеИскать в этой же категории
Проектирование программного обеспечения
Если бы мы запланировали статью, которая не будет никому интересна, то наверное написали про важность проектирования зданий перед их постройкой. Но, к счастью, любой человек понимает, почему не стоит строить дома на глазок, добавляя фичи прямо в процессе строительства. При разработке же программного обеспечения по-прежнему полезно напоминать о том, что начинать её следует с проектирования — т.е. с полного планирования того, что непосредственно нам придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом.


За 13 лет опыта компании «Эдисон» в аутсорс-разработке для средних и крупных компаний из России, США, Европы и Австралии мы выработали собственную схему проектирования ПО, о которой в этом посте и расскажем.
Зачем нужно проектирование программного обеспечения
Определив требования к программному обеспечению, разработчик получает согласованный четкий план действий, график оплат и сроков, сокращает время разработки и повышает её качество, а также позволяет предусмотреть любые другие нюансы разработки, например, юридические (в частности по передаче авторских прав на программное обеспечение).
Проектируя ПО заранее, разработчик получает возможность:
- оценить стоимость и время разработки программного продукта,
- исключить потери времени и денег на ненужные действия, вынужденные доработки, длительное согласование,
- избежать разногласий и неудовлетворённости клиента и исполнителя.
Подготовительный этап
В зависимости от особенностей проекта порядок разработки программного обеспечения может отличаться, но в общем виде он такой:

При подготовке к проектированию решаются организационные вопросы:
- что клиент может предоставить (ТЗ, макеты, дизайн), насколько достаточны исходники и какие этапы закрывают — таким образом определяется состав работ,
- бюджет и сроки: на основе имеющихся материалов утверждается примерная стоимость, срок всего проекта, а также срок и точная стоимость ближайшего этапа.
Этапы и результаты проектирования
- Описание: совместная работа заказчика (говорит о пользе продукта, требованиях к работоспособности и внешнему виду) и EDISON (предлагает технические и алгоритмические решения).
- Архитектура: утверждается язык программирования, база данных, серверы и фреймворки.
- Техническое задание: составляется архитектором на основании описания и ответов заказчика на вопросы, согласовывается с менеджером проекта, затем передается клиенту, производятся правки.
- Макеты (добавляются к техзаданию): интерфейсов, принципиальные схемы устройства, диаграммы структуры базы данных, схемы взаимодействия компонентов.
- Контроль: архитектор устраняет замечания менеджера проектов.
- Утверждение: заказчик проверяет и меняет ТЗ самостоятельно или сообщает список правок проект-менеджеру, замечания устраняются, ТЗ утверждается и прилагается к контракту.
- Что делаем (описание продукта, функционала, пользователей)?
- Как делаем (архитектура)?
- Как проверить, что цель достигнута (тестирование, критерии оценки)?
Теоретически, если на подготовительном этапе клиент может сразу предоставить результат проектирования в соответствии с этими требованиями, этап проектирования можно опустить и сразу перейти к бесплатной оценке проекта. Однако пока таких случаев в нашей практике не было.
Требования к техническому заданию на разработку программного обеспечения
Минимально достаточное ТЗ должно:
- полностью, чётко (инструкционно, без воды, возможности разночтения) и структурировано описывать будущий программный продукт (как должен выглядеть, как и с чем работать, каким требованиям отвечать) и процесс его разработки, чтобы у архитектора не возникало вопросов по реализации,
- исключать противоречивые сведения,
- быть юридически точным (следовать ГОСТ 34.602-89), поскольку вместе с контрактом и прочими документами ТЗ приобретает юридическую силу.
- общие данные о проекте (название продукта, кем и для чего будет использоваться);
- общие требования к ПО (к структуре, функциям, в частности приложить схему архитектуры и описать связь подсистем, виды интерфейсов всех составляющих для каждой из ролей пользователей — готовый дизайн или его концепцию);
- подробный план работ (перечень этапов, сроки по ним);
- порядок тестирования и приемки (виды и состав испытаний продукта в целом и отдельных частей);
- перечень действий для запуска продукта;
- требования к документированию процесса и результата разработки.

- детaлей:
- пользователи программного продукта: роли, права и функции,
- описание алгоритмов обработки данных,
- перечень открытых и закрытых протоколов,
- требования к безопасности данных на всем жизненном цикле,
- список компонентов (платных, свободных), которые будут использоваться в разработке,
- примеров:
- при наличии аналогов, интегрируемых систем указываются ссылки на них,
- в описании работы системы приводится описание типичных сценариев взаимодействия с ней пользователей,
- примеры входящих данных и формат данных взаимодействия подсистем (таблицы, базы, страницы и др.),
- примеры исходящих данных (виды отчетов и экспортируемых файлов),
- производительности и надежности:
- указание уровней нагрузки системы (день, месяц, максимальный),
- требования к производительности, сохранности,
- обоснование выбора оборудования запуска программного обеспечения,
- указание хостинга серверной части.
Примеры техзаданий на разработку ПО
Естественно, чем сложнее проект, тем дольше и дороже подготовка к нему. Проектирование небольших проектов занимает от недели до месяца. Чтобы процесс шёл быстрее и стоил меньше, мы предоставляем заказчикам по запросу инструкцию по составлению ТЗ и примеры готовых технических заданий. Приведем примеры и тут.
ТЗ на программное обеспечение Protector
Объект ТЗ: разработка и интеграция с существующей системой модульного ПО для мониторинга удаленных устройств охраны
Заказчик: ООО «ВТИМБ»
Сценарии использования образовательной системы
Объект ТЗ: создание образовательной системы
ТЗ на разработку ПО SMPP-шлюз
Объект ТЗ: разработка программного обеспечения SMPP-шлюза
Заказчик: IMT
В ходе разработки ТЗ, как в последнем кейсе, мы обязательно визуализируем основные моменты в виде схем, диаграмм, моделируем бизнес-процессы, создаем макеты интерфейсов, по желанию клиента выполняем ТЗ на русском или английском языках.
Проектирование — для больших парней
За годы работы нами написаны сотни техзаданий на разработку программного обеспечения различной степени сложности, и мы понимаем, что роль разработки подробного ТЗ сложно переоценить. Бывало, работали с ТЗ на более чем 1000 страниц, и для крупных проектов — это оправдано и необходимо. Тем не менее не стоит забывать о принципе целесообразности — нет смысла писать ТЗ на 20 страниц для двухдневной разработки продукта.
Есть замечания по нашей методологии или вы хотите поделиться своим опытом? Рады будем пообщаться в комментариях, в нашей группе в Фейсбуке или во Вконтакте.

- EdisonSoftware
- разработка ПО
- Блог компании Edison
- Веб-разработка
- Программирование
- Клиентская оптимизация
- Проектирование и рефакторинг
Проектирование программного обеспечения

Когда строится дом, ни у кого не возникает даже мысли о том, что его можно сделать без проекта. Но когда речь заходит о разработке программного обеспечения, то о проектировании задумываются не так сильно. И все же это необходимый этап, позволяющий сделать разработку правильной и качественной. Давайте разберем, как происходит проектирование программного продукта, из каких этапов состоит и что дает.
Для чего нужно проектирование ПО
Проектирование программного обеспечения – это комплекс мер, направленный на определение внутренних свойств приложения, а также детализацию видимых компонентов. Создается специальный проект, который позволяет разработчикам четко понимать план действий, определить стек технологий и разработать методы и стратегии создания продукта.
Проектирование иногда путают с прототипированием. Но создание прототипа – это немного другой процесс. Он нужен для того чтобы понимать, как будет выглядеть приложение, где размещаются элементы и как они взаимодействуют между собой. Проектирование в программировании подразумевает разработку четкого плана действий, выбор представления данных, стилей и шаблонов архитектуры, определение стратегий решения задач. Составляется техническая документация, определяются основные правила документирования программного обеспечения, выбираются методики тестирования. Проектирование программного обеспечения делается для следующих целей:
- позволяет понять, какой использовать стек технологий для разработки, какие методы разработки использовать, сколько нужно человек в команде;
- дает возможность предварительно оценить стоимость разработки и сроки реализации проекта, понять, как можно распределить бюджет и составить градацию функционала, от наиболее востребованного до периферийного;
- минимизирует риски в ходе разработки и исключает ненужные действия, на которые требуется время и средства;
- упрощает согласование хода разработки с клиентом и дает четкое представление о возможностях будущего продукта;
- позволяет понять, как будет работать программа, как ее можно масштабировать в дальнейшем и улучшить ее функционал;
- уменьшает разногласия между клиентом и исполнителем, так как на каждом этапе ведется документация и составляется подробный план действий.
Проектирование программного продукта нужно для того, чтобы создать четкое техническое задание с распределением обязанностей, увидеть возможности и функционал программы до начала разработки и понять алгоритм действий. В случае отсутствия проекта высока вероятность не получить готовое решение.
Этапы проектирования программных продуктов

Этапы проектирования ПО определяют четкий порядок создания проекта, который позволяет четко следовать намеченному плану и создавать качественный продукт, отвечающий требованиям бизнеса. Проект дает возможность документировать договоренности и ставить задачи перед командой разработчиков, дизайнеров и тестировщиков. Этапы проектирования программного обеспечения выглядят следующим образом:
- Составление технического задания на программирование . Определяется жизненный цикл продукта, платформа разработки, стек технологий. После составления задач, которые прописываются в первоначальном техническом задании, определяются методы их решения. Разрабатывается пошаговый алгоритм действий, определяются системные требования для работы с программой.
- Технический проект . Наиболее ответственный шаг в проектировании. После определения методов решения задач составляется план действий для разработчиков, полностью определяется внутренняя структура продукта, разрабатывается концепция модулей и систем, участвующих в структуре программы. Для каждого модуля подбираются инструменты, технологии, позволяющие реализовать идеи.
- Рабочая документация . В ходе разработки программного обеспечения выполняется создание технической документации. Она включает описание применения продукта, в том числе, требования системы и другие факторы. Также разрабатывается руководство пользователя, в котором описываются возможности программы и принципы работы с ней. Проектирование программного обеспечения подразумевает разработку руководства пользователя для конечного потребителя, оно пишется доступным языком, учитывая квалификацию пользователя. Создается руководство для оператора или программистов.
- Ввод в действие . Проектирование программного продукта позволяет определить жизненный цикл программы и разработать стратегию вывода продукта на рынок. Первоначально он проходит тестирование и запускается на пробный рынок продаж, и потом уходит в промышленную эксплуатацию. Если продукт разрабатывается индивидуально для компании, то прорабатываются методы внедрения на производство.
Этапы проектирования программного обеспечения дают возможность разработать продукт постепенно, следуя четкому плану. Это минимизирует риски, исключает лишние действия и дополнительные издержки.
Результаты проектирования

Что дает проектирование программного продукта для бизнеса? В первую очередь, четкое представление, как будет проходить разработка, сколько стоит каждый этап, сколько он займет времени. Главный результат – это составление подробного технического задания. Это документ, в котором прописаны обязанности, задачи и пути их реализации. Он дает гарантии, как разработчикам, так и заказчикам.
Создание проекта отвечает на несколько важных вопросов:
- Что необходимо делать? Проект содержит описание продукта, его возможности, функции, целевую аудиторию и понимание, для чего и для каких целей вообще разрабатывается ПО.
- Как это сделать? Благодаря описанию архитектуры становится понятно, как функционал будет взаимодействовать с интерфейсом, и как программа будет работать.
- Как убедиться в эффективности результата? Для заказчика важно понимать, достигнута ли первоначально поставленная цель. Проектирование программного продукта подразумевает разработку критериев оценки и тестирования, а также определение форм отчета. Это позволяет исполнителям показать, что продукт работает, а заказчик убеждается в эффективности результата.
В компании Wezom вы можете заказать проектирование программного обеспечения для своего продукта. Мы подбираем индивидуальные решения, которые позволяют реализовать любую задачу. Наша цель – сделать качественный продукт для вашего бизнеса, который будет работать, и приносить прибыль. Позвоните нам или приезжайте в офис, чтобы обсудить детали и получить подробную консультацию. Давайте разработаем для вашего бизнеса качественное ПО.
Что такое проектирование в программировании
Проектирование программного обеспечения — этап жизненного цикла программного обеспечения, во время которого исследуется структура и взаимосвязи элементов разрабатываемой системы. Результатом этого этапа является прежде всего документ (набор документов), содержащий(е) в себе достаточное количество информации для реализации системы.
На этапе проектирования уточняется функциональная спецификация системы: прорабатывается архитектура системы, определяются требования к аппаратному обеспечению. Также определяется набор организационных мероприятий, необходимых для внедрения системы, и перечень документов, регламентирующих ее использование. В дальнейшем на всех этапах реализации проекта происходит разработка указанных документов и утверждение их Заказчиком.
На основе результатов этапа анализа и сбора требований, специалистами нашей компании осуществляется объектно-ориентированное проектирование системы. Это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической, физической, а также статической и динамической моделей системы.
Этап проектирования осуществляется в тесном взаимодействии с сотрудниками Заказчика. На данном этапе нами широко используется имеющийся опыт создания систем – вырабатываются проектные решения, связанные с выбором платформ и технологий, на основе которых будет функционировать система, языка (или комбинации) языков реализации, определяются требования к пользовательскому интерфейсу, выбирается наиболее подходящая СУБД (если это необходимо) и т.д.
Наша компания всегда открыта для новых интересных предложений. Мы готовы сотрудничать по любому интересующему вас вопросу в сфере информационных технологий.