АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. V. ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ
  2. VII. НОВЕЙШИЕ ЭНЕРГОИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ.
  3. X. Образовательные технологии
  4. Автоматизация процессов управления банком и банковские информационные технологии
  5. Алгоритм технологии суспензионных мазей
  6. Алгоритм технологии эмульсионных мазей
  7. Алгоритмы и языки программирования
  8. В17. Умение использовать информационно-коммуникационные технологии
  9. ВЫСОКОУРОВНЕВЫЕ МЕТОДЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ
  10. Грачев Г., Мельник И. Манипулирование личностью: Организация, способы и технологии информационно-психологического воздействия. М., 1999г.
  11. Дидактическая единица 3. Основные виды, формы и методы технологии социальной работы в
  12. Дидактическая единица 6. Проблемы новаторства в технологии социальной работы: закономерности, механизм, процедуры, методы

Основные понятия и определения

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

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

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

Задача (problem, task) – проблема, подлежащая решению в интересах пользователя.

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

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

Принято (весьма условно) делить программы на небольшие (простые), средней сложности и большие [5].

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

  1. решает одну четко поставленную задачу в хорошо известных ограничениях, к тому же, не очень существенную для какой-либо практической или исследовательской деятельности;
  2. неважно, насколько быстро она работает;
  3. ущерб от неправильной работы программы – практически нулевой (за исключением возможности обрушения ею системы, в которой выполняются и другие, более важные задачи);
  4. не требуется дополнять программу новыми возможностями, практически никому не нужно разрабатывать ее новые версии или исправлять найденные ошибки;
  5. в связи со сказанным выше не очень нужно прилагать к программе подробную и понятную документацию – для человека, который ею заинтересуется, не составит большого труда понять, как ею пользоваться, просто по исходному коду.

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

Обычно сложная программа обладает следующими свойствами [10]:

  1. программа решает одну или несколько связанных задач, зачастую сначала не имеющих четкой постановки, настолько важных для каких-либо лиц или организаций, что те приобретают значимые выгоды от ее использования;
  2. существенно, чтобы программа была удобной в использовании. В частности, она должна включать достаточно полную и понятную пользователям документацию, возможно, также специальную документацию для администраторов, а также набор документов для обучения работе с программой;
  3. низкая производительность программы на реальных данных приводит к значимым потерям для пользователей;
  4. неправильная работа программы наносит ощутимый ущерб пользователям и другим организациям и лицам, даже если сбои происходят не слишком часто;
  5. для выполнения своих задач программа должна взаимодействовать с другими программами и программно-аппаратными системами и обеспечивать работу на разных платформах;
  6. пользователи, работающие с программой, приобретают дополнительные выгоды от того, что программа развивается, в нее вносятся новые функции и устраняются ошибки. Необходимо наличие проектной документации, позволяющей развивать ее, возможно, вовсе не тем разработчикам, которые ее создавали, без больших затрат на обратную разработку (реинжиниринг);
  7. в разработку программы вовлечено значительное количество людей (более 5-ти человек). Большую программу практически невозможно написать с первой попытки, с небольшими усилиями и в одиночку;
  8. большая программа имеет намного большее количество ее возможных пользователей по сравнению с небольшими программами, и еще больше тех лиц, деятельность которых будет так или иначе затронута ее работой и результатами.

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

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

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

  1. постановка задачи;
  2. алгоритмизация решения задачи;
  3. программирование.

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

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

Программирование (programming) – теоретическая и практическая деятельность, связанная с созданием программ.

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

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

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

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

В процессе разработки программных систем используются различные технологии программирования [1, 3, 9, 11]. В соответствии с обычным значением слова "технология" под технологией программирования (programming technology) понимается совокупность производственных процессов, приводящая к созданию требуемой ПС, а также описание этой совокупности процессов. Другими словами, технология программирования понимается здесь в широком смысле как технология разработки программных средств, включая в нее все процессы, начиная с момента зарождения идеи этого средства до создания необходимой программной документации. Каждый процесс этой совокупности базируется на использовании каких-либо методов и средств, например, компьютера (в этом случае речь идет о компьютерной технологии программирования).

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

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

