Перспективы развития программного обеспечения. Презентация на тему "тенденции развития программного обеспечения"

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Перспективы развития программного обеспечения

Существующая система

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

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

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

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

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

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

Распараллеливание выполнения

однопроцессорная многопроцессорная система

Когда параллельность обслуживания запросов или выполнения процессов помогает работе, а когда она может сильно помешать?

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

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

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

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

Алгоритмы и структуры оперативной памяти

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

Поэтому следующим направлением перспектив представляется разработка алгоритмов и структур данных, занимающих большие объемы, размещаемые в оперативной памяти. Ранее такие методы применялись, в частности, в таблицах предвычисленых значений и в табличных вычислениях. Представляется перспективным и развитие алгоритмов и структур данных, применяющих для сокращения объемов вычислений намного большие объемы оперативной памяти. Например, применение табличных вычислений, а также того, что будет изобретено в этом направлении, для решения задач преобразований, например, кодирования и декодирования данных: СУБД, видео, звук, графика, задачи поиска и т. д.

Структуры и алгоритмы быстрой памяти

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

В настоящее время получают распространение твердотельные накопители SSD, имеющие колоссальную скорость доступа, и фактор соотношения времени доступа к диску и оперативной памяти изменился. Как следствие этого, можно предположить направление исследований по изменению принципов доступа к базам данных, например замена структур B*-tree на RB-tree или другие, отход от принципов кеширования блоков и изобретение чего-то иного.

Быстрое портирование на разные операционные системы

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

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

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

В семействе операционных систем Windows x86-32 применялось интересное решение - операционная система легко выполняет программы, написанные для других систем - DOS, Win16, Win32, подмножество OS/2 и Posix, и не будет удивительным, если появится операционная система, ну например UniOS, выполняющая программы для самых разных других операционных систем без применения отдельных промежуточных виртуальных систем или эмуляторов. В различных операционных системах такие подходы уже применяются, охватывая пока лишь архитектурно близкие операционные системы.

Линейные алгоритмы и структуры

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

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

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

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

Направления поиска перспектив

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

Вообще говоря, появление почти любого нового способа обмена информацией, ее передачи или обработки приводило к небольшой технической а иногда и политической революции:

письменность

книгопечатание

массовая печать

телевидение

перфокарты

беспроводный доступ

оптические каналы

Из событий недавнего прошлого:

Ключевым фактором беспорядков на Британских островах стало распространение смартфонов BlackBerry, применяющих настоящие средства криптографии и не дававшие полиции возможность понять содержание передаваемой сообщниками погромов информации.

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

Не все новые способы переноса и обработки информации закрепились в применении. Так, появившиеся в свое время ZIP-drive носители на 120 Mb были с легкостью убиты перезаписываемыми CD на 650/700 Mb, а вот средства Wi-Fi так и остались в эксплуатации и массовом применении, хотя к беспроводным средствам относятся еще, видимо, с десяток иных технологий.

Размещено на Allbest.ru

...

Подобные документы

    Принцип работы ядра процессора, типы архитектур ядер операционных систем. Сокет(Socket), кэш-память, контроллер ОЗУ, северный мост. Внутренняя архитектура процессоров Intel и AMD: расшифровка названий, технологии процессоров, сравнение производительности.

    реферат , добавлен 05.05.2014

    История создания и развития компьютерных процессоров Intel. Изучение архитектурного строения процессоров Intel Core, их ядра и кэш-память. Характеристика энергопотребления, производительности и систем управления питанием процессоров модельного рядя Core.

    контрольная работа , добавлен 17.05.2013

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

    курсовая работа , добавлен 21.06.2013

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

    реферат , добавлен 29.04.2010

    Концепция построения виртуальной лаборатории (ВЛ) "Программирование микроконтроллерных систем". Принцип построения лабораторного практикума. Архитектура аппаратного обеспечения ВЛ. Аппаратные способы реализации генератора сигналов произвольной формы.

    магистерская работа , добавлен 29.06.2009

    Классификация основных видов памяти компьютера. Использование оперативной памяти для временного хранения данных, используемых для работы программного обеспечения. Расчет потребления электроэнергии, формирование квитанции для потребителя в Microsoft Excel.

    курсовая работа , добавлен 23.04.2013

    Система контроля и управления доступом как базовый компонент интегрированных систем. Структура и основные элементы систем видеонаблюдения. Области применения и обзор программного обеспечения систем видеонаблюдения. Интегрированные системы безопасности.

    дипломная работа , добавлен 25.07.2015

    Понятие высоконагруженных компьютерных систем. Традиционные качества, интерактивность, распределенная система, большое количество пользователей. Распределение задач сервером. Балансировка нагрузки. Исследование высоконагруженных систем Google и Вконтакте.

    дипломная работа , добавлен 11.12.2015

    Разновидности, производительность современных процессоров. Предназначение оперативной памяти. Микросхемы персонального компьютера. Постоянное запоминающее устройство. Тактико-технических характеристики процессоров. Перспективы развития памяти компьютера.

    реферат , добавлен 22.11.2016

    Методология структурного анализа и проектирования информационных систем. Базовый стандарт процессов жизненного цикла программного обеспечения. Цели и принципы формирования профилей информационных систем. Разработка идеальной модели бизнес-процессов.

Московский государственный университет

экономики, статистики и информатики

Кафедра вычислительных систем,

сетей и телекоммуникаций

Реферат

на тему: “Современное программное
обеспечение ПВМ”

Дата готовности работы 16.11.99

Реферат выполнила студентка I курса

заочного отделения

факультета статистики

Преподаватель: Михаил Юрьевич Шишков

Москва, 1999 г.

План выполнения реферата

Вступление

Современное программное обеспечение ПВМ.

Классификация программного обеспечения современных ПВМ

Перспективные операционные системы и оболочки, их назначение, возможности и особенности.

Система Windows и сопутствующие ПО.

Современные пакеты прикладных программ.

Заключение

Список использованной литературы

Вступление

Компьютеры - это универсальные устройства для обработки информации. В отличие от телефона, магнитофона или телевизора, осуществляющих только заранее заложенные в них функции, персональные компьютеры могут выполнять любые действия по обработке информации. Для этого необходимо составить для компьютера на понятном ему языке точную и подробную последовательность инструкций (т.е. программу), как надо обрабатывать информацию. Сам по себе компьютер не обладает знаниями ни в одной области своег оприменения, все эти знания сосредоточены в выполняемых на компьютере программах. Поэтому часто употребляемое выражение “компьюетр сделал” означает ровно то, что на компьютере была выполнена программа, которая позволила выполнить соответствующее действие.

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

Таким образом, для эффективного использования компьютера необходимо знать назначение и свойства необходимых при работе с ним программ. В своем реферате я постараюсь описать основные разновидности программ для персонального компьютера.

