Теория и практика фабрик программных продуктов
У 1975 р. академік В.М. Глушков запропонував концепцію конвеєрного способу виробництва ПП із готових програм. У статті наведено нові теоретичні результати та аналіз розвитку цієї концепції на прикладі попередніх і діючих фабрик програм. Це дозволило засвідчити появу двох основних понять виробництва...
Збережено в:
Дата: | 2011 |
---|---|
Автор: | |
Формат: | Стаття |
Мова: | Russian |
Опубліковано: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2011
|
Назва видання: | Кибернетика и системный анализ |
Теми: | |
Онлайн доступ: | http://dspace.nbuv.gov.ua/handle/123456789/84260 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Цитувати: | Теория и практика фабрик программных продуктов / Е.М. Лаврищева // Кибернетика и системный анализ. — 2011. — Т. 47, № 6. — С. 145-158. — Бібліогр.: 50 назв. — рос. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-84260 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-842602015-07-05T03:02:06Z Теория и практика фабрик программных продуктов Лаврищева, Е.М. Программно-технические комплексы У 1975 р. академік В.М. Глушков запропонував концепцію конвеєрного способу виробництва ПП із готових програм. У статті наведено нові теоретичні результати та аналіз розвитку цієї концепції на прикладі попередніх і діючих фабрик програм. Це дозволило засвідчити появу двох основних понять виробництва —– інтерфейс, як stub із передачі і трансформації даних програм, та інтегроване середовище складання готових різнорідних програм з деяких МП. Протягом цих років вони постійно удосконалювалися і стали базисом деякої сучасної фабрики програм, включаючи інфраструктуру складання з використанням людських, технологічних та інструментальних ресурсів. У межах системи будуть розроблені нові засоби інтерфейсу різнорідних програм із перетворення стандартних типів даних у ті, що є у багатьох мовах програмування. In 1975, Academician Glushkov proposed the concept of conveyor production of software from complete programs. The paper proposes new theoretical results and analyzes the development of this concept on the example of previous and current software factories. This allows witnessing the emergence of two basic concepts of production: interface as a stub in transmission and transformation of the given software and integrated environment of assembling various ready products in some programming languages. Over the years, they have constantly improved and become the basis of a modern software factory, including the assembly infrastructure with the use of human, technological, and tool resources in assembling ready programs. Within the framework of the system, new tools will be developed for the interface of heterogeneous programs to convert standard data types to those available in many programming languages by generating them. 2011 Article Теория и практика фабрик программных продуктов / Е.М. Лаврищева // Кибернетика и системный анализ. — 2011. — Т. 47, № 6. — С. 145-158. — Бібліогр.: 50 назв. — рос. 0023-1274 http://dspace.nbuv.gov.ua/handle/123456789/84260 681.3.06 ru Кибернетика и системный анализ Інститут кібернетики ім. В.М. Глушкова НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Russian |
topic |
Программно-технические комплексы Программно-технические комплексы |
spellingShingle |
Программно-технические комплексы Программно-технические комплексы Лаврищева, Е.М. Теория и практика фабрик программных продуктов Кибернетика и системный анализ |
description |
У 1975 р. академік В.М. Глушков запропонував концепцію конвеєрного способу виробництва ПП із готових програм. У статті наведено нові теоретичні результати та аналіз розвитку цієї концепції на прикладі попередніх і діючих фабрик програм. Це дозволило засвідчити появу двох основних понять виробництва —– інтерфейс, як stub із передачі і трансформації даних програм, та інтегроване середовище складання готових різнорідних програм з деяких МП. Протягом цих років вони постійно удосконалювалися і стали базисом деякої сучасної фабрики програм, включаючи інфраструктуру складання з використанням людських, технологічних та інструментальних ресурсів. У межах системи будуть розроблені нові засоби інтерфейсу різнорідних програм із перетворення стандартних типів даних у ті, що є у багатьох мовах програмування. |
format |
Article |
author |
Лаврищева, Е.М. |
author_facet |
Лаврищева, Е.М. |
author_sort |
Лаврищева, Е.М. |
title |
Теория и практика фабрик программных продуктов |
title_short |
Теория и практика фабрик программных продуктов |
title_full |
Теория и практика фабрик программных продуктов |
title_fullStr |
Теория и практика фабрик программных продуктов |
title_full_unstemmed |
Теория и практика фабрик программных продуктов |
title_sort |
теория и практика фабрик программных продуктов |
publisher |
Інститут кібернетики ім. В.М. Глушкова НАН України |
publishDate |
2011 |
topic_facet |
Программно-технические комплексы |
url |
http://dspace.nbuv.gov.ua/handle/123456789/84260 |
citation_txt |
Теория и практика фабрик программных продуктов / Е.М. Лаврищева // Кибернетика и системный анализ. — 2011. — Т. 47, № 6. — С. 145-158. — Бібліогр.: 50 назв. — рос. |
series |
Кибернетика и системный анализ |
work_keys_str_mv |
AT lavriŝevaem teoriâipraktikafabrikprogrammnyhproduktov |
first_indexed |
2025-07-06T11:12:26Z |
last_indexed |
2025-07-06T11:12:26Z |
_version_ |
1836895800962056192 |
fulltext |
Å.Ì. ËÀÂÐÈÙÅÂÀ
ÓÄÊ 681.3.06 ÒÅÎÐÈß È ÏÐÀÊÒÈÊÀ ÔÀÁÐÈÊ ÏÐÎÃÐÀÌÌÍÛÕ
ÏÐÎÄÓÊÒÎÂ
Êëþ÷åâûå ñëîâà: ïðîèçâîäñòâî ïðîãðàììíûõ ïðîäóêòîâ, ÿçûêè ïðîãðàììè-
ðîâàíèÿ, èíòåðôåéñ, ïëàòôîðìà, ñðåäà, âçàèìîäåéñòâèå, òèïû äàííûõ,
òðàíñôîðìàöèÿ ïðîãðàìì è äàííûõ.
ÂÂÅÄÅÍÈÅ
Êîíöåïöèþ ôàáðèêè ïðîãðàìì ñ êîíâåéåðíûì ñïîñîáîì ïðîèçâîäñòâà àêàäå-
ìèê Â.Ì. Ãëóøêîâ ñôîðìóëèðîâàë íà íàó÷íîì ñåìèíàðå Èíñòèòóòà êèáåðíå-
òèêè (ÈÊ) Àêàäåìèè íàóê Óêðàèíû â 1975 ã. [1, 2]. Ñîäåðæàíèå ýòîé êîíöåï-
öèè ôîðìèðîâàëîñü ïîñòåïåííî (òåîðåòè÷åñêè è ïðàêòè÷åñêè) ïîñëåäíèå äåñÿòè-
ëåòèÿ. Áûëè ñîçäàíû ðàçíûå ñðåäñòâà ïîääåðæêè ìíîãèõ àñïåêòîâ ñáîðî÷íîãî
ïðîèçâîäñòâà ïðîãðàììíûõ ïðîäóêòîâ (ÏÏ). Îáúåêòû ñáîðêè — ìîäóëè ïî-
âòîðíîãî èñïîëüçîâàíèÿ â ÿçûêàõ ïðîãðàììèðîâàíèÿ (ßÏ) 4GPL (Àëãîë, ÏË-1,
Êîáîë, Ôîðòðàí, Ìîäóëà-2 è äð.) è èõ èíòåðôåéñû â ÿçûêàõ (MIL, MESA, IDL,
API è äð.), êîòîðûå ñëóæàò èñòî÷íèêîì ãåíåðàöèè ìîäóëåé ïîñðåäíèêîâ (Ð-êîä,
stub, skeleton è äð.) äëÿ êàæäîé ïàðû ìîäóëåé, ðàçìåùàåìûõ â áèáëèîòåêàõ
ÝÂÌ èëè â ðåñïóáëèêàíñêèõ ôîíäàõ àëãîðèòìîâ è ïðîãðàìì. Íàçîâåì ñèñòåìû
àâòîìàòèçàöèè ìåòîäà ñáîðêè ìîäóëåé: â ÈÊ — Äåëüòàñòàò, Ïðîåêò, Ìàÿê,
Ìóëüòèïðîöåñèñò, ÐÒÊ, ÀÏÐÎÏ [1–4], â äðóãèõ èíñòèòóòàõ áûâøåãî ÑÑÑÐ —
ÑÈÌÏÐ (ÌÃÓ), ÏÐÈÇ (ÀÍ Ýñòîíèè), Àëüôà (Íîâîñèáèðñê) è â çàðóáåæ-
íûõ — SUN ONC IBM, Corba, Oberon, MS.net è äð. [3–8]. Ìåòîä êîíâåéåðíîé
ñáîðêè ïðîãðàìì îïðåäåëåí íà îñíîâå àíàëèçà êîíâåéåðà â àâòîìîáèëüíîé
ïðîìûøëåííîñòè è âêëþ÷àë òåõíîëîãè÷åñêèå ëèíèè (ÒË) ïðîöåññîâ ïðîèçâîä-
ñòâà ÏÏ íà îñíîâå íàçâàííûõ ñèñòåì àâòîìàòèçàöèè [9]. Ñôîðìóëèðîâàíî ïî-
íÿòèå èíòåðôåéñà ßÏ è ðàçíîÿçû÷íûõ ìîäóëåé êàê íåîáõîäèìûõ ýëåìåíòîâ
ñáîðî÷íîãî ïðîèçâîäñòâà ÏÏ [10–18].
Òàêèì îáðàçîì, ê 1990 ã. ñ ó÷àñòèåì ñïåöèàëèñòîâ ÈÊ áûëè îïðåäåëåíû áà-
çîâûå ïîíÿòèÿ è àòðèáóòû ïåðâûõ ôàáðèê ïðîãðàìì: ëèíèè ïðîèçâîäñòâà, ñèñòå-
ìû ñáîðêè ÏÏ, ÿçûê ñïåöèôèêàöèè ìîäóëåé, ìåòîäû èíòåãðàöèè (â ÷àñòíîñòè,
ñáîðêè), èíòåðôåéñû äëÿ ïåðåäà÷è äàííûõ è ïðåîáðàçîâàíèÿ íåðåëåâàíòíûõ
òèïîâ äàííûõ ßÏ, áèáëèîòåêè ìîäóëåé è îïåðàöèîííûå ñðåäû.
Êîíöåïöèÿ Ãëóøêîâà ñ êîíâåéåðíûì ïðîèçâîäñòâîì ÷àñòè÷íî ðåàëèçîâàíà
â ðàìêàõ àâòîìàòèçèðîâàííîé èíôîðìàöèîííîé ñèñòåìû (ÀÈÑ) «Þïèòåð»
(1980–1991). Âïåðâûå áûëî ñîçäàíî íåñêîëüêî âèäîâ ÒË äëÿ èçãîòîâëåíèÿ ïðè-
êëàäíûõ ïðîãðàìì (ââîäà è âûâîäà äàííûõ, ïàêåòîâ ïðèêëàäíûõ ïðîãðàìì, çà-
äà÷ ñòàòèñòèêè, ÷èñëåííûõ ìåòîäîâ è ò.ï.) [2, 11] äëÿ ÷åòûðåõ òåõíè÷åñêèõ îáú-
åêòîâ ÀÈÑ. Â ñâÿçè ñ ðàçâàëîì ÑÑÑÐ ðàáîòû ïî èíäóñòðèè ÏÏ âûïîëíÿëèñü òå-
îðåòè÷åñêè ñïåöèàëèñòàìè îòäåëà «Ïðîãðàììíàÿ èíæåíåðèÿ» Èíñòèòóòà
ïðîãðàììíûõ ñèñòåì (ÈÏÑ) ÍÀÍ Óêðàèíû.
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6 145
© Å.Ì. Ëàâðèùåâà, 2011
Ïðîöåññ ðàçðàáîòêè îñíîâ ôàáðèê ïðîãðàìì àêòèâíî ðàçâèâàåòñÿ çà ðóáå-
æîì ïî ìíîãèì íàïðàâëåíèÿì: ñòàíäàðòèçàöèÿ êà÷åñòâà (ISO/IEC 9000-1, 2, 3, 4,
ISO/IEC 12598-1, 2, 3, 4, ÃÑÒÓ 9126, 9150 è äð.), æèçíåííîãî öèêëà (ÆÖ)
ISO/IEC 12207 è òèïîâ äàííûõ îáùåãî íàçíà÷åíèÿ ISO/IEC 11404; ñèñòåìàòèçà-
öèÿ ðàçíûõ âèäîâ äåÿòåëüíîñòè (ýêîíîìèêà, óïðàâëåíèå è äð.) [19, 20]; èíäó-
ñòðèàëèçàöèÿ ÏÏ (Product Lines, Fabric program); îïðåäåëåíèå ÿçûêîâ îïèñàíèÿ
èíòåðôåéñîâ (IDL, API, XML, RDF, SIDL) è ñîâåðøåíñòâîâàíèå ñðåä —
MS.VSTS, Corba, Java, Grid [12, 14] è ò.ï.
Îïèñàíèå îñíîâíûõ ïîëîæåíèé ôàáðèê ïðîèçâîäñòâà ïðîãðàìì íà÷èíàåòñÿ
ñ õàðàêòåðèñòèêè òåîðåòè÷åñêèõ ðàáîò, îïèñàíèÿ ñîäåðæàíèÿ è ñòðóêòóðû ôàá-
ðèêè, ïðèíöèïîâ åå îðãàíèçàöèè, óïðàâëåíèÿ è ôóíêöèîíèðîâàíèÿ, à òàêæå íî-
âûõ íàïðàâëåíèé èíäóñòðèàëüíîãî ïðîèçâîäñòâà ïðîãðàìì.
1. ÐÀÇÂÈÒÈÅ ÒÅÎÐÅÒÈ×ÅÑÊÈÕ ÎÑÍΠÏÐÎÈÇÂÎÄÑÒÂÀ ÊÀ×ÅÑÒÂÅÍÍÛÕ ÏÏ
Êîíöåïöèÿ Ãëóøêîâà ïîñëåäíèå äåñÿòèëåòèÿ ðàçâèâàëàñü òåîðåòè÷åñêè â ôóíäà-
ìåíòàëüíûõ è äèññåðòàöèîííûõ èññëåäîâàíèÿõ â ðàìêàõ íàó÷íûõ ïðîåêòîâ ÃÊÍÒ
(1992–1996 ãã.) è ÍÀÍ Óêðàèíû (1997–2010 ãã.). Ñôîðìóëèðîâàíî ñáîðî÷íîå ïðî-
ãðàììèðîâàíèå, îñíîâàííîå íà èäåå ÒË ñ ïðîöåññàìè ïðîåêòèðîâàíèÿ, ñáîðêè ðàç-
íîÿçûêîâûõ ïðîãðàìì ñî ñðåäñòâàìè ïðåîáðàçîâàíèÿ íåñîâìåñòèìûõ FDT òèïîâ
äàííûõ. Ðàçðàáîòàíà òåîðèÿ ýêñïåðòèç ÏÏ, òåñòèðîâàíèÿ è îöåíèâàíèÿ êà÷åñòâà
ÏÏ. Ñïåöèàëèñòû èíñòèòóòà ïîëó÷èëè îðèãèíàëüíûå íàó÷íûå ðåçóëüòàòû ïî ìíî-
ãèì àñïåêòàì ïðîèçâîäñòâà ÏÏ, êîòîðûå îïóáëèêîâàíû â ñòàòüÿõ, ìîíîãðàôèÿõ è
íàó÷íûõ îò÷åòàõ. Íåêîòîðûå èç íèõ ïðèâîäÿòñÿ â êîðîòêîì èçëîæåíèè [9–29].
Ïîäõîä ê ïîñòðîåíèþ ÒË. Ïðîöåññû è îïåðàöèè, òåõíîëîãè÷åñêèé
ìàðøðóò ÒË ñîçäàþòñÿ íà ýòàïå òåõíîëîãè÷åñêîé ïîäãîòîâêè ðàçðàáîòêè (ÒÏÐ) ïîñ-
ëå àíàëèçà ïðåäìåòíîé îáëàñòè è âûÿâëåíèÿ åå îñíîâíûõ çàäà÷ è ôóíêöèé [9, 14].
Äëÿ íèõ âûáèðàþòñÿ ãîòîâûå ìîäóëè, ìåòîäû, ñðåäñòâà è èíñòðóìåíòû, îïðåäå-
ëÿþòñÿ ïðîöåññû ïëàíèðîâàíèÿ, êîíòðîëÿ è óïðàâëåíèÿ ïðîöåññàìè ÒË, ôîðìè-
ðóþòñÿ òåõíîëîãè÷åñêèå îáúåêòû äëÿ ôèêñàöèè ïðîåêòíûõ ðåøåíèé, èçìåíåíèÿ
ñîñòîÿíèé îáúåêòîâ è ïðîöåññîâ ïðîèçâîäñòâà ÏÏ, à òàêæå óïðàâëåíèÿ êà÷å-
ñòâîì ÏÏ íà ÒË [9]. Ïðîöåññû ÒË ñîîòâåòñòâóþò ìåæäóíàðîäíîìó ñòàíäàðòó
ISO/IEC 12207-96, 2007 è ÄÑÒÓ 3918–99, ïîäêðåïëÿþòñÿ ìåòîäàìè, ñðåäñòâàìè
è èíñòðóìåíòàìè ïðîãðàììèðîâàíèÿ äëÿ îñóùåñòâëåíèÿ èçìåíåíèé ñîñòîÿíèé
îáúåêòîâ. Îíè îïèñûâàþòñÿ â ñïåöèàëüíîì ÿçûêå ñïåöèôèêàöèè. Ïîäõîä ê ïî-
ñòðîåíèþ ÒË àïðîáèðîâàí â ÀÈÑ «Þïèòåð». Èäåè ÒË âîçíèêëè âíîâü â ëèíèè
ïðîäóêòîâ (Product Line Practice) [21], ïðèíöèïû ïîñòðîåíèÿ è âûïîëíåíèÿ àíà-
ëîãè÷íû ÒË è îòîáðàæàþò èíäóñòðèþ ïðîèçâîäñòâà êîììåð÷åñêèõ ÏÏ.
Òåîðèÿ îáúåêòíî-êîìïîíåíòíîãî ïðîãðàììèðîâàíèÿ. Êîìïîíåíòíûé
ïîäõîä èñòîðè÷åñêè ïðèøåë íà ñìåíó ìîäóëüíîìó — îñíîâå ñáîðî÷íîãî ïðî-
ãðàììèðîâàíèÿ [15–18, 22, 23]. Îí ÿâëÿåòñÿ åñòåñòâåííûì ïðîäîëæåíèåì îïðå-
äåëåíèÿ ïðîãðàìì ñ òî÷êè çðåíèÿ ñáîðî÷íîé êîíöåïöèè. Èç-çà îòñóòñòâèÿ â ýòîì
ïîäõîäå òåîðåòè÷åñêèõ îñíîâ áûëà ïîñòàâëåíà çàäà÷à — ñîçäàòü òåîðèþ êîìïî-
íåíòîâ, èñïîëüçóÿ òåîðèþ îáúåêòíîãî ïîäõîäà Áó÷à è ñáîðî÷íîãî ïðîãðàììèðî-
âàíèÿ, ðåàëèçóþùóþ òåîðèþ ïðåîáðàçîâàíèÿ òèïîâ äàííûõ ßÏ.  ðåçóëüòàòå
áûë ðàçðàáîòàí îáúåêòíî-êîìïîíåíòíûé ìåòîä (ÎÊÌ) [16, 22, 23], îñíîâàííûé
íà òåîðèè Ôðåãå [24] äëÿ óòî÷íåíèÿ è îáîáùåíèÿ ñâîéñòâ è õàðàêòåðèñòèê îáú-
åêòîâ ìàòåìàòè÷åñêèìè ôîðìàëèçìàìè.
Îïðåäåëåíèå 1. Ïðîãðàììíûé êîìïîíåíò — ýòî íåçàâèñèìûé îò ßÏ ïðî-
ãðàììíûé îáúåêò, êîòîðûé îáåñïå÷èâàåò âûïîëíåíèå íåêîòîðîé ñîâîêóïíîñòè
ïðèêëàäíûõ ôóíêöèé (ñåðâèñîâ), äîñòóï ê êîòîðûì âîçìîæåí ñ ïîìîùüþ èíòåð-
ôåéñîâ, îïðåäåëÿþùèõ ïîðÿäîê èõ âûçîâà.
Ñôîðìóëèðîâàí ôîðìàëüíûé ìåõàíèçì ïåðåõîäà îò îáúåêòîâ ê êîìïîíåí-
òàì è èõ èíòåðôåéñàì, à òàêæå îïðåäåëåí êîìïîíåíò ïîâòîðíîãî èñïîëüçîâàíèÿ
(ÊÏÈ) â êîìïîíåíòíîì ïðîãðàììèðîâàíèè:
ÊÏÈ � ( , , , , )T I F R S ,
146 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6
ãäå T — òèï êîìïîíåíòà, I — èíòåðôåéñ êîìïîíåíòà; F — ôóíêöèîíàëüíîñòü,
R — ðåàëèçàöèÿ, S — ñåðâèñ âçàèìîñâÿçè ñ äðóãèìè êîìïîíåíòàìè è ñðå-
äîé [23].
Ñîçäàíà àëãåáðà àíàëèçà � �� �( , , )E P , � �E E E En( , , , )1 2 � â ÎÊÌ, êîòîðàÿ
ðàçâèâàåò îáúåêòíóþ òåîðèþ Áó÷à ôîðìàëüíûìè ìåõàíèçìàìè ïðåäñòàâëåíèÿ ìíîæå-
ñòâà îáúåêòîâ, îïåðàöèÿìè � � { , , , , , }decds decdn comds comdn conexp connar íàä ýëå-
ìåíòàìè �E è ìíîæåñòâîì ïðåäèêàòîâ P P P Pr� ( , , ..., )1 2 . Ñèñòåìà îïåðàöèé àëãåá-
ðû è ôóíêöèé äåòàëèçàöèè, ýêçåìïÿðèçàöèè è àãðåãàöèè îáúåêòîâ ÿâëÿåòñÿ ïîëíîé.
 êîìïîíåíòíîì ïðîãðàììèðîâàíèè îïðåäåëåí íàáîð ôîðìàëüíûõ ìîäåëåé
