Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Каков ваш опыт проверки программных моделей?
- Для каких типов приложений вы использовали проверку моделей ?
- Какой инструмент проверки модели вы использовали?
- Как бы вы суммировали свой опыт w/ этой техники, в частности, в оценке ее эффективности в обеспечении более высокого качества программного обеспечения?
В ходе моих исследований у меня была возможность использовать Spin, и это вызвало мое любопытство относительно того, сколько фактической проверки модели происходит и какую ценность получают организации из нее. В моем опыте работы я работал над бизнес-приложениями, где (естественно)нет никакого рассмотрения применения формальной проверки к логике. Я бы очень хотел узнать о SO людях, которые проверяют опыт и мысли по этому вопросу. Станет ли проверка моделей когда-нибудь более широко используемой развивающейся практикой, которую мы должны иметь в нашем инструментарии?
Я только что закончил класс по проверке моделей, и большие инструменты, которые мы использовали, были Spin и SMV . В конечном итоге мы использовали их для проверки свойств при распространенных проблемах синхронизации, и я обнаружил, что SMV немного проще в использовании.
Хотя эти инструменты было интересно использовать, я думаю, что они действительно сияют, когда вы объединяете их с чем-то, что динамически накладывает ограничения на вашу программу (так что немного легче проверить 'useful' вещей о вашей программе). Мы закончили тем, что взяли фреймворк Spring WebFlow, который использует XML для записи файла типа state-machine, указывающего, какие веб-страницы могут переходить на какие другие, и используя SMV, чтобы иметь возможность выполнять проверку на этих приложениях (бесстыдный плагин здесь ).
Чтобы ответить на ваш последний вопрос, я думаю, что проверка моделей определенно полезна, но я больше склоняюсь к использованию модульного тестирования как метода, который позволяет мне чувствовать себя комфортно при поставке моего конечного продукта.
Для каких типов приложений вы использовали проверку моделей?
Для каких типов приложений вы использовали проверку моделей?
Мы использовали средство проверки модели Java Path Finder для проверки некоторых параметров безопасности (взаимоблокировка, состояние гонки) и временных свойств (использование линейной временной логики для их определения). Он поддерживает классические утверждения (например, NotNull) на Java (байт-код) - это для проверки модели программы.
Какой инструмент проверки модели вы использовали?
Мы использовали Java Path Finder (для академических целей). Это программное обеспечение с открытым исходным кодом, разработанное NASA изначально.
Как бы вы суммировали свой опыт w/ этой методики, в частности, при оценке ее эффективности в обеспечении более высокого качества программного обеспечения?
Проверка модели программы имеет серьезную проблему с взрывом пространства состояний (memory & disk usage). Но существует большое разнообразие методов для уменьшения проблем, для обработки больших артефактов, таких как частичное уменьшение порядка, абстракция, уменьшение симметрии и т. д.
Мы использовали несколько модельных шашек в обучении, системном проектировании и разработке систем. Наш набор инструментов включает в себя SPIN, UPPAL, Java Pathfinder, PVS и Bogor. У каждого есть свои сильные и слабые стороны. Все они находят проблемы с моделями, которые просто невозможно обнаружить человеческим существам. Их удобство использования варьируется, хотя большинство из них являются кнопочными автоматическими.
Когда использовать средство проверки моделей? Я бы сказал, что каждый раз, когда вы описываете модель, которая должна иметь (или не иметь) определенные свойства, и она больше, чем горстка понятий. Любой, кто думает, что может описать и понять что-то большее или более сложное, обманывает себя.
Я использовал SPIN, чтобы найти проблему параллелизма в программном обеспечении PLC. Он обнаружил неожиданное состояние гонки, которое было бы очень трудно обнаружить при проверке или тестировании.
Кстати, есть ли книга "SPIN for Dummies"? Мне пришлось выучить его из книги "The SPIN Model Checker" и различных онлайн-учебников.
Я провел некоторые исследования на эту тему во время моего пребывания в университете, расширяя штат исследования Assembly Model Checker .
Мы использовали виртуальную машину, чтобы обойти каждый возможный путь / состояние программы, используя A* и некоторые эвристические, в зависимости от вида ошибки (тупик, ошибки ввода-вывода,...)
Он был вдохновлен Java Pathfinder и работал с кодом C++. (Все, что может скомпилировать GCC)
Но, по нашему опыту, этот вид технологии не будет использоваться в бизнес-приложениях в ближайшее время из-за связанных с GUI проблем, работы, необходимой для создания начальной тестовой среды и огромных аппаратных требований. (Вам нужно много RAM и дискового пространства, из-за гигантского пространства состояний)