Современное программное обеспечение ПВМ

Создание программного обеспечения для персональных компьютеров за какой-то десяток лет превратилось из занятия программистов-одиночек в важную и мощную сферу промышленности. Только в США более 50 фирм-производителей программного обеспечения имеют объемы продаж более 10 млн. долларов, а у десяти из них объемы продаж превышают 100 млн. долларов. Поэтому развитие программного обеспечения, предназначенного для широкого круга пользователей, происходит уже не в состязании индивидуальных программистов, а в процессе ожесточенной конкурентной борьбы между фирмами-производителями программного обеспечения. Доля некоммерческого программного обеспечения постоянно снижается и все более ограничивается программами, создаваемыми в процессе научных исследований или для собственного удовольствия.

Важнейшие свойства программ

При разработке коммерческих программ основной задачей фирм-разработчиков является, естественно, обеспечение их успеха на рынке. Для этого необходимо, чтобы программы обладали следующими качествами:

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

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

    простота освоения программы даже начинающими пользователями, для чего используются информативные подсказки, встроенные справочники и подробная документация;

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

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


Классификация программного обеспечения
современныхПВМ

Программы, работающие на компьютере, можно разделить на три категории:

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

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

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

Понятно, что грани между этими тремя класами программ весьма условны, например в состав программы системного характера может входить редактор текстов, т.е.е программа прикладного хактера.

Системные программы

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

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

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

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

    графический интерфейс, т.е. набор средств для вывода изображений на экран и манипулирования ими, построения меню, окон на экране и т.д.;

    мультипрограммирование, т.е. возможность одновременного выполнения нескольких программ;

    расширенные средства для обмена информацией между программами.

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

Вспомогательные программы (утилиты)

К системным программам можно также отнести большое количество так называемых утилит, т.е. программ вспомогательного назначения. Ниже я кратко опишу некоторые разновидности этих программ. Часто утилиты объедияются в комплексы.

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

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

Антивирусные программы предназначены для предотвращения заражения компьютерным вирусов и ликвидации последствий заражения вирусом.

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

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

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

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

Программы динамического сжатия дисков позволяют увеличить количество информации, хранимой на дисках путем ее динамического сжатия. Эти программы сжимают информацию при записи на диск, а при чтении восстанавливают ее висходном виде. Таким образом, для пользователя эти программы незаметны, они проявляются только увеличением емкости дисков и изменением скорости доступа (кстати, скорость доступа при этом может не уменьшиться, а даже увеличиться). Если на диске хранятся программы, то увеличение емкости невелико - в 1,5 раза, но для баз данных оно может достигать 4-5 раз.

Программы для автономной печати (спулеры) позволяют распечатывать файлы на принтере параллельно с выполнением другой работы на компьютере. Некоторые из этих программ вдобавок обеспечивают и некоторое ускорение печати. Многие программы, например Microsoft Windows, Microsoft Word для DOS, имеют встроенные средства для поддержки автономной печати.

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

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

Программы управления локальной сетью

Пользователи компьютеров, объединеных в локальную сеть, могут передавать друг другу сообщения, совместно использовать базы данных или устройства (например, принтеры), что значительно повышает удобство и эффективность коллективного труда. Для объединения компьютеров в локальную сеть компьютеры необходимо соединить специальными проводами (кабелями) и вставить в них платы сетевых адаптеров, возволяющих передавать информацию по кабелям сети. (Имеются, в прочем, сети, в которых обмен инфорацией осуществляется без специальных проводов - с помощью радиоволн или через осветительную сеть.) однако одних проводов и сетевых адаптеров недостаточно, необходимы программы, обеспечивающие обмен информацией по локальной сети.

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

Прикладные программы

Для IBM PC разработаны и используются сотни тысяч различных прикладных программ для различных применений. Наиболее широко применяются программы:

    подготовки текстов (документов) на компьютере - редакторы текстов;

    подготовки документов типографского качества - издательские системы;

    обработки табличных данных - табличные процессоры;

    обработки массивов информации - системы управления базами данных.

Я в своем реферате расскажу о наиболее часто используемых типах прикладных программ.

Табличные процессоры обеспечивают работу с большими таблицами чисел. При работе с табличным процессором на экран выводится прямоугольная таблица, в клетках которой могут находиться числа, пояснительные тексты и формулы для расчета значения в клетке по имеющимся данным. Таблица может быть больше размеров экрана, в этом случае в каждый моент виден только фрагмент таблицы, но с помощью клавиш перемещения курсора можно перемещаться по таблице. Все распространенные табличные процессоры позволяют перевычислять значения элементов таблиц по заданным формулам, строить по данным в таблице различные графики и т.д. многие из них предоставляют и дополнительные возможнсоти. Некоторые из них расширяют возможности по обработке данных - трехмерные таблицы, создание собственных входных и выходных форм, мкрокаманды, связь с базами данных и т.д. наибольшей популярностью пользуются табличные процессоры Lotus - 1-2-3, Quattro Pro, Microsoft Excel, Super Calc и др.

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

Однако часто необходимо решать задачи, в которых участвует много различных видов объектов и соответственно много информационных массивов, связанных друг с другом различными соотношениями. В таких случаях требуется создавать специализированные информационные системы, в которых нужная обработка данных выполняется наиболее естественным для пользователей способом - с удобным представлением входных данных, выходных форм, графиков и диаграмм, запросов на поиск и т.д. для решения таких задач используются более сложные СУБД, опзволяющие с помощью специальных средств (обычно языков програмирования) описывать данные и действия с ними. Одной из первых таких СУБД была DBase фирмы Ashton-Tate (позднее приобретенная фирмой Borland), широко распространены и совместимые с DBase системы, например Fox Pro (ныне продаваемая фирмой Microsoft). Но почти во всех таких СУБД создание информационных систем достаточно трудоемко и сложно, поскольку должно осуществляться с помощью срдеств весьма низкого уровня. Поэтому разработка даже несложных на первый взгляд информационных систем часто требует многих недель и месяцев кропотливого программирования. Впрочем, в последнее время многие фирмы активно внедряют в поставляемые СУБД средств, облегчающие разработку: запросы по образцу, встроенные генераторы программ, форм и отчетов, библиотеки классов и т.д.

Графические редакторы позволяют создавать и редактировать картинки на экране компьютера. Как правило, пользователю предоставляются возможности рисования линий, кривых, раскраски областей экрана, создания надписей различными шрифтами и т.д. Большинство редакторов позволяют обрабатывать изображения, полученные с помощью сканеров, а также выводить полученные картинки в таком виде, чтобы они могли быть включены в документ, подготовленный с помощью текстового редактора или издательской системы. Некоторые редакторы обеспечивают возможность получения изображений трехмерных объектов, профессиональыне средства цветообработки и т.д.