(êîìïîíåíòà, èíòåðôåéñà, êîìïîíåíòíîé ñðåäû), îïåðàöèé êîìïîíåíòíîé àë-
ãåáðû (âíåøíåé è âíóòðåííåé) è óñîâåðøåíñòâîâàíà òåîðèÿ ïðåîáðàçîâàíèÿ íå-
ñîâìåñòèìûõ òèïîâ äàííûõ êîìïîíåíòîâ FDT â ßÏ.
Âíåøíÿÿ àëãåáðà � �� { , , }CSet CESet 1 îïðåäåëåíà íà ìíîæåñòâå êîìïîíåí-
òîâ Cset comp� { }, ñðåäå CESet èç ìíîæåñòâà êîìïîíåíòîâ è èíòåðôåéñîâ èç ðå-
ïîçèòîðèÿ èëè áèáëèîòåê è îïåðàöèÿõ �1 1 2 3 4� { , , , }CE CE CE CE îáúåäèíåíèÿ
êîìïîíåíòîâ è ñðåä CE CE CE3 1 2� � , óäàëåíèÿ êîìïîíåíòà èç ñðåäû
CE CE Comp2 1� \ , èíñòàëëÿöèè è çàìåùåíèÿ êîìïîíåíòà è åãî èíòåðôåéñà
Comp1 íà Comp2 — CE Comp CE Comp2 2 1 1� � ( \ ). Äîêàçàíà íåïðîòèâîðå÷èâîñòü
îïåðàöèé è ôóíêöèîíàëüíàÿ öåëîñòíîñòü êîìïîíåíòîâ è êîìïîíåíòíîé ñðåäû.
Âíóòðåííÿÿ àëãåáðà � � { , , }CSet CESet �2 îïðåäåëåíà íà îïåðàöèÿõ ýâîëþ-
öèè (çàìåíû) �2 � { , , }Î O Orefac Reing Rever , ãäå:
Î AddOImp AddNImp ReplImp AddIntrefac � { , , , } — îïåðàöèè ðåôàêòîðèíãà,
O rewrite restruc adop supp converreing � { , , , , } — îïåðàöèè ðåèíæåíåðèè,
O visual metric restruc design rewriteRever � { , , , , } — îïåðàöèè ðåâåðñíîé èíæå-
íåðèè.
Ýòè îïåðàöèè ïðåäíàçíà÷åíû äëÿ èçìåíåíèÿ èìåí, èíòåðôåéñîâ, ðåàëèçàöèé
êîìïîíåíòîâ, à òàêæå îáúåäèíåíèÿ èíòåðôåéñîâ è ðåàëèçàöèé â îäíî öåëîå
(íàïðèìåð, â êîíòåéíåð).
Êîìïîíåíòíàÿ àëãåáðà ñîñòîèò èç ýòèõ îïåðàöèé: ��
�{ ��
�
�{ , , } { , , } { , , ,CSet CESet CSet CESet CSet CESet� � � �1 2 1 2}, è îáåñïå÷èâàåò
ìåõàíèçìû âçàèìîäåéñòâèÿ è ýâîëþöèè ðàçíîðîäíûõ êîìïîíåíòîâ â ñîâðåìåí-
íûõ ñðåäàõ, à òàêæå ïðåîáðàçîâàíèå íåñîâìåñòèìûõ â ßÏ òèïîâ äàííûõ àíàëî-
ãè÷íî ñèñòåìå ÀÏÐÎÏ [2]. Îíà ðåãëàìåíòèðóåò îïåðàöèè â èíäóñòðèàëüíîì ïðî-
èçâîäñòâå ÏÏ [9, 18, 22, 23].
Ðåøåíèå ïðîáëåìû íåñîâìåñòèìîñòè òèïîâ äàííûõ. Îòëè÷èå â îïèñàíèè
òèïîâ äàííûõ â ßÏ äëÿ ïåðåìåííûõ ðàçíîÿçû÷íûõ ïðîãðàìì â îïåðàòîðàõ òèïà
CALL, íåàäåêâàòíîñòü â òðàíñôîðìàöèè äàííûõ ñèñòåìàìè ïðîãðàììèðîâàíèÿ è
àðõèòåêòóðíûå ðàçëè÷èÿ ïëàòôîðì ðåàëèçàöèè êîìïîíåíòîâ îñóùåñòâëÿåòñÿ èçî-
ìîðôíûì îòîáðàæåíèåì. Çàäà÷à ñáîðêè ïàðû ðàçíîÿçû÷íûõ ìîäóëåé — îïðåäåëå-
íèå âçàèìíî îäíîçíà÷íîãî ñîîòâåòñòâèÿ ìåæäó ìíîæåñòâàìè ôàêòè÷åñêèõ ïàðà-
ìåòðîâV n� � �{ , }� � �1 2 � è ôîðìàëüíûõ ïàðàìåòðîâ F f f f k� { , , ..., }1 2 ìîäóëåé.
Ôóíäàìåíòàëüíûå òèïû äàííûõ ßÏ è ñïîñîáû èõ ïðåäñòàâëåíèÿ îïðåäåëåíû
â òåîðèè ñòðóêòóðíîé îðãàíèçàöèè äàííûõ [15–18, 25–29] è âêëþ÷àþò äâà êëàññà:
� ïðîñòûå òèïû äàííûõ t b bool ñ char è int r real� ( ), ( ), ( ), ( )) ;
� ñëîæíûå òèïû äàííûõ t à array z record u union e enum� ( ), ( ), ( ), ( ) è äð.
Êàæäûé òèï äàííûõ â êëàññå ïðåäëîæåíî çàäàâàòü àëãåáðàè÷åñêîé ñèñòåìîé
âèäà Gt X t t
� � �� { , }� [22], â êîòîðîé t — òèï äàííûõ ÿçûêîâ L, X t
� — ìíîæåñòâî
çíà÷åíèé òèïà äàííûõ, � �
t — ìíîæåñòâî îïåðàöèé íàä ýòèì òèïîì äàííûõ.
Ïðîñòûì è ñëîæíûì òèïàì äàííûõ ïîñòàâëåíû â ñîîòâåòñòâèå ñëåäóþùèå
äâà êëàññà àëãåáðàè÷åñêèõ ñèñòåì:
�1 � { , , , }G G G Gb c u r
� � � � , �2 � { , , , }G G G Ga z u e
� � � � .
 êàæäîì êëàññå ýòèõ ñèñòåì ïðåîáðàçîâàíèå òèïîâ äàííûõ t q
äëÿ ïàðû
ÿçûêîâ lt è lq îñíîâàíî íà òàêèõ ñâîéñòâàõ îòîáðàæåíèé:
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6 147
1) ñèñòåìû G t
� è G q
�
èçîìîðôíû, åñëè èõ òèïû äàííûõ q t, îïðåäåëåíû íà
îäíîì è òîì æå ìíîæåñòâå òèïîâ äàííûõ;
2) ìåæäó çíà÷åíèÿìè X t
� è X q
�
òèïîâ äàííûõ t q, ñóùåñòâóåò èçîìîðôèçì,
åñëè ìíîæåñòâà îïåðàöèé � �
t è �
�
q ðàçíûå. Åñëè ìíîæåñòâî � � ��
� �
t q íåïóñ-
òîå, òî èìååò ìåñòî èçîìîðôèçì äâóõ ñèñòåì: G Xt t
� �
' � � �, � è G Xq q
� �
' � � �, � . Åñëè
òèï äàííûõ îòëè÷àeòñÿ, íàïðèìåð, t — ñòðîêà, à òèï q — âåùåñòâåííîå, òî ìåæäó
ìíîæåñòâàìè X t
� è X q
�
íå ñóùåñòâóåò èçîìîðôíîãî ñîîòâåòñòâèÿ.
Îòîáðàæåíèÿ ñîõðàíÿþò ëèíåéíûé ïîðÿäîê ýëåìåíòîâ â ñèëó ëèíåéíîé óïî-
ðÿäî÷åííîñòè ýëåìåíòîâ àëãåáðàè÷åñêèõ ñèñòåì èç ýòèõ êëàññîâ.
Ìåòîäû îöåíèâàíèÿ êà÷åñòâà ÏÏ. Âïåðâûå èäåÿ îáåñïå÷åíèÿ êà÷åñòâà
ïðîçâó÷àëà â 1968 ã. íà êîíôåðåíöèè ÍÀÒÎ ïî ïðîãðàììíîé èíæåíåðèè. Ñ òîãî
âðåìåíè ìíîãèå ñïåöèàëèñòû ñòàëè óäåëÿòü âíèìàíèå ðåøåíèþ ýòîé ïðîáëåìû
çà ðóáåæîì è â ÈÏÑ â ðàìêàõ íàó÷íî-èññëåäîâàòåëüñêèõ ïðîåêòîâ ÃÊÍÒ, Ìè-
íèñòåðñòâà íàóêè è ÍÀÍ Óêðàèíû. Êîìèòåò ISO ñîçäàë ðÿä ñòàíäàðòîâ êà÷åñòâà
ISO 9000-1, 2, 3, 4., ÃÎÑÒ 2844-94, 9126, 2850-94), â êîòîðûõ îïðåäåëåíû ìîäåëè
êà÷åñòâà, òåðìèíîëîãèÿ è ïîäõîäû ê îáåñïå÷åíèþ êà÷åñòâà êîìïîíåíòîâ è ÏÏ
Îñíîâíûì íàïðàâëåíèåì ðàáîòû îòäåëà ïðîäîëæèòåëüíîå âðåìÿ áûëà ïðîáëåìà-
òèêà êà÷åñòâà ÏÏ, âêëþ÷àþùàÿ àñïåêòû ïðîâåðêè ïðàâèëüíîñòè êîìïîíåíòîâ
è ïðîãðàìì (òåñòèðîâàíèå, âåðèôèêàöèÿ, ýêñïåðòèçû è äð.), è ïî ðåçóëüòàòàì
ýòîé ïðîâåðêè ðàçðàáîòàíû ìåòîäû îöåíèâàíèÿ êà÷åñòâà êîìïîíåíòîâ è ÏÏ.
 ðåçóëüòàòå áûëè ñîçäàíû îðèãèíàëüíûå ôîðìàëüíûå ìåòîäèêè ïðîâåðêè ïðà-
