Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы проектирования программ.Этапы создания программного обеспечения.

Содержание:

Введение

За последние 15 лет управления бизнеса, уровень оптимальности развития или же других значимых областей в жизни человека определяют информационные системы (ИС).

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

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

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

– рассмотреть понятия о программном обеспечении;

– дать характеристику классификации ПО;

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

Объектом для исследования курсовой работы является теория разработки программного обеспечения.

Предмет исследования – этапы разработки ПО.

Этапами развития указанных теоретических основ по данной тематике занимались специалисты: Самовлов А.К., Антохин М.В., Фаронов О.К. и другие.

1.Понятия о программном обеспечении

1.1.Определение программного обеспечения.

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

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

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

Все программное обеспечение создается с помощью программистов.

Программное обеспечение – это вся совокупность программ, которые хранятся на всех устройствах в долговременной памяти ПК. [2]

Программное обеспечение ПК постоянно развивается, пополняется, совершенствуется. Стоимость всех установленных программ на ПК зачастую превышает общую стоимостьего аппаратных составляющих.

Разработка современного ПО от программиста требует очень высокого уровня владения разными языками программирования (ЯП.).

К ПО относится также практически вся область деятельности с точки зрения проектирования и разработки ПО, а именно: [5]

– Технология проектирования ПО;

– Методы тестирования ПО;

– Методы доказательства правильного функционирования программ;

– Анализ уровня и качестваработы ПО;

– Документирование ПО;

– Разработка и применение программных средств, которые облегчают процесс проектирования ПО.[8]

Программное обеспечение – это неотъемлемая часть компьютерной вычислительной системы. Оно является продолжением технических средств ПК.

Стоит отметить, что сфера применения конкретного ПК определяется созданным ПО.

Сам по себе ПК не обладает никакими знаниями в области применения. Все такие знания сосредоточены непосредственно в выполняемых на них программах.

Программное обеспечение для современных компьютеров включает сотни тысяч программ разного направления и сложности: от игровых – до научных.

1.2.Классификация программного обеспечения.

Все программы, которые работают на ПК, можно разделить на 3 категории (рисунок 1):

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

– редактирование текста;

– рисование изображений;

– обработку информационных массивов и прочие действия.

– системные программы дают возможность выполнить различные вспомогательные функции, к примеру: [4]

cоздание копии применяемой информации;

выдачу справочных данных о ПК;

проверку работоспособности аппаратных устройств персонального компьютера и другие действия;

– К вспомогательному ПО относятся утилиты, инструментальное ПО, средства для создания нового ПО.

Рисунок 1 – Классификация ПО

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

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

Рисунок 2 – Типы ППО

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

Данный класс ПО может быть для отдельных компьютеров весьма специфичным.

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

– информационным системам (ИС);

– типам направлений использования;

– функциям задачи прочее.

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

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

Методо-ориентированное ПО включает программные продукты, которые реализуют математические, статистические, а также другие методы решения заданий.

Офисное ПО составляют программы, которые обеспечивают организационное управление работой офиса:[8]

– органайзеры и планировщики;

– программы-переводчики;

– инструменты для распознавания текста;

– интегрированные пакеты:

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

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

Программные средства мультимедиа используются для создания и применения аудио- и видео информации.

Интеллектуальные системы реализуют функции интеллекта человека и выполняют интеллектуальный анализ информации.

Структура системного ПО показана на рисунке 3:

Рисунок 3 – Структура системного ПО

Основ у системного ПО составляют программы, которые входят в операционные системы (ОС) компьютеров.

Под базовым программным обеспечением (BIOS) понимается составная часть аппаратных средств, которая является одним с программных модулей ОС.[4]

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

– антивирусные средства;

– работа с файлами;

– восстановление поврежденной информации;

– диагностирование аппаратуры;

– архивирование.

В настоящее время выделяются три основных типа инструментальных сред для разработки и сопровождения ПК (рисунок 4):

Рисунок 4 – Классификация инструментального ПО

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

2.Этапы разработки ПО

2.1.Основные этапы разработки ПО.

Жизненный цикл в современных программных средствах – это полностью непрерывный процесс, что может выполняться с момента непосредственно утверждения надобности для создания ПС, а также и заканчивается он прямо в момент полного изъятия его с эксплуатации. [3]

На рисунке 5 рассмотрена структурная схема терминологии, что связанная с определением ЖЦ ПО:

Рисунок 5 – Типовая структура понятий для ЖЦ

Стоит также заметить, что каждый ЖЦ является только одним с базовых терминовпо теории проектирования для современных программных продуктов [10].

Основным нормативным положением, что выполняет регламентацию разработки жизненного цикла, считают сертифицированный международный стандарт разработки ISO 12235 Международной организации по реализации стандартизации ПС.

Он выполняет определение типичной (традиционной) схемы ЖЦ, которая также использует, задачи, разнообразные действия, которые надо во время проектирования ПС выполнять.

Сама структура указанного цикла основана по уже действующему стандарту ISO 12235с группами (рисунок 6): [3]

