private RangeFeature[] SeedSoftwareDevEnvironments()
 {
     RangeFeature[] environments =
     {
         new RangeFeature("PHP/JavaScript",          category),
         new RangeFeature("Perl/Ruby/Python",        category),
         new RangeFeature("C++/C#/Java/Objective-C", category),
         new RangeFeature("ASM",                     category)
     };
     dbContext.AddRange(environments);
     return(environments);
 }
        private RangeFeatureCategory[] SeedRangeFeatureCategories()
        {
            RangeFeatureCategory[] rangeFeatureCategories =
            {
                new RangeFeatureCategory("Среда разработки"),
                new RangeFeatureCategory("Количество сущностей БД"),
                new RangeFeatureCategory("Количество точек на плате")
            };

            dbContext.AddRange(rangeFeatureCategories);
            return(rangeFeatureCategories);
        }
        private void SeedDbDevLaborVolumeRanges(DevelopmentLabor[] dbLabors, RangeFeature[] dbEntityCountRanges)
        {
            RangeFeature _0_10  = dbEntityCountRanges[0];
            RangeFeature _10_30 = dbEntityCountRanges[1];
            RangeFeature _30_50 = dbEntityCountRanges[2];

            var labors = new DevelopmentLaborsContainer(dbLabors);

            var rb = new DevelopmentLaborVolumeRangeBuilder();

            LaborVolumeRange[] dbDevLaborVolumeRanges =
            {
                rb.SetLabor(labors[901]).Create(_0_10,   0.0, 0.5),
                rb.Create(_10_30,                        0.0, 0.5),
                rb.Create(_30_50,                       1.0),

                rb.SetLabor(labors[902]).Create(_0_10,   0.0, 0.5),
                rb.Create(_10_30,                        0.0, 0.5),
                rb.Create(_30_50,                       1.0),

                rb.SetLabor(labors[903]).Create(_0_10,   0.0, 0.5),
                rb.Create(_10_30,                       1.0),
                rb.Create(_30_50,                        1.0, 1.5),

                rb.SetLabor(labors[904]).Create(_0_10,   0.0, 0.5),
                rb.Create(_10_30,                        0.5, 1.0),
                rb.Create(_30_50,                       1.0),

                rb.SetLabor(labors[1001]).Create(_0_10,  0.5, 1.0),
                rb.Create(_10_30,                        0.5, 1.0),
                rb.Create(_30_50,                        1.0, 1.5),

                rb.SetLabor(labors[1002]).Create(_0_10, 1.0),
                rb.Create(_10_30,                       1.0),
                rb.Create(_30_50,                        1.5, 2.0),
            };
            dbContext.AddRange(dbDevLaborVolumeRanges);
        }
Example #4
0
        private void SeedNirStageDefaultLabors(StageForNir[] nirStages, NirLabor[] nirLabors)
        {
            NirLabor getLabor(string code)
            {
                return(nirLabors.First(l => l.Code == code));
            }

            var nslb = new NirStageDefaultLaborsBuilder(nirStages[0]);

            NirStageDefaultLabor[] nirStageDefaultLabors = new NirStageDefaultLabor[] {
                nslb.Create(getLabor("5")),
                nslb.Create(getLabor("6")),
                nslb.Create(getLabor("1")),
                nslb.Create(getLabor("2")),
                nslb.Create(getLabor("9")),
                nslb.Create(getLabor("25")),
                nslb.Create(getLabor("29"))
            };
            dbContext.AddRange(nirStageDefaultLabors);
        }
Example #5
0
        public DevLaborCategorySeeds Initialize()
        {
            Categories = new DevelopmentLaborCategory[]
            {
                new DevelopmentLaborCategory(1, "Обработка входных потоков"),
                new DevelopmentLaborCategory(2, "Управление ПО"),
                new DevelopmentLaborCategory(3, "Выходные потоки"),
                new DevelopmentLaborCategory(4, "Специальные функции обработки данных"),
                new DevelopmentLaborCategory(5, "Взаимодействие со сторонними ПО"),
                new DevelopmentLaborCategory(6, "Взаимодействие с внешним оборудованием"),
                new DevelopmentLaborCategory(7, "Сетевой взаимодействие"),
                new DevelopmentLaborCategory(8, "Архитектура компоненты"),
                new DevelopmentLaborCategory(9, "Создание базы данных"),
                new DevelopmentLaborCategory(10, "Функционирование базы данных"),
                new DevelopmentLaborCategory(11, "Разработка печатной платы")
            };
            dbContext.AddRange(Categories);

            return(this);
        }