âèëüíîñòè, èçìåðåíèÿ è îöåíèâàíèÿ ïîêàçàòåëåé êà÷åñòâà êîìïîíåíòîâ è ÏÏ
â êëàññå çàäà÷ ÑÎÄ , êîòîðûå íå èìåþò ïðîòîòèïà:
— ìîäåëü êà÷åñòâà ñ îðèåíòàöèåé íà îöåíêó íàäåæíîñòè ÏÏ;
— ìîäåëü ðàñïðåäåëåíèÿ êîëè÷åñòâåííûõ òðåáîâàíèé ïî îòäåëüíûì êîìïî-
íåíòàì è ñ ó÷åòîì ïðèîðèòåòà ïîêàçàòåëÿ, çàäàííîãî ïîëüçîâàòåëåì;
— ìîäåëü ðàñïðåäåëåíèÿ íàäåæíîñòè ÏÏ êîìïîíåíòîâ ñ ôóíêöèåé ïîëåç-
íîñòè Q q w rnc
j
l
j j
s
m
s s� � � �
�
�
�
�� �
1 1
� â çàâèñèìîñòè îò âåñîâûõ êîýôôèöèåíòîâ ws è
íàäåæíîñòè q rj
n E
n
j
�
�
� îòäåëüíîãî êîìïîíåíòà;
— êîíöåïòóàëüíàÿ ìîäåëü ïðèíÿòèÿ ðåøåíèé ïî óïðàâëåíèþ êà÷åñòâîì, âêëþ-
÷àÿ ìåòîäû ñèñòåìàòè÷åñêîãî êîíòðîëÿ íàäåæíîñòè, íà÷èíàÿ èç ðàííèõ ñòàäèé ÆÖ ,
èçìåðåíèÿ òðåáîâàíèé ê íàäåæíîñòè è ïðîãíîçèðîâàíèþ âîçìîæíûõ äåôåêòîâ.
Ýòè ðåçóëüòàòû èçëîæåíû â ðÿäå ñòàòåé è â ìîíîãðàôèè [30–39], êîòîðûå
ïîëüçóþòñÿ ñïðîñîì â ñòðàíàõ ÑÍÃ. Îíè ðàçâèâàþòñÿ â íîâîì ïðîåêòå ïî ãåíå-
ðèðóþùåìó ïðîãðàììèðîâàíèþ ïðèìåíèòåëüíî ê ñåìåéñòâàì ñèñòåì [32].
Íîâûå ñðåäñòâà ïðîâåðêè ïðàâèëüíîñòè êîìïîíåíòîâ. Òåñòèðîâàíèå
êîìïîíåíòîâ è ÏÏ ñòàëè ñëåäóþùèì ãëàâíûì íàïðàâëåíèåì èññëåäîâàíèé, íà-
öåëåííûõ íà âûÿâëåíèå îøèáîê, ïîèñê äåôåêòîâ, îòêàçîâ è ñáîåâ ïðîãðàìì, êî-
òîðûå âûçûâàþòñÿ ðàçíûìè íåðåãóëÿðíûìè ñèòóàöèÿìè â ÏÏ èëè àâàðèéíûì
ïðåêðàùåíèåì ôóíêöèîíèðîâàíèÿ íåêîòîðîãî êîìïîíåíòà èëè âñåé êîìïîíåíò-
íîé ñèñòåìû. Â ðàáîòàõ [30, 33, 34] ïðåäëîæåíû íîâûå ðåçóëüòàòû â îáëàñòè òåñ-
òèðîâàíèÿ:
— ìîäåëü ïðîöåññà òåñòèðîâàíèÿ ñ ó÷åòîì ðèñêîâ îòêàçîâ è èõ îöåíêè âî
âðåìÿ ýêñïëóàòàöèè ÏÏ;
— ìàòåìàòè÷åñêàÿ ìîäåëü îïðåäåëåíèÿ îïòèìàëüíîãî âðåìåíè òåñòèðîâàíèÿ
êîìïîíåíòîâ te
� ñ ìàêñèìàëüíîé ïðèáûëüþ K t t R t t Ñ te e e( | ) ( | ) ( )0 0� � ��
� � � � � �Ñ t t t t c t c te e e eì ( ( ) ( ) ( )) ( )� � � �0 0 1 2 , ñ ïðîèçâîäíîé K t te( | )0
� �Ñ teì ( ( )� � � �� �( )) – ( )t t c c te e0 1 2 â çàâèñèìîñòè îò ôóíêöèè âîçðàñòàíèÿ
íàäåæíîñòè, èíòåíñèâíîñòè �( )t è ðèñêà Ñì ;
148 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6
— òåõíîëîãèÿ òåñòèðîâàíèÿ ÏÏ è ñáîðà èíôîðìàöèè î âñåõ âèäàõ îøèáîê è
èñïîëüçîâàíèå èõ ïðè ðàñ÷åòå íàäåæíîñòè ïðîãðàìì ÑÎÄ.
Ðåçóëüòàòû â îáëàñòè òåñòèðîâàíèÿ àïðîáèðîâàíû â ïðèêëàäíûõ ïðîåêòàõ
Ìèíèñòåðñòâà îáîðîíû Óêðàèíû, îíè ñîâåðøåíñòâóþòñÿ ïðèìåíèòåëüíî ê ÏÏ,
èçãîòîâëÿåìûõ â ñðåäå ïðîåêòà ïî ãåíåðèðóþùåìó ïðîãðàììèðîâàíèþ
(2007–2011) [33].
Ïîäõîä ê ýêñïåðòíîìó îöåíèâàíèþ ïðîöåññîâ îáåñïå÷èâàåò ðåøåíèå ôîð-
ìàëüíûõ çàäà÷ îöåíèâàíèÿ îáúåêòîâ ïðîèçâîäñòâà è ýêñïëóàòàöèè ÏÏ ñ ïî-
ìîùüþ ýêñïåðòèç è íîâîé ìîäåëè ïðîöåññà óïðàâëåíèÿ ðèñêàìè ÏÏ íà îñíîâå
äåðåâà öåííîñòè. Ðàçðàáîòàííûé ìåòîä ãðóïïîâîãî ýêñïåðòíîãî îöåíèâàíèÿ êîì-
ïîíåíòîâ è ÏÏ áàçèðóåòñÿ íà ñîîòâåòñòâóþùåé ýêñïåðòíîé òåîðèè ïðèìåíèòåëü-
íî ê îöåíêå ïðîöåññîâ, àäàïòèðîâàííûõ èç ñòàíäàðòà ÆÖ ÏÏ:
T G et ch et� � �, , ( ) ; � � � � �G GÒ et ET ch et CH et; ; ( ) ; CH CHet ET
et� � � ;
ES T A d ca cn ca cn mg f dn n et ch( ) , ( , , , , ), , , ,� � � � �1 1 � � ,
ãäå G — öåëü ðàçðàáîòêè ÏÑ; et — òèï îöåíèâàåìûõ îáúåêòîâ ÆÖ; ch et( ) —
öåëåâàÿ õàðàêòåðèñòèêà; A a ud t� �{ ( , ) }, | |A �1 — àëüòåðíàòèâà; d — àíàëè-
òè÷åñêàÿ çàâèñèìîñòü ch et( ) îò åå îöåíèâàåìûõ ïîäõàðàêòåðèñòèê, ca CHl
et� ,
l n� �1, , , èç ìíîæåñòâà � et ch, ; � � cnl — èñòî÷íèê êîíòåêñòà îöåíèâàíèÿ cal ;
mg — ìîäåëü ýêñïåðòíîé ãðóïïû; � � � f — îñíîâa âåðèôèêàöèè îöåíîê
{ ( ), }ch a a A� .
Ìåòîä îöåíèâàíèÿ âñòðîåí â íîâûé ïðîöåññ ÆÖ ñ îáùåé èíôîðìàöèîííîé
ñðåäîé, àäåêâàòíîé ïîòðåáíîñòÿì è ñïåöèôèêå ïðîèçâîäñòâåííîé äåÿòåëüíîñòè,
ñâÿçàííîé ñ èçãîòîâëåíèåì ÏÏ. Ìàòåìàòè÷åñêèé àïïàðàò âêëþ÷àåò ìåòîäè÷åñ-
êèé êàðêàñ (öåëåâûå ôóíêöèè è ìåõàíèçìû ðåàëèçàöèè); ìîäåëü è ìåòîäû îöåíè-
âàíèÿ ïðîöåññîâ è ÏÏ ñ ïîìîùüþ ôîðìàëèçìîâ, ïîâûøàþùèõ êà÷åñòâî ýêñïåð-
òèçû ðåçóëüòàòîâ, è èõ äàëüíåéøåå èñïîëüçîâàíèå ïðè ñáîðêå íà îñíîâå ïðîöåñ-
ñîâ óïðàâëåíèÿ èçãîòîâëåíèåì ÏÏ [34].
Ìåòîäèêà óïðàâëåíèÿ ïðîãðàììíûì ïðîåêòîì. Ìåíåäæìåíò ïðîãðàì-
ìíîãî ïðîåêòà ñòàë îäíîé èç ïðîáëåì èíäóñòðèè ÏÏ â ðÿäå çàðóáåæíûõ ðàáîò,
â òîì ÷èñëå â ñòàíäàðòå PMBOK (Project Mamagerment Body of Knowladge, 2005).
Ñòàíäàðò ðåãëàìåíòèðóåò ðóêîâîäñòâî ðàáîòàìè êîìàíäû èñïîëíèòåëåé ïðîåêòà
ñ èñïîëüçîâàíèåì îáùèõ ìåòîäîâ óïðàâëåíèÿ, ïëàíèðîâàíèÿ è êîíòðîëÿ ðàáîò
(ñòàðòîâûå îïåðàöèè, ïëàíèðîâàíèå èòåðàöèé, ìîíèòîðèíã è îò÷åòíîñòü), óïðàâ-
ëåíèå ðèñêàìè è êîíôèãóðàöèåé ÏÏ. Ïðè èññëåäîâàíèè ìåíåäæìåíòà ïîÿâèëèñü
íîâûå òåîðåòè÷åñêèå è ïðèêëàäíûå ðåçóëüòàòû [35, 36], à èìåííî:
— ôîðìàëüíàÿ ìîäåëü óïðàâëåíèÿ ïðîåêòèðîâàíèåì èíôîðìàöèîííûõ ñèñ-
òåì ñ ó÷åòîì ìàòåðèàëüíûõ, ôèíàíñîâûõ è òðóäîâûõ ðåñóðñîâ, íåîáõîäèìûõ äëÿ
ïðîèçâîäñòâà ÏÏ;
— ìåòîä ôîðìèðîâàíèÿ âàðèàíòà ïëàíà Õ ðàáîò ïî ñåòåâîìó ãðàôèêó
âêëþ÷àåò ïîñëåäîâàòåëüíîñòü ðàáîò ( )l Li � ñ îáúåìîì qi è òèïîì Wi ðåñóðñîâ
R R RL S� { , }, íîðìó èõ èñïîëüçîâàíèÿ ( )NR NRi � â ñîîòâåòñòâèè ñ çàêîíîì
ðàñïðåäåëåíèÿ ñëó÷àéíûõ âåëè÷èí F F Fr� � �{ }1 � , âðåìåíè t â ïëàíîâîì ïåðè-
îäå [ , ]t T0 è ñ âåðîÿòíîñòüþ îêîí÷àíèÿ ðàáîò, èñõîäÿ èç êðèòåðèÿ îïòèìàëüíîãî
ïëàíà K X K X( ) min ( )� � .
Äàííûé ìåòîä ïðîøåë àïðîáàöèþ â ñèñòåìàõ àâòîìàòèçàöèè îáðàçîâàòåëüíûõ
ïðîöåññîâ («Äîêóìåíòîîáîðîò â îáðàçîâàíèè Óêðàèíû», ïîðòàëû «Äåòè Óêðàèíû»,
«Ó÷èòåëü íîâàòîð», 2004–2010) â Àêàäåìèè ïåäàãîãè÷åñêèõ íàóê Óêðàèíû.
Êëàññèôèêàöèÿ äèñöèïëèí äëÿ ïðîèçâîäñòâà ÏÏ. Ñòðóêòóðèçàöèÿ ïðî-
ãðàììíîé èíæåíåðèè (ÏÈ) èç 10 knowledge areas of SWEBOK (Software
Egineering of Body Knowledge, www.swebok.com) ñîîòâåòñòâóåò ïðîöåññàì ñòàí-
äàðòà ISO/IEC 12207, ïðîãðàììå îáó÷åíèÿ Computing Curricula (2001, 2004) è íà-
ïðàâëåíà íà ïîëó÷åíèå çíàíèé â ýòîé îáëàñòè.
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6 149
Ïðîèçâîäñòâî ðàçíûõ âèäîâ ÏÏ è ñåìåéñòâ ñèñòåì òðåáóåò íîâîé ñòðóêòó-
ðèçàöèè ÏÈ, îðèåíòèðîâàííîé íå òîëüêî íà ïðîöåññû ÆÖ è îáùèå ìåòîäû èõ
ïîääåðæêè, íî è íà òåîðåòè÷åñêèå è ïðèêëàäíûå ìåòîäû ðåøåíèÿ âàæíûõ òåõíî-
ëîãè÷åñêèõ çàäà÷ ïðîèçâîäñòâà ÏÏ (èíæåíåðèÿ, óïðàâëåíèå è ò.ï.). Ïðåäëîæåíà
íîâàÿ êëàññèôèêàöèÿ äèñöèïëèí, êîòîðàÿ îáåñïå÷èâàåò ðåãëàìåíòàöèþ ðàçíûõ
âèäîâ ðàáîò â ïðîèçâîäñòâå ÏÏ íà ôàáðèêàõ ïðîãðàìì: íàó÷íàÿ äèñöèïëèíà, èí-
æåíåðíàÿ äèñöèïëèíà, äèñöèïëèíà óïðàâëåíèÿ, äèñöèïëèíà ýêîíîìèêè è
ïðîèçâîäñòâî ÏÏ. Ñóùíîñòü è íàçíà÷åíèå êàæäîé èç äèñöèïëèí ïðåäñòàâëåíû
â [18, 39–50]. Çäåñü äàåòñÿ èõ êðàòêàÿ õàðàêòåðèñòèêà.
Íàó÷íàÿ äèñöèïëèíà ÏÈ — ýòî ñîâîêóïíîñòü òàêèõ òåîðåòè÷åñêèõ äèñ-
öèïëèí, êàê òåîðèÿ àëãîðèòìîâ, ìíîæåñòâ, äîêàçàòåëüñòâà, ìàòåìàòè÷åñêàÿ ëîãè-
êà è ò.ï., òåîðèÿ ïðîãðàììèðîâàíèÿ, ßÏ, àáñòðàêòíûå ìîäåëè è àðõèòåêòóðû ïðî-
ãðàììíûõ îáúåêòîâ, ìåòîäû ïðîãðàììèðîâàíèÿ, îñíîâàííûå íà ïðîöåññàõ ñáîð-
êè ÏÏ èç ãîòîâûõ ïðîãðàìì è èõ èíòåðôåéñîâ.
Èíæåíåðíàÿ äèñöèïëèíà ÏÈ — ýòî ñîâîêóïíîñòü òåõíîëîãè÷åñêèõ
ñðåäñòâ è ìåòîäîâ ïðîåêòèðîâàíèÿ ÏÏ èç ôóíäàìåíòàëüíûõ è ñòàíäàðòíûõ ìî-
äåëåé ÆÖ, òåõíèêà àíàëèçà ïðåäìåòíîé îáëàñòè, ôîðìóëèðîâàíèÿ òðåáîâàíèé,
ìîäåëåé ñèñòåìû, ðàçðàáîòêà èñõîäíîãî êîäà, ñîïðîâîæäåíèå, âíåñåíèå èçìåíå-
íèé (ðåèíæåíåðèÿ, ðåâåðñíàÿ èíæåíåðèÿ, ðåôàêòîðèíã), ïåðåíîñ ÏÏ íà äðóãèå
êîìïüþòåðíûå ïëàòôîðìû è ñðåäû.
Äèñöèïëèíà óïðàâëåíèÿ â ÏÈ îñíîâàíà íà îáùåé òåîðèè óïðàâëåíèÿ,
ÐÌÂÎÊ è ñîäåðæèò áàçîâûå ìåòîäû óïðàâëåíèÿ ïðîãðàììíûì ïðîåêòîì ñ ïî-
ìîùüþ ãðàôèêîâ ðàáîò, íàáëþäåíèé çà èõ âûïîëíåíèåì, à òàêæå óïðàâëåíèå
ðèñêàìè, âåðñèÿìè (êîíôèãóðàöèîííûé ôàéë) ÏÏ è ñîïðîâîæäåíèåì.
Ýêîíîìè÷åñêàÿ äèñöèïëèíà â ÏÈ — ýòî ñîâîêóïíîñòü ìåòîäîâ ýêñïåðòíî-
ãî, êà÷åñòâåííîãî è êîëè÷åñòâåííîãî îöåíèâàíèÿ ïðîìåæóòî÷íûõ îáúåêòîâ, àðòå-
ôàêòîâ è êîíå÷íîãî ðåçóëüòàòà ïðîöåññîâ ÆÖ, à òàêæå ìåòîäîâ ðàñ÷åòà âðåìåíè,
îáúåìà, òðóäîåìêîñòè è ñòîèìîñòè èçãîòîâëåíèÿ ÏÏ äëÿ ïåðåäà÷è åãî íà ðûíîê.
Äèñöèïëèíà èíäóñòðèè ÏÏ — ýòî íàáîð ÒË äëÿ ïðîèçâîäñòâà ïðèêëàäíûõ
ñèñòåì, ñåìåéñòâ ñèñòåì ñ ïðèìåíåíèåì ãîòîâûõ ÏÏ, íàêîïëåííûõ â ñîâðåìåííûõ
èíôîðìàöèîííûõ õðàíèëèùàõ, áèáëèîòåêàõ è ðåïîçèòîðèÿõ, îäèíî÷íûå ãîòîâûå
ïðîãðàììû (ñåðâèñû, àñïåêòû, àãåíòû è ò.ï.). Ãîòîâûå ÏÏ ïðîâåðÿþòñÿ ìåòîäàìè
âåðèôèêàöèè, òåñòèðîâàíèÿ è îöåíèâàþòñÿ íà ïîêàçàòåëè êà÷åñòâà è íàäåæíîñòè.
Òàêèì îáðàçîì, ñïåöèàëèñòû ÈÏÑ ñâîèìè íîâûìè íàó÷íûìè äîñòèæåíèÿìè
ñäåëàëè âàæíûé âêëàä â òåîðèþ ïðîèçâîäñòâà ÏÏ ïî îñíîâíûì âîïðîñàì ðàçðà-
áîòêè, òåñòèðîâàíèÿ è óïðàâëåíèÿ èçãîòîâëåíèåì ÏÏ. Îíè ïîëîæåíû â îñíîâó
ñîçäàíèÿ ýêñïåðèìåíòàëüíîé ôàáðèêè ïðîãðàìì â íîâîé ñðåäå Eclipse.
2. ÎÁÙÀß ÕÀÐÀÊÒÅÐÈÑÒÈÊÀ ÊÎÍÖÅÏÖÈÉ ÏÐÎÈÇÂÎÄÑÒÂÀ ÏÏ ÍÀ ÈÇÂÅÑÒÍÛÕ
ÔÀÁÐÈÊÀÕ ÏÐÎÃÐÀÌÌ Â ÈÍÔÎÐÌÀÖÈÎÍÍÎÌ ÏÐÎÑÒÀÍÑÒÂÅ
Àíàëèç ôàáðèê ïðîãðàìì íà÷íåì ñ õàðàêòåðèñòèêè ïåðâûõ ôàáðèê ïðîãðàìì,
êîíöåïöèþ êîòîðûõ ñôîðìóëèðîâàë àêàäåìèê Â.Ì. Ãëóøêîâ (1975), à èìåííî:
� ñèñòåìà ÀÏÐÎÏ (ÈÊ) [2];
� ñèñòåìà Sun Microsystems (IBM) [41];
� OMA-àðõèòåêòóðà, èëè ñèñòåìà CORBA (OMG) [42];
� ôàáðèêà «ðó÷íîé» ñáîðêè ðàçíîÿçû÷íûõ ïðîãðàìì Èíãà Áåéÿ [43];
� ôàáðèêè ïðîãðàìì ïî ìåòîäó UML Äæ. Ãðèíôèëüäà [44];
� ñðåäà äëÿ ãðóïïîâîé ðàçðàáîòêè ÏÏ — MS.VSTS [45];
� èíôðàñòðóêòóðà âû÷èñëåíèÿ Grid [46, 47].
Àíàëèç ñðåä ñèñòåì — ÀÏÐÎÏ, IBM Sun Microsystems, CORBA. Ýòî
îñíîâíûå ñèñòåìû íà íà÷àëüíîì ýòàïå êîíâåéåðíîãî ïðîèçâîäñòâà ÏÏ, ïðîëî-
æèâøèõ ïóòü ê ñîçäàíèþ ñîâðåìåííûõ ôàáðèê ïðîãðàìì.
ÀÏÐÎÏ — ýòî ôàáðèêà, êîòîðàÿ ðàáîòàëà â ñðåäå ÎÑ ÅÑ è îáåñïå÷èâàëà
ñáîðêó ðàçíîÿçû÷íûõ ìîäóëåé â ìîíîëèòíóþ ñòðóêòóðó íà ÅÑ ÝÂÌ ÷åðåç èí-
150 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6
òåðôåéñíûõ ïîñðåäíèêîâ, ñãåíåðèðîâàííûõ ñ ïîìîùüþ ñïåöèàëüíîé áèáëèîòåêè
ôóíêöèé ïðåîáðàçîâàíèÿ íåðåëåâàíòíûõ FTD òèïîâ äàííûõ (íàïðèìåð, ñèìâîëü-
íîãî ê öåëîìó è ò.ï.), êîòîðûå ïåðåäàþòñÿ îïåðàòîðàìè CALL â ßÏ ìîäóëÿõ è
ðåàëèçóþò ìåòîäû ÷èñëåííîãî àíàëèçà è ñòàòèñòèêè, êîòîðûå ðàñïîëîæåíû
â ñïåöèàëüíîì Áàíêå ìîäóëåé.
IBM — ñðåäà ñî ñáîðêîé ðàçíîÿçû÷íûõ ïðîãðàìì â 4GPL (1980-å ãîäû)
ñ ïîìîùüþ âíåøíèõ èíòåðôåéñíûõ äàííûõ, êîòîðûå òðàíñôîðìèðóþòñÿ ôóíê-
öèÿìè XDR-áèáëèîòåêè, Sun Workshop, Toolbox è ò.ï. ê ñîîòâåòñòâóþùåé ïëàò-
ôîðìå. Äàëüíåéøèì ðàçâèòèåì íîâûõ íàïðàâëåíèé ïðîèçâîäñòâà ÏÏ ÿâëÿåòñÿ
ìîäåëü àðõèòåêòóðû SOA, âeá-ñåðâèñû, ÿçûêè Ñ, Ñ++, Java, Ruby, Script, êîòîðûå
îáåñïå÷èâàþò ñâÿçü ïðîãðàìì â ßÏ è ïåðåäà÷ó äàííûõ ÷åðåç ïîðò ñèñòåìû AIX.
Èíòåãðàöèÿ ðàçíîðîäíûõ ïðîãðàìì âûïîëíÿåòñÿ íà îáùåé ïëàòôîðìå IBM â ñðå-
äàõ ONC (Sun Microsystems), MVS, VM, OS/2, AIX, Open source, à òàêæå íà ñåð-
âåðå (WebSphere Application Server Compunity Edition).
CORBA, èëè ÎÌÀ-àðõèòåêòóðà (Apple, IBM, Win-NT, x-Open, Dec), åå ìîæíî
ñ÷èòàòü ôàáðèêîé ïðîãðàìì ñ îáåñïå÷åíèåì ñâÿçè ðàçíîÿçû÷íûõ îáúåêòîâ â ßÏ
(Ñ, C++, Smalltalk, Java, Cobol, Visual, Ada-96) ÷åðåç èíòåðôåéñíûõ ïîñðåäíèêîâ
(stub, skeleton, dill), êîòîðûå îïèñûâàþòñÿ â ÿçûêå ²DL äëÿ êëèåíò-ñåðâåðíîé àðõè-
òåêòóðû (Client–interface, Server–Interface) ñ èñïîëüçîâàíèåì ñðåä (COSS, DCE/RPC,
PCTE, ToolTalk, Java2SDK, NetPilot CCS è ò.ï.). Äàííûå ìåæäó êëèåíòîì è ñåðâå-
ðîì ïåðåäàþòñÿ ïðîòîêîëàìè TCP/IP, IIOP ÷åðåç áðîêåð ORB, êîòîðûé îáåñïå÷èâà-
åò èõ ðàçíûì ñåðâèñîì, â òîì ÷èñëå ïî ïðåîáðàçîâàíèþ íåñîâìåñòèìûõ òèïîâ äàí-
íûõ ðàçíîÿçû÷íûõ îáúåêòîâ, óñòðàíåíèþ íåîäíîðîäíîñòè ïëàòôîðìåííûõ äàííûõ
âçàèìîäåéñòâóþùèõ îáúåêòîâ êëèåíòà è ñåðâåðà. Ýòà ñðåäà ïîääåðæèâàåò ñâÿçè ñ
äðóãèìè ñðåäàìè: CORBA, OLE/DCOM, SOM/DSOM, IBM OS è ò.ï.
Ôàáðèêà «ðó÷íîé» ñáîðêè ïî È. Áåþ. Áàçèñîì ýòîé ôàáðèêè ïðîèçâîäñòâà
ðàçíîÿçû÷íûõ ïðîãðàìì åñòü èíòåðôåéñíûé ïîñðåäíèê, êîìàíäíûå ñòðîêè, êîí-
ôèãóðàöèîííûå ôàéëû, ïðîâåðåííûå â îïåðàöèîííûõ ñðåäàõ (VC++, VBasic,
Matlab, Java, Visual Works Smalltalk è ò.ï.) äëÿ ðàçíûõ ïëàòôîðì (Microsoft.Net,
HP, Apple, IBM è ò.ï.). Àâòîð ðàçðàáîòàë ðàçíûå âàðèàíòû ñâÿçåé ïàð ðàçíîÿçû÷-
íûõ ïðîãðàìì â íàçâàííûõ ßÏ. Îíè ïåðåäàâàëè äðóã äðóãó äàííûå, äëÿ íåêîòî-
ðûõ èç íèõ ïðîâîäèëîñü ïðåîáðàçîâàíèå äàííûõ, òèïû êîòîðûõ íåðåëåâàíòíûå
èëè èõ ôîðìàòû çàâèñÿò îò îñîáåííîñòåé ïëàòôîðìû, ìåõàíèçìîâ ïåðåäà÷è äàí-
íûõ (÷åðåç ïðîòîêîëû, âûçîâû, èíòåðôåéñíûå êàðòû MIO-16E-2 è äð.) è ñðåäñòâ
RMI, Java Native Interface è åãî ðåàëèçàöèè â âèäå exe-ôàéëà. È. Áåé àïðîáèðîâàë
Domain and Application Model, Model Interconnection, Microsoft Foundation, à òàêæå
ñîâðåìåííûå âèçóàëüíûå ñðåäñòâà (ïàíåëè, ñöåíàðèè, èêîíêè è ò.ï.) äëÿ âíåñåíèÿ
èçìåíåíèé òèïîâ äàííûõ âûçûâàþùåé è âûçûâàåìîé ïðîãðàìì.
Ôàáðèêà ïðîãðàìì ñ UML Äæ. Ãðèíôèëüäà. Äëÿ áóäóùåé ôàáðèêè ñôîð-
ìóëèðîâàíû ìåòîäîëîãè÷åñêèå è òåõíîëîãè÷åñêèå àñïåêòû ïðîèçâîäñòâà ÏÏ ïî
ìåòîäó UML ñ èñïîëüçîâàíèåì ìîäåëåé àðõèòåêòóð ñèñòåì è êîìïüþòåðîâ, ìå-
õàíèçìîâ èíòåãðàöèè ðàçíîðîäíûõ êîìïîíåíòîâ ñ òèïàìè äàííûõ FDT è îïèñà-
íèåì èíòåðôåéñà â ÿçûêàõ (IDL, XML, RDF è ò.ï.). Ãëàâíûå êîíöåïòóàëüíûå îáú-
åêòû ïðîèçâîäñòâà: reuse, êîòîðûå íàêîïëåíû â îáùåïðèíÿòûõ õðàíèëèùàõ (áèá-
ëèîòåêàõ, ðåïîçèòîðèÿõ è ò.ï.) Èíòåðíåò è èìåþò ñåðòèôèêàòû êà÷åñòâà; àêòèâû
(assets), ïðîãðàììû, ïðèëîæåíèÿ è ñèñòåìû; ìîäåëè, øàáëîíû è èíñòðóìåíòû
UML ïðè ðåàëèçàöèè ÏÏ íà ëèíèè ïðîèçâîäñòâà; âåá-ñåðâèñû, ïðîöåññû ëèíèé;
ìåòîäèêè èçìåðåíèÿ è êîíòðîëÿ êà÷åñòâà ÏÏ è ò.ï.
Àíàëèç ìîäåëèðîâàíèÿ UML íà äàííîé ôàáðèêå ïîêàçàë ñëåäóþùåå: ÿçûê
UML ÿâëÿåòñÿ ÿçûêîì ýñêèçà ÏÏ, êîòîðûé íå äîïóñêàåò èñïîëüçîâàíèÿ êîìïî-
íåíòîâ reuse è èíòåðôåéñà íà ðàçíûõ ßÏ; ïðîáëåìà ìîäèôèêàöèè ÏÏ íå ðåøåíà
â âèçóàëüíîì ÿçûêå UML è äð. Ôàêòè÷åñêè àâòîð ðàçðàáîòàë ìåìîðàíäóì ñîâðå-
ìåííîé ôàáðèêè ÏÏ, êîòîðàÿ áàçèðóåòñÿ íà reuses, ïðèìåíÿåìûõ íà ïðîèçâîä-
ñòâåííûõ ëèíèÿõ, ìîäåëÿõ ñèñòåì, êàðêàñàõ ïðîöåññîâ è ïðîäóêòîâ. Êîíêðåòíîé
ôàáðèêè ïîñòðîèòü íå óäàëîñü.
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6 151
Ôàáðèêè ïðîãðàìì ôèðìû Microsoft. Áàçèñ äàííîé ôàáðèêè — ñðåäà
ÌS.NET, ñîäåðæàùàÿ áîëüøîå êîëè÷åñòâî ñðåäñòâ è èíñòðóìåíòîâ, à èìåííî:
ãîòîâûå ðåñóðñû (êîìïîíåíòû, ñåðâèñû) Èíòåðíåòà, ÿçûêè – JAVA, C++, Basic,
Java, Pascal, C#, áèáëèîòåêè CLR è FCL, ñáîðêà êîäîâ (exe, dill) â ãîòîâûé ÏÏ,
âåá-îáñëóæèâàíèå ðàçíîãî íàçíà÷åíèÿ, óïðàâëåíèå PM-2007 ãðóïïàìè ðàçðàáîò-
÷èêîâ ÏÏ â âèðòóàëüíîé ñðåäå VSTS, MSF, êîòîðûå ìîãóò ðàñïîëàãàòüñÿ â ðàç-
íûõ ìåñòàõ ìèðà. Â ñîñòàâ ñðåäñòâ àâòîìàòèçàöèè âõîäÿò: ïàêåò èíñòðóìåíòîâ
VSTS-2005 (Visual Studio Teams Systems); MSF (Microsoft Solution Arhitecture)
äëÿ ïîñòðîåíèÿ ïðîèçâîäñòâåííîé àðõèòåêòóðû ïðåäïðèÿòèÿ, ñòàíäàðò PMBOK
äëÿ óïðàâëåíèÿ ãðóïïîé; ìîäåëè ïðîöåññîâ è ñèñòåì; Professional Studio
è Foundation Server äëÿ ïîääåðæêè ïðîöåññîâ ïðîåêòèðîâàíèÿ, êîäèðîâàíèÿ òåñ-
òèðîâàíèÿ, ôîðìèðîâàíèÿ âåðñèé ÏÏ (SDLC, IDE, MS Office, MS SQL server, MS
Visual Studio 2005); ìîäåëü óñîâåðøåíñòâîâàíèÿ ïðîöåññîâ (CMMI Process
Impovement), â ÷àñòíîñòè ïðîöåññà ñáîðêè, êîòîðûé èñïîëüçóåò CLR-áèáëèîòåêè
(Common Language Routine), êëàññû, FCL-òèïû, òðàíñëÿòîðû, General code (exe),
Portable Executable code è ò.ï. Ñðåäà ìîæåò îïðåäåëÿòü ñðîêè, òðóäîçàòðàòû è ïî-
êàçàòåëè êà÷åñòâà èçãîòîâëåííûõ ÏÏ.
Èíôðàñòðóêòóðà âû÷èñëåíèé íàó÷íûõ çàäà÷ â ñðåäå Grid. Åâðîïåéñêèé
ïðîåêò Grid îðèåíòèðîâàí íà îðãàíèçàöèþ ðàñïðåäåëåííûõ âû÷èñëåíèé çàäà÷ â
ðàçíûõ íàó÷íûõ íàïðàâëåíèÿõ (ôèçèêà, ìàòåìàòèêà, ìåäèöèíà, áèîëîãèÿ è äð.)
[14, 15]. Îí âêëþ÷àåò ðÿä ïîäïðîåêòîâ: Gcube — îïåðàöèîííàÿ ñðåäà, ETICS —
êàê ñáîðî÷íàÿ ñðåäà è ò.ï., è ïðåäíàçíà÷åí äëÿ ïðîèçâîäñòâà ðàñïðåäåëåííûõ
ñèñòåì ðàçíîãî íàçíà÷åíèÿ ìåòîäîì èíòåãðàöèè (ñáîðêè) ñóùåñòâóþùèõ ãîòî-
âûõ ÊÏÈ è ÏÏ ñ ïðèìåíåíèåì âåá-ïîðòàëîâ è ìíîãîïëàòôîðìåííûõ ðåñóðñîâ.
Òåõíîëîãèÿ ñîçäàíèÿ ïàêåòîâ èç èñõîäíûõ ïðîãðàìì èëè êîìáèíàöèé ïåðå-
êîìïèëèðîâàííûõ ïðîãðàìì â äâîè÷íîì ïðåäñòàâëåíèè îáåñïå÷èâàåòñÿ ïðîöåñ-
ñîì äîñòóïà ê ðåïîçèòîðèþ äëÿ âûáîðà êîìïîíåíòîâ ñèñòåìû â àëüòåðíàòèâíîé
ñåòåâîé ñðåäå Grid. Çàäà÷à ïðåäñòàâëåíèÿ òèïîâ äàííûõ îáúåêòîâ ñðåäû: Ïðîåêò,
Ïîäñèñòåìà è Êîìïîíåíò, ðåàëèçóåòñÿ ñ èñïîëüçîâàíèåì òèïîâîãî ôîðìàòà CIM
êàê ìåõàíèçìà ñâÿçè ìåæäó ðàçíûìè êîìïîíåíòàìè ñ ïîìîùüþ ñèñòåìû MySQL
íà îñíîâå àííîòàöèè ðÿäà ñâîéñòâ êîìïîíåíòîâ (èìÿ, ëèöåíçèÿ, URL-ðåïîçèòîðèé
è ò.ä.), ãëîáàëüíîãî óíèêàëüíîãî èäåíòèôèêàòîðà — ID (GUID) è ñêîìïèëèðîâàí-
íîãî êîìïîíåíòà ñ îòîáðàæåíèåì åãî â êîíôèãóðàöèîííîì ôàéëå ÏÏ.
Ñåðâèñû — ãëàâíûå ðåñóðñû èíôðàñòðóêòóðû âû÷èñëåíèé. Îíè îáåñïå÷èâà-
þò óñëóãè, îðèåíòèðîâàííûå íà âû÷èñëåíèÿ íàó÷íûõ çàäà÷ ãëîáàëüíîãî ìàñøòà-
áà. Ðåñóðñû çàäàþòñÿ â ïðîòîêîëå, â êîòîðîì ïåðåäàþòñÿ äàííûå ïî ðàñïðåäå-
ëåííîé ñåòè. Ñåðâèñû ñòðîÿòñÿ ñ ïîìîùüþ ñòàíäàðòíûõ ïðîòîêîëîâ, èíòåðôåéñîâ
API è èíñòðóìåíòà SDK (Software Development Kits). Ñáîðêà ðàçíûõ ïðîãðàìì,
êîìïîíåíòîâ, ïîäñèñòåì è ñèñòåì íàó÷íîãî íàçíà÷åíèÿ ðåàëèçóåòñÿ ãëîáàëüíûìè
ïðîòîêîëàìè (Global Protocol). Ïîäñèñòåìà ETICS ñîäåðæèò ñðåäñòâà ðàçðàáîòêè,
òåñòèðîâàíèÿ íîâûõ ïàêåòîâ è óñëóã, à òàêæå ñáîðêó è êîíôèãóðèðîâàíèå ïðî-
ãðàììíûõ ýëåìåíòîâ ñ ïîìîùüþ ìåõàíèçìîâ ïëàãèíîâ [46, 48] è îòêðûòûõ èíòåð-
ôåéñîì óñëóã äëÿ ïîòðåáèòåëåé èëè ïîñòàâùèêîâ, êàê íà ôàáðèêå ïðîãðàìì.
Ãëàâíûå îñîáåííîñòè ðàññìîòðåííûõ ôàáðèê ïðîãðàìì — ýòî ìåòîäû ïðî-
èçâîäñòâà, ÒË è èíñòðóìåíòàëüíàÿ ïîääåðæêà îïåðàöèîííîé ñðåäû äëÿ àâòîìà-
òèçàöèè ïðîöåññîâ ïðîèçâîäñòâà ÆÖ èëè ÒË.
3. ÑÒÐÓÊÒÓÐÀ È ÍÀÇÍÀ×ÅÍÈÅ ÐÅÑÓÐÑΠÔÀÁÐÈÊÈ ÏÐÎÃÐÀÌÌ
Èñõîäÿ èç òåîðåòè÷åñêèõ äîñòèæåíèé, çàêîíîìåðíîñòåé ðàçâèòèÿ òåõíîëîãèè
ïðîãðàììèðîâàíèÿ è àíàëèçà çàðóáåæíûõ âàðèàíòîâ ôàáðèê ïðîãðàìì íà ñî-
âðåìåííûõ ïëàòôîðìàõ êîìïüþòåðîâ, íîâûõ èäåÿõ îáåñïå÷åíèÿ âçàèìîäåé-
ñòâèÿ ðàçíîðîäíûõ ïðîãðàìì ñ èñïîëüçîâàíèåì òåîðèè îðãàíèçàöèè ôóíäà-
ìåíòàëüíûõ è îáùèõ òèïîâ äàííûõ (Fundamental Data Types — FDT, GDT
(General Data Types – ISO/IEEC 11404), óñòàíîâëåíû îáùèå ÷åðòû, ñâîéñòâåí-
íûå ðàçíûì ôàáðèêàì [26–39]. Ýòî ïðåæäå âñåãî îïåðàöèîííàÿ ñðåäà (òèïà
152 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6
SUN ONC, MS.Net, Oberon, Babel, Grid, Eclipse è äð.), ìåòîä ïðîãðàììèðîâà-
íèÿ (êîìïîíåíòíûé, ñòðóêòóðíûé, ñåðâèñíûé è äð.), ñðåäñòâà (ßÏ, Rational
Rose, CLR, è äð.) è èíñòðóìåíòû, ïîääåðæèâàþùèå ïðîöåññû ëèíèé èçãîòîâëå-
íèÿ ÏÏ èëè ðàçðàáîòêè îòäåëüíûõ êîìïîíåíòîâ, à òàêæå áèáëèîòåêè ãîòîâûõ
ïðîäóêòîâ, ñåðâèñíîå îáñëóæèâàíèå ðàçíûõ àñïåêòîâ ïðîèçâîäñòâà (äàííûõ èí-
òåðôåéñà, êà÷åñòâà, óïðàâëåíèÿ, êîíòðîëÿ, ïëàíèðîâàíèÿ, ðàñ÷åòà ðàçíûõ çàòðàò
è äð.). Ãëàâíûé ðåñóðñ ôàáðèêè — ñïåöèàëèñòû ïî ïðîèçâîäñòâó ïðîãðàìì
(àíàëèòèêè, ïðîãðàììèñòû, èíæåíåðû, òåñòèðîâùèêè, êîíòðîëåðû è ò.ï.).
Îïðåäåëåíèå 2. Ôàáðèêà ïðîãðàìì — ýòî èíòåãðèðîâàííàÿ èíôðàñòðóêòóðà
ñáîðî÷íîãî ïðîèçâîäñòâà ÏÏ (êîìïîíåíòîâ, ïîäñèñòåì, ñèñòåì, ìîäóëåé (áëî-
êîâ) è ñåìåéñòâ ñèñòåì, ÀÑÓ, ÀÑÓÒÏ è äð.), ïðåäíàçíà÷åííàÿ äëÿ âûïîëíåíèÿ
ãîñóäàðñòâåííûõ, êîììåð÷åñêèõ è äðóãèõ çàêàçîâ íà ÏÏ [49].
Ôàáðèêà ïðîãðàìì âêëþ÷àåò êîìïëåêñ ñðåäñòâ, èíñòðóìåíòîâ è ñåðâèñîâ
äëÿ ïðîèçâîäñòâà ÏÏ íà ïðîöåññàõ ÒË. ßäðî ôàáðèêè — îïåðàöèîííàÿ ñðåäà
è ìåòîä èçãîòîâëåíèÿ ÏÏ (UML, êîìïîíåíòíûé, ñòðóêòóðíûé, ìîäóëüíûé, ñåð-
âèñíûé è äð.). Îáÿçàòåëüíîå óñëîâèå ñáîðî÷íîãî êîíâåéåðà — ñðåäñòâà ñâÿçè
ðàçíîÿçûêîâûõ ïðîãðàìì, àíàëîãè÷íî òîìó, êàê ýòî ðåàëèçîâàíî â MS.Net (CRL,
Ïðè îðèåíòàöèè íà ñåðâèñíûé ìåòîä â ñðåäó ââîäÿòñÿ äîïîëíèòåëüíûå âîç-
ìîæíîñòè ïî ñîçäàíèþ íàáîðà ñåðâèñà è îáñëóæèâàíèÿ, ñâÿçàííîãî ñ âûáîðîì
è èñïîëüçîâàíèåì åãî ïðè ïðîèçâîäñòâå ÏÏ.
Ðåñóðñû äëÿ ïðîèçâîäñòâà ÏÏ íà ôàáðèêàõ. Ê íèì îòíîñÿòñÿ ñëåäóþùèå.
Òåõíè÷åñêèå ðåñóðñû: ïëàòôîðìû, ïðîöåññîðû (Intell, IBM, Apple, MS; êîì-
ìóíèêàöèè (OSI, TCP/IP; êîìïüþòåðû ïîëüçîâàòåëåé; ôàéëû è ñåðâåðû; ëîêàëü-
íûå è ãëîáàëüíûå ñåòè; ýëåêòðîííàÿ ïî÷òà (e-mail); òåñòåðû è ò.ï.
Òåõíîëîãè÷åñêèå ðåñóðñû: áèáëèîòåêè, ðåïîçèòîðèè ãîòîâûõ ÏÏ (ÊÏÈ,
Reuses, Àssåts, Applications, Domains, Systems); ìåòîäèêè ìåòîäîâ ïðîãðàììèðî-
âàíèÿ ñáîðî÷íîãî òèïà; ðóêîâîäñòâà, ìåòîäèêè ñ ÿçûêîâ èíòåðôåéñîâ îáúåêòîâ
(IDL, API, DII, SIDL, XML, RDF è äð,); ñòàíäàðòû (êàðêàñû, øàáëîíû, êîíòåéíå-
ðû, ïðîöåññû, ïðîåêòû, ñèñòåìû è äð.).
Îáùåñèñòåìíûå ðåñóðñû: ÎÑ, èíñòðóìåíòû: êëèåíò/ñåðâåðíûå òåõíîëîãèè;
îôèñíûå ñèñòåìû (ðèäåðè/ðàéòåðè ôîðìàòîâ PDF, PS, HTML è ò.ï.); ñèñòåìû äî-
êóìåíòîîáîðîòà; óòèëèòû (àðõèâàòîðû, ïðîãðàììû çàïèñè íà íîñèòåëü, êîíôèãó-
ðàòîðû è ò.ï.); ñðåäñòâà çàùèòû èíôîðìàöèè (àíòèâèðóñíûå, ïàðîëüíûå è äð.);
CASE-èíñòðóìåíòû, òðàíñëÿòîðû; ãðàôè÷åñêèå èíñòðóìåíòû; ÑÊÁÄ.
×åëîâå÷åñêèå ðåñóðñû: ãðóïïû ðàçðàáîò÷èêîâ, ñëóæá óïðàâëåíèÿ è âûïîëíå-
íèÿ ïðîåêòíûõ ðàáîò (ïî ïëàíàì, ñåòåâûì ãðàôèêàì), ñâÿçàííûõ ñ äîñòèæåíèåì
êà÷åñòâà, âûÿâëåíèÿ ðèñêîâ, ôîðìèðîâàíèÿ êîíôèãóðàöèè, ïðîâåðêè ïðàâèëü-
íîñòè ðåàëèçàöèè ïðîåêòà è ò.ï. Ñòàíäàðò ISO/IEC 12207 îïðåäåëÿåò ñëåäóþùèå
ãðóïïû:
— òåõíèêî-òåõíîëîãè÷åñêîé ïîääåðæêè (èçó÷åíèå ðûíêà, ïðèîáðåòåíèå
CASE, ÏÏ, êîíñóëüòàöèè è ò.ï.);
— çàùèòû èíôîðìàöèè (ïàðîëåé, êëþ÷åé çàùèòû, ïðîâåðêè è ò.ï.);
— òåõíîëîãè÷åñêîé ñëóæáû (ñîïðîâîæäåíèå, ïîääåðæêà ÆÖ, êîíòðîëü è ò.ï.);
— êà÷åñòâà (SQA-ãðóïïà) ñ ôóíêöèÿìè ïëàíèðîâàíèÿ è âûïîëíåíèÿ ÆÖ
(ïðîâåðêà ðàáîò, êîíòðîëü êà÷åñòâà ðàáî÷èõ ïðîäóêòîâ, äîêóìåíòîâ ÏÏ è ò.ï.);
— âåðèôèêàöèè, âàëèäàöèè è òåñòèðîâàíèÿ êîìïîíåíòîâ èëè ÏÏ íà ïðà-
âèëüíîñòü çàäàíèÿ òðåáîâàíèé, êîîðäèíàöèè ïëàíîâ ðàáîò ìåíåäæåðîì, ïðîâåð-
êè ïðàâèëüíîñòè ÏÏ â òåñòîâîé ñðåäå ñèñòåìû è äð.;
— ðóêîâîäèòåëÿ ïðîåêòà, êîòîðûé îòâå÷àåò çà ôèíàíñîâûå è òåõíè÷åñêèå
ðåñóðñû, à òàêæå çà âûïîëíåíèå ïðîåêòíûõ ñîãëàøåíèé çàêàç÷èêà è óïðàâëåíèå
ðàçðàáîòêîé ÏÏ;
— ìåíåäæåðà ïðîåêòà, îòâåòñòâåííîãî çà ðàçðàáîòêó ïðîãðàììíîãî ïðîåêòà
ôàáðèêè, ñîãëàñóþùåãî òðåáîâàíèÿ, ðåøåíèÿ è ïëàíû ðàáîò è ðåàëèçàöèè ïî
âñåì ãðóïïàì, ñðîêàì è ñòîèìîñòè;
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6 153
— ïðîåêòèðîâùèêîâ è ïðîãðàììèñòîâ, êîòîðûå îòâå÷àþò çà ðàçðàáîòêó ïðî-
åêòíûõ ðåøåíèé è ïðîãðàììèðîâàíèå, ðàçðàáîòêó äîêóìåíòîâ è ðàçíûõ âûõîä-
íûõ ðåçóëüòàòîâ;
— ðóêîâîäèòåëÿ êîíôèãóðàöèè (îòâåòñòâåííûå çà âåðñèþ) ÏÏ, êîòîðûé ðå-
ãèñòðèðóåò âåðñèè ÏÏ, ñîõðàíÿåò òâåðäûå êîïèè è âåðñèè ñ ðàçìåæåâàíèåì äîñ-
òóïà ê íèì.
Ýòè ãðóïïû íåîáõîäèìû ïðè ëþáîì èíäóñòðèàëüíîì êîëëåêòèâíîì ïðîèç-
âîäñòâå ÏÏ.
Ñòàíäàðòíûå ðåñóðñû. Êîìèòåò ïî ñòàíäàðòèçàöèè ISO ðàçðàáîòàë ðÿä
ñòàíäàðòîâ ïðîãðàììíîé èíæåíåðèè, êîòîðûå ðåãëàìåíòèðóþò ïîðÿäîê ðàçðà-
áîòêè ÏÏ, óïðàâëåíèÿ ìåòîäàìè ïðîãðàììèðîâàíèÿ íà ôàáðèêå ïðîãðàìì [44].
Ðàññìîòðèì îñíîâíûå èç íèõ.
Áàçîâûé ïðîöåññ (ÁÏ) ïðåäíàçíà÷åí äëÿ «ïðîöåññíîãî ïðîäóöèðîâàíèÿ» ÏÏ
êàê âèä èíæåíåðíîé äåÿòåëüíîñòè ïî èçãîòîâëåíèþ ÏÏ, âêëþ÷àþùèé îïåðàöèè
îöåíêè, èçìåðåíèÿ, óïðàâëåíèÿ èçìåíåíèÿìè è óñîâåðøåíñòâîâàíèåì ÁÏ, ïðîïè-
ñàííîìó â ñòàíäàðòå ISO/IEC 15504-7 («Îöåíèâàíèÿ ïðîöåññîâ ÆÖ ÏÇ. Óñòàíîâ-
êè íà óñîâåðøåíñòâîâàíèå ïðîöåññà»). Îöåíêà çðåëîñòè îðãàíèçàöèè èëè ôàáðè-
êè ïðîãðàìì îñóùåñòâëÿåòñÿ ñ ïîìîùüþ ìîäåëè çðåëîñòè CMM (Capability
Maturity Models) [16] èíñòèòóòà SEI ÑØÀ, ìîäåëè Bootstrap, Trillium è ò.ï. Ñîã-
ëàñíî ýòèì ñòàíäàðòàì óðîâåíü çðåëîñòè îðãàíèçàöèè çàâèñèò îò íàëè÷èÿ ðåñóð-
ñîâ, ñòàíäàðòîâ, ìåòîäèê è ñïîñîáíîñòåé (çðåëîñòè) ÷ëåíîâ êîëëåêòèâà ôàáðèêè
èçãîòàâëèâàòü ÏÏ â çàäàííûå ñðîêè è îò ñòîèìîñòè.
Æèçíåííûé öèêë ñòàíäàðòà ISO/IEC 12207 «Ïðîöåññû ÆÖ ÏÇ» ðåãëàìåíòèðî-
âàí ðàçíûìè íàïðàâëåíèÿìè äåÿòåëüíîñòè ïî ðàçðàáîòêå, ïðîåêòèðîâàíèþ è óï-
ðàâëåíèþ ÏÏ, îðãàíèçàöèè ïðîöåññîâ (ïëàíèðîâàíèÿ, óïðàâëåíèÿ è ñîïðîâîæäå-
íèÿ), èçìåðåíèÿ, îöåíèâàíèÿ ïðîäóêòîâ è ïðîöåññîâ. Íàèáîëåå âàæíûå èç íèõ —
ñåðèÿ ñòàíäàðòîâ: ÄÑÒÓ ISO/IEC 14598 «Îöåíèâàíèÿ ïðîãðàììíîãî ïðîäóêòà»,
ñòàíäàðò ÄÑÒÓ ISO 15939 «Ïðîöåññ èçìåðåíèÿ», ñåðèÿ ñòàíäàðòîâ ISO/IEC
15504 «Îöåíèâàíèÿ ïðîöåññîâ ÆÖ Ïλ, áàçîâûå ñòàíäàðòû êà÷åñòâà — ISO
9001 «Ñèñòåìû óïðàâëåíèÿ êà÷åñòâîì. Òðåáîâàíèÿ», ÃÎÑÒ 2844-94, ÃÎÑÒ
2850-94 è 9126 ðåãëàìåíòèðóþò ðàçíûå àñïåêòû îáåñïå÷åíèÿ êà÷åñòâà ÏÏ.
ßäðî çíàíèé SWEBOK — ýòî ñòàíäàðò èç äåñÿòè ðàçäåëîâ ïðîãðàììíîé èí-
æåíåðèè, ðàñïðåäåëåííûõ ïî äâóì êàòåãîðèÿì. Ïåðâàÿ — ýòî ìåòîäû è ñðåäñòâà
ðàçðàáîòêè (ôîðìèðîâàíèå òðåáîâàíèé, ïðîåêòèðîâàíèå, êîíñòðóèðîâàíèå, òåñ-
òèðîâàíèå, ñîïðîâîæäåíèå), âòîðàÿ — ìåòîäû óïðàâëåíèÿ ïðîåêòîì, êîíôèãóðà-
öèåé, êà÷åñòâîì è ÁÏ [44]. Ìåòîäû ÿäðà çíàíèé ñîîòâåòñòâóþò ñòàíäàðòíûì
ïðîöåññàì ÆÖ ñ ó÷åòîì ïîòðåáíîñòåé êîíêðåòíîé ôàáðèêè ïðîãðàìì è ðåãëà-
ìåíòèðîâàííîé ïîñëåäîâàòåëüíîñòüþ ïðîöåññîâ, íà÷èíàÿ îò òðåáîâàíèé, ðàçðà-
áîòêè ïðîåêòíûõ ðåøåíèé, îïðåäåëåíèÿ êàðêàñîâ ÏÏ è âûáîðà ãîòîâûõ êîìïî-
íåíòîâ äëÿ «íàïîëíåíèÿ» åãî ñîîòâåòñòâóþùèì ñîäåðæàíèåì.
ßäðî çíàíèé ìåíåäæìåíòà ïðîåêòà — ýòî ñòàíäàðò ïî óïðàâëåíèþ ïðîåê-
òîì — ÐÌÂÎÊ (IEEE Std.1490 «IEEE Guide adoption of PMI Standard. A Guide to the
Project Management Body of Knowledge), ðàçðàáîòàííûé èíñòèòóòîì Ð̲ [44, 45],
ñîäåðæèò îïèñàíèå ëåêñèêè, ñòðóêòóðû ïðîöåññîâ è îáëàñòåé çíàíèé: óïðàâëåíèå
ñîäåðæàíèåì ïðîåêòà (ïëàíèðîâàíèÿ ñ ðàñïðåäåëåíèåì ðàáîò); óïðàâëåíèå êà÷å-
ñòâîì è êîíòðîëü ðåçóëüòàòîâ íà ñîîòâåòñòâèå ñòàíäàðòàì êà÷åñòâà; óïðàâëåíèå ÷å-
ëîâå÷åñêèìè ðåñóðñàìè ñîãëàñíî èõ êâàëèôèêàöèè è ïðîôåññèîíàëèçìó.
Ñðåäà ôàáðèê ïðîãðàìì. Ðàññìîòðåííûå â ðàçä. 2 ðàçíûå âèäû îïåðàöèîí-
íûõ ñðåä — íåîáõîäèìûé àòðèáóòà äëÿ íåêîòîðîé ôàáðèêè ïðîãðàìì. Ïðèíÿòèå ðå-
øåíèÿ îá èõ ïîëíîòå è ôóíêöèîíàëüíîñòè äëÿ ïðîèçâîäñòâà ÏÏ çàâèñèò îò íàëè÷èÿ
ôèíàíñîâ è çíàíèé ìåíåäæåðîâ, êîòîðûå áóäóò çàíèìàòüñÿ èçãîòîâëåíèåì ÏÏ îïðå-
äåëåííîãî íàçíà÷åíèÿ. Ýêñïåðèìåíòàëüíûì âàðèàíòîì ôàáðèêè ïðîãðàìì â ÈÏÑ
ÍÀÍÓ ÿâëÿåòñÿ áåñïëàòíàÿ ñèñòåìà Eclipse [48], êîòîðàÿ èìååò áàçîâûå èíñòðóìåí-
154 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6
òàëüíûå ñðåäñòâà äëÿ ïðîèçâîäñòâà ÏÏ èç ãîòîâûõ ÊÏÂ, à èìåííî:
— ìåõàíèçì ïëàãèíîâ â ôîðìàòå XML â ñðåäñòâå Plug Development En-
vironment, êîòîðàÿ îáåñïå÷èâàåò àâòîìàòèçèðîâàííîå ïîäêëþ÷åíèå ïëàãèíîâ è
íîâûõ èíñòðóìåíòîâ (íàïðèìåð, Protege, Java, RMI), ðåïîçèòîðèåâ è ãîòîâûõ
ïðîãðàìì;
— àâòîìàòèçèðîâàííîå ïîäêëþ÷åíèå íîâûõ ìåíþ ê èíòåðôåéñó ïîëüçîâàòå-
ëÿ, èêîíîê, ñöåíàðèåâ è ò.ï.;
— èñïîëüçîâàíèå ÿçûêà Java è ìåõàíèçìà âûçîâà RMI äëÿ îïèñàíèÿ ðàçíûõ
ïðîãðàìì è èõ îáúåäèíåíèÿ â âûõîäíîì êîäå è ò.ï.
Ýòà ñèñòåìà äîïîëíåíà íàìè àëãåáðîé îïåðàöèé êîìïîíåíòíîãî ïðîãðàììè-
ðîâàíèÿ, ñðåäñòâàìè ñáîðêè, ãåíåðàöèè è êîíôèãóðèðîâàíèÿ ÊÏÈ â ñåìåéñòâî
ñèñòåì [23, 34]. Ìåòîä ïîðîæäåíèÿ è ãåíåðàöèè ìîäåëèðóåòñÿ íà ïðîöåññàõ ñî-
çäàíèÿ ðåïîçèòîðèåâ êîìïîíåíòîâ, ÊÏÈ (ñåðòèôèêàöèÿ, íàêîïëåíèå, âûáîð, èí-
òåãðàöèÿ è äð.) è ñáîðêè ðàçíîðîäíûõ ïðîãðàììíûõ îáúåêòîâ ïðèìåíèòåëüíî ê
ñãåíåðèðîâàííûì ÷ëåíàì ñåìåéñòâà ÑÏÑ â ñðåäå Eclipse. Èçó÷àåòñÿ ñðåäà Grid
äëÿ âíåäðåíèÿ â íåå íåîáõîäèìûõ ñðåäñòâ ñáîðêè ÏÏ .
4. ÏÎÑÒÐÎÅÍÈÅ ÔÀÁÐÈÊÈ ÏÐÎÃÐÀÌÌ ÌÅÒÎÄÎÌ ÃÅÍÅÐÀÖÈÈ ÊÎÌÏÎÍÅÍÒÎÂ
Ñðåäè ðàññìîòðåííûõ ôàáðèê ïðîãðàìì íàèáîëåå ðàçâèòîé ÿâëÿåòñÿ ñåòåâàÿ
ñðåäà Grid.  íåé ðåøàþòñÿ çàäà÷è, êîòîðûå íå ìîãóò ðåøèòü îáû÷íûå êîì-
ïüþòåðû, — ýòî èíòåíñèâíûå âû÷èñëåíèÿ è îáðàáîòêà áîëüøèõ îáúåìîâ èí-
ôîðìàöèè. Äëÿ ýòîãî òðåáóþòñÿ ïðîöåññîðíûå ìîùíîñòè è ñèñòåìû õðàíèëèù
äàííûõ, ñõåìû âçàèìîäåéñòâèÿ ãåòåðîãåííûõ ïëàòôîðì, ðàñïîëîæåííûõ â ãåîã-
ðàôè÷åñêè îòäàëåííûõ àäìèíèñòðàòèâíûõ äîìåíàõ è ò.ï. Ñðåäà Grid ñòàíåò ñà-
ìîé ìîùíîé ôàáðèêîé äëÿ ñáîðêè ðàçíîðîäíûõ è ðàçíîïëàòôîðìåííûõ ïðî-
ãðàìì äëÿ îðãàíèçàöèè âû÷èñëåíèé íàó÷íûõ çàäà÷ ãëîáàëüíîãî ìàñøòàáà. Ñóù-
íîñòü îáåñïå÷åíèÿ çàäà÷ ñáîðêè çàêëþ÷àåòñÿ â ôîðìàëèçàöèè è ïðåîáðàçîâàíèè
íåñîâìåñòèìûõ òèïîâ äàííûõ íà ðàçíûõ ïëàòôîðìàõ âû÷èñëåíèé (îò 16-ðàçðÿä-
íîé äî 64-ðàçðÿäíîé), òàê êàê ïðè îáìåíå äàííûìè ïðîãðàìì íà ðàçíûõ ïëàò-
ôîðìàõ ãåòåðîãåííîé ñðåäû Grid ìîãóò âîçíèêíóòü âñåâîçìîæíûå êîëëèçèè.
 ñâÿçè ñ ýòèì ìû èññëåäóåì ïîäîáíóþ Grid ãåíåðàöèîííóþ ñðåäó Eclipse è
â íåé ìîäåëèðóåì íîâîå ðåøåíèå çàäà÷è ïðåîáðàçîâàíèÿ ïåðåäàâàåìûõ ïî ãëî-
áàëüíîé ñåòè äàííûõ, îñíîâàííóþ íà ñîçäàíèè ñèñòåìû ãåíåðàöèè îáùèõ òèïîâ
äàííûõ GDT â FTD [22–29] ñîâðåìåííûõ ßÏ, êîòîðàÿ ìîæåò èñïîëüçîâàòüñÿ ïðè
èçãîòîâëåíèè ïðîãðàìì äëÿ ôèçè÷åñêèõ, áèîëîãè÷åñêèõ è äðóãèõ ýêñïåðèìåíòîâ.
Ïîäõîä ê ãåíåðàöèè FDT GDT� . Îñíîâû ãåíåðàöèè îáùèõ òèïîâ äàííûõ
GDT èçëîæåíû â ñòàíäàðòå ISO/IEC 11404-2007. Òèï äàííûõ ðàññìàòðèâàåòñÿ
êàê ìàòåìàòè÷åñêîå ïîíÿòèå, îáîçíà÷àþùåå ìíîæåñòâî çíà÷åíèé ýëåìåíòîâ. Çíà-
÷åíèÿ áàçîâîãî òèïà (öåëîå, äåéñòâèòåëüíîå è äð.) îïðåäåëÿþòñÿ àïïàðàòóðîé,
êîìïèëÿòîðàìè ïðîãðàìì ñ ßÏ è ò.ï. Îïåðàöèè íàä çíà÷åíèÿìè òèïà — ýòî àê-
ñèîìû, êîòîðûå îòîáðàæàþò çíà÷åíèå îäíîãî òèïà â çíà÷åíèå äðóãîãî òèïà.
FDT-òèï äàííûõ âêëþ÷àåò ïðîñòûå, ñòðóêòóðíûå è ñëîæíûå òèïû äàííûõ, ìíî-
æåñòâî îïåðàöèé è çíà÷åíèé òèïîâ äàííûõ è ñâÿçè ñ äðóãèìè òèïàìè äàííûõ.
Îíè ðàññìîòðåíû â ðàçä. 2 è áîëåå ïîäðîáíî â [12, 17, 18].
GDT â äàííîì ñòàíäàðòå âêëþ÷àþò LI-òèï äàííûõ (LI — Language
Independed), íåçàâèñèìûé îò ßÏ. Ýòî ïðèìèòèâíûå òèïû, íåçàâèñèìûå îò äðóãèõ
òèïîâ, è íåïðèìèòèâíûå, êîòîðûå ãåíåðèðóþòñÿ ê FDT ñ ïîìîùüþ äðóãèõ òèïîâ
äàííûõ ýòîãî ñòàíäàðòà. Àïïàðàò ãåíåðàöèè òèïîâ äàííûõ âêëþ÷àåò: âûáîð
(ñhoice), óêàçàòåëü (pointer), ïðîöåäóðó (procedure), çàïèñü (record), íàáîð (set),
ïîðòôåëü (bag), ïîñëåäîâàòåëüíîñòü (sequence), ìàññèâ (array), òàáëèöó (table) è
ò.ï. Ãåíåðàöèÿ îñóùåñòâëÿåòñÿ ñïåöèàëüíûì íàáîðîì ïðîöåäóð (ôóíêöèé), êîòî-
ðûå íåîáõîäèìî ðàçðàáîòàòü è èñïîëüçîâàòü â ðàçíûõ ïðèêëàäíûõ ñèñòåìàõ.
Ïðåäëàãàåòñÿ ñõåìà ãåíåðàöèè GDT FDT� , êîòîðàÿ áàçèðóåòñÿ íà áèáëèî-
òåêå ñëåäóþùèõ ôóíêöèé (ïðîöåäóð) â ÿçûêå XML:
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6 155
— ïðåîáðàçîâàíèå òèïîâ äàííûõ ßÏ ßÏ1, ,� n ;
— ïðåäñòàâëåíèå òèïîâ äàííûõ FDT ê âèäó ñïåöèàëüíûõ ôóíêöèé;
— ïðåîáðàçîâàíèå GDT ê âèäó FDT;
— ýêâèâàëåíòíûå îòîáðàæåíèÿ GDT FDT� .
Òåîðèÿ ïðåäñòàâëåíèÿ FDT, ðàçðàáîòàííàÿ ñ ïðèìåðàìè îïèñàíèÿ äëÿ êëàññà
ßÏ 4GL, îïèñàíà â [6, 18, 22]. Îíà áóäåò èñïîëüçîâàòüñÿ è äëÿ ðåàëèçàöèè ïðèâå-
äåííîãî íàáîðà ôóíêöèé ïóòåì ñîçäàíèÿ:
1) áèáëèîòåêè ôóíêöèé äëÿ ïðåîáðàçîâàíèÿ âñåõ òèïîâ äàííûõ GDT (ïðè-
ìèòèâíûõ, àãðåãàòíûõ è ãåíåðèðîâàííûõ) ê FDT òèïàì äàííûõ (ïðîñòûì, ñòðóê-
òóðíûì è ñëîæíûì) ßÏ, êîòîðûå îáåñïå÷àò âçàèìîäåéñòâèå ðàçíîÿçû÷íûõ
êîìïîíåíòîâ â ñèñòåìàõ Eclipse è Grid;
2) ñïåöèôèêàöèé âíåøíèõ òèïîâ äàííûõ êîìïîíåíòîâ ñðåäñòâàìè GDT è
ñîõðàíåíèå èõ â ðåïîçèòoðèÿõ èëè áèáëèîòåêàõ ñðåäû ôàáðèêè;
3) ôîðìàòîâ ïîñðåäíèêîâ âçàèìîñâÿçè êîìïîíåíòîâ ïîäîáíûõ stub ñ èñïîëüçî-
âàíèåì ôóíêöèé GDT FDT� äëÿ ïåðåäà÷è äàííûõ îò îäíîãî ñòàíäàðòíîãî
îáúåêòà ê äðóãîìó;
4) ñèñòåìû ãåíåðàöèè êîìïîíåíòîâ è ïðåîáðàçîâàíèÿ â íèõ òèïîâ äàííûõ
ñ ó÷åòîì ïëàòôîðì êîìïîíåíòîâ, ñèñòåì è ñåìåéñòâ ñèñòåì.
Ðåàëèçîâàííàÿ áèáëèîòåêà òèïîâ äàííûõ GDT FDT� ñòàíåò íåîáõîäèìîé
â ãåòåðîãåííîé ñðåäå Grid äëÿ ðåøåíèÿ ïðîáëåìû ñáîðêè ðàçíîðîäíûõ êîìïî-
íåíòîâ â íîâûõ ßÏ.
Ðàçâèòèå ñðåäû Eclipse äëÿ ïðîèçâîäñòâà ÏÏ. Èíòåãðèðîâàííàÿ ñðåäà ãå-
íåðàöèè Eclipse ïðèíÿòà â êà÷åñòâå áàçîâîé â ôóíäàìåíòàëüíîì ïðîåêòå èíñòè-
òóòà (2007–2011) [30, 47] è îðèåíòèðîâàíà íà ïðîèçâîäñòâî ïðèëîæåíèé è ñå-
ìåéñòâ ïðîãðàììíûõ ñèñòåì (ÑÏÑ) èç êîìïîíåíòîâ è ÊÏÈ. Îñíîâíûì ìåõàíèç-
ìîì âçàèìîäåéñòâèÿ êîìïîíåíòîâ â ÏÏ ÿâëÿþòñÿ ñãåíåðèðîâàííûå
èíòåðôåéñíûå ïîñðåäíèêè ïðè ñáîðêå ðàçíîÿçû÷íûõ ïðîãðàìì. Êàê ôàáðèêà
ïðîãðàìì ñ ìåòîäîì ãåíåðàöèè îíà âêëþ÷àåò:
— ãîòîâûå êîìïîíåíòû, èíôîðìàöèîííûå ðåñóðñû Èíòåðíåòà, ìîäóëè, ñåð-
âèñû, Legacy-systems è ò.ï.;
— ñèñòåìó ãåíåðàöèè ÷ëåíîâ ñåìåéñòâà èç ÊÏÈ íà îñíîâå ãåíåðèðóþùåé
ìîäåëè (GDM) ñ èñïîëüçîâàíèåì ÿçûêà îïèñàíèÿ ñïåöèôèêè ïðåäìåòíîé
îáëàñòè â ÿçûêå DSL;
— îíòîëîãè÷åñêóþ ìîäåëü íàáîðà ïðîãðàììíûõ ðåñóðñîâ ïðåäìåòíîé îá-
ëàñòè ÏÈ, òåñòèðîâàíèÿ, ýêñïåðòèçû è îöåíêè èõ êà÷åñòâà;
— ßÏ (C/C++, C#, JAVA, Pascal, Basic, Clear, Ruby è äð.) äëÿ îïèñàíèÿ ðàç-
íîÿçû÷íûõ êîìïîíåíòîâ, ÿçûê îïèñàíèÿ äàííûõ (XML, UML, RDF, FDT, GDT, ...),
ÿçûê èíòåðôåéñà (IDL, APL, SDL, ïðîòîêîëû, äð.) êîìïîíåíòîâ è ñîâðåìåííûå
ìîäåëè (MDA, MDD, PIM, PSM, GDM, DSML, Feature);
— èíñòðóìåíòàëüíóþ ñðåäó ïðîãðàììèðîâàíèÿ, ðåïîçèòîðèè ñ ðàçíûìè
îíòîëîãèÿìè, ñèñòåìíûå ñðåäñòâà (Protege, Eclipse, Aspectj, Java è äð.) è òåõíîëî-
ãè÷åñêèå ìîäóëè ïîääåðæêè ïðîöåññîâ (òåñòèðîâàíèÿ, íàäåæíîñòè, ýêñïåðòèçû,
ñáîðêè è äð.;
— òåîðèÿ ýêñïåðòíîãî è áàéåñîâñêîãî îöåíèâàíèÿ ÊÏÈ, ïðîöåññîâ ÆÖ è îò-
äåëüíûõ îáúåêòîâ, âõîäÿùèõ â ñîñòàâ ÏÏ.
Ãëàâíûìè ïðîöåññàìè ëèíèé ïðîèçâîäñòâà ÏÏ ÿâëÿþòñÿ: òåñòèðîâàíèå
ÊÏÈ, ïðîãðàìì, ïðèëîæåíèé è äð.; ñáîðêà ðàçíîðîäíûõ ïðîãðàìì, îñíîâàííàÿ
íà òåîðèè îòîáðàæåíèÿ òèïîâ äàííûõ FDT è GDT; ýêñïåðòèçû, èçìåðåíèÿ êîì-
ïîíåíòîâ è ÷ëåíîâ ñåìåéñòâà ÑÏÑ; îöåíêà íàäåæíîñòè ïî ðåçóëüòàòàì ïðîâåðêè
ïðîãðàìì; îöåíêà ïîêàçàòåëåé êîìïîíåíòîâ è ÏÏ; ñåðòèôèêàöèÿ êîìïîíåíòîâ
è ÑÏÑ; óïðàâëåíèå êîìàíäîé èñïîëíèòåëåé è äð.
Ýòè ìåòîäû è ïðîöåññû ðåàëèçàöèè ÏÏ ðàñøèðÿþò âîçìîæíîñòè ñîâðåìåííûõ
ôàáðèê ïðîèçâîäñòâà ðàçíîãî âèäà ÏÏ â ñîâðåìåííûõ èíòåãðèðîâàííûõ ñðåäàõ.
156 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6
ÇÀÊËÞ×ÅÍÈÅ
Àâòîð è íåêîòîðûå ñîòðóäíèêè îòäåëà «Ïðîãðàììíàÿ èíæåíåðèÿ» ñòîÿëè â
èñòîêå èäåè ôàáðèê ïðîãðàìì. Â íàñòîÿùåé ñòàòüå ðàññìîòðåíû îñíîâíûå ïî-
çèöèè êîíöåïöèè àêàäåìèêà Â.Ì. Ãëóøêîâà è ïåðâîíà÷àëüíûå ïóòè åå ðàçâè-
òèÿ â ÈÊ, ïðîàíàëèçèðîâàíû äåéñòâóþùèå ôàáðèêè ïðîãðàìì ñ èíòåãðèðîâàí-
íûìè ñðåäàìè, ìåòîäû ïðîãðàììèðîâàíèÿ è äðóãèå àñïåêòû ïðîèçâîäñòâà ÏÏ.
 ðåçóëüòàòå ðàçðàáîòàíû îðèãèíàëüíûå ìåòîäû è ñðåäñòâà ïîääåðæêè ôàáðè-
êè ïðîãðàìì, åå îðãñòðóêòóðà è ðåñóðñû, íåîáõîäèìûå äëÿ åå ôóíêöèîíèðîâà-
íèÿ. Ïðåäëîæåí íàáîð ñðåäñòâ ñáîðêè è ïðåîáðàçîâàíèÿ îáùèõ òèïîâ äàííûõ
ê ôóíäàìåíòàëüíûì GDT FDT� äëÿ ïðèìåíåíèÿ ñîîòâåòñòâóþùèõ ôóíêöèé â
ãåòåðîãåííûõ ñðåäàõ äëÿ îáåñïå÷åíèÿ íîâûõ âèäîâ èíòåðôåéñîâ â ìîäóëÿõ
ïîñðåäíèêàõ è â êîíôèãóðàöèîííîì ôàéëå ÏÏ.
ÑÏÈÑÎÊ ËÈÒÅÐÀÒÓÐÛ
1. Ê à ï è ò î í î â à Þ . Â . , Ë å ò è ÷ å â ñ ê è é À . À . Ïàðàäèãìû è èäåè àêàäåìèêà Â.Ì. Ãëóø-
êîâà. — Êèåâ: Íàóê. äóìêà, 2003. — 454 ñ.
2. Ã ë ó ø ê î â Â . Ì . , Ë à â ð è ù å â à Å . Ì . , Ñ ò î ã í è é À . À . è ä ð . Ñèñòåìà àâòîìàòèçà-
öèè ïðîèçâîäñòâà ïðîãðàìì. (ÀÏÐÎÏ). — Êèåâ: Èí-ò êèáåðíåòèêè ÀÍ ÓÑÑÐ, 1976. — 134 ñ.
3. Ñ å ð ã è å í ê î È . Â . , Ï à ð à ñ þ ê È . Ï . , Ò ó ê à ë å â ñ ê à ÿ Í . È . Àâòîìàòèçèðîâàííûå
ñèñòåìû îáðàáîòêè äàííûõ. — Êèåâ: Íàóê. äóìêà, 1976. — 256 ñ.
4. Ã ë ó ø ê î â Â . Ì . , Ê à ï è ò î í î â à Þ . Â Ë å ò è ÷ å â ñ ê è é À . À . Î ïðèìåíåíèè ìåòîäà
ôîðìàëèçîâàííûõ òåõíè÷åñêèõ çàäàíèé ê ïðîåêòèðîâàíèþ ïðîãðàìì îáðàáîòêè ñòðóêòóð
äàííûõ // Êèáåðíåòèêà. — 1978. — ¹ 6. — Ñ. 31–43.
5.  å ë ü á è ö ê è é È .  . , Õ î ä à ê î â ñ ê è é  . Í . , Ø î ë ì î â Ë . È . Òåõíîëîãè÷åñêèé êîìï-
ëåêñ ïðîèçâîäñòâà ïðîãðàìì íà ìàøèíàõ ÅÑ ÝÂÌ è ÁÝÑÌ-6. — Ì.: Ñòàòèñòèêà, 1980. — 264 ñ.
6. Ë à â ð è ù å â à Å . Ì . , Ã ð è ù å í ê î Â . Í . Ñâÿçü ðàçíîÿçûêîâûõ ìîäóëåé â ÎÑ ÅÑ. — Ì.:
Ôèíàíñû è ñòàòèñòèêà, 1982. — 127 ñ.
7. Ê à õ ð î Ì . È . , Ê à ë ü ÿ À . Ï . , Ò û ó ã ó Ý . X . Èíñòðóìåíòàëüíàÿ ñèñòåìà ïðîãðàììèðîâà-
íèÿ ÅÑ ÝÂÌ (ÏÐÈÇ). — Ì.: Ôèíàíñû è ñòàòèñòèêà, 1982. — 157 ñ.
8. Â î ë õ î â å ð Â . Ã . , È â à í î â Ë . À . Ïðîèçâîäñòâåííûå ìåòîäû ðàçðàáîòêè ïðîãðàìì. —
Ì.: Ôèíàíñû è ñòàòèñòèêà, 1983. — 208 ñ.
9. Ë à â ð è ù å â à Å . Ì . Îñíîâû òåõíîëîãè÷åñêîé ïîäãîòîâêè ðàçðàáîòêè ïðèêëàäíûõ ïðîãðàìì
ÑÎÄ. — Êèåâ, 1987. — 30 ñ. — (Ïðåïð. ÀÍ ÓÑÑÐ, Èí-ò êèáåðíåòèêè èì. Â.Ì. Ãëóøêîâà).
10. Ê î â à ë ü Ã . È . , Ê î ð î ò ó í Ò . Ì . , Ë à â ð è ù å â à Å . Ì . Îá îäíîì ïîäõîäå ê ðåøåíèþ
ïðîáëåìû ìåæìîäóëüíîãî è òåõíîëîãè÷åñêîãî èíòåðôåéñîâ // Äèàëîãîâûå ñèñòåìû: Ìåæîò-
ðàñë. ñá. ÀÍ ÑÑÑÐ è Ìèíâóçà ÑÑÑÐ. — 1988. — Ñ. 121–136.
11. Ë à â ð è ù å â à Å . Ì . Èíòåðôåéñ â ïðîãðàììèðîâàíèè // Ïðîáëåìè ïðîãðàìóâàííÿ. — 2007.
— ¹ 2. — Ñ. 126–139.
12. Ëà â ð è ù å â à Å . Ì . Ïðîáëåìà èíòåðîïåðàáåëüíîñòè ðàçíîðîäíûõ îáúåêòîâ, êîìïîíåíòîâ è
ñèñòåì. Ïîäõîäû ê åå ðåøåíèþ // Ìàòåð³àëè 7 ̳æíàð. êîíô. ç ïðîãðàìóâàííÿ ÓÊÐÏðîã’2010.
— Êèåâ: ÈÏÑ ÍÀÍÓ, 2010. — C. 28–41.
13. C a s t e l l i D . , C a n d e l a L . , P a g a n o P . , S i m i M . // IEEE 2005 — CS Intern. Symp.
Global Data Interoperab. (IEEE Comput. Soc.). — 2005. — P. 56–99.
14. Ë à â ð è ù å â à Å . Ì . Ñòàíîâëåíèå è ðàçâèòèå ìîäóëüíî-êîìïîíåíòíîé èíæåíåðèè ïðîãðàì-
ìèðîâàíèÿ â Óêðàèíå. — Êèåâ, 2008. — 33 ñ. Ïðåïð. / Èí-ò êèáåðíåòèêè èì. Â.Ì. Ãëóøêîâà; 1.
15. Ë à â ð è ù å â à Å . Ì . , à ð è ù å í ê î  . Í . Ñáîðî÷íîå ïðîãðàììèðîâàíèå. — Êèåâ: Íàóê.
äóìêà, 1991. — 213 ñ.
16. Ë à â ð è ù å â à Å . Ì . Ñáîðî÷íîå ïðîãðàììèðîâàíèå. Íåêîòîðûå èòîãè è ïåðñïåêòèâû //
Ïðîáëåìû ïðîãðàììèðîâàíèÿ. — 1999. — ¹ 2. — C. 20–31.
17. Ë à â ð è ù å â à Å . Ì . Ñáîðî÷íîå ïðîãðàììèðîâàíèå. Òåîðèÿ è ïðàêòèêà // Êèáåðíåòèêà è ñèñ-
òåìíûé àíàëèç. — 2009. — ¹ 6. — C. 1–12.
18. Ë à â ð è ù å â à Å . Ì . , à ð è ù å í ê î  . Í . Ñáîðî÷íîå ïðîãðàììèðîâàíèå. Îñíîâû èíäóñò-
ðèè ïðîãðàììíûõ ïðîäóêòîâ: 2-èçä. äîï. è ïåðåðàá. — Êèåâ: Íàóê. äóìêà, 2009. — 370 ñ.
19. Ë à â ð ³ ù å â à Ê . Ì . Ïåðñïåêòèâí³ äèñöèïë³íè ïðîãðàìíî¿ ³íæåíå𳿠// ³ñí. ÍÀÍ Óêðà¿íè.
— 2008. — ¹ 9. — Ñ. 12–17.
20. Ë à â ð è ù å â à Å . Ì . Êëàññèôèêàöèÿ äèñöèïëèí ïðîãðàììíîé èíæåíåðèè // Êèáåðíåòèêà è
ñèñòåìíûé àíàëèç. — 2008. — ¹ 6. — Ñ. 3–9.
21. N o r h r o p L . M . Software SEI’s Ðroduct lineTenets // IEEE Software. — 2002. — 19, N 4. —
P. 32–39.
ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6 157
22. Ã ð è ù å í ê î Â . Í . , Ë à â ð è ù å â à Å . Ì . Ìåòîäû è ñðåäñòâà êîìïîíåíòíîãî ïðîãðàììèðî-
âàíèÿ // Êèáåðíåòèêà è ñèñòåìíûé àíàëèç. — 2003. — ¹ 1. — C. 39–55.
23. à ð è ù å í ê î  . Ì . Ìåòîä îá’ºêòíî-êîìïîíåíòíîãî ïðîåêòóâàííÿ ïðîãðàìíèõ ñèñòåì //
Ïðîáëåìè ïðîãðàìóâàííÿ. — 2007. — ¹ 2. — Ñ. 113–125.
24. Ô ð å ã å à . Ëîãèêà è ëîãè÷åñêàÿ ñåìàíòèêà. — Ì.: Àñïåêò Ïðåññ, 2000. — 512 ñ.
25. Ë à â ð è ù å â à Å . Ì . Ìåòîäû ïðîãðàììèðîâàíèÿ. Òåîðèÿ, èíæåíåðèÿ, ïðàêòèêà. — Êèåâ:
Íàóê. äóìêà, 2006. — 451 ñ.
26. H o a r Ê . Î Ñòðóêòóðíîé îðãàíèçàöèè äàííûõ // Ñòðóêòóðíîå ïðîãðàììèðîâàíèå. — Ì.:
Ìèð, 1975. — C. 92–197.
27. Ò ó ð ñ ê è é Â . Ìåòîäîëîãèÿ ïðîãðàììèðîâàíèÿ: Ïåð. ñ àíãë. — Ì.: Ìèð, 1981. — 265 c.
28. À ã à ô î í î â Â . Í . Òèïû è àáñòðàêöèÿ äàííûõ â ÿçûêàõ ïðîãðàììèðîâàíèÿ // Äàííûå â
ÿçûêàõ ïðîãðàììèðîâàíèÿ. — Ì.: Ìèð, 1982. — Ñ. 267–327.
29. Ç à ì ó ë è í À . Â . Òèïû äàííûõ â ÿçûêàõ ïðîãðàììèðîâàíèÿ è áàçàõ äàííûõ. — Ì.: Íàóêà,
1987. — 152 ñ.
30. Î ñ í î â û èíæåíåðèè êà÷åñòâà ïðîãðàììíûõ ñèñòåì / Ô.È. Àíäîí, Ã.È. Êîâàëü, Ò.Ì. Êîðî-
òóí, Å.Ì. Ëàâðèùåâà, Þ.Â. Ñóñëîâ: 2-å èçä. — Êèåâ: Àêàäåìïåðèîäèêà, 2007. — 680 ñ.
31. × å ð í å ö ê è Ê . , À é ç å í å ê å ð Ó. Ïîðîæäàþùåå ïðîãðàììèðîâàíèå. Ìåòîäû, èíñòðóìåí-
òû, ïðèìåíåíèå. — Ì.; ÑÏá.; Õàðüêîâ; Ìèíñê: Èçäàòåëüñêèé äîì Ïèòåð, 2005. — 730 ñ.
32. Ë à â ð ³ ù å â à Ê . Ì . Ãåíåðóâàëüíå ïðîãðàìóâàííÿ ïðîãðàìíèõ ñèñòåì ³ ñ³ìåéñòâ // Ïðîáëåìè
ïðîãðàìóâàííÿ. — 2009. — ¹ 1. — Ñ. 3–16.
33. Ê î ð î ò ó í Ò . Ì . Ìîäåë³ è ìåòîäè ³íæåíå𳿠òåñòóâàííÿ ïðîãðàìíèõ ñèñòåì â óìîâàõ îáìå-
æåíèõ ðåñóðñ³â. — Àâòîðåô. äèñ. ... êàíä. ô³ç.-ìàò. íàóê / ²Ê ÍÀÍÓ. — Êè¿â, 2005. — 21 ñ.
34. Ñ ë à á î ñ ï ³ ö ü ê à Î . Î . Ìîäåë³ òà ìåòîäè åêñïåðòíîãî îö³íþâàííÿ ó æèòòºâîìó öèêë³ ïðîã-
ðàìíèõ ñèñòåì. — Àâòîðåô. äèñ. ... êàíä. ô³ç.-ìàò. íàóê / ²Ê ÍÀÍÓ. — Êè¿â, 2008. — 21 ñ.
35. Ç à ä î ð î æ í à ÿ Í . Ò . Êåðîâàíå ïðîåêòóâàííÿ äîêóìåíòîîá³ãó â óïðàâëÿþ÷èõ ³èíôîðìàö³íèõ
ñèñòåìàõ. — Àâòîðåô. äèñ. ... êàíä. ô³ç.-ìàò. íàóê / ²Ê ÍÀÍÓ. — Êè¿â, 2004. — 21 ñ.
36. Çà ä î ð î æ í à Í . Ò . , Ë à â ð ³ ù å â à Ê . Ì . Ìåíåäæìåíò äîêóìåíòîîá³ãó â ³íôîðìàö³éíèõ
ñèñòåìàõ îñâ³òè. — Ê.: Ïåäàãîã³÷íà äóìêà, 2007. — 220 ñ.
37. Á à á å í ê î Ë . Ï . Ïðîáëåìû ïîâòîðíîãî èñïîëüçîâàíèÿ â ïðîãðàììíîé èíæåíåðèè //
Êèáåðíåòèêà è ñèñòåìíûé àíàëèç. — 1999. — ¹ 2 — C. 155–166.
38. Á à á å í ê î Ë . Ï . , Ë à â ð ³ ù å â à Ê . Ì . Îñíîâè ïðîãðàìíî¿ ³íæåíåð³¿: Ïîñ³áíèê. — Ê.:
Çíàííÿ, 2001. — 269 ñ.
39. Ë à â ð ³ ù å â à Ê . Ì . Ïðîãðàìíà ³íæåíåð³ÿ — íàïðÿìè ðîçâèòêó // Ïð. ì³æíàð. êîíô.
«50 ðîê³â ²íñòèòóòó ê³áåðíåòèêè ³ìåí³ Â.Ì. Ãëóøêîâà ÍÀÍ Óêðà¿íè». — Êè¿â, 2008. —
Ñ. 336–345.
40. C o r b i n J . The art of distributed applications. Programming Tech. for remote procedure calls. —
Berlin: Springer-Verlag, 1992. — 305 p.
41. Ý ì ì å ð è õ Â . Êîíñòðóèðîâàíèå ðàñïðåäåëåííûõ îáúåêòîâ. Ìåòîäû è ñðåäñòâà ïðîãðàììè-
ðîâàíèÿ èíòåðîïåðàáåëüíûõ îáúåêòîâ â àðõèòåêòóðàõ OMG/CORBA, Microsoft/COM è
Java/RMI. — Ì.: Ìèð, 2002. — 510 ñ.
42. Á å é È . Âçàèìîäåéñòâèå ðàçíîÿçûêîâûõ ïðîãðàìì. — Ì.; ÑÏá; Êèåâ: Èçä. äîì. «Âèëüÿìñ»,
2005. — 868 ñ.
43. Ã ð è í ô è ë ü ä Ä æ . Ôàáðèêè ðàçðàáîòêè ïðîãðàìì. — Ì.; ÑÏá.; Êèåâ: Èçä. äîì. «Âèëüÿìñ»,
2007. — 591 ñ.
44. G u c k e n h e i m e r S . , P e r e z J . I . Software engineering with Microsoft studio team system. —
Crawfordsville, USA: Adison-Wesley, 2006. — 304 p.
45. E T I C S : the International software engineering service for the Grid / A. Meglio, M.E. B�gin,
P. Couvares, E. Ronchieri, E. Takacs // J. of Physics Conf. Ser. 119. — 2008. — Ð. 1–11.
46. Ò à ê î â è ö ê è é Î . Òåõíîëîãèÿ Grid computing. — Htm.-Grid /doc/Byte Magazine Online.
47. Ë à â ð ³ ù å â à Ê . Ì . Ïðîãðàìíà ³íæåíåð³ÿ. — Êè¿â: Àêàäåìïåð³îäèêà, 2008. — 313 ñ.
48. Ê à ð ë ñ î í Ä . Eclipse. — Ëîðè, 2004. — 335 ñ.
49. Ë à â ð ³ ù å â à Ê . Ì . Òåîðåòè÷í³, ïðèêëàäí³ òà îðãàí³çàö³éí³ îñíîâè ôàáðèê ïðîãðàì // Ñá.
ïðàöü ì³æí. êîíô. TAARST-2010. — 2010. — Ñ. 151–160.
50. Ê î â à ë ü Ã . ² . , Ê î ë å ñ í è ê À . Ë . , Ë à â ð ³ ù å â à Ê . Ì . , Ñ ë à á î ñ ï è ö ü ê à Î . Î.
Óäîñêîíàëåííÿ ïðîöåñó ðîçðîáëåííÿ ñ³ìåéñòâ ïðîãðàìíèõ ñèñòåì åëåìåíòàìè ãíó÷êèõ ìåòî-
äîëîã³é // Ïðîáëåìè ïðîãðàìóâàííÿ. — 2010. — ¹ 2–3. — C. 261–270.
Ïîñòóïèëà 17.09.2010
158 ISSN 0023-1274. Êèáåðíåòèêà è ñèñòåìíûé àíàëèç, 2011, ¹ 6
|