– вспомогательные;

– основные (главные);

– организационные.

Рисунок 6 – Типовая структура ЖЦ

Все основные группы процессов по ЖЦ в себя включают перечень определенных действий, что связаны с задачами, которые всегда должны быть выполнены при выполнении ЖЦ. [2]

К главным процессам, которые имеются в ЖЦ относят такие:

– разработку ПС;

– эксплуатацию;

– приобретение ПС;

– поставку;

– сопровождение ПС.

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

По таким действиям относят:[8]

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

– выбор самого лучшего предложения;

– выбор разработчиков;

– заключение контракта с разработчиками;

– выполнение изменений для договора по реализации ПС на основании требований клиентов.

  1. надзор за работой поставщика также осуществляется с помощью действий аудита;
  2. определенное приобретения может подразумевать также много задач: определение клиентом практически всех потребностей при разработке ПС.
  3. Окончание разного рода работ по проектированию ПС

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

Основные виды тестирования показаны на рисунке 7.

Завершение работ может также осуществляться в случае их удовлетворения абсолютно всем условиям с технического задания.

Поставка ПС охватывает также разные действия с требованиями поставщиков при получении готового ПС. [2]

К таким действиям можно отнести:

Инициирование поставки – это непосредственное рассмотрение поставщиком своих предложений.

Рисунок 7 – Виды тестирования

  1. Подготовка ответов на предложения по результатам проверки;
  2. Подготовка договоров осуществляется после процедуры определения поставщика;
  3. Процесс реализации планирования часто используется также и после утверждения разных договоров и выполняет задачи:

– принятие решений для поставщиков с точки зрения выполнения самых различных работ;

– выполнение разработки целевого плана по управлению ПС, что в себе также содержит организацию проектов, их разграничение ответственности по интегрированной среде разработки.[7]

Субподрядчик (или подрядчик) является организацией или корпорацией (индивидуум), заключившие договоры по разработке и исполнении работ.[1]

  1. Выполнение работы, контроль выполнения.
  2. Проверка работоспособности ПО.
  3. Доставка ПС, а также завершение некоторых основных работ, что выполняются строго по условиям, которые оговорены в процессе его непосредственного подписания, а также при инициировании работами по реализации приемки работ.

Непосредственно процессы по разработке охватывают самые различные используемые действия, а также и задачи для разработчиков:[5]

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

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

К таким действиям часто относят: [9]

  • эксплуатационное тестирование ПО;
  • подготовительная работа с ПО;
  • эксплуатация непосредственноПО;
  • поддержка ПО.

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

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

2.2.Применение вспомогательных процессов в ЖЦ.

К разным вспомогательным процессам часто относят действия по выполнению документирования, управлению рабочей конфигурацией, обеспечению непосредственного качества, верификации, совместного тестирования, аудита, аттестации, а также и разрешения разного рода возникших проблем.[2]

Процесс документирования любой работы с ПС может предусматривать специальное формальное описание по всей информации, что была создана в этапах ЖЦ.[4]

Согласно стандартизации класса IEEE-91 под структурой ПО часто понимается вся совокупность его физических, функциональных характеристик, а также устанавливающихся в документации или реализованы непосредственно в ПО.

Этот процесс имеет этапы:

  1. Подготовительную работу;
  2. Процесс идентификациирабочей конфигурации – утверждаются все имеющиеся правила, при использовании которых однозначно можно определять компоненты ПС, их некоторые версии. Также ко всем из компонентов, его имеющимся версиям может ставится обозначаемый комплект документов в соответствие с ПС;
  3. Контроль рабочей конфигурации предназначается для выполнения полностью систематического рассмотрения главных предполагаемых модификаций ПО, координированной реализации с эффективности модификацииПС;[3]
  4. Учет состояния для конфигурации отображает регистрацию полностью всех состояний компонентов в ПС, подготовку разных отчетов всех реализованных, а также отвергнутых модификациях для версий разного рода составных частей ПС.

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

3.Описание моделей разработки программ

3.1.Каскадная модель.

Каскадная модель может характеризоваться разбиением разработки определенного программного средства на некоторые этапы, причем все их переходы с определенных таких этапов к следующему будут реализованы только после завершения предварительных этапов (рисунок 8).[4]

Рисунок 8 – Каскадная модель

Рассмотрим некоторые положительные особенности описываемой модели ЖЦ:

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

– все этапы, должны быть реализованы в нужной последовательности, они дают возможность полностью спланировать конкретные сроки по окончании работ.

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

В рассмотренную категорию относятся и сверхсложные расчетные системы, а именно системы реального времени.

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

Процессы разработки любого программного средства часто принимают внешний вид рисунка 9:

Рисунок 9 – Действительный процесс каскадной модели

Самое применяемое именование в международной литературе для такой схемы является "водопадная модель".

Главным недостатком рассматриваемого подхода также считают большое запаздывание по результату разработки.

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

