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

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

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

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

Добавлен: 17.05.2023

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


– научных;

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

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

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

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

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

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

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

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

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

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

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

Рисунок 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, С++ и прочие).

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