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

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

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

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

Добавлен: 30.03.2023

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

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

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

Введение

Создание какого-либо программного средства является достаточно трудоемким процессом, особенно с учетом современных тенденций, когда каждая единица программного обеспечения может нести в себе сотни и тысячи операторов. В связи с этим, специалист в области проектирования и разработки программного обеспечения должен иметь представления и опыт в элементах анализа, проектирования, реализации, внедрения и тестирования программных систем, а также понимать актуальные подходы и технологии проектирования программных средств.

Проектирования является одним из наиболее важных элементов разработки приложений любой сложности. Проектирование представляет собой процесс создания прототипа программной системы, который можно определить, как последовательность разработки проекта и фиксации его основных элементов. Это итерационный процесс, при помощи которого требования к программному обеспечению транслируются в инженерные представления программной системы. Изначально эти представления носят концептуальный характер высокого уровня абстракции приложения, отображая общую архитектуру, в последующем происходит преобразование к формам, которые близки к выражению с помощью языков программирования.

Обычно в проектировании выделяют две ступени: предварительное проектирование и детальное проектирование. Предварительное проектирование формирует абстракции архитектурного уровня, детальное проектирование уточняет эти абстракции, добавляет подробности алгоритмического уровня. Кроме того, во многих случаях выделяют интерфейсное проектирование, цель которого является формирование пользовательского интерфейса.

Результатом выполнения этапа предварительного проектирования является система, описывающая взаимодействие с системой. Известно, сколько структурных элементов нужно и что должно находиться на каждом элементе системы. Разработка прототипа – средство, позволяющее проанализировать идеи, прежде чем потратить на них время и деньги. В связи с этим, разработчики программных продуктов и веб-дизайнеры создают модели, имитирующие взаимодействие пользователя с их разработками.

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


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

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

Для достижения цели необходимо решить следующие задачи:

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

Объект работы: проектирование программного обеспечения.

Предмет работы: особенности и этапы проектирования программного обеспечения.

Структура работы: работа состоит из введения, 3 разделов, заключения и списка использованных источников.

Глава 1. Обобщенная характеристика процесса разработки программного обеспечения

1.1. Жизненный цикл программного обеспечения

Так как программный продукт является результатом процесса разработки, рассмотрим особенности создания программ. Процесс создания информационных систем можно рассматривать с точки зрения жизненного цикла. Методология создания информационной системы по ее жизненному циклу обеспечивает не только возможность отслеживать соответствие ранее выдвинутых требований действительности, корректировать их на протяжении всего жизненного цикла, но и снижать сложность процесса создания информационной системы за счет полного и точного описания этого процесса.


Существующие на сегодняшний день методологии позволяют разрабатывать и сопровождать даже сложнейшие программные комплексы, так как практически все методологии родились в процессе эволюции компаний и корпораций, занимающихся разработкой программного обеспечения. Без правильной методологии даже небольшие проекты вряд ли могут быть успешными.

Жизненный цикл информационной системы — это период времени, который начинается с момента принятия решения о необходимости создания информационной системы и заканчивается в момент ее полного изъятия из эксплуатации.

Основным нормативным документом, регламентирующим жизненный цикл информационной системы, является международный стандарт ISO/IEC12207.

Производительность разрабатываемого программного обеспечения является главным фактором, который определяет эффективность системы. Сам процесс разработки состоит из следующих этапов:

  • проектирование объектов данных, которые будут реализованы в базе данных;
  • проектирование программ, экранных форм, отчетов, которые будут обеспечивать выполнение запросов к данным;
  • учет конкретной среды или технологии: топологии сети, конфигурации аппаратных средств, использования архитектур «файл-сервер», «клиент-сервер», параллельной обработки, распределенной обработки данных и так далее.

В реальных условиях проектирование информационных систем — это поиск способа, который обеспечивает необходимую функциональность системы средствами имеющихся технологий с учетом заданных ограничений.

Процесс разработки описывается моделью, которая определяет последовательность наиболее общих этапов и получаемых результатов.

