Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Технология разработки программного обеспечения

Покупка
Основная коллекция
Артикул: 086270.16.01
Доступ онлайн
от 484 ₽
В корзину
Рассматриваются основные понятия и определения, классификация программного обеспечения, этапы создания программного продукта в рамках жизненного цикла, освещается современное состояние технологий разработки программных продуктов. Изложены существующие подходы к оценке качества процессов создания программного обеспечения, произведены анализ требований и определение спецификаций программного обеспечения. Большое внимание уделено вопросам проектирования ПО, его надежности, коллективной разработки с помощью современных систем контроля версий. Теоретический материал сопровождается практикумом в виде лабораторных работ по изложенной тематике. Предназначено для студентов и преподавателей высших учебных заведений технического профиля, а также для специалистов любой предметной области, проявивших интерес к современному состоянию методов и средств программирования.
33
79
158
0
Гагарина, Л. Г. Технология разработки программного обеспечения : учебное пособие / Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Сидорова-Виснадул ; под ред. Л.Г. Гагариной. — Москва : ФОРУМ : ИНФРА-М, 2024. — 400 с. — (Высшее образование). - ISBN 978-5-8199-0707-8. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2149181 (дата обращения: 03.06.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
ТЕХНОЛОГИЯ 
РАЗРАБОТКИ 

ПРОГРАММНОГО 

ОБЕСПЕЧЕНИЯ

Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Сидорова-Виснадул

Допущено Учебно-методическим объединением вузов

по университетскому политехническому образованию в качестве

учебного пособия для студентов высших учебных заведений,

обучающихся по направлениям подготовки 

09.04.01 и 09.03.03 «Информатика и вычислительная техника»

Под редакцией профессора Л.Г. Гагариной

УЧЕБНОЕ ПОСОБИЕ

Москва 

ИД «ФОРУМ» — ИНФРА-М

202
УДК  004(075.8)
ББК 32.973-018я73
 
Г12

Гагарина Л.Г.

Г12 
 
Технология разработки программного обеспечения : учебное пособие /

Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Сидорова-Виснадул ; под ред. 
Л.Г.  Гагариной.  —  Москва :  ИД «ФОРУМ» :  ИНФРА-М,  2024. — 
400 с. — (Высшее образование).

ISBN 978-5-8199-0707-8 (ИД «ФОРУМ») 
ISBN 978-5-16-013286-0 (ИНФРА-М, print) 
ISBN 978-5-16-104071-3 (ИНФРА-М, online)

Рассматриваются основные понятия и определения, классифика-

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

Теоретический материал сопровождается практикумом в виде лабора-

торных работ по изложенной тематике.

Предназначено для студентов и преподавателей высших учебных заве-

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

УДК 004(075.8) 

ББК 32.973-018я73

Р е ц е н з е н т ы:

Т.Н. Романова, кандидат физико-математических наук, доцент ка-

федры «Программное обеспечение ЭВМ и информационные технологии» 
Московского государственного технического университета 
им. Н.Э. Баумана;

О.И. Лисов, доктор технических наук, профессор Института искусств 

и информационных технологий

ISBN 978-5-8199-0707-8 (ИД «ФОРУМ») 
ISBN 978-5-16-013286-0 (ИНФРА-М, print) 
ISBN 978-5-16-104071-3 (ИНФРА-М, online)

© Гагарина Л.Г., Кокорева Е.В.,  

Сидорова-Виснадул Б.Д., 2015

© ИД «ФОРУМ», 2015
Ââåäåíèå

 íàñòîÿùåå âðåìÿ â óñëîâèÿõ ðàçâèâàþùåãîñÿ èíôîðìàöè-
îííîãî îáùåñòâà ñ ó÷åòîì âñåîáùåãî ïðèìåíåíèÿ è ðàñïðîñòðà-
íåíèÿ êîìïüþòåðíûõ è òåëåêîììóíèêàöèîííûõ òåõíîëîãèé è
ñèñòåì, à òàêæå â ñâÿçè ñ ðåàëèçàöèåé îáúÿâëåííîé ðàíåå Ïðå-
çèäåíòîì ÐÔ ïðîãðàììû íà ñîçäàíèå â ñòðàíå åäèíîãî îáðàçîâà-
òåëüíîãî è èíôîðìàöèîííîãî ïðîñòðàíñòâà ïîÿâëåíèå ó÷åáíîãî
ïîñîáèÿ, îñâåùàþùåãî òåîðåòè÷åñêèå è ïðàêòè÷åñêèå âîïðîñû
ðàçðàáîòêè ïðîãðàììíîãî îáåñïå÷åíèÿ, îñîáåííî àêòóàëüíî.
Êðîìå òîãî, ïîñêîëüêó Èíòåðíåò â íàøåé ñòðàíå äîñòóïåí â
îñíîâíîì ïîëüçîâàòåëÿì, ïðîæèâàþùèì â êðóïíûõ ãîðîäàõ, à
èíôîðìàòèçàöèÿ îáùåñòâà íåâîçìîæíà áåç õîðîøî ðàçâèòîé
êîììóíèêàöèîííîé èíôðàñòðóêòóðû, íàèáîëüøèé ñïðîñ îæèäà-
åò íàó÷íî-òåõíè÷åñêóþ ëèòåðàòóðó ïðèêëàäíîãî õàðàêòåðà, ê êà-
êîé è îòíîñèòñÿ ïðåäñòàâëåííàÿ êíèãà. Ê òîìó æå ñèñòåìíîå èç-
ëîæåíèå ìàòåðèàëà, áîãàòûé èëëþñòðàòèâíûé ìàòåðèàë è ìàññà
æèçíåííûõ ïðèìåðîâ, íåñîìíåííî, ïðèäàþò èçäàíèþ îñîáóþ
öåííîñòü.
Ñîãëàñíî «Êîíöåïöèè èíôîðìàòèçàöèè ñôåðû îáðàçîâàíèÿ
Ðîññèéñêîé Ôåäåðàöèè» è ïîëîæåíèÿì Ôåäåðàëüíîé öåëåâîé
ïðîãðàììû «Ýëåêòðîííàÿ Ðîññèÿ» îäíîé èç îñîáåííîñòåé ïåð-
ñïåêòèâíîé ñèñòåìû îáðàçîâàíèÿ â íàøåé ñòðàíå ÿâëÿåòñÿ îïå-
ðåæàþùåå îáðàçîâàíèå, â ðàìêàõ êîòîðîãî èçó÷àþòñÿ ïîñëåäíèå
äîñòèæåíèÿ â îáëàñòè èíôîðìàòèçàöèè, åå ñðåäñòâà, ìåòîäû, à
òàêæå ïåðñïåêòèâû äàëüíåéøåãî ðàçâèòèÿ è ïðàêòè÷åñêîãî èñ-
ïîëüçîâàíèÿ. Àíàëèç ñîäåðæàíèÿ ïðåäñòàâëåííîãî ïîñîáèÿ ïî-
çâîëÿåò óòâåðæäàòü, ÷òî åãî ñëåäóåò ðàññìàòðèâàòü íå òîëüêî êàê
âàæíîå ñðåäñòâî èíôîðìàöèîííîé ïîääåðæêè ó÷åáíîãî ïðîöåñ-
ñà â êà÷åñòâå ýôôåêòèâíîãî ïåäàãîãè÷åñêîãî èíñòðóìåíòà, íî è
êàê íåîáõîäèìûé èíñòðóìåíòàðèé îïåðåæàþùåãî îáðàçîâàíèÿ.
 ïðåäñòàâëåííîì ó÷åáíîì ïîñîáèè äîñòàòî÷íî ïîëíî èçëî-
æåíû ïîíÿòèÿ æèçíåííîãî öèêëà ïðîãðàììíîãî îáåñïå÷åíèÿ,
ïðîöåññ åãî ïðîèçâîäñòâà: ìåòîäû, òåõíîëîãèÿ è èíñòðóìåíòàëü-
íûå ñðåäñòâà, òåñòèðîâàíèå, îòëàäêà è ñîïðîâîæäåíèå ïðîãðàìì.
Îñíîâíîå îòëè÷èå äàííîãî ïîñîáèÿ îò àíàëîãè÷íûõ èçäàíèé
çàêëþ÷àåòñÿ â îñâåùåíèè îñíîâíûõ äèäàêòè÷åñêèõ åäèíèö äèñ-
öèïëèíû «Òåõíîëîãèÿ ðàçðàáîòêè ïðîãðàììíîãî îáåñïå÷åíèÿ» ñ
ó÷åòîì ïðîïåäåâòè÷åñêîé ïîäãîòîâêè ïîòåíöèàëüíîãî ÷èòàòå-
ëÿ — ñòóäåíòà âûñøåãî ó÷åáíîãî çàâåäåíèÿ. Èìåííî ïîýòîìó
òîëüêî íà áàçå îñíîâíûõ ïîíÿòèé è îïðåäåëåíèé â îáëàñòè ðàç-
ðàáîòêè ïðîãðàììíûõ ñðåäñòâ âîçìîæíî îñâåùåíèå ïðîáëåì äî-
êóìåíòèðîâàíèÿ, ïðîåêòèðîâàíèÿ ïðîãðàììíîãî îáåñïå÷åíèÿ;
ðàññìîòðåíèå âîïðîñîâ òåõíîëîãè÷åñêîãî öèêëà ðàçðàáîòêè ïðî-
ãðàììíûõ ñèñòåì. Âåñüìà èíòåðåñíûìè è ñâîåâðåìåííûìè äëÿ
áóäóùèõ ñïåöèàëèñòîâ ñîâðåìåííîãî ãëîáàëüíîãî îáùåñòâà ÿâ-
ëÿþòñÿ ðàçäåëû îá îðãàíèçàöèè êîëëåêòèâíîé ðàáîòû ïî ñîçäà-
íèþ ïðîãðàìì è îðãàíèçàöèè ïðîöåññà ðàçðàáîòêè ñ ïðèìåíå-
íèåì èíñòðóìåíòàëüíûõ ñðåäñòâ ïîääåðæêè.
Ìàòåðèàë ïîñîáèÿ ïðîøåë àïðîáàöèþ â Ìîñêîâñêîì èíñòè-
òóòå ýëåêòðîííîé òåõíèêè è èñïîëüçóåòñÿ â ó÷åáíîì ïðîöåññå
ðàçëè÷íûõ ôàêóëüòåòîâ.

4
Ââåäåíèå
Ãëàâà 1
ÏÐÎÃÐÀÌÌÍÎÅ ÎÁÅÑÏÅ×ÅÍÈÅ

1.1. Òåõíîëîãèÿ ïðîãðàììèðîâàíèÿ â èñòîðè÷åñêîì
àñïåêòå

×òîáû ðàçîáðàòüñÿ â ñóùåñòâóþùèõ òåõíîëîãèÿõ ïðîãðàììè-
ðîâàíèÿ è îïðåäåëèòü îñíîâíûå òåíäåíöèè èõ ðàçâèòèÿ, öåëåñî-
îáðàçíî ðàññìàòðèâàòü ýòè òåõíîëîãèè â èñòîðè÷åñêîì êîíòåê-
ñòå, âûäåëÿÿ îñíîâíûå ýòàïû ðàçâèòèÿ ïðîãðàììèðîâàíèÿ êàê
íàóêè.
Ïåðâûé ýòàï — «ñòèõèéíîå» ïðîãðàììèðîâàíèå. Ýòîò ýòàï îõ-
âàòûâàåò ïåðèîä îò ìîìåíòà ïîÿâëåíèÿ ïåðâûõ âû÷èñëèòåëüíûõ
ìàøèí äî ñåðåäèíû 60-õ ãîäîâ XX â.  ýòîò ïåðèîä ïðàêòè÷åñêè
îòñóòñòâîâàëè ñôîðìóëèðîâàííûå òåõíîëîãèè è ïðîãðàììèðîâà-
íèå ôàêòè÷åñêè áûëî èñêóññòâîì. Ïåðâûå ïðîãðàììû èìåëè
ïðîñòåéøóþ ñòðóêòóðó. Îíè ñîñòîÿëè èç ñîáñòâåííî ïðîãðàììû
íà ìàøèííîì ÿçûêå è îáðàáàòûâàåìûõ åþ äàííûõ (ðèñ. 1.1).
Ñëîæíîñòü ïðîãðàìì â ìàøèííûõ êîäàõ îãðàíè÷èâàëàñü ñïîñîá-
íîñòüþ ïðîãðàììèñòà îäíîâðåìåííî ìûñëåííî îòñëåæèâàòü ïî-
ñëåäîâàòåëüíîñòü âûïîëíÿåìûõ îïåðàöèé è ìåñòîíàõîæäåíèå
äàííûõ ïðè ïðîãðàììèðîâàíèè.

Ïîÿâëåíèå àññåìáëåðîâ ïîçâîëèëî âìåñòî äâîè÷íûõ èëè
16-ðè÷íûõ êîäîâ èñïîëüçîâàòü ñèìâîëè÷åñêèå èìåíà äàííûõ è

Ðèñ. 1.1. Ñòðóêòóðà ïåðâûõ ïðîãðàìì
ìíåìîíèêè êîäîâ îïåðàöèé. Â ðåçóëüòàòå ïðîãðàììû ñòàëè áî-
ëåå «÷èòàåìûìè».
Ñîçäàíèå ÿçûêîâ ïðîãðàììèðîâàíèÿ âûñîêîãî óðîâíÿ, òàêèõ
êàê FORTRAN è ALGOL, ñóùåñòâåííî óïðîñòèëî ïðîãðàììèðî-
âàíèå âû÷èñëåíèé, ñíèçèâ óðîâåíü äåòàëèçàöèè îïåðàöèé. Ýòî,
â ñâîþ î÷åðåäü, ïîçâîëèëî óâåëè÷èòü ñëîæíîñòü ïðîãðàìì.
Ðåâîëþöèîííûì áûëî ïîÿâëåíèå â ÿçûêàõ ñðåäñòâ, ïîçâî-
ëÿþùèõ îïåðèðîâàòü ïîäïðîãðàììàìè. (Èäåÿ íàïèñàíèÿ ïîäïðî-
ãðàìì ïîÿâèëàñü ãîðàçäî ðàíüøå, íî îòñóòñòâèå ñðåäñòâ ïîääåðæ-
êè â ïåðâûõ ÿçûêîâûõ ñðåäñòâàõ ñóùåñòâåííî ñíèæàëî ýôôåêòèâ-
íîñòü èõ ïðèìåíåíèÿ.) Ïîäïðîãðàììû ìîæíî áûëî ñîõðàíÿòü è
èñïîëüçîâàòü â äðóãèõ ïðîãðàììàõ. Â ðåçóëüòàòå áûëè ñîçäàíû îã-
ðîìíûå áèáëèîòåêè ðàñ÷åòíûõ è ñëóæåáíûõ ïîäïðîãðàìì, êîòî-
ðûå ïî ìåðå íàäîáíîñòè âûçûâàëèñü èç ðàçðàáàòûâàåìîé ïðî-
ãðàììû.
Òèïè÷íàÿ ïðîãðàììà òîãî âðåìåíè ñîñòîÿëà èç îñíîâíîé
ïðîãðàììû, îáëàñòè ãëîáàëüíûõ äàííûõ è íàáîðà ïîäïðîãðàìì
(â îñíîâíîì áèáëèîòå÷íûõ), âûïîëíÿþùèõ îáðàáîòêó âñåõ äàí-
íûõ èëè èõ ÷àñòè (ðèñ. 1.2).

Ñëàáûì ìåñòîì òàêîé àðõèòåêòóðû áûëî òî, ÷òî ïðè óâåëè÷å-
íèè êîëè÷åñòâà ïîäïðîãðàìì âîçðàñòàëà âåðîÿòíîñòü èñêàæåíèÿ
÷àñòè ãëîáàëüíûõ äàííûõ êàêîé-ëèáî ïîäïðîãðàììîé. Íàïðè-
ìåð, ïîäïðîãðàììà ïîèñêà êîðíåé óðàâíåíèÿ íà çàäàííîì èí-
òåðâàëå ïî ìåòîäó äåëåíèÿ îòðåçêà ïîïîëàì ìåíÿåò âåëè÷èíó èí-
òåðâàëà. Åñëè ïðè âûõîäå èç ïîäïðîãðàììû íå ïðåäóñìîòðåòü
âîññòàíîâëåíèÿ ïåðâîíà÷àëüíîãî èíòåðâàëà, òî â ãëîáàëüíîé îá-
ëàñòè îêàæåòñÿ íåâåðíîå çíà÷åíèå èíòåðâàëà. ×òîáû ñîêðàòèòü
êîëè÷åñòâî òàêèõ îøèáîê â ïîäïðîãðàììàõ, áûëî ïðåäëîæåíî
ðàçìåùàòü ëîêàëüíûå äàííûå (ðèñ. 1.3).

6
Ãëàâà 1. Ïðîãðàììíîå îáåñïå÷åíèå

Ðèñ. 1.2. Àðõèòåêòóðà ïðîãðàììû ñ ãëîáàëüíîé îáëàñòüþ äàííûõ
Ñëîæíîñòü ðàçðàáàòûâàåìîãî ïðîãðàììíîãî îáåñïå÷åíèÿ ïðè
èñïîëüçîâàíèè ïîäïðîãðàìì ñ ëîêàëüíûìè äàííûìè ïî-ïðåæíå-
ìó
îãðàíè÷èâàëàñü
âîçìîæíîñòüþ
ïðîãðàììèñòà
îòñëåæèâàòü
ïðîöåññû îáðàáîòêè äàííûõ, íî óæå íà íîâîì óðîâíå. Îäíàêî
ïîÿâëåíèå ñðåäñòâ ïîääåðæêè ïîäïðîãðàìì ïîçâîëèëî îñóùåñòâ-
ëÿòü ðàçðàáîòêó ïðîãðàììíîãî îáåñïå÷åíèÿ íåñêîëüêèì ïðî-
ãðàììèñòàì ïàðàëëåëüíî.
 íà÷àëå 60-õ ãîäîâ XX â. ðàçðàçèëñÿ «êðèçèñ ïðîãðàììèðî-
âàíèÿ». Îí âûðàæàëñÿ â òîì, ÷òî ôèðìû, âçÿâøèåñÿ çà ðàçðàáîò-
êó ñëîæíîãî ïðîãðàììíîãî îáåñïå÷åíèÿ, òàêîãî êàê îïåðàöèîí-
íûå ñèñòåìû, ñðûâàëè âñå ñðîêè çàâåðøåíèÿ ïðîåêòîâ [8]. Ïðî-
åêò óñòàðåâàë ðàíüøå, ÷åì áûë ãîòîâ ê âíåäðåíèþ, óâåëè÷èâàëàñü
åãî ñòîèìîñòü, è â ðåçóëüòàòå ìíîãèå ïðîåêòû òàê íèêîãäà è íå
áûëè çàâåðøåíû.
Îáúåêòèâíî âñå ýòî áûëî âûçâàíî íåñîâåðøåíñòâîì òåõíîëî-
ãèè ïðîãðàììèðîâàíèÿ. Ïðåæäå âñåãî ñòèõèéíî èñïîëüçîâàëàñü
ðàçðàáîòêà «ñíèçó—ââåðõ» — ïîäõîä, ïðè êîòîðîì âíà÷àëå ïðî-
åêòèðîâàëè è ðåàëèçîâûâàëè ñðàâíèòåëüíî ïðîñòûå ïîäïðîãðàì-
ìû, èç êîòîðûõ çàòåì ïûòàëèñü ïîñòðîèòü ñëîæíóþ ïðîãðàììó.
 îòñóòñòâèå ÷åòêèõ ìîäåëåé îïèñàíèÿ ïîäïðîãðàìì è ìåòîäîâ
èõ ïðîåêòèðîâàíèÿ ñîçäàíèå êàæäîé ïîäïðîãðàììû ïðåâðàùà-
ëîñü â íåïðîñòóþ çàäà÷ó, èíòåðôåéñû ïîäïðîãðàìì ïîëó÷àëèñü
ñëîæíûìè, è ïðè ñáîðêå ïðîãðàììíîãî ïðîäóêòà âûÿâëÿëîñü
áîëüøîå êîëè÷åñòâî îøèáîê ñîãëàñîâàíèÿ. Èñïðàâëåíèå òàêèõ
îøèáîê, êàê ïðàâèëî, òðåáîâàëî ñåðüåçíîãî èçìåíåíèÿ óæå ðàç-
ðàáîòàííûõ ïîäïðîãðàìì, ÷òî åùå áîëåå îñëîæíÿëî ñèòóàöèþ,
òàê êàê ïðè ýòîì â ïðîãðàììó ÷àñòî âíîñèëèñü íîâûå îøèáêè,
êîòîðûå òàêæå íåîáõîäèìî áûëî èñïðàâëÿòü...  êîíå÷íîì èòîãå

1.1. Òåõíîëîãèÿ ïðîãðàììèðîâàíèÿ â èñòîðè÷åñêîì àñïåêòå
7

Ðèñ. 1.3. Àðõèòåêòóðà ïðîãðàììû, èñïîëüçóþùåé ïîäïðîãðàììû ñ ëîêàëüíûìè
äàííûìè
ïðîöåññ òåñòèðîâàíèÿ è îòëàäêè ïðîãðàìì çàíèìàë áîëåå 80 %
âðåìåíè ðàçðàáîòêè, åñëè âîîáùå êîãäà-íèáóäü çàêàí÷èâàëñÿ. Íà
ïîâåñòêå äíÿ ñàìûì ñåðüåçíûì îáðàçîì ñòîÿë âîïðîñ ðàçðàáîòêè
òåõíîëîãèè ñîçäàíèÿ ñëîæíûõ ïðîãðàììíûõ ïðîäóêòîâ, ñíèæàþ-
ùåé âåðîÿòíîñòü îøèáîê ïðîåêòèðîâàíèÿ.
Àíàëèç ïðè÷èí âîçíèêíîâåíèÿ áîëüøèíñòâà îøèáîê ïîçâî-
ëèë ñôîðìóëèðîâàòü íîâûé ïîäõîä ê ïðîãðàììèðîâàíèþ, êîòî-
ðûé áûë íàçâàí «ñòðóêòóðíûì» [19, 23].
Âòîðîé
ýòàï
—
ñòðóêòóðíûé
ïîäõîä
ê
ïðîãðàììèðîâàíèþ
(60—70-å ãîäû XX â.). Ñòðóêòóðíûé ïîäõîä ê ïðîãðàììèðîâàíèþ
ïðåäñòàâëÿåò ñîáîé ñîâîêóïíîñòü ðåêîìåíäóåìûõ òåõíîëîãè÷å-
ñêèõ ïðèåìîâ, îõâàòûâàþùèõ âûïîëíåíèå âñåõ ýòàïîâ ðàçðàáîò-
êè ïðîãðàììíîãî îáåñïå÷åíèÿ.  îñíîâå ñòðóêòóðíîãî ïîäõîäà
ëåæèò äåêîìïîçèöèÿ (ðàçáèåíèå íà ÷àñòè) ñëîæíûõ ñèñòåì ñ öå-
ëüþ ïîñëåäóþùåé ðåàëèçàöèè â âèäå îòäåëüíûõ íåáîëüøèõ (äî
40—50 îïåðàòîðîâ) ïîäïðîãðàìì. Ñ ïîÿâëåíèåì äðóãèõ ïðèíöè-
ïîâ äåêîìïîçèöèè (îáúåêòíîãî, ëîãè÷åñêîãî è ò. ä.) äàííûé ñïî-
ñîá ïîëó÷èë íàçâàíèå ïðîöåäóðíîé äåêîìïîçèöèè.
 îòëè÷èå îò èñïîëüçóåìîãî ðàíåå ïðîöåäóðíîãî ïîäõîäà ê
äåêîìïîçèöèè, ñòðóêòóðíûé ïîäõîä òðåáîâàë ïðåäñòàâëåíèÿ çà-
äà÷è â âèäå èåðàðõèè ïîäçàäà÷ ïðîñòåéøåé ñòðóêòóðû. Ïðîåêòè-
ðîâàíèå, òàêèì îáðàçîì, îñóùåñòâëÿëîñü «ñâåðõó—âíèç» è ïîä-
ðàçóìåâàëî ðåàëèçàöèþ îáùåé èäåè, îáåñïå÷èâàÿ ïðîðàáîòêó
èíòåðôåéñîâ ïîäïðîãðàìì. Îäíîâðåìåííî ââîäèëèñü îãðàíè÷å-
íèÿ íà êîíñòðóêöèè àëãîðèòìîâ, ðåêîìåíäîâàëèñü ôîðìàëüíûå
ìîäåëè èõ îïèñàíèÿ, à òàêæå ñïåöèàëüíûé ìåòîä ïðîåêòèðîâà-
íèÿ àëãîðèòìîâ — ìåòîä ïîøàãîâîé äåòàëèçàöèè.
Ïîääåðæêà ïðèíöèïîâ ñòðóêòóðíîãî ïðîãðàììèðîâàíèÿ áûëà
çàëîæåíà â îñíîâó òàê íàçûâàåìûõ ïðîöåäóðíûõ ÿçûêîâ ïðîãðàì-
ìèðîâàíèÿ. Êàê ïðàâèëî, îíè âêëþ÷àëè îñíîâíûå «ñòðóêòóðíûå»
îïåðàòîðû ïåðåäà÷è óïðàâëåíèÿ, ïîääåðæèâàëè âëîæåíèå ïîä-
ïðîãðàìì, ëîêàëèçàöèþ è îãðàíè÷åíèå îáëàñòè «âèäèìîñòè»
äàííûõ. Ñðåäè íàèáîëåå èçâåñòíûõ ÿçûêîâ ýòîé ãðóïïû ñòîèò íà-
çâàòü PL/1, ALGOL-68, Pascal, Ñ.
Îäíîâðåìåííî ñî ñòðóêòóðíûì ïðîãðàììèðîâàíèåì ïîÿâè-
ëîñü îãðîìíîå êîëè÷åñòâî ÿçûêîâ, áàçèðóþùèõñÿ íà äðóãèõ êîí-
öåïöèÿõ, íî áîëüøèíñòâî èç íèõ íå âûäåðæàëî êîíêóðåíöèè. Êà-
êèå-òî ÿçûêè áûëè ïðîñòî çàáûòû, èäåè äðóãèõ áûëè â äàëüíåé-
øåì èñïîëüçîâàíû â ñëåäóþùèõ âåðñèÿõ ðàçâèâàåìûõ ÿçûêîâ.
Äàëüíåéøèé ðîñò ñëîæíîñòè è ðàçìåðîâ ðàçðàáàòûâàåìîãî
ïðîãðàììíîãî îáåñïå÷åíèÿ ïîòðåáîâàë ðàçâèòèÿ ñòðóêòóðèðîâà-

8
Ãëàâà 1. Ïðîãðàììíîå îáåñïå÷åíèå
íèÿ äàííûõ. Êàê ñëåäñòâèå ýòîãî â ÿçûêàõ ïîÿâëÿåòñÿ âîçìîæ-
íîñòü îïðåäåëåíèÿ ïîëüçîâàòåëüñêèõ òèïîâ äàííûõ. Îäíîâðå-
ìåííî óñèëèëîñü ñòðåìëåíèå ðàçãðàíè÷èòü äîñòóï ê ãëîáàëüíûì
äàííûì ïðîãðàììû, ÷òîáû óìåíüøèòü êîëè÷åñòâî îøèáîê, âîç-
íèêàþùèõ ïðè ðàáîòå ñ ãëîáàëüíûìè äàííûìè. Â ðåçóëüòàòå
ïîÿâèëàñü è íà÷àëà ðàçâèâàòüñÿ òåõíîëîãèÿ ìîäóëüíîãî ïðîãðàì-
ìèðîâàíèÿ.
Ìîäóëüíîå ïðîãðàììèðîâàíèå ïðåäïîëàãàåò âûäåëåíèå ãðóïï
ïîäïðîãðàìì, èñïîëüçóþùèõ îäíè è òå æå ãëîáàëüíûå äàííûå â
îòäåëüíî êîìïèëèðóåìûå ìîäóëè (áèáëèîòåêè ïîäïðîãðàìì), íà-
ïðèìåð ìîäóëü ãðàôè÷åñêèõ ðåñóðñîâ, ìîäóëü ïîäïðîãðàìì âû-
âîäà íà ïðèíòåð (ðèñ. 1.4). Ñâÿçè ìåæäó ìîäóëÿìè ïðè èñïîëü-
çîâàíèè äàííîé òåõíîëîãèè îñóùåñòâëÿþòñÿ ÷åðåç ñïåöèàëüíûé
èíòåðôåéñ, â òî âðåìÿ êàê äîñòóï ê ðåàëèçàöèè ìîäóëÿ (òåëàì
ïîäïðîãðàìì è íåêîòîðûì «âíóòðåííèì» ïåðåìåííûì) çàïðå-
ùåí. Ýòó òåõíîëîãèþ ïîääåðæèâàþò ñîâðåìåííûå âåðñèè ÿçûêîâ
Pascal è Ñ (C), ÿçûêè Àäà è Modula.

Èñïîëüçîâàíèå ìîäóëüíîãî ïðîãðàììèðîâàíèÿ ñóùåñòâåííî
óïðîñòèëî ðàçðàáîòêó ïðîãðàììíîãî îáåñïå÷åíèÿ íåñêîëüêèìè
ïðîãðàììèñòàìè. Òåïåðü êàæäûé èç íèõ ìîã ðàçðàáàòûâàòü ñâîè
ìîäóëè íåçàâèñèìî, îáåñïå÷èâàÿ âçàèìîäåéñòâèå ìîäóëåé ÷åðåç

1.1. Òåõíîëîãèÿ ïðîãðàììèðîâàíèÿ â èñòîðè÷åñêîì àñïåêòå
9

Ðèñ. 1.4. Àðõèòåêòóðà ïðîãðàììû, ñîñòîÿùåé èç ìîäóëåé
ñïåöèàëüíî
îãîâîðåííûå
ìåæìîäóëüíûå
èíòåðôåéñû.
Êðîìå
òîãî, ìîäóëè â äàëüíåéøåì áåç èçìåíåíèé ìîæíî áûëî èñïîëü-
çîâàòü â äðóãèõ ðàçðàáîòêàõ, ÷òî ïîâûñèëî ïðîèçâîäèòåëüíîñòü
òðóäà ïðîãðàììèñòîâ.
Ïðàêòèêà ïîêàçàëà, ÷òî ñòðóêòóðíûé ïîäõîä â ñî÷åòàíèè ñ
ìîäóëüíûì ïðîãðàììèðîâàíèåì ïîçâîëÿåò ïîëó÷àòü äîñòàòî÷íî
íàäåæíûå ïðîãðàììû, ðàçìåð êîòîðûõ íå ïðåâûøàåò 100 000 îïå-
ðàòîðîâ [10]. Óçêèì ìåñòîì ìîäóëüíîãî ïðîãðàììèðîâàíèÿ ÿâëÿ-
åòñÿ òî, ÷òî îøèáêà â èíòåðôåéñå ïðè âûçîâå ïîäïðîãðàììû âû-
ÿâëÿåòñÿ òîëüêî ïðè âûïîëíåíèè ïðîãðàììû (èç-çà ðàçäåëüíîé
êîìïèëÿöèè ìîäóëåé îáíàðóæèòü ýòè îøèáêè ðàíüøå íåâîçìîæ-
íî). Ïðè óâåëè÷åíèè ðàçìåðà ïðîãðàììû îáû÷íî âîçðàñòàåò
ñëîæíîñòü ìåæìîäóëüíûõ èíòåðôåéñîâ, è ñ íåêîòîðîãî ìîìåíòà
ïðåäóñìîòðåòü âçàèìîâëèÿíèå îòäåëüíûõ ÷àñòåé ïðîãðàììû ñòà-
íîâèòñÿ ïðàêòè÷åñêè íåâîçìîæíî. Äëÿ ðàçðàáîòêè ïðîãðàììíîãî
îáåñïå÷åíèÿ áîëüøîãî îáúåìà áûëî ïðåäëîæåíî èñïîëüçîâàòü
îáúåêòíûé ïîäõîä.
Òðåòèé ýòàï — îáúåêòíûé ïîäõîä ê ïðîãðàììèðîâàíèþ (ñ ñåðåäè-
íû 80-õ äî êîíöà 90-õ ãîäîâ XX â.). Îáúåêòíî-îðèåíòèðîâàííîå ïðî-
ãðàììèðîâàíèå îïðåäåëÿåòñÿ êàê òåõíîëîãèÿ ñîçäàíèÿ ñëîæíîãî
ïðîãðàììíîãî îáåñïå÷åíèÿ, îñíîâàííàÿ íà ïðåäñòàâëåíèè ïðî-
ãðàììû â âèäå ñîâîêóïíîñòè îáúåêòîâ, êàæäûé èç êîòîðûõ ÿâëÿåò-
ñÿ ýêçåìïëÿðîì îïðåäåëåííîãî òèïà (êëàññà), à êëàññû îáðàçóþò
èåðàðõèþ ñ íàñëåäîâàíèåì ñâîéñòâ [10, 24, 29]. Âçàèìîäåéñòâèå
ïðîãðàììíûõ îáúåêòîâ â òàêîé ñèñòåìå îñóùåñòâëÿåòñÿ ïóòåì ïå-
ðåäà÷è ñîîáùåíèé (ðèñ. 1.5).
Îáúåêòíàÿ ñòðóêòóðà ïðîãðàììû âïåðâûå áûëà èñïîëüçîâàíà
â ÿçûêå èìèòàöèîííîãî ìîäåëèðîâàíèÿ ñëîæíûõ ñèñòåì Simula,
ïîÿâèâøåìñÿ åùå â 60-õ ãîäàõ XX â. Åñòåñòâåííûé äëÿ ÿçûêîâ
ìîäåëèðîâàíèÿ ñïîñîá ïðåäñòàâëåíèÿ ïðîãðàììû ïîëó÷èë ðàç-
âèòèå â äðóãîì ñïåöèàëèçèðîâàííîì ÿçûêå ìîäåëèðîâàíèÿ —
ÿçûêå Smalltalk (70-å ãîäû XX â.), à çàòåì áûë èñïîëüçîâàí â íî-
âûõ âåðñèÿõ óíèâåðñàëüíûõ ÿçûêîâ ïðîãðàììèðîâàíèÿ, òàêèõ
êàê Pascal, C, Modula, Java.
Îñíîâíûì äîñòîèíñòâîì îáúåêòíî-îðèåíòèðîâàííîãî ïðî-
ãðàììèðîâàíèÿ ïî ñðàâíåíèþ ñ ìîäóëüíûì ïðîãðàììèðîâàíèåì
ÿâëÿåòñÿ «áîëåå åñòåñòâåííàÿ» äåêîìïîçèöèÿ ïðîãðàììíîãî îáåñ-
ïå÷åíèÿ, êîòîðàÿ ñóùåñòâåííî îáëåã÷àåò åãî ðàçðàáîòêó. Ýòî ïðè-
âîäèò ê áîëåå ïîëíîé ëîêàëèçàöèè äàííûõ è èíòåãðèðîâàíèþ èõ
ñ ïîäïðîãðàììàìè îáðàáîòêè, ÷òî ïîçâîëÿåò âåñòè ïðàêòè÷åñêè
íåçàâèñèìóþ ðàçðàáîòêó îòäåëüíûõ ÷àñòåé (îáúåêòîâ) ïðîãðàì-

10
Ãëàâà 1. Ïðîãðàììíîå îáåñïå÷åíèå
Доступ онлайн
от 484 ₽
В корзину