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

Интеллектуальность
Давно уже прошли времена монохромных символьных дисплеев и мигающего курсора в командной строке. Написать учетную систему, игрушку- это давно уже не “высокие космические технологии”. Наработаны приемы программирования, алгоритмы, библиотеки. Придумать что-то еще новенькое в области автоматизации почти нереально. Повышение конкурентоспособности ПО лежит в области повышения интеллектуальности продукта. Даже в простых программах где, казалось бы, некуда “приткнуть” интеллектуальность, можно предпринять ряд шагов, делающих программу более удобной в использовании:
  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. Эта тенденция видна повсеместно и касается всего: пользовательских интерфейсов, протоколов обмена данными, форматов хранения данных и т.д.
Вывод
Перечисленные семь наблюдаемых в последние годы тенденций: интеллект, интерфейс, производительность, кроссплатформенность, “облака”, высокоуровневость, стандартизация характеризуются устойчивым, сильным трендом. Нет оснований полагать, что в ближайшие минимум пять лет произойдет смена этих тенденций другими.
Правильным путем развития программных продуктов будет следование этим тенденциям в той или иной степени. Например, можно пойти по пути улучшения пользовательского интерфейса, или добавить интеллекта в свое ПО, или сделать одновременно и то и другое.
Какой бы Вы путь ни выбрали из перечисленных пунктов, помните, что в конечном итоге “видеть” надо человека, пользователя вашего продукта. Эти тенденции- только направление движения к решению проблем пользователя, а какую именно дорожку выберете Вы- это и есть Ваш элемент творчества, который не отнимут у вас никакие стандарты, никакое плато. Так что, дерзайте!

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

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

«Свободные программы» - Свобода запускать программу с любой целью (свобода 0). Обычно проприетарным называют любое несвободное ПО. Другую категорию представляют так называемые пробные или "триальные" программы. В большинстве случаев - для коммерческого использования. По окончании срока действия за программу надо заплатить.

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

«Компьютерные программы» - Существуют различные типы компьютерных программ. Компьютерные программы. Сегодня наиболее популярными операционными системами являются программы семейства Windows . Даже оживить картинки! А наука о составлении программ для компьютера называется программированием. Операционная система организует работу всех частей и всех программ компьютера.

