1. Классификация программного обеспечения




Скачать 157.77 Kb.
Название1. Классификация программного обеспечения
Дата публикации27.04.2013
Размер157.77 Kb.
ТипЛекция
uchebilka.ru > Информатика > Лекция

Практикум по программированию Лекция 1

1. Классификация программного обеспечения

 

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


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

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

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

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

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

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

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

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

 



 

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


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


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


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


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


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

  • операционные системы и оболочки;

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

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

  • интегрированные пакеты программ;

  • динамические электронные таблицы;

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

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

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

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

 
 

^ 2. Системное программное обеспечение

 

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


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


В настоящее время существует большое количество ОС, разработанных для ЭВМ различных типов. На ЭВМ Единой Системы (ЕС ЭВМ), например, используются такие операционные системы, как СВМ и ОС ЕС, на малых ЭВМ (СМ-4, СМ-1420 и др.) - ОС РВ и RSX-11 М, на ПЭВМ - DOS 6.22, Windows 95, Windows NT, Unix, OS/ 2.


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

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

  • интерфейсные системы;

  • оболочки операционных систем;

  • утилиты.

Интерфейсные системы являются естественным продолжением операционной системы и модифицируют как пользовательский, так и программный интерфейсы, а также реализуют дополнительные возможности по управлению ресурсами ЭВМ. В связи с тем, что развитая интерфейсная система может изменить весь пользовательский интерфейс, часто их также называют операционными системами. Это относится, например, к Windows 3.11 и Windows 3.11 for Work Groups (для рабочих групп).


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


На ПЭВМ широко используются такие программы-оболочки, как Norton Commander и DOS Navigator.


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

  • обслуживание магнитных дисков;

  • обслуживание файлов и каталогов;

  • предоставление информации о ресурсах компьютера;

  • шифрование информации;

  • защита от компьютерных вирусов;

  • архивация файлов и др.

Существуют отдельные утилиты, используемые для решения одного из перечисленных действий, и многофункциональные утилиты. В настоящее время для ПЭВМ среди многофункциональных утилит одним из наиболее совершенных является комплект утилит Norton Utilities. Существуют его версии для использования в среде DOS и Windows.


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


 

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


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


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


К типовому прикладному ПО относят следующие программы:


• текстовые процессоры;

• табличные процессоры;

• системы иллюстративной и деловой графики (графические процессоры);

• системы управления базами данных;

• экспертные системы;

• программы математических расчетов, моделирования и анализа экспериментальных данных.

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

^ 5. Системы программирования

Система программирования — это система для разработки новых программ на конкретном языке программирования.


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


• компилятор или интерпретатор;

• интегрированная среда разработки;

• средства создания и редактирования текстов программ;

• обширные библиотеки стандартных программ и функций;

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

• "дружественная" к пользователю диалоговая среда;

• многооконный режим работы;

• мощные графические библиотеки; утилиты для работы с библиотеками

• встроенный ассемблер;

• встроенная справочная служба;

• другие специфические особенности.


Популярные системы программирования – Turbo Basic, Quick Basic, Turbo Pascal, Turbo C.


В последнее время получили распространение системы программирования, ориентированные на создание Windows-приложений:

 





пакет Borland Delphi (Дельфи) — блестящий наследник семейства компиляторов Borland Pascal, предоставляющий качественные и очень удобные средства визуальной разработки. Его исключительно быстрый компилятор позволяет эффективно и быстро решать практически любые задачи прикладного программирования.

пакет Microsoft Visual Basic — удобный и популярный инструмент для создания Windows-программ с использованием визуальных средств. Содержит инструментарий для создания диаграмм и презентаций.

пакет Borland C++ — одно из самых распространённых средств для разработки DOS и Windows приложений.
 

 

^ Основные понятия программного обеспечения
Программирование – это сфера действий, направленная на создание программ.

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

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

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

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



^ Классификация и сравнение языков программирования
ЭВМ исполняет программу в машинных кодах. Составляют программу люди на удобном для себя языке. Программа для ЭВМ занимается преобразованием одних данных в другие.

^ Различают языки:

  • низкого уровня (машинно-ориентированные),

  • высокого уровня (на зависят от типа ЭВМ). (Зависит от типа ЭВМ. Например, Ассемблер.)


Языки высокого уровня бывают:

    • процедурно-ориентированные (Паскаль),

    • проблемно-ориентированные (MathCAD),

    • объектно-ориентированные (С++).


Трансляторы – системные программы, которые преобразуют алгоритм решения задачи из одной формы записи в другую без потери сути алгоритма.

Т.е трансляторы переводят программу с языка программирования в машинные коды.
Виды трансляторов:

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

Компилятор – полностью обрабатывает весь текст программы и переводит его машинный код, который весь полностью исполняется процессором компьютера.

 
^

Первые языки программирования


