Средства создания программных продуктов

Автор работы: Пользователь скрыл имя, 18 Февраля 2015 в 10:23, курсовая работа

Краткое описание

Программы, работающие на компьютере, можно разделить на три категории:
прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ: редактирование текстов, рисование картинок, обработка информационных массивов и т. д.;
системные программы, выполняющие различные вспомогательные функции, например создание копии используемой информации, выдачу справочной информации о компьютере, проверку работоспособности устройств компьютера и т. д.;
вспомогательное ПО (инструментальные системы и утилиты)

Содержание

Введение
3
1 Разработка программ для ЭВМ
5
2 Средства, используемые для создания программ
16
Заключение
27
Глоссарий
29
Список использованных источников

Прикрепленные файлы: 1 файл

Программировапние 55.doc

— 297.50 Кб (Скачать документ)

Весь вышеуказанный комплекс проблем необходимо решать при создании современного алгоритма анализа рисков.

Анализ информационных рисков является, безусловно, труднейшей практической задачей. Подходы к ее реализации могут быть самыми разными: от достаточно простых, но удобных и мощных «риск калькуляторов» (RiskWatch) до очень сложных в работе систем (CRAMM). Метод CRAMM, также как и RiskWatch, оперирует с конкретными видами угроз, но идет дальше, выстраивая сложную модель информационной системы. Метод ГРИФ, где применяется метод классических видов угроз безопасности, основывается на целом комплексе параметров, которые определяются, прежде всего, защищенностью исследуемого объекта. Анализируются как технологические аспекты защищенности (включая учет требований стандартов Good Practice, ISO 15408 и др. и таких важных с точки зрения реального проникновения моментов, как нахождение в одном сегменте, действия хакера через наименее защищенный объект взаимодействия и т. д.), так и вопросы комплексной безопасности, согласно ISO 17799 (организация, управление, администрирование, физ. безопасность и т. д.). При этом подход ГРИФ обладает универсальностью, гибкостью и удобством для пользователя.

Какой подход из вышеизложенных наиболее адекватно отражает существующую проблематику анализа ИТ-рисков? Какой подход выбрать пользователю? Все алгоритмы по-разному, но совершенно адекватно решают поставленную задачу в рамках, которые предусмотрел их разработчик. Но мне кажется, что вопрос алгоритма представляет скорее научный интерес, так как на практике пользователь выбирает не алгоритм, а непосредственно продукт.

 

2 Средства, используемые для создания программ

Для создания программ или программных продуктов используются аппаратное и программное обеспечение.

Под аппаратным обеспечением понимают обычно все узлы, модули и блоки, составляющие компьютер или компьютерную систему. В современных компьютерах используется так называемая «открытая архитектура», т.е. состав аппаратного обеспечения компьютера можно изменить, поменяв один из модулей, или расширить, вставив дополнительный модуль.

Аппаратное обеспечение современных ПК включает в себя следующее:

  • системный блок,
  • устройства ввода информации в ПК (например, клавиатура),
  • устройства вывода информации из ПК (например, монитор).

На свойства операционной системы непосредственное влияние оказывают аппаратные средства, на которые она ориентирована. По типу аппаратуры различают операционные системы персональных компьютеров, мини-компьютеров, мейнфреймов, кластеров и сетей ЭВМ. Среди перечисленных типов компьютеров могут встречаться как однопроцессорные варианты, так и многопроцессорные. В любом случае специфика аппаратных средств, как правило, отражается на специфике операционных систем.

Очевидно, что ОС большой машины является более сложной и функциональной, чем ОС персонального компьютера. Так в ОС больших машин функции по планированию потока выполняемых задач, очевидно, реализуются путем использования сложных приоритетных дисциплин и требуют большей вычислительной мощности, чем в ОС персональных компьютеров. Аналогично обстоит дело и с другими функциями.

Сетевая ОС имеет в своем составе средства передачи сообщений между компьютерами по линиям связи, которые совершенно не нужны в автономной ОС. На основе этих сообщений сетевая ОС поддерживает разделение ресурсов компьютера между удаленными пользователями, подключенными к сети. Для поддержания функций передачи сообщений сетевые ОС содержат специальные программные компоненты, реализующие популярные коммуникационные протоколы, такие как IP, IPX, Ethernet и другие.