Не следует также путать технологию программирования с методологией программирования. В технологии программирования методы рассматриваются "сверху" – с точки зрения организации технологических процессов, а в методологии программирования методы рассматриваются "снизу" – с точки зрения основ их построения. Например, в работе [24] методология программирования определяется как совокупность механизмов, применяемых в процессе разработки программного обеспечения и объединенных одним общим философским подходом.

В историческом аспекте в развитии технологии программирования можно выделить несколько этапов [3].

1. Первый этап: "стихийное" программирование – отсутствие сформулированной технологии, когда программирование было, по сути, искусством. Этап охватывает период от появления первых ЭВМ до середины 60-х годов 20-го века. Развитие программирования шло по пути замены машинных языков ассемблерами, а затем алгоритмическими языками (Fortran, Algol) и повторного использования подпрограмм, что повысило производительность труда программиста.

Стихийно использовалась разработка "снизу вверх" – подход, при котором вначале проектировали и реализовали сравнительно простые подпрограммы, из которых потом пытались построить сложную программу [6]. В начале 60-х годов 20-го века разразился кризис программирования [1, 3]. Он выражался в том, что фирмы превышали все сроки завершения программных проектов и их стоимость. В результате многие проекты так и не были завершены.

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

Проектирование осуществлялось "сверху вниз" и подразумевало реализацию общей идеи, обеспечивая проработку интерфейсов подпрограмм [3, 18]. Вводились ограничения на конструкции алгоритмов, рекомендовались формальные модели их описания, а также специальный метод проектирования алгоритмов – метод пошаговой детализации. Поддержка принципов структурного программирования была заложена в основу процедурных языков программирования (PL/1, Algol-68, Pascal, C).

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

3. Третий этап – объектный подход к программированию. Сложился с середины 80-х до конца 90-х годов 20-го века. Объектно-ориентированное программирование (ООП) определяется как технология создания сложного программного обеспечения, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств. Взаимодействие программных объектов осуществляется путем передачи сообщений.

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

Развитие объектного подхода в технологии программирования привело к созданию сред визуального программирования. Появились языки визуального объектно-ориентированного программирования, такие как Delphi, C++ Builder, Visual C++, C# и т. д. Однако технология ООП имеет и недостатки. Главный из них – зависимость модулей программного обеспечения от адресов экспортируемых полей и методов, структур и форматов данных. Эта зависимость объективна, так как модули должны взаимодействовать между собой, обращаясь к ресурсам друг друга.

4. Четвертый этап – компонентный подход и CASE-технологии (с середины 90-х годов 20-го века до нашего времени) [10]. Этот подход предполагает построение программного обеспечения из отдельных компонентов – физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собирать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию. В настоящее время рынок компонентов – реальность, поддерживаемая Интернетом и массовой рекламой и публикациями.

Основы компонентного подхода были разработаны компанией Microsoft, начиная с технологии OLE (Object Linking and Embedding – связывание и внедрение объектов), которая применялась в ранних версиях Windows для создания составных документов. Ее развитием стало появление COM-технологии (Component Object Model – компонентная модель объектов), а затем ее распределенной версии – DCOM, на основе которых были разработаны компонентные технологии, решаются различные задачи разработки программного обеспечения.

Среди них следуют отметить OLE-automation – технологию создания программируемых приложений, обеспечивающую доступ к внутренним службам этих приложений. На основе OLE-automation создана технология ActiveX, предназначенная для создания программного обеспечения, как сосредоточенного на одном компьютере, так и распределенного. Безопасность и стабильная работа распределенных приложений обеспечивается еще двумя технологиями, заложенными в COM. Это MDS (Multitier Distributed Application Sever) – сервер многозвенных распределенных приложений, и MTS (Microsoft Transaction Server) – сервер управления транзакциями.

Компонентный подход лежит также в основе технологии CORBA (Common Object Request Bracer Architecture – общая архитектура с посредником обработки запросов объектов). Эта технология, которая реализует подход, аналогичный COM, разработана группой компаний OMC (Object Management Group – группа внедрения объектной технологии программирования). Программное ядро CORBA реализовано для всех основных аппаратных и программных платформ и обеспечивает создание программного обеспечения в гетерогенной вычислительной среде.