Другой недостаток – указанный вид проектированияведет его к очень примитивной автоматизации и механизации самых разных действий работников.

3.2.Спиральная модель.

Для преодоления выше описанных проблем, что возникают при использовании каскадной модели, еще в середине 70-х годов ХХ была предложена спиральная модель.

При рассмотрении такой модели рассматривался упор на начальные этапы выше приведенной каскадной модели:[1]

– анализ проблемы;

– проектирование ПС.

Непосредственная реализация для всех технических фаз также выполняется по прототипам (рисунок 10). [10]

Рисунок 10 – Макет спиральной модели

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

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

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

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

Спиральная модель (рисунок 6) избавляет других разработчиков или же программных пользователей средства от точного формулирования некоторых требований к системе в выходных стадиях, ведь они уточняются постоянно при новых итерация. [8]

Основная проблема для этой модели – это определение моментов с переходом к другой стадии модели.

Для решения проблемы также необходимо вводить специальные ограничения (в основном, по времени) [2].

Спиральная модель имеет свои достоинства:

– заказчики могут влиятьна разрабатываемый для них продукт на всех этапах создания;

– заказчики также могут принимать свое активное соучастие также в разработке программы;

– непосредственно в модели воплощаются полностью все преимущества модели ЖЦ.

В качестве улучшенной структуры ЖЦ рассматривают такую модель (рисунок11).

Рисунок 11 – Схема улучшенной спиральной модели

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

3.3.Инкрементная модель.

Инкрементная модель является классическим прототипом инкрементного поведения при конструировании ПО. Стоит отметить, что в ней также объединены элементы последовательной модели с итерационной структурой Боэма для модернизации каскадной модели.

Каждая такая последовательностей может сама вырабатывать специальный необходимый инкремент ПО.

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

При 2-м инкременте могут использоваться более мощные возможности по редактированию и документировании.

Далее, наследующем инкременте – выполняется проверка пунктов орфографии, самых разных грамматик.

На 4-м шаге инкремента присутствуют возможности по созданию страничной структуры.[10]

Организация модели показана на рисунке 12. [3]

Рисунок 12– Структура функционирования инкрементной модели

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

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

3.4.Поэтапная модель с промежуточным контролем.

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

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

Такая модель также характеризуется свойствами для взаимодействия этапов ЖЦ, а именно:

– модель состоит с последовательно расположенных структур (водопадная модель);

– все имеющиеся этапы используют обратную связь с этапом предыдущего уровня;

– исправление ошибок происходить на всех шагах сразу (выполняется промежуточный контроль работы);

– этапы перекрываются также во времени с причин в них наличия обратной связи: следующий этап не будет выполняться, пока не будет завершен предыдущий полностью; а для первой итерации вниз по модели, с обнаружением лишь любой ошибки, будет осуществлен возврат по направлению к этапам «снизу вверх», что повлекли за собой полученные ошибки.

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

Рисунок 14 – Поэтапная модель

Критерием для появления результатов используемой модели «водоворот» может использоваться качество продукта, состояние его структуры, когда самые критические неточности для клиента устранены, ни при наличии непринципиальных ошибок для жизнедеятельности систем клиент согласился, какие данные ошибки описываются непосредственно в документации, а они фактически переводятся к особенностям такой системы.[4]

Заключение

К современным программным продуктам предъявляются также особые требования практически во всех секторах применения: по их эффективности функционирования, помехоустойчивости работы, надежности, а также процесса выбора моделей ЖЦ.

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

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

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

– рассмотрены понятия о программном обеспечении;

– дана характеристика классификации ПО;

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

Список использованных источников

  1. Аммерааль Л. Разработка программ: Пер. с англ. — М.: ДМК, 2016. — 240 с.
  2. Бочков С. О. Язык программирования для персонального компьютера. — М.: Радио и связь, 2016. — 384 с.
  3. Бобровский С. Самоучитель програмирования на ЯВУМ.: ИНФРА-М, 2015.–251 c.
  4. Бруно Бабэ. Просто и ясно о программировании: Пер. с англ. - Москва: БИНОМ, 2014. – 400с.
  5. Джосьютис Н. М. C++. Стандартная библиотека. Для профессионалов: Пер. с англ. — СПб.: Питер, 2014. — 730 с.
  6. Керниган Б. В. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Невский Диалект, 2014. — 352 с.
  7. Липпман С. Б. Проектирование программных продуктов: Пер. с англ. — М.: Вильямс, 2012. — 256 с.
  8. Липпман С. Б. Качество ПО. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2014. — 1104 с.
  9. Лишнер Р. STL. Карманный справочник: Пер. с англ. — СПб.: Питер, 2015. — 187 с.
  10. Мейерс С. Эффективное использование программирования: Пер. с англ. — СПб.: Питер, 2013. — 224 с.
  11. Оллисон Ч. Философия С++. Практическое программирование. С.Петербург 2014. – 608 с.:ил.
  12. ПоследБ.С. Borland C++ Builder 6. Разработка приложений баз. М.: 2013г. -360 г.