| Программное обеспечение компьютера. О системном ПО и системах программирования
Урок 8
Понятие программного обеспечения и его типы. Назначение операционной системы и ее основные функции
§9. Программное обеспечение компьютера
§10. 0 системном ПО и системах программирования
Программное обеспечение компьютера
Основные темы параграфа:
Что такое программное обеспечение;
- типы программного обеспечения;
Изучаемые вопросы:
- Состав прикладного программного обеспечения.
- Сервисные программы.
Что такое программное обеспечение
Возможности современного ПК столь велики, что все большее число людей находят ему применение в своей работе, учебе, быту. Важнейшим качеством современного компьютера является его «дружественность» по отношению к пользователю. Общение человека с компьютером стало простым, наглядным, понятным. Компьютер сам подсказывает пользователю, что нужно делать в той или иной ситуации, помогает выходить из затруднительных положений. Это возможно благодаря программному обеспечению компьютера.
Снова воспользуемся аналогией между компьютером и человеком. Новорожденный человек ничего не знает и не умеет. Знания и умения он приобретает в процессе развития, обучения, накапливая информацию в своей памяти. Компьютер, который собрали на заводе из микросхем, проводов, плат и прочего, подобен новорожденному человеку. Можно сказать, что загрузка в память компьютера программного обеспечения аналогична процессу обучения ребенка.
Создается программное обеспечение программистами.
Вся совокупность программ, хранящихся на всех устройствах долговременной памяти компьютера, составляет его программное обеспечение (ПО).
Программное обеспечение компьютера постоянно пополняется, развивается, совершенствуется. Стоимость установленных программ на современном ПК зачастую превышает стоимость его технических устройств. Разработка современного ПО требует очень высокой квалификации от программистов.
Типы программного обеспечения
В программном обеспечении компьютера есть необходимая часть, без которой на нем просто ничего не сделать. Она называется системным программным обеспечением. Основным элементом системного ПО является операционная система (например, Windows, Linux). Покупатель приобретает компьютер, оснащенный системным ПО, которое не менее важно для работы компьютера, чем память или процессор. Кроме системного ПО в состав программного обеспечения компьютера входят еще прикладные программы и системы программирования.
Программное обеспечение компьютера делится на:
Системное ПО;
- прикладное ПО;
- системы программирования.
О системном ПО и системах программирования речь пойдет позже. А сейчас познакомимся с прикладным программным обеспечением.
Состав прикладного программного обеспечения *
*
В сфере ПО все очень быстро меняется, поэтому невозможно дать точную и неизменную классификацию.
Некоторые современные программы трудно отнести к какому-то одному из описанных ниже типов
.
Программы, с помощью которых пользователь может решать свои информационные задачи, не прибегая к программированию, называются прикладными программами.
В комплекте с операционной системой обычно поставляется набор прикладных программ общего назначения. В Windows это группа программ «Стандартные» (простые текстовые и графические редакторы, калькулятор и др.), программа электронной почты и интернет-браузер. К числу программ общего назначения можно отнести также офисные, мультимедийные и развлекательные программы. В Linux такие программы распределены по группам в соответствии с их назначением.
Офисные программы. Как правило, пользователь, приобретая компьютер, устанавливает на нем офисный пакет программ. К таким программам относятся:
Текстовые процессоры - для работы с текстовыми документами;
табличные процессоры, позволяющие организовывать очень распространенные на практике табличные расчеты;
программы для создания презентаций - демонстрационного видеоряда, используемого для публичных выступлений;
программы для управления несложными базами данных.
Мультимедийные программы. Это программы общего назначения, предназначенные для работы с изображением и звуком. К ним относятся графические редакторы, позволяющие рисовать, обрабатывать фотографии, делать фотомонтаж. Программы-проигрыватели звука и изображения позволяют вывести на экран картинку, прослушать музыкальную запись, посмотреть видеофильм. Обработкой звука на компьютере, как правило, занимаются профессионалы, используя для этого специальные программные пакеты.
Развлекательные программы. Многие пользователи начинают свое общение с компьютером с компьютерных игр.
Профессиональные программы. Это прикладные программы специального назначения - инструменты профессиональной деятельности. Например, бухгалтерские программы применяются для автоматизированного начисления заработной платы и других расчетов, которые производятся в бухгалтериях; системы автоматизированного проектирования используются конструкторами для разработки проектов различных технических устройств; программы, позволяющие решать сложные математические задачи, применяются учеными и инженерами; медицинские экспертные системы помогают врачу ставить диагноз больному и многое другое.
Образовательные программы.
Это также программы специального назначения. К образовательным программам относятся электронные учебники, учебные тренажеры. Нередко для целей обучения используется игровая форма. Особенно популярно такое совмещение для детей младшего возраста.
Коротко о главном
Программное обеспечение компьютера делится на три части: системное ПО, прикладное ПО и системы программирования .
С помощью прикладных программ пользователь может непосредственно решать свои информационные задачи, не прибегая к программированию.
К прикладному ПО относятся: офисные, мультимедийные, развлекательные и образовательные, профессиональные и другие программы
.
Вопросы и задания
1. Что такое программное обеспечение компьютера?
2. Какие задачи выполняет прикладное программное обеспечение?
3. Назовите основные виды прикладных программ общего назначения.
4. Что такое прикладные программы специального назначения?
О системном ПО и системах программирования
Основные темы параграфа:
Что такое операционная система;
- интерактивный режим;
- сервисные программы;
- системы программирования.
Изучаемые вопросы:
Понятие программного обеспечения.
- Типы программного обеспечения
- Состав прикладного программного обеспечения.
- Системное программное обеспечение и функции операционной системы.
- Понятие интерактивного режима работы.
- Сервисные программы.
- Система программирования – инструмент для работы программиста.
Что такое операционная система
Для чего нужны прикладные программы, понять несложно. А что же такое системное программное обеспечение?
Главной частью системного программного обеспечения является операционная система (ОС).
Операционная система - это набор программ, управляющих оперативной памятью, процессором, внешними устройствами и файлами, а также ведущих диалог с пользователем.
У операционной системы очень много работы, и она практически все время находится в рабочем состоянии. Например, для того чтобы выполнить прикладную программу, ее нужно разыскать во внешней памяти (на диске), поместить в оперативную память (найдя там свободное место), начать исполнение программы, контролировать работу всех устройств компьютера во время выполнения и в случае сбоев выводить диагностические сообщения. Все эти заботы берет на себя операционная система.
Вот названия некоторых распространенных ОС для персональных компьютеров: Windows, Linux, Mac OS
.
Интерактивный режим
Операционная система общается с пользователем через определенную диалоговую среду (оболочку), отражаемую на экране : «Рабочий стол», файл-менеджер и пр. Желая выполнить какое-то действие, пользователь передает ОС соответствующую команду, воздействуя на элементы диалоговой среды. Например, это может быть команда запуска прикладной программы, команда выполнения операции с файлами (удалить файл, скопировать и пр.), команда сообщения текущего времени или даты, команда перезагрузки компьютера. После завершения выполнения данного этапа работы операционная система переходит в состояние ожидания следующей команды от пользователя.
Такой режим работы называется диалоговым режимом
. Благодаря ОС пользователь никогда не чувствует себя брошенным на произвол судьбы. Все операционные системы на персональных компьютерах работают с пользователем в режиме диалога. Режим диалога часто называют интерактивным режимом
.
Сервисные программы
К системному программному обеспечению кроме ОС следует отнести и множество программ обслуживающего, сервисного характера . Например, это программы обслуживания дисков (копирование, форматирование, «лечение» и пр.), сжатия файлов на дисках (архиваторы), борьбы с компьютерными вирусами и многое другое.
Компьютерным вирусом называют вредоносный программный код, способный нанести ущерб данным на компьютере или вывести его из строя. Основными разносчиками вирусов являются: нелицензионное программное обеспечение, файлы, скопированные из случайных источников, а также глобальная компьютерная сеть Интернет. Борьбой с компьютерными вирусами занимаются специалисты, создающие антивирусные программы.
В составе программного обеспечения компьютера обязательно должны присутствовать антивирусные программы. Однако такую программу недостаточно лишь однажды установить на компьютер. После этого нужно регулярно обновлять ее базу - добавлять настройки на новые типы вирусов. Наиболее оперативно такое обновление производится через Интернет серверами фирм-производите- лей антивирусных программ.
Системы программирования
Кроме системного и прикладного ПО существует еще третий вид программного обеспечения. Он называется системами программирования (СП).
Система программирования - это комплекс инструментальных средств, предназначенных для работы с программами на одном из языков программирования.
С системами программирования работают программисты. Они разрабатывают компьютерные программы. Всякая СП ориентирована на определенный язык программирования. Существует много разных языков, например Паскаль, Бейсик, ФОРТРАН, С («Си»), Ассемблер, ЛИСП и др. На этих языках программист пишет программы, а с помощью систем программирования заносит их в компьютер, отлаживает, тестирует, исполняет.
Программисты создают все виды программ: системные, прикладные и новые системы программирования
.
Коротко о главном
Системное программное обеспечение - обязательная часть ПО. Его ядро составляет операционная система (ОС). ОС непосредственно связана с аппаратурой и управляет ее работой, организует работу с файлами, ведет диалог с пользователем.
К сервисным программам относятся программы обслуживания дисков, архиваторы, антивирусные программы и др.
Системы программирования
- инструменты для работы программистов.
Вопросы и задания
1. Какие разновидности программного обеспечения имеются на современных компьютерах? Подготовьте сообщение.
2. Что такое операционная система (ОС)? Какие основные функции она выполняет?
3. Что такое диалоговый режим общения между ОС и пользователем?
4. Для чего предназначены системы программирования? Кто с ними работает?
Электронное приложение к уроку
Cкачать материалы урока
Программное обеспечение
Программное обеспечение
1) Прикладные программы
2) Системные программы :
- управление ресурсами ЭВМ.
- операционные системы.
- системы программирования.
- инструментальные системы.
- интегрированные пакеты.
- системы машинной графики.
Жизненный цикл ПО и его стандартизация, процессы ЖЦ ПО, группы процессов ЖЦ ПО
В технологиях разработки программного обеспечения понятие жизненного цикла является одним из основных.
Жизненный цикл программного обеспечения (ЖЦ ПО) – период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного снятия с эксплуатации.
Процесс – совокупность взаимосвязанных действий (а каждое действие – набор задач), преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется задачами и методами их решения, исходными данными, полученными от других процессов, и результатами.
Согласно стандарту ISO/IEC 12207 все процессы ЖЦ ПО разделены на три группы:
1. основные процессы :
1.1. приобретение;
1.2. поставка;
1.3. разработка;
1.4. эксплуатация;
1.5. сопровождение;
2. вспомогательные процессы :
2.1. документирование;
2.2. управление конфигурацией;
2.3. обеспечение качества;
2.4. верификация;
2.5. аттестация;
2.6. совместная оценка;
2.7. аудит (определение соответствия требованиям, планам и условиям договора);
2.8. разрешение проблем;
3. организационные процессы :
3.1. управление;
3.2. инфраструктура;
3.3. усовершенствование
3.4. обучение.
3. Процесс разработки ПО: основные действия и их содержание
Процесс разработки предусматривает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию ПО и его компонентов в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации, подготовку материалов, необходимых для проверки работоспособности и соответствующего качества программных продуктов, материалов, необходимых для организации обучения персонала.
Процесс разработки включает следующие действия:
1) Подготовительная работа начинается с выбора модели ЖЦ ПО, соответствующей масштабу, значимости и сложности проекта.
2) Анализ требований к системе подразумевает определение ее функциональных возможностей, пользовательских требований, требований к надежности и безопасности, к внешним интерфейсам и т.д.
3) Проектирование архитектуры системына высоком уровне заключается в определении компонентов ее оборудования, ПО и операций, выполняемых эксплуатирующим систему персоналом.
4) Анализ требований к ПО
Проектирование архитектуры ПО
6) Детальное проектирование ПО
Кодирование и тестирование ПО
8) Интеграция ПО предусматривает сборку разработанных компонентов ПО в соответствии с планом интеграции и тестирование агрегированных компонентов.
9) Квалификационное тестирование ПО проводится разработчиком в присутствии заказчика (по возможности) для демонстрации того, что ПО удовлетворяет своим спецификациям и готово к использованию в условиях эксплуатации.
10) Интеграция системы заключается в сборке всех ее компонентов, включая ПО и оборудование.
11) После интеграции система, в свою очередь, подвергается квалификационному тестированию на соответствие совокупности требований к ней.
12) Установка ПО осуществляется разработчиком в соответствии с планом в той среде и на том оборудовании, которые предусмотрены договором.
13) Приемка ПО предусматривает оценку результатов квалификационного тестирования ПО и системы и документирование результатов оценки, которые проводятся заказчиком с помощью разработчика. Разработчик выполняет окончательную передачу ПО заказчику в соответствии с договором, обеспечивая при этом необходимое обучение и поддержку.
Сертификация процессов разработки ПО, модель CMM
Гарантия качества процессов разработки программных продуктов является весьма значимой в современных условиях. Такую гарантию дают сертификаты качества процесса , подтверждающие его соответствие принятым международным стандартам. Наиболее авторитетными являются модели стандартов ISO 9001:2000, ISO/IEC 15504 и модель зрелости процесса разработки ПО (Capability Maturity Model – CMM).
Основным понятием модели CMM является зрелость процессов (Software process maturity). Зрелость процессов – это степень их управляемости, контролируемости и эффективности. Повышение технологической зрелости означает потенциальную возможность возрастания устойчивости процессов и указывает на степень эффективности и согласованности использования процессов создания и сопровождения ПО в рамках всей организации.
В модели CMM выделены пять уровней технологической зрелости, которые в принципе могут быть достигнуты компанией:
1. Начальный уровень означает, что процесс в компании не формализован. Он не может строго планироваться и отслеживаться, его успех носит случайный характер. Результат работы целиком и полностью зависит от личностных качеств отдельных сотрудников, увольнение которых приводит к остановке проекта.
2. На повторяемом уровне внедряются формальные процедуры для выполнения основных элементов процесса конструирования. Результаты выполнения процесса соответствуют заданным требованиям и стандартам. Выполнение проекта на этом уровне планируется и контролируется, а применяемые для этих целей средства дают возможность повторения ранее достигнутых успехов.
3. Определенный уровень требует, чтобы все элементы процесса были определены, стандартизированы и задокументированы. На этом уровне все процессы планируются и управляются на основе единого стандарта компании. Качество разрабатываемого ПО уже не зависит от способностей отдельных личностей.
4. На управляемом уровне в компании принимаются количественные показатели качества как программных продуктов, так и технологических процессов. Это обеспечивает более точное планирование проекта и контроль качества его результатов. Основное отличие от предыдущего уровня состоит в более объективной, количественной оценке продукта и процесса.
5. На высшем, оптимизирующем , уровне главной задачей компании становится постоянное улучшение и повышение эффективности существующих процессов, ввод новых технологий. Технология создания и сопровождения программных продуктов планомерно и последовательно совершенствуется.
Каскадная модель жизненного цикла ПО: описание, преимущества и недостатки,
Критерии применения
Каскадная модель ЖЦ ПО реализует классический жизненный цикл ПО. Согласно этой модели разработка ПО рассматривается как последовательность этапов, причем переход на следующий этап осуществляется только по завершении всех работ на текущем этапе.
Системный анализ – Анализ требований – Проектирование – Реализация – Тестирование – Внедрение – Сопровождение
Системный анализ: задается роль каждого элемента и их взаимодействие друг с другом.
Анализ требований: определение функциональных и нефункциональных требований к ПО.
Проектирование: трансляция требований к ПО во множество проектных представлений. Также на этом этапе осуществляется оценка качества будущего программного обеспечения.
Реализация: преобразование проектных спецификаций в текст на ЯП (язык прогр.) (кодирование).
Тестирование: проверка корректности, исправление ошибок в функциях и логике.
Внедрение: установка разработанного ПО у заказчика, обучение персонала.
Сопровождение: внесение изменений в эксплуатируемое ПО (исправления ошибок, адаптации к изменениям внешней для ПО среды, усовершенствования ПО по требованиям заказчика).
Преимущества:
Модель хорошо известна потребителям;
Хорошо срабатывает для тех проектов, которые достаточно понятны
Весьма доступна для понимания, проста и удобна в применении;
Ее структурой может руководствоваться даже неопытный персонал;
Отличается стабильностью требований;
Хорошо срабатывает тогда, когда требования к качеству доминируют над требованиями к затратам и графику выполнения проекта;
Способствует осуществлению строгого контроля менеджмента проекта;
Стадии модели довольно хорошо определены и понятны;
Ход выполнения проекта легко проследить с помощью использования временной шкалы, поскольку момент завершения каждой фазы используется в качестве стадии.
Недостатки:
Каждая попытка вернуться на одну или две фазы назад, чтобы исправить какую-либо проблему или недостаток, приведет к значительному увеличению затрат и сбою в графике;
Выражение "35 процентов выполнено" - не несет никакого смысла и не является показателем для менеджера проекта;
Интеграция всех полученных результатов происходит в завершающей стадии работы модели;
У клиента едва ли есть возможность ознакомиться с системой заранее;
Все требования должны быть известны в начале жизненного цикла;
Возникает необходимость в жестком управлении и контроле, поскольку в модели не предусмотрена возможность модификации требований;
Модель основана на документации, а значит, количество документов может быть избыточным;
Весь программный продукт разрабатывается за один раз. Нет возможности разбить систему на части;
Отсутствует возможность учесть переделку и итерации за рамками проекта.
Критерии применения:
каскадная модель может использоваться при создании ПО, для которого в самом начале разработки можно достаточно точно и полно сформулировать все требования.
Критерии применения
Макетирование (прототипирование) – это процесс создания модели разрабатываемого программного продукта. Модель может принимать один из трех видов:
1) бумажный макет или «электронный» макет , который представляет GUI;
2) работающий макет (выполняет только часть требуемых функций);
3) существующая программа (характеристики которой должны быть улучшены).
Макетирование основывается на многократном повторении итераций , в которых участвуют заказчик и разработчик, как это показано.
Преимущества:
Пользователь может "увидеть" системные требования в процессе их сбора командой разработчиков;
Снижается возможность возникновения путаницы, искажения информации при определении системных требований;
В процесс можно внести новые требования пользователя;
Да |
Нет |
Качество продукта определяется при активном участии пользователя в процесс разработки;
Благодаря меньшему объему доработок уменьшаются затраты на разработку;
Обеспечивается управление рисками;
Недостатки:
Разработанные "на скорую руку" прототипы страдают от неадекватной или недостающей документации;
С учетом создания рабочего прототипа, качеству всего ПО или долгосрочной эксплуатационной надежности может быть уделено недостаточно внимания.
Решение трудных проблем может отодвигаться на будущее. Это приводит к тому, что последующие полученные продукты могут не оправдать надежды, которые возлагались на прототип;
Если пользователи не могут участвовать в проекте, на конечном продукте могут отразиться неблагоприятные воздействия;
Если выполнение проекта завершается досрочно, у конечного пользователя останется лишь частичная система;
Вызывает зависимость и может продолжаться слишком долго;
Критерии применения:
Требования не известны заранее, не постоянны или могут быть неудачно сформулированы;
Существует потребность в разработке пользовательских интерфейсов;
Осуществляются временные демонстрации;
Выполняется новая, не имеющая аналогов разработка;
Разработчики не уверены в том, какую оптимальную архитектуру или алгоритмы следует применять;
Алгоритмы или системные интерфейсы усложнены;
Разрабатывается ПО, когда проявляется средняя и высокая степень риска;
Типы связей IDEF3
Соединения разбивают или соединяют внутренние потоки:
Типы соединений
Графическое обозначение | Название | Вид | Правила инициализации |
& | Соединение «И» | Разворачивающее | Каждое конечное действие обязательно инициируется |
Сворачивающее | Каждое исходное действие обязательно должно завершиться | ||
X | Соединение «исключающее ИЛИ» | Разворачивающее | Одно и только одно конечное действие инициируется |
Сворачивающее | Одно и только одно исходное действие должно завершиться | ||
O | Соединение «ИЛИ» | Разворачивающее | Одно или несколько конечных действий инициируются |
Сворачивающее | Одно или несколько исходных действий должны завершиться |
Указатели – это специальные символы, которые ссылаются на другие разделы описания процесса. Они выносятся на диаграмму для привлечения внимания читателя к каким-либо важным аспектам модели
Виды указателей IDEF3
22 Основные этапы проектирования программных систем и их содержание
Технологический цикл разработки программного обеспечения информационной системы включает три процесса: анализ, синтез и сопровождение . В ходе анализа ищется ответ на вопрос: «Что должна делать будущая система?». В процесс синтеза формируется ответ на вопрос: «Каким образом система будет реализовывать предъявляемые к ней требования?» Выделяют три этапа синтеза: проектирование, кодирование и тестирование .
Модель хранилища данных
Модель «клиент-сервер»
Трехуровневая модель
Преимущества трехуровневой модели:
· упрощается такая модификация уровня, которая не влияет на другие уровни;
· отделение прикладных функций от функций управления базы данных упрощает оптимизацию всей системы.
Модель абстрактной машины
Подсистема 2 |
Подсистема N |
… |
Обработчик событий и сообщений |
Модульная декомпозиция
Третий вид деятельности, выполняющейся на этапе предварительного проектирования, заключается в разбиении подсистем на модули. Известны два типа модульной декомпозиции:
· модель потока данных;
· модель объектов.
Модуль – это фрагмент программного текста, являющийся строительным блоком для физической структуры системы. Как правило, модуль состоит из интерфейсной части и части-реализации.
Модульность – свойство системы, которая может подвергаться декомпозиции на ряд внутренне связанных и слабо зависящих друг от друга модулей. Модульность обеспечивает интеллектуальную возможность создания сколь угодно сложного программного обеспечения.
Принцип «разделяй и властвуй» . С увеличением количества модулей (и уменьшением их размера) затраты на их реализацию также растут.
Затраты на модульность
Таким образом, существует оптимальное количество модулей Opt, которое приводит к минимальной стоимости разработки.
Следующий принцип, который используется при модульной декомпозиции, – это принцип информационной закрытости : содержание модулей должно быть скрыто друг от друга. Т.е. все действия должны предоставляться внешним модулям через определенный интерфейс.
Информационная закрытость обозначает следующее:
· все модули независимы, обмениваются только информацией, необходимой для работы;
· доступ к операциям и структурам модуля ограничен.
Достоинства информационной закрытости:
· обеспечивается возможность разработки модулей различными, независимыми коллективами;
· обеспечивает легкая модификация системы (вероятность распространения ошибок очень мала, так как большинство данных и процедур скрыто от других частей системы).
Идеальный модуль играет роль «черного ящика», содержимое которого невидимо клиентам. Он прост в использовании – количество органов управления им невелико, его легко развивать и корректировать в процесс сопровождения программной системы. Для обеспечения таких возможностей система должна отвечать особым требованиям: модули системы должны высокую связность и низкое сцепление.
Типы вызовов модулей
А |
В |
В |
А |
С |
А |
В |
а) |
б) |
в) |
Условные и циклические вызовы модулей:
а) – циклический; б) – условный; в) – однократный
Переход
Простой переход (simple transition) представляет собой отношение между двумя последовательными состояниями, которое указывает на факт смены одного состояния другим. Пребывание моделируемого объекта в первом состоянии может сопровождаться выполнением некоторых действий, а переход во второе состояние будет возможен после завершения этих действий, а также после удовлетворения некоторых дополнительных условий. В этом случае говорят, что переход срабатывает, Или происходит срабатывание перехода. До срабатывания перехода объект находится в предыдущем от него состоянии, называемым исходным состоянием, или в источнике (не путать с начальным состоянием - это разные понятия), а после его срабатывания объект находится в последующем от него состоянии (целевом состоянии).
На диаграмме состояний переход изображается сплошной линией со стрелкой, которая направлена в целевое состояние.
Сложные переходы
Выбор и соединение
Псевдосостояние выбора (choice pseudo state) предназначено для моделирования нескольких альтернативных ветвей при реализации поведения конечного автомата
Псевдосостояние соединения (junction pseudo state) является вершиной со свободной семантикой, которая используется для соединения вместе нескольких переходов
Разделение и слияние
Вершина разделения (fork vertex) – псевдосостояние, предназначенное для разделения входящего перехода на два или более перехода, которые имеют в качестве своих целей вершины в ортогональных регионах композитного состояния.
Вершина слияния (join vertex) – псевдосостояние, предназначенное для соединения нескольких переходов, которые имеют в качестве своих источников вершины из различных ортогональных регионов композитного состояния.
Точки входа и выхода
Точка входа (entry point) – псевдосостояние, предназначенное для моделирования входа в некоторый конечный автомат или композитное состояние
Точка выхода (exit point) – псевдосостояние, предназначенное для моделирования выхода из некоторого конечного автомата или композитного состояния
Псевдосостояние неглубокой истории (shallow pseudo state)
Псевдосостояние неглубокой истории (shallow pseudo state) предназначено для представления самого последнего активного подсостояния композитного состояния после выхода из него.
Псевдосостояние глубокой истории (deep pseudo state)
Псевдосостояние глубокой истории (deep pseudo state) предназначено для представления последней активной конфигурации композитного состояния после выхода из него.
Интерфейсы
Предоставляемый интерфейс (provided interface) – интерфейс, который компонент предлагает для своего окружения.
Требуемый интерфейс (required interface) – интерфейс, который необходим компоненту от своего окружения для выполнения заявленной функциональности, контракта или поведения.
Порт
Порт определяет различимую точку взаимодействия между компонентом и окружающей его средой или между компонентом и его внутренними частями
Наличие имени у порта не является обязательным
При отсутствии имени порта его тип ассоциируется с типом интерфейса, с которым связан порт.
Собирающий соединитель
(assembly connector)
– соединитель, который связывает два компонента в контексте предоставляемый и требуемых сервисов.
Делегирующий соединитель
(delegation connector)
– соединитель, который связывает внешний контракт компонента с реализацией этого поведения внутренними частями этого компонента.
Делегирующий соединитель выполняет одну из следующих задач:
Передача сообщений или сигналов, поступающих в порт компонента извне, для обработки в некоторую внутреннюю часть компонента или другой порт.
Передача сообщений или сигналов, поступающих из некоторой внутренней части компонента, для обработки во внешний порт компонента
Узел(node)
Является элементом модели, который представляет некоторый вычислительный ресурс для развертывания на нем различных артефактов
На практике для уточнения спецификации узла могут использоваться различные текстовые стереотипы, которые акцентируют внимание на назначении этого узла.
Хотя в языке UML 2.х конкретные стереотипы для узлов не определены, разработчики предложили для этой цели следующие текстовые стереотипы:
«application server» (сервер приложений), «client workstation» (клиентская рабочая станция), «mobile device» (мобильное устройство), «embedded device» (встроенное устройство), «processor» (процессор), «sensor» (датчик), «modem» (модем), «net» (сеть), «printer» (принтер) и другие.
Понятие программного обеспечения, классификация программного обеспечения
Программное обеспечение - это совокупность программ, выполненных вычислительной системой.
К ПО относится также вся область деятельности по проектированию и разработке ПО.
Программное обеспечение - неотъемлемая часть ЭВМ. Оно является логическим продолжением технических средств ЭВМ, расширяющие их возможности и сферу использования.
1) Прикладные программы , непосредственно обеспечивающие выполнение необходимых пользователям работ.
2) Системные программы :
- управление ресурсами ЭВМ.
- создание копий используемой информации.
- проверку работоспособности устройств компьютера.
- выдачу справочной информации о компьютере и др..
3) Инструментальные программные системы , облегчающие процесс создания новых программ для компьютера.
Более или менее определенно сложились следующие группы программного обеспечения :
- операционные системы.
- системы программирования.
- инструментальные системы.
- интегрированные пакеты.
- динамические электронные таблицы.
- системы машинной графики.
- системы управления базами данных (СУБД).
- прикладное программное обеспечение.
Программное обеспечение (англ. s oftware ) – это совокупность программ, обеспечивающих функционирование компьютеров и решение с их помощью задач предметных областей. Программное обеспечение (ПО) представляет собой неотъемлемую часть компьютерной системы, является логическим продолжением технических средств и определяет сферу применения компьютера.
ПО современных компьютеров включает множество разнообразных программ, которое можно условно разделить на три группы (рис. 3.1):
1. Системное программное обеспечение (системные программы);
2. Прикладное программное обеспечение (прикладные программы);
3. Инструментальное обеспечение (инструментальные системы).
Системное программное обеспечение (СПО) – это программы, управляющие работой компьютера и выполняющие различные вспомогательные функции, например, управление ресурсами компьютера, создание копий информации, проверка работоспособности устройств компьютера, выдача справочной информации о компьютере и др. Они предназначены для всех категорий пользователей, используются для эффективной работы компьютера и пользователя, а также эффективного выполнения прикладных программ.
Центральное место среди системных программ занимают операционные системы (англ. operating systems ). Операционная система (ОС) – это комплекс программ, предназначенных для управления загрузкой, запуском и выполнением других пользовательских программ, а также для планирования и управления вычислительными ресурсами ЭВМ, т.е. управления работой ПЭВМ с момента включения до момента выключения питания. Она загружается автоматически при включении компьютера, ведет диалог с пользователем, осуществляет управление компьютером, его ресурсами (оперативной памятью, дисковым пространством и т.д.), запускает другие программы на выполнение и обеспечивает пользователю и программам удобный способ общения – интерфейс – с устройствами компьютера. Другими словами, операционная система обеспечивает функционирование и взаимосвязь всех компонентов компьютера, а также предоставляет пользователю доступ к его аппаратным возможностям.
ОС определяет производительность системы, степень защиты данных, выбор программ, с которыми можно работать на компьютере, требования к аппаратным средствам. Примерами ОС являются MS DOS, OS/2, Unix, Windows 9х, Windows XP.
Сервисные системы расширяют возможности ОС по обслуживанию системы, обеспечивают удобство работы пользователя. К этой категории относят системы технического обслуживания, программные оболочки и среды ОС, а также служебные программы.
Системы технического обслуживания – это совокупность программно-аппаратных средств ПК, которые выполняют контроль, тестирование и диагностику и используются для проверки функционирования устройств компьютера и обнаружения неисправностей в процессе работы компьютера. Они являются инструментом специалистов по эксплуатации и ремонту технических средств компьютера.
Для организации более удобного и наглядного интерфейса пользователя с компьютером используются программные оболочки операционных систем – программы, которые позволяют пользователю отличными от предоставляемых ОС средствами (более понятными и эффективными) осуществлять действия по управлению ресурсами компьютера. К числу наиболее популярных оболочек относятся пакеты Norton Commander (Symantec ), FAR (File and Archive manageR) (Е.Рошаль ).
Служебные программы (утилиты, лат. utilitas – польза) – это вспомогательные программы, предоставляющие пользователю ряд дополнительных услуг по реализации часто выполняемых работ или же повышающие удобство и комфортность работы. К ним относятся:
программы-упаковщики (архиваторы), которые позволяют более плотно записывать информацию на дисках, а также объединять копии нескольких файлов в один, так называемый, архивный файл (архив);
антивирусные программы, предназначенные для предотвращения заражения компьютерными вирусами и ликвидации последствий заражения;
программы оптимизации и контроля качества дискового пространства;
программы восстановления информации, форматирования, защиты данных;
программы для записи компакт-дисков;
драйверы – программы, расширяющие возможности операционной системы по управлению устройствами ввода/вывода, оперативной памятью и т.д. При подключении к компьютеру новых устройств необходимо установить соответствующие драйверы;
коммуникационные программы, организующие обмен информацией между компьютерами и др.
Некоторые утилиты входят в состав операционной системы, а некоторые поставляются на рынок как самостоятельные программные продукты, например, многофункциональный пакет сервисных утилит Norton Utilities (Symantec ).
Прикладное программное обеспечение (ППО) предназначено для решения задач пользователя. В его состав входят прикладные программы пользователей и пакеты прикладных программ (ППП) различного назначения.
Прикладная программа пользователя – это любая программа, способствующая решению какой-либо задачи в пределах данной проблемной области. Прикладные программы могут использоваться либо автономно, либо в составе программных комплексов или пакетов.
Пакеты прикладных программ (ППП) – это специальным образом организованные программные комплексы, рассчитанные на общее применение в определенной проблемной области и дополненные соответствующей технической документацией. Различают следующие типы ППП:
ППП общего назначения – универсальные программные продукты, предназначенные для автоматизации широкого класса задач пользователя. К ним относятся:
Текстовые редакторы (например, MS Word, Word Perfect, Лексикон);
Табличные процессоры (например, MS Excel, Lotus 1-2-3, Quattro Pro);
Системы динамических презентаций (например, MS Power Point, FreelanceGraphics, Harvard Graphics);
Системы управления базами данных (например, MS Access, Oracle, MS SQL Server, Informix);
Графические редакторы (например, Сorel Draw, Adobe Photoshop);
Издательские системы (например, Page Maker, Venture Publisher);
Системы автоматизации проектирования (например, BPWin, ERWin);
Электронные словари и системы перевода (например, Prompt, Сократ, Лингво, Контекст);
Системы распознавания текста (например, Fine Reader, Cunei Form).
Системы общего назначения часто интегрируются в многокомпонентные пакеты для автоматизации офисной деятельности – офисные пакеты – Microsoft Office, StarOffice и др.
методо-ориентированные ППП , в основе которых лежит реализация математических методов решения задач. К ним относятся, например, системы математической обработки данных (Mathematica, MathCad, Maple), системы статистической обработки данных (Statistica, Stat).;
проблемно-ориентированные ППП предназначены для решения определенной задачи в конкретной предметной области. Например, информационно-правовые системы ЮрЭксперт, ЮрИнформ; пакеты бухгалтерского учета и контроля 1С: Бухгалтерия, Галактика, Анжелика; в области маркетинга –Касатка, Marketing Expert; банковская система СТБанк;
интегрированные ППП представляют собой набор нескольких программных продуктов, объединенных в единый инструмент. Наиболее развитые из них включают в себя текстовый редактор, персональный менеджер (органайзер), электронную таблицу, систему управления базами данных, средства поддержки электронной почты, программу создания презентационной графики. Результаты, полученные отдельными подпрограммами, могут быть объединены в окончательный документ, содержащий табличный, графический и текстовый материал. К ним относят, например, MS Works. Интегрированные пакеты, как правило, содержат некоторое ядро, обеспечивающее возможность тесного взаимодействия между составляющими.
Обычно пакеты прикладных программ имеют средства настройки, что позволяет при эксплуатации адаптировать их к специфике предметной области.
К инструментальному программному обеспечению относят: системы программирования – для разработки новых программ, например, Паскаль, Бейсик. Обычно они включают: редактор текстов , обеспечивающий создание и редактирование программ на исходном языке программирования (исходных программ), транслятор , а также библиотеки подпрограмм ; инструментальные среды для разработки приложений, например, C++, Delphi, Visual Basic, Java, которые включают средства визуального программирования; системы моделирования , например, система имитационного моделирования MatLab, системы моделирования бизнес-процессов BpWin и баз данных ErWin и другие.
Транслятор (англ. translator – переводчик) – это программа-переводчик, которая преобразует программу с языка высокого уровня в программу, состоящую из машинных команд. Трансляторы реализуются в виде компиляторов или интерпретаторов, которые существенно различаются по принципам работы.
Компилятор (англ. compiler – составитель, собиратель) читает всю программу целиком , делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. После компилирования получается исполняемая программа, при выполнении которой не нужна ни исходная программа, ни компилятор.
Интерпретатор (англ. interpreter – истолкователь, устный переводчик) переводит и выполняет программу строка за строкой . Программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном ее запуске.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Введение
Сам по себе компьютер не обладает знаниями ни в одной области применения. Все эти знания сосредоточены в выполняемых на компьютерах программах. Программное обеспечение современных компьютеров включает множество программ - от игровых до научных. Программное обеспечение (ПО) - неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него ПО.
Под программным обеспечением понимается совокупность программных средств для создания и эксплуатации систем обработки данных с использованием средств вычислительной техники.
К программному обеспечению относится также вся область деятельности по проектированию и разработке ПО.
В нее включаются:
Технология проектирования программ;
Методы тестирования программ;
Методы доказательства правильности программ;
Анализ качества работы программ;
Документирование программ;
Разработка и использование программных средств, облегчающих процесс проектирования программного обеспечения, и многое другое.
К сервисному программному обеспечению относятся:
1. Драйверы (программы, с помощью которых операционная система получает доступ к аппаратному обеспечению некоторого устройства. Они предназначены для управления портами периферийных устройств, обычно загружаются в оперативную память при запуске компьютера).
Вот далеко не полный список применений: подключение мыши; клавиатуры; подключение графопостроителей (плоттеров), сканеров, принтеров, копировальной техники (ксероксов), дигитайзеров; связь двух компьютеров через порты последовательной передачи данных; подключение модемов для передачи данных по телефонным линиям; подключение к сети персональных компьютеров.
2. Утилиты (вспомогательные или служебные программы, которые представляют пользователю ряд дополнительных услуг).
Типичными представителями утилит являются:
Диспетчеры файлов или файловые менеджеры;
Архиваторы файлов, папок и дисков;
Средства коммуникаций (коммуникационные программы) предназначены для организации обмена информацией между компьютерами;
Средства обеспечения компьютерной безопасности (резервное копирование, антивирусные программы);
Программы динамического сжатия дисков. Они позволяют увеличить количество информации, хранимой на дисках путем ее динамического сжатия. Эти программы сжимают информацию при записи на диск, а при чтении восстанавливают в ее исходном виде.
Деинсталляторы приложений, установленных на компьютере. Они служат заменой стандартному диалогу Добавить/Удалить программу Windows. При этом работают приблизительно в 5-10 раз быстрее. Имеется функция поиска приложения по ключевому слову.
Часто утилиты объединяются в комплексы, наиболее популярны комплексы Norton Utilities, PC Tools Deluxe и Mace Utilities.
Необходимо отметить, что часть утилит входит в состав операционной системы, а другая часть функционирует автономно.
Тестовое программное обеспечение является средствами диагностики; средствами контроля, которые позволяют проверить конфигурацию компьютера и проверить работоспособность устройств компьютера, прежде всего жестких дисков . Назначение тестов - обнаружение ошибок в процессе работы компьютера или вычислительной системы в целом. Некоторые программы выполняют различные вспомогательные функции: например выдачу справочной информации о компьютере, проверку работоспособности устройств компьютера, очистку системного реестра, очистку диска от временных и ненужных файлов и редактирование папки "Автозагрузка" и т. д.
Инструментальные средства программирования предназначены для создания программ. К ним относятся языки и системы программирования, которые обеспечивают поддержку всех этапов работ по созданию программ: создание исходного кода программы на языке программирования, компиляцию /интерпретацию, отладку, документирование, поддержку и сопровождение программных продуктов.
Системы программирования обычно содержат трансляторы (компиляторы и интерпретаторы); библиотеки справочных программ (функций, процедур), редакторы связей, загрузчики и отладчики.
Функция связывания состоит в компоновке программы из многих объектных модулей. Поскольку каждый из объектных модулей в составе программы был получен в результате отдельного процесса трансляции, который работает только с одним конкретным модулем, обращения к процедурам и данным, расположенным в других модулях, в объектных модулях не содержат актуальных адресов. Выполнение функции связывания выполняет отдельная программа, называемая редактором связей или компоновщиком. Редактор связей выполняет только функцию связывания - сборки программы из многих объектных модулей и формирование адресов в обращениях к внешним точкам. На выходе редактора связей получается загрузочный модуль.
Для размещения объектной программы в оперативной памяти должно быть найдено и выделено свободное место в памяти. Для выполнения этой функции программа загрузчик обращается к операционной системе, которая выполняет его запрос на выделение памяти в рамках общего механизма управления памятью. Загрузчик - программа, которая подготавливает объектную программу к выполнению и инициирует ее выполнение.
Отладчик является отдельным приложением, предназначенным для поиска ошибок в программе. Отладчик позволяет выполнять пошаговую трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения программы, устанавливать и удалять контрольные точки или условия остановки и т. д. Ведь, по сути, в чём заключается работа отладчика? Чтобы помочь программисту локализовать ошибку с точностью до конкретной функции, конкретной операции, конкретной переменной. В этом нелёгком деле отладчику также может помочь операционная система.
Прикладное программное обеспечение объединяет широкий перечень программ, предназначенных для различных информационных систем. Однако эти программы не могут работать без работы операционной системы (ОС), которая создает среду для их выполнения.
И программных документов, необходимых для эксплуатации этих программ.
Также - совокупность программ, процедур и правил, а также документации, относящихся к функционированию системы обработки данных .
Программное обеспечение является одним из видов обеспечения вычислительной системы , наряду с техническим (аппаратным), математическим, информационным, лингвистическим, организационным и методическим обеспечением
Классификация программного обеспечения
Классификация программного обеспечения
Программное обеспечение принято по назначению подразделять на системное , прикладное и инструментальное , а по способу распространения и использования на несвободное/закрытое , открытое и свободное . Свободное программное обеспечение может распространяться, устанавливаться и использоваться на любых компьютерах дома, в офисах, школах, вузах, а также коммерческих и государственных учреждениях без ограничений.
Системноепрограммноеобеспечение - это комплекс программ, которые обеспечивают эффективное управление компонентами компьютерной системы , такими как процессор , оперативная память , устройства ввода-вывода , сетевое оборудование , выступая как «межслойный интерфейс», с одной стороны которого аппаратура, а с другой - приложения пользователя. В отличие от прикладного программного обеспечения , системное не решает конкретные прикладные задачи, а лишь обеспечивает работу других программ, управляет аппаратными ресурсами вычислительной системы и т. д
Операционные системы
Операционная система - комплекс системных программ, расширяющий возможности вычислительной системы, а также обеспечивающий управление её ресурсами, загрузку и выполнение прикладных программ, взаимодействие с пользователями. В большинстве вычислительных систем ОС являются основной, наиболее важной (а иногда единственной) частью системного ПО.
Понятие операционной системы
Существуют две группы определений ОС: «совокупность программ, управляющих оборудованием» и «совокупность программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который, однако, становится ясен только при более детальном рассмотрении вопроса о том, зачем вообще нужны операционные системы.
Есть приложения вычислительной техники, для которых ОС излишни. Например, встроенные микрокомпьютеры содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом), сотовых телефонах и т. п. Зачастую такой компьютер постоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки - также представляющие собой специализированные микрокомпьютеры - могут обходиться без ОС, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске . Тем не менее, некоторые микрокомпьютеры и игровые приставки всё же работают под управлением особых собственных ОС. В большинстве случаев, это UNIX-подобные системы (последнее особенно верно в отношении программируемого коммутационного оборудования: файрволов , маршрутизаторов ).
Основные идеи ОС
Предшественником ОС следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм , начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов ). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода , вычисления математических функций и т. п.).
В 1950 - 60-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы .
Функции ОС
Основные функции (простейшие ОС):
§ Загрузка приложений в оперативную память и их выполнение.
§ Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода ).
§ Управление оперативной памятью (распределение между процессами, виртуальная память ).
§ Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск , компакт-диск и т. д.), организованным в той или иной файловой системе .
§ Пользовательский интерфейс.
§ Сетевые операции, поддержка стека протоколов.
Дополнительные функции:
§ Параллельное или псевдопараллельное выполнение задач (многозадачность ).
§ Взаимодействие между процессами: обмен данными, взаимная синхронизация.
§ Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
§ Разграничение прав доступа и многопользовательский режим работы (аутентификация , авторизация ).
Встроенные программы
Встроенные программы или firmware - это программы, "зашитые" в цифровые электронные устройства.
Утилиты
Утилиты (англ. utility или tool ) - программы, предназначенные для решения узкого круга вспомогательных задач.
Иногда утилиты относят к классу сервисного программного обеспечения .
Утилиты используются для:
§ Мониторинга показателей датчиков и производительности оборудования - мониторинг температур процессора, видеоадаптера; чтение S. M.A. R.T. жёстких дисков;
§ Управления параметрами оборудования - ограничение максимальной скорости вращения CD-привода; изменение скорости вращения вентиляторов .
§ Контроля показателей - проверка ссылочной целостности; правильности записи данных.
§ Расширения возможностей - форматирование и/или переразметка диска с сохранением данных, удаление без возможности восстановления.
Типы утилит
§ Дисковые утилиты
¨ Дефрагментаторы
¨ Проверка диска - поиск неправильно записанных либо повреждённых различным путём файлов и участков диска и их последующее удаление для эффективного использования дискового пространства.
¨ Очистка диска - удаление временных файлов, ненужных файлов, чистка «корзины».
¨ Разметка диска - деление диска на логические диски, которые могут иметь различные файловые системы и восприниматься операционной системой как несколько различных дисков.
¨ Резервное копирование - создание резервных копий целых дисков и отдельных файлов, а также восстановление из этих копий.
¨ Сжатие дисков - сжатие информации на дисках для увеличения вместимости жёстких дисков.
§ Утилиты работы с реестром
§ Утилиты мониторинга оборудования
§ Тесты оборудования
§ ассемблеры - компьютерные программы, осуществляющие преобразование программы в форме исходного текста на языке ассемблера в машинные команды в виде объектного кода .
§ трансляторы - программы или технические средства, выполняющее трансляцию программы.
§ компиляторы - Программы, переводящие текст программы на языке высокого уровня, в эквивалентную программу на машинном языке.
§ интерпретаторы - Программы (иногда аппаратные средства), анализирующие команды или операторы программы и тут же выполняющие их
§ компоновщики (редакторы связей) - программы, которые производят компоновку - принимают на вход один или несколько объектных модулей и собирают по ним исполнимый модуль.
§ препроцессоры исходных текстов - это компьютерные программы, принимающие данные на входе, и выдающие данные, предназначенные для входа другой программы, например, такой, как компилятор
§ Отладчик (debugger)- является модулем среды разработки или отдельным приложением, предназначенным для поиска ошибок в программе.
§ текстовые редакторы - компьютерные программы, предназначенные для создания и изменения текстовых файлов, а также их просмотра на экране, вывода на печать, поиска фрагментов текста и т. п.
§ специализированные редакторы исходных текстов - текстовые редакторы для создания и редактирования исходного кода программ. Специализированный редактор исходных текстов может быть отдельным приложением, или быть встроен в интегрированную среду разработки (IDE).
§ библиотеки подпрограмм - сборники подпрограмм или объектов, используемых для разработки программного обеспечения.
§ Редакторы графического интерфейса
Системы управления базами данных
Системауправлениябазамиданных (СУБД) - специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных.
Так как системы управления базами данных не являются обязательным компонентом вычислительной системы, зачастую их не относят к системному программному обеспечению. Часто СУБД осуществляют лишь служебную функцию при работе других видов программ (веб-серверы, серверы приложений), поэтому их не всегда можно отнести к прикладному программному обеспечению. Поэтому СУБД иногда относят к промежуточному программному обеспечению (Middleware )
Основные функции СУБД
§ управление данными во внешней памяти (на дисках);
§ управление данными в оперативной памяти с использованием дискового кэша ;
§ журнализация изменений , резервное копирование и восстановление базы данных после сбоев;
§ поддержка языков БД (язык определения данных, язык манипулирования данными).
Классификация СУБД по способу доступа к БД
§ Файл-серверные
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере . Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком - высокая загрузка локальной сети.
На данный момент файл-серверные СУБД считаются устаревшими.
Примеры : Microsoft Access , Paradox , dBase .
§ Клиент-серверные
Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера
Примеры : Firebird , Interbase , IBM DB2 , MS SQL Server , Sybase , Oracle , PostgreSQL , MySQL , ЛИНТЕР , MDBS.
§ Встраиваемые
Встраиваемая СУБД - библиотека , которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине.
Примеры: OpenEdge , SQLite , BerkeleyDB , один из вариантов Firebird , один из вариантов MySQL , Sav Zigzag , Microsoft SQL Server Compact , ЛИНТЕР .
Прикладная программа или приложение - программа , предназначенная для выполнения определенных пользовательских задач и рассчитанная на непосредственное взаимодействие с пользователем. В большинстве операционных систем прикладные программы не могут обращаться к ресурсам компьютера напрямую, а взаимодействуют с оборудованием и проч. посредством операционной системы. Также на простом языке - вспомогательные программы.
К прикладному программному обеспечению (application software) относятся компьютерные программы , написанные для пользователей или самими пользователями, для задания компьютеру конкретной работы. Программы обработки заказов или создания списков рассылки - пример прикладного программного обеспечения. Программистов, которые пишут прикладное программное обеспечение, называют прикладными программистами.
Классификация
По типу
§ программные средства общего назначения
§ Текстовые редакторы
§ Системы компьютерной вёрстки
§ Графические редакторы
§ СУБД
§ программные средства специального назначения
§ Экспертные системы
§ Мультимедиа приложения (Медиаплееры , программы для создания/редактирования видео, звука, Text-To-Speech и пр.)
§ Гипертекстовые системы (Электронные словари , энциклопедии, справочные системы)
§ Системы управления содержимым
§ программные средства профессионального уровня
§ САПР
§ АРМ
§ АСУ
§ АСУ ТП
§ АСНИ
§ Биллинговые системы
§ CRM
По сфере применения
§ Прикладное программное обеспечение предприятий и организаций. Например, финансовое управление, система отношений с потребителями, сеть поставок. К этому типу относится также ведомственное ПО предприятий малого бизнеса, а также ПО отдельных подразделений внутри большого предприятия. (Примеры: Управление транспортными расходами, Служба IT поддержки)
§ Программное обеспечение обеспечивает доступ пользователя к устройствам компьютера.
§ Программное обеспечение инфраструктуры предприятия. Обеспечивает общие возможности для поддержки ПО предприятий. Это системы управления базами данных, серверы электронной почты, управление сетью и безопасностью.
§ Программное обеспечение информационного работника. Обслуживает потребности индивидуальных пользователей в создании и управлении информацией. Это, как правило, управление временем, ресурсами, документацией, например, текстовые редакторы , электронные таблицы , программы-клиенты для электронной почты и блогов, персональные информационные системы и медиа редакторы.
§ Программное обеспечение для доступа к контенту. Используется для доступа к тем или иным программам или ресурсам без их редактирования (однако может и включать функцию редактирования). Предназначено для групп или индивидуальных пользователей цифрового контента. Это, например, медиа-плееры , веб-браузеры , вспомогательные браузеры и др.
§ Образовательное программное обеспечение по содержанию близко к ПО для медиа и развлечений, однако в отличие от него имеет четкие требования по тестированию знаний пользователя и отслеживанию прогресса в изучении того или иного материала. Многие образовательные программы включают функции совместного пользования и многостороннего сотрудничества.
§ Имитационное программное обеспечение. Используется для симуляции физических или абстрактных систем в целях научных исследований, обучения или развлечения.
§ Инструментальные программные средства в области медиа. Обеспечивают потребности пользователей, которые производят печатные или электронные медиа ресурсы для других потребителей, на коммерческой или образовательной основе. Это программы полиграфической обработки, верстки , обработки мультимедиа, редакторы HTML , редакторы цифровой анимации, цифрового звука и т. п.
§ Прикладные программы для проектирования и конструирования. Используются при разработке аппаратного («Железо») и программного обеспечения. Охватывают автоматизированный дизайн (computer aided design - CAD), автоматизированное проектирование (computer aided engineering - CAE), редактирование и компилирование языков программирования, программы интегрированной (Integrated Development Environments), интерфейсы для прикладного программирования (Application Programmer Interfaces).
Проприетарное программное обеспечение ( англ. proprietarysoftware ; от proprietary - частное , патентованное, в составе собственности http://ru. wikipedia. org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D1%80%D0%B8%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-slov-0и software - программное обеспечение) - программное обеспечение , являющееся частной собственностью авторов или правообладателей и не удовлетворяющее критериям свободного ПО (наличия открытого программного кода недостаточно). Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Обычно проприетарным называют любое несвободное ПО, включаяполусвободное .
Несвободное ПО, которое разрешает практически неограниченное использование, распространение и изменение (в том числе с распространением изменённых версий) ПО в некоммерческих целях.
Свободное программное обеспечение
Свободное программное обеспечение (СПО) - широкий спектр программных решений , в которых права пользователя («свободы») на неограниченную установку, запуск, а также свободное использование, изучение, распространение и изменениеб (совершенствование) http://ru. wikipedia. org/wiki/%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-gnu. org-0 программ защищены юридически авторскими правами при помощи свободных лицензий . Обычно СПО доступно без всякой оплаты, но может иметь цену, например, в форме взимания платы за компакт-диски или другие носители. Чтобы распространяемое ПО было свободным, получателям должны быть доступны его исходные коды, из которых можно получить исполняемые файлы, с соответствующими лицензиями.
Движение СПО зародилось в 1983 году, когда Ричард Столлман сформировал идею о необходимости дать программную свободу (англ. softwarefreedom ) пользователям. В 1985 году Столлман основал Фонд свободного программного обеспечения , чтобы обеспечить организационную структуру для продвижения своей идеи.
Бизнес-модели СПО как правило основаны на принципе расширения возможностей, например новые объекты применения, обучение, интеграция, настройка или сертификация. В то же время, некоторые бизнес-модели, которые работают с проприетарным программным обеспечением, не совместимы со свободным программным обеспечением, особенно те, которые заставляют пользователей платить за лицензию, чтобы законно использовать программный продукт.
§ Программу можно свободно использовать с любой целью («нулевая свобода »).
§ Можно изучать, как программа работает, и адаптировать её для своих целей («первая свобода »). Условием этого является доступность исходного текста программы.
§ Можно свободно распространять копии программы - в помощь товарищу («вторая свобода »).
§ Программу можно свободно улучшать и публиковать свою улучшенную версию - с тем, чтобы принести пользу всему сообществу («третья свобода »). Условием этой третьей свободы является доступность исходного текста программы и возможность внесения в него модификаций и исправлений.
Возможность исправления ошибок и улучшения программ - самая важная особенность свободного и открытого программного обеспечения, что просто невозможно для пользователей закрытых частных программ даже при обнаружении в них ошибок и дефектов, количество которых, как правило, неизвестно никому.
Только удовлетворяющая всем четырём перечисленным принципам программа может считаться свободной программой, то есть гарантированно открытой и доступной для модернизации и исправления ошибок и дефектов, и не имеющей ограничений на использование и распространение. Нужно подчеркнуть, что эти принципы оговаривают только доступность исходных текстов программ для всеобщего использования, критики и улучшения, и права пользователя, получившего исполнимый или исходный код программы, но никак не оговаривают связанные с распространением программ денежные отношения, в том числе не предполагают и бесплатности . В англоязычных текстах здесь часто возникает путаница, поскольку слово «free» по-английски означает не только «свободное», но и «бесплатное», и нередко употребляется по отношению к бесплатному программному обеспечению , которое распространяется без взимания платы за использование, но недоступно для изменения сообществом, потому что его исходные тексты не опубликованы. Такое бесплатное ПО вовсе не является свободным. Наоборот, свободное ПО вполне можно распространять (и распространяют), взимая при этом плату, однако соблюдая при этом критерии свободы: каждому пользователю предоставляется право получить исходные тексты программ без дополнительной платы (за исключением цены носителя), изменять их и распространять далее. Всякое программное обеспечение, пользователям которого не предоставляется такого права, является несвободным - независимо от любых других условий.
Открытый доступ к исходным текстам программ является ключевым признаком свободного ПО, поэтому предложенный несколько позднее Эриком Реймондом термин «open source software» (ПО с открытым исходным текстом) некоторым представляется даже более удачным для обозначения данного феномена, чем изначально предложенный Столлманом «free software». Столлман настаивает на различии этих двух понятий, так как слова «open source» указывают лишь на наличие одного, не самого важного (хотя и необходимого для реализации двух из четырёх свобод), по его мнению, из свойств, присущих свободному ПО - возможности увидеть исходный код.
Открытое программное обеспечение ( англ. open-sourcesoftware ) - программное обеспечение с открытым исходным кодом . Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет пользователю принять участие в доработке самой открытой программы , использовать код для создания новых программ и исправления в них ошибок - через заимствование исходного кода, если это позволяет совместимость лицензий, или через изучение использованных алгоритмов, структур данных, технологий, методик и интерфейсов (поскольку исходный код может существенно дополнять документацию, а при отсутствии таковой сам служит документацией).
Термин opensource (англ. открытое программное обеспечение ) был создан вместе с определением в 1998 году Эриком Реймондом и Брюсом Перенсом , которые утверждали, что термин freesoftware (свободное программное обеспечение ) в английском языке неоднозначен и смущает многих коммерческих предпринимателей .
Подавляющее большинство открытых программ является одновременно свободными . Определения открытого и свободного ПО не полностью совпадают друг с другом, но близки, и большинство лицензий соответствуют обоим.
Отличие между движениями открытого ПО и свободного ПО заключается в основном в приоритетах. Сторонники термина «open source» делают упор на эффективность открытых исходников как метода разработки, модернизации и сопровождения программ. Сторонники термина «free software» считают, что именно права на свободное распространение, модификацию и изучение программ являются главным достоинством свободного открытого ПО.
Существуют программы, имеющие открытый исходный код, но не являющиеся свободными, например, UnRAR, распаковщик RAR -архивов. Его исходный код находится в открытом доступе, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов. Так же существует целый класс программ, называемых коммерческим ПО с открытым исходным кодом или Open Core, которые используют термин «Open Source» применительно к несвободному программному обеспечению .
Исходные коды открытых программ выпускаются либо как общественное достояние , либо на условиях «свободных» лицензий - как, например, GNU General Public License или BSD License . Свободная лицензия позволяет использовать исходный код программы для своих нужд с минимальными ограничениями, не противоречащими определению OpenSource. org. Таким ограничением может быть требование ссылаться на предыдущих создателей или требование сохранять свойство открытости при дальнейшем распространении той же самой или модифицированной открытой программы (копилефт ). В некоторых случаях (например, Apache или FreeBSD ) эти ограничения очень малы, в других (например, GNU General Public License ) достаточно распространять ПО вместе с исходным кодом и текстом лицензии, не изменяя её.