Важнейшая особенность современного этапа технологии программирования – широкое использование компьютерных технологий создания и сопровождения программных систем на всех этапах их жизненного цикла. Эти технологии получили название CASE-технологий (ComputerAided Software/System engineering – разработка программного обеспечения/программных систем с использованием компьютерной поддержки). Сегодня существуют CASE-технологии, поддерживающие как структурный, так и объектный, в том числе компонентный, подходы к программированию [2].

Зная, какие программные технологии оказали самое сильное влияние за последние 25 лет, можно оценить их по количеству опубликованных научных статей или выяснить, например, сколько времени продолжался поднятый вокруг них ажиотаж. С другой стороны, с точки зрения пользователя, можно судить о них, оценивая, чего удалось добиться по сравнению с тем, что предварительно было обещано. Так в чем же уникальность последних 25 лет [25]?

Во-первых, программное обеспечение перестало быть прерогативой нескольких компаний и стало частью повседневной жизни практически каждого жителя нашей планеты: ПК, Internet и мобильные телефоны – свидетельства этой грандиозной эволюции. На рис.1.1 показаны программные технологии и периоды, когда они достигли важнейших этапов своего развития. Эта таблица построена исходя из структуры, предложенной Сэмом Редвайном и Вильямом Риддлом [25]. Для простоты показаны только три этапа развития: основы – когда проведены базовые исследования и созданы краеугольные концепции, ограниченное использование – когда эти концепции были взяты на вооружение некоторыми компаниями и пользователями, широкое использование – когда технология стала применяться примерно третьей частью целевого рынка.

 

 

В настоящее время критериями качества ПС (criteria of software quality) принято считать:

  1. функциональность – способность ПС выполнять набор функций, удовлетворяющих заданным или подразумеваемым потребностям пользователей. Набор указанных функций определяется во внешнем описании ПС;
  2. надежность – устойчивость, точность выполнения предписанных функций обработки, возможность диагностики возникающих ошибок. Надежность (reliability) ПС – это ее способность безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью. При этом под отказом в ПС понимают проявление в ней ошибки. Таким образом, надежная ПС не исключает наличия в ней ошибок – важно лишь, чтобы эти ошибки при практическом применении этого ПС в заданных условиях проявлялись достаточно редко. Убедиться, что ПС обладает таким свойством, можно при ее испытании путем тестирования, а также при практическом применении;
  3. легкость применения — это характеристики ПС, которые позволяют минимизировать усилия пользователя по подготовке исходных данных, применению ПС и оценке полученных результатов, а также вызывать положительные эмоции определенного или подразумеваемого пользователя. Сюда следует также отнести дружественный интерфейс, контекстно-зависимую подсказку, хорошую документацию;
  4. эффективность – это отношение уровня услуг, предоставляемых ПС пользователю при заданных условиях, к объему используемых ресурсов;
  5. сопровождаемость, модифицируемость – это характеристики ПС, которые позволяют минимизировать усилия по внесению изменений для устранения в ней ошибок и по ее модификации в соответствии с изменяющимися потребностями пользователей, переходу на новые версии и т.п.;
  6. мобильность (многоплатформенность) – независимость от технического комплекса вычислительных средств, операционной системы, сетевых возможностей, специфики предметной области задачи и т. д.;
  7. коммуникативность – степень возможной интеграции с другими программами, обеспечение обмена данными между программами.

 

 

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

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

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

  1. ограничение на коммерческое использование. Существует большое количество проприетарных программных продуктов, которое можно использовать бесплатно в некоммерческих целях для частных лиц, медицинских и учебных заведений, для некоммерческих организаций и т.д. Такое программное обеспечение очень популярно и широко используется, а за счет своей бесплатности имеет хорошую техническую поддержку со стороны специалистов, у которых отсутствует необходимость дополнительных затрат на обучение;
  2. ограничение на распространение. Этот вид ограничений сопровождает обычно крупные программные проекты, когда правообладатель требует оплаты за каждую копию программы. Обычно с таким ограничением применяются программные продукты, ориентированные на узкий "профессиональный" сегмент рынка, или программное обеспечение, требующееся большому числу пользователей. Примером может служить пакет программ Adobe CS3 или операционная система Microsoft Windows XP;
  3. ограничение на модификацию. Этот вид ограничения используется только в программных пакетах с закрытыми исходными кодами и может запрещать или ограничивать любую модификацию программного кода, дизассемблирование и декомпиляцию.

