Процесс создания компьютерных программ
Рассмотрение основ разработки технического задания. Проектирования структуры программ; описание соответственного алгоритма. Собственно программирование. Тестирование и отладка компьютерных программ. Ознакомление с основными правилами защиты проекта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 15.11.2014 |
Размер файла | 157,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Введение
1. Разработка технического задания (ТЗ)
2. Проектирования структуры программ
3. Собственно программирование
4. Тестирование и отладка программ
5. Защита компьютерных программ
Заключение
Список используемой литературы
Введение
Использование электронно-вычислительной техники требует наличия соответствующих алгоритмов и компьютерных программ.
Несмотря на наличие в настоящее время богатого арсенала математических алгоритмов и прикладных программ, нередко возникает потребность в самостоятельной разработке новых программ. Сам процесс создания компьютерных программ в свою очередь может быть разбит на последовательные этапы: разработка технического задания (ТЗ), проектирования структуры программ, собственно программирование (кодирование алгоритма), тестирование и отладка программ.
Само ТЗ при этом имеет следующую структуру:
1. название задачи - имя программы (компьютерного кода), система программирования (язык), требования к аппаратному обеспечению;
2. описание - содержательная и математическая постановка задачи, метод дискретизации или обработки входных данных;
3. управление режимами - интерфейс "пользователь-компьютер";
4. входные данные - содержание параметров, пределы их изменения;
5. выходные данные - содержание, объем, точность и форма представления;
6. ошибки - возможный перечень, способы выявления и защиты;
7. тестовые задания - примеры, предназначенные для тестирования и отладки программного комплекса.
Общая структура компьютерного кода, как правило, содержит три части: препроцессор (подготовка и проверка исходных данных), процессор (проведение вычислений) и постпроцессор (отображение результатов.
1. Разработка технического задания (ТЗ)
Техническое задание -- исходный документ для разработки программного продукта, содержащий основные технические требования, предъявляемые к продукту и исходные данные для разработки.
В ТЗ указываются назначение продукта, область его применения, целевая аудитория, стадии разработки проектной и программной документации, её состав, сроки исполнения и т.д., а также особые требования, обусловленные спецификой программного продукта либо условиями его эксплуатации. Как правило, ТЗ составляют на основе анализа результатов предварительных исследований, расчётов и моделирования.
Объем технического задания зависит от сложности разрабатываемого продукта и может колебаться от одной до сотни страниц. В Российской Федерации действует ГОСТ 34.602 89 "Техническое задание на создание автоматизированной системы", который рекомендует такую структуру ТЗ:
ь общие сведения;
ь назначение и цели создания (развития) системы;
ь характеристика объектов автоматизации;
ь требования к системе;
ь состав и содержание работ по созданию системы;
ь порядок контроля и приемки системы;
ь требования к составу и содержанию работ по подготовке объекта;
ь автоматизации к вводу системы в действие;
ь требования к документированию;
ь источники разработки.
Как правило, техническое задание составляется компанией будущим разработчиком после проведения интервью с заказчиком. В ходе интервью (одной или ряда встреч), представители разработчика выясняют те моменты, которые затем найдут отражение в документе. На интервью со стороны заказчика желательно присутствие всех заинтересованных в создании и всех, кто будет причастен к его исполнению.
Если в компании-заказчике есть грамотные IT-специалисты, то их следует привлечь к согласованию ТЗ. Если же ситуация иная, а речь идет о крупном проекте, бывает целесообразно привлечение независимого эксперта в качестве консультанта, который оценит качество и полноту составления технического задания и защитит интересы заказчика.
2. Проектирования структуры программ
Проектирование -- процесс разработки проекта, то есть комплекта документации, предназначенной для создания определённого объекта, его эксплуатации, ремонта и ликвидации, а также для проверки или воспроизведения промежуточных и конечных решений, на основе которых был разработан данный объект. Проектирование -- длительный процесс и включает этапы от подготовки технического задания до испытания опытных образцов.
Проектирование, независимо от его содержания, это составная часть планирования.
Объектом проектирования может быть материальный предмет, выполнение работы, оказание услуги.
Рис. 1 Стандартная форма организации программ.
Рис. 2 Стандартная форма организации экономических программ
Программисты часто получали директивное предписание представлять их программы в форме, показанной на рис. 1; при этом одна прикладная программа отличается от другой лишь модулями нижнего уровня (обозначенными на рис. 1 через X, Y, Z)> В других организациях пошли дальше и решили: "Все наши экономические прикладные программы включают редактирование (и сортировку) сообщений, или файлов изменений, за которым следует обновление главного файла и печать одного или нескольких отчетов; следовательно, наши программы должны оформляться так, чтобы все эти модули были различимы по формату". Программистам в этих организациях предписывается оформлять всякую программу в соответствии с общей структурой, представленной на рис. 1. Как и прежде, прикладные программы отличаются одна от другой только модулями более низкого уровня (X, Т, Z и т.д.).
Другим организациям, работающим в области автоматизированной обработки данных, повезло в меньшей степени; не все их прикладные программы попали в столь узкую категорию. Тем не менее и здесь были предприняты попытки формализовать проектное описание программ. Это основывалось на уверенности в том, что большая часть этих программ характеризуется определенным сходством, хотя и в меньшей степени, чем сходство между почти идентичными программами типа редактирование -- обновление -- сортировка -- печать, которые представлены схемой на рис. 2
Если смотреть шире, то можно сказать, что в этих организациях пытались поощрять у программистов стремление следовать общему принципу, который называли такими словами, как "магистральное проектирование", "взрывное проектирование" и т.д.
Методология проектирования, которую мы предлагаем в этой главе, во многом сходна с этими специальными методологиями, разработанными в отдельных организациях в связи с их конкретными прикладными задачами. Основные принципы, на которые опирается нисходящее проектирование, применимы к любой прикладной задаче; в специальных случаях они могут принимать форму, отвечающую схемам рис. 1 или 2. Не так важно издать приказ типа "Все программы, создаваемые в данной организации, должны отвечать формату редактирование -- обновление -- сортировка -- печать", как понять те принципы, которые лежат в основе такой канонической формы. Без этих руководящих принципов программист может проектировать модули нижнего уровня хаотично, в результате чего вся программа, подобно творению Франкенштейна, являет собой произвольное объединение разумной структуры верхнего уровня описания и неорганизованного, плохо спроектированного тела программы. Поскольку большая часть кодирования приходится на тело программы, важно, чтобы принципы, положенные в основу схем рис. 1 и 2, могли быть перенесены на более низкие структурные уровни программ.
Идеи нисходящего проектирования более детально рассматриваются в следующем разделе. Далее обсуждаются близкие к этим идеям принципы нисходящего кодирования и нисходящего тестирования. Следует иметь в виду, что все эти идеи излагаются как принципы или стратегии, однако такие, которые, как мы надеемся, способны служить инструментами проектирования программы* Важно осознать, что эти принципы не являются универсальным законом природы; не следует их считать и десятью заповедями некой новой религии. В действительности в конкретных ситуациях здравый смысл всегда подскажет те или иные варианты основных принципов нисходящего проектирования.
3. Собственно программирование
Программирование -- в обычном понимании, это процесс создания компьютерных программ.
Программирование позволяет настроить компьютер или иное программируемое логическое устройство на те или иные действия. Обычно программа вводится в компьютер программистами, и первые программы создавались математиками и логиками, конструировавшими компьютеры. Когда еще не было средств вывода на экран, программа выдавала результат просто в печатном виде на принтере. Ввод в компьютер также производился несколько иначе. В любом случае, со временем стало понятно, что программировать компьютер каждый раз "с нуля" после каждой его перезагрузки -- неразумно. Поэтому начали появляться средства запоминания программ и данных. Но первые компьютеры были все-таки не цифровыми, а аналоговыми. Проще говоря, они были сначала механическими, потом электромеханическими и, уже потом, электронными. (Первые электронные компьютеры и прочие вычислители работали на электронных лампах.) Конечно это не совсем компьютер в современном понимании. Программированием также называют настройку электронных устройств и программно-аппаратных комплексов. Например: программирование цифровых АТС, программирование бытовых приборов конечным пользователем, запись информации в ПЗУ. Разработку логической схемы для ПЛИС тоже называют программированием. В общем понимании, программирование -- это процесс описания функционирования устройства, который может быть выражен либо в структуре самого устройства, либо в виде набора команд, выполняемых устройством. Программирование сочетает в себе элементы науки (логики, математики, информатики, кибернетики), инженерной дисциплины и искусства (авторской творческой деятельности).
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций -- программ -- на конкретном языке программирования (часто по уже имеющемуся алгоритму -- плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне -- кодерами), а те, кто разрабатывает алгоритмы -- алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ -- программного обеспечения ЭВМ. Более точен современный термин -- "программная инженерия" (также иначе "инженерия ПО"). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.
Программирование для ЭВМ основывается на использовании языков программирования, на которых записывается программа. В настоящее время для того, чтобы программа могла быть понята и исполнена ЭВМ, требуется специальный инструмент -- транслятор. (Можно, конечно, обойтись и без транслятора. Но тогда программу придется кодировать непосредственно на языке машинных команд, а это весьма трудоемкое занятие.) Существуют два вида трансляторов -- компиляторы и интерпретаторы. (Составная часть компилятора, выполняющая собственно трансляцию программы на языке программирования (например на С++ или языке ассемблера), также называется транслятором.) В настоящее время активно используются так называемые интегрированные среды разработки программ, включающие в свой состав также редактор для ввода и редактирования текстов программ, отладчики для поиска и устранения ошибок в программах, трансляторы с различных языков программирования, компоновщики для сборки программы из нескольких модулей, и другие служебные подпрограммы. Текстовый редактор среды программирования может иметь специфичную функциональность, такую как индексация имен, отображение документации, средства визуального создания пользовательского интерфейса. С помощью текстового редактора программист производит набор и редактирования текста создаваемой программы, который называют исходным кодом ("исходник" -- на профессиональном жаргоне). Язык программирования определяет синтаксис и изначальную семантику исходного кода, семантика языка программирования может расширяться текстом программы, дополнительными библиотеками и программно-аппаратным окружением, в котором выполняется программа. Компилятор преобразует текст программы в машинный код, непосредственно исполняемый электронными компонентами компьютера. Интерпретатор либо явно не преобразует текст программы в машинный код, либо неявно делает такое преобразование в процессе выполнения программы.
Программирование в широком смысле можно разбить на несколько стадий:
Анализ,
Проектирование -- разработка комплекса алгоритмов,
Кодирование и компиляцию -- написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора,
Тестирование и отладку -- выявление и устранение ошибок в программах,
Испытания и сдачу программ,
Сопровождение.
4. Тестирование и отладка программ
Для проверки правильности работы программы выполняется тестирование - исполнение программы с использованием некоторого набора входных данных, охватывающего весь спектр возможных значений для данного типа задач и проверяющего граничные условия, а также позволяющего посредством контроля промежуточных и конечных результатов решения задачи в ходе исполнения программы проверить выполнение операторов программы в требуемой последовательности и правильность действия всех алгоритмических конструкций (ветвлений, циклов, обращений к подпрограммам и т. п.).
Процесс тестирования удостоверяет качество программы, поэтому он должен быть документирован, т. е. будущие пользователи должны знать, как и при каких обстоятельствах программа тестировалась, каковы были входные данные и результаты, с тем чтобы тест можно было повторить. Для обнаружения и устранения ошибок в программе выполняется ее отладка. Отладка в интегрированной среде программирования Turbo Pascal заключается в том, что с помощью встроенного в интегрированную среду специального средства - отладчика - анализируется поведение программы в "окрестностях" ошибки. С этой целью в интегрированной среде программирования обеспечивается возможность трассировки программы, т. е. выполнения "по шагам" с остановкой в указанных точках или при выполнении заданных условий. Имеется возможность просмотра и изменения содержимого ячеек памяти и регистров процессора.
5. Защита компьютерных программ
Чтобы предотвратить заражение вирусами и атаки троянских коней, необходимо выполнять некоторые рекомендации.
Не запускайте программы, полученные из Интернета или в виде вложения в сообщение электронной почты без проверки на наличие в них вируса.
Необходимо проверять все внешние диски на наличие вирусов, прежде чем копировать или открывать содержащиеся на них файлы или выполнять загрузку компьютера с таких дисков.
Необходимо установить антивирусную программу и регулярно пользоваться ею для проверки компьютеров. Оперативно пополняйте базу данных антивирусной программы набором файлов сигнатур вирусов, как только появляются новые сигнатуры.
Необходимо регулярно сканировать жесткие диски в поисках вирусов. Сканирование обычно выполняется автоматически при каждом включении ПК и при размещении внешнего диска в считывающем устройстве. При сканировании антивирусная программа ищет вирус путем сравнения кода программ с кодами известных ей вирусов, хранящихся в базе данных создавать надежные пароли, чтобы вирусы не могли легко подобрать пароль и получить разрешения администратора. Регулярное архивирование файлов позволит минимизировать ущерб от вирусной атаки.
Основным средством защиты информации - это резервное копирование ценных данных, которые хранятся на жестких дисках
Существует достаточно много программных средств антивирусной защиты. Современные антивирусные программы состоят из модулей:
эвристический модуль - для выявления неизвестных вирусов;
Монитор - программа, которая постоянно находится в оперативной памяти ПК.
Устройство управления, которое осуществляет запуск антивирусных программ и обновление вирусной базы данных и компонентов.
Почтовая программа (проверяет электронную почту).
Программа сканер - проверяет, обнаруживает и удаляет фиксированный набор известных вирусов в памяти, файлах и системных областях дисков.
Сетевой экран - защита от хакерских атак.
К наиболее эффективным и популярным антивирусным программам относятся: Антивирус Касперского 7.0, AVAST, Norton AntiVirus и многие другие.
Антивирус Касперского 7.0
Программа состоит из следующих компонентов:
Файловый Антивирус - компонент, контролирующий файловую систему компьютера. Он проверяет все открываемые, запускаемые и сохраняемые файлы на компьютере.
Почтовый Антивирус - компонент проверки всех входящих и исходящих почтовых сообщений компьютера.
Веб-Антивирус - компонент, который перехватывает и блокирует выполнение скрипта, расположенного на веб-сайте, если он представляет угрозу
Проактивная защита - компонент, который позволяет обнаружить новую вредоносную программу еще до того, как она успеет нанести вред. Таким образом, компьютер защищен не только от уже известных вирусов, но и от новых, еще не исследованных
Антивирус Касперского 7.0 - это классическая защита компьютера от вирусов, троянских и шпионских программ, а также от любого другого вредоносного ПО.
Основные функции:
Три степени защиты от известных и новых интернет-угроз: 1) проверка по базам сигнатур, 2) эвристический анализатор, 3) поведенческий блокиратор.
Защита от вирусов, троянских программ и червей.
Защита от шпионского (spyware) и рекламного (adware) ПО.
Проверка файлов, почты и интернет-трафика в режиме реального времени. программа компьютерный алгоритм отладка
Защита от вирусов при работе с ICQ и другими IM-клиентами.
Защита от всех типов клавиатурных шпионов.
Обнаружение всех видов руткитов.
Автоматическое обновление баз.
AVAST!
Антивирусная программа avast 4.7 (бесплатная версия) русифицирована и имеет удобный интерфейс, содержит резидентный монитор, сканер, средства автоматического обновление баз и т.д.
Защита Avast основана на резидентных провайдерах, которые являются специальными модулями для защиты таких подсистем, как файловая система, электронная почта и т.д. К резидентным провайдерам Avast! относятся: Outlook/Exchange, Web-экран, мгновенные сообщения, стандартный экран, сетевой экран, экран P2P, электронная почта.
Norton AntiVirus
Состоит из одного модуля, который постоянно находится в памяти компьютера и осуществляет такие задачи как мониторинг памяти и сканирование файлов на диске. Доступ к элементам управления и настройкам программы выполняется с помощью соответствующих закладок и кнопок.
Автозащита должна быть всегда включенной, чтобы обеспечить защиту ПК от вирусов. Автозащита работает в фоновом режиме, не прерывая работу ПК.
Автозащита автоматически:
Обнаруживает и защищает ПК от всех типов вирусов, включая макро-вирусы, вирусы загрузочных секторов, вирусы резидента памяти и троянских коней, червей и других вредоносных вирусов.
Защищает компьютер от вирусов, которые передаются через сеть Интернет, проверяя все файлы, которые загружаются из Интернета.
Заключение
Разработка программы - это не только написание программы. Написание программы является одним из этапов.
Программирование - трудоемкий и сложный процесс, постичь который под силу не каждому. Машинный язык состоит из множества алгоритмов и машинных кодов. И сегодняшние компьютеры являются таким совершенным оборудованием благодаря тому, что запрограммированы. И не была бы так успешна история развития программного обеспечения, если бы не был придуман специальный язык для машин, переводящих символические ключевые слова в машинные коды.
Первые автокоды появились в 1955 году усилиями разработчиков компании IBM под руководством инженера Джона Бэкуса. Это был язык высокого уровня, названный Фортран, не набор разрозненных простых команд, а организация более крупных кодов, которые стали называться операторами, или же алгоритмическими языками. Для их перевода на машинный автокод были изобретены трансляторы, которые преобразуют алгоритмы и делают его понятным для электронно-вычислительной машины. Происходит это двумя способами: интерпретационным и компиляционным. Благодаря простоте версии Фортран быстро входили в употребление, и последняя из них и сегодня является одной из самых популярных языков программирования ЭВМ.
Список используемой литературы
1. Ишкова Э. "C++ начала программирования". - М.: Бином, 2001.
2. Лаптева М.П. Электронное пособие к разделу "Информационное моделирование". - М.: ГАОУ СПО "Мензелинский педагогический колледж", 2010.
3. Лаптева М.П. Логические основы компьютера. Методическое пособие по информатике. - М.: ГАОУ СПО "Мензелинский педагогический колледж", 2010.
4. Цехоня В.И. Методическое пособие по курсу "Технология программирования" (часть 1- 6). Таганрог, 2004.
5. http://fb.ru/article/2908/istoriya-razvitiya-yazyikov-programmirovaniya-kratko-obo-vsem
6. http://www.obuchu.com/index.php?option=com_content&view=article&id=
244&Itemid=232
Размещено на Allbest.ru
Подобные документы
Изучение составляющих этапов разработки программ, процесса их тестирования, отладки и документирования в контексте курса обучения начинающих программистов. Теоретический анализ постановки задачи и модели программы, создания текста, семантической отладки.
курсовая работа [29,2 K], добавлен 28.11.2010Первый прототип вируса. Идея создания самовоспроизводящихся программ. Разработка вирусоподобных программ. Основные признаки проявления вирусов. Классификация компьютерных вирусов. Рынок антивирусных программ. Основные виды антивирусных программ.
презентация [1,8 M], добавлен 25.10.2012История появления компьютерных вирусов как разновидности программ, особенностью которых является саморепликация. Классификация компьютерных вирусов, пути их распространения. Меры предосторожности от заражения компьютера. Сравнение антивирусных программ.
курсовая работа [2,8 M], добавлен 06.08.2013Понятие и классификация компьютерных вирусов. Методы защиты от вредоносных программ, их разновидности. Признаки заражения компьютера вирусом. Проблема защиты информации. Работа с приложениями пакета MS Office. Анализ файловых вирусов, хакерских утилит.
курсовая работа [2,9 M], добавлен 12.01.2015Что такое компьютерные вирусы. Цикл функционирования вирусов. "Вакцинация" программ. Заголовок исполняемых файлов. Защита вновь создаваемых программ. Модуль F_Anti. Защита существующих ехе-файлов. Описание программ SetFag.pas и Fag.asm.
реферат [38,2 K], добавлен 19.03.2004Различные способы обработки информации и программирование в среде Pascal. История создания языка. Блок схема с использованием заголовка функций задания. Описание подпрограмм. Сущность структурного программирования в аспекте написания алгоритмов программ.
курсовая работа [331,9 K], добавлен 18.01.2016Рассмотрение применения компьютерных программ в прогнозировании. Определение прогнозного объема перевозок грузов на основе среднего темпа роста и экстраполяции тренда. Расчет статистических критериев. Построение доверительного интервала прогноза.
курсовая работа [381,1 K], добавлен 13.01.2015Особенности и принципы безопасности программного обеспечения. Причины создания вирусов для заражения компьютерных программ. Общая характеристика компьютерных вирусов и средств нейтрализации их. Классификация методов защиты от компьютерных вирусов.
реферат [21,7 K], добавлен 08.05.2012Средства интегрированной среды Microsoft Visual Studio, предоставляемые программисту для реализации программ на языке С++. Особенности стиля написания программ. Типовые приемы и методы создания и отладки программ. Листинги программ и их тестирование.
лабораторная работа [814,3 K], добавлен 26.05.2013Модели параллельного программирования; отладка параллельных программ. Реализация экспериментальной версии системы сравнительной отладки Fortran-OpenMP программ: получение, сбор и запись трассы, инструментарий программ, используемый формат файлов трассы.
дипломная работа [92,8 K], добавлен 17.10.2013