#----
# Проекты, научно-исследовательские и конструкторские разработки, НИОКР:

# Атомные электростанции:
    # РЕКОМЕНДАЦИИ ПО РАСЧЕТУ НОРМАТИВА ТРУДОЕМКОСТИ ПРОЕКТИРОВАНИЯ
    # http://aquagroup.ru/normdocs/7105
    # По данным ГСАЭП трудоемкость выполнения 1 листа (формат А1) -- 3,5 чел.дн (28 нормо-часов)
    # Тогда количество выпущенных листов формата А1 должно быть -- 227 273 (6.4 млн. нормо-часов)

# Баллистические ракеты:
    # http://rocketpolk44.narod.ru/satana/non.htm
    # Твердотопливная РТ-1 (1959-1963 годы); 600 человек:
    # Эскизный проект -- 10 месяцев
    # Стендовые испытания -- 18 месяцев
    # Лётно-конструкторские испытания -- 28 месяцев
    # Первый пуск на полигоне -- 34 месяца
    # Первый успешный пуск -- 40 месяцев
    # Всего: 300 * 40 * 20 * 8 = 2 920 000 (2 млн. нормо-часов)

#----
# Программное обеспечение:

# Для оценки стоимости разработки подойдёт модель COCOMO:
# https://ru.wikipedia.org/wiki/COCOMO
# Пример использования, ядро Linux (2004 год):
# https://www.dwheeler.com/essays/linux-kernel-cost.html
# sloccount -- утилита для Linux:
# https://www.dwheeler.com/sloccount/sloccount.html#cocomo
# Онлайн-версия (модель COCOMO2):
# http://csse.usc.edu/tools/COCOMOII.php
# База данных свободных программ:
# https://www.openhub.net/p/linux/estimated_cost

# Встроенные системы, 4 млн. строк кода: 3.6*4000^1.2 = 75 644 человеко-месяцев.
# Встроенные системы, 4 млн. строк кода: 3.6*4000^1.2*20*8 = 12 103 040 человеко-часов.

# Для небольших коммерческих программ затраты времени завышаются втрое:
# Простая программа, 36 тыс. строк кода: 2.4*(36)^1.05*20*8 = 16 536 человеко-часов.
# На деле около 5 600 часов:
# https://habrahabr.ru/company/infopulse/blog/134719/

metadict_model['Linux (2017-03-26)'] = {
        # 15 000 000 строк кода
        'KLOC':15000,
        'Трудоёмкость (пони-месяцев)':3 * 15000 ** 1.12 * 1.55,
        'Срок разработки (месяцев)':2.5 * (3 * 15000 ** 1.12 * 1.55) ** 0.35,
        'Число разработчиков':(3 * 15000 ** 1.12 * 1.55) / (2.5 * (3 * 15000 ** 1.12 * 1.55) ** 0.35),
        }

metadict_model['Операционная система'] = {
        'Ядро операционной системы':1,
        'Основные утилиты':200,
        'Библиотеки':500,
        'Приложения':10000,
        }