Многопроцессорные системы требуют от операционной системы особой организации, с помощью которой сама операционная система, а также поддерживаемые ею приложения могли бы выполняться параллельно отдельными процессорами системы. Параллельная работа отдельных частей ОС создает дополнительные проблемы для разработчиков ОС, так как в этом случае гораздо сложнее обеспечить согласованный доступ отдельных процессов к общим системным таблицам, исключить эффект гонок и прочие нежелательные последствия асинхронного выполнения работ.

Другие требования предъявляются к операционным системам кластеров. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Наряду со специальной аппаратурой для функционирования кластерных систем необходима и программная поддержка со стороны операционной системы, которая сводится в основном к синхронизации доступа к разделяемым ресурсам, обнаружению отказов и динамической реконфигурации системы. Одной из первых разработок в области кластерных технологий были решения компании Digital Equipment на базе компьютеров VAX. Недавно этой компанией заключено соглашение с корпорацией Microsoft о разработке кластерной технологии, использующей Windows NT. Несколько компаний предлагают кластеры на основе UNIX-машин.

Наряду с ОС, ориентированными на совершенно определенный тип аппаратной платформы, существуют операционные системы, специально разработанные таким образом, чтобы они могли быть легко перенесены с компьютера одного типа на компьютер другого типа, так называемые мобильные ОС. Наиболее ярким примером такой ОС является популярная система UNIX. В этих системах аппаратно-зависимые места тщательно локализованы, так что при переносе системы на новую платформу переписываются только они. Средством, облегчающем перенос остальной части ОС, является написание ее на машинно-независимом языке, например, на С, который и был разработан для программирования операционных систем.

 Системный блок, клавиатура и монитор вместе составляют персональный компьютер в минимальной конфигурации, т.е. позволяют работать с информацией на компьютере.

О программном обеспечении, позволяющем создавать программные продукты (фактически те же программы), пойдет речь ниже.

Язык программирования – инструмент для разработки программы. Виды и классификация языков программирования

Языком программирования называют способ записи алгоритмов (решений различных задач) на языке, понятном для ЭВМ.

Процессор компьютера может обрабатывать информацию, представленную лишь в виде машинных кодов (двоичных). Запись команд непосредственно на языке, понятном процессору, довольно утомительна. Такие программы создавались программистами лишь для первых ламповых ЭВМ.

В 1950-х годах появились первые языки, называемые Автокодами, а позднее они стали называться Ассемблеры. Здесь переменные величины стали обозначаться символами, а команды зарезервированными наборами символов. Таким образом, процесс программирования стал более понятен для человека. Такое представление работы с данными было реализовано с помощью специального переводчика – транслятора – программы, переводящей текст создаваемой человеком программы в машинные команды.

Языки типа Ассемблеров (языки низкого уровня) являются машинно-ориентированными, т. е. для каждого типа процессора существует свой язык-Ассемблер.

Создание языка программирования заключается в создании программы-транслятора этого языка в машинные коды.

Различают 2 типа трансляции:

1. компиляция заключается в полном  предварительном переводе всего  набранного пользователем текста программы в программу машинных кодов, причем последняя сохраняется в памяти, откуда и происходит ее выполнение; такая программа-компилятор загружается в память только перед исполнением компиляции;

2. интерпретация заключается в  последовательном чтении транслятором очередной команды, переводе ее в машинный код и последующем ее выполнении, при этом результаты предыдущих переводов в памяти не сохраняются; программа-интерпретатор постоянно находится в оперативной памяти компьютера.

Следует отметить, что откомпилированная пользовательская программа выполняется быстрее, чем интерпретированная. Поэтому такие языки программирования высокого уровня, как Turbo Pascal, Фортран, Си, используют компиляцию при реализации программ.

Каждый язык программирования характеризуется элементами:

1) Алфавит – набор символов, разрешенных к использованию  и воспринимаемых компилятором. С помощью этих символов строятся команды, переменные, операции.

2) Синтаксис – правила записи  команд и операций.

3) Семантика – смысловое содержание и способы построения конструкций языка.

Алгоритмические языки представляют собой средства описания данных и алгоритмов решения задач, они разработаны для составления программы пользователем. В настоящее время разработано большое количество языков программирования. Они отличаются друг от друга различными свойствами и областью применения.

