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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Лекция 3

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРОВ

Что такое программное обеспечение?

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

К программному обеспечению (ПО) относится также вся область деятельности по проектированию и разработке ПО:

- технология проектирования программ (например, нисходящее проектирование, структурное и объектно-ориентированное проектирование и др.);

- методы тестирования программ [8.7, 8.8, 8.9];

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

- анализ качества работы программ;

- документирование программ;

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

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

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

Программное обеспечение современных компьютеров включает миллионы программ — от игровых до научных.

 

Как классифицируется программное обеспечение?

В первом приближении все программы, работающие на компьютере, можно условно разделить на три категории (рис. 6.1):

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

- управление ресурсами компьютера;

- создание копий используемой информации;

- проверка работоспособности устройств компьютера;

- выдача справочной информации о компьютере и др.;

  1. инструментальные программные системы [6.12], облегчающие процесс создания новых программ для компьютера.


Рис. 6.1. Категории программного обеспечения

 

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

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

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

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

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

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

- операционные системы [6.5] и оболочки [6.8];

- системы программирования (трансляторы, библиотеки подпрограмм, отладчики и т.д.) [6.11];

- инструментальные системы;

- интегрированные пакеты программ [6.20];

- динамические электронные таблицы [6.16];

- системы машинной графики;

- системы управления базами данных (СУБД) [6.17];

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

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

Какие программы называют прикладными?

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

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

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

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

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

Что собой представляют операционные системы Windows, Unix, Linux?

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

Операционная система Unix была создана в Bell Telephone Laboratories. Познакомимся с краткой историей ее создания. В 1965 году Bell Telephone Laboratories (подразделение компании AT&T) совместно с General Electric Company и Массачусетским технологическим институтом начали разрабатывать новую операционную систему, названную Multiсs — Multiplexed Information and Computing Service (другой вариант расшифровки аббревиатуры Multiсs — Multi-user Timesharing Interactive Computing System).

Целью проекта было создание многозадачной операционной системы, способной обеспечить одновременную работу нескольких сотен пользователей. Но система Multiсs так и не была завершена, поскольку в 1969 году Bell Labs вышла и проекта. Однако специалисты Bell Labs, принимавшие участие в проекте — Кен Томпсон (Ken Tompson) и Дэннис Ритчи (Dennis Ritchie) — продолжили вместе с другими сотрудниками Bell Labs работу над созданием удобной среды программирования.

Используя идеи и разработки, появившиеся в результате работы над Multiсs, они создали в 1969 году небольшую операционную систему, получившую имя Unix, созвучное Multiсs и придуманное другим членом группы разработчиков, Брайаном Керниганом (Brian Kernigan). Система была целиком написана на ассемблере и применялась на компьютере PDP—7. К 1971 году в Bell Labs Unix была перенесена на более мощный компьютер PDP—11.

Вскоре после создания первых ассемблерных версий UNIX Томпсон начал работу над компилятором FORTRAN, а в результате разработал язык B. Это был интерпретатор со всеми свойственными интерпретаторам ограничениями, и Ритчи переработал его в другой язык, названный C, позволявший генерировать машинный код.

В 1973 году ядро Unix было переписано на C. В отличие от всех предыдущих ОС, на 100 процентов написанных на ассемблере для определенной машины, ядро UNIX имело только 10 процентов (1000 строк) кода на ассемблере. Для того, чтобы работать на произвольной машине, новая ОС нуждалась в написании всего лишь нескольких страничек на ассемблере и в компиляторе языка C. Это позволяло за считанные месяцы переносить операционную систему на другие аппаратные платформы и достаточно легко вносить в нее серьезные изменения и дополнения.

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

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

