- 3. Средства создания программ
- 4. Архитектура программных систем
- Средства для создания приложений. Классификация языков программирования.
- Жизненный цикл по. Процесс реализации программных средств.
- Средства создания программ
- Основные системы программирования
- Основные этапы развития языков программирования
- Основы алгоритмизации
3. Средства создания программ
Для создания программы на выбранном языке программирования необходимо иметь следующие средства 15 .
- Текстовый редактор. Используется для создания исходного текста программы. Специальные текстовые редакторы созданы для всех популярных языков программирования.
- Программа-компилятор. Обеспечивает перевод исходного текста в модули машинного кода. В результате компилирования создается так называемыйобъектный код, который требует дальнейшей обработки.
- Редактор связей или сборщик связывает объектные модули машинного кода и стандартные библиотечные функции. В результате сборки на выходе формируется исполнимый код, который предназначен для загрузки на конкретный компьютер. Файл исполнимого кода имеет расширение exe.
- Библиотеки стандартных функций содержат разработанные ранее программные модули для расчета значений известных функций.
4. Архитектура программных систем
- Автономные приложения. Эта группа представляет вариант структуры, в котором все программы сосредоточены на одном компьютере.
- Приложения в файл-серверной архитектуре. Все пользователи или клиенты по сети подключены к одному серверу, на котором установлена сетевая версия операционной системы, а также накопитель данных для файлов всех клиентов. Каждый из клиентов имеет при этом полный набор необходимых программных приложений.
- Приложения в клиент-серверной архитектуре. В отличие от предыдущей структуры на сервер устанавливаются не только файлы с данными, но и все используемые программные приложения, например, система управления базами данных. На клиентских компьютерах остаётся при этом минимум программного обеспечения.
- Приложения в многозвенной архитектуре. Для устранения нагрузки на сервер клиент-серверная архитектура модернизируется путем подключения дополнительных серверов, каждый из которых выполняет определенную функцию в сети, например, хранение программных приложений или файлов с данными.
- Приложения в распределенной архитектуре. В этой структуре предусмотрено разбиение программных продуктов на некоторый набор компонентов, который распределяется по нескольким сетевым серверам и дополняется установкой резервных копий. Надежность такой системы довольно высока, поскольку при возникновении сбоя в программном обеспечении автоматически запускаются резервные копии, тем самым обеспечивается бесперебойная работа компьютерных устройств в сети.
Средства для создания приложений. Классификация языков программирования.
Эти средства на рынке программных продуктов наиболее представительны и включают языки и системы программирования, а также инструментальную среду пользователя.
Язык программирования — формализованный язык для описания алгоритма решения задачи на компьютере.
Средства для создания приложений — совокупность языков и систем программирования, а также различные программные комплексы для отладки и поддержки создаваемых программ.
Языки программирования можно условно разделить на следующие классы (если в качестве признака классификации взять синтаксис образования конструкций языка):
- машинные языки (computer language) — языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
- машинно-ориентированные языки (computer-oriented language) — языки программирования, которые отражают структуру конкретного типа компьютера (ассемблеры);
- алгоритмические языки (algorithmic language) — языки программирования, не зависящие от архитектуры компьютера (Паскаль, Си, Фортран, Бейсик и др.);
- процедурно-ориентированные языки (procedure-oriented language) — языки программирования, где имеется возможность написания программы как совокупности процедур (подпрограмм);
- проблемно-ориентированные языки (universal programming language) — языки программирования, предназначенные для решения задач определенного класса (Лисп, Пролог, Симула и др.);
- интегрированные системы программирования.
Жизненный цикл по. Процесс реализации программных средств.
Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Частный случай жизненного цикла системы.
Процесс реализации ПО (7.1.1) является частным случаем одноименного процесса (6.4.4) из группы технических процессов. Его цель заключается в создании элементов ИС путем преобразования заданных поведенческих, интерфейсных и производственных ограничений в действия, удовлетворяющие архитектурным решениям и требованиям правообладателей, подтверждаемым в ходе последующей верификации и валидации системы и ее составных частей.
В результате выполнения процесса:
- — определяется стратегия реализации;
- — устанавливаются ограничения по технологии реализации проекта;
- — изготавливается программная часть проекта, упаковывается и хранится в соответствии с соглашением о ее поставке.
По ходу реализации процесса реализуются процессы более низкого уровня:
- — процесс анализа требований к ПО* [1] [2] ;
- — процесс проектирования архитектуры ПО*;
- — процесс детального проектирования ПО;
- — процесс конструирования ПО;
- — процесс комплексирования ПО*;
- — процесс квалификационного тестирования ПО*.
Стратегия реализации ПО, если не оговорено в контракте, подразумевает выбор модели жизненного цикла, соответствующей области применения, размерам и сложности проекта. Модель должна содержать стадии и этапы, их цели и параметры завершения каждой стадии.
Средства создания программ
В общем случае для создания программ нужно иметь следующие компоненты • текстовый редактор — для набора исходного текста программы; • компилятор — для перевода текста программы в машинный код; • редактор связей — для сборки нескольких откомпилированных модулей в одну программу; 1
• библиотеки функций — для подключения стандартных функций к программе. Современные системы программирования включают в себя все указанные компоненты и называются интегрированными системами . Исходный текст программы можно получить без записи его вручную в текстовом редакторе. Существуют системы визуального программирования — RAD -среды (Rapid Application Development), которые, не исключая возможности записи программы вручную, позволяют создавать текст программы автоматически, путем манипуляций со стандартными элементами управления, включенными в RAD-среду. Поэтому для RADсреды понятие «программирование» часто заменяют понятием «проектирование». По способу разработки программ можно выделить два подхода: • процедурное программирование — это программирование, при котором выполнение команд программы определяется их последовательностью, командами перехода, цикла или обращениями к процедурам; • объектно-ориентированное программирование – программирование, при котором формируются программные объекты, имеющие набор свойств, обладающие набором методов и способные реагировать на события, возникающие как во внешней среде, так и в самом объекте (нажатие мыши, срабатывание таймера, превышение числовой границы и т.д.). Таким образом, выполнение той или иной части программы зависит от событий в программной системе. Объектно-ориентированное программирование (ООП) не исключает, а охватывает технологию процедурного программирования.
Основные системы программирования
Из универсальных языков программирования наиболее популярны следующие: Basic; Pascal; C++; Java. Для языка Basic существует много версий, реализованных и как интерпретаторы и как компиляторы. В России Basic традиционно используется в курсе информатики средней школы. Среда визуального программирования Microsoft Visual Basic используется как программная поддержка приложений MS Office. Язык Pascal является компилируемым и широко используется как среда для обучения программированию в ВУЗах. RAD-средой, наследующей его основные свойства, является среда Borland Delphi. Для языка C++ RAD-средой является Borland C++ Builder. Этот компилируемый язык часто используется для разработки программных приложений, в которых необходимо обеспечить быстродействие и экономичность программы. 2
Язык Java — интерпретируемый язык — позволяет создавать платформно-независимые программные модули, способные работать в компьютерных сетях с различными операционными системами. RAD-средой для него является Symantec Cafe.
Основные этапы развития языков программирования
Языки программирования развивались одновременно с развитием ЭВМ. С начала 50-х годов это были низкоуровневые языки (машинные и ассемблеры). В 1956 году появился язык Фортран, а в 1960 — Алгол-60. Это языки компилирующего типа, существенно уменьшившие трудоемкость программирования. Языки ориентированы на выполнение математических вычислений. В дальнейшем возникло большое количество различных языков, претендовавших на универсальность (PL/1) или для решения конкретных задач (COBOL — для деловых задач, ЛОГО — для обучения, Пролог — для разработки систем искусственного интеллекта). С середины 60-х до начала 80-х разработаны и получили распространение языки Pascal, Basic, Си, Ада и другие. Принципиально новым этапом в развитии языков программирования стало появление методологии непроцедурного (ООП) программирования ( см. выше ). Основные достоинства ООП — быстрота разработки интерфейса программного приложения, возможность наследования свойств программных объектов.
Основы алгоритмизации
Алгоритм — это предписание некоторому исполнителю выполнить конечную последовательность действий, приводящую к некоторому результату. В программировании алгоритм является фундаментом программы, а основным исполнителем — компьютер. На стадии тестирования алгоритма исполнителем может быть сам программист. Алгоритм может быть записан с помощью блок-схемы , текстовым предписанием, с помощью рисунков, таблично или на специальном алгоритмическом языке. Наиболее популярны блок-схемы и предписания. Преимущество блок-схем — в наглядности алгоритма. Основными свойствами алгоритма являются: • дискретность — представление алгоритма в виде последовательности шагов; • массовость — применимость алгоритма к некоторому множеству исходных данных; • определенность — за конечное число шагов либо должен быть получен результат, либо доказано его отсутствие; 3
• однозначность — при повторном применении алгоритма к тем же исходным данным должен быть получен тот же результат. Из перечисленных свойств лишь дискретность является обязательным свойством алгоритма. Можно привести примеры, когда невыполнение свойств массовости, определенности и однозначности не позволяет говорить об отсутствии алгоритма. Для изображения алгоритмов будем использовать блоксхемы, формируемые из типовых блоков, показанных на рис. 1. В теории алгоритмов доказано, что любой, сколь угодно сложный алгоритм может быть составлен из трех основных алгоритмических структур: линейной, ветвления и цикла, показанных, соответственно на рис. 2, 3, 4. Линейная структура предполагает последовательное выполнение действий, без их повторения или пропуска некоторых действий. Обычно программисты стремятся к тому, чтобы алгоритм имел линейную структуру. Структура «ветвление» предполагает выполнение одной из двух групп действий в зависимости от выполнения условия в блоке ветвления. На рис. 3 знаком «+» показано выполнение условия, а знаком «-» — его невыполнение. Часто используется неполная команда ветвления, когда один из блоков действия отсутствует. Структура «цикл» имеет несколько разновидностей. На рис. 4 показан цикл типа «пока» с предусловием. Действия внутри этого цикла повторяются пока выполняется условие в блоке ветвления, причем сначала проверяется условие, а затем выполняется действие. Достаточно часто используются другие типы цикла, показанные на рис. 5 и 6. 4