Системы деловой и научной графики позволяют наглядно представлять на экране различные данные в зависимости. Системы деловой графики дают возможность выводить на экран различные виды графиков и диаграмм (гистограммы, круговые и секторные диаграммы и т.д.). среди этих систем наиболее популярны программы Microsoft Chart, Boeing, Graph и другие, при этом пакет Harvard Graphics имеет и возможности научной графики. В последнее время системы деловой графики используются меньше, так как аналогичные возможности включены в ряд табличных процессоров и баз данных.

Системы автоматизированного проектирования (CАПР) позволяют осуществлять черчение и конструирование различных механизмов с помощью компьютера. Среди этих систем лидером является Auto Cad, но для многих задач целесообразно использование других САПР.

Интегрированные системы сочетают в себе возможность системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности. Как правило, все компоненты интегрированной системы имеют схожий интерфейс, что облегчает обучение работе с ними. Часто пользователю предоставляется встроенный язык, позволяющий создавать на базе интегрированной системы различные надстройки, выполняющие нужные пользователю функции.

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

Системы программирования

Даже при наличии десятков тысяч программ для IBM PC пользователям может потребоваться что-то такое, чего не делают (или делают, но не так) имеющиеся программы. В этих случаях следует использовать системы программирования, т.е. системы для разработки новых программ. Современные системы программирования для персональных компьютеров обычно предоставляют пользователю весьма мощные и удобные средства для разработки программ.

Для популярных языков программирования на IBM PC существует множество систем программирования. Естественно, что программисты предпочитают те системы, котоыре легки в использовании, позволяют получить эффективные программы, имеют богатые библиотеки функций (подпрограмм) и мощные возможности для отладки разрабатываемых программ. В качестве примеров таких систем программирования можно назвать Turbo C, Turbo Pascal, Microsoft Basic.

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

Список использованной литературы

    Вычислительные машины, системы и сети: Учебник/А.П. Пятибратов, С.Н. Беляев, Г.М. Козырева и др.; Под ред. проф. А.П. Пятибратова. - М.: Финансы и статистика, 1991. - 400 с.

    Черняк Н.Г. и др. Архитектура вычислительных систем и сетей: Учеб. пособие / Н.Г. Черняк, И.Н. Буравцева, Н.М. Пушкина. - 2-е изд., перераб. и доп. - М.: Финансы и статистика, 1986. - 318 с.

    Фигурнов В.Э. IBM PC для пользователя, 2-е изд., перераб и доп. - М.: Финансы и статистика, Компьютер Пресс, 1991. - 288 с.

    Фигурнов В.Э. IBM PC для пользователя. Изд. 6-Е перераб. И доп. - М.: ИНФРА-М, 1996. - 432 с.

    Макдона Р. Основы микрокомпьютерных вычислений: Пер. с англ./ Т.Г. Никольской; Под ред. В.Ф. Шаньгина. - М.: Высш. Шк., 1989. - 272 с.

    А.Н. Ворощук. Основы ЦВМ и программирование. Главная редакция физико-математической литературы изд-ва “Наука”, М., 1978.

    Абель П. Язык Ассемблера для IBM PC и программирования/ Пер. с англ. Ю.В. Сальникова. - М.: Высш. Шк., 1992. - 447 с.

    Овечкин Ю.А. Микроэлектроника: Учебник для техникумов. - М.: Радио и связь, 1982 - 288 с.

    Каган Б.М. Электронные вычислительные машины и системы: Учеб. пособие для вузов. - 2-е изд., перераб. и доп. - М.: Энергоатомиздат, 1985. - 552 с.

Современное программное обеспечение - это рынок широких возможностей и жесткой конкуренции. Отечественные и зарубежные компании вкладывают все свои интеллектуальные ресурсы в создание новых востребованных продуктов.

Значимость, задачи, разновидности и прогнозы современного программного обеспечения

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

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

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

Особенности и разновидности системного программного обеспечения

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

Системное ПО включает в себя такие наиболее распространенные программы:

  • Операционная система;
  • Драйверы;
  • Операционные оболочки;
  • Программы для создания резервных копий на дисках;
  • Программы-антивирусы;
  • Программы для диагностики компьютера;
  • Коммуникационные программы и т.д.

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

Особенности прикладного программного обеспечения

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

Наиболее распространенные прикладные программы:

  • Табличные процессоры;
  • Системы управления базами данных;
  • Графические редакторы;
  • Системы деловой и научной графики;
  • Бухгалтерские программы;
  • Программы автоматического проектирования.

Особенности современного технического и программного обеспечения

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

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

Мировой современный рынок программного обеспечения

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

Современный рынок российского ПО

В России также активно развивается IT сектор. Тысячи талантливых мастеров работают над созданием инновационных программ. Русское программное обеспечение продается не только внутри страны, но и за ее пределами. В 2015 году объем экспортной продукции данного типа составил больше чем 7 миллиардов долларов США. Это говорит о том, что данная отрасль стала важной для экономики страны.

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

Посещение выставки «Связь» для ознакомления с последними тенденциями в мире ПО

Для тех, кто хочет быть в курсе последних новинок в области современного программного обеспечения, будет полезной для посещения выставка «Связь», которая состоится в мае в московском «Экспоцентре». В рамках мероприятия будут рассматриваться инновации в сфере коммуникаций, связи и информационных технологий. Также в ходе выставки состоится большой трехдневный Медиа-Коммуникационный Форум, 5 конференционных потоков и более 40 дискуссионных мероприятий. Программа главного события года в данной сфере обещает быть насыщенной и интересной!

В выставке будут участвовать экспоненты из более чем 20 стран, а посетят ее в качестве гостей резиденты более 30 государств. Интернациональное событие поможет вам ознакомиться с последними новинками современного международного рынка, выбрать для себя наиболее полезные продукты, завязать выгодные партнерские отношения и заключить сделки. Вы можете обменяться опытом с коллегами, поучаствовать в специальных мероприятиях для экспонентов. Зарегистрироваться для участия в мероприятии можно прямо на сайте «Экспоцентра» или связавшись со специалистами по телефону. Желающие посетить мероприятие в качестве гостей могут онлайн приобрести билеты, что поможет быстро и с комфортом стать участником самого грандиозного события года в области связи и коммуникационных технологий.

БЕЛОРУССКИЙ ИНСТИТУТ ПРАВОВЕДЕНИЯ

Программное обеспечение.

Этапы развития и перспективы

ТЕМАТИЧЕСКИЙ ПЛАН

    Программное обеспечение и его основные компоненты.

    Этапы развития программного обеспечения

    Тенденции развития программного обеспечения

краткая аннотация