Unix — многозадачная операционная система, способная обеспечить одновременную работу очень большого количество пользователей. Ядро ОС Unix написано на языке высокого уровня C и имеет только около 10 процентов кода на ассемблере. Это позволяет за считанные месяцы переносить ОС Unix на другие аппаратные платформы и достаточно легко вносить в нее серьезные изменения и дополнения. UNIX является первой действительно переносимой операционной системой. В многочисленные существующие версии UNIX постоянно вносятся изменения. С одной стороны, это расширяет возможности системы, делает ее мощнее и надежнее, с другой — ведет к появлению различий между существующими версиями. В связи с этим возникает необходимость стандартизации различных свойств системы. Наличие стандартов облегчает переносимость приложений между различными версиями UNIX и защищает как пользователей, так и производителей программного обеспечения. Поэтому в 80-х годах разработан ряд стандартов, оказывающих влияние на развитие UNIX. Сейчас существуют десятки операционных систем, которые можно объединить под общим названием UNIX. В основном, это коммерческие версии, выпущенные производителями аппаратных платформ для компьютеров своего производства. Причины популярности UNIX:  Код системы написан на языке высокого уровня C, что сделало ее простой для понимания, изменения и переноса на другие платформы. Можно смело сказать, что UNIX является одной из наиболее открытых систем.

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

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

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

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

