Файл: Основы проектирования программ. Этапы создания программного обеспечения ( Понятие и проектирование программного обеспечения ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 366

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Для задач с активной коммуникацией и совместной работой пользователей, работающих с  динамическими данными, имеющих сложную внешнюю вычислительную составляющую (backend), эффективным решением будет реализация сервиса с предоставлением доступа через web-интерфейс (frontend)  или  мобильное приложение для Android, IOS, Windows Phone[29].

При разработке  программного продукта  начинать следует с проектирования – т.е. с полного планирования того, что непосредственно придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом. Определив требования к программному обеспечению, разработчик получает согласованный четкий план действий, график оплат и сроков, сокращает время разработки и повышает её качество. Проектируя ПО заранее, разработчик получает возможность[30]:

  • оценить стоимость и время разработки программного продукта;
  • исключить потери времени и денег на ненужные действия, вынужденные доработки, длительное согласование;
  • избежать разногласий и неудовлетворённости клиента и исполнителя.

В зависимости от особенностей проекта порядок разработки программного обеспечения может отличаться, но в общем виде он такой:

  • что клиент может предоставить (ТЗ, макеты, дизайн), насколько достаточны исходники и какие этапы закрывают – таким образом определяется состав работ;
  • бюджет и сроки: на основе имеющихся материалов утверждается примерная стоимость, срок всего проекта, а также срок и точная стоимость ближайшего этапа.

Этапы и результаты проектирования:

  • описание: совместная работа заказчика (говорит о пользе продукта, требованиях к работоспособности и внешнему виду) и разработчика (предлагает технические и алгоритмические решения);
  • архитектура: утверждается язык программирования, база данных, серверы и фреймворки;
  • техническое задание: составляется архитектором на основании описания и ответов заказчика на вопросы, согласовывается с менеджером проекта, затем передается клиенту, производятся правки.
  • макеты (добавляются к техзаданию): интерфейсов, принципиальные схемы устройства, диаграммы структуры базы данных, схемы взаимодействия компонентов;
  • контроль: архитектор устраняет замечания менеджера проектов.
  • утверждение: заказчик проверяет и меняет ТЗ самостоятельно или сообщает список правок проект-менеджеру, замечания устраняются, ТЗ утверждается[31].

Как результат проектирования – получаем техническое задание с понятной и однозначной для заказчика и исполнителя (руководителя проекта, программистов, тестировщиков, дизайнеров и других участников процесса разработки) иллюстрацией ответов на вопросы.

Техническое задание должно содержать:

  • общие данные о проекте (название продукта, кем и для чего будет использоваться);
  • общие требования к ПО (к структуре, функциям, в частности приложить схему архитектуры и описать связь подсистем, виды интерфейсов всех составляющих для каждой из ролей пользователей – готовый дизайн или его концепцию);
  • подробный план работ (перечень этапов, сроки по ним);
  • порядок тестирования и приемки (виды и состав испытаний продукта в целом и отдельных частей);
  • перечень действий для запуска продукта;

Требования к документированию процесса и результата разработки:
в составе ТЗ необходимо уделить внимание описанию деталей:

  • пользователи программного продукта: роли, права и функции,
  • описание алгоритмов обработки данных;
  • перечень открытых и закрытых протоколов;
  • требования к безопасности данных на всем жизненном цикле;
  • список компонентов (платных, свободных), которые будут использоваться в разработке примеров:
  • при наличии аналогов, интегрируемых систем указываются ссылки на них,
  • в описании работы системы приводится описание типичных сценариев взаимодействия с ней пользователей,
  • примеры входящих данных и формат данных взаимодействия подсистем (таблицы, базы, страницы и др.),
  • примеры исходящих данных (виды отчетов и экспортируемых файлов),
  • указание уровней нагрузки системы (день, месяц, максимальный),
  • требования к производительности, сохранности;
  • обоснование выбора оборудования запуска программного обеспечения;
  • указание хостинга серверной части[32].

При проектировании ПО заранее разработчик имеет возможность: оценить время разработки и стоимость программного продукта; исключить потери материальных затрат и времени на вынужденные доработки, ненужные действия, длительное согласование; избежать неудовлетворенности и разногласий между заказчиком и исполнителем[33].

Проектирование состоит из следующих этапов:

Описания. Данный этап включает в себя совместную работу заказчика (определяет пользу продукта, требования к внешнему виду и работоспособности) и разработчика (предлагает алгоритмические и технические решения поставленной задачи).


Определения архитектуры. На данном этапе утверждают язык программирования, базу данных, фреймворки и серверы.

Разработки технического задания (ТЗ). ТЗ составляет архитектор в соответствии с описанием и ответами на вопросы заказчика. Затем ТЗ согласовывают с менеджером проекта, далее передают клиенту и производят правки.

Этап разработки макетов, которые затем добавляются к ТЗ. На данном этапе разрабатывают макеты принципиальных схем устройства, интерфейсов, диаграмм структуры базы данных, схем взаимодействия компонентов[34].

Контроля. В ходе этого этапа архитектором устраняются замечания менеджера проектов[35].

Утверждения. На данном этапе заказчиком проверяется и меняется самостоятельно ТЗ, либо сообщается список правок проект-менеджеру. После устранения замечаний ТЗ утверждают и прилагают к контракту. В результате проектирования получается техническое задание с однозначной и понятной как для заказчика, так и для исполнителя (в качестве исполнителя могут выступить руководитель проекта, программисты, тестировщики, дизайнеры и другие участники процесса разработки) иллюстрацией ответов на вопросы[36].

В случае предоставления заказчиком на подготовительном этапе результата проектирования согласно указанным требованиям данный этап проектирования можно опустить и сразу перейти к оценке проекта. Приведем минимальные требования, достаточные для ТЗ, в соответствии с которыми оно должно: полно, четко (инструкционно, без лишних слов и возможностей разночтения) и структурировано описывать разрабатываемый программный продукт (как должно выглядеть ПО, как и с чем работать, каким требованиям должно отвечать) и процесс его разработки, чтобы у архитектора не возникло вопросов по реализации ПО; исключить противоречивые сведения; быть юридически точно оформленным (согласно ГОСТу), так как наряду с контрактом и прочими документами ТЗ приобретет юридическую силу[37].

В техническом задании должны содержаться: общие данные по проекту (название продукта, категория пользователей и назначение использования); общие требования к программному обеспечению (к его структуре, функционалу, должны быть приложены схема архитектуры и описание связей подсистем, видов интерфейсов всех составляющих – готовый дизайн либо его концепция); детальный план работ, содержащий перечень этапов и сроки по каждому из них; порядок проведения тестирования и приемки, в котором должны быть описаны состав и виды испытаний продукта, как в целом, так и отдельных частей; перечень действий, осуществляемых при запуске продукта; требования к документации, содержащей описание процесса и результатов разработки[38].


В составе ТЗ важно уделить внимание описаниям: конкретных детaлей: пользователей программного продукта (их роли, права и функции), алгоритмов обработки данных, перечня закрытых и открытых протоколов, требований к безопасности данных в ходе всего жизненного цикла, списка используемых в разработке компонентов (свободных, платных); примеров: аналогов, интегрируемых систем с указанием ссылок на них; типичных сценариев взаимодействия системы с пользователем; входящих данных и форматов данных взаимодействия подсистем (таблиц, баз, страниц и др.); исходящих данных (видов отчетов и экспортируемых файлов); надежности и производительности: уровней нагрузки системы (день, месяц, максимальный), требований к сохранности и производительности, обоснования выбора оборудования запуска ПО, хостинга серверной части[39].

Итак, естественно, сроки и соответственно стоимость проекта будут зависеть от его сложности, чем сложнее, тем длительнее и дороже подготовка к нему. Время разработки небольших проектов занимает от недели до месяца.

Глава 2. Классификация и особенности видов программного обеспечения

2.1 Системное программное обеспечение

Системное программное обеспечение (System Software) − это программы и программные комплексы для работы компьютера и телекоммуникационного оборудования. System Software выступает в роли «переводчика-синхрониста» между приложением пользователя и непосредственно с аппаратным обеспечением[40]. По одной из классификаций к системному ПО относится только служебное (сервисное) программное обеспечение, по другой классификации СПО – это двухуровневое программное обеспечение, которое состоит из базового ПО и сервисного. Возможно ли отнести то или иное программного обеспечения к системному, зависит от соглашений, которые были прописаны в конкретном контексте. Будем придерживаться второй точки зрения (более распространённой), когда к системному программному обеспечению (СПО) относят и базовое программное обеспечение (не путать с BIOS), и сервисное. Это операционные системы, оболочки, утилиты, драйверы, системы программирования, системы управления базами данных, связующее программное обеспечение. СПО служит: для создания операционной среды для работы других программ; для обеспечения надежной и эффективной работы компьютера и телекоммуникационной сети; для проведения диагностики аппаратуры компьютера и сетей; для архивирования данных, копирования, восстановления файлов программ и баз данных и т.п. Системное программное обеспечение «организует» работу всех компонентов компьютера, а также подключенных к нему периферийных устройств[41].


Системное программное обеспечение должно быть надежным, технологичным, удобным и эффективным в использовании. Программные продукты этой группы рассчитаны, в основном, на профессионалов в компьютерной области: администратора сети, системного программиста, прикладного программиста, оператора. Тем не менее, знание базовой технологии работы с СПО требуется и квалифицированным пользователям персонального компьютера, тем, которые, как правило, самостоятельно выполняют обслуживание программ, данных и, собственно, компьютера, а не только работают со своими программами. Обычно СПО подразделяется на базовое и сервисное. Базовое программное обеспечение: операционная система (ОС) и драйверы в её составе; операционные (интерфейсные) текстовые и графические оболочки для взаимодействия пользователя с ОС, а также системы управления файлами; сетевая операционная система, которая предоставляет пользователям различные виды сетевых служб (электронная почта, управление файлами, процессы управления сетью и др.). Сервисное программное обеспечение − программы и программные комплексы, которые дают больше возможностей базовому ПО и организуют пользователю более удобную среду для работы. Такие программы часто называют утилитами (кроме антивирусов, к ним этот термин не применяется). Утилиты − программы, которые служат для обслуживания компьютеров или для выполнения вспомогательных операций обработки данных, таких как диагностика аппаратных и программных средств, оптимизация использования дискового пространства, восстановление разрушенной информации на магнитном диске и др.

Основное назначение утилит − автоматизация работ по проверке, наладке и настройке компьютерной системы.

Этот набор сервисных, дополнительно устанавливаемых программ, можно классифицировать следующим образом (по функциональному признаку): драйверы специфических и специальных устройств (не поставляются в составе ОС); мониторы установки, они предназначены для контроля над установкой ПО; средства контроля (мониторинга), позволящие следить за процессами, которые проходят в системе; средства диагностики работоспособности компьютера; они используются и для оптимизации работы компьютерной системы, и для устранения неполадок, например, утилита «Дефрагментация диска» позволяет данные, которые принадлежат одному файлу и находятся в разных сегментах диска, объединить в одной непрерывной области данных; средства обеспечения компьютерной безопасности, это средства активной и пассивной защиты данных от какого-либо повреждения, несанкционированного доступа, просмотра и/или изменения данных: o средства активной защиты − антивирусные программы, они необходимы, чтобы обеспечить защиту компьютера, обнаружить и восстановить зараженные файлы; o средства пассивной защиты - программы обслуживания дисков, они обеспечивают контроль сохранности файловой системы на логическом и физической уровнях, проверяют качество поверхности магнитного диска, создают страховые копии дисков, резервируют данные на внешних носителях, выполняют сжатие дисков и т. д. программы архивирования данных, предназначены для создания архивов, что упрощает хранение файлов за счёт уменьшения объема памяти.