Файл: Основы проектирования программ. Этапы создания программного обеспечения ( Понятие и особенности программного обеспечения ).pdf
Добавлен: 01.04.2023
Просмотров: 351
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Понятие и проектирование программного обеспечения
1.1 Понятие и особенности программного обеспечения
1.2 Проектирование программного обеспечения
Глава 2. Классификация и особенности видов программного обеспечения
2.1 Системное программное обеспечение
Для задач с активной коммуникацией и совместной работой пользователей, работающих с динамическими данными, имеющих сложную внешнюю вычислительную составляющую (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 средства пассивной защиты - программы обслуживания дисков, они обеспечивают контроль сохранности файловой системы на логическом и физической уровнях, проверяют качество поверхности магнитного диска, создают страховые копии дисков, резервируют данные на внешних носителях, выполняют сжатие дисков и т. д. программы архивирования данных, предназначены для создания архивов, что упрощает хранение файлов за счёт уменьшения объема памяти.