В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. Компьютеры, стоившие в то время значительно дороже, чем разработка любой программы, требовали высокоэффективного кода. Такой код разрабатывался вручную на языке Ассемблер. В середине 50-х годов под руководством Джона Бэкуса для фирмы IBM был разработан алгоритмический язык программирования FORTRAN. Несмотря на то, что уже существовали разработки языков, выполняющие преобразование арифметических выражений в машинный код, создание языка FORTRAN (FORmula TRANslator), предоставляющего возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода, стало точкой отсчета эры алгоритмических языков программирования.

К языку FORTRAN предъявлялись требования cоздания высокоэффективного кода. Поэтому многие конструкции языка первоначально разрабатывались с учетом архитектуры IBM 407. Успех разработки этого языка привел к тому, что производители других вычислительных систем стали создавать свои версии трансляторов. С целью некоторой возможной на тот момент унификации языка язык FORTRAN IV, разработанный в 1966 году, стал первым стандартом, именуемым FORTRAN 66.

Как альтернатива языку FORTRAN, первоначально ориентированному на архитектуру IBM, под руководством Питера Наура в конце 50-х годов был разработан язык ALGOL (ALGOrithmic Language). Основной целью, преследуемой разработчиками этого языка, была независимость от конкретной архитектуры вычислительной системы. Кроме того, создатели языка ALGOL стремились разработать язык, удобный для описания алгоритмов и применяющий систему обозначений, близкую к той, что принята в математике.

Языки FORTRAN и ALGOL были первыми языками, ориентированными на программирование вычислений.

Язык PL/I, первые версии которого появились в начале 60-х годов, был первоначально ориентирован на IBM 360 и расширял возможности языка FORTRAN некоторыми средствами языка COBOL, разработанного в эти же годы. Несмотря на определенную популярность языка PL/I у программистов, работавших на компьютерах IBM и машинах серии ЕС, в настоящее время он представляет чисто теоретический интерес.

В конце 60-х годов под руководством Найарда и Дала был разработан язык Simula-67, использующий концепцию пользовательских типов данных. Фактически это первый язык, применяющий понятие классов.

В середине 70-х годов Вирт предложил язык Pascal, который сразу стал широко использоваться. В это же время по инициативе Министерства обороны США началась работа по созданию языка высокого уровня, получившего название Ada – в честь Ады Лавлейс, программистки и дочери лорда Байрона. Создание языка началось с определения требований и выработки спецификаций. Над проектом работали четыре независимые группы, но все они использовали как основу язык Pascal. В начале 80-х годов был разработан первый промышленный компилятор языка Ada.

Универсальный язык программирования С был разработан в середине 70-х годов Денисом Ритчи и Кеном Томпсоном. Этот язык стал популярным языком системного программирования и в свое время использовался для написания ядра операционной системы UNIX. Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования C++ и Java.

Наряду с алгоритмическими языками параллельно развивались и языки, предназначаемые для обработки деловой информации, а также языки искусственного интеллекта. К первым относится язык COBOL (COmmon Business Oriented Language), а ко вторым – языки LISP (LISt Processing) и Prolog. Язык LISP, разработанный в 60-х годах под руководством Дж. Маккарти, был первым функциональным языком обработки списков, который нашел широкое применение в теории игр.

С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки. Появились языки, применяемые в различных офисных программах, например VBA (Visual Basic for Application).

В 90-х годах с распространением сети Интернет расширяется возможность распределенной обработки данных, что отражается и на развитии языков программирования. Появляются языки, ориентированные на создание серверных приложений, такие как Java, Perl и PHP, языки описания документов – HTML и XML. Традиционные языки программирования С++ и Pascal также претерпевают изменения: под языком программирования начинает пониматься не только функциональность самого языка, а также библиотеки классов, предоставляемые средой программирования. Акцент со спецификации самих языков программирования переносится на стандартизацию механизмов взаимодействия распределенных приложений. Появляются новые технологии – COM и CORBA, специфицирующие взаимодействие распределенных объектов.

^ Области применения языков программирования

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

  • научные вычисления (языки C++, FORTRAN, Java);

  • системное программирование (языки C++, Java);

  • обработка информации (языки C++, COBOL, Java);

  • искусственный интеллект (LISP, Prolog);

  • издательская деятельность (Postscript, TeX);

  • удаленная обработка информации (Perl, PHP, Java, C++);

  • описание документов (HTML, XML).

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

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

  • удобство сопровождения и тестирования программ;

  • стоимость разработки с применением конкретного языка программирования;

  • четкость и ортогональность конструкций языка;

  • применение объектно-ориентированного подхода.

Парадигмы программирования

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

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

  • ^ Процедурные языки, которые представляют собой последовательность выполняемых операторов. Если рассматривать состояние ПК как состояние ячеек памяти, то процедурный язык – это последовательность операторов, изменяющих значение одной или нескольких ячеек. К процедурным языкам относятся FORTRAN, C, Ada, Pascal, Smalltalk и некоторые другие. Процедурные языки иногда также называются императивными языками. Код программы на процедурном языке может быть записан следующим образом:

