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

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

Содержание:

Введение

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

Полезность (или эффективность) создания разных программных средств характеризуется только длительностью создания, а также и трудоёмкостью ПС.

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

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

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

Задачи для исследования в работе:

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

– описать основные этапы разработки ПО;

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

– изучить специфику спиральной модели жизненного цикла.

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

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

Развитием теоретических и практических основ по проблематике занимались зарубежные ученые и программисты: Страуструп Б., Лишнер Р., Джосьютис Н., Холингворт Д.

Глава 1.Основы теории программного обеспечения

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

Современный персональный компьютер (ПК) состоит из 2-х равных по значению составных компонентов:

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

– программного обеспечения.

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

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

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

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

Системное ПО можно разделить в свою очередь на:

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

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

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

В состав ОС входят:

– программы ввода/вывода;

– программы для управления используемой файловой системой, а также планирования задания ПК;

– препроцессора командного языка, что предназначен для анализа и выполнения команд, адресованные ОС.

Типичными примерами современных ОС являются:

– семейство ОС Windows;

– Unix-подобные ОС;

– Mac OS, а также производные от компании Apple;

– ОС для мобильных устройств.

На рисунке 2 показано место ОС в структуре ПК.

http://kompyutery.od.ua/images/GeneralizedLayeredComputerStructure_OS.png

Рисунок 2 – Место ОС в структуре ПК

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

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

– научных;

– развлекательных;

– офисных и других.

Среди них часто выделяют:

– Текстовые редакторы, текстовые процессоры, которые отвечают за ввод и редактирование текстовых данных, примитивных элементов графики (MS Word, Writer (рисунок 3) и другие);

Результат пошуку зображень за запитом "интерфейс Writer"

Рисунок 3 – Интерфейс Writer

– Графические редакторы предназначаются создания и обработки графических изображений. При этом различают 3 категории такого программного обеспечения: [3]

а) векторные;

б) растровые;

в) редакторы 3-мерной графики.

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

Интерфейс PostgreSQL показан на рисунке 4:

Результат пошуку зображень за запитом "PostgreSQL"

Рисунок 4 – Интерфейс PostgreSQL

– Диспетчеры файлов дают возможность реализации операций по обслуживанию файловых систем, а именно:

а) копирование;

б) перемещение файлов;

в) удаление и создание каталогов;

г) навигация и поиск по файловой структуре.

Кроме этого, могут входить в состав ОС (к примеру, FAR-менеджер, Проводник).

– Редакторы таблиц и табличные процессоры – это специальное ПО, которое предназначено для работы с электронными таблицами разной сложности, а также выполнения самых простых операций по анализу данных (например, MS Excel, SpeedSheets).

– WEB редакторы предназначены для создания и управления веб-страниц, обладают полезными функциями для удобства пользователей в разработке сайтов (Adobe Dreamweaver) и другие типы.

По методу распространения ПО делится на такие категории:[1]

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

При этом, по степени проприетарности различают ПО таких типов (рисунок 5):

Рисунок 5 – Классификация ПО по степени проприетарности

– Открытое (от «open source software») – это программные продукты, которые применяют открытым программный код, который доступен для просмотра и изменения, а также позволяет принимать участие в исправлении и доработке ошибок в ПО и создания новых образцов ПО - через заимствование начального кода.

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

Среди ПО еще можно выделять «пиратское ПО» – это ПО, что нарушает авторские права, при этом подразумевая несанкционированное распространение материала правообладателем, защищённого авторским правом.

1.2.Инструментальное программное обеспечение и его типы

К инструментальному ПО можно отнести средства разработки ПО. Такими инструментами являются:

1. системы программирования, что включают в себя программные средства, которые необходимы для автоматического построения программного кода.

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

В состав инструментов разработки ПО входят следующие программные средства:

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

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

На рисунке 6 показана структура ассемблера.

– трансляторы – это сервисные программы, которые выполняют трансляцию программы. Все трансляторы разделены на 2 основные типы:

Результат пошуку зображень за запитом "структура ассемблера"

Рисунок 6 – Структура Ассемблера

а) компиляторы – это программные продукты, переводящие текст программы, которая написана на ЯП высокого уровня в ей эквивалентную программу, но уже на машинном ЯП;

б) интерпретаторы являются программами, которые анализируют команды или используемые операторы программы, а также зразу выполняют их. Обобщенная структура трансляторов показана на рисунке 7:

Результат пошуку зображень за запитом "структура интерпретатора"

Рисунок 7 – Организация транслятора

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

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

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

Результат пошуку зображень за запитом "схема препроцессора"

Рисунок 8 – Применение препроцессора в программировании

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

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

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

