Подпишитесь на наши новости
Вернуться к началу с статьи up
 

ПРОГРА́ММНОЕ ОБЕСПЕ́ЧЕ́НИЕ

  • рубрика
  • родственные статьи
  • image description

    В книжной версии

    Том 27. Москва, 2015, стр. 552

  • image description

    Скопировать библиографическую ссылку:




Авторы: В. В. Кулямин

ПРОГРА́ММНОЕ ОБЕСПЕ́ЧЕ́НИЕ (ПО, про­грамм­ная сис­те­ма; англ. software), на­бор про­грамм, баз дан­ных, фай­лов, а так­же опи­сы­ваю­щих их до­ку­мен­тов, со­став­ляю­щих сис­те­му, для ре­ше­ния груп­пы свя­зан­ных за­дач на од­ном или не­сколь­ких взаи­мо­дей­ст­вую­щих ком­пью­те­рах. Тер­мин «software» впер­вые при­ме­нил ма­те­ма­тик из Прин­стон­ско­го ун-та Дж. Тью­ки в 1958. В ком­пь­ю­тер­ном слен­ге час­то ис­поль­зу­ет­ся сло­во «софт» (англ. soft – мяг­кий, гиб­кий).

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

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

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

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

Ана­ло­гом ПО в до­ком­пь­ю­тер­ную эпо­ху мож­но счи­тать пер­фо­кар­ты, опи­сы­ваю­щие узор тка­ни для про­грам­ми­руе­мой ткац­кой Жак­кар­да ма­ши­ны, а так­же при­ме­няв­шие­ся для за­пи­си дан­ных в ма­ши­нах-та­бу­ля­то­рах в кон. 19 в. смен­ные ба­ра­ба­ны с за­пи­сью разл. ме­ло­дий для муз. шка­ту­лок и шар­ма­нок. ПО как хра­ни­мые про­грам­мы по­яв­ля­ют­ся по­сле ра­бот Дж. фон Ней­ма­на, опи­рав­шего­ся на идеи А. Тью­рин­га (1935), К. Цу­зе (1936), а так­же Дж. Эк­кер­та и Дж. Мо­к­ли (1943). Пер­вые про­грам­мы бы­ли вы­чис­ли­тель­ные. Опе­ра­ци­он­ные сис­те­мы поя­ви­лись как сред­ст­ва ав­то­ма­ти­за­ции па­кет­но­го вы­пол­не­ния за­да­ний (GM-NAA I/O от General Motors для ком­пь­ю­те­ра IBM 704, 1956) и оп­ти­ми­за­ции ис­поль­зо­ва­ния вы­чис­лит. ре­сур­сов за счёт мно­го­за­дач­но­сти (Master Control Program – MCP от Burroughs, 1961). Язы­ки про­грам­ми­ро­ва­ния вы­со­ко­го уров­ня по­тре­бо­ва­ли соз­да­ния ком­пи­ля­то­ров; пер­вым ком­пи­ля­то­ром счи­та­ет­ся A-0, соз­дан­ный Г. Хоп­пер (США) для ма­ши­ны UNIVAC I (1951–52). При­мер­но в это же вре­мя ана­ло­гич­ное ПО соз­да­ва­лось и в СССР. Бы­строе рас­ши­ре­ние об­лас­ти ис­поль­зо­ва­ния ком­пь­ю­те­ров при­ве­ло к по­яв­ле­нию мно­го­числ. ви­дов при­клад­но­го ПО. Пер­вая ком­пь­ю­тер­ная иг­ра OXO, реа­ли­зую­щая кре­сти­ки-но­ли­ки, бы­ла соз­да­на в 1952 для ма­ши­ны EDSAC, су­ще­ст­во­вав­шей в един­ст­вен­ном эк­зем­п­ля­ре в Кемб­ридж­ском ун-те. Пер­вым встро­ен­ным ПО мож­но счи­тать сис­те­му управ­ле­ния для встро­ен­но­го ком­пь­ю­те­ра D-17B амер. меж­кон­ти­нен­таль­ной бал­ли­стич. ра­ке­ты «Ми­нит­мен-I» (1961).

Лит.: Пет­рен­ко А. К., Пет­рен­ко О. Л. Ма­ши­на Беб­бид­жа и воз­ник­но­ве­ние про­грам­ми­ро­ва­ния // Ис­то­ри­ко-ма­те­ма­ти­че­ские ис­сле­до­ва­ния. М.; Л., 1979. Вып. 24; Сом­мер­вилл И. Ин­же­не­рия про­грамм­но­го обес­пе­че­ния. 6-е изд. М., 2002; Reilly E. D. Milestones in computer science and information technology. Westport, 2003.

Вернуться к началу