Рассматривается принцип программного управления и его современная реализация. Дается программного обеспечения, структура. Анализируются этапы и тенденции его развития.

1. Принцип программного управления

Действия, выполняемые современными вычислительными машинами, определяются командами программы. Такая организация работы машины называется принципом программного управления . Согласно этому принципу никакая вычислительная машина сама задач не решает: она лишь выполняет действия, заложенные разработчиками программ.

Для современных систем обработки информации характерна многоуровневая, т.е. иерархическая организация программного управления. Более низким уровнем в этой организации является микропрограммирование. Микропрограммирование это упорядоченный метод кодового управления отдельными элементами
машины; такими как: триггеры, транзисторы, вентили, интегральные схемы и т.п., – для выполнения элементарных операций.
Элементарные операции, происходящие в устройстве машины,
называются
микрооперациями . К ним относятся: передача информации с одного регистра на другой; выполнение одноразрядных сдвигов в пределах регистра и др.

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

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

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

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

Рис. 1. Иерархия программирования

2. Программное обеспечение ЭВМ

и его основные компоненты

В современных вычислительных машинах ряд функций выполняется аппаратурой и составляет аппаратное или техническое обеспечение ЭВМ (hardware), а ряд – комплексом программ, называемым программным обеспечением (software) (рис. 2).

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

Рис.2. Кольцевая структура вычислительной системы

Программное обеспечение является неотъемлемой частью любой вычислительной машины. Оно освобождает пользователей от необходимости знать специфические свойства каждого устройства, облегчает связь с машиной каждого конкретного пользователя и организует доступ к системе нескольких пользователей, осуществляя распределение ресурсов системы. Чем сложнее и более развито программное обеспечение, тем проще общение с машиной. При оценке современных машин таких основных характеристик, как быстродействие и объем памяти оказывается недостаточно. К ним должны присовокупляться характеристики программного обеспечения. По мере усложнения ЭВМ растет и значение программного обеспечения. В настоящее время оно составляет 60-70% от стоимости вычислительной системы.

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

По выполняемым функциям программное обеспечение можно разделить на две большие группы: системное и прикладное.

– это совокупность программ, рассчитанных на широкий круг пользователей и предназначенных для организации вычислительного процесса и (или) решения часто встречающихся задач (ГОСТ 24. 003-84). К системному программному обеспечению относят операционную систему и ее окружение, системы программирования, вспомогательные программы.

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

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

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


- совокупность программ, предназначенных для решения специальных задач.
Среди них большую группу составляют пакеты прикладных программ, которые могут быть как общего назначения, так и ориентированы на реализацию либо некоторых методов, либо некоторых проблем (рис. 3). Сюда входят и уникальные программы, т.е. программы пользователя.

Рис.3. Структура программного обеспечения

Пакеты прикладных программ (ППП) - комплекс программ для решения задач по некоторой теме или предмету и оформленные согласно требованиям к такому продукту. Например, пакеты бухгалтерских программ.

- это чаще всего программы, созданные пользователем и не оформленные по стандарту в виде программного продукта. По мере развития они иногда переходят в предыдущие группы.

Различают пакеты прикладных программ общего и специального назначения. Пакеты специального назначения делятся на методо-ориентированные и проблемно-ориентированные.

В основе методо-ориентированных ППП лежит реализация того или иного математического метода решения задачи:

    математического программирования (линейного, динамического, статистического и др.);

    сетевого планирования и управления;

    теории массового обслуживания.

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

ППП общего назначения ориентированы на автоматизацию широкого класса задач пользователя. К этому классу относятся:

    текстовые процессоры;

    табличные процессоры;

    системы презентации;

    графические процессоры;

    системы управления базами данных;

    интегрированные системы;

    системы автоматизации проектирования;

    оболочки экспертных систем, систем поддержки принятия решений.

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

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

Электронная таблица – это компьютерный эквивалент обычной таблицы, в клетках (ячейках) которой записаны данные различных типов: даты, тексты, формулы, числа. Электронная таблица является самой распространенной и мощной технологией для работы с данными. Для управления электронной таблицей созданы специальные программные продукты – табличные процессоры. Главное достоинство электронной таблицы – это возможность быстрого пересчета всех данных, связанных формульными зависимостями при изменении значения любого операнда. Объектом табличной обработки является динамическая таблица (SpreadSheet) – электронный эквивалент обычного бумажного бланка, который содержит ряд строк и столбцов. Основными областями применения таких пакетов являются экономика и планирование, подготовка отчётов, сводок и т.д.

База данных это совокупность данных, организованных по определенным правилам, предусматривающая описания, хранения и манипулирования данными, независимо от прикладных программ . Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам, чтобы впоследствии быстро делать выборку с произвольным сочетанием признаков. Для управления данными в базе данных, ведения базы данных и обеспечения взаимодействия с прикладными программами используются системы управления базами данных (СУБД).

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

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

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

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

В настоящее время среди прикладного программного обеспечения общего характера наиболее известны текстовые процессоры, табличные процессоры и системы управления базами данных. В этих областях разработано много программ, и они продолжают развиваться. У них появляется много новых функций и возможностей. этими программами отличается друг от друга: используются различные функциональные клавиши, функции одинаковых команд у них часто различные и т.д., к тому же часто различные программы имеют различный формат рабочих файлов, поэтому файлы, записанные в одной программе, не воспринимаются другой и приходится создавать дополнительные программы для обеспечения совместимости данных. Чтобы решить эти проблемы создаются интегрированные системы. В них сделано следующее:

    ограничено множество функций прикладных областей до такого их количества, которое наиболее часто используется на практике;

    осуществлена внутренняя совместимость модулей друг с другом и внешняя совместимость с другими программами.

В результате этого все модули, входящие в интегрированную систему, имеют единую конструктивную организацию.

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

Вопросы для самоконтроля

    Понятие программного обеспечения

    Системное программное обеспечение

    Прикладное программное обеспечение

    Понятие операционной системы и ее оболочки

    Понятие пакета прикладных программ

    Пакеты прикладных программ общего назначения

3. Этапы развития программного обеспечения

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

Первое поколение – зарождение ПО.

Второе поколение – развитие ПО: использование алгоритмических языков и библиотек стандартных программ.

Третье поколение – широкое использование ПО, появление развитых операционных систем.

Четвертое поколение – ПО, дающее возможность коллективного использования ЭВМ.

Первое поколение

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

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

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

Чтобы автоматизировать работу по включению стандартных программ в программу пользователя, были созданы компилирующие и интерпретирующие программы. Компилирующая программа (система) работает однократно при вводе в память основной программы. При этом, в нужных местах вызываются соответствующие стандартные программы и вставляются в общую программу вычислений. Интерпретирующая программа работает всякий раз, когда возникает необходимость обращения к стандартной программе. Существовали и смешанные программы, использующие принципы компиляции и интерпретации.

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

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

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