В настоящее время существуют и другие варианты легального распространения программных продуктов, которые появились с развитием Интернета:

  1. freeware – бесплатные, свободно распространяемые программы. Очень много серьезных компаний писали, пишут и будут писать freeware-программы. Дело в том, что freeware – прекрасный инструмент в продвижении новых технологий и продуктов. Например, всем известна программа общения ICQ. Это популярный бесплатный продукт, который имеет очень сильные позиции в сравнении с платными программами. Некоторые shareware-программы становятся бесплатными. Всем известный мультимедиа-проигрыватель Winamp первоначально был shareware-программой стоимостью в $10. Однако, после того как сайт winamp.com стал привлекать большое количество посетителей, разработчики, получая солидные доходы от рекламы, решили сделать свой продукт бесплатным, еще надежнее увеличив рост его популярности и своих доходов;
  2. shareware – условно-бесплатные программы. Употребляется и еще одно наименование этого типа ПО – "пробное" (trial). Основное достоинство shareware – "попробуй, прежде чем купить" (try before you buy). Пользователю предоставляется продукт с некоторыми ограничениями, "на пробу", пока он его не приобретет. Ограничения могут быть функциональными и/или временными (чаще всего программа работает 30 дней или определенное количество запусков). Если пользовать решает, что это программа ему нужна, он должен зарегистрироваться, заплатив автору определенную сумму, в противном же случае обязан прекратить использование программы и удалить ее со своего компьютера;
  3. public domain software – очень похожие на freeware программы. Распространяются бесплатно. Однако, в отличие от freeware, где автор программы имеет все права на программу, в случае с public domain у него эти права отсутствуют. Программа распространяется вместе с исходным кодом, и автор отказывается от своих прав. Главной идеей было развитие программы в дальнейшем. Однако в силу того, что программа была "ничья", кто угодно мог слегка модифицировать код, откомпилировать и распространять ее как платную. По этой причине таких программ в настоящее время просто не найти;
  4. open source. Представляет собой развитие концепции public domain software, в которой учтены ошибки этого варианта. Программа, как и раньше, распространяется на бесплатной основе вместе с исходным кодом. Однако автор уже не отказывается от своих прав. Существует система требований к лицензии на программный продукт, который называется The Open Source Definition (OSD), которая представлена на сайте. К программе обязательно должен быть приложен исходный код. Модифицированное ПО должно распространяться на тех же условиях, что и исходный продукт. Автор исходного продукта даже имеет право требовать, чтобы исходный код его программы распространялся без изменений, но в комплекте с соответствующими модифицирующими исправлениями.

Существуют и другие, можно сказать, экзотические варианты распространения программ. Например:

  1. adware. К этой категории относятся программы, которые во время своей работы демонстрируют пользователю рекламу, обычно графические баннеры размером 468x60 точек. Adware сочетает в себе freeware и shareware. С одной стороны, пользователь не обязан оплачивать программу и может ею пользоваться сколь угодно долго; с другой – у него есть стимул оплатить программу, ведь в этом случае он избавится от баннера, который так долго его нервирует. Наибольшее развитие этот тип получил в программах, которые работают в Интернете, ведь именно оттуда скачивается новая реклама. Например: браузеры, download-менеджеры и программы дозвона;
  2. donationware. Такое ПО также распространяются бесплатно, однако разработчик программы в лицензионном соглашении указывает, что если пользователю программа нравится, то он может (а не обязан) выслать денежное вознаграждение. К сожалению, как показывает практика, пользователи очень вяло реагируют на такие просьбы и очень редко высылают деньги.

Ряд производителей использует OEM-программы (Original Equipment Manu-facturer), т.е. встроенные программы, устанавливаемые на компьютеры или поставляемые вместе с компьютером.

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

 

 

 

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

  • операционная система;
  • операционные оболочки (обычно текстовые и графические);
  • сетевая операционная система.

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

Наиболее традиционное сравнение ОС осуществляется по следующим характеристикам процесса обработки информации:

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

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

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

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

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

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

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

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

 


Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.01 сек.)