Очень большое количество приложений, в том числе свободно распространяемых, начиная от простейших текстовых редакторов и заканчивая мощными системами управления базами данных. (По материалам пособия "ОС UNIX", http://base1.spiiras.nw.ru/univer/unix)

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

Начало созданию системы Linux положено в 1991 г. финским студентом Линусом Торвальдсом (Linus Torvalds). В сентябре 1991 года он распространил по e-mail первый прототип своей операционной системы, и призвал откликнуться на его работу всех, кому она нравится или нет. С этого момента многие программисты стали поддерживать Linux, добавляя драйверы устройств, разрабатывая разные продвинутые приложения и др. Атмосфера работы энтузиастов над полезным проектом, а также свободное распространение и использование исходных текстов стали основой феномена Linux. В настоящее время Linux — очень мощная система, но самое замечательное то, что она бесплатная (free).

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

Феномен Linux вызвал к жизни разговоры о том, что родилась новая философия программирования, принципиально отличающаяся от того, что было раньше. Традиционные стадии жизненного цикла программного продукта таковы: анализ требований, разработка спецификаций, проектирование, макетирование, написание исходного текста, отладка, документирование, тестирование и сопровождение. Главное, что отличает этот подход, — централизация управления разными стадиями и преимущественно "нисходящая" разработка (то есть постоянная детализация). Однако Linux создавалась по-иному. Готовый работающий макет постоянно совершенствовался и развивался децентрализованной группой энтузиастов, действия которых лишь слегка координировались. Налицо анархичный характер и "восходящая" разработка: сборка все более крупных блоков из ранее созданных мелких. Здесь можно отметить и другое. При традиционной разработке в основу кладется проектирование и написание текстов, при разработке по методу Linux — макетирование, отладка и тестирование. Первые два этапа распараллелить сложно, а с отладкой и тестированием дело обстоит легче. Иными словами, разработка по методу Linux — это метод проб и ошибок, построенный на интенсивном тестировании. На любом этапе система должна работать, даже если это мини-версия того, к чему стремится разработчик. Естественный отбор оставляет только жизнеспособное. О том, что такое программирование — наука, искусство или ремесло, — спорят уже давно. И если в основе традиционной разработки ПО лежит прежде всего ремесло, то при разработке методом компьютерного дарвинизма — несомненно искусство.

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

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

- нет возможности предвидеть объем ресурсов для достижения того или иного результата;

- разработка не поддается детальному планированию, она ведется методом проб и ошибок;

- такие работы связаны с конкретными исполнителями и отражают их личностные качества.


BEGIN

Write('n = '); ReadLn(n);

For i: = 1 to n do

Begin

Write('A[', i, '] = ');

ReadLn(A[i]);

end;

S: = 0;

For i: = 1 to n do

S: = S + A[i];

WriteLn('S = ', S:8:2);

END.

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

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

В своем первоначальном виде Паскаль имел довольно ограниченные возможности, но расширенный вариант этого языка — Turbo Pascal, является очень мощным языком программирования. Интегрированная оболочка Turbo Pascal, разработанная фирмой Borland (ныне Inprise), включающая в себя редактор, компилятор, компоновщик и отладчик, вместе с интерактивной справочной системой сделали разработку программ на Паскале делом простым и приятным.

Язык Си разработан Деннисом Ритчи в 1972 г. как язык, пригодный для программирования новой операционной системы UNIX.

Операционные системы ради повышения скорости работы традиционно писались на языке низкого уровня — ассемблере, но язык Си настолько хорошо зарекомендовал себя, что на нем было написано более 90% всего кода ОС UNIX. Язык СИ обрел популярность как так называемый язык среднего уровня, в котором удобство, краткость и мобильность языков высокого уровня сочетаются с возможностью непосредственного доступа к аппаратуре компьютера, что обычно достигаются только при программировании на языке Ассемблера.

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

Программа на СИ:
# include <stdio.h>
# include <conio.h>
main()
{
float a[100], s; int i, n;
clrscr(); printf("n=");
scanf("%i", &n);
for (i = 1; i <= n; i++) {
printf("a[%i]=", i);
scanf("%f", &a[i]);}
s=0;
for (i = 1; i <= n; i++)
s = s + a[i];
printf("s = % f \ n", s);
return 0;
}

 

Что такое органайзеры?

Органайзеры — это программы — электронные секретари.


Lotus Organizer

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

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

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

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

6.1. Что такое программа?

6.2. Что включает в себя понятие "программное обеспечение"?

6.3. Назовите и характеризуйте основные категории программного обеспечения.

6.4. В чем отличие прикладных программ от системных и инструментальных?

6.5. Что входит в системное программное обеспечение?

6.6. В чем состоит назначение операционной системы?

6.7. Характеризуйте основные классы операционных систем.

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

6.9. Что такое файл?

6.10. Как организована файловая система?

6.11. Какой модуль операционной системы осуществляет обслуживание файлов?

6.12. Приведите пример иерархической файловой структуры.

6.13. Что такое базовая система ввода-вывода (BIOS), и в каком разделе памяти она размещается?

6.14. Из каких основных модулей состоит операционная система MS-DOS?

6.15. Назовите основные разновидности программ-утилит и дайте им краткую характеристику.

6.16. К каким категориям программного обеспечения относятся программные пакеты:

— Norton Commander;
— MS-DOS;
— Windows 3.x;
— Windows-NT, Windows 95;
— Microsoft Word;
— Adobe PageMaker;
— Turbo Bascal, Turbo Basic;
— Microsoft Excel, Lotus;
— FoxPro, Access for Windows;
— Microsoft Office, Microsoft Works?

6.17. Для чего предназначен пакет программ Norton Commander?

6.18. Какой вид интерфейса удобнее для пользователя — командный или графический?

6.19. Чем объясняется широкая популярность пакета Norton Commander?

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

6.21. Какие существуют средства борьбы с компьютерными вирусами?

6.22. В чем суть процесса сжатия информации?

6.23. Характеризуйте основные особенности операционных систем Windows-NT и Windows 95.

6.24. Какие языки и системы программирования вы знаете и в чем их особенности?

6.25. В чем отличие процесса интерпретации от процесса компиляции?

6.26. Назовите основные функции текстовых редакторов.

6.27. Какие дополнительные возможности редактирования текстов обеспечивают полнофункциональные издательские системы по сравнению с текстовыми редакторами?

6.28. Назовите функциональные возможности табличного процессора.

6.29. Какие виды входных данных могут быть введены в клетки электронных таблиц?

6.30. Дайте определение и опишите назначение базы данных.

6.31. Приведите пример возможного наполнения базы данных вашего учебного заведения.

6.32. Каковы основные функциональные возможности систем управления базами данных?

6.33. Что такое информационно-поисковые системы?

6.34. Дайте определение пакета прикладных программ.

6.35. Каково назначение библиотек стандартных программ?

6.36. Дайте определения интегрированного пакета программ.

6.37. Каково назначение сетевого программного обеспечения?

 

Лекция 3

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРОВ



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 338; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.192.16.116 (0.061 с.)