Популярными в настоящее время являются такие редакторы начального текста:

а) SublimeText;

б) NotePad++;

в) CLion и другие.

Языки, которые представляю алгоритмы в виде некоторой последовательности читаемых команд, называются алгоритмическими ЯП. Алгоритмические языки можно подразделить на такие категории (рисунок 9):

Рисунок 9 – Типы языков программирования

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

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

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

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

Каждая макрокоманда при ее трансляции генерирует множество машинных команд (при использовании процедурно-ориентированного языка такое соотношение в среднем «один к десяткам машинных команд», в проблемно-ориентированном – «один к сотням команд».

Стоит отметить, что процедурно-ориентированные ЯП в настоящее время являются самыми востребованными (Basic, Pascal, Visual Basic, Borland Delphi, С++ и прочие).

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

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

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

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

Текст программы, что написана на языке программирования высокого уровня, до момента преобразования в машинные коды, называются исходным кодом.[9]

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

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

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

К инструментальному ПО также можно отнести некоторые системы управления базами данных (БД), которые предназначены для участия в разработки ПО в качестве отдельного модуля или хранилища данных.

СУБД – это специализированный комплекс ПО, что предназначен для ведения и организации баз данных. [7]

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

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

Основными функциями таких СУБД являются:

– управление данными для внешней памяти;

– управление информации в оперативной памяти при применении дискового кэша;

– выполнение фиксации изменений в специальных итоговых журналах, а также резервное копирование или восстановление баз данных после выполненных сбоев;

– поддержка языков для обработки БД (язык манипулирования данными, язык определения данных).

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

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

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

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

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

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

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

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

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

Структура жизненного цикла основана по стандарту, который называется ISO 12207.

Стоит отметить, что он в себе содержит такие 3 группы:

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

– основные;

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

Рисунок 10 – Структура ЖЦ

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

К ним относят (рисунок 11):

Рисунок 11 – Основные стадии ЖЦ

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

– выбор поставщиком критериев для оценки надобности и актуальности предложений;

– непосредственный выбор поставщика на основании выполненного анализа предложений;

– заключение и непосредственная подготовка договора на поставку программного обеспечения;

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

  1. Надзор за выполнением работы поставщика осуществляется по разного рода действиям, предусмотренными при оценке.
  2. Завершение работ и приемка ПО.

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

Завершение таких работ осуществляется только в случае удовлетворения практически всем условиям приемки ПО.

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

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

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

Рисунок 12 – Задачи планирования

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

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

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

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

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

К таким действиям можно отнести (рисунок 13): [8]

Рисунок 13 – Действия при эксплуатации

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

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

2.2. Вспомогательные процессы ЖЦ

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

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

Этот процесс может в себе содержать:

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

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

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

Данный процесс в себя включает такие стадии:[8]

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

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

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

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

Сам процесс аттестации должен гарантировать соответствие, полную возможность для его безопасного, а также полностью надежного применения пользователями.[6]

2.3 Организационные процессы ЖЦ программных средств

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

Также к таким организационным относятся практически все процессы управления, а также создания инфраструктур, усовершенствования и выполнения обучения. [6]

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

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

  • Приобретением;
  • Поставкой;
  • Эксплуатация;
  • Разработка;
  • Сопровождение.

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

Процесс для усовершенствования также предусматривает выполнение оценки, контроля, измерения, усовершенствования процессов ЖЦ.

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

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

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

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

Далее рассмотрим описание самых основных моделей ЖЦ для программных продуктов. [3]

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

Результат пошуку зображень за запитом "каскадная модель жц"

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

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

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

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

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

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

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

При этом, процессы разработки ПО получают следующий вид (рисунок 15):

Результат пошуку зображень за запитом "каскадная модель жц"

Рисунок 15 – Усовершенствованная каскадная модель

Самое применяемое название в международной литературе рассматриваемой модели – «водопадная модель».

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

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

Следующий недостаток – указанный вид разработки ПО ведет к очень примитивному уровню автоматизации.

Для преодоления описанных выше проблем еще в середине 1970-х годов предложена во внедрение спиральная модель ЖЦ.

При рассмотрении этой модели делался упор на исходные этапы выше приведенной модели, а именно:

– анализ задачи и требований;

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

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

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

Рисунок 16 – Определение спиральной модели ЖЦ

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

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

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

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

Для решения проблемы при этом необходимо вводить специальные целостные ограничения.

Стоит отметить, что в качестве улучшенной структуры ЖЦ рассматривается такая модель (рисунок 17).

Модели жизненного цикла автоматизированных информационных систем

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

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

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

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

– в модели непосредственно воплощаются практически все преимущества разработки ПО.[4]

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

  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 г.