Example #6
0
        public void Initialize()
        {
            var rb = new CorrectionRatesBundleBuilder();

            CorrectionRatesBundle[] ratesBundles =
            {
                rb.Create(1,                          "Веб-ориентированный проект с алалогичным решением",
                          solutionInnovationRates[3], standardModulesUsingRates[2],                                                                                    infrastructureComplexityRates[0],  architectureComplexityRates[10], testsDevelopmentRates[0],  bundle => bundle.TestsDevelopmentRateValue = 1.0
                          ),
                rb.Create(2,                          "Веб-ориентированный проект с аналогичным решением, предназначенный для размещения в сети Интернет",
                          solutionInnovationRates[3], standardModulesUsingRates[2],                                                                                    infrastructureComplexityRates[1],  architectureComplexityRates[10], testsDevelopmentRates[17], bundle => bundle.TestsDevelopmentRateValue = 1.58
                          ),
                rb.Create(3,                          "Типовое клиент-серверное решение с взаимодействием множества объектов",
                          solutionInnovationRates[2], standardModulesUsingRates[3],                                                                                    infrastructureComplexityRates[1],  architectureComplexityRates[6],  testsDevelopmentRates[9]
                          ),
                rb.Create(4,                          "Автоматизация работы сторонних программных средств на инфраструктуре виртуализации с необходимым тестированием",
                          solutionInnovationRates[1], standardModulesUsingRates[4],                                                                                    infrastructureComplexityRates[2],  architectureComplexityRates[6],  testsDevelopmentRates[1]
                          ),
                rb.Create(5,                          "Решение специальной задачи с высоким требованием безопасности разработки",
                          solutionInnovationRates[1], standardModulesUsingRates[4],                                                                                    infrastructureComplexityRates[3],  architectureComplexityRates[4],  testsDevelopmentRates[9]
                          ),
                rb.Create(6,                          "Решение специальной задачи с высоким требованием безопасности разработки и уровнем тестирования кода",
                          solutionInnovationRates[1], standardModulesUsingRates[4],                                                                                    infrastructureComplexityRates[3],  architectureComplexityRates[4],  testsDevelopmentRates[17], bundle => bundle.TestsDevelopmentRateValue = 1.46
                          ),
                rb.Create(7,                          "Аппаратное решение типовой задачи",
                          solutionInnovationRates[2], standardModulesUsingRates[4],                                                                                    infrastructureComplexityRates[4],  architectureComplexityRates[0],  testsDevelopmentRates[9]
                          ),
                rb.Create(8,                          "Аппаратное решение с высокими требованиями к тестированию кода",
                          solutionInnovationRates[2], standardModulesUsingRates[4],                                                                                    infrastructureComplexityRates[4],  architectureComplexityRates[0],  testsDevelopmentRates[14]
                          ),
                rb.Create(9,                          "Модули, внедряемые в сторонние программные продукты",
                          solutionInnovationRates[1], standardModulesUsingRates[4],                                                                                    infrastructureComplexityRates[0],  architectureComplexityRates[0],  testsDevelopmentRates[28]
                          ),
                rb.Create(10,                         "Решение новой, алгоритмически сложной задачи с обработкой информации, передаваемой между сетевыми приложениями",
                          solutionInnovationRates[0], standardModulesUsingRates[4],                                                                                    infrastructureComplexityRates[1],  architectureComplexityRates[6],  testsDevelopmentRates[9]
                          )
            };
            dbContext.AddRange(ratesBundles);
        }
        public void Initialize()
        {
            var lb = new OntdLaborBuilder();

            OntdLabor[] labors =
            {
                lb.Create(1,  "Пояснительная записка технического проекта",                                0.05),
                lb.Create(2,  "Научно-технический отчет",                                                   0.01,   0.1),
                lb.Create(3,  "Пояснительная записка эскизного проекта",                                   0.04),
                lb.Create(4,  "Ведомость технического (эскизного) проекта",                               0.003),
                lb.Create(5,  "Чертеж (общего вида, сборочный, габаритный, монтажный, электромонтажный)",  0.043, 0.566),
                lb.Create(6,  "Электрическая схема",                                                       0.079, 0.767),
                lb.Create(7,  "Спецификация",                                                             0.001),
                lb.Create(8,  "Ведомость покупных изделий",                                               0.002),
                lb.Create(9,  "Технические условия",                                                      0.017),
                lb.Create(10, "Программа и методика испытаний",                                            0.02),
                lb.Create(11, "Документы эксплуатационные",                                               0.019),
                lb.Create(12, "Документы ремонтные",                                                      0.022),
                lb.Create(13, "Сопроводительное письмо",                                                  0.015),
                lb.Create(14, "Служебная записка, справка", 0.02)
            };
            dbContext.AddRange(labors);
        }
