Файл: Аналитический обзор современного программного обеспечения ПК.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.05.2023

Просмотров: 1028

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Логически отсюда следует, что направление ближайших исследований в области организации СУБД будет меняться, и ведущие разработчики баз данных, возможно поменяют сам основополагающий принцип, на котором работают большинство существующих разработок и заменят структуру индексация с B*-дерева, например, на более многообещающий RB-дерево, или даже будут разработаны новые механизмы, на сегодняшний день неизвестные [13, с.11].

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

На текущий момент сделано много попыток разработать портируемый компилятор. Но факт остается фактом: язык СИ стандартизирован, и достаточно давно, но 90% программного обеспечения, компилируемого, например в Linux, не сможет быть скомпилирован, скажем в Windows XP без изменения исходного кода. И, думается, усилия ведущих разработчиков, компиляторов будут направлены и на решение этой проблемы. Как следствие этого, к перспективам рынка программного обеспечения относится возможность портирования софта. Тут можно использовать различные подходы – использовать средства виртуализации, интерпретирующие системы,  кросскопиляцию и т.д. [13, с.56].

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


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

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

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

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

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

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

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


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

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

Характерным примером того,  что не все новые способы переноса и обработки информации жизнеспособны, можно назвать устройство для хранения информации на  ZIP-drive носителе на 100Мб, которые буквально за год, два после появления их на ранке были вытеснены более удобными перезаписываемыми CD на 650/700 Мб. [14, с.55].

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

   —  ориентация на объектно-ориентированное проектирование и программирование программных средств, что позволяет в совокупности с их стандартизацией перейти к новой технологии — технологии «сборки» того или иного приложения, ориентированного на конкретные потребности конкретного пользователя, из отдельных модулей-«кубиков», избегая тем самым ненужных пользователю функций. При этом снижаются объем и стоимость и повышается надежность «собранного» таким образом приложения (существующие офисные системы, например, используются абсолютным большинством обычных пользователей не более чем на 20 — 30%). Одновременно во многом снимается проблема модификации приложения при изменении информационных потребностей пользователя. Кроме того, ориентация на технологии «сборки» приложения в сочетании с возможностями сетевого доступа к этим приложениям как требуемым программным ресурсам позволяет в перспективе не приобретать в «личное пользование» то или иное приложение, а брать его во временную «аренду», снижая тем самым затраты на программное обеспечение;
   —  интеллектуализация интерфейса пользователя, обеспечение его интуитивной понятности, непроцедурности и приближение языка общения с компьютером к профессиональному языку пользователя; настройка интерфейса пользователя на особенности и потребности конкретного пользователя при организации его диалога с компьютером; использование средств мультимедиа при реализации интерфейса пользователя;
   —  интеллектуализация возможностей программ и программных систем; все шире при проектировании приложений используются методы искусственного интеллекта, что позволяет сделать приложения более «умными» и решать все более сложные, плохо формализуемые задачи;
   —  универсализация отдельных компонентов (модулей) прикладных программ и постепенный переход этих компонентов, а затем и самих программ из области специализированного прикладного ПО в область универсального прикладного ПО. Подобная ситуация сложилась с текстовыми процессорами, которые в свое время относились к специализированному прикладному ПО;


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

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

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

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


Заключение

Современный Российский рынок программного обеспечения в большей степени является пиратским. Доля нелегального ПО в России составляет около 90%. Это связанно с тем, что в отличие от стран Запада и США, в которых доля нелегального ПО на несколько порядков ниже, русский человек попросту не может позволить себе дорогостоящее лицензионное программное обеспечение, в связи с низким уровнем заработной платы. Поэтому многие компании пытаются минимизировать цены на свои продукты, а многие и вовсе, сделать их свободными.

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

Реализация информационных процессов требует соответствующего программного обеспечения (программных средств), затраты на приобретение которого соизмеримы с затратами на аппаратное обеспечение.
   Различают три вида ПО: системное, прикладное и инструментальное. В основание классификации и соответственно определения этих видов ПО положена инвариантность (независимость) ПО по отношению к специфике той или иной проблемной области, в которой предполагается его использование.
   Типичным представителем системного ПО являются операционные системы (ОС), обеспечивающие эффективное использование аппаратно-программных ресурсов ЭВМ и предоставление пользователю дружественного интерфейса для работы на компьютере. Пользователь взаимодействует с программами только через «посредничество» ОС. Современные ОС, как правило, являются сетевыми.
   Прикладное программное обеспечение делится на универсальное и специализированное. Типичными представителями универсального прикладного ПО являются офисные системы, системы управления базами данных и системы искусственного интеллекта.
   Офисная система — совокупность приложений, обеспечивающих автоматизацию типичных функций организационного управления деятельностью офиса. Наиболее часто используемым приложением офисной системы являются текстовый и табличный процессоры. В офисной системе MS Office это соответственно MS Word и MS Excel.
   Данные, требующиеся для решения задач пользователя, структурируются и накапливаются в базах данных (БД). Структуру данных в БД для представления той или иной предметной области определяет модель данных. Выделяют четыре основных типа моделей данных: иерархическую, сетевую, реляционную и объектную. Для задачи создания, пополнения, модификации и поиска данных в БД используют систему управления базой данных (СУБД). При работе с БД в среде некоторой СУБД различают три уровня представления данных: концептуальный, внешний и внутренний. Пользователь работает с данными в среде СУБД на внешнем уровне представления данных. Наиболее важная из функций СУБД — предоставление в распоряжение пользователя языка запросов, посредством которого он выражает свои информационные потребности.
   Перспективным направлением является искусственный интеллект (ИИ) как совокупность средств и методов решения интеллектуальных задач на основе моделирования процессов выявления, представления и манипулирования знаниями с использованием средств вычислительной техники.
   Для автоматизации процессов разработки программного обеспечения предназначены инструментальные системы, к которым относятся системы программирования и CASE-системы.