Класс машинно-зависимых языков представлен ассемблером. Язык ассемблера делает доступными все программно-управляемые компоненты компьютера, поэтому он применяется для написания программ, использующих специфику конкретной аппаратуры. Ассемблер – это наиболее трудоемкий язык программирования, и из-за его низкого уровня не удается построить средства отладки, которые существенно снизили бы трудоемкость разработки программ. Программирование на ассемблере требует от программиста детальных знаний технических компонент персонального компьютера. Ассемблер используется в основном для системного программирования.

К классу машинно-ориентированных языков можно отнести языки группы С, С++, Турбо С. Эти языки являются результатом попытки объединить возможности ассемблера со встроенными структурами данных.

Класс универсальных языков программирования представлен наиболее широко: Бейсик, Фортран, Паскаль и др.

Исторически одним из самых распространенных языков стал Бейсик. Он прост в освоении и использовании. Написать на этом языке программу в 20-30 строк и получить результат можно за несколько минут. Для различных типов ПК разработаны различные версии языка Бейсик.

Паскаль является одним из самых распространенных, хотя он и создавался как учебный. Использование в структуре языка специального кода позволило в 4-5 раз уменьшить длину текста программы и в 4-5 раз увеличить быстродействие программы. Версия Паскаля для ПК – Турбо-Паскаль – характеризуется такими важными особенностями, как полноэкранное редактирование и управление, графика, звуковое сопровождение и развитые связи с DOS. Система программирования на Турбо-Паскале является резидентной программой. Это позволяет пользователю вводить тексты программ и немедленно их выполнять, не тратя времени на компилирование.

Язык Кобол был разработан специально для решения экономических задач. Он дает возможность составлять наиболее удобочитаемые программы, которые понятны и непрограммисту. В обработке данных сложной структуры Кобол бывает эффективнее Паскаля.

Фирмой IBM в развитие идей Фортрана, Алгола и Кобола был предложен язык PL/1, который получил наибольшее распространение на больших машинах. PL/1 разрабатывался как универсальный язык программирования, поэтому он располагает большим набором средств обработки цифровой и текстовой информации. Однако эти достоинства делают его весьма сложным для обучения и использования.

Класс проблемно-ориентированных языков программирования представлен языками Лого, РПГ и системой программирования GPSS. Язык Лого был создан с целью обучения школьников основам алгоритмического мышления и программирования. Лого – диалоговый процедурный язык, реализованный на основе интерпретатора с возможностью работы со списками и на их основе с текстами, оснащенными развитыми графическими средствами, которые доступны для детского восприятия. Этот язык реализован в большинстве ПК, применяемых в школах.

РПГ, или генератор отчетов, представляет собой язык, включающий многие понятия и выражения, которые связаны с машинными методами составления отчетов и проектирования форм выходных документов. Язык используется главным образом для печати отчетов, записанных в одном или нескольких файлах баз данных.

Система программирования GPSS ориентирована на моделирование систем с помощью событий. В терминах этого языка легко описывается и исследуется класс моделей массового обслуживания и другие системы, работающие в реальном масштабе времени.

В настоящее время сложилось довольно много классификаций языков программирования. Далее мы приведем самые известные из них.

Классификация по поддерживаемым методологиям

Классификация языков по поддерживаемым методологиям появилась примерно в 80-х годах XX века. Мы выделили следующие основные группы языков:

  • языки императивного программирования (см. разд. 2.2.1) и две важнейшие подгруппы:
    • языки структурного императивного программирования (см. разд. 2.3.1). Эти языки более известны под кратким именем - языки структурного программирования;
    • языки императивного параллельного программирования (см. разд. 2.4.1). Эти языки также обычно называют кратко - языки параллельного программирования;
  • языки объектно-ориентированного программирования (см. разд. 2.2.2);
  • языки функционального программирования (см. разд. 2.2.3);
  • языки логического программирования (см. разд. 2.2.4);
  • языки программирования в ограничениях (см. разд. 2.2.5).

Классификация по принадлежности к семействам

Основная задача классификации языков по принадлежности к семействам - проследить их родственные взаимосвязи (фактически, построить генеалогическое дерево) с целью выяснения их влияния друг на друга и, следовательно, на характеристики и свойства языков. Это нечеткая классификация, которая может вызвать спорное отношение к ней. Выделим девять основных семейств.

Информация о работе Средства создания программных продуктов