Example #8
0
        public SoftwareDevLaborGroupRateSeeds Initialize()
        {
            SolutionInnovationRate[] inoRates =
            {
                new SolutionInnovationRate("Разработка решения, предусматривающая применение принципиально новых методов разработки," +
                                           " проведение научно-исследовательских работ",                                             1.6),
                new SolutionInnovationRate("Разработка типовых проектных решений, оригитальных задач и систем, не имеющих аналогов", 1.3),
                new SolutionInnovationRate("Разработка проекта ис использование типовых проектных решений при условии их изменения", 1.1),
                new SolutionInnovationRate("Разработка проектов, имеющих аналогичные решения", 0.8)
            };
            dbContext.AddRange(inoRates);
            SolutionInnovationRates = inoRates;

            StandardModulesUsingRate[] smuRates =
            {
                new StandardModulesUsingRate("60-80%", 0.5),
                new StandardModulesUsingRate("40-60%", 0.6),
                new StandardModulesUsingRate("25-40%", 0.7),
                new StandardModulesUsingRate("20-25%", 0.8),
                new StandardModulesUsingRate("0-20%", 1)
            };
            dbContext.AddRange(smuRates);
            StandardModulesUsingRates = smuRates;

            InfrastructureComplexityRate[] infraRates =
            {
                new InfrastructureComplexityRate("Стандартная инфраструктура разработки",                                                        1),
                new InfrastructureComplexityRate("Инфраструктура, включающая сложные логические и сетевые взаимодействия либо " +
                                                 "взаимодействия большого числа элементов",                                                   1.25),
                new InfrastructureComplexityRate("Сложная виртуальная инфраструктура, содержащая взаимосвязанные виртуальные сети " +
                                                 "и средства автоматизации управлением виртуальными машинами",                                 1.4),
                new InfrastructureComplexityRate("Инфраструктура с повышенными требованиями безопасности, на всех этапах выполнения проекта, " +
                                                 "в том числе: обособление элементов, использование дополнительных средств защиты и т.д.",     1.6),
                new InfrastructureComplexityRate("Инфраструктура, включающая механическое взаимодействие элементов", 1.9)
            };
            dbContext.AddRange(infraRates);
            InfrastructureComplexityRates = infraRates;

            ComponentsMakroArchitecture[] makroArch =
            {
                new ComponentsMakroArchitecture("Процедурная",  1),
                new ComponentsMakroArchitecture("Асинхронная",  2),
                new ComponentsMakroArchitecture("Микроядерная", 3)
            };
            dbContext.AddRange(makroArch);

            ComponentsInteractionArchitecture[] interactArch =
            {
                new ComponentsInteractionArchitecture("Монолитная",                              1),
                new ComponentsInteractionArchitecture("N-звенная(в том числе клиент-серверная)", 2),
                new ComponentsInteractionArchitecture("Микросервисная",                          3),
                new ComponentsInteractionArchitecture("С общей распределенной памятью", 4)
            };
            dbContext.AddRange(interactArch);

            ArchitectureComplexityRate[] arcRates =
            {
                new ArchitectureComplexityRate(makroArch[0], interactArch[0], 1.15),
                new ArchitectureComplexityRate(makroArch[0], interactArch[1],  1.1),
                new ArchitectureComplexityRate(makroArch[0], interactArch[2],    1),
                new ArchitectureComplexityRate(makroArch[0], interactArch[3], 1.15),
                new ArchitectureComplexityRate(makroArch[1], interactArch[0],  1.1),
                new ArchitectureComplexityRate(makroArch[1], interactArch[1], 1.05),
                new ArchitectureComplexityRate(makroArch[1], interactArch[2],    1),
                new ArchitectureComplexityRate(makroArch[1], interactArch[3], 1.15),
                new ArchitectureComplexityRate(makroArch[2], interactArch[0],    1),
                new ArchitectureComplexityRate(makroArch[2], interactArch[1],    1),
                new ArchitectureComplexityRate(makroArch[2], interactArch[2],  0.9),
                new ArchitectureComplexityRate(makroArch[2], interactArch[3], 1.1)
            };
            dbContext.AddRange(arcRates);
            ArchitectureComplexityRates = arcRates;

            ComponentsMicroArchitecture[] microArch =
            {
                new ComponentsMicroArchitecture("Процедурная",              1),
                new ComponentsMicroArchitecture("Объектно-ориентированная", 2),
                new ComponentsMicroArchitecture("Функциональная",           3),
                new ComponentsMicroArchitecture("Смешанная", 4)
            };
            dbContext.AddRange(microArch);

            TestsScale[] testsScales =
            {
                new TestsScale("Модульное",      1),
                new TestsScale("Функциональное", 2),
                new TestsScale("Интеграционное", 3)
            };
            dbContext.AddRange(testsScales);

            TestsCoverageLevel[] testCovers =
            {
                new TestsCoverageLevel("0-40%",  1),
                new TestsCoverageLevel("40-60%", 2),
                new TestsCoverageLevel("60-80%", 3)
            };
            dbContext.AddRange(testCovers);


            TestsDevelopmentRateBuilder tdrb = new TestsDevelopmentRateBuilder(microArch[0], testsScales[0], testCovers[0]);

            TestsDevelopmentRate[] testDevRates =
            {
                tdrb.Create(1.1),
                tdrb.Create(testCovers[1],                                          1.2),
                tdrb.Create(testCovers[2],                                          1.5),
                tdrb.WithTestsScale(testsScales[1]).Create(testCovers[0],          1.05),
                tdrb.Create(testCovers[1],                                          1.1),
                tdrb.Create(testCovers[2],                                          1.3),
                tdrb.WithTestsScale(testsScales[2]).Create(testCovers[0],           1.2),
                tdrb.Create(testCovers[1],                                          1.3),
                tdrb.Create(testCovers[2],                                          1.6),

                tdrb.Create(microArch[1],                                testsScales[0], testCovers[0],    1),
                tdrb.Create(testCovers[1],                                         1.05),
                tdrb.Create(testCovers[2],                                          1.2),
                tdrb.WithTestsScale(testsScales[1]).Create(testCovers[0],          1.05),
                tdrb.Create(testCovers[1],                                          1.1),
                tdrb.Create(testCovers[2],                                          1.3),
                tdrb.WithTestsScale(testsScales[2]).Create(testCovers[0],           1.2),
                tdrb.Create(testCovers[1],                                          1.3),
                tdrb.Create(testCovers[2],                                          1.6),

                tdrb.Create(microArch[2],                                testsScales[0], testCovers[0],    1),
                tdrb.Create(testCovers[1],                                         1.05),
                tdrb.Create(testCovers[2],                                          1.2),
                tdrb.WithTestsScale(testsScales[1]).Create(testCovers[0],          1.05),
                tdrb.Create(testCovers[1],                                         1.05),
                tdrb.Create(testCovers[2],                                          1.2),
                tdrb.WithTestsScale(testsScales[2]).Create(testCovers[0],           1.2),
                tdrb.Create(testCovers[1],                                          1.3),
                tdrb.Create(testCovers[2],                                          1.6),

                tdrb.Create(microArch[3],                                testsScales[0], testCovers[0],  1.1),
                tdrb.Create(testCovers[1],                                          1.2),
                tdrb.Create(testCovers[2],                                          1.5),
                tdrb.WithTestsScale(testsScales[1]).Create(testCovers[0],           1.1),
                tdrb.Create(testCovers[1],                                          1.2),
                tdrb.Create(testCovers[2],                                          1.5),
                tdrb.WithTestsScale(testsScales[2]).Create(testCovers[0],           1.2),
                tdrb.Create(testCovers[1],                                          1.3),
                tdrb.Create(testCovers[2], 1.6)
            };
            dbContext.AddRange(testDevRates);
            TestsDevelopmentRates = testDevRates;

            return(this);
        }