metadict_model['Ядро операционной системы'] = {
        # 4 000 000 строк кода
        'KLOC':4000,
        'Трудоёмкость (пони-месяцев)':3.6 * 4000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 4000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 4000 ** 1.2 * 2.2) / (2.5 * (3.6 * 4000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Основные утилиты'] = {
        'KLOC':20,
        'Трудоёмкость (пони-месяцев)':3 * 20 ** 1.12,
        'Срок разработки (месяцев)':2.5 * (3 * 20 ** 1.12) ** 0.35,
        'Число разработчиков':(3 * 20 ** 1.12) / (2.5 * (3 * 20 ** 1.12) ** 0.35),
        }

metadict_model['Библиотеки'] = {
        'KLOC':20,
        'Трудоёмкость (пони-месяцев)':3 * 20 ** 1.12,
        'Срок разработки (месяцев)':2.5 * (3 * 20 ** 1.12) ** 0.35,
        'Число разработчиков':(3 * 20 ** 1.12) / (2.5 * (3 * 20 ** 1.12) ** 0.35),
        }

metadict_model['Приложения'] = {
        'KLOC':30,
        'Трудоёмкость (пони-месяцев)':2.4 * 30 ** 1.05,
        'Срок разработки (месяцев)':2.5 * (2.4 * 30 ** 1.05) ** 0.38,
        'Число разработчиков':(2.4 * 30 ** 1.05) / (2.5 * (2.4 * 30 ** 1.05) ** 0.38),
        }

metadict_model['Объединённая система управления вооружёнными силами'] = {
        'Автоматическая система управления':1,
        'Военные ERP-системы':300,
        }

metadict_model['Автоматическая система управления вооружёнными силами'] = {
        'KLOC':15000,
        'Трудоёмкость (пони-месяцев)':3.6 * 15000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 15000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 15000 ** 1.2 * 2.2) / (2.5 * (3.6 * 15000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Военные ERP-системы'] = {
        'KLOC':100,
        'Трудоёмкость (пони-месяцев)':3.6 * 100 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 100 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 100 ** 1.2 * 2.2) / (2.5 * (3.6 * 100 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Программное обеспечение эсминца'] = {
        'KLOC':6000,
        'Трудоёмкость (пони-месяцев)':3.6 * 6000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 6000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 6000 ** 1.2 * 2.2) / (2.5 * (3.6 * 6000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Программное обеспечение истребителя'] = {
        'KLOC':2000,
        'Трудоёмкость (пони-месяцев)':3.6 * 2000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 2000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 2000 ** 1.2 * 2.2) / (2.5 * (3.6 * 2000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Программное обеспечение боевого робота'] = {
        'KLOC':2000,
        'Трудоёмкость (пони-месяцев)':3.6 * 2000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 2000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 2000 ** 1.2 * 2.2) / (2.5 * (3.6 * 2000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Программное обеспечение танка'] = {
        'KLOC':1000,
        'Трудоёмкость (пони-месяцев)':3.6 * 1000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 1000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 1000 ** 1.2 * 2.2) / (2.5 * (3.6 * 1000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Программное обеспечение экзоскелета'] = {
        'KLOC':500,
        'Трудоёмкость (пони-месяцев)':3.6 * 1000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 1000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 1000 ** 1.2 * 2.2) / (2.5 * (3.6 * 1000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Программное обеспечение спутника'] = {
        'KLOC':1000,
        'Трудоёмкость (пони-месяцев)':3.6 * 1000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 1000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 1000 ** 1.2 * 2.2) / (2.5 * (3.6 * 1000 ** 1.2 * 2.2) ** 0.32),
        }

#----
# Проектирование:

# Составляющие стоимости техники (на примере автомобилей):
# http://www.srtclub.ru/vb/showthread.php?t=4606
# 20% -- себестоимость (до 27.7% по госплану СССР 1970-х годов)
    # 10% -- детали
    # 10% -- сборка (конвейерная)
# 20% -- научные исследования и разработки
# 20% -- маркетинг и реклама
# 40% -- бренд, налоги, сборы, риски, потери, рентабельность
    # рентабельность Автоваз 1970-х годов 12.2%

# Стоимость НИОКР (2013 год):
# Китайский легковой автомобиль -- 100 млн. евро
# Легковой автомобиль -- 1 млрд. евро (100 дней)
# Внедорожник -- 2 млрд. евро

# Более точные данные:
# COMPARISON OF INDIRECT COST MULTIPLIERS FOR VEHICLE MANUFACTURING
# http://msl1.mit.edu/classes/esd123/vyas.pdf

# НОРМ ВРЕМЕНИ ДЛЯ РАСЧЕТА ОБЪЕМА УЧЕБНОЙ РАБОТЫ И ОСНОВНЫХ ВИДОВ УЧЕБНО-МЕТОДИЧЕСКОЙ, НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ И ДРУГИХ РАБОТ:
# http://www.libussr.ru/doc_ussr/usr_13346.htm
# НА РАЗРАБОТКУ КОНСТРУКТОРСКОЙ ДОКУМЕНТАЦИИ
# http://www.libussr.ru/doc_ussr/usr_13220.htm

# Недостаточно данных для COSYSMO, придётся использовать метод функциональных точек и модель COCOMO.
# Деталь = функция = лист чертежа = страница конструкторской документации.

# НОРМЫ ВРЕМЕНИ НА КОНСТРУИРОВАНИЕ ПРИСПОСОБЛЕНИЙ:
# http://www.lawrussia.ru/texts/legal_213/doc213a186x165.htm
# МЕЖОТРАСЛЕВЫЕ УКРУПНЕННЫЕ НОРМАТИВЫ ВРЕМЕНИ НА РАЗРАБОТКУ КОНСТРУКТОРСКОЙ ДОКУМЕНТАЦИИ (УТВ. ПОСТАНОВЛЕНИЕМ МИНТРУДА СССР ОТ 14.11.1991 N 69)
# http://pravo.levonevsky.org/baza/soviet/sssr0014.htm

metadict_model['Лист чертежа формата А1 (АЭС)'] = {
        # KLOC (тысяча строк кода) = 100 листов проектной документации.
        'Трудоёмкость (нормо-часов)':28,
        }

metadict_model['Атомная электростанция (проект)'] = {
        # Показатели трудоемкости для выполнения рабочей документации:
        # https://znaytovar.ru/gost/2/RekomendaciiRekomendacii_po_ra3.html
        # Комплекса сооружений АЭС мощностью 4000 МВт с реакторами Б8ЭР-1000 (ВВЭР-1000?)
        'KLOC-f':3000,
        'Трудоёмкость (пони-месяцев)':3.6 * 3000 ** 1.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 3000 ** 1.2) ** 0.32,
        'Число разработчиков':(3.6 * 3000 ** 1.2) / (2.5 * (3.6 * 3000 ** 1.2) ** 0.32),
        }

metadict_model['Лёгкое колёсное шасси (проект)'] = {
        # https://ru.wikipedia.org/wiki/КамАЗ-5350
        'KLOC-f':5000,
        'Трудоёмкость (пони-месяцев)':3.6 * 5000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 5000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 5000 ** 1.2 * 2.2) / (2.5 * (3.6 * 5000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Лёгкое колёсное шасси (проект)'] = {
        # https://ru.wikipedia.org/wiki/КамАЗ-5350
        'KLOC-f':5000,
        'Трудоёмкость (пони-месяцев)':3.6 * 5000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 5000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 5000 ** 1.2 * 2.2) / (2.5 * (3.6 * 5000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Тяжёлое гусеничное шасси (проект)'] = {
        'KLOC-f':10000,
        'Трудоёмкость (пони-месяцев)':3.6 * 10000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 10000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 10000 ** 1.2 * 2.2) / (2.5 * (3.6 * 10000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['Спутниковая платформа (проект)'] = {
        'KLOC-f':15000,
        'Трудоёмкость (пони-месяцев)':3.6 * 15000 ** 1.2 * 2.2,
        'Срок разработки (месяцев)':2.5 * (3.6 * 15000 ** 1.2 * 2.2) ** 0.32,
        'Число разработчиков':(3.6 * 15000 ** 1.2 * 2.2) / (2.5 * (3.6 * 15000 ** 1.2 * 2.2) ** 0.32),
        }

metadict_model['KLOC-f'] = {
        '-Страниц проектной документации':100,
        }

#----
# Проектирование инженерных сооружений (оценочно):
    # ВРЕМЕННЫЕ НОРМЫ ПРОДОЛЖИТЕЛЬНОСТИ ПРОЕКТИРОВАНИЯ СН 283-64 (заводы, фабрики, города):
    # http://www.snip-info.ru/Sn_283-64.htm
    # МРР 3.1.10.02-04 Нормы продолжительности проектирования объектов строительства в городе Москве
    # https://znaytovar.ru/gost/2/MRR_31100204_Normy_prodolzhite.html
    # Проектирование железной дороги:
    # https://znaytovar.ru/gost/2/SBCSpravochnik_bazovyx_cen_na_13.html
    # Уровень цен 01.01.1995 года (средняя зарплата 1900 рублей/час, миллион = 500 нормо-часов):

metadict_model['Тоннель (проектирование) (километр)'] = {
        # Однопутный тоннель, протяженностью от 0.4 до 1 км — 160 млн. рублей (84 тыс. нормо-часов)
        # Двухпутный тоннель, протяженностью от 0.4 до 1 км — 312 млн. рублей (164 тыс. нормо-часов)
        'Работа проектного бюро (нормо-часов)':84000,
        }

metadict_model['Мост до 25 метров (проектирование) (объект)'] = {
        # Однопутный железнодорожный мост полной длиной до 25 м — 9 млн. рублей (4700 нормо-часов)
        # Автодорожный пешеходный мост полной длиной до 25 м — 11 млн. рублей (5800 нормо-часов)
        'Работа проектного бюро (нормо-часов)':5800,
        }

metadict_model['Мост 25-100 метров (проектирование) (метр)'] = {
        # св. 25 до 100 — 4-14 млн. рублей/метр (2-7 тыс. нормо-часов)
        'Работа проектного бюро (нормо-часов)':2000,
        }

metadict_model['Мост 100-800 метров (проектирование) (метр)'] = {
        # св. 100 до 800 — 8-11 млн. рублей/метр (4-6 тыс. нормо-часов)
        'Работа проектного бюро (нормо-часов)':4000,
        }

metadict_model['Мост свыше 800 метров (проектирование) (метр)'] = {
        # св. 800 — 60-96 млн. рублей/метр (32-50 тыс. нормо-часов)
        'Работа проектного бюро (нормо-часов)':32000,
        }

metadict_model['Железная дорога (проектирование) (километр)'] = {
        # Новая ветка от 100 до 300 километров — 2-4 млн. рублей/километр (1600 нормо-часов)
        'Работа проектного бюро (нормо-часов)':1600,
        }

metadict_model['Автомобильная дорога (проектирование) (километр)'] = {
        # Протяжение дороги до 2 км — 19-43 млн. рублей (10-23 тыс. нормо-часов)
        # св. 2 до 5 км — 14-28 млн. рублей/км (7-15 тыс. нормо-часов)
        'Работа проектного бюро (нормо-часов)':10000,
        }

metadict_model['Автомагистраль (проектирование) (километр)'] = {
        # св. 20 до 50 — 32-71 млн. рублей/км (17-37 тыс. нормо-часов)
        'Работа проектного бюро (нормо-часов)':40000,
        }

#----
# Коррекция величин:
# Исправить.

metadict_model['Трудоёмкость (пони-месяцев)'] = {
        # 152 человеко-часа в месяце, это стандарт COCOMO
        'Трудоёмкость (нормо-часов)':152,
        }

#metadict_model['Трудоёмкость (нормо-часов)'] = {
#        'Зарплата программиста (бит)':40,
#        }

metadict_model['Зарплата программиста (бит)'] = {
        '---Стоимость отряда':1,
#        '---Ожидаемые расходы':2.5,
        }

metadict_model['Срок разработки (месяцев)'] = {
        'Срок разработки (лет)':0.08333333,
        }

#metadict_model['Число разработчиков'] = {
#        }

metadict_model['KLOC'] = {
        '-Строк кода (млн)':0.001,
        }