Второе поколение

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

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

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

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

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

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

    Выполнение вспомогательных работ, облегчающих реализацию различных этапов вычислительного процесса.

В это время бурное развитие получили языки программирования, которые ориентировались на определенные классы задач, а не на особенности ЭВМ. Перевод записи алгоритма с такого языка на язык конкретной машины выполняет специальная программа-транслятор.

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

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

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

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

Третье поколение

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

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

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

Программное обеспечение машин второго поколения содержало 350-400 тысяч команд, а только дисковая операционная система для ЕС ЭВМ содержала порядка 1 млн. команд.

В 1975 г. закончена разработка операционной системы ОС – 4.0, позволяющей подключать к ЭВМ и обслуживать многих абонентов, оснащенных алфавитно-цифровыми графическими дисплеями. В 1976 году операционные системы содержали программы, общий объем которых превышает миллион машинных слов.

Операционная система позволяет использовать наиболее распространенные языки программирования того времени: фортран, Алгол-60, Кобол, ПЛ/1, РПГ. Для каждого из них создаются трансляторы и библиотеки стандартных программ. Использование названных языков и трансляторов открывает доступ к ЭВМ непрофессиональным пользователям. Трансляторы подробно сообщают об ошибках, обнаруженных как в процессе трансляции, так и при выполнении оттранслированных программ. Они имеют также развитые средства отладки.

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

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

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

Четвертое поколение

Этапы эволюции взаимоотношения «человек-машина» представляются следующими: от прямого использования ЭВМ одним программистом, в распоряжении которого представлены все ресурсы машины, – через мультипрограммирование, когда программист полностью отстранен от машины, – к системам разделения времени и разговорному режиму, когда много программистов, сидя за своими индивидуальными пультами, управляют ходом решения своих задач независимо друг от друга и одновременно используют мощности ЭВМ.

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

Поставлена задача о необходимости как можно скорее переходить к практике разработки, поставки, сборки и наладки у потребителей полных комплексов технических и программных средств, составляющих законченные автоматизированные системы обработки данных различного класса. Одним из наиболее перспективных направлений в развитии общего программного обеспечения ЭВМ этого поколения является разработка пакетов программ, расширяющих функции операционных систем. С этих позиций следует отметить разработанные в 1976 г. пакеты KAMA (для управления телеобработкой данных) и ОКА (для управления базами данных). В ВЦ АН СССР разработана диалоговая информационно-логическая система ДИЛОС.

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

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

Программное обеспечение усложняется в связи с повсеместным введением интерактивных вычислений – использование режима разделения времени,

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

От поколения к поколению ЭВМ, стоимость электронных компонентов в вычислительных системах постоянно уменьшается, а затраты на программную часть неуклонно возрастают. По данным американских специалистов в 1965 году доля программного обеспечения составляла 5% от общей
стоимости вычислительной системы, в 1976 г. – 75%, а к 1985 г., порой, превышала 90%. Стоимость выполнения одной команды за 10 лет, начиная с 1977г., снизилась на два порядка, а производительность программистов по-прежнему возрастала мало: примерно на З% в год.

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

    схемы для преобразования адресов по описателям (дескрипторам);

    средства для мультипрограммирования и многопроцессорности;

  • разнообразные (реализованные, как правило, микропрограмм образом) макрокоманды;
  • аппаратное управление памятью иерархической структуры;

    аппаратура для примитивного планирования.

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

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

Преимущества интерпретации проявляются особенно заметно, когда интерпретирующая система встраивается в конструкцию ЭВМ, а не прикладывается к ней в виде специальных программ. Были сконструированы в ЭВМ серии «Мир». При создании 4-го поколения ЭВМ это направление становится все более популярным. Его реализации фактически приводит к тому, что машинные языки подтягиваются на уровень языков пользователя, открывая новые возможности их развития.

Основным средством общения с ЭВМ являются алгоритмические языки. Их количество и разнообразие неуклонно возрастает: уже в 1977 г. их было несколько тысяч. Все больше сил уделяется созданию программных процессоров реализации языков. Наиболее крупным проектом является проект многоязыковой системы программирования БЕТА, разработанной коллективом ВЦ СО АН СССР под руководством А.П. Ершова. Система ориентирована на языки Алгол-68, PL/1, SIMULA и др.

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

В целом, совершенствование программного обеспечения ставит перед собой следующие задачи:

    диалог человек-машина на любом языковом уровне;

    автоматическое исправление ошибок пользователей;

    получение пользователем информации любой степени подробности о состоянии вычислительного процесса и обрабатываемых данных;

    широкое использование принципа самоопределяемости данных;

    почти полное отсутствие ограничений на выбор удобного для пользователей представления предложений языка;

    объединение и упрощение языков программированием, их ориентация на структурное программирование;

    схемная реализация программного обеспечения (его наиболее часто используемой части);

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

  • использование проблемно-ориентированных систем программирования;
  • генерация программного обеспечения для решения классов задач;

    оптимизация программного обеспечения;

    комплексное рассмотрение проблем предприятия.

Все это значительно упрощает работу программиста, сокращая время трансляции, позволяет создавать многопультовый режим объединения, отладки и составления программы непосредственно за пультом. Время на отладку в машинах 4-го поколения сокращается примерно в 4 раза.

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

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

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

Вопросы для самоконтроля

    Программное обеспечение:

    первого поколения;

    второго поколения;

    третьего поколения;

    четвертого поколения;

    пятого поколения.

4. Тенденции развития программного обеспечения

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

    функциональностью, т.е. полнотой удовлетворения потребностей пользователя;

    наглядностью, удобным, интуитивно понятным и привычным пользователю интерфейс;

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

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

    стандартизацией.

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

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

    ниспадающие меню;

    панели для выбора, ответа;

    встроенные диалоговые справочники и т.п.

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

Преобладающими в развитии программного обеспечения являются следующие тенденции:

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

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

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

      Наличие битовой карты, высокая разрешающая
      способность, цветной дисплей. Каждый объект, отображаемый на экране, имеет, по крайней мере, два представления: внутреннее и внешнее. Внутреннее представление (не видимое) основано на некоторой модели мира, а внешнее (видимое) выводится на экран и состоит из пикселей. Это пассивное изображение называют битовой картой, так как оно создано из отдельных битов.

      What You See Is What You Get (WYSIWYG) – что видишь (на экране), то и получаешь (при печати на бумаге).

      Прямая манипуляция . Пользователь должен манипулировать «созданным миром» без посредника (прямая манипуляция), не задумываясь о проблемах манипуляции. Например, вставляемая в текст картинка должна ложиться именно в то место, которое для нее определено пользователем. При этом текст должен подвинуться без искажений.

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

