Файл: Основы проектирования компььютерных программ. Этапы создания программного обеспечения.pdf
Добавлен: 31.03.2023
Просмотров: 75
Скачиваний: 2
ВВЕДЕНИЕ
Распространение новых технологий привело к появлению в подавляющем числе российских квартир персональных компьютеров, а иногда их число достигает нескольких в одной семье. Все благодаря высокой функциональности современных электронно–вычислительных машин, которые могут не просто осуществлять расчеты, но выполнять такие задачи, которые под силу только современным технологиям.
Оперативность и функциональность любого вычислительного средства определяются совокупностью его аппаратных характеристик и программного обеспечения. В то время как аппаратное обеспечение в некоторой степени отличается постоянностью в границах одного устройства, то программное обеспечение является достаточно мобильной и динамичной его составляющей. Для того, чтобы компьютер выполнял возложенные на него задачи максимально эффективно, необходимо подбирать программное обеспечение исходя из конкретных целей. И это более чем реализуемо, ведь с каждым днем разнообразие программ только продолжает увеличиваться, а прежние программы модернизируются и улучшаются.
Процесс создания программного обеспечения достаточно сложен и трудоемок, так как результатом должен быть продукт, не только полностью удовлетворяющий требованиям пользователя, но и достаточно функциональный в рамках обозримого будущего. В связи с этим весь процесс проектирования программ разделен на определенные этапы, которые позволяют осуществлять всесторонний контроль и отслеживание процесса разработки программного обеспечения.
Цель исследования – рассмотрение основ проектирования программ и этапы их создания.
Задачи работы:
- охарактеризовать понятие программ;
- привести классификацию программного обеспечения;
- проанализировать процесс создания программного обеспечения;
- рассмотреть этапы создания программного обеспечения.
Объектом исследования выступает процесс создания программного обеспечения, а предметом – этапы этого процесса.
В качестве теоретической базы исследования используются научные труды известных исследователей проектирования программ, а также этапов создания программного обеспечения. В частности, при работе над исследованием использовались работы таких авторов как Голицына О. Л., Зыков С. В., Рудаков А. В. Соколова В. В. и др. Данные авторы на протяжении многих лет осуществляют свою научную деятельность в вопросах создания программного обеспечения, в связи с чем использование результатов их научных изысканий более чем целесообразно в ключе данной работы.
1. Основы проектирования программ
1.1. Программа. Понятие и характеристики
Компьютерная программа – это последовательность инструкций, которая предназначена для исполнения вычислительной машиной. Образ программы, чаще всего, хранится в памяти машины (например, на диске) как исполняемый модуль (один или несколько файлов). Из образа на диске с помощью специального программного загрузчика может быть построена исполняемая программа уже в оперативной памяти машины.
Программа может содержать инструкции, написанные на языках программирования высокого уровня, которые позволяют записать алгоритмы в удобной для понимания человеком форме, приближенной к естественным языкам (исходный код), или последовательность машинных команд (инструкций, «понятных» компьютеру, на котором данная программа должна выполняться) [4].
Термин «компьютерная программа» в зависимости от своего контекста, может применяться также к исходным текстам (или кодам) программы. Их примеры могут быть просмотрены в специальных каталогах исходников. Вместе с правилами и процедурами, а также с документацией по функционированию программных систем обработки данных, компьютерные программы составляют понятие программного обеспечения.
В системном программировании имеет место более формальное определение программы как машинных кодов и данных, загруженных в оперативную память компьютера, и исполняемых процессором машины для достижения поставленной цели. В этом определении подчеркиваются две особенности компьютерной программы: нахождение ее в памяти и исполнение процессором машины.
Процесс создания компьютерной программы называется «программированием», а люди, занимающиеся этим видом деятельности, называются программистами. При разработке компьютерных программ в них довольно часто возникают ошибки. Считается, что в программе содержатся ошибки, если для каких–то данных программа дает неправильные результаты, сбои или отказы. Если программа выдает правильные результаты обработки для всех возможных входных данных, то можно считать, что она не содержит ошибок [9].
Процесс поиска ошибок в программах и их исправления называется отладкой программ. Обычно, заранее неизвестно, сколько ошибок содержит программа. По этой причине заранее неизвестна и продолжительность отладки программ.
Запись исходных текстов компьютерных программ при помощи специальных языков программирования (ЯП) облегчает человеку понимание и редактирование программ. Этому, также, помогают комментарии, допускаемые синтаксисом большинства языков программирования. Для выполнения программы на компьютере ее готовый исходный текст преобразуется (компилируется или интерпретируется) в машинный код, исполняемый процессором [9].
Программы с исходными текстами, доступными для прочтения и изменения любым желающим, называются открытыми программами. Любая компьютерная программа является объектом авторского права. Авторы или собственники программ имеют право ограничивать и даже полностью закрывать доступ к их исходным текстам, которые являются интеллектуальной собственностью правообладателей.
Некоторые языки программирования (интерпретируемые) позволяют обойтись без предварительной компиляции написанных на них программ, и специальные программы–интерпретаторы переводят такие программы в машинный код уже во время исполнения программы. Этот процесс называется интерпретированием или динамической компиляцией. Он позволяет улучшить переносимость программ между различными программными и аппаратными платформами. Интерпретируемые программы часто называются сценариями или скриптами [4].
В большинстве распространенных ЯП исходные тексты программ состоят из списков инструкций, описывающих заложенный в программе алгоритм. Такой подход называется императивным. Но применяются и иные методологии программирования. Так, например, в декларативном программировании описываются исходные и требуемые характеристики обрабатываемых данных, а выбор подходящего алгоритма решения описанной задачи поручается специализированной программе–интерпретатору. Применяются также логическое и функциональное программирование [4].
1.2. Классификация программного обеспечения
Программы, работающие на ПК, можно разделить на три категории:
- Системные программы – программы и программные комплексы, расширяющие возможности базового программного обеспечения (далее – ПО) и организующие более удобную среду работы пользователя, выполняющие различные вспомогательные функции, например, создание копий, выдачу справочной информации, проверку работоспособности, устройств ПК и т.д. К системным программам относятся также:
- программы – драйверы;
- программы – оболочки;
- программы – утилиты;
- программы – упаковщики;
- антивирусные программы;
- программы для диагностики ПК;
- программы управления локальной сетью и т.д.
- Прикладные программы (прикладное обеспечение) – программа, решающая проблему конечного пользователя. Вспомогательные программы, не относящиеся к системному ПО, тоже считаются прикладными. В последнее время употребляют термин «приложение».
- Инструментальные системы (системы программирования) – программные продукты, предназначенные для разработки программного обеспечения. К ним относят системы программирования (MS Visual Studio, Borland C и др) [11].
Драйвер – программа, обеспечивающая связь и управление между ОС и периферийным устройством и регулирующая поток данных, проходящих через это устройство. Его можно считать частью ОС. Разработка драйвера, если он не поставляется с устройством, возможна программистом.
Оболочка – программа (комплекс программ), упрощающая работу пользователя с командами ОС, расширяют набор основных и сервисных функций, обеспечивают более удобный и наглядный способ общения с ПК, например, Norton Commander.
FAR (File and archive) работающая в текстовом режиме программа управления файлами для Windows 95/98/Me/NT/2000/XP, которая обеспечивает обработку файлов с длинными именами. К FAR могут подключаться внешние управляемые модули (plugins), которые могут быть использованы для создания новых команд и поддержки дополнительных файловых систем.
Широко используются оболочки для создания среды программирования (Borland – Паскаль, Си, Пролог). Имеется тенденция объединять системы и их оболочки, например, Windows [11].
Утилита (от лат. utilitas – польза) – служебные программы, предоставляющие пользователю ряд дополнительных услуг (дисковые компрессоры, архиваторы, программы резервного копирования, антивирусные программы и др.). Например:
- утилита дефрагментации диска – предназначена для оптимизации работы диска и повышения скорости доступа к нему, собирает фрагменты файла в один блок;
- программа проверки диска проверяет правильность информации, содержащейся в FAT, NTFS и др. таблицах размещения файлов, осуществляет поиск сбойных блоков диска; программа уплотнения диска предназначена для создания и обслуживания уплотненных (сжатых) дисков;
- программы оптимизации диска изменяют местоположение файлов и каталогов для ускорения доступа к ним.
Программы вспомогательного назначения, часто объединяют в комплексы. Например, Norton Utilites – позволяет форматировать диски, диагностировать состояние системы и ее частей, восстанавливать удаленные файлы и т.д.) [7].
Упаковщик – программа, преобразующая данные из стандартной формы, предназначенной для обработки данных, в форму компактного представления для хранения и передачи по каналам связи. Существует много программ, осуществляющих эту и обратную (распаковка) операции с разными алгоритмами и разными коэффициентами сжатия. Упаковка – самостоятельная операция, но может использоваться и при архивации. Иногда ее называют архивацией или сжатием.
Архиваторы – программы, осуществляющие архивирование данных – упаковку файлов путем сжатия хранимой в них информации. Сжатие информации в файлах производится различными способами за счет устранения избыточности. Степень сжатия зависит от используемой программы, типа сжимаемых данных, метода сжатия и характеризуется коэффициентом Кс, определяемым как отношение объема сжатого файла Vc к объему исходного файла Vо, выраженное в процентах. Наиболее популярные: ZIP, CAB, ARJ, PKPAK, LHA, ICE, разработанные за рубежом, а также AIN и RAR, разработанные в России. Обычно упаковка и распаковка выполняется одной и той же программой. В настоящее время широко используются архиваторы WinRar и WinZip [16].
Базовое ПО – минимальный набор программных средств, обеспечивающих работу компьютера (операционная система, операционные оболочки – текстовые и графические).
Программное обеспечение, которое дает пользователям возможность работать с компьютером и облегчает эту работу. Основной частью системного программного обеспечения является операционная система (ОС).
Операционная система – комплекс программ для управления и координации всех устройств компьютера, управления процессом выполнения прикладных программ и обеспечения диалога с пользователем. ОС обеспечивает управление компьютером как единым целым, его взаимодействие с окружающей средой (человеком, прикладными программами, другими системами). Примеры: MS DOS, MS Windows, Unix / Linux и др. [2]
ОС является главной частью программного обеспечения, управляется командами.
Основные функции ОС
- ведение файловой системы;
- распределение оперативной памяти;
- динамическая компоновка выполняемых программ;
- обработка прерываний;
- обеспечение многозадачной работы [2].
Обзор прикладного программного обеспечения:
- Проблемно–ориентированные пакеты прикладных программ (разделяются по типам предметных областей, информационным системам, функциям и комплексам задач), узко направлены на решение определенных задач.
- Пакеты прикладных программ автоматизированного проектирования (для поддержания работы конструкторов и технологов – разработка чертежей, схем, диаграмм и т.д.).
- Пакеты прикладных программ общего назначения поддерживают информационные технологии конечных пользователей.
- Интегрированные пакеты прикладных программ – совокупность функционально различных программных модулей, способных взаимодействовать между собой путем обмена данными через единый пользовательский интерфейс.
- Офисные пакеты прикладных программ обеспечивают организационное управление деятельностью офиса (органайзеры – для планирования рабочего времени и т.п., программы–переводчики, коммуникационные пакеты прикладных программ – взаимодействие пользователя с удаленными абонентами или информационными ресурсами).
- Издательские системы.
- Программные средства мультимедиа.
- Системы искусственного интеллекта [13].