Бурный рост и быстрые темпы развития рынка ПО.
Создание программного обеспечения для персональных компьютеров за последнее десятилетие превратилось из занятия отдельных программистов в важную и мощную сферу промышленности. Поэтому развитие программного обеспечения, предназначенного для широкого круга пользователей, происходит в процессе ожесточенной конкурентной борьбы между фирмами-производителями программного обеспечения. Доля некоммерческого программного обеспечения постоянно снижается и все более ограничивается программами, создаваемыми в процессе научных исследований или для собственного использования.
При разработке коммерческих программ основной задачей фирм-разработчиков является, естественно, обеспечение их успеха на рынке. Для этого необходимо, чтобы программы обладали следующими качествами:
Функциональность программы, т.е. полнота удовлетворения ею потребностей пользователя;
Наглядный, удобный, интуитивно понятный и привычный пользователю интерфейс (т.е. способ взаимодействия программы с пользователем);
Простота освоения программы даже начинающими пользователями, для чего используются информативные подсказки, встроенные справочники и подробная документация;
Надежность программы, т.е. устойчивость ее к ошибкам пользователя, отказам оборудования и т.д., и разумные ее действия в этих ситуациях.
Расширяется практика сдачи программного обеспечения в аренду.
Стандартизация и интеграция продуктов ПО.
Во многих областях совместная работа различных производителей программного обеспечения приводит к стандартизации отдельных элементов интерфейса программ, форматов данных и т.д., что весьма удобно для пользователей. Это происходит, прежде всего, потому, что разработчики программ перенимают друг у друга удачные находки и приемы и стремятся обеспечить совместимость с другими наиболее популярными программами.
Увеличение мощности программ
Важнейшей тенденцией развития программного обеспечения является неуклонное увеличение их мощности - программы могут обрабатывать большие количества данных, делать это быстрее, предоставляют пользователю больше выполняемых функций и т.д. Таким образом, разработчики программного обеспечения используют возможности, появляющиеся из-за увеличения мощности компьютеров. Весьма заметно и стремление к интеграции функций программного обеспечения.
Возможность дистанционного запуска ПО через Web.
Сегодня большинство систем плавно перетекают в Web. Всемирная паутина затягивает все больше и больше приложений. Базы данных приобретают Web-интерфейсы пользователей, взамен имеющихся ранее настольных приложений. В конечном итоге, стоит ожидать, что конечному пользователю будет нужен лишь веб-браузер, чтобы иметь возможность удовлетворять все возможные потребности в программном обеспечении. В данном случае пользователю все равно, какая операционная система управляет локальным компьютером, главное - надежность и производительность сервера. (Например, пакет Microsoft Office может быть установлен на удаленных серверах, а не на системах конечных пользователей, но запуск приложений при этом будет происходить не менее быстро, чем на локальных ПК). Таким образом, все программы получат возможность как локального исполнения, так и дистанционного запуска через Web.
Интеллект, интерфейс, производительность, кроссплатформенность, “облака”, высокоуровневость, стандартизация - вот основные тренды на протяжении последних нескольких лет, которые проявились и стали набирать силу в развитии ПО. О них неоднократно говорили ведущие специалисты отрасли. Эти тенденции уже явно влияют на ПО, которое используется на сегодняшний день.
Тенденции развития программного обеспечения
Программное обеспечение как товар. Создание программного обеспечения для персональных компьютеров за какой-то десяток лет превратилось из занятия программистов-одиночек в важную и мощную сферу промышленности. Только в США более 50 фирм - производителей программного обеспечения имеют объемы продаж более 10 млн. дол., а у десяти из них (в частности, Microsoft, Lotus, Novell, Borland, Autodesk, Symantec и Computer Associates) объемы продаж превышают 100 млн. дол. Поэтому развитие программного обеспечения, предназначенного для широкого круга пользователей, происходит уже не в состязании индивидуальных программистов, а в процессе ожесточенной конкурентной борьбы между фирмами-производителями программного обеспечения. Доля некоммерческого программного обеспечения постоянно снижается и все более ограничивается программами, создаваемыми в процессе научных исследований или для собственного удовольствия.
Важнейшие свойства программ. При разработке коммерческих программ основной задачей фирм-разработчиков является, естественно, обеспечение их успеха на рынке. Для этого необходимо, чтобы программы обладали следующими качествами:
* функциональность программы, т.е. полнота удовлетворения ею потребностей пользователя;
* наглядный, удобный, интуитивно понятный и привычный пользователю интерфейс (т.е. способ взаимодействия программы с пользователем);
* простота освоения программы даже начинающими пользователями, для чего используются информативные подсказки, встроенные справочники и подробная документация;
* надежность программы, т.е. устойчивость ее к ошибкам пользователя, отказам оборудования и т.д., и разумные ее действия в этих ситуациях.
Стандартизация. Во многих областях совместная работа различных производителей программного обеспечения приводит к стандартизации отдельных элементов интерфейса программ, форматов данных и т.д., что весьма удобно для пользователей. Это происходит прежде всего потому, что разработчики программ перенимают друг у друга удачные находки и приемы и стремятся обеспечить совместимость с другими наиболее популярными программами. В результате использования ниспадающих (pull-down) меню или вид таблицы табличного процессора будут приблизительно одинаковыми во всех программах, хотя они созданы различными разработчиками, подобно тому, как похожи кнопки в лифтах, изготовленных разными заводами.
Удобство пользовательского интерфейса программ является важнейшим фактором, определяющим приемлемость программы для пользователей, а значит, и ее успеха на рынке. Большинство выпускаемых на рынок программ используют достаточно стандартные методы организации интерфейса: ниспадающее меню, панели для выбора ответа, встроенные диалоговые справочники и т.д. Как правило, пользователь может работать не только с клавиатурой, но и с мышью. В последнее время все большее количество программ используют графический пользовательский интерфейс (graphical user interface, GUI), в котором, в частности, для упрощения работы пользователя вместо надписей на экране употребляются рисунки (пиктограммы). При этом графический интерфейс используется не только в таких программах, как графические редакторы или издательские системы, но и в табличных процессорах, текстовых редакторах и т.д. Многие из программ с графическим интерфейсом работают под управлением системы Windows.
Увеличение мощности программ. Важнейшей тенденцией развития программного обеспечения является неуклонное увеличение их мощности - программы могут обрабатывать большие количества данных, делать это быстрее, предоставляют пользователю больше выполняемых функций и т.д. Таким образом, разработчики программного обеспечения используют возможности, появляющиеся из-за увеличения мощности компьютеров. Весьма заметно и стремление к интеграции функций программного обеспечения. Например, в табличный процессор включаются функции базы данных, в издательскую систему - функции текстового редактора и т.д.
Оборотной стороной увеличения мощности программ является повышение их требований к аппаратуре. Например, программы, работающие под управлением Windows, нельзя использовать на 486, требуется компьютер не ниже класса Pentium, для сносного быстродействия при этом необходим компьютер с микропроцессором 100 Mhz и 16 Мбайта памяти, а для комфортной работы - 200 Mhz и 32 Мбайт оперативной памяти. Для многих программ необходимы оперативная память не менее 16 Мбайт, графический монитор класса не ниже VGA, хорошая графическая плата и т.д.
Коммерческие разновидности программ
В настоящее время большинство программ распространяется на коммерческой основе. Для приобретения таких программ необходимо вначале заплатить за них определенную сумму денег. Такие программы называются коммерческими.
Существуют и такие программы, которые распространяются бесплатно. Чаще всего эти программы написаны каким-нибудь опытным программистом для себя, затем переданы для общего пользования. Такие программы называются бесплатными (freeware). Иногда разработчики программы указывают, что их программа является бесплатной для индивидуальных пользователей, но для использования в организациях должна покупаться соответствующая лицензия.
Промежуточное положение между бесплатными и коммерческими программами занимают условно-бесплатные программы (shareware). Эти программы можно получить и опробовать бесплатно, но для систематического их использования необходимо уплатить разработчикам или распространителям программы определенную сумму.
Нумерация версий программ
Программы, которые нашли популярность у пользователей, как правило, совершенствуются разработчиками: в них исправляются ошибки, включаются новые возможности и т.д. Чтобы сохранить преемственность, получившимся программам не дается какое-то другое имя, а вместо этого они называются версиями исходных программ.
По установившейся традиции версии программ обозначаются числами вида 1.00, 3.5 и т.д., т.е. десятичных дробей в американской записи. Номер версии обычно указывается после названия программы, например Windows 3.0 (читается "три ноль"). При этом существенные изменения в программах отражаются увеличением цифры до точки, незначительные изменения или исправления ошибок - увеличением цифр, стоящих после точки. Например, первоначальная версия программы обозначается 1.0, версия с некоторыми улучшениями - 1.1, а после внесения существенных дополнений новая версия программы будет иметь номер 2.0.
Также существует нумерация программ по годам, например: Windows 98 - версия, выпущенная в 98 году.
Большинство фирм-разработчиков программ продают на льготных условиях (а иногда даже предоставляют бесплатно) новые версии своих программ тем, кто ранее приобрел одну из предшествующих версий. Например, программа может стоить 400 дол., а для владельцев предыдущих версий - 50 дол.
Без программ (совокупности, команд, которые должен выполнять процессор) компьютер - не более чем простое переплетение бесполезных электронных схем.
Программное обеспечение (softwаrе) на данный момент составляет сотни тысяч программ, которые предназначены для обработки самой разнообразной информация с самыми различными целями.
Программные продукты можно классифицировать по различным признакам. Рассмотрим классификацию, в которой основополагающим признаком является сфера (область) использования программных продуктов:
аппаратная часть автономных компьютеров и сетей ЭВМ;
функциональные задачи различных предметных областей;
технология разработки программ.
Для поддержки информационной технологии в этих областях выделим соответственно три класса программных продуктов, представленных на рисунке:
Системное программное обеспечение – совокупность программ и программных комплексов для обеспечения работы компьютера и сетей ЭВМ.
Пакет прикладных программ – комплекс взаимосвязанных программ для решения задач определенного класса конкретной предметной области.
Инструментарий технологии программирования – совокупность программ и программных комплексов, обеспечивающих технологию разработки, отладки и внедрения создаваемых программных продуктов.
ЭВМ предоставляет различные ресурсы для решения задачи, но чтобы сделать эти ресурсы легко доступными для человека и его программ, требуется операционная система. Она скрывает от пользователя сложные и ненужные подробности и предоставляет ему удобный интерфейс для работы. Операционная система осуществляет загрузку в оперативную память всех программ, передает им управление в начале их работы, выполняет различные действия по запросу выполняемых программ и освобождает занимаемую программами оперативную память при их завершении.
Большинство пользователей имеет опыт эксплуатации операционных систем , но тем не менее они затруднятся дать этому понятию точное определение. Давайте кратко рассмотрим основные точки зрения.
Операционная система как виртуальная машина
При разработке ОС широко применяется абстрагирование, которое является важным методом упрощения и позволяет сконцентрироваться на взаимодействии высокоуровневых компонентов системы, игнорируя детали их реализации. В этом смысле ОС представляет собой интерфейс между пользователем и компьютером.
Архитектура большинства компьютеров на уровне машинных команд очень неудобна для использования прикладными программами. Например, работа с диском предполагает знание внутреннего устройства его электронного компонента – контроллера для ввода команд вращения диска, поиска и форматирования дорожек, чтения и записи секторов и т. д. Ясно, что средний программист не в состоянии учитывать все особенности работы оборудования (в современной терминологии – заниматься разработкой драйверов устройств), а должен иметь простую высокоуровневую абстракцию, скажем представляя информационное пространство диска как набор файлов. Файл можно открывать для чтения или записи, использовать для получения или сброса информации, а потом закрывать. Это концептуально проще, чем заботиться о деталях перемещения головок дисков или организации работы мотора. Аналогичным образом, с помощью простых и ясных абстракций, скрываются от программиста все ненужные подробности организации прерываний , работы таймера, управления памятью и т. д. Более того, на современных вычислительных комплексах можно создать иллюзию неограниченного размера оперативной памяти и числа процессоров . Всем этим занимается операционная система . Таким образом, операционная система представляется пользователю виртуальной машиной , с которой проще иметь дело, чем непосредственно с оборудованием компьютера.
Операционная система как менеджер ресурсов
Операционная система предназначена для управления всеми частями весьма сложной архитектуры компьютера. Представим, к примеру, что произойдет, если несколько программ, работающих на одном компьютере, будут пытаться одновременно осуществлять вывод на принтер. Мы получили бы мешанину строчек и страниц, выведенных различными программами. Операционная система предотвращает такого рода хаос за счет буферизации информации, предназначенной для печати, на диске и организации очереди на печать. Для многопользовательских компьютеров необходимость управления ресурсами и их защиты еще более очевидна. Следовательно, операционная система , как менеджер ресурсов , осуществляет упорядоченное и контролируемое распределение процессоров , памяти и других ресурсов между различными программами.
Операционная система как защитник пользователей и программ
Если вычислительная система допускает совместную работу нескольких пользователей, то возникает проблема организации их безопасной деятельности. Необходимо обеспечить сохранность информации на диске, чтобы никто не мог удалить или повредить чужие файлы. Нельзя разрешить программам одних пользователей произвольно вмешиваться в работу программ других пользователей. Нужно пресекать попытки несанкционированного использования вычислительной системы. Всю эту деятельность осуществляет операционная система как организатор безопасной работы пользователей и их программ. С такой точки зрения операционная система представляется системой безопасности государства, на которую возложены полицейские и контрразведывательные функции.
Операционная система как постоянно функционирующее ядро
Наконец, можно дать и такое определение: операционная система – это программа, постоянно работающая на компьютере и взаимодействующая со всеми прикладными программами. Казалось бы, это абсолютно правильное определение, но, как мы увидим дальше, во многих современных операционных системах постоянно работает на компьютере лишь часть операционной системы , которую принято называть ее ядром.
Операционной системой называется комплекс программ, которые обеспечивают автоматизацию доступа к аппаратным и программным ресурсам компьютера.
Кроме перечисленного выше операционные системы могут предоставлять и другие возможности, делающие ЭВМ еще более удобной для использования: одновременное выполнение множества различных программ (мультизадачность); средства защиты информации, хранящейся на дисках ЭВМ; работа нескольких пользователей на одной ЭВМ (многопользовательский режим); возможность подключения ЭВМ к сети, а также объединение вычислительных ресурсов нескольких машин и совместное их использование (кластеризация).
Кроме операционных систем для работы необходимы некоторые другие компоненты. Среди них базовая система ввода-вывода (BIOS), постоянно находящаяся в памяти компьютера. Эта система "встроена" в материнскую плату компьютера. Ее назначение состоит в выполнении элементарных действий, связанных с осуществлением операций ввода-вывода. BIOS содержит также тест функционирования компьютера, проверяющий работу памяти и устройств компьютера при включении электропитания. Кроме того, базовая система ввода-вывода содержит программу вызова загрузчика операционной системы.
Загрузчик операционной системы - это специальная программа, предназначенная для инициирования процесса загрузки операционной системы.
Основными функциями операционных систем являются:
обеспечение операций по обмену данными между выполняющейся программой и внешними устройствами;
обслуживание нестандартных ситуаций в ходе выполнения программы;
удаление выполненной программы из оперативной памяти и освобождение места для загрузки новой программы;
организация хранения и поиска программ и данных на внешних носителях;
организация взаимодействия пользователя и операционной системы – прием и выполнение команд пользователя;
выполнение различных вспомогательных (сервисных) функций, таких как форматирование дисковых устройств, копирование информации с одного дискового устройства на другое и некоторые другие.
Образующие базовую систему ввода-вывода части операционной системы обычно записываются на гибком, жестком (винчестерском) или лазерном диске, который в этом случае называется системным диском.
Операционная система должна находиться в рабочем состоянии в течение всего времени функционирования компьютера. Работа операционной системы начинается в момент включения компьютера и заканчивается в момент его выключения.
Слайд 2
Программное обеспечение вычислительной машины – это совокупность программ и документации на них, позволяющих осуществить автоматизированную обработку информации на ЭВМ.
Слайд 3
Если бы аппаратное оборудование предоставляло пользователям такие возможности, какие им необходимы, надобность в программном обеспечении отпала бы. Однако, в настоящее время форма работы с аппаратным оборудованием для пользователя не совсем удобна, и при конструировании ЭВМ создают комбинацию программных и аппаратных средств. Это позволяет найти оптимальный вариант сочетания затрат на создание ЭВМ и их возможностей.
Слайд 4
Программное обеспечение является неотъемлемой частью любой вычислительной машины. Оно освобождает пользователей от необходимости знать специфические свойства каждого устройства, облегчает связь с машиной каждого конкретного пользователя и организует доступ к системе нескольких пользователей, осуществляя распределение ресурсов системы. Чем сложнее и более развито программное обеспечение, тем проще общение с машиной. При оценке современных машин таких основных характеристик, как быстродействие и объем памяти оказывается недостаточно. К ним должны присовокупляться характеристики программного обеспечения. По мере усложнения ЭВМ растет и значение программного обеспечения. В настоящее время оно составляет 60-70% от стоимости вычислительной системы.
Слайд 5
Основной принцип построения программного обеспечения заключается в выделении отдельных его функций и оформлении их в виде стандартизованных блоков, функционирование которых зависит от значения входов и выходов в этот блок и не зависит от других блоков. Такие программные блоки называют модулями, а принцип называется модульным.
Слайд 6
Пакеты прикладных программ - комплекс программ для решения задач по некоторой теме или предмету и оформленные согласно требованиям к такому продукту. Например, пакеты бухгалтерских программ.
Слайд 7
Слайд 8
Стремление расширить возможности ЭВМ и повысить эффективность их использования привело к созданию программного обеспечения (ПО). Эволюция вычислительных машин тесно связана с развитием их программного обеспечения. В истории развития программного обеспечения можно выделить следующие поколения: Первое поколение – зарождение ПО. Второе поколение – развитие ПО: использование алгоритмических языков и библиотек стандартных программ. Третье поколение – широкое использование ПО, появление развитых операционных систем. Четвертое поколение – ПО, дающее возможность коллективного использования ЭВМ.
Слайд 9
Слайд 10
1)ЭВМ первого поколения реализовывали последовательный принцип действия, обладали относительно невысокой скоростью, и программист был в состоянии достаточно полно использовать их вычислительные возможности. Программист был единственной фигурой, имевшей контакт с ЭВМ, знал все тонкости работы с аппаратурой и вел отладку своих программ непосредственно с пульта машины. 2)Переход к ЭВМ второго поколения сопровождался частичным отходом от последовательного принципа действия ЭВМ. Появление более быстрой оперативной памяти и центрального обрабатываемого устройства сделало экономически целесообразным совместить во времени процесс вычислений и операции обмена информацией с относительно медленно действующими внешними устройствами.
Слайд 11
3) Попытки превращения разрозненного программного обеспечения в единую систему, путем создания всевозможных, связующих программ и частичной переработки некоторых из имеющихся, не могли серьезно продвинуть решение проблемы. Стало ясно, что основой ПО должен быть некоторый общий программный комплекс. Такие комплексы программ стали называть операционными системами (ОС).
Слайд 12
4)Этапы эволюции взаимоотношения «человек-машина» представляются следующими: от прямого использования ЭВМ одним программистом, в распоряжении которого представлены все ресурсы машины, – через мультипрограммирование, когда программист полностью отстранен от машины, – к системам разделения времени и разговорному режиму, когда много программистов, сидя за своими индивидуальными пультами, управляют ходом решения своих задач независимо друг от друга и одновременно используют мощности ЭВМ.
Слайд 13
Слайд 14
При разработке коммерческих программ основной задачей фирм-разработчиков является, естественно, обеспечение их успеха на рынке. Для этого необходимо, чтобы программы обладали следующими качествами: функциональностью, т.е. полнотой удовлетворения потребностей пользователя; наглядностью, удобным, интуитивно понятным и привычным пользователю интерфейс; простотой освоения начинающими пользователями, для чего используются информативные подсказки, встроенные справочники и подробная документация; надежностью, т.е. устойчивостью ее к ошибкам пользователя, отказам оборудования и т.д. и разумностью ее действия в этих ситуациях; стандартизацией.
Слайд 15
Удобство пользовательского интерфейса программ является важнейшим фактором, определяющим их приемлемость для пользователей, а значит, и успеха на рынке. Большинство выпускаемых на рынок программ используют достаточно стандартные методы организации интерфейса: ниспадающие меню; панели для выбора, ответа; встроенные диалоговые справочники и т.п. Все большее количество программ используют графический пользовательский интерфейс, в котором, для упрощения работы пользователя, вместо надписей на экране используются рисунки.
Слайд 16
Слайд 17
Важнейшей тенденцией развития программного обеспечения является неуклонное увеличение их мощности – программы могут обрабатывать большие количества данных, делать это быстрее, предоставляют пользователю больше выполняемых функций и т.д. Таким образом, разработчики программного обеспечения используют возможности, появляющиеся из-за увеличения мощности компьютеров. Весьма заметно и стремление к интеграции функций программного обеспечения. Например, в табличный процессор включаются функции базы данных, в издательскую систему – функции текстового редактора и т.д. Оборотной стороной увеличения мощности программ является повышение их требований к аппаратуре. Например, программы, работающие под управлением Windows, нельзя использовать на 486, требуется компьютер не ниже класса Pentium, для сносного быстродействия при этом необходим компьютер с микропроцессором 100 Mhz и 16 Мбайта памяти, а для комфортной работы – 200 Mhzи 32 Мбайт оперативной памяти. Для многих программ необходимы оперативная память не менее 16 Мбайт, графический монитор класса не ниже VGA, хорошая графическая плата и т.д.
Слайд 18
Слайд 19
В настоящее время большинство программ распространяется на коммерческой основе. Для приобретения таких программ необходимо вначале заплатить за них определенную сумму денег. Такие программы называются коммерческими. Существуют и такие программы, которые распространяются бесплатно. Чаще всего эти программы написаны каким-нибудь опытным программистом для себя, затем переданы для общего пользования. Такие программы называются бесплатными (freeware). Иногда разработчики программы указывают, что их программа является бесплатной для индивидуальных пользователей, но для использования в организациях должна покупаться соответствующая лицензия.
Слайд 20
Слайд 21
Программы, которые нашли популярность у пользователей, как правило, совершенствуются разработчиками: в них исправляются ошибки, включаются новые возможности и т.д. Чтобы сохранить преемственность, получившимся программам не дается какое-то другое имя, а вместо этого они называются версиями исходных программ. По установившейся традиции версии программ обозначаются числами вида 1.00, 3.5 и т.д., т.е. десятичных дробей в американской записи. Номер версии обычно указывается после названия программы, например Windows3.0 (читается «три ноль»). При этом существенные изменения в программах отражаются увеличением цифры до точки, незначительные изменения или исправления ошибок – увеличением цифр, стоящих после точки. Например, первоначальная версия программы обозначается 1.0, версия с некоторыми улучшениями - 1.1, а после внесения существенных дополнений новая версия программы будет иметь номер 2.0. Также существует нумерация программ по годам, например: Windows 98 – версия, выпущенная в 98 году. Большинство фирм-разработчиков программ продают на льготных условиях (а иногда даже предоставляют бесплатно) новые версии своих программ тем, кто ранее приобрел одну из предшествующих версий. Например, программа может стоить 400 дол., а для владельцев предыдущих версий – 50 дол.