оperator1; operator2; operator3;

  • ^ Аппликативные языки, в основу которых положен функциональный подход. Язык рассматривается с точки зрения нахождения функции, необходимой для перевода памяти ПК из одного состояния в другое. Программа представляет собой набор функций, применяемых к начальным данным, позволяющий получить требуемый результат. К аппликативным языкам относится язык LISP. Код программы на аппликативном языке может быть записан следующим образом:

  • function1(function2(

  • function3(beginning_date)));

  • Языки системы правил, называемые также языками логического программирования, основываются на определении набора правил, при выполнении которых возможно выполнение определенных действий. Правила могут задаваться в виде утверждений и в виде таблиц решений. К языкам логического программирования относится язык Prolog.

Код программы на языке системы правил может быть записан следующим образом:

if condition1 then operator1;

if condition2 then operator2;

if condition3 then operator3;

  • ^ Объектно-ориентированные языки, основанные на построении объектов как набора данных и операций над ними. Объектно-ориентированные языки объединяют и расширяют возможности, присущие процедурным и аппликативным языкам. К объектно-ориентированным языкам относятся C++, Object Pascal, Java.

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

^ Стандартизация языков программирования

Концепция языка программирования неотрывно связана с его реализацией. Для того чтобы компиляция одной и той же программы различными компиляторами всегда давала одинаковый результат, разрабатываются стандарты языков программирования. Существует ряд организаций, целенаправленно занимающихся вопросами стандартизации. Это Американский национальный институт стандартов ANSI (American National Standards Institute), Институт инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronic Engineers), Организация международных стандартов ISO (International Organization for Standardization).

Как правило, при создании языка выпускается частный стандарт, определяемый разработчиками языка. Если язык получает широкое распространение, то со временем появляются различные версии компиляторов, которые не точно следуют частному стандарту. В большинстве случаев идет расширение зафиксированных первоначально возможностей языка. Для приведения наиболее популярных реализаций языка в соответствие друг с другом разрабатывается согласительный стандарт. Очень важным фактором стандартизации языка программирования является своевременность появления стандарта – до широкого распространения языка и создания множества несовместимых реализаций. В процессе развития языка могут появляться новые стандарты, отражающие современные нововведения. Так, язык FORTRAN первоначально был стандартизирован в 1966 году. В результате был издан стандарт FORTRAN 66. Далее этот стандарт несколько раз пересматривался (в 1977 году был выпущен FORTRAN 77, затем появился и FORTRAN 90).

Язык Java, ставший в последнее время весьма распространенным, постепенно был значительно расширен и модифицирован: новая спецификация получила название Java 2.

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

^ Среда проектирования

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

Компилятор языка программирования выступает как составная часть среды проектирования. Сама программа наряду с конструкциями, предусмотренными стандартом, как правило, использует библиотечные функции и классы, предоставляемые средой проектирования. Так, интегрированная среда разработки VisualStudio.NET содержит библиотеку классов MFC (Microsoft Foundation Classes), значительно упрощающую процесс разработки приложений, использующих оконный интерфейс.

Интегрированная среда проектирования VisualStudio.NET позволяет создавать и компилировать приложения на языках C++, C#, Visual Basic и VisualJ. Для разработки приложений на языке С++ предназначается также среда CBuilder.

Для проектирования приложений на языке Object Pascal используется интегрированная среда проектирования Delphi.

Наиболее удобной средой разработки программ на языке Java является интегрированная среда проектирования JBuilder.




Добавить документ в свой блог или на сайт

Похожие:

1. Классификация программного обеспечения iconН. А. Сидоров Национальный авиационный университет
Рассматривается приложение стиля к разработке программного обеспечения. Введено понятие стилистики программного обеспечения как области...

1. Классификация программного обеспечения icon1. Общие положения Общие сведения о процедуре Запроса Предложений
Технической поддержки Программного обеспечения систем обеспечения Информационной безопасности и антивирусного программного обеспечения...

1. Классификация программного обеспечения iconЗакупочная документация
Технической поддержки Программного обеспечения Для безопасности ис и антивирусного программного обеспечения trend micro сроком на...

1. Классификация программного обеспечения iconКлассификация программного обеспечения
В отличие от аппаратного обеспечения, программы, которые выполняются на нем, неосязаемы и классифицируются как программное обеспечение....

1. Классификация программного обеспечения iconОбновление программного обеспечения
Внимание! Перед обновлением по убедитесь, что Устройство заряжено полностью во избежание разрядки во время обновления! Это может...

1. Классификация программного обеспечения iconРусский
Прочитайте внимательно: компания Autodesk, Inc. («Autodesk») предоставляет вам лицензию на использование программного обеспечения...

1. Классификация программного обеспечения iconЛегализация программного обеспечения
Это происходит из-за постепенного возрастания степени понимания украинскими компаниями того факта, что использование лицензионного...

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

1. Классификация программного обеспечения iconПонятие о системе программного обеспечения ЭВМ. Понятие об архитектуре ЭВМ
Для придания ЭВМ определенных свойств используют средства двух видов: аппаратурные и программные. Последние называются также средствами...

1. Классификация программного обеспечения iconПриема-передачи результатов работ по адаптации программного обеспечения...
Адаптация программного обеспечения (драйверов устройств) проводилась исполнителем в двух направлениях: обеспечение общей работоспособности...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<