Операционные системы будущего в планах Microsoft и IBM

В исследовательской лаборатории Microsoft , разрабатывающей программные решения, которые появятся только через несколько лет, ведётся работа над проектом Farsite . Возможно, что идеи, разрабатывающиеся в Microsoft сегодня, будут внедрены в операционных системах будущего. Основные характеристики Farsite как операционной системы – это устойчивость к сбоям, самонастраивоемость и безопасность.

Реализацию своих идей на практике специалисты Microsoft видят так: несколько компьютеров, объединенных в сеть, совместно предоставляющих ресурсы пользователям, но работающих без центрального сервера управления. Система обеспечивает должную безопасность данных благодаря резервному копированию и технологии защиты от взломщиков. Даже если хакер получит контроль над одним из компьютеров кластера, он не сможет контролировать всю сеть.

Конечная цепь проекта Farsite – это создание в 2006 году кластера из 100 тысяч компьютеров, с общим объемом дисковой памяти в 10 терабайт (10 тысяч гигабайт).

В то же время, компания IBM работает над расширением возможностей существующих операционных систем. В настоящий момент в исследовательском центре IBM ведется работа по расширению возможностей операционной системы Linux для управления компьютером с 65 тысячами процессоров. Такая система будет управлять суперкомпьютером Blue Gene с заявленной производительностью в 1 квадриллион операций с плавающей точкой в секунду.

Исследование IBM направлено на создание «самооптимизирующейся, самонастраиваемой, самовосстанавливающейся» системы, сходной по устройству с автономной нервной системой человека. Главной чертой операционной системы будущего в IBM считают ориентацию на решение конкретных задач.

Вопросы для самоконтроля

    Основные тенденции развития программного обеспечения.

    Операционные системы будущего в планах Microsoft.

    Операционные системы будущего в планах IBM.

а

    Основы информатики: Учебн.пособие/А.Н.Морозевич, Н.Н.Говядинова, Б.А.Железко и др. Под обш.ред. А.Н.Морозевича.-Мн.:Новое знание, 2001.

    Акиньшин Н.С. и др. Освоение персонального компьютера: Уч.пособие.-М.:Радио и связь, 1995.

    Экономическая информатика: Учеб. для вузов/ Под ред. В.В.Евдокимова.-Спб:Питер, 1997.

    Богумирский Б.В. Эффективная работа на IBM PC.-Спб.:Питер, 1997.

    Вербицкий В.В. Учитесь работать на персональном компьютере.-Мн.: ВВВ, 1995.

    Персональный компьютер. Диалог и программные средства: Уч.пособие.-М.: Издательство Университета дружбы народов, 1994.

    Савельев А.Я., Сазонов Б.А., Лукъянов С.Э. Персональный компьютер для всех. Хранение и обработка информации.-М.: Высшая школа, 1995.

рий
№ пп

Понятие

Смысл понятия

Принцип программного управления Организация работы машины, когда выполняемые ею действия определяются командами программы.
Микропрограммирование Упорядоченный метод кодового управления отдельными элементами машины – триггерами, транзисторами, вентилями, интегральными схемами и т.п., – для выполнения элементарных операций.
Микрооперации Элементарные операции, происходящие в устройстве машины.
Микропрограмма Последовательность микрокоманд, управляющих выполнением более крупной по логическому содержанию операцией.
Программирование на машинном языке Программирование в кодах машины, представляющих собой набор закодированных элементарных операций машины, таких как: сложение, вычитание, умножение, деление, сравнение, ввод-вывод информации и др.
Программное обеспечение вычислительной машины Совокупность программ и документации на них, позволяющих осуществить автоматизированную обработку информации на ЭВМ.
Часть программного обеспечения, представляющая собой совокупность программ, рассчитанных на широкий круг пользователей и предназначенных для организации вычислительного процесса и (или) решения часто встречающихся задач.
Операционная система (ОС) Комплекс программ, предназначенных для управления всеми аппаратными ресурсами машины, и всеми компонентами программного обеспечения, для организации их наиболее эффективного использования с учетом решаемых прикладных задач, а также организации взаимодействия с пользователем.
Окружение операционной системы Программы, расширяющие возможности операционной системы и упрощающие работу с не.
Система программирования (СП) Совокупность средств разработки компьютерных программ. Она обеспечивает создание и преобразование программ, написанных на языках программирования или машинно-ориентированном языке.
Часть программного обеспечения, представляющая собой совокупность программ, предназначенных для решения специальных задач.
Пакеты прикладных программ (ППП) Комплекс программ для решения задач по некоторой теме или предмету, оформленные согласно требованиям к такому продукту.
Программы пользователя, или уникальные программы Программы, не относящиеся ни к одному из указанных классов. Это чаще всего программы, созданные пользователем и не оформленные по стандарту в виде программного продукта.
Текстовый редактор Программный продукт, служащий для создания и изменения текстового документа.
Электронная таблица Компьютерный эквивалент обычной таблицы, в клетках (ячейках) которой записаны данные различных типов: даты, тексты, формулы, числа.
База данных Совокупность данных, организованных по определенным правилам, предусматривающая общие принципы описания, хранения и манипулирования данными, независимо от прикладных программ.
Графический редактор Служат для построения графиков, диаграмм, чертежей, иллюстраций. Графики и диаграммы в них можно строить непосредственно, без создания таблицы и введения в неё числовых значений.
Интегрированная система Программный продукт, представляющий совокупность функционально различных компонентов, способных взаимодействовать между собой путём передачи информации, и объединенных единым пользовательским интерфейсом.
Выберите правильное определение к каждому понятию
I
1.

Принцип программного управления

а)Упорядоченный метод кодового управления отдельными элементами машины, такими как: триггеры, транзисторы, вентили, интегральные схемы и т.п. – для выполнения элементарных операций.

2.

Микропрограммирование

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

3.

Микрооперации

в)Организация работы машины, когда выполняемые ею действия определяются командами программы.

4.

Микропрограмма

г)Элементарные операции, происходящие в устройстве машины.

II
1.

Программирование на машинном языке

а)Совокупность программ и документации на них, позволяющих осуществить автоматизированную обработку информации на ЭВМ.

2.

Программное обеспечение вычислительной машины

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

3.

Системное программное обеспечение

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

III
1.

Прикладное программное обеспечение

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

объединенных единым пользовательским интерфейсом.

2.

Пакеты прикладных программ

б)Программы, созданные пользователем и не оформленные по стандарту в виде программного продукта.

3.

Программы пользователя, или уникальные программы

в)Комплекс программ для решения задач по некоторой теме или предмету, оформленные согласно требованиям к такому продукту.

4.

Интегрированная система

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

IV
1.

Операционная система

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

2.

Окружение операционной системы

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

3.