«ПО в компьютере» - Системы автоматизированного проектирования (САПР) или CAD (англ. Группа Фик. Трансляторы реализуются в виде компиляторов или интерпретаторов. Представители графических редакторов – программы Adobe Photoshop, Corel Draw. Система программирования. Графические редакторы позволяют создавать и редактировать рисунки.

Всего в теме 33 презентации

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

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

2. Упрощение работы пользователя , которая обеспечивается за счет ужесточения требований к ресурсам ПК.

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

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

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

6. Объединение противоречивых свойств : универсализация и специализация.

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

8. Стандартизация отдельных элементов интерфейса программ, форматов данных и т.д.

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

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

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

Контрольные вопросы

1. Программы-органайзеры

2. Уровни внедрения информационных технологий в делопроизводство

3. Основные функции корпоративной электронной системы управления документами

4. Программа Microsoft Outlook

5. Средства Microsoft Outlook для организации рабочего места

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


ТЕМА 11. системы программирования

Вопросы

1. Этапы решения задач на компьютере

2. Алгоритм

3. Инструментальные средства программирования

4. Технологии программирования



1. ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА КОМПЬЮТЕРЕ

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

1. Постановка задачи

2. Разработка математической модели

3. Разработка алгоритма

4. Составление программы

5. Отладка программы

6. Тестирование программы

7. Проведение расчетов

8. Анализ результатов

9. Сопровождение программы

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

· организационно-экономическую сущность задачи;

· информацию, связанную с ней;

· описание алгоритма и контрольный пример для ее решения.

Для решения задачи должна быть разработана математическая модель и выбран метод решения. Критерии выбора метода:

· обеспечение наименьшего времени решения задачи;

· возможность использования метода при существующем объеме памяти компьютера;

· обеспечение нужной точности вычислений;

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

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

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

Отладка – выявление и исправление ошибок в программе.

Тестирование – «прогон» программы на наборах реальных данных, подготовленных специалистами предметной области в качестве контрольного примера.

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

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

Сопровождение программы выполняют ее разработчики в течение определенного периода.

2. АЛГОРИТМ

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

Оператор (инструкция)– совокупность символов, указывающих операцию и значение или местонахождение ее операндов. Например : delete s;

Операнд – объект, над которым выполняется операция в компьютере.

Машинная команда – оператор, опознаваемый и выполняемый техническими средствами компьютера.

Процесс составления программы называется программированием .

Основные способы (средства) представления (записи) алгоритмов:

1. Словесный

2. Графический (блок-схемы)

3. Языки программирования.

Запись алгоритма с помощью алгебраических символов и словесного текста называют словесной .

Например . Алгоритм Евклида – нахождение наибольшего общего делителя Н двух положительных чисел: А и В.

1. Сравнить А и В:

· если А = В, то Н = А и перейти к третьему шагу;

· если А < В, то поменять А и В местами, и перейти к следующему шагу;

· если А > В, то перейти к следующему шагу.

2. Найти А = А–В и перейти к первому шагу.

3. Процесс вычислений прекратить.

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

Язык программирования – язык, предназначенный для записи программ и описания данных.

Имеются следующие типы алгоритмических процессов:

1. Линейные

2. Ветвящиеся

3. Циклические

Линейные процессы : алгоритм представляется в виде линейной последовательности операций (рис.11.1).

Пример : Найти С=S/n.

Рис.11.2. Алгоритм ветвящегося процесса

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

Пример : найти квадраты N чисел.

N=1
Вывод N, K
Конец
Нет
N=N+1
даа

Рис.11.3. Алгоритм циклического процесса

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

  • 8. Требования преподавателя
  • 2. Тезисы лекций
  • Тема 1. Информатика – предмет и задачи. Основные категории и понятия информатики
  • Роль информатики в информационном обществе
  • Тема 2. Начала общей теории информации. Понятие информации.
  • Тема 3. Арифметические основы информатики. Формы представления информации. Системы счисления. Действия в различных системах счисления.
  • Тема 4. Логические основы информатики
  • Тема 5 . Архитектура персонального компьютера. Информационно-логические основы построения
  • Тема 6. Алгоритмические основы информатики
  • 6.1 Понятие алгоритма, его основные свойства
  • 6.2. Машина Тьюринга и машина Поста
  • Устройство машины Тьюринга
  • Описание машины Тьюринга
  • Тема 7.Основные конструкции программирования. Структурное программирование. Процедурное программирование. Объектно-ориентированное программирование.
  • Тема 8. Состояние и тенденции развития программного обеспечения
  • Тема 9. Операционные системы. Роль операционной системы в организации работы пользователя на персональном компьютере. Операционные системы и их основные функции
  • Классификация ос
  • Тема 10. Операционная система ms-dos
  • Тема 11. Операционные системы Windows. Концепция операционных систем Windows.
  • Объекты Windows
  • Тема 12. Сервисное программное обеспечение. Общие сведения об архивации файлов. Программы-архиваторы.
  • Программы архивирования данных
  • Тема 13. Прикладные программные продукты. Классификация прикладного программного обеспечения.
  • Тема 14. Тестовый процессор ms Word
  • 14.1. Система обработки текстов (основные возможности, классификация). Ms Word. Элементы экрана.
  • Установка основных параметров шрифта
  • 14.2. Оформление текста. Работа с таблицей. Вставка файла, рисунка. Редактор формул ms Equation.
  • Математические операторы и операторы сравнения
  • Тема 15. Табличный процессор ms Excel
  • 15.1. Назначение основные возможности Excel. Элементы экрана
  • Добавление пиктограмм в одно из пиктографических меню
  • Рабочие таблицы Excel предназначены для анализа данных, представленных в строках и столбцах. Они хранятся в файлах, которые называются рабочими книгами.
  • 15.2. Режим вычисления. Оформление таблиц. Оформление таблиц. Печать. Диаграмма.
  • 15.3. Работа с большими таблицами. Справочная система ms Excel.
  • Тема 16. Использование спп Power Point для создания бизнес плана. Информационные системы (ис). Создание презентации. Оформление.
  • Тема 17. Основы технологии работы в субд ms Access
  • Тема 18. Сеть Internet и ее применение. Основные понятия Internet. Программа Internet Explorer. Поиск информации. Поисковые системы. Почта.
  • Тема 19. Компьютерные вирусы и приемы борьбы с ними (понятие компьютерного вируса, средства защиты, методика защиты).
  • Лабораторная работа №4 Создание прайс-листа счёта
  • Лабораторная работа №5 Статистические расчеты Microsoft Excel.
  • Пуск – Программы - Microsoft Access
  • 2.1.1 Запрос, отбирающий данные из одной таблицы по условию
  • 2.2 Запросы, которые отбирают данные из нескольких таблиц
  • 2.3 Модификация данных с помощью запросов
  • 2.3.1 Запросы, которые изменяют значение группы записей
  • Тема: Создание форм
  • 3.1 Создание форм для просмотра и ввода данных
  • 3.2.Создание форм с подчиненной формой
  • Краткое описание семинарских и практических занятий (планы, задания для проведения семинарских и практических занятий, срсп, срс)
  • Задания для самопроверки и подготовки к экзамену, в том числе тесты
  • В) объединение
  • 6. Перечень основной и дополнительной литературы, в том числе на электронных носителях
  • Дополнительная литература
  • Справочная литература
  • Нормативная литература
  • Глоссарий
  • Тема 8. Состояние и тенденции развития программного обеспечения

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

    Программное обеспечение (softwаrе) на данный момент составляет сотни тысяч программ, которые предназначены для обработки самой разнообразной информация с самыми различными целями.

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

      аппаратная часть автономных компьютеров и сетей ЭВМ;

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

      технология разработки программ.

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

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

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

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

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

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

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

    Операционная система как виртуальная машина

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

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

    Операционная система как менеджер ресурсов

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

    Операционная система как защитник пользователей и программ

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

    Операционная система как постоянно функционирующее ядро

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

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

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

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

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

    Основными функциями операционных систем являются:

      обеспечение операций по обмену данными между выполняющейся программой и внешними устройствами;

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

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

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

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

      выполнение различных вспомогательных (сервисных) функций, таких как форматирование дисковых устройств, копирование информации с одного дискового устройства на другое и некоторые другие.

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

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

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

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

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

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

    Реферат

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

    Дата готовности работы 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 с.