DS-theory as a prototype of the theory of applied algorithms
The notion of the decomposition scheme as a core for DS-theory is proposed and described here. The notions of clump-property and algorithmic dependence are also described. Decomposition scheme is proposed to be used taking into account its algorithmic nature as the basis for building universal (cano...
Збережено в:
Дата: | 2018 |
---|---|
Автор: | |
Формат: | Стаття |
Мова: | rus |
Опубліковано: |
Інститут програмних систем НАН України
2018
|
Теми: | |
Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/35 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Problems in programming |
Репозитарії
Problems in programmingid |
pp_isofts_kiev_ua-article-35 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/c0/f424910e12da8995d39b65b95c5878c0.pdf |
spelling |
pp_isofts_kiev_ua-article-352018-07-25T14:00:23Z DS-theory as a prototype of the theory of applied algorithms DS-теория как прототип теории прикладных алгоритмов DS-теорія як прототип теорії прикладних алгоритмів Kolesnyk, V.G. Application-oriented algorithm проектирование прикладных алгоритмов Проектування прикладних алгоритмів The notion of the decomposition scheme as a core for DS-theory is proposed and described here. The notions of clump-property and algorithmic dependence are also described. Decomposition scheme is proposed to be used taking into account its algorithmic nature as the basis for building universal (canonical) algorithm. The questions of the canonical algorithm transformation into the specific application-oriented algorithms are discussed. The operations over the decomposition schemes which are itself operations over algorithms are described. Предложено и описано понятие схемы декомпозиции как ядра DS-теории. Описаны понятия свойства-совокупности и алгоритмической зависимости. Предложено использовать схему декомпозиции, учитывая ее алгоритмическую природу, как основу для построения универсального (канонического) алгоритма. Обсуждаются вопросы преобразования канонического алгоритма в конкретные прикладные алгоритмы. Описываются операции над схемами декомпозиции, которые есть и операциями над алгоритмами. Запропоновано та описано поняття схеми декомпозиції як ядра DS-теорії. Описано поняття властивості-сукупності та алгоритмічної залежності. Запропоновано застосовувати схему декомпозиції, враховуючи її алгоритмічну природу, як основу для побудови універсального (канонічного) алгоритму. Обговорюються питання перетворення канонічного алгоритму в конкретні прикладні алгоритми. Описуються операції над схемами декомпозиції, які є й операціями над алгоритмами Інститут програмних систем НАН України 2018-07-23 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/35 PROBLEMS IN PROGRAMMING; No 1 (2012) ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 1 (2012) ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 1 (2012) 1727-4907 rus https://pp.isofts.kiev.ua/index.php/ojs1/article/view/35/41 Copyright (c) 2015 ПРОБЛЕМИ ПРОГРАМУВАННЯ |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2018-07-25T14:00:23Z |
collection |
OJS |
language |
rus |
topic |
Application-oriented algorithm |
spellingShingle |
Application-oriented algorithm Kolesnyk, V.G. DS-theory as a prototype of the theory of applied algorithms |
topic_facet |
Application-oriented algorithm проектирование прикладных алгоритмов Проектування прикладних алгоритмів |
format |
Article |
author |
Kolesnyk, V.G. |
author_facet |
Kolesnyk, V.G. |
author_sort |
Kolesnyk, V.G. |
title |
DS-theory as a prototype of the theory of applied algorithms |
title_short |
DS-theory as a prototype of the theory of applied algorithms |
title_full |
DS-theory as a prototype of the theory of applied algorithms |
title_fullStr |
DS-theory as a prototype of the theory of applied algorithms |
title_full_unstemmed |
DS-theory as a prototype of the theory of applied algorithms |
title_sort |
ds-theory as a prototype of the theory of applied algorithms |
title_alt |
DS-теория как прототип теории прикладных алгоритмов DS-теорія як прототип теорії прикладних алгоритмів |
description |
The notion of the decomposition scheme as a core for DS-theory is proposed and described here. The notions of clump-property and algorithmic dependence are also described. Decomposition scheme is proposed to be used taking into account its algorithmic nature as the basis for building universal (canonical) algorithm. The questions of the canonical algorithm transformation into the specific application-oriented algorithms are discussed. The operations over the decomposition schemes which are itself operations over algorithms are described. |
publisher |
Інститут програмних систем НАН України |
publishDate |
2018 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/35 |
work_keys_str_mv |
AT kolesnykvg dstheoryasaprototypeofthetheoryofappliedalgorithms AT kolesnykvg dsteoriâkakprototipteoriiprikladnyhalgoritmov AT kolesnykvg dsteoríââkprototipteorííprikladnihalgoritmív |
first_indexed |
2025-07-17T09:34:29Z |
last_indexed |
2025-07-17T09:34:29Z |
_version_ |
1838499596902334464 |
fulltext |
Теоретичні та методологічні основи програмування
УДК 004.424, 004.415
В.Г. Колесник
DS-ТЕОРИЯ КАК ПРОТОТИП
ТЕОРИИ ПРИКЛАДНЫХ АЛГОРИТМОВ
Предложено и описано понятие схемы декомпозиции как ядра DS-теории. Описаны понятия свойства-
совокупности и алгоритмической зависимости. Предложено использовать схему декомпозиции, учиты-
вая ее алгоритмическую природу, как основу для построения универсального (канонического) алго-
ритма. Обсуждаются вопросы преобразования канонического алгоритма в конкретные прикладные ал-
горитмы. Описываются операции над схемами декомпозиции, которые являются и операциями над ал-
горитмами.
Введение
В работе предлагается описание
теоретической модели, называемой схе-
мой декомпозиции (decomposition schemes
DS). Схема декомпозиции является
неотъемлемой частью теории схем деком-
позиции (DS-теории). DS-теория рассмат-
ривается как теория или как прототип
теории для проектирования прикладных
алгоритмов. В подобной теории нуждается
технология программирования [1, 2].
Созданию теоретической модели
и DS-теории предшествовало использо-
вание метода проектирования программ
по структуре данных JSP [3], Logical
Construction of Programs [4] и
R-технология [5] при разработке про-
граммного обеспечения. В какойто
момент ряд исследователей незави-
симо друг от друга обратили внимание
на то, что структура обрабатываемых
данных может определять структуру про-
граммы. Класс таких программ достаточно
большой. Подобную зависимость увидели
много тех программистов-практиков,
то разрабатывал программы для обработки
линейных файлов и иерархических
баз данных. Принципиальным недостатком
метода было то, что не существовало
ясного и детального способа определить
структуру данных.
– уменьшение сложности алгорит-
мов за счет системы более емких понятий;
В результате поиска автором было
обнаружено, что именно схема декомпози-
ции определяет структуру данных
и опосредованно определяет структуру
программы. Таким образом, основные
идеи DS-теории появились в результате
попыток развить метод программирования
по структуре данных с целью расширения
Понимание важности емких
понятий для технологии программирова-
ния есть в научном сообществе [8]. Реали-
зацией этого подхода – использование
емких понятий – было создание алгорит-
мических языков, макросов, механизма
подпрограмм. Емкость макроса или опе-
ратора алгоритмического языка больше
чем емкость машинной команды или
строки мнемокода. Тем не менее, практи-
чески одновременно с изобретением
первых алгоритмических языков пришло
понимание того, что выразительные
возможности этих языков весьма
ограничены [9].
сферы его применения [6] и с целью более
глубокого обоснования самого метода [7].
Схема декомпозиции в методическом
плане ответила на вопросы проектирова-
ния алгоритмов обработки данных
70-х и 80-х. Но потенциальные воз-
можности DS как средства проектирова-
ния алгоритмов значительно шире и
поэтому она положена в основу описы-
ваемой далее DS-теории.
Цели создания и развития
DS-теории следующие:
– уменьшение сложности алгорит-
мов за счет создания графических
средств проектирования алгоритмов;
– создание принципов генерации
алгоритмов.
17
© В.Г. Колесник, 2012
ISSN 1727-4907. Проблеми програмування. 2012. № 1
Теоретичні та методологічні основи програмування
Позже были созданы специали-
зированные инструменты – генераторы
отчетов и языки моделирования. Здесь
тоже использовались понятия более емкие,
чем оператор алгоритмического языка
или макрос. Но в дальнейшем развития
технологии программирования в этом на-
правлении не происходило. Понятия-
ми DS-теории, обладающими боль-
шой емкостью, являются: совокупное
свойство (С-свойство), алгоритмиче-
ская зависимость (А-зависимость), схема
декомпозиции и контур синтеза (КС).
Основная парадигма DS-теории
Принципиальная ключевая идея
теории (проектная парадигма) звучит
так: “В компьютере производятся новые
знания”. Эта парадигма принимается
в теории как аксиома, как исходное
положение и противопоставляется другой
парадигме: “В компьютере проис-
ходит обработка информации”. Развитие
основной идеи в следующем: “Знания
имеют свою внутреннюю структуру и
свой механизм их формирования – про-
цедуру декомпозиции”. И далее: “Алго-
ритм и программа в компьютере являют-
ся отражением процедуры декомпози-
ции ”.
Процедура декомпозиции известна
и интуитивно понятна практически
любому исследователю, так как это один
из мыслительных инструментов
исследований. Кроме того, схема декомпо-
зиции – это то, что очень похоже на
структурный анализ [10]. Но в DS-теории
акценты устанавливаются на проце-
дуре формирования знаний, а не на
механизме декомпонуемых конструк-
ций и управлении ими. Процедура деком-
позиции – это реализация проектной
парадигмы.
Выделив несколько объектов из
окружающей действительности, можно
рассматривать их как систему. В рамках
системы каждый объект в отношении
с каким-либо другим объектом
проявляет свои свойства. Свойства объекта
существуют независимо от других
объектов. Собственно, свойство – это
проявление внутренней структуры объек-
та.
Ожидаемая эффективность и
продуктивность DS-теории в том, что в
ее рамках разрабатываются и исследу-
ются принципы формирования алгорит-
мов. Алгоритм выводится задолго
до начала программирования и даже
вне программирования. DS-теория ориен-
тирована на устранение из процесса
проектирования алгоритмов и программ
личностного субъективного фактора.
Свойства объекта
Анализ и исследования в DS-теории
отталкиваются от идеи “объект”∗. Объек-
тами могут быть реальные объекты,
существующие в окружающей человека
действительности. Естественные и искус-
ственные. Естественные: географиче-
ский участок поверхности Земли,
минерал, человеческий организм и т. п.
Искусственные: изделие машиностроения
или легкой промышленности и т. п.
Как объект может рассматриваться нечто
статическое, относительно неизменное
и обозримое, например, стол, дом
или автомобиль. Как объект может
рассматриваться и нечто такое, что
не имеет видимой формы, например,
устный договор между субъектами пред-
принимательской деятельности. Как
объект могут рассматриваться различного
вида процессы. Например, процесс
пищеварения или наблюдение за экспери-
ментом.
Свойства объектов для человека
проявляются тогда, когда объекты
вступают в какие-либо отношения (высота
стола = 75 см. проявилась в сравнении
∗ Понятие “объект” используется в общенаучном и
философском значении и не имеет отношения к
понятию “объект” в объектно-ориентированном
проектировании и программировании.
18
Теоретичні та методологічні основи програмування
с другим столом, с высотой человека,
с мерной линейкой). Эти отношения мо-
гут быть реальными или мыслимыми
человеком, когда он соотносит и сравни-
вает эти объекты в своем сознании.
Свойства объекта или его частей
представляются формулой или квали-
фикационным предложением: “Субъект
есть предикат”. Квалификационное пред-
ложение может быть трех видов.
Первый вид – простейший, отража-
ет конкретное значение одного свойства
или одной характеристики конкретного
объекта. Пример: Объект – деталь.
Свойство объекта – вес. Квалификацион-
ное предложение имеет вид: “1214 – 15
кг”. Здесь “1214” номер детали, а
“15 кг” – вес детали. Этот вид квалифи-
кационного предложения называется
элементарным свойством (Эл-свойством).
Второй вид квалификационного
предложения отражает конкретные
значения нескольких свойств одного
конкретного объекта (или одной части).
Пример: Объект – деталь. Свойства
объекта – вес, материал, количество
операций, суммарная стоимость обра-
ботки. Квалификационное предложение
имеет вид: “1214 – 15 кг, сталь 40,
8, 35”. Здесь “1214” номер детали, а “15
кг.” – вес детали, “сталь 40” – материал,
“8” – количество операций для изготов-
ления детали, “35” – количество
нормо-часов для изготовления детали.
Этот вид квалификационного предло-
жения называется агрегированным свой-
ством (А-свойством).
Третий вид квалификационного
предложения обусловлен ситуацией,
когда в качестве свойства объекта
рассматривается перечень свойств его
компонент. Такой перечень – совокупное
свойство (С-свойство).
Пример. Характеристикой предпри-
ятия железобетонных изделий может
быть каталог изготовляемых изделий:
• плита перекрытия;
• кольцо колодца;
• лестничный марш;
• лестничная площадка и т. д.
Характеристикой того же пред-
приятия наряду с интегральными пока-
зателями, выраженными одним числом –
квартальный объем реализации или
квартальная прибыль, может быть
перечень реализованных изделий с
указанием объемов реализации. Квали-
фикационное предложение в таком случае
имеет вид:
объем реализации продукции в пер-
вом квартале:
• плита перекрытия 120 шт.;
• кольцо колодца 70 шт.;
• лестничный марш 250 шт.;
• плита перекрытия 230 шт. и т. д
Здесь объект – квартальный объем
реализации продукции. Номер объекта –
первый. Свойство объекта – перечень
продукции, изготовленной в первом
квартале.
Совокупным свойством объекта
может быть просто перечень названий
или номеров компонент. Свойство
объекта может в таких случаях быть
скрыто в самом названии или в номере
компоненты.
С-свойство вместе Эл-свойством и
А-свойством имеют объемлющее их
родовое понятие “свойство” (Р-свойство).
В DS-теории наряду со свойствами
объекта рассматриваются также данные
об объекте. Данное об объекте
(Р-данное) или данная величина,
характеризующая объект, – это свойство
объекта, для которого определен
знак, читаемый или восприни-
маемый человеком или (и) техническими
средствами. Аналогично понятиям
С-свойство, Эл-свойство и А-свойство
существуют понятия: совокупное данное
(С-данное), агрегированное данное
(А-данное) и элементарное данное
(Эл-данное). Р-свойства и Р-данные
соотносятся как с объектом, так и с
частями объекта. А-данные могут вклю-
чать наряду с Эл-данными А-данные
и С-данные. С-данные могут содержать
А-данные.
В результате процедуры декомпо-
зиции может быть получено некоторое
19
Теоретичні та методологічні основи програмування
число частей (компонент). Если для
каждой части определено числовое
значение одного и того же свойства,
например, вес части, то совокупность
всех этих значений рассматривается как
свойство одного типа (или данное
одного типа). Типы данных и типы
свойств именуются. Для изображения
всех типов Р-данных (а также типов
Р-свойств), получаемых в результате
декомпозиции, используется древовидный
граф.
На рис. 1 показанно сравнение но-
тации для изображения типов Р-данных в
сравнении со способом нотации струк-
тур данных, принятом в JSP [2]. Это
сравнение правомерно, так как сопостав-
ляются одни те же явления.
Рис. 1. Представление одного и того же
информационного объекта различными
видами графики:
а – графика DS-теории (Факульте-
ты, Курсы, Группы – С-данные
(С-свойства));
б – графика метода JSP
Институт
Факультеты *
Название
#
Колич_кафедр
Факультет Факультет_Тело
Номер Колич_групп
Курс
Курсы *
Курсы_Тело
Группы *
Номер Колич_студентов
Группа
Учебные группы
а
Учебные группы
Название Колич_кафедр
Факультет
Курсы
Институт
Номер Колич_групп
Курс
Группы
Номер Колич_студентов
Группа
Факультеты
б
20
Теоретичні та методологічні основи програмування
Алгоритмическая
зависимость
Другое ключевое понятие
DS-теории – алгоритмическая зависи-
мость (А-зависимость) между свойствами
объекта.
Второй вид – это ситуация,
в которой аргументом является Р-свойства
частей объекта, а функцией – Р-свойства
объекта или в другой нотации:
Отличие А-зависимости от функ-
циональной зависимости в том,
что для описания алгоритмической
зависимости может быть использовано
наряду с формулами и математическими
знаками также текстовые описания и
различные табличные конструкции.
Алгоритмическая зависимость полностью
формально может быть записана только с
помощью средств алгоритмического
языка.
Рассматриваются две категории
зависимостей.
Первая категория – аналитическая
зависимость (Аa-зависимость) отражает
зависимости между Эл-свойствами и
(или) А-свойствами объекта (или одной и
той же части объекта).
Вторая категория – синтетическая
зависимость отражает зависимость
(Аs-зависимость) между Р-свойствами
объекта и Р-свойствами частей,
непосредственно составляющих объект.
Это также может быть зависимость между
Р-свойствами части объекта и
Р-свойствами частей, непосредственно
составляющих данную часть объекта.
Вторая категория включает два вида
А
Представителем этого вида
А
s-зависимостей.
Первый вид – это ситуация, в
которой аргументом является Эл-свойство
объекта, а функцией – Эл-свойство частей
объекта или в другой нотации:
R = α (Q),
где Q – Эл- свойство объекта, R – Эл-
свойство компоненты объекта, а α –
обозначение Аs-зависимости. Если
С-свойство P состоит из Эл-свойств
R (P = (∪ R)), то возможна еще и такая за-
пись:
P = α (Q).
W = γ (V),
где W – Эл-свойство объекта,
V – С-свойство части объекта, а
γ – название А-зависимости. Если
С-свойство Z состоит из Эл-свойств
V (Z = (∪ V)), то возможна еще и такая
запись:
W = γ (Z).
s-зависимости может быть вычисление
суммы значений, поиск минимального
или максимального элемента, любой
расчет или любое вычисление, в котором
обрабатываются все элементы некоторой
совокупности.
Реализация
А-зависимостей
Для изображения того, как алго-
ритмически реализуются А-зависимости и
для изображения алгоритма, который
может быть построен на основе схемы
21
Теоретичні та методологічні основи програмування
декомпозиции, используется гипотети-
ческое вычислительное устройство∗,
состоящее из входной и выходной
лент, процессора и ленты, содержащей
описание А-зависимостей.
Заданные (известные) свойства
объекта, представленные как Эл-
данные, размещены на входной ленте.
Искомые свойства объекта,
представленные как Эл-данные, получае-
мые в результате расчета, размещаются
на выходной ленте. Одно Эл-данное
размещается в одной ячейке∗∗ ленты, а
А-данные и С-данные занимают группы
ячеек. К входной ленте имеет доступ чи-
тающая головка, которая может прочитать
содержимое только одной из ячеек.
Описание А-зависимостей, в
соответствии с которыми определяются
искомые свойства, размещаются на
ленте процессора. Описание одной
А-зависимости размещается в одной
ячейке. Входные данные и соответст-
вующие им описания А-зависимостей
размещаются на соответствующих им
лентах синхронно.
Вычислительное устройство реали-
зует обработку данных (вычисление
Р-свойств) в соответствии с теми
А-зависимостями, которые есть меж-
ду Р-свойствами. Устройство действу-
ет следующим образом. Обе ленты
движутся справа налево. В каждый момент
времени доступна только одна ячейка для
чтения и одна ячейка для записи.
Аналогично, описание А-
зависимости доступно для чтения
читающей головкой процессора. Возмож-
на такая ситуация, в которой при обра-
ботке одного Эл-данного будет реали-
∗ Вычислительное устройство похоже на алгорит-
мическую систему “машина Тьюринга”. Различие в
том, что в ячейках входной и выходной лент раз-
мещаются Эл-данные, вместо управляющего уст-
ройства используется понятие “процессор”, а алго-
ритм определяется содержимым ленты процессора,
а не внутренними состояниями устройства управ-
ления.
∗∗ Предполагается, что размеры данных совпадают
с размерами ячеек, хотя в практике электронной
обработки данных это не так.
зовано несколько А-зависимостей.
Для следующего Эл-данного снова будет
повторена эта группа А-зависимостей.
Графически эта группа размещается в
прямоугольнике. Прямоугольник – это
зона процессора.
Начиная обработку очередного
Эл-данного, читающая головка в пределах
зоны процессора будет регулярно
возвращаться к первому из описаний
и А-зависимостей. Аналитическая Аa-
зависимость алгоритмически реализуется
следующим образом (рис. 2, а).
Процессор в соответствии с описа-
нием А-зависимости β обрабатывает
Эл-данное (Di), которое доступно на
входной ленте. Результат обработки
Эл-данное Ci записывается в ячейку на
выходной ленте. Обработка завершается
тогда, когда на входной ленте исчерпаны
Эл-данные.
Синтетическая зависимость первого
вида алгоритмически реализуется
следующим образом (рис. 2, б).
Процессор в соответствии с опи-
санием А-зависимости α обрабатывает
Эл-данное R, которое доступно на вход-
ной ленте. Результат обработки С-
данное Q записывается в группу ячеек
на выходной ленте. Входная лента и
лента процессора не движутся, выход-
ная лента смещается по мере заполне-
ния ячеек Эл-данными Qi. Завершение
обработки определяется характером
синтетической зависимости.
Синтетическая зависимость вто-
рого вида алгоритмически реализу-
ется следующим образом (рис. 2, в).
Процессор в соответствии с опи-
санием А-зависимости γ обрабатывает
С-данное V, которое доступно на вход-
ной ленте. Результат обработки Эл-данное
W записывается в ячейку на выходной
ленте.
Выходная лента и лента процес-
сора не движутся, входная лента смеща-
ется по мере чтения ячеек с Эл-данными
Vi. Завершение обработки определяется
характером синтетической зависимости и
размером С-данного V.
22
Теоретичні та методологічні основи програмування
Рис. 2. Алгоритмы реализации алгоритмических зависимостей:
а – Аa-зависимости C= β (D). C и D – Эл-данные;
б – Аs-зависимости Q= α (R). Q – С-данное, R и Qi – Эл-данные;
в – Аs-зависимость W= γ (V). W и Vi – Эл-данные. V – С-данное
Направление движения лент
C1 Ci CnC2 ··· ···
β
Входная лента D1 Di DnD2 ··· ···
Процессор
Выходная лента
а
Направление движения лент
Q1
R
QnQ2
α
Входная лента
Qi
Процессор
Q
···Выходная лента ···
б
Направление движения лент
W
γ
Входная лента V1 Vi VnV2 ··· ···
Процессор
V
Выходная лента
в
23
Теоретичні та методологічні основи програмування
Процедура декомпозиции
В наиболее общем виде познава-
тельный процесс – это движение от явле-
ния к сущности, – это движение от созер-
цания формы объекта к пониманию его
содержания. Такое движение – это движе-
ние от явных, более доступных воспри-
ятию свойств объекта к его сущностным
свойствам. Такое движение характерно
тем, что это есть движение от легче опре-
деляемых характеристик объекта к труднее
определяемым его характеристикам.
Если между парой характеристик
или свойств объекта, одна из которых от-
ражает форму, а другая – содержание объ-
екта, существует зависимость и она из-
вестна, то, используя ее и значение первой
можно определить значение второй. Если
такая зависимость неизвестна, то объект
рассматривается как система или как нечто
составное и выполняется следующее:
а) объект делится на части;
б) для каждой части определяется
пара характеристик (формы и содержания)
и существующая между ними зависимость;
в) по конкретным значениям фор-
мальных характеристик определяются со-
держательные характеристики частей пер-
вого уровня декомпозиции;
г)на основе полученных сведений о
частях синтезируется значение содержа-
тельной характеристики объекта.
Таким образом, выполнена проце-
дура декомпозиции. Для этого механизма
формирования знаний несущественно, ка-
ким образом строятся схемы декомпози-
ции (схемы деления) объекта и схемы син-
теза сведений (свойств, данных), также не-
существенно, каким образом ведется поиск
зависимостей между характеристиками.
Важно то, что в результате поиска, зави-
симость может быть найдена или нет. Если
зависимость не найдена, то для ее поиска
выполняется декомпозиция более глубоко-
го уровня, а также выполняются и все ос-
тальные пункты – б, в, г. Более мелкое
(более глубокое) членение частей объекта
будет продолжаться до тех пор, пока на
очередном уровне не будет найдена зави-
симость между характеристиками и с по-
мощью этой зависимости не будут найде-
ны свойства этих наименьших частей. За-
тем с помощью этих свойств будут найде-
ны свойства частей их составляющих (час-
тей предшествующего уровня). Процедура
синтеза, в процессе движения от свойств
включаемых частей к свойствам вклю-
чающих, будет завершена, когда будет оп-
ределена искомая характеристика (искомое
свойство) исходного объекта.
Декомпозиция может быть останов-
лена, если выясняется бесперспективность
ее продолжения. Это значит, что нет спо-
соба для последующего более глубокого
деления частей или после очередного де-
ления не находятся продуктивные зависи-
мости между характеристиками получен-
ных частей или не существует процедуры
синтеза характеристик для включающего
уровня. Декомпозиция имеет ценность, ес-
ли после ее завершения происходит гене-
рация данных о самом объекте – синтез
данных.
Различаются частные схемы и пол-
ные схемы декомпозиции. Частная схема
декомпозиции (схема декомпозиции одно-
го уровня) показывает то, как разделить
объект на непосредственно составляющие
его компоненты. Частная схема декомпо-
зиции должна определять то, как выделя-
ется каждая из компонент. Частная схема
может быть использована для деления как
объекта, так и его части. Полная схема де-
композиции – это результат декомпозиции
объекта после приложения всех понадо-
бившихся в процессе деления частных
схем.
Одна и та же схема одного уровня
декомпозиции может применяться много
раз – для объектов различных типов. То
есть, могут существовать универсальные
процедуры декомпозиции.
Все части, полученные в результате
применения частной схемы декомпозиции,
могут быть сгруппированы. Признаки, в
соответствии с которыми, части включа-
ются в группы, определяет исследователь.
Группа частей называется типом части. В
схеме декомпозиции каждая часть припи-
сывается некоторому типу. На каждом
уровне декомпозиции порождается собст-
венный набор типов. Набор включает хотя
бы один тип. В DS-теории как результат
частичной или полной декомпозиции рас-
24
Теоретичні та методологічні основи програмування
сматривается именно набор типов. В ре-
зультате реальных декомпозиций возмож-
ны различные количества частей принад-
лежащих определенному типу. В зависи-
мости от объекта или (и) схемы декомпо-
зиции может быть получено произвольное
количество частей одного типа (экземпля-
ров типа), хотя бы одна часть, одна часть
обязательно, ни одной части и т. п. В ре-
зультате декомпозиции объекта может по-
лучено произвольное число частей, типов
частей и уровней.
Графически результат декомпози-
ции может быть представлен деревом. В
общем виде схема декомпозиции показана
на рис. 3. На этом дереве каждый узел со-
относится с одним типом части. Дерево
может содержать произвольное количество
уровней, узлов, ребер. Каждый тип части
может иметь произвольное количество Р-
свойств и А-зависимостей между Р-
свойствами. А-зависимости соотносятся
только с типами частей (с узлами дерева).
Прежде всего, дерево отображает иерар-
хию типов частей объекта, но может также
отображать типы свойств, А-зависимости
и частные схемы декомпозиции. Полная
схема декомпозиции показывает возмож-
ность деления типов частей по определен-
ным частным схемам, но не отображает
детальный порядок деления частей и вы-
числения в соответствии с А-
зависимостями.
С точки зрения дерева, показанного
на рис. 3, декомпозиция это движение от
корневого узла к листьям – сверху вниз.
Синтез данных, определение новых сведе-
ний об объекте может быть частично или
полностью материальным – взвешивание,
определение количества бракованных
компонент или замена поломанной детали.
Синтез данных это движение от листьев к
корневому узлу – снизу вверх.
Описание схемы декомпозиции со-
держит дерево полной схемы декомпози-
ции (DPS), где для каждого узла Ki должен
быть определен кортеж описания узла KRi
= (Ti, Аa
i, Аs
i, DMi), который включает:
• Ti – перечень типов свойств.
• Аa
i – аналитические зависимо-
сти.
• Аs
i – синтетические зависимо-
сти.
• DMi – частная схема декомпози-
ции.
Ki – идентификатор узла, где индекс
K0
Рис. 3. Дерево схемы декомпозиции объекта. Индекс – номер узла. Уров-
ни декомпозиции пронумерованы с нулевого по N-й
K1
Ki
Ki+1 Ki+2 Ki+j
Ki+j+1
Факуль Kz
Ki+j+n
25
Теоретичні та методологічні основи програмування
отражает номер узла при обходе дерева
сверху вниз слева направо. A
Символическое описание схемы де-
композиции имеет вид: C GBK1
DPS={K0[KR0] (K1[KR1] (…), Kr[KRr]
(…),…,Kz[KRz] (…))}.
U W
Кортежи листьев не содержат част-
ные схемы декомпозиции и синтетические
зависимости.
D
K
Схема декомпозиции
и канонический алгоритм
Схема декомпозиции в чистом виде
не является алгоритмом. Схема декомпо-
зиции показывает только принципиальную
возможность того, как можно выполнить
декомпозицию, но не описывает детально
порядок ее выполнения. Для того чтобы
процедура декомпозиции превратилась в
алгоритм, необходимо определить порядок
доступа к Р-данным и порядок их обработ-
ки (порядок реализации А-зависимостей).
В качестве примера на рис. 4, a по-
казана схема декомпозиции. В результате
выполненной декомпозиции получено N
частей. Дерево декомпозиции содержит
два узла, которым присущи С-свойства: U
и W. U = ∪ EN, W = ∪ FN. На рис. 4, б пока-
зана та же схема декомпозиции с прису-
щими ей А-зависимостями∗. С узлом K1
соотносятся А-зависимости U = α (C) и
G = γ (W). А с узлом K2 соотносится А-
зависимость F = β (E).
Реализация этой схемы заключается
в выполнении трех шагов.
А-зависимость U = α (C) – это син-
тетическая зависимость первого вида. Для
ее реализации необходимо использовать
алгоритм, показанный на рис. 2, б. Резуль-
тат выполнения этого алгоритма – Эл-
данное U = ∪ Ei, где i меняется от 1 до N.
А-зависимость F = β (E) – это ана-
литическая зависимость. Для ее реализа-
ции необходимо использовать алгоритм,
показанный на рис. 2, а. Результат выпол-
нения этого алгоритма – Эл-данное W = ∪
Fi, где i меняется от 1 до N. Каждое Эл-
данное Ei является исходным для вычисле-
∗ На рис. 4 и на некоторых следующих рисунках А-
зависимости соотносятся с ближайшими узлами,
расположенными выше.
ния Эл-данного Fi.
А-зависимость G = γ (W) – это син-
тетическая зависимость второго вида. Для
ее реализации необходимо использовать
алгоритм, показанный на рис. 2, в. Резуль-
тат выполнения этого алгоритма – Эл-
данное G. Для вычисления G было исполь-
зовано каждое Эл-данное Fi.
В процессе выполнения этих трех
шагов потребуется два раза возвращать
входные ленты в исходное положение.
Окончательно для реализации схемы де-
композиции и синтеза новых значений ис-
комых свойств потребуется три прохода.
Вычисления этих трех проходов можно
совместить и реализовать с помощью ал-
горитма, показанный на рис. 5. В алгорит-
ме с каждым продвижением ленты на одну
FE2
а
K1
K2
F= β (E)
U = α C( ) G = γ (W)
б
Рис. 4. Схема декомпозиции:
а – структура свойств объекта;
б – контур синтеза свойств объекта
26
Теоретичні та методологічні основи програмування
Направление движения лент
ячейку выполняются три операции:
• вычисляется Эл-данное Ei и за-
писывается в ячейку i;
• вычисляется Эл-данное Fi и за-
писывается в ячейку i;
• выполняется формирование С-
данного G.
Вслед за формированием экземпля-
ра EN формируется экземпляр FN и завер-
шается формирование Эл-данного G.
Эта вычислительная процедура на-
зывается алгоритмом реализации DS. По-
следний демонстрирует алгоритмическую
природу DS в традиционном для програм-
мирования смысле. Алгоритм реализации
DS называется также каноническим алго-
ритмом.
Перечень всех А-зависимостей, со-
ставленный в процессе обхода дерева де-
композиции сверху вниз и слева направо,
называется контуром синтеза свойств объ-
екта или просто контуром синтеза. В усло-
виях предыдущего примера контур синте-
за представляет собой перечень названий
А-зависимостей: U = α (C); F = β (E);
G = γ (W) или α -› β -› γ. С учетом этого
определения имеет место следующее ут-
верждение: “Канонический алгоритм реа-
лизует КС”.
Реальные схемы декомпозиции име-
ют произвольное количество уровней де-
композиции, как правило, более двух. С
каждым узлом соотносится произвольное
количество А-зависимостей. Из А-
зависимостей разных уровней могут быть
составлены цепочки трех разных видов.
Цепочки первого вида состоят из синтети-
ческих зависимостей первого вида. Они
описывают процедуру декомпозиции объ-
екта или его частей и процедуры вычисле-
ний свойств включаемых компонент на
основании свойств включающих их частей
объекта. Цепочки второго вида состоят из
синтетических зависимостей второго вида.
Они описывают процедуру синтеза
свойств частей объекта или самого объекта
на основании свойств включаемых компо-
нент. Цепочки третьего вида включают А-
зависимости между Эл-свойствами одного
узла дерева DS. Из цепочек этих трех ви-
дов как из фрагментов и составляется КС
любой схемы декомпозиции.
То, что DS имеют много уровней
декомпозиции (рис. 6, а) предполагает, что
С-данные могут содержать в качестве ком-
понент другие С-данные (рис. 6, б). Вло-
женность групп С-данных может быть
произвольной. Обработка вложенных
групп С-данных в каноническом алгоритме
порождает повторения вычислений, кото-
рые тоже вложенные друг в друга. Вло-
женные повторения вычислений изобра-
жаются в традиционных строчных языках
программирования с помощью вложенных
циклов (рис. 6, в, г). Тот факт, что повто-
рения (и соответственно циклы) могут
быть вложенными, тоже изображается де-
ревом (рис. 6, д). Так называемое дерево
Рис. 5. Алгоритм, реализующий полную схему декомпозиции одного уровня
E1 F1
C
En FnE2 F2
α
Входная лента
Ei Fi··· ···
Процессор
β γ
Q
G Выходная лента
27
Теоретичні та методологічні основи програмування
циклов. DO WHILE …
Именно дерево циклов – основной
каркас большинства прикладных реальных
алгоритмов. Именно дерево циклов явля-
ется существенным фактором сложности
алгоритмов. Двумерный древовидный граф
с десятками узлов вполне может быть раз-
мещен на листе бумаги формата А4 или на
экране дисплея. А соответствующая этому
графу программа, даже если из нее извлечь
функциональность, займет в несколько раз
больше пространства. Понятийная емкость
дерева циклов и контура синтеза, как атри-
бутов теории DS, и есть преимуществом
этой теории.
DO WHILE …
Схемы декомпозиции могут порож-
дать также альтернативы, которые отра-
жаются в каноническом алгоритме. Суще-
ствование альтернатив обусловлено тем,
что DS может содержать части разных ти-
пов, которые являются компонентами од-
ной и той же включающей их части
объекта.
Канонический алгоритм определя-
ется как теоретическое, так и практическое
явление, но он отличается от алгоритмов,
существующих в реальном программном
обеспечении. Это обусловлено тем, что в
Q
R
P
а
R1
1
Rn
1
R2
1
···
Q1
R1
2
Rn
2
Q2
···
R1
m
Rn
m
R2
m
···
Qm
б
Рис. 6. DS и традиционные алгоритмические
языки:
а – соподчиненность С-данных;
б – вложенность С-данных на входной
ленте;
в – вложенные циклы для обработка С-
данных, записанные с помощью алгоритмиче-
ского языка структурного типа;
г – вложенные циклы для обработка С-
данных, записанные с помощью коболоподоб-
ного алгоритмического языка;
д – графическое изображение вложенных
циклов
END
END
Тело цикла.
Об
Тело цикла.
Об… работка R работка Q
в
10. PERFORM 20 UNTIL
*Тело цикла. Обработка Q
20. PERFORM 30 UNTIL …
*Тело цикла. Обработка R
30. …
г
Обработка P 10
Обработка Q 20
Обработка R 30
д
28
Теоретичні та методологічні основи програмування
реальных алгоритмах реализовано множе-
ство факторов связанных с конкретной вы-
числительной средой, с размещением дан-
ных и доступом к данным. Канонический
алгоритм никаким образом не связан с ка-
ким-либо конкретным компьютером и с
какой-либо конкретной вычислительной
средой.
Алгоритмически релевантные
факторы
От DS на бумаге или в сознании до
конкретной прикладной программы долж-
ны быть сделаны ряд шагов. Эти шаги
должны адаптировать канонический алго-
ритм к реальным условиям обработки дан-
ных.
Причины этого следующие:
• алгоритмическая модель может
быть сложной из-за того, что входных
лент∗ может быть более одной. Также и
выходных лент может быть более одной;
• размер реальных С-данных, как
правило, не совпадает с размерами ячеек
на входных и на выходных лентах. Из-за
этого необходимо включать в алгоритм
блоки форматирования С-данных;
• модель последовательного дос-
тупа к С-данным самая простая. В практи-
ке электронной обработки данных есть бо-
лее сложные методы доступа к данным;
• С-данные могут поступать не с
ленты, а в режиме ONLINE от различных
датчиков или в режиме диалога;
• С-данные могут быть выданы не
только на ленту, но на монитор, на различ-
ные управляющие устройства;
• С-данные при размещении мо-
гут кодироваться, упаковываться и т. п.
Кроме этих причин существуют и
другие. Каждая из перечисленных причин
порождает группу факторов, которые воз-
действуют на канонический алгоритм. Эти
факторы называются алгоритмически ре-
левантными факторами. Для их реализа-
ции в канонический алгоритм добавляются
∗ Входная лента это прототип или идеальный образ
любого машиночитаемого носителя информации с
последовательным доступом. Это также прототип
потока любого вида транзакций, сообщений или
входных сигналов.
алгоритмические конструкции. Из-за это-
го алгоритм усложняется и становится бо-
лее тяжелым для понимания. Канониче-
ский алгоритм может превратиться в ре-
альную программу только после того, как
будут учтены и реализованы все группы
факторов, обусловленные конкретной вы-
числительной средой. Каждая группа фак-
торов влечет свой набор алгоритмических
конструкций или свой алгоритмический
слой, который накладывается на канониче-
ский алгоритм. Это так называемые адап-
тационные слои.
Схема декомпозиции, как и канони-
ческий алгоритм, являются инвариантом,
неизменяющимся ядром прикладной про-
граммы с точки зрения условий реализа-
ции этой программы в различных средах
вычислений. Схема декомпозиции и кано-
нический алгоритм остаются неизменными
независимо от того, на каком языке реали-
зована программа, под управлением какой
операционной системы выполняется про-
грамма, под управлением какой СУБД
происходит доступ к данным.
Схема декомпозиции и канониче-
ский алгоритм порождают в анализе и про-
ектировании те трудности, которые назва-
ны Бруксом [11] существенными (essence).
Программирование адаптационных слоев
порождает трудности ненаследуемые [11]
или привносимые (accidents) в программ-
ное обеспечение.
В некоторых случаях схема деком-
позиции может быть изображена только
деревом, узлы которого нагружены име-
нами С-данных. Этот граф можно назвать
структурой данных∗. Если С-данные раз-
мещены на одной входной ленте и на од-
ной выходной, а также известен порядок
их размещения на лентах, то этих сведений
достаточно, чтобы восстановить дерево
циклов программы, которая будет обраба-
тывать эти данные. То есть, с определен-
ными оговорками можно утверждать сле-
дующее: “Используя структуру данных
можно построить структуру программы”.
Эта идея и есть концептуальной основой
метода проектирования программ по
структуре данных [3 – 7]. Идея и сущность
∗ Этот термин не является атрибутом DS-теории.
29
Теоретичні та методологічні основи програмування
этого метода есть частный случай или ча-
стный результат DS-теории.
Любой канонический алгоритм мо-
жет быть реализован в виде прикладной
программы, но далеко не каждая реально
существующая прикладная программа яв-
ляется реализацией канонического алго-
ритма. Если попытаться снять с какой-
либо реальной прикладной программы все
адаптационные слои, то может оказаться,
что программа реализует, либо только
часть канонического алгоритма, либо
только некоторую его компоненту. Воз-
можна также и другая ситуация. После ос-
вобождения канонического алгоритма от
адаптационных слоев может оказаться, что
канонический алгоритм является комбина-
цией нескольких более простых канониче-
ских алгоритмов.
Операции над алгоритмами
В DS-теории исследуются различ-
ные манипуляции или операции со схема-
ми декомпозиции, которые в определен-
ных условиях являются исчислением алго-
ритмов. Ниже приведено короткое описа-
ние некоторых из этих операций над схе-
мами.
1. Дополнение DS (рис. 7).
Эта операция значит, что в процессе
исследования (проектирования) объекта
есть необходимость сделать более глубо-
кую декомпозицию. Возможная причина –
в результате декомпозиции будет достиг-
нута более высокая точность расчетов.
В результате этой операции заме-
нен один фрагмент КС на другой, вследст-
вие чего КС стала более длинной:
КС была: f1 -› g1 -› h1 -› f2 -› g2 -› h2.
КС стала: f1 -› g1 -› h1 -› f2 -› l1 -› m1
-› n1 -› h2.
В дереве декомпозиции появилось
больше узлов и больше уровней.
2. Усечение DS (рис. 8).
Эта операция значит, что в уже су-
ществующей схеме декомпозиции в узле 3
между Р-свойствами найдена приемлемая
аналитическая зависимость g6, которая по-
зволяет сделать расчет другим образом, и
нет необходимости делать более глубокую
декомпозицию.
В результате этой операции заме-
нен один фрагмент КС на другой, вследст-
вие чего КС стала короче:
КС была: f1 -› g1 -› h1 -› f2 -› f5 -› g5
-› h5 -› h2 -› f3 -› g3 -› h3.
КС стала: f1 -› g1 -› h1 -› f2 -› g6 -› h2
-› f3 -› g3 -› h3.
3. Синтез DS (рис. 9).
Эта операция значит, что в процессе
расчета по КС в первом дереве возникла
необходимость одновременно выполнить
ещё одну расчетную процедуру.
Рис. 7. Дополнение дерева DS
1
2 3
1 1 +
f1
g1
h1
f2
g2
h2
=
2 2 3
h2
f1n1l1 f2
h1
g1
4
m1 l1 n1
m1
30
Теоретичні та методологічні основи програмування
В этой операции должно выпол-
няться условие: результаты декомпозиции
(количество частей) по схемам f2 и l1,
должны быть одинаковы.
Операция имеет два варианта:
а) аналитические зависимости g1 и
m1 каким-то образом связаны. Тогда в КС
появится суперпозиция этих зависимостей
g2 α (m1) или m1 β (g2).
КС была: f1 -› f2 -› g2 -› h2 -› h1.
КС стала: f1 -› f2 -› g2 α (m1) {или m1
β (g2)} -› (h2, n1) -› h1.
б) аналитические зависимости g1 и
m1 не связаны одна с другой. Тогда в КС
они просто будут перечислены рядом в
произвольном порядке.
Исходная КС была: f1 -› f2 -› g2 -› h2
-› h1.
Дополнительная КС есть: l1 -› m1 -›
n1 .
КС как результат синтеза стала: f1 -›
f2 -› ( g2, m1 ) -› ( h2, n1 ) -› h1 .
Рис. 8. Усечение DS
1
2 3
1
2
=- 1
f1
g1
h1
f2
h2
f5 h5
g5
4
f5 h5
g5
5
g3
f3
h3
2 3
f1
g1
h1
f2
h2
4
h3
f3
g3
g6
1* 1 1 =
Рис. 9. Синтез DS (вариант б)
2
3
2
f1 h1
f2 h2
l1 n1
m1
2
f1 h1
3
f2 h2n1
g2m1
g2
31
Теоретичні та методологічні основи програмування
Генерация алгоритмов
DS-теория создает предпосылки для
генерации алгоритмов (не машинного ко-
да). Исходными данными для генерации
выступает схема декомпозиции, соответст-
вующий ей канонический алгоритм, а так-
же кортежи описания узлов и кортежи
описаний алгоритмически релевантных
факторов. Каждый из кортежей соотносит-
ся с узлом дерева DS. Сгенерированный
алгоритм может быть использован как ис-
ходные данные для генерации машинного
кода.
Направление исследований
с точки зрения DS-теории
В настоящее время есть несколько
направлений дальнейшего развития DS-
теории. Первое – изучение типологии схем
декомпозиции и их компонент. Второе –
это исследование алгоритмически реле-
вантных факторов и анализ их влияния на
канонический алгоритм. Третье – проекти-
рование процедур генерации алгоритмов.
В каждом из направлений продвижение
может быть планомерным, прогнозируе-
мым и обозримым. Планомерность иссле-
дований реальна, несмотря на то, что сово-
купность всех реальных алгоритмов и про-
грамм, существующих в настоящее время,
во всех прикладных областях может пока-
заться необозримым. Объясняется это сле-
дующим образом.
С точки зрения DS-теории множе-
ство алгоритмов означает множество схем
декомпозиции представленных деревом.
Каждая схема имеет произвольное количе-
ство ребер и узлов. Алгоритмически реле-
вантные факторы влияют на алгоритмы
одного узла и (или) на смежные с ним –
предшественник или потомок. Алгоритми-
чески релевантных факторов ограниченное
количество. Их влияние на узлы практиче-
ски одинаково, независимо от того, где в
схеме находится узел. Также ограничено
количество типов узлов. То есть, исследу-
ются и анализируются только узлы дерева
и их модификации. А количество узлов, их
типов и их модификаций существенно
меньше, по сравнению с количеством де-
ревьев, составленных из этих узлов. То
есть, DS-теория позволяет изучать вместо
неограниченного количества реально и по-
тенциально существующего множества
алгоритмов ограниченное количество ал-
горитмических объектов, значительно бо-
лее простых, чем реальные прикладные
алгоритмы. DS-теория позволяет также
проектировать эти конструкции и манипу-
лировать ими не интуитивно, а логически
обосновано, даже рутинно.
Выводы
В статье описана схема декомпози-
ции и ее атрибуты. Введены понятия ква-
лификационного предложения, свойства-
совокупности, алгоритмической зависимо-
сти и контура синтеза. Показана алгорит-
мическая природа схемы. Схема декомпо-
зиции рассматривается как основное поня-
тие DS-теории. DS-теория рассматривается
как прототип теории алгоритмов для со-
временного программного обеспечения.
Вводится понятие канонического алгорит-
ма как одной из теоретических моделей
DS-теории. Описываются операции над
схемами декомпозиции. Показана возмож-
ность использовать при проектировании
алгоритмов древовидные двумерные гра-
фы вместо строчной буквенной записи.
Кратко описано существование различия
между каноническим алгоритмом и реаль-
ными прикладными алгоритмами.
1. Ivar Jacobson and Bertrand Meyer. Methods
Need Theory. Dr. Dobb's Journal, 6 August
2009.
2. Victor R. Basili. The role of experimentation
in software engineering: past, current, and fu-
ture. Proceedings of the Eighteenth Interna-
tional Conference on Software Engineering
(ICSE), Berlin, Germany, March 1996.
3. Jackson, M.A. Principles of Program Design.
New York: Academic Press, 1975.
4. Warnier J. –D. Logical Construction of Pro-
grams. Leiden: H.E. Stenfert Kroese B.V.,
1975.
32
Теоретичні та методологічні основи програмування
5. Вельбицкий И.В. Технология программиро-
вания. – Киев: Технiка, 1984. – 250 с.
6. Колесник В.Г. Совместная обработка фай-
лов и иерархических баз данных в услови-
ях применения метода Джексона.
– Донецк: ИЭП АН УССР, 1988. – 16 с.
7. Колесник В.Г. Концептуальная основа ме-
тода программирования по структуре дан-
ных (знаний). – Краматорск, 1986. – 22 с.
Деп. В УКРНИИНТИ 6.06.88, № 1409.
8. Edmund M. Clarke, Jeannette M. Wing, Et Al.
Formal Methods: State of the Art and Future
Directions // ACM Computing Surveys. –
1996.– V. 28, N 28.– P. 626– 643.
9. Бэкус Дж. Можно ли освободить програм-
мирование от стиля фон Неймана? Функ-
циональный стиль и соответствующая ал-
гебра программ. – Лекции лауреатов пре-
мии Тьюринга: пер. с англ. / Под ред.
Р. Эшенхерста. М.: Мир, 1993. –
С. 84– 158.
10. Марка Д., Макгоуэн К. Методология струк-
турного анализа и проектирования (SADT),
Пер. с англ., МетаТехнология. –.М., 1993. –
240 с.
11. Brooks Frederick P., No Silver Bullet:
Essence and Accidents of Software Engineer-
ing // Computer. – 1987. – V. 20., N. 4.–
P. 10– 19.
Получено 26.04.2011
Об авторе:
Колесник Валерий Георгиевич,
старший научный сотрудник
кафедры АПП.
Место работы автора:
Донбасская государственная
машиностроительная академия.
г. Краматорск, ул. Шкадинова, 72, п/я 13.
33
|