Файл: Алгоритмизация как обязательный этап разработки программы (Понятие программы).pdf
Добавлен: 22.04.2023
Просмотров: 191
Скачиваний: 1
ВВЕДЕНИЕ
Сегодня мало кто может представить свою жизнь без персонального компьютера, планшета или смартфона – информатизация и компьютеризация вошли в жизнь обывателей слишком стремительно, но преимущества использования новых технологий не позволяют нам вернуться к времени без них. Функциональность современных электронно-вычислительных машин поражает воображение – сегодня компьютер может не просто осуществлять расчеты, но выполнять такие задачи, которые еще недавно были фантастикой, а сейчас под силу только современным технологиям.
Известно, что оперативность и функциональность любого вычислительного средства, будь то компьютер, смартфон или планшет, определяются совокупностью его аппаратных характеристик и программного обеспечения. Примечательно, что аппаратное обеспечение в каждом конкретном устройстве отличается некоторой постоянностью – однажды приобретя персональный компьютер, мы редко заглядываем под оболочку. При этом программное обеспечение является достаточно мобильной, регулярно обновляемой и динамичной составляющей практически любого современного технического средства. Для того чтобы компьютер выполнял возложенные на него задачи максимально эффективно, необходимо подбирать программное обеспечение исходя из конкретных целей. И это более чем реализуемо, ведь с каждым днем разнообразие программ только продолжает увеличиваться, а прежние программы модернизируются и улучшаются.
Процесс создания программного обеспечения достаточно сложен и трудоемок, так как результатом должен быть продукт, не только полностью удовлетворяющий требованиям пользователя, но и достаточно функциональный в рамках обозримого будущего. В связи с этим весь процесс проектирования программ разделен на определенные этапы, которые позволяют осуществлять всесторонний контроль и отслеживание процесса разработки программного обеспечения. И одним из таких этапов является алгоритмизация.
Алгоритмизация представляет собой многоступенчатый и достаточно функциональный процесс, который позволяет не только оценить функционал и эффективность будущего продукта еще на этапе описания требований, но и избежать ошибок при реализации, которые могут принести разработчику весомые потери. Для более подборного рассмотрения обязательности алгоритмизации в процессе разработки программ необходимо достичь цели исследования – рассмотреть алгоритмизацию как обязательный этап разработки программы.
Для достижения цели следует выполнить следующие задачи:
- рассмотреть понятие программы;
- охарактеризовать процесс разработки программы;
- проанализировать этапы разработки программного обеспечения;
- рассмотреть алгоритмизацию как обязательный процесс разработки программного обеспечения.
Объектом исследования выступает процесс разработки программы, а предметом – алгоритмизация как обязательный его этап.
В качестве теоретической базы исследования используются научные труды известных исследователей алгоритмизации и программирования. В частности, при работе над исследованием использовались работы таких авторов как Голицына О. Л., Зыков С. В., Рудаков А. В. Соколова В. В. и др. Данные авторы на протяжении многих лет осуществляют свою научную деятельность в вопросах создания программного обеспечения, в связи с чем использование результатов их научных изысканий более чем целесообразно в ключе данной работы.
Глава 1. Программа. Основы разработки программ
1.1 Понятие программы
Возможности компьютера как технической основы системы обработки данных связаны с используемым программным обеспечением.
Программа (program, routine) – упорядоченная последовательность команд (инструкций) компьютеру для решения задачи [12]. Конечная цель любой компьютерной программы – управление аппаратными средствами.
Основные элементы программирования:
- ввод данных;
- вычисления, действия;
- ветвление;
- условный и безусловный переход;
- цикл;
- вывод результатов;
- массивы;
- подпрограммы и т.д. [3]
Программное обеспечение – совокупность программ обработки данных.
Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и непрерывном взаимодействии. Несмотря на то, что программное и аппаратное обеспечение рассматриваются раздельно, нельзя забывать, что между ними существует диалектическая связь, и раздельное рассмотрение их является условным.
Термин «компьютерная программа» в зависимости от своего контекста, может применяться также к исходным текстам (или кодам) программы. Вместе с правилами и процедурами, а также с документацией по функционированию программных систем обработки данных, компьютерные программы составляют понятие программного обеспечения [8].
Существует несколько уровней программного обеспечения. Эти уровни взаимодействуют между собой. Они представляют пирамидальную конструкцию. Каждый последующий уровень опирается на программное обеспечение предшествующих уровней, при этом каждый вышележащий уровень повышает функциональность всей системы. Так, например, вычислительная система с программным обеспечением базового уровня не способна выполнять большинство функций, но позволяет установить системное программное обеспечение.
Различают четыре уровня программного обеспечения:
- базовый уровень;
- системный уровень;
- служебный уровень (инструментальное обеспечение);
- прикладной уровень.
Основная классификация программного обеспечения представлена на рисунке 1 [20].
Рис. 1 Общая классификация программного обеспечения
В системном программировании имеет место более формальное определение программы как машинных кодов и данных, загруженных в оперативную память компьютера, и исполняемых процессором машины для достижения поставленной цели. В этом определении подчеркиваются две особенности компьютерной программы: нахождение ее в памяти и исполнение процессором машины.
Процесс создания компьютерной программы называется «программированием», а люди, занимающиеся этим видом деятельности, называются программистами. При разработке компьютерных программ в них довольно часто возникают ошибки. Считается, что в программе содержатся ошибки, если для каких–то данных программа дает неправильные результаты, сбои или отказы. Если программа выдает правильные результаты обработки для всех возможных входных данных, то можно считать, что она не содержит ошибок [18].
Процесс поиска ошибок в программах и их исправления называется отладкой программ. Обычно, заранее неизвестно, сколько ошибок содержит программа. По этой причине заранее неизвестна и продолжительность отладки программ.
Запись исходных текстов компьютерных программ при помощи специальных языков программирования (ЯП) облегчает человеку понимание и редактирование программ. Этому, также, помогают комментарии, допускаемые синтаксисом большинства языков программирования. Для выполнения программы на компьютере ее готовый исходный текст преобразуется (компилируется или интерпретируется) в машинный код, исполняемый процессором.
Программы с исходными текстами, доступными для прочтения и изменения любым желающим, называются открытыми программами. Любая компьютерная программа является объектом авторского права. Авторы или собственники программ имеют право ограничивать и даже полностью закрывать доступ к их исходным текстам, которые являются интеллектуальной собственностью правообладателей [4].
Некоторые языки программирования (интерпретируемые) позволяют обойтись без предварительной компиляции написанных на них программ, и специальные программы–интерпретаторы переводят такие программы в машинный код уже во время исполнения программы. Этот процесс называется интерпретированием или динамической компиляцией. Он позволяет улучшить переносимость программ между различными программными и аппаратными платформами. Интерпретируемые программы часто называются сценариями или скриптами.
В большинстве распространенных ЯП исходные тексты программ состоят из списков инструкций, описывающих заложенный в программе алгоритм. Такой подход называется императивным. Но применяются и иные методологии программирования. Так, например, в декларативном программировании описываются исходные и требуемые характеристики обрабатываемых данных, а выбор подходящего алгоритма решения описанной задачи поручается специализированной программе–интерпретатору. Применяются также логическое и функциональное программирование [4].
1.2 Характеристика процесса разработки программы
Программное обеспечение (ПО) – компьютерные программы и соответствующая документация. Разрабатывается по частному заказу или для продажи на рынке ПО.
Системотехника (технология создания вычислительных систем) – дисциплина, охватывающая все аспекты создания и модернизации сложных вычислительных систем, где программное обеспечение играет ведущую роль. Сюда можно отнести технологии создания аппаратных средств, создание вычислительных процессов, развертывание всей системы, а также технологию создания непосредственно ПО [8].
Процесс создания ПО – совокупность процессов, приводящих к созданию программного продукта.
Фундаментальные процессы, присущие любому проекту создания ПО:
- Разработка спецификации требований на ПО (Определяют функциональные характеристики системы и обязательны для выполнения).
- Создание программного обеспечения (создание ПО согласно спецификации).
- Аттестация ПО (Созданное ПО должно пройти аттестацию для подтверждения соответствию требованиям заказчика).
- Модернизация ПО (совершенствование ПО согласно измененным требованиям потребителя) [7].
Модель процесса создания ПО – последовательность этапов, необходимых для разработки создаваемого ПО.
Модели процесса разработки ПО:
- Каскадная модель.
- Эволюционная модель.
- Формальное преобразование.
- Сборка программных продуктов из ранее созданных компонентов (модель сборки).
- Итерационная (спиральная) модель [16].
Методы создания ПО представляют собой структурный подход к созданию ПО, который способствует производству ПО эффективным, с экономической точки зрения, способом.
Все методы основаны на использовании моделей системы в качестве спецификации ее структуры:
- Функционально–ориентированные (структурный анализ, JSD, 70–е годы) основаны на определении основных функциональных компонент системы.
- Объектно–ориентированные (Booch, Rumbaugh) используют подходы, основанные на использовании унифицированного языка моделирования UML.
- Computer–Aided Software Engineering – автоматизированная разработка ПО [11].
Базовые процессы создания ПО можно представить в виде следующей последовательности:
- Разработка спецификации.
- Проектирование и реализация.
- Аттестация.
- Эволюция [15].
Жизненный цикл ПО – совокупность процессов, протекающих от момента принятия решения о создании ПО до его полного вывода из эксплуатации.
Каскадная модель (рисунок 2)
Рис. 2 Каскадная модель разработки программного обеспечения
Достоинства:
- документирование каждого этапа.
Недостатки:
- «негибкое» разбиение процесса создания на отдельные этапы.
Применение:
- требования сформулированы достаточно четко;
- повсеместно для разработки небольших систем, входящих в состав крупного проекта [12].
Эволюционная модель (рисунок 3)
Рис. 3 Эволюционная модель разработки программного обеспечения
Прототип – действующий программный модуль, реализующий отдельные функции создаваемого ПО.
Достоинства:
- спецификация разрабатывается постепенно, по мере требования заказчика.
Недостатки:
- многие этапы создания ПО не документированы;
- система часто получается плохо структурированной;
- требуются специальные средства и технологии разработки ПО.
Применение:
- разработка небольших систем (<100 000 строк) или средних (<500 000 строк) с относительно коротким сроком жизни [1].
Формальная разработка
Достоинства:
- точное соответствие программы спецификации;
- отказ от тестирования отдельных модулей;
- тестирование всей системы только после ее сборки;