Файл: Основы проектирования программ. Этапы создания программного обеспечения(Основы теории программного обеспечения).pdf
Добавлен: 17.05.2023
Просмотров: 51
Скачиваний: 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, С++ и прочие).
В данном случае программисты должны описывать всю процедуру для решения задачи, поскольку проблемно-ориентированные языки (непроцедурные) позволяют только формально идентифицировать проблемы и указать состав представления и форматы как входной, так и выходной информации.