Процесс создания компьютерных программ
Содержание
Введение
.
Разработка технического задания (ТЗ)
.
Проектирования структуры программ
.
Собственно программирование
.
Тестирование и отладка программ
.
Защита компьютерных программ
Заключение
Список
используемой литературы
Введение
Использование электронно-вычислительной техники
требует наличия соответствующих алгоритмов и компьютерных программ.
Несмотря на наличие в настоящее время богатого
арсенала математических алгоритмов и прикладных программ, нередко возникает
потребность в самостоятельной разработке новых программ. Сам процесс создания
компьютерных программ в свою очередь может быть разбит на последовательные
этапы: разработка технического задания (ТЗ), проектирования структуры программ,
собственно программирование (кодирование алгоритма), тестирование и отладка
программ.
Само ТЗ при этом имеет следующую структуру:
1. название задачи - имя программы
(компьютерного кода), система программирования (язык), требования к аппаратному
обеспечению;
2. описание - содержательная и
математическая постановка задачи, метод дискретизации или обработки входных
данных;
. управление режимами - интерфейс
"пользователь-компьютер";
. входные данные - содержание параметров,
пределы их изменения;
. выходные данные - содержание, объем,
точность и форма представления;
. ошибки - возможный перечень, способы
выявления и защиты;
. тестовые задания - примеры,
предназначенные для тестирования и отладки программного комплекса.
Общая структура компьютерного кода, как правило,
содержит три части: препроцессор (подготовка и проверка исходных данных),
процессор (проведение вычислений) и постпроцессор (отображение результатов.
1. Разработка технического задания (ТЗ)
Техническое задание - исходный документ для
разработки программного продукта, содержащий основные технические требования,
предъявляемые к продукту и исходные данные для разработки.
В ТЗ указываются назначение продукта, область
его применения, целевая аудитория, стадии разработки проектной и программной
документации, её состав, сроки исполнения и т.д., а также особые требования,
обусловленные спецификой программного продукта либо условиями его эксплуатации.
Как правило, ТЗ составляют на основе анализа результатов предварительных
исследований, расчётов и моделирования.
Объем технического задания зависит от сложности
разрабатываемого продукта и может колебаться от одной до сотни страниц. В
Российской Федерации действует ГОСТ 34.602 89 "Техническое задание на
создание автоматизированной системы", который рекомендует такую структуру
ТЗ:
ü общие сведения;
ü назначение и цели создания
(развития) системы;
ü характеристика объектов
автоматизации;
ü требования к системе;
ü состав и содержание работ по
созданию системы;
ü порядок контроля и приемки системы;
ü требования к составу и содержанию
работ по подготовке объекта;
ü автоматизации к вводу системы в
действие;
ü требования к документированию;
ü источники разработки.
Как правило, техническое задание составляется
компанией будущим разработчиком после проведения интервью с заказчиком. В ходе
интервью (одной или ряда встреч), представители разработчика выясняют те
моменты, которые затем найдут отражение в документе. На интервью со стороны
заказчика желательно присутствие всех заинтересованных в создании и всех, кто
будет причастен к его исполнению.
Если в компании-заказчике есть грамотные
IT-специалисты, то их следует привлечь к согласованию ТЗ. Если же ситуация
иная, а речь идет о крупном проекте, бывает целесообразно привлечение
независимого эксперта в качестве консультанта, который оценит качество и
полноту составления технического задания и защитит интересы заказчика.
. Проектирования структуры программ
Проектирование - процесс разработки проекта, то
есть комплекта документации, предназначенной для создания определённого
объекта, его эксплуатации, ремонта и ликвидации, а также для проверки или
воспроизведения промежуточных и конечных решений, на основе которых был
разработан данный объект. Проектирование - длительный процесс и включает этапы
от подготовки технического задания до испытания опытных образцов.
Проектирование, независимо от его содержания,
это составная часть планирования.
Объектом проектирования может быть материальный
предмет, выполнение работы, оказание услуги.
Рис. 1 Стандартная форма организации программ.
Рис. 2 Стандартная форма организации
экономических программ
Программисты часто получали директивное
предписание представлять их программы в форме, показанной на рис. 1; при этом
одна прикладная программа отличается от другой лишь модулями нижнего уровня
(обозначенными на рис. 1 через X, Y, Z)> В других организациях пошли дальше
и решили: "Все наши экономические прикладные программы включают
редактирование (и сортировку) сообщений, или файлов изменений, за которым
следует обновление главного файла и печать одного или нескольких отчетов;
следовательно, наши программы должны оформляться так, чтобы все эти модули были
различимы по формату". Программистам в этих организациях предписывается
оформлять всякую программу в соответствии с общей структурой, представленной на
рис. 1. Как и прежде, прикладные программы отличаются одна от другой только
модулями более низкого уровня (X, Т, Z и т.д.).
Другим организациям, работающим в области
автоматизированной обработки данных, повезло в меньшей степени; не все их
прикладные программы попали в столь узкую категорию. Тем не менее и здесь были
предприняты попытки формализовать проектное описание программ. Это основывалось
на уверенности в том, что большая часть этих программ характеризуется определенным
сходством, хотя и в меньшей степени, чем сходство между почти идентичными
программами типа редактирование - обновление - сортировка - печать, которые
представлены схемой на рис. 2
Если смотреть шире, то можно сказать, что в этих
организациях пытались поощрять у программистов стремление следовать общему
принципу, который называли такими словами, как "магистральное
проектирование", "взрывное проектирование" и т.д.
Методология проектирования, которую мы
предлагаем в этой главе, во многом сходна с этими специальными методологиями,
разработанными в отдельных организациях в связи с их конкретными прикладными
задачами. Основные принципы, на которые опирается нисходящее проектирование,
применимы к любой прикладной задаче; в специальных случаях они могут принимать
форму, отвечающую схемам рис. 1 или 2. Не так важно издать приказ типа
"Все программы, создаваемые в данной организации, должны отвечать формату
редактирование - обновление - сортировка - печать", как понять те
принципы, которые лежат в основе такой канонической формы. Без этих руководящих
принципов программист может проектировать модули нижнего уровня хаотично, в
результате чего вся программа, подобно творению Франкенштейна, являет собой
произвольное объединение разумной структуры верхнего уровня описания и
неорганизованного, плохо спроектированного тела программы. Поскольку большая
часть кодирования приходится на тело программы, важно, чтобы принципы,
положенные в основу схем рис. 1 и 2, могли быть перенесены на более низкие
структурные уровни программ.
Идеи нисходящего проектирования более детально
рассматриваются в следующем разделе. Далее обсуждаются близкие к этим идеям
принципы нисходящего кодирования и нисходящего тестирования. Следует иметь в
виду, что все эти идеи излагаются как принципы или стратегии, однако такие,
которые, как мы надеемся, способны служить инструментами проектирования
программы* Важно осознать, что эти принципы не являются универсальным законом
природы; не следует их считать и десятью заповедями некой новой религии. В действительности
в конкретных ситуациях здравый смысл всегда подскажет те или иные варианты
основных принципов нисходящего проектирования.
3. Собственно программирование
Программирование - в обычном понимании, это
процесс создания компьютерных программ.
Программирование позволяет настроить компьютер
или иное программируемое логическое устройство на те или иные действия. Обычно
программа вводится в компьютер программистами, и первые программы создавались
математиками и логиками, конструировавшими компьютеры. Когда еще не было
средств вывода на экран, программа выдавала результат просто в печатном виде на
принтере. Ввод в компьютер также производился несколько иначе. В любом случае,
со временем стало понятно, что программировать компьютер каждый раз "с
нуля" после каждой его перезагрузки - неразумно. Поэтому начали появляться
средства запоминания программ и данных. Но первые компьютеры были все-таки не
цифровыми, а аналоговыми. Проще говоря, они были сначала механическими, потом
электромеханическими и, уже потом, электронными. (Первые электронные компьютеры
и прочие вычислители работали на электронных лампах.) Конечно это не совсем
компьютер в современном понимании. Программированием также называют настройку
электронных устройств и программно-аппаратных комплексов. Например:
программирование цифровых АТС, программирование бытовых приборов конечным
пользователем, запись информации в ПЗУ. Разработку логической схемы для ПЛИС
тоже называют программированием. В общем понимании, программирование - это
процесс описания функционирования устройства, который может быть выражен либо в
структуре самого устройства, либо в виде набора команд, выполняемых
устройством. Программирование сочетает в себе элементы науки (логики,
математики, информатики, кибернетики), инженерной дисциплины и искусства
(авторской творческой деятельности).
В узком смысле (так называемое кодирование) под
программированием понимается написание инструкций - программ - на конкретном
языке программирования (часто по уже имеющемуся алгоритму - плану, методу решения
поставленной задачи). Соответственно, люди, которые этим занимаются, называются
программистами (на профессиональном жаргоне - кодерами), а те, кто
разрабатывает алгоритмы - алгоритмистами, специалистами предметной области,
математиками.
В более широком смысле под программированием
понимают весь спектр деятельности, связанный с созданием и поддержанием в
рабочем состоянии программ - программного обеспечения ЭВМ. Более точен
современный термин - "программная инженерия" (также иначе "инженерия
ПО"). Сюда входят анализ и постановка задачи, проектирование программы,
построение алгоритмов, разработка структур данных, написание текстов программ,
отладка и тестирование программы (испытания программы), документирование,
настройка (конфигурирование), доработка и сопровождение.
Программирование для ЭВМ основывается на
использовании языков программирования, на которых записывается программа. В
настоящее время для того, чтобы программа могла быть понята и исполнена ЭВМ,
требуется специальный инструмент - транслятор. (Можно, конечно, обойтись и без
транслятора. Но тогда программу придется кодировать непосредственно на языке
машинных команд, а это весьма трудоемкое занятие.) Существуют два вида
трансляторов - компиляторы и интерпретаторы. (Составная часть компилятора,
выполняющая собственно трансляцию программы на языке программирования (например
на С++ или языке ассемблера), также называется транслятором.) В настоящее время
активно используются так называемые интегрированные среды разработки программ,
включающие в свой состав также редактор для ввода и редактирования текстов
программ, отладчики для поиска и устранения ошибок в программах, трансляторы с
различных языков программирования, компоновщики для сборки программы из
нескольких модулей, и другие служебные подпрограммы. Текстовый редактор среды
программирования может иметь специфичную функциональность, такую как индексация
имен, отображение документации, средства визуального создания пользовательского
интерфейса. С помощью текстового редактора программист производит набор и
редактирования текста создаваемой программы, который называют исходным кодом
("исходник" - на профессиональном жаргоне). Язык программирования
определяет синтаксис и изначальную семантику исходного кода, семантика языка
программирования может расширяться текстом программы, дополнительными
библиотеками и программно-аппаратным окружением, в котором выполняется
программа. Компилятор преобразует текст программы в машинный код,
непосредственно исполняемый электронными компонентами компьютера. Интерпретатор
либо явно не преобразует текст программы в машинный код, либо неявно делает
такое преобразование в процессе выполнения программы.
Программирование в широком смысле можно разбить
на несколько стадий:
Анализ,
Проектирование - разработка
комплекса алгоритмов,
Кодирование и компиляцию - написание
исходного текста программы и преобразование его в исполнимый код с помощью
компилятора,
Тестирование и отладку - выявление и
устранение ошибок в программах,
Испытания и сдачу программ,
Сопровождение.
. Тестирование и отладка программ
Для проверки правильности работы программы
выполняется тестирование - исполнение программы с использованием некоторого
набора входных данных, охватывающего весь спектр возможных значений для данного
типа задач и проверяющего граничные условия, а также позволяющего посредством
контроля промежуточных и конечных результатов решения задачи в ходе исполнения
программы проверить выполнение операторов программы в требуемой
последовательности и правильность действия всех алгоритмических конструкций
(ветвлений, циклов, обращений к подпрограммам и т. п.).
Процесс тестирования удостоверяет качество
программы, поэтому он должен быть документирован, т. е. будущие пользователи
должны знать, как и при каких обстоятельствах программа тестировалась, каковы
были входные данные и результаты, с тем чтобы тест можно было повторить. Для
обнаружения и устранения ошибок в программе выполняется ее отладка. Отладка в
интегрированной среде программирования Turbo Pascal заключается в том, что с
помощью встроенного в интегрированную среду специального средства - отладчика -
анализируется поведение программы в "окрестностях" ошибки. С этой
целью в интегрированной среде программирования обеспечивается возможность
трассировки программы, т. е. выполнения "по шагам" с остановкой в
указанных точках или при выполнении заданных условий. Имеется возможность
просмотра и изменения содержимого ячеек памяти и регистров процессора.
. Защита компьютерных программ
Чтобы предотвратить заражение вирусами и атаки
троянских коней, необходимо выполнять некоторые рекомендации.
Не запускайте программы, полученные из Интернета
или в виде вложения в сообщение электронной почты без проверки на наличие в них
вируса.
Необходимо проверять все внешние диски на
наличие вирусов, прежде чем копировать или открывать содержащиеся на них файлы
или выполнять загрузку компьютера с таких дисков.
Необходимо регулярно сканировать жесткие диски в
поисках вирусов. Сканирование обычно выполняется автоматически при каждом
включении ПК и при размещении внешнего диска в считывающем устройстве. При
сканировании антивирусная программа ищет вирус путем сравнения кода программ с
кодами известных ей вирусов, хранящихся в базе данных создавать надежные
пароли, чтобы вирусы не могли легко подобрать пароль и получить разрешения
администратора. Регулярное архивирование файлов позволит минимизировать ущерб
от вирусной атаки.
Основным средством защиты информации - это
резервное копирование ценных данных, которые хранятся на жестких дисках
Существует достаточно много программных средств
антивирусной защиты. Современные антивирусные программы состоят из модулей:
эвристический модуль - для выявления неизвестных
вирусов;
Монитор - программа, которая постоянно находится
в оперативной памяти ПК.
Устройство управления, которое осуществляет
запуск антивирусных программ и обновление вирусной базы данных и компонентов.
Почтовая программа (проверяет электронную
почту).
Программа сканер - проверяет, обнаруживает и
удаляет фиксированный набор известных вирусов в памяти, файлах и системных
областях дисков.
Сетевой экран - защита от хакерских атак.
К наиболее эффективным и популярным антивирусным
программам относятся: Антивирус Касперского 7.0, AVAST, Norton AntiVirus и
многие другие.
Антивирус Касперского 7.0
Программа состоит из следующих компонентов:
Файловый Антивирус - компонент, контролирующий
файловую систему компьютера. Он проверяет все открываемые, запускаемые и
сохраняемые файлы на компьютере.
Почтовый Антивирус - компонент проверки всех
входящих и исходящих почтовых сообщений компьютера.
Веб-Антивирус - компонент, который перехватывает
и блокирует выполнение скрипта, расположенного на веб-сайте, если он
представляет угрозу
Проактивная защита - компонент, который
позволяет обнаружить новую вредоносную программу еще до того, как она успеет
нанести вред. Таким образом, компьютер защищен не только от уже известных
вирусов, но и от новых, еще не исследованных
Антивирус Касперского 7.0 - это классическая
защита компьютера от вирусов, троянских и шпионских программ, а также от любого
другого вредоносного ПО.
Основные функции:
Три степени защиты от известных и новых
интернет-угроз: 1) проверка по базам сигнатур, 2) эвристический анализатор, 3)
поведенческий блокиратор.
Защита от вирусов, троянских программ и червей.
Защита от шпионского (spyware) и рекламного
(adware) ПО.
Проверка файлов, почты и интернет-трафика в
режиме реального времени. программа
компьютерный алгоритм отладка
Защита от вирусов при работе с ICQ и другими
IM-клиентами.
Защита от всех типов клавиатурных шпионов.
Обнаружение всех видов руткитов.
Автоматическое обновление баз.!
Антивирусная программа avast 4.7 (бесплатная
версия) русифицирована и имеет удобный интерфейс, содержит резидентный монитор,
сканер, средства автоматического обновление баз и т.д.
Защита Avast основана на резидентных провайдерах,
которые являются специальными модулями для защиты таких подсистем, как файловая
система, электронная почта и т.д. К резидентным провайдерам Avast! относятся:
Outlook/Exchange, Web-экран, мгновенные сообщения, стандартный экран, сетевой
экран, экран P2P, электронная почта.AntiVirus
Состоит из одного модуля, который постоянно
находится в памяти компьютера и осуществляет такие задачи как мониторинг памяти
и сканирование файлов на диске. Доступ к элементам управления и настройкам
программы выполняется с помощью соответствующих закладок и кнопок.
Автозащита должна быть всегда включенной, чтобы
обеспечить защиту ПК от вирусов. Автозащита работает в фоновом режиме, не
прерывая работу ПК.
Автозащита автоматически:
Обнаруживает и защищает ПК от всех типов вирусов,
включая макро-вирусы, вирусы загрузочных секторов, вирусы резидента памяти и
троянских коней, червей и других вредоносных вирусов.
Защищает компьютер от вирусов, которые
передаются через сеть Интернет, проверяя все файлы, которые загружаются из Интернета.
Заключение
Разработка программы - это не только написание
программы. Написание программы является одним из этапов.
Программирование - трудоемкий и сложный процесс,
постичь который под силу не каждому. Машинный язык состоит из множества
алгоритмов и машинных кодов. И сегодняшние компьютеры являются таким
совершенным оборудованием благодаря тому, что запрограммированы. И не была бы
так успешна история развития программного обеспечения, если бы не был придуман
специальный язык для машин, переводящих символические ключевые слова в машинные
коды.
Первые автокоды появились в 1955 году усилиями
разработчиков компании IBM под руководством инженера Джона Бэкуса. Это был язык
высокого уровня, названный Фортран, не набор разрозненных простых команд, а
организация более крупных кодов, которые стали называться операторами, или же
алгоритмическими языками. Для их перевода на машинный автокод были изобретены
трансляторы, которые преобразуют алгоритмы и делают его понятным для
электронно-вычислительной машины. Происходит это двумя способами:
интерпретационным и компиляционным. Благодаря простоте версии Фортран быстро
входили в употребление, и последняя из них и сегодня является одной из самых
популярных языков программирования ЭВМ.
Список используемой литературы
1.
Ишкова Э. "C++ начала программирования". - М.: Бином, 2001.
.
Лаптева М.П. Электронное пособие к разделу "Информационное
моделирование". - М.: ГАОУ СПО "Мензелинский педагогический
колледж", 2010.
.
Лаптева М.П. Логические основы компьютера. Методическое пособие по информатике.
- М.: ГАОУ СПО "Мензелинский педагогический колледж", 2010.
.
Цехоня В.И. Методическое пособие по курсу "Технология
программирования" (часть 1- 6). Таганрог, 2004.
.
http://fb.ru/article/2908/istoriya-razvitiya-yazyikov-programmirovaniya-kratko-obo-vsem
.
http://www.obuchu.com/index.php?option=com_content&view=article&id=
&Itemid=232