ВВЕДЕНИЕ 7
1 Теоретические сведения 10
1.1 Формулировка проблемы распределения компонентов в серийной kиз n
системе 10
1.2 Укрупнённый алгоритм распределения компонентов в серийной kиз n
системе 11
1.3 Выводы к разделу 1 12
2 Проектирование программной реализации 13
2.1 Назначение и основные требования к проектируемому ресурсу 13
2.2 Обзор существующих средств для создания ПО для синтеза оптимального
состава МВПС 14
2.3 Формирование структуры исходных данных 14
2.4 Организация вывода результатов расчёта 14
2.5 Выводы к разделу 2 15
3 Программная реализация 16
3.1 Архитектура системы 16
3.2 Программная реализация системы 16
3.3 Выводы к разделу 3 17
4 Экономическое обоснование проекта 18
4.1 Выбор методики расчета трудоемкости программирования 18
4.2 Расчет сметы затрат на разработку программных средств 19
4.2.1 Расходы на оплату труда 20
4.2.2 Материальные затраты 22
4.2.3 Амортизация оборудования 25
4.2.4 Прочие расходы 25
4.3 Смета по проекту 27
4.4 Выводы об экономической эффективности 29
5 Эргономика 30
5.1 Производительность работы 30
5.2 Проблемы, возникающие на этапе разработки GUI 31
5.2.1 Учет особенностей устройств ввода/вывода информации 31
5.2.2 Организация ввода данных 32
5.3 Принципы реализации пользовательского интерфейса 32
5.4 Вывод к разделу 5 32
СПИСОК СОКРАЩЕНИЙ 33
ЗАКЛЮЧЕНИЕ 34
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 35
На сегодняшний день известны различные методы проектирования высоконадежного программного обеспечения [1-4]. Одним из наиболее перспективных подходов является мультиверсионное или N-версионное программирование (МВП или NVP), впервые предложенное А. Авизиенсом (A. Avizienis) и Л. Ченом (L. Chen) [5]. Он состоит в том, что в систему включается несколько программных компонент (версий), дублирующих друг друга по своему целевому назначению. Однако эти версии диверсифицированы, т.е. используют раз¬личные методы и алгоритмы для решения одних и тех же задач, они разрабатываются различными изолированными командами программистов с использованием различных языков программирования и средств разработки [2, 6]. Мультиверсионность исполнения программных компонент обеспечивает функционирование системы независимо от скрытых ошибок отдельных версий. Ключе¬вое преимущество мультиверсионного программирования состоит в том, что отказ системы может произойти только в случае сбоя существенного числа версий [7]. Версии подтверждают работу друг друга, что повышает достоверность получаемых результатов [8].
Мультиверсионное программирование предполагает, что возникновение сбоя в функционально эквивалентных версиях происходит в различных точках, благодаря чему сбои могут быть обнаружены и исправлены [9].
Использование модульного принципа на этапе технического проектирования связано с процессом оптимизации состава и взаимосвязей отдельных компонент мультиверсионных систем с целью достижения оптимальных характеристик, связанных с разработкой, отладкой и эксплуатацией систем [10].
Комплекс задач при выборе оптимальной структуры мультиверсионных программных систем включает выбор оптимального состава модулей и информационных массивов, а также структуры системы в целом, формализуемой в виде функциональной блок-схемы, с учетом заданных технико-экономических характеристик разрабатываемой системы.
Вопросы, связанные с оптимизацией структуры и состава мультиверсионных программных систем, рассмотрены в различных работах, где представ¬лены различные методы решения данной проблемы. Так Квасника и Квасника (Kvasnica и Kvasnica) в работе [11] используют псевдопараллельную оптимизацию для формирования структуры отказоустойчивого программного обеспечения (ПО) АСУ и ИУС, разработанного в соответствии с принципами мультиверсионного подхода. Они предлагают несколько процедур оптимизации, соответствующих особенностям наблюдаемой целевой функции.
Фам (Pham) для решения проблемы оптимизации стоимости мультиверсионных программных систем предлагает минимизирование ожидаемой стоимости МВПС с учётом необходимого уровня надёжности [12]. Он также решает проблему максимизации надёжности МВПО при заданных ограничениях на стоимость системы.
Избыточность повышает надёжность ПО, но вместе с тем увеличивает и его стоимость проектирования и разработки. В [13] Рао (Rao) и его коллеги представили бинарное решение целочисленного программирования для оптимизации избыточности в мультиверсионных программных системах.
Баскар (Bhaskar) и Кумар (Kumar) рассматривают вопросы, связанные с критичностью ошибок в мультиверсионной программной системе и стоимость их проявления. В своей работе [14] они предлагают модели для оптимальной временной реализации с учётом различных ограничений.
В работе [15] Капур (Kapur) и его коллеги предложили модель эффективности тестирования с учетом эффекта несовершенной отладки неисправностей и генерации ошибок. Кроме того, они также сформулировали задачу оптимального времени выпуска программного обеспечения для трёхверсионной программной системы под управлением нечёткой среды выполнения, а также обсуждали нечеткий метод оптимизации для решения задачи данного типа.
Возможно, наибольший вклад в решение проблемы оптимизации мультиверсионного программного обеспечения внесли Ямачи Х. (Yamachi H.), Ямамото Х. (Yamamoto H.) и Цужимура Ю. (Tsujimura Y.). Они сформулировали проблему проектирования оптимального состава МВПС, как двухкритериальную 0-1 нелинейную объектную модель целочисленного программирования, максимизирующую надёжность системы, вместе с тем минимизируя её стоимость [16-19]. Они решают проблему автоматизации путём использования многоцелевого генетического алгоритма, использующего представление случайных ключей для получения возможности эффективного генетического поиска и не общедоступности, а также вставки Парето, которая основана на разности между решениями Парето в процессе выбора [16-19].
В своих работах [20, 21] Ямачи Х. (Yamachi H.) и другие формулируют проблему проектирования МВПС, как многоцелевую проблему оптимизации по нахождению множества решений Парето. В работе [20] они предлагают алгоритм, который задействует метод поиска в ширину для нахождения решений Парето. В дальнейшем они предложили использовать метод ветвей и границ для нахождения множества решений Парето [21].
В данной работе рассматривается проблема максимизации надежности при ограничении на стоимость системы.
В данной дипломной работе был описан процесс создания экспертной системы, предназначенной для оптимального проектирования мультиверсионных программных систем и распределения компонентов внутри системы. А именно, были изучены теоретические аспекты данного вопроса и запрограммирован алгоритм решения приведённой выше проблемы.
Также в данной пояснительной записке описан процесс реализации дан¬ной системы: архитектура, структура данных.
Экономическое обоснование проекта и сведения об эргономике так же были представлены в данной пояснительной записке.
В ходе выполнения данного проекта мною были получены знания по работе с платформой .NET и Framework 4.5, а также знания по предметной области
1 Carzaniga, A., Mattavelli, A., Pezze, M.: Measuring Software Redundancy. In: 37th IEEE International Conference on Software Engineering (ICSE), pp.156-166,IEEE/ACM 2015
2 Popov, P., Stankovic, V., Strigini, L.: An Empirical Study of the Effective¬ness of “Forcing” Diversity Based on a Large Population of Diverse Programs. In 23rd IEEE International Symposium on Software Reliability Engineering (ISSRE), pp.41-50 2012
3 Salewski, F., Kowalewski, S.: Achieving highly reliable embedded software: An empirical evaluation of different approaches. In 26th International Conference on Computer Safety, Reliability, and Security, SAFECOMP, pp. 270-275, Nurem¬berg 2007
4 Son, H.S., Koo, S.R.: Software Reliability Improvement Techniques. Spring¬er Series in Reliability Engineering, 23, 105-120 2009
5 Avizienis, A., Chen, L.: On the implementation of N-version programming for software fault-tolerance during program execution. In Proc. IEEE Comput Soc Int Comput Software &Appl Conf, COMPSAC, pp. 149-155 1977.
6 Durmus, M.S., Eris, O., Yildirim, U., Soylemez, M.T.: A new bitwise voting strategy for safety-critical systems with binary decisions. Turkish Journal of Electri¬cal Engineering and Computer Sciences, 23 (5), pp. 1507-1521 2015
7 Kapur, P.K., Pham, H., Gupta, A., Jha, P.C.: Software Reliability Assessment with OR Applications. Springer-Verlag London Limited 2011
8 Latif-Shabgahi, G., Bass, J.M., Bennett, S.: A taxonomy for software voting algorithms used in safety-critical systems. IEEE Transactions on Reliability, 53, 319¬328. 2004
9 Sommerville, I.: Software engineering; Pearson; 9 edition, Addison- Wesley 2011
10 Kulyagin, V.A., Tsarev, R.Yu., Prokopenko, A.V., Nikiforov, A.Yu., Kovalev, I.V.: N-version design of fault-tolerant control software for communications satellite system. In International Siberian Conference on Control and Communi-cations (SIBCON), pp.1-5 2015
11 Kvasnica, P., Kvasnica, I.: Parallel modelling of fault-tolerant software sys¬tems. International Review on Computers and Software, 7 (2), pp. 621-625. 2012
12 Pham, H.: On the optimal design of N-version software systems subject to constraints. The Journal of Systems and Software, 27 (1), pp. 55-61. 1994
13 Rao, N.M., Goura, V.M.K.P., Roy, D.S., Mohanta, D.K.: A binary integer programming solution for optimal reliability of computer relaying software incorpo¬rating redundancy. In Proc. IEEE Recent Advances in Intelligent Computational Sys¬tems, RAICS, pp. 524-527 2011
14 Bhaskar, T., Kumar, U.D.: A cost model for N-version programming with imperfect debugging. Journal of the Operational Research Society, 57 (8), pp. 986¬994. 2006
15 Kapur, P.K., Gupta, A., Jha, P.C.: Reliability growth modeling and optimal release policy under fuzzy environment of an N-version programming system incor-porating the effect of fault removal efficiency. International Journal of Automation and Computing, 4 (4), pp. 369-379. 2007
16 Yamachi, H., Tsujimura, Y., Yamamoto, H.: Pareto distance-based MOGA for solving Bi-objective N-version program design problem. Advances in Soft Com¬puting, (AISC), pp. 412-422. 2005
17 Yamachi, H., Yamamoto, H., Tsujimura, Y.: Multiobjective evolutionary optimal design of N-version software system. Advances in Safety and Reliability - Proc. of the European Safety and Reliability Conference, ESREL, 2, pp. 2053¬2060. 2005
18 Yamachi, H., Tsujimura, Y., Yamamoto, H.: Evaluating the effectiveness of applying genetic algorithms for NVP system design. Journal of Japan Industrial Man-agement Association, 57 (2), pp. 112-119. 2006
19 Yamachi, H., Tsujimura, Y., Kambayashi, Y., Yamamoto, H.: Multi¬objective genetic algorithm for solving N-version program design problem. Reliabil¬ity Engineering and System Safety, 91 (9), pp. 1083-1094. 2006
20 Yamachi, H., Yamamoto, H., Tsujimura, Y., Kambayashi, Y.: Searching Pareto solutions of bi-objective NVP system design problem with breadth first search method. In Proc. 5th IEEE/ACIS Int. Conf. on Comput. and Info. Sci., ICIS, pp. 252¬258. 2006
21 Yamachi, H., Yamamoto, H., Tsujimura, Y., Kambayashi, Y.: An algorithm employing the branch-and-bound method to search for Pareto solutions of Bi¬objective NVP system design problems. Journal of Japan Industrial Management As¬sociation, 58 (1), pp. 44-53. 2007
22 Levitin, G.: Optimal structure of fault-tolerant software systems. Reliability Engineering and System Safety, 89 (3), pp. 286-295. 2005
23 Levitin, G., Ben-Haim, H.: Genetic algorithm in optimization of fault- tolerant software. Advances in Safety and Reliability - Proceedings of the European Safety and Reliability Conference, ESREL, 2, pp. 1259-1265. 2005
24 ГОСТ 34.003-90 Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения. Дата введ. 01.01.1992. М.: ИПК Издательство стандартов, 2009.
25 Джарратано Д., Райли Г. Экспертные системы: принципы разработки и программирования, 4-е издание.: Пер. с англ. - М.: ООО «И.Д. Вильямс», 2007. - 1152 с.
26 Гвоздева Т. В. Проектирование информационных систем : учеб. Пособие / Т. В. Гвоздева, Б. А. Баллод. - Ростов н/Д :Феникс, 2009. - 508 с. : ил.
27 Jon Galloway, Phil Haack, Brad Wilson, K. Scott Allen Professional ASP.NET MVC 4 // John Wiley &Sons, Inc. 2012.
28 .NET Framework 4. [Электронный ресурс] URL: http://msdn.microsoft.com/ru-ru/library/vstudio/w0x726c2%28v=vs.100%29.aspx(Дата обращения: 02.12.2015)
29 Нейгел Г., Ивьен Б., Глинн Д. C# 4.0 и платформа .NET 4 для профессионалов.: Пер. с англ. - М.: ООО «И. Д. Вильямс», 2011. - 1440 с.
30 О минимальном размере оплаты труда : федеральный закон от 19 июня 2000 г. № 82-ФЗ.
31 О введении новых систем оплаты труда: постановление Правительства РФ от 5 авг. 2008 г. N 583.
32 Производственный календарь на 2016 год. [Электронный ресурс] / URL: http://www.garant.ru/calendar/buhpravo/(Дата обращения: 15.03.2016)
33 Об утверждении разъяснения "О порядке начисления процентных надбавок к заработной плате лицам, работающим в районах Крайнего Севера, приравненных к ним местностях, в южных районах Восточной Сибири, Дальнего Востока, и коэффициентов (районных, за работу в высокогорных районах, за работу в пустынных и безводных местностях) : Постановление Минтруда РФ от 11 сент. 1995 г. N 49
34 Об установлении районного коэффициента к заработной плате : постановление Администрации Красноярского края от 21 авг. 1992 г. №311-П.
35 Налоговый кодекс Российской Федерации : федеральный закон от 05 авг. 2000 г. N 117-ФЗ.
36 О страховых взносах в Пенсионный фонд РФ, Фонд социального страхования РФ, Федеральный фонд обязательного медицинского страхования и территориальные фонды обязательного медицинского страхования : федеральный закон от 24 июля 2004г. №212-ФЗ.
37 О внесении изменений в отдельные законодательные акты Российской Федерации в связи с принятием федерального закона «Об обязательном медицинском страховании в Российской Федерации» : федеральный закон от 29 но- яб. 2010г. №313-ФЗ.
38 О страховых тарифах на обязательное социальное страхование от несчастных случаев на производстве и профессиональных заболеваний на 2012 год и на плановый период 2013 и 2014 годов : федеральный закон от 30 нояб. 2011 г. № 356-ФЗ.
39 ГОСТ Р 50948-2001 Средства отображения информации индивидуального пользования. Общие эргономические требования и требования безопасности. Взамен ГОСТ Р 50948-96. Дата введ. 01.07.2002. М.: Госстандарт России, 2006.
40 ГОСТ Р 50923-96 Дисплеи. Рабочее место оператора. Общие эргономические требования и требования к производственной среде. Методы измерения. Дата введ. 01.07.1997. М.: Госстандарт России, 2005.
41 ГОСТ Р ИСО 9241-1-2007 Эргономические требования к проведению офисных работ с использованием видеодисплейных терминалов (VDTs). Часть 1. Общее введение.
42 ГОСТ Р ИСО 9241-2-2009 Эргономические требования к проведению офисных работ с использованием видеодисплейных терминалов (VDT). Часть 2. Требования к производственному заданию.
43 ГОСТ Р ИСО 9241-11-2010 Эргономические требования к проведению офисных работ с использованием видеодисплейных терминалов (VDT). Часть 11. Руководство по обеспечению пригодности использования