
- •Системное программное обеспечение компьютера Лекция 1. Классификация и основные характеристики программных продуктов Содержание лекции
- •Классификация программных продуктов
- •Системное программное обеспечение
- •Сервисное программное обеспечение
- •Антивирусные программы
- •Пакеты прикладных программ
- •Проблемно-ориентированные ппп
- •Ппп автоматизированного проектирования
- •Ппп общего назначения
- •Методо-ориентированные ппп
- •Офисные ппп
- •Настольные издательские системы
- •Программные средства мультимедиа
- •Системы искусственного интеллекта
- •Инструментарий технологии программирования Состав и назначение инструментария технологии программирования
- •Средства для создания приложений
- •Case-технология создания информационных систем
- •Основные характеристики программного продукта
- •Процесс создания программы Постановка задачи
- •Алгоритм и его свойства
- •Способы записи алгоритма
- •Правила построения блок-схем
- •Программирование
- •Специалисты, занятые разработкой и эксплуатацией программ
Средства для создания приложений
Локальные средства для разработки программ. Эти средства на рынке программных продуктов наиболее представительны и включают языки и системы программирования, а также инструментальную среду пользователя.
Язык программирования - формализованный язык для описания алгоритма решения задачи на компьютере.
Средства для создания приложений - совокупность языков и систем программирования, а также различные программные комплексы для отладки и поддержки создаваемых программ.
Языки программирования, если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на классы:
машинные языки (computer language) - языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
машинно-ориентированные языки (computer-oriented language) - языки программирования, которые отражают структуру конкретного типа компьютера (ассемблеры);
алгоритмические языки (algorithmic language) - не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);
проблемно-ориентированные языки (universal programming language) - языки программирования для решения задач определенного класса (Лисп, Java и др.);
интегрированные системы программирования.
Другой классификацией языков программирования является их деление на языки, ориентированные на реализацию основ структурного программирования, и объектно-ориентированные языки, поддерживающие понятие объектов, их свойств и методов обработки.
Язык машинных кодов в настоящее время практически не используется из-за громоздкости программ и трудоемкости программирования.
Язык ассемблера, по существу, аналогичен машинному языку компьютера, но он представлен в форме, более понятной людям. Важнейший момент языка ассемблера состоит в том, что программист записывает отдельные подробнейшие инструкции по выполнению программы. Разработка программы на этом языке оказывается длительным и утомительным процессом. Однако полученные программы отличаются высокой эффективностью: они короче и быстрее. Кроме того, программист может дать компьютеру команду на выполнение более узких, специфичных действий, а другие языки (кроме машинных кодов) не позволяют программистам использовать все возможности компьютера. Этот язык в настоящее время в основном используется для написания драйверов - программ управления устройствами (в основном это драйверы нестандартных устройств, т.к. драйверы стандартных устройств включены в состав операционных систем).
Языки высокого уровня (ЯВУ) лишены громоздкости языка машинных кодов и менее подвержены ошибкам языка ассемблера. ЯВУ содержат специальные программы – трансляторы (компиляторы), которые переводят программу, написанную на языке высокого уровня, на язык машинных команд, понятный компьютеру. Языки высокого уровня реализуют две идеи: объединение многих машинных команд в одну команду (оператор программы) и устранение некоторых тонких деталей, которые влияют на работу компьютера, - это не относится к задаче программиста (например, адреса ячеек оперативной памяти, назначение регистров и т.п.).
В настоящее время предпочтение отдаётся таким языкам, как DELPHI (основан на языке Паскаль), С++ Builder, Visual C (основаны на языке С), Visual Basic (основа - язык Бейсик).
Программа, подготовленная на языке высокого уровня, проходит:
этап трансляции, когда происходит преобразование исходного кода программы (source code) в объектный код (object code), т.е. осуществляется перевод на язык машинных кодов;
этап компоновки, когда происходит обработка объектного кода редактором связей - специальной программой, осуществляющей построение загрузочного модуля (load module), пригодного к выполнению (рис. 4.7).
Трансляция может выполняться с использованием средств компиляторов (compiler) или интерпретаторов (interpreter). Компиляторы транслируют всю программу, но без ее выполнения. Интерпретаторы, в отличие от компиляторов, выполняют пооператорную обработку и выполнение всей программы.
Существуют специальные программы, предназначенные для трассировки и анализа выполнения программ, так называемые отладчики (debugger). Лучшие отладчики позволяют осуществить трассировку (отслеживание выполнения программы в пооператорном варианте), идентификацию места и вида ошибок в программе, «наблюдение» за изменением значений переменных, выражений и т.п.
Системы программирования (programming system) включают:
компилятор;
интегрированную среду обработки, включающую текстовый редактор для ввода и корректировки программ;
отладчик;
средства оптимизации кода программы;
набор библиотек (возможно с исходными текстами программ);
редактор связей;
сервисные средства (утилиты) для работы с библиотеками, текстовыми и двоичными файлами;
справочные системы;
документатор исходного кода программы;
систему поддержки и управления проектом программного комплекса (осуществляет отслеживание изменений, выполненных разработчиками программы, поддержку версий программы с автоматической разноской изменений, получение статистики о ходе работ проекта);
Примером такой системы программирования может служить система Турбо Паскаль американской фирмы Borland.
Инструментальная среда пользователя представлена специальными средствами, встроенными в пакеты прикладных программ, такими как:
библиотека функций, процедур, объектов и методов обработки;
макрокоманды;
языковые макросы;
программные модули-вставки;
генераторы приложений;
языки запросов высокого уровня и т.п.
Интегрированные среды разработки программ являются дальнейшим развитием средств разработки программ, которые объединяют набор средств для комплексного их применения на всех технологических этапах создания программы. Основное назначение инструментария данного вида - повышение производительности труда программистов, автоматизация создания кодов программ, обеспечивающих интерфейс пользователя графического типа, разработка приложения для архитектуры клиент - сервер, запросов и отчетов.
Примером такой среды является система Delphi, в активе которой разработчик программ имеет:
объектно-ориентированный язык программирования;
высокопроизводительный компилятор;
средства наглядного (визуального) создания программ;
специальная технология работы с базами данных;
принцип “открытой” системы: возможность добавления новых средств и перенос на другие платформы.