Система программирования

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

V
1.

Текстовый редактор

а)Компьютерный эквивалент обычной таблицы, в клетках (ячейках) которой записаны данные различных типов: даты, тексты, формулы, числа.

2.

Электронная таблица

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

3.

База данных

в)Программный продукт, служащий для создания и изменения текстового документа.

2. Программное обеспечение ЭВМ и его основные компоненты
3. Этапы развития программного обеспечения
Первое поколение
Второе поколение

13

Третье поколение

16

Четвертое поколение
4. Тенденции развития программного обеспечения
Операционные системы будущего в планах Microsoft и IBM
литература
глоссарий
Тесты
тренинг умений
34

Учебное издание

Бородина Алла Ивановна

Крошинская Лариса Израйлевна

Сапун Оксана Леонидовна

Основы информатики

и вычислительной техники

Программное обеспечение.

Этапы развития и перспективы

Редактор-корректор Л.Р.Рецкая

Компьютерная верстка О.Н. Якубович

Подписано в печать 08.09.2003 г.

Формат 60х84 1 / 16 . Печать офсетная. Гарнитура «Таймс».

Усл. печ. л. 2. Уч.-изд. л. 1,37. Тираж 100 экз. Заказ № 35.

Интеллект, интерфейс, производительность, кроссплатформенность, “облака”, высокоуровневость, стандартизация - вот основные тренды на протяжении последних нескольких лет, которые проявились и стали набирать силу в развитии ПО. О них неоднократно говорили ведущие специалисты отрасли. Эти тенденции уже явно влияют на ПО, которое используется на сегодняшний день.

Интеллектуальность
Давно уже прошли времена монохромных символьных дисплеев и мигающего курсора в командной строке. Написать учетную систему, игрушку- это давно уже не “высокие космические технологии”. Наработаны приемы программирования, алгоритмы, библиотеки. Придумать что-то еще новенькое в области автоматизации почти нереально. Повышение конкурентоспособности ПО лежит в области повышения интеллектуальности продукта. Даже в простых программах где, казалось бы, некуда “приткнуть” интеллектуальность, можно предпринять ряд шагов, делающих программу более удобной в использовании:
  1. Прогнозирование последующих действий пользователя. Это позволит, например, сформировать подсказку, динамическое меню для того, чтобы у пользователя сразу “под рукой” были весь требуемый инструментарий для работы.
  2. Интеллектуальное кэширование данных, обработка звука, изображений.
  3. Автосохранение, автобэкапы, версионность файлов- в случае сбоя у пользователя всегда будет под рукой резервный вариант.
Повышение интеллектуальности ПО может быть связано с подстройкой под настроение пользователя, регулирование его настроения, вплоть до угадывание его мыслей. Это примерно то, о чем говорила Алена Попова в своем блоге . По мимике и жестам, полученной с web-камеры, по вздохам, слышимым в микрофон можно определить настроение пользователя. По настроению пользователя можно подбирать музыкальные композиции, фоновые рисунки, сортировать новостную подборку с RSS-лент.
Другое направление интеллектуализации ПО- создание адаптирующихся интерфейсов пользователя. Например, используя web-камеру, можно мерять внешнее освещение и соответственно подстраивать яркость экрана. Другой пример, если пользователь весьма активно работает с одной программой, то фоновые приложения откладывают уведомления о пришедшей почте, требуемых обновлениях ПО, чтобы меньше отвлекать пользователя от его текущей активной работы.
Тема удобных, красивых, интеллектуальных пользовательских интерфейсов становится ключевой на ближайшие годы.
Пользовательские интерфейсы
Лет десять-пятнадцать назад удобство пользовательского интерфейса не было решающим фактором при выборе ПО. Ценилась больше функциональность. Это было связано с тем, что программы были не столь функциональны, инструментарий программиста был не такой мощный. В результате, программирование одной функции было огромной работой. Если ваше ПО имело на 2-3 функции больше, чем у конкурента, то у вас были большие шансы на успех. Сегодня практически любой функционал легко и быстро повторяется конкурентами. Получить длительное по времени конкурентное преимущество можно, внедрив более интеллектуальный функционал и, как ни удивительно, разработав хороший интерфейс пользователя. Создать удачный интерфейс- это большая работа. Фактически, действительно мощный инструментарий для создания пользовательских интерфейсов начал появляться совсем недавно.
Тенденция создания удобных интерфейсов – очень сильная и явная. Примеров множество- iPhone, Android, лента меню Ribbon от Microsoft. Даже в области корпоративного ПО она будет проявляться все сильнее. Об этом подробнее можете прочитать у Петра Диденко .
Производительность
Ярким примером, иллюстрирующим тему данного абзаца, можно назвать гонку браузеров за производительностью их движков. Разработчики активно оптимизируют операционные системы, различное прикладное ПО. Например, последний MS Office 2010 чувствительно быстрее своего предшественника. Windows 7 шустрее Vista.
У пользователя несколько процессоров, много памяти, графический ускоритель- так почему бы не задействовать это на “полную катушку”? В конечном итоге, быстрый, отзывчивый и удобный интерфейс очень понравится пользователю.
К счастью, в распоряжении разработчика есть ряд удобных инструментов для выявления “узких мест” в программе, поиска утечек памяти и т.п. Ряд известных программистов в интервью не раз упоминали о том, что оптимизация производительности- это тренд, минимум, на ближайшие пять лет. Поэтому, профайлер в зубы, и вперед!
Кроссплатформенность
Платформ опять стало много. iOS, Android, Simbian, Windows Phone, Linux, MS Windows и еще многие другие. Все важные, все занимают существенную долю рынка, чтобы их игнорировать. Разработчики давно уже тяготеют к кроссплатформенным решениям. Программы на C/C++ часто пишут так, что они успешно компилируются под разными платформами. Java, .Net, Python концептуально кроссплатформенные. Обеспечить кроссплатформенность тому или иному алгоритму на сегодняшний не сложно. Но вот интерфейсы… с ними загвоздка. Есть очень неплохие решения, обеспечивающие кроссплатформенность интерфейсов. Например, Qt. Тем не менее, это далеко не идеальные решения.
Громадная каменюка “преткновения” кроется в том, что под разными ОС не только внешний вид разный, но поведение элементов интерфейса может отличаться. В результате, приходится реализовывать под разные ОС некий усредненный вариант интерфейса. Что не придает приложению ни красоты, ни удобства.
Тогда разработчики приноровились использовать web-интерфейсы даже в исключительно оффлайновых приложениях. Такой способ позволяет снять ряд проблем при создании кроссплатформенных интерфейсов. Все же HTML-страница более-менее сохраняет свой вид в разных ОС, да и функциональность элементов интерфейса тоже будет одинаковая. Но и тут нет совершенства.
И вот, на сцене появляется HTML5. Пока он не распространен широко, но те немногие примеры его использования, что довелось увидеть, впечатляющи. Правда, и тут видны недостатки. Как говорится, предела совершенству нет. Тем не менее- встречайте HTML5! Рассмотрите возможность его использования для организации интерфейсов как онлайновых, так и оффлайновых приложений. Это позволит создавать функциональные, удобные и красивые кроссплатформенные приложения.
Использование технологии облачных вычислений
Web-приложения, инсталлируемое ПО- у каждого типа приложений есть свои достоинства и недостатки. И как всегда хочется получить достоинства обоих типов приложений. С одной стороны, web-приложения позволяют нам просто делать свое дело и не заботиться об установке ПО, о резервных копиях данных- просто залогинился и работай. С другой стороны, инсталлируемое ПО позволяет работать в оффлайновом режиме, задействовать все имеющиеся ресурсы на компьютере. Например, Web-приложение нельзя установить как сервис в ОС. Возможность получить преимущества от обоих типов ПО дают облачные вычисления.
Обратите внимание, что на сегодняшний день под облаками часто понимаются все те же web-приложения, только “размазанные” по сотням серверов. Предлагается расширить использование облаков, задействуя их в полноценном инсталлируемом ПО.
Объединение возможностей инсталлируемых приложений и web-приложений позволит:
  1. Организовать автоматическое резервирование данных в “облаке”. Так как данные сохраняются в облаке, то они будут доступны пользователю с любого компьютера. С другой стороны, если отсутствует доступ в Интернет, то можно работать с их локальной копией.
  2. Предоставить разные способы доступа к данным: инсталлируемое ПО, web-приложение, доступ с мобильного устройства.
  3. Организовать коллективную работу с данными.
  4. Переложить заботу о сохранности данных и их постоянной доступности на плечи “облачного” сервиса.
  5. Находясь на своем рабочем месте получить полноценное приложение, использующее все возможности компьютера, ОС для плодотворной работы за счет использования инсталлируемого ПО.
  6. Получить оперативно удаленный доступ через web-приложение, через мобильное устройство, находясь вне рабочего места.
  7. Получить все преимущества “облачной” технологии, связанные с масштабируемостью и отказоустойчивостью “облаков”.