В мировой практике известны следующие модели жизненного цикла:

  • каскадная модель;
  • V-образная модель;
  • модель прототипирования;
  • спиральная модель;
  • RAD модель;
  • инкрементальная модель.

Одной из наиболее распространённых моделей жизненного цикла является каскадная модель. Данная модель представляет собой формальный метод разработки «сверху вниз» [3].

Жизненный цикл информационной системы по каскадной модели представлен на рис. 1.

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


Рисунок 1 - Каскадная схема разработки АИС

Рисунок 2 - Реальный процесс разработки ПП по каскадной схеме

Основным недостатком каскадного подхода является существенное запаздывание с получением результатов.

Для преодоления проблем была предложена спиральная модель ЖЦ (рис. 3), делающая упор на начальные этапы ЖЦ: анализ и проектирование. Основная проблема спирального цикла - определение момента перехода на следующий этап. Для ее решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла [6].

Рисунок 3 - Спиральная модель жизненного цикла информационной системы

Таким образом, жизненный цикл программного обеспечения состоит из следующих этапов:

  • стратегия;
  • анализ;
  • проектирование;
  • реализация;
  • тестирование;
  • внедрение.
  • эксплуатация и техническая поддержка [3].

1.2. Краткая характеристика этапов проектирования программного обеспечения

Разработка любой программы состоит из нескольких этапов, грамотная реализация которых является обязательным условием для получения хорошего результата. Четкое следование этапам разработки программного обеспечения становится основополагающим критерием для занимающихся созданием ПО компаний и их заказчиков, заинтересованных в получении превосходно выполняющей свои функции программы. Подробно рассмотрим каждую стадию общепризнанной методологии разработки ПО, чтобы оценить их высокую значимость для достижения поставленной перед исполнителями цели [17].

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


Проектирование. Следующий ключевой этап в разработке ПО является стадия проектирования, то есть моделирования теоретической основы будущего продукта. Самые современные средства программирования позволяют частично объединить этапы проектирования и кодирования, то есть технической реализации проекта, будучи основанными на объектно-ориентированном подходе, но полноценное планирование требует более тщательного и скрупулезного моделирования. Качественный анализ перспектив и возможностей создаваемого продукта станет основой для его полноценного функционирования и выполнения всего комплекса возлагаемых на программное обеспечение задач. Одной из составных частей этапа проектирования, к примеру, является выбор инструментальных средств и операционной системы, которых сегодня на рынке присутствует очень большое количество [17].

Кодирование. Следующим шагом становится непосредственная работа с кодом, опираясь на выбранный в процессе подготовки язык программирования. Успех реализации любого проекта напрямую зависит от качества предварительного анализа и оценки конкурирующих решений, с которыми создаваемой программе предстоит «бороться» за право называться лучшей в своей нише. Кодирование может происходить параллельно со следующим этапом разработки — тестированием программного обеспечения, что помогает вносить изменения непосредственно по ходу написания кода. Уровень и эффективность взаимодействия всех элементов, задействованных для выполнения сформулированных задач компанией-разработчиком, на текущем этапе является самым важным — от слаженности действий программистов, тестировщиков и проектировщиков зависит качество реализации проекта.

Тестирование и отладка. После достижения, задуманного программистами в написанном коде, следуют не менее важные этапы разработки ПО, зачастую объединяемые в одну фазу — тестирование продукта и последующая отладка, которая позволяет ликвидировать огрехи программирования и добиться конечной цели — полнофункциональной работы разработанной программы. Процесс тестирования позволяет смоделировать ситуации, при которых программный продукт перестает функционировать. Отдел отладки затем локализует и исправляет обнаруженные ошибки кода, «вылизывая» его до практически идеального состояния. Не меньше 30% затрачиваемого на весь проект времени занимают эти два этапа, так как от их качественного исполнения зависит судьба созданного силами программистов ПО. Нередко функции тестировщика и отладчика исполняет один отдел, однако самым оптимальным будет распределить эти обязанности между разными исполнителями, что позволит увеличить эффективность поиска имеющихся в программном коде ошибок.