Есть ли Java-эквивалент MISRA C? - PullRequest
7 голосов
/ 19 мая 2011

В некоторых языках есть правила / лучшие практики / и т.д. которые способствуют безопасности программного обеспечения, обеспечивают ожидаемое поведение во время выполнения и т. д. На ум приходят MISRA для C / C ++ и профиль Ravenscar для Ada. Как правило, в вашем коде возникает ощущение нечеткости, если в нем указано, что оно соответствует этим стандартам. Есть ли такой стандарт для Java?

Ответы [ 5 ]

6 голосов
/ 19 мая 2011

Я не думаю, что есть что-то вроде лучших практик MISRA C / C ++ для Java, и я думаю, что это также менее необходимо для такого языка, как Java, потому что в нем не так много углов неопределенного или неопределенного поведения, какC и C ++ есть.Такие особенности, как отсутствие явных указателей в Java и тот факт, что границы индексов массивов всегда проверяются средой выполнения, делают Java более безопасным языком, чем C или C ++.

Существует общий стандарт кодирования, который в большинстве Javaкажется, что разработчики следуют: Соглашениям о коде для языка программирования Java , но это скорее руководство по стилю, чем руководство по передовым практикам.

Существует несколько хороших и хорошо известных статических анализов кодаинструменты для Java: FindBugs и PMD , например, которые проверят ваш код на наличие потенциально опасных конструкций или плохих практик.

Если вы хотите узнать о потенциальных ловушкахв Java рекомендуется две книги: Эффективная Java и Java Puzzlers .

2 голосов
/ 27 сентября 2012

В настоящее время нет ни MISRA Java, ни ближайших планов по его созданию.

Эта тема несколько раз обсуждалась Техническим советом MISRA, но при отсутствии какого-либо требования (и / или волонтеров работать над ним) это вряд ли произойдет.

Обновление: шесть лет спустя ...

Этот вопрос задавался несколько раз на конференциях, на которых я выступал, обычно при широкой поддержке аудитории. Я всегда отвечаю, спрашивая аудиторию, кто добровольно станет частью комитета ... который заставляет комнату замолчать: (

TL; DR: Если появятся достаточное количество добровольцев, мы сделаем это!

[Опубликовано в личном качестве, хотя и членом Технического совета MISRA]

1 голос
/ 13 ноября 2014

SEI CERT:

Рекомендации по кодированию Java включают рекомендуемые методы безопасного программирования в среде платформы Java Standard Edition 7.Эта работа еще не завершена, и мы активно ищем ваши отзывы и участие в успешной работе.Мы благодарим и благодарим всех участников.

https://www.securecoding.cert.org/confluence/display/jg/Java+Coding+Guidelines

0 голосов
/ 07 августа 2013

Для тех, кто следует этой теме, существует инициатива Open Safety Critical JAVA (oSCJ), которая определяет подмножество языка JAVA для приложений, критичных для безопасности (JSR-302).http://jcp.org/en/jsr/detail?id=302

0 голосов
/ 05 ноября 2012

Есть книга под названием «Код завершен». Это написано программистом, который работал в Microsoft, а также обладает знаниями в профессиональной разработке программного обеспечения с использованием 2/3 различных языков высокого уровня. Я пользуюсь этой книгой помимо MISRA C ++. Code Complete - это не зависящая от языка книга, которая поможет вам сформировать профессиональную практику разработки программного обеспечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...