Высокоуровневость
На сегодняшний день в низкоуровневом программировании, практически, не осталось “ноу-хау”. Работа с USB, камерой, видео, звук, дисковые операции- это умеет делать хорошо любая ОС. Преимущества тут уже давно нет ни у одной ОС. Если подниматься на более высокие уровни кода, то можно заметить, что даже набор прикладного ПО, идущего в составе ОС уж давно не уникален. Ну на какой ОС нет аналога Блокнота, Калькулятора, Paint’a? Разве что Apple можно “пнуть” за отсутствие “флэша”, и то- это умышленный ход.
Потребителя теперь завоевывают сложными, высокоуровневыми приложениями: распознавание голоса (например, голосовой поиск от Google), распознавание изображений (лиц на фотографиях- Picasa, Windows Live), рукописного текста (Windows 7), фильтрация спама (Gmail), распознавание движений (Kinnect), поисковые технологии (Google, Yandex). И тут поле деятельности весьма широкое: эти технологии, с одной стороны, на более качественном уровне решают проблемы человеко-машинного интерфейса, с другой стороны, сложны в воспроизведении конкурентами, что дает достаточно времени для “снятия сливок” с рынка. Наделение коммерческого ПО элементами искусственного интеллекта- тема еще свежая, “мало раскопанная”, поэтому тут есть, где развернуться, есть интерес со стороны потребителей, есть деньги.
Можно констатировать, что обладание своими низкоуровневыми технологиями на сегодняшний день- недостаток. Ведь на поддержку и развитие их надо тратить время и деньги. При этом, конкурентных преимуществ никаких. С другой стороны- высокоуровневое программирование с новыми перспективами, денежными рынками.
Как бы смело это ни звучало сейчас, но со стороны той же Microsoft было бы разумным перейти на использование наработок сообщества open source. Например, как это сделала Apple, Google. Google, вообще, очень эффективно использует наработки open source: и Linux, и Python, и web-приложения. Еще пример: Intel, Nokia с MeeGo.
Из антипримеров: Windows phone 7. Огромные усилия затрачены на ее разработку с нуля. В результате, этой ОС надо еще 1-2 года, чтобы довести ее до конкурентоспособного состояния. Думаю, что если бы они пошли по пути Google, и использовали ядро Linux, чтобы создать свою ОС для смартфонов, то это у них бы заняло существенно меньше времени и результат был бы лучше.
Времена меняются. Сейчас надо использовать шире уже наработанные решения, придерживаться стандартов и создавать высокоуровневое ПО.
Стандартизация
Как всегда это бывает, на заре любой отрасли существуют различные не совместимые решения, все сумбурно и знания быстро устаревают. Потом все “устаканивается”, появляются отраслевые стандарты и с полученными знаниями, опытом специалист может спокойно прожить всю жизнь, не боясь, что он завтра станет никому не нужен из-за того, что его знания устарели.
Аналогичная картина развития отрасли наблюдается и в ИТ. Все больший приоритет приобретают стандарты при проектировании ПО. Формируются приемы программирования (например, см. GoF), накатываются методики ведения проектов. Хотя проблема быстрого устаревания знании еще актуальна, но она уже явно менее остра, чем 20 лет назад. ИТ стабилизируются в своем развитии, выходят на плоское плато S-образной кривой развития. Это замечательно. Так и должно быть.
Свое стремление соблюдать стандарты, подтверждая это делами, демонстрирует даже какой яркий нарушитель стандартов как Microsoft. Эта тенденция видна повсеместно и касается всего: пользовательских интерфейсов, протоколов обмена данными, форматов хранения данных и т.д.
Вывод
Перечисленные семь наблюдаемых в последние годы тенденций: интеллект, интерфейс, производительность, кроссплатформенность, “облака”, высокоуровневость, стандартизация характеризуются устойчивым, сильным трендом. Нет оснований полагать, что в ближайшие минимум пять лет произойдет смена этих тенденций другими.
Правильным путем развития программных продуктов будет следование этим тенденциям в той или иной степени. Например, можно пойти по пути улучшения пользовательского интерфейса, или добавить интеллекта в свое ПО, или сделать одновременно и то и другое.
Какой бы Вы путь ни выбрали из перечисленных пунктов, помните, что в конечном итоге “видеть” надо человека, пользователя вашего продукта. Эти тенденции- только направление движения к решению проблем пользователя, а какую именно дорожку выберете Вы- это и есть Ваш элемент творчества, который не отнимут у вас никакие стандарты, никакое плато. Так что, дерзайте!