Технология разработки программного обеспечения
Покупка
Основная коллекция
Тематика:
Проектирование, отладка и тестирование ПО. Вспомогательные средства проектирования. CASE-технологии
Издательство:
Издательский Дом ФОРУМ
Год издания: 2024
Кол-во страниц: 400
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-8199-0707-8
ISBN-онлайн: 978-5-16-104071-3
Артикул: 086270.16.01
Доступ онлайн
В корзину
Рассматриваются основные понятия и определения, классификация программного обеспечения, этапы создания программного продукта в рамках жизненного цикла, освещается современное состояние технологий разработки программных продуктов. Изложены существующие подходы к оценке качества процессов создания программного обеспечения, произведены анализ требований и определение спецификаций программного обеспечения. Большое внимание уделено вопросам проектирования ПО, его надежности, коллективной разработки с помощью современных систем контроля версий.
Теоретический материал сопровождается практикумом в виде лабораторных работ по изложенной тематике.
Предназначено для студентов и преподавателей высших учебных заведений технического профиля, а также для специалистов любой предметной области, проявивших интерес к современному состоянию методов и средств программирования.
Тематика:
ББК:
УДК:
ОКСО:
- Среднее профессиональное образование
- 09.02.03: Программирование в компьютерных системах
- 09.02.07: Информационные системы и программирование
- ВО - Бакалавриат
- 02.03.03: Механика и математическое моделирование
- 09.03.03: Прикладная информатика
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Технология разработки программного обеспечения, 2023, 086270.15.01
Технология разработки программного обеспечения, 2022, 086270.14.01
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Сидорова-Виснадул Допущено Учебно-методическим объединением вузов по университетскому политехническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям подготовки 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. Ïðîãðàììíîå îáåñïå÷åíèå
Доступ онлайн
В корзину