О74цетехнические и социальные проблемы
материаловедении и экономики : сб. научн. статей; ред. проф. Л. Б. Сватовская. - Вып. 5. - СПб. : ПГУПС, 2005. - С. 89.
6. Физическая химия твердого тела. Кристаллы с дефектами : учебник для хим.-технол. спец. вузов / П. В. Ковтуненко. - М. : Высшая школа, 1993. - 352 с. - ISBN 506-002175-0.
Статья поступила в редакцию 13.04.2010.
УДК 004.052.42
А. В. Тырва
МЕТОДИКА ЗАДАНИЯ ИСХОДНЫХ ДАННЫХ ДЛЯ МОДЕЛЕЙ НАДЁЖНОСТИ ПРОГРАММНЫХ СРЕДСТВ ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
Выполнен сравнительный анализ моделей надежности программных средств. Особое внимание уделено используемым в моделях исходным данным, предположениям и области применения моделей. Приведено описание предлагаемой модели надёжности на основе нестационарной системы обслуживания. Описана методика задания исходных данных для моделирования.
надёжность программных средств, моделирование, подготовка исходных данных.
Введение
На железнодорожном транспорте используется широкий набор специализированных программных средств (ПС), участвующих в оперативном управлении технологическими процессами, работой станций, системой сетевого документооборота и делопроизводства, а также ПС для технико-экономических расчетов и многие другие.
Задача обеспечения надежности ПС, используемых на железнодорожном транспорте, является важной и актуальной.
С обеспечением надежности ПС связаны процессы измерения, оценивания и предсказания надежности. Для количественного оценивания и предсказания надежности ПС могут использоваться модели надежности. Они позволяют выразить показатели надежности (вероятность безотказной работы, наработка на отказ, вероятность отсутствия ошибок) через известные параметры (интенсивности отказов, метрики сложности и др.). При определении пригодности той или иной модели важным вопросом является соответствие решаемой задаче предположений, использованных в
ISSN 1815-588 Х. Известия ПГУПС
2010/2
Общетехнические и социальные проблемы
275
модели, а также пригодность модели на рассматриваемом этапе жизненного цикла. Другим важным вопросом, возникающим при практическом применении моделей надежности, является вопрос сбора и подготовки исходных данных.
1 Обзор моделей надёжности программных средств
Большинство существующих моделей используют предположение об экспоненциальном характере распределения интервалов времени между обнаружением программных ошибок и о конечном числе ошибок. Большинство моделей не определяют вид времени функционирования (календарное или оперативное), хотя модель Мусы использует два вида времени.
В качестве исходных данных для моделирования используется последовательность интервалов времени между обнаружением ошибок либо последовательность числа обнаруженных ошибок за периоды времени. Эти данные могут быть собраны в процессе выполнения программных проектов и использованы для моделирования на этапе тестирования и отладки или для моделирования будущих аналогичных проектов на начальных этапах жизненного цикла - проектирования, реализации.
Исторически одной из первых была предложена модель Джелинского-Моранды. В модели используется предположение о том, что интервалы времени между моментами обнаружения ошибок распределены по экспоненциальному закону с интенсивностью X(t), пропорциональной числу невыявленных ошибок. То есть интенсивность обнаружения ошибок X(t) постоянна на интервале времени между обнаружением i-й и (i+1 )-й ошибок и равна:
X(t) = ф(Х - / +1),
где ф - коэффициент пропорциональности;
N - общее число ошибок.
Входными данными для модели является последовательность интервалов времени между обнаружением программных ошибок X1, X2, ..., Xn -независимые экспоненциально распределенные случайные величины со средним значением 1/ф(Х-i+1). Предполагается, что обнаруженная ошибка сразу исправляется. Ошибки обнаруживаются независимо друг от друга.
В геометрической модели Моранды используется предположение об экспоненциальном распределении интервалов времени между обнаружением последовательных программных ошибок с интенсивностью, зависимость которой от количества остающихся в программе ошибок имеет вид геометрической прогрессии:
ISSN 1815-588 Х. Известия ПГУПС
2010/2
0б6цетехнические и социальные проблемы
4t) = DV~\
где D, ф - константы, параметры модели, 0 < ф <1.
Другой вариант геометрической модели Моранды предполагает изменение интенсивностей обнаружения ошибок через равные промежутки времени, а не в момент обнаружения очередной ошибки.
Предположение о пропорциональной зависимости интенсивности обнаружения ошибок от количества ошибок, остающихся неисправленными, используется в модели Шумана. Данная модель также содержит зависимость интенсивности обнаружения ошибок от скорости исполнения команд и числа команд в программе. Масштабная переменная модели учитывает, что структура программы (например, циклы) может приводить к повторениям последовательностей команд и ошибки вне этой последовательности не проявляются.
В модели Шика-Волвертона используется предположение о пропорциональной зависимости интенсивности обнаружения i-й ошибки от количества неисправленных ошибок и длительности отладки t:
X(t) = $(N — i + l)t,
где ф - коэффициент пропорциональности;
N - общее число ошибок.
Временные интервалы между обнаружением ошибок распределены по рэлеевскому закону.
Модель Липова является обобщением моделей Джелинского-Моранды и Шика-Волвертона. Модель допускает обнаружение в течение интервала ti более одной ошибки. Интенсивность обнаружения ошибок пропорциональна числу ошибок, не исправленных по истечении (i-1)-го интервала времени, суммарному времени тестирования и среднему времени поиска ошибок в текущем интервале времени:
где
суммарное время тестирования до истечения (i-1)-го
интервала времени.
Модель Вейбулла определяет следующий вид зависимости интенсивности обнаружения ошибок от числа неисправленных ошибок:
l(t) = mkmtm~\
где m, X - параметры модели, 0 < m < 1.
Модель Мусы относится к классу экспоненциальных, то есть предполагает экспоненциальное распределение времени обнаружения отказов. При этом в модели используются два вида времени
ISSN 1815-588 Х. Известия ПГУПС
2010/2
Общетехнические и социальные проблемы
277
функционирования: суммарное время тестирования и отладки вплоть до контрольного момента, когда производится оценка надежности программы, и оперативное время исполнения программы, планируемое от контрольного момента. Число устраненных ошибок n за время отладки т определяется следующим образом:
Ст
n = N( 1-е вд),
где N - общее число программных ошибок;
Мо - общее число ошибок, которые могут проявиться при отладке;
То - средняя наработка на отказ в начале отладки;
C - коэффициент сжатия тестов.
В модели Литтлвуда интервалы времени между последовательным обнаружением ошибок распределены по экспоненциальному закону. Интенсивность предполагается случайным процессом, описываемым гамма-распределением. Одним из параметров модели является вид функции y(i), отражающей квалификацию программистов и сложность задачи (чем быстрее растет данная функция, тем быстрее растет надежность ПС).
Кроме приведенных, широко известны и другие экспоненциальные модели, а также модели, использующие для описания длительностей интервалов времени между обнаружением ошибок более общие законы распределения: Вейбулла, гамма и другие [1], [2].
Описанные выше модели относятся к классу непрерывных динамических аналитических моделей. Также были разработаны модели, учитывающие архитектуру ПС. Например, в модели Чунга-Смагина [3] для анализа надежности ПС представляется в виде совокупности программных компонент (модулей). Для каждого модуля определяются значения показателей надежности, после чего рассчитывается надежность всего ПС. В этом случае каждый модуль ПС представляет собой аналог элемента расчета теории надежности. Данная модель позволяет решить и обратную задачу - планирование испытаний с целью повышения надежности.
В [4] предложены варианты использования данной модели для различных видов архитектуры: отказоустойчивых ПС с резервированием, с последовательным и параллельным вызовом модулей, с клиент-серверной архитектурой; в [5] предложен вариант повышения эффективности планирования испытаний путем учета в качестве факторов влияния на надежность всего ПС не только показателей надежности каждого модуля, но и его среднего времени работы.
Помимо этих моделей, в научной литературе предлагались и другие подходы к моделированию надежности ПС. В частности, разработан ряд
ISSN 1815-588 Х. Известия ПГУПС
2010/2
ОЯ&цетехнические и социальные проблемы
статических и эмпирических моделей, позволяющих вычислять показатели надежности на основе программных метрик.
Модель посева ошибок, разработанная Миллсом, предполагает внесение псевдоошибок в исходные коды программ. Затем на основе процентной доли обнаруженных известных ошибок модель позволяет делать вывод о количестве скрытых фактических программных ошибок. Недостатком этой модели является предположение о том, что внесенные и реальные ошибки имеют одинаковое распределение и вероятность нахождения, что не подтверждается на практике. Модель Миллса была развита моделями Базина и Липова, которые учитывали несовершенность процесса обнаружения дефектов. Однако данные модели по-прежнему сложно использовать на практике, так как требуются дополнительные трудозатраты на внесение и поиск новых ошибок. При этом модели не позволяют получать динамические характеристики надежности.
Анализ существующих подходов к моделированию надежности показывает, что общим является предположение о зависимости интенсивности отказов (обнаружения ошибок) от количества неисправленных программных ошибок (или номера текущей обнаруженной ошибки). Различные модели предлагают разные виды такой зависимости: пропорциональную, геометрическую, в виде условного гамма-распределения и другие. Это представляет сложность при практическом использовании моделей, так как требуется проводить расчеты для нахождения параметров нескольких моделей, а затем выбирать ту, которая ближе к исходным данным. Таким образом, существует задача разработки обобщенной модели, снимающей ограничения на вид зависимости интенсивности обнаружения и устранения ошибок от номера текущей ошибки.
Другим недостатком множества существующих моделей является ряд используемых упрощений, которые ограничивают их применение для моделирования процесса отладки программ. Например, модель Джелинского-Моранды и множество подобных моделей не учитывают время, которое затрачивается на устранение найденных программных ошибок.
Предположение об экспоненциальном (или другом) законе распределения временных интервалов обнаружения ошибок также представляется ограничением указанных моделей, так как не позволяет использовать их для оценки и прогноза надежности программных проектов с более общими распределениями потока обнаружения (и устранения) ошибок.
2 Модель надежности программных средств на основе нестационарной системы обслуживания
ISSN 1815-588 Х. Известия ПГУПС
2010/2
Общетехнические и социальные проблемы
279
Для преодоления указанных недостатков рассмотренных моделей надежности ПС предложена модель надежности на основе модели нестационарных систем обслуживания [6]. В предлагаемой модели используется допущение об экспоненциальном распределении длительностей интервалов между обнаружением и исправлением последовательных ошибок. Однако в отличие от названных выше моделей не накладывается ограничений на вид зависимости интенсивностей обнаружения и устранения ошибок от номера ошибки (количества еще не исправленных ошибок в программе). Кроме того, как показано в [6], на основе данной модели могут быть построены более общие модели, не ограниченные предположением об экспоненциальном виде распределения времени обнаружения и устранения ошибок.
Модель имеет следующие параметры:
N — общее число ошибок в программе;
Хк - интенсивность обнаружения к-й ошибки, к = 1, ..., N;
Рк — интенсивность исправления к-й ошибки, к = 1, ., N.
Происходит последовательное обнаружение N программных ошибок, распределение длительностей интервалов между моментами обнаружения
ошибок — экспоненциальное с интенсивностями (Ху Х2, ..., Xn}, зависящими от номера ошибки. Распределение времени исправления ошибок — экспоненциальное с интенсивностями (р^ р2, ..., pN}, также зависящими от номера ошибки.
Такая система может быть представлена цепью Маркова с дискретным множеством состояний и непрерывным временем. Состояния системы в каждый момент времени характеризуются парой (i, j), где i -число обнаруженных, но еще не исправленных ошибок (i = 0, ..., N), а j -число уже исправленных ошибок (j = 0, ..., N — i). Вероятности пребывания системы в этих состояниях обозначим через Pjt). В таком представлении система будет иметь конечное число состояний. Обозначим ее как систему обслуживания типа M(i)/M(j)/N.
Переход из состояния (i, j) в состояние (i+1, j) означает, что при тестировании была обнаружена (i+j+ty-я ошибка. Переход из состояния (i, j) в состояние (i— 1, j+1) означает, что была исправлена (/+1)-я ошибка.
Рассматриваемая модель описывается системой линейных дифференциальных уравнений [6]. Задав начальные условия к системе в виде
ISSN 1815-588 Х. Известия ПГУПС
2010/2
£8Йцетехнические и социальные проблемы
можно найти численное решение соответствующей задачи Коши для произвольного значения t. Используя полученные решения, можно рассчитать характеристики надежности ПС: вероятность безотказной работы, вероятность отсутствия ошибок и др.
3 Определение исходных данных для расчета надёжности программных средств
При выборе модели надежности необходимо учитывать следующие критерии. Во-первых, этап жизненного цикла ПС, на котором выполняется моделирование. Например, многие модели можно применять на этапе тестирования, используя уже собранные сведения о длительности интервалов времени между отказами и продолжительности отладки. Однако при использовании исторических данных те же модели можно использовать и на более ранних этапах.
Необходимо располагать требуемыми для моделирования исходными данными. Так, для моделей, не учитывающих структуру ПС (модели «черного ящика»), требуется, например, вид распределения интервалов времени между отказами и интенсивности отказов. Для моделей на основе архитектуры ПС требуется, кроме того, информация о количестве модулей, среднем времени их исполнения, вероятностях переходов между ними.
Для выбора наилучшей среди тех моделей, которые соответствуют этапу жизненного цикла и требуемым исходным данным, можно использовать критерий Акайке. Данный критерий является эвристической попыткой свести в один показатель два требования: уменьшение числа параметров модели и близость модели к исходным данным. Согласно этому критерию, из двух моделей следует выбрать модель с наименьшим значением информационного критерия Акайке [7].
При использовании моделей надежности на этапе тестирования в качестве исходных данных могут использоваться те сведения об ошибках, которые получены за время испытаний до момента моделирования. Результатом моделирования с использованием моделей, описанных в разделе 1, в этом случае будет оценка общего числа программных ошибок и времени до нахождения очередной ошибки.
При использовании моделей надежности на более ранних этапах, когда статистика обнаружения и устранения ошибок недоступна, возникает проблема отсутствия исходных данных для моделирования. В этом случае могут использоваться данные, которые были собраны при разработке завершенных ранее проектов. Такая статистика должна быть скорректирована с учетом различия между проектами. Например, в зависимости от квалификации программистов и тестировщиков, возможностей используемых средств разработки и тестирования, сложности проекта собранные временные характеристики процесса поиска
ISSN 1815-588 Х. Известия ПГУПС
2010/2
Общетехнические и социальные проблемы
281
и устранения ошибок могут быть скорректированы в большую или меньшую сторону.
В любом случае оценка, полученная на этапе проектирования, ввиду отсутствия объективных данных о проекте будет хоть и не точной, однако достаточно важной, так как будет получена в самом начале жизненного цикла ПС, когда цена внесения изменений в проект не столь высока, как на последующих этапах жизненного цикла.
Далее предлагается методика определения исходных данных для построения модели, описанной в разделе 2. Пусть при разработке уже завершенного проекта (1-й проект) была собрана статистика временных характеристик процессов поиска и устранения программных ошибок, которая используется для моделирования надежности другого проекта на ранних этапах жизненного цикла (2-го проекта).
Пусть в процессе разработки 1 -го проекта была собрана следующая статистика о процессах обнаружения и устранения программных ошибок: общее количество ошибок длительности интервалов времени
обнаружения ошибок t/1^, i=1, ..., и длительности интервалов
времени устранения ошибок fi11, i=1, ., N1.
Известны данные о структуре ПС 1-го проекта: оно состоит из fi11 классов, и для каждого класса собраны значения объектноориентированных метрик сложности набора Чидамбера (длина пути иерархии наследования, количество классов-наследников, количество классов, использующих данный класс в качестве поля, параметров методов, локальных переменных, а также другие метрики, подробно описанные в [8]—[10].
Для каждого класса на основе значений объектно-ориентированных метрик сложности рассчитана вероятность наличия в нем ошибки п/1^ i = 1, ..., N01, с использованием подхода, предложенного в статьях [8], [10]:
Tit(pr) =
1 + е
1
'I' II' V ' ’
(11
где xj - значение j-й объектно-ориентированной метрики сложности набора Чидамбера, j = 1, ., S, для i-го класса, i = 1, ., Z^1;
S - количество используемых объектно-ориентированных метрик сложности набора Чидамбера;
Pj - параметры логистической регрессии, которые определяются по методу максимального правдоподобия исходя из статистики влияния сложности классов на их надежность (см. [8], [10]);
pr — номер проекта.
ISSN 1815-588 Х. Известия ПГУПС
2010/2
(ЗШцетехнические и социальные проблемы
Рассчитанные вероятности п/1^, i — 1, ..., Z1^, используются для вычисления ожидаемого количества ошибок П(1) как числа классов с оценкой вероятности наличия ошибки, превышающей некоторое пороговое значение h (например, h = 0,5):
(2)
где 5(к)
JU>0; [О, к< 0,
pr — номер проекта.
Если доступны только средние вероятности наличия ошибок в классе п, ожидаемое количество ошибок П(1) определяется как
П(рг) = л1(рг). (3)
Описанные выше данные о первом проекте используются для моделирования надежности 2-го проекта, для которого по результатам этапа проектирования известны общее число классов /2) и рассчитаны предполагаемые вероятности наличия ошибок в классах п/ , i = 1, ., N22. По формулам (1), (2) на основе значений п/2\ i — 1, ., рассчитывается величина П(2). Предполагается, что 1-й и 2-й проекты похожи, поэтому должно соблюдаться соотношение
П(1) _ П(2)
откуда получается предполагаемое количество ошибок в ПС 2-го проекта:
N(2)
тУ(1)П(2)
П(1)
(4)
Если N22 > N12, то для упрощения моделирования имеет смысл представить ПС 1 -го проекта в виде набора модулей, оценить надежность каждого модуля, а затем рассчитать показатели надежности всего ПС согласно модели Чунга-Смагина [3].
Если N22 < N12, то для построения модели 2-го проекта могут быть использованы следующие значения: общее количество ошибок N22 и длительности интервалов времени устранения ошибок f2) = ff12, i — 1, ., N22. Длительности интервалов времени обнаружения ошибок t/2) должны быть экспертно скорректированы относительно t(2 с учетом соотношения количества ошибок N^r) и объема ПС S^ (выраженного, например, в количестве строк кода). В простейшем случае, когда «плотность» ошибок в
ISSN 1815-588 Х. Известия ПГУПС
2010/2
Общетехнические и социальные проблемы
283
коде ПС обоих проектов равна, то есть для
моделирования 2-го проекта можно использовать t/2^=t/l\ i=1, ... , N22.
На основании этих данных находятся вероятности состояний модели надежности, описанной в разделе 2 (см. [6]) и рассчитываются показатели надежности, выполняется планирование и выбор стратегии испытаний ПС.
В качестве примера рассмотрим некоторые данные и выполним моделирование надежности ПС. В таблице приведены следующие данные по двум проектам: средние значения метрик сложности набора Чидамбера NAI - количество атрибутов классов, DIT - длина пути иерархии наследования, OCMEC - количество классов с параметрами методов типа данного класса, общее количество классов и Л \ В таблице приведены также средние вероятности наличия ошибки в классе п^, рассчитанные по формуле (1), и ожидаемые значения количества ошибок в программах П , рассчитанные по формулам (2), (3).
ТАБЛИЦА. Исходные данные для моделирования
Характеристика 1-й проект 2-й проект
NAI 6 4
DIT 0,4 0,2
OCMEC 4 3
12 9
0,93 0,70
П^ 11,16 7
Кроме того, известно, что в процессе испытаний 1-го проекта было найдено и исправлено N-1)=10 ошибок. Интервалы времени между обнаружением последовательных ошибок составляют: t/!) = 1,25 ч, t}^ = 1,32 ч, t3(X) = 1,39 ч, t}X) = 1,47 ч, t5{X) = 1,56 ч, t6(X) = 1,67 ч, t7(X) = 1,79 ч, t8(X) = 1,92 ч, t9(1 = 2,08 ч, tio(1) = 2,27 ч. Интервалы времени между исправлением последовательных ошибок://*-2,50 ч,/2{Х) = 2,63 ч,/3Х) = 2,78 ч,/}(1)=2,94 ч, /5(1)=3,14 ч, /б(1|=3,33 ч, /}']=3,57 ч, ,/(1)=3,85 ч, Д11 = 4,17 ч,/10(1)=4,55 ч.
На основе статистики, собранной при разработке 1 -го проекта, будет выполнено моделирование надежности 2-го проекта. Данные выбраны умозрительно и приведены с целью иллюстрации предлагаемой методики и модели надежности.
По формуле (4) получаем оценку числа ошибок во 2-м проекте:
N( 2) = НА = 6,27 «6.
11,16
Будем считать, что оба проекта выполнены одной группой разработчиков с использованием одинаковых технологий и средств
ISSN 1815-588 Х. Известия ПГУПС
2010/2
(ЖЩетехнические и социальные проблемы
разработки, поэтому можно ожидать, что «плотность» ошибок в коде ПС обоих проектов приблизительно равна. Тогда для моделирования надежности 2-го проекта будут использованы следующие данные: N22 = 6, интервалы времени между обнаружением ошибок t/2) = t/1^, i = 1, ..., N® , и интервалы времени между исправлением последовательных ошибок
f2) = f® i = 1, N®.
Эти данные используются для расчета показателей надежности ПС. Для примера на рисунке показан график зависимости вероятности безотказной работы в течение 10 ч от времени испытаний ПС 2-го проекта.
Вероятность безотказной работы
Заключение
Модели надежности ПС являются одним из средств их оценки и повышения надежности. Было предложено большое количество вероятностных моделей, наиболее известны из которых модели Джелинского-Моранды, Мусы, Липова, Чунга-Смагина и др. Возможности этих моделей могут быть расширены предложенной моделью надежности на основе нестационарной системы обслуживания.
ISSN 1815-588 Х. Известия ПГУПС
2010/2
Общетехнические и социальные проблемы
285
Модели надежности ПС могут использоваться для расчета показателей надежности (вероятность безотказной работы, вероятность исправления всех ошибок, средняя наработка на отказ), планирования испытаний ПС, выбора стратегии отладки и сроков завершения проекта.
Важным вопросом практического применения моделей является подготовка исходных данных. Эта задача особенно актуальна при моделировании на ранних этапах жизненного цикла. Исходные данные (общее количество ошибок и временные характеристики процессов их поиска и устранения) могут быть получены с использованием объектноориентированных метрик сложности и статистики, собранной при разработке похожих программных проектов.
ISSN 1815-588 Х. Известия ПГУПС
2010/2
(Збщетехнические и социальные проблемы
Библиографический список
1. Handbook of Software Reliability Engineering / M. R. Lyu. - McGraw Hill, 1996. - 819 p. - ISBN 0-0703-9400-8.
2. Надежность аппаратно-программных комплексов : учеб. пособие /
Г. Н. Черкесов. - СПб. : Питер, 2005. - 479 c. - ISBN 5-469-00102-4.
3. Прямая и обратная задачи надежности сложных программных комплексов /
B. В. Кузнецов, В. А. Смагин // Надежность и контроль качества. - 1997. - № 10. -
C. 56-62.
4. An Architecture-Based Software Reliability Model / W.-L. Wang, Y. Wu, M.-H. Chen // Proceedings Of Pacific Rim International Symposium on Dependable Computing. - 1999. - Р. 143-150.
5. Метод планирования тестирования сложных программных комплексов на этапах проектирования и разработки / А. В. Тырва, А. Д. Хомоненко // Научнотехнические ведомости СПбГПУ. - 2009. - № 4 (82). - С. 125-131.
6. Разработка динамических моделей нестационарных систем обслуживания / В. П. Бубнов, В. И. Сафонов. - СПб. : Лань, 1999. - 64 c. - ISBN 5-8114-0194-9.
7. Software Reliability Model Selection: A Case Study / Т. М. Khoshgoftaar, T. G. Woodcock // Proceedings оf International Symposium on Software Reliability Engineering. - 1991. - Р. 183-191.
8. A validation of object-oriented design metrics as quality indicators / V. R. Basili, L. C. Briand, W. L. Melo // IEEE Transactions on Software Engineering. - 1996. - V. 22, Is. 10. - Р. 751-761.
9. A metrics suite for object oriented design / S. R. Chidamber, C. F. Kemerer // IEEE Transactions on Software Engineering. - 1994. - V. 20, Is. 6. - Р. 476-493.
10. The prediction of faulty classes using object-oriented design metrics / K. El-Emam, W. Melo, J. C. Machado // Journal of Systems and Software. - 2001. - V. 56, N 1. -Р. 63-75.
Статья поступила в редакцию 12.04.2010;
представлена к публикации членом редколлегии А. А. Корниенко.
УДК 574
М. В. Шершнева, Ю. Е. Пузанова, В. Я. Соловьева
ГЕОЭКОЛОГИЧЕСКИЙ АСПЕКТ ИСПОЛЬЗОВАНИЯ КАЛЬЦИЙСОДЕРЖАЩИХ СТРОИТЕЛЬНЫХ ОТХОДОВ
В работе исследован геозащитный резерв кальцийсодержащих строительных отходов по отношению к ионам тяжелых металлов. Представлена количественная характеристика геозащитного резерва по поглотительной емкости веществ.
ISSN 1815-588 Х. Известия ПГУПС
2010/2