[Закрываются] формальные методы и предприятия

Как насчет его использования следующим образом:

[ngClass] = "x? 'Whell': 'classWithNoAnimation'"

если x истинно, то переключиться на ад, в противном случае переключиться на classWithNoAnimation [ 112]

10
задан MrTelly 2 March 2009 в 01:40
поделиться

6 ответов

Ключ к тому, чтобы заставлять людей вложиться в любые методы или методологии должен показать им, как это решает проблемы, которые они имеют. Если они видят, что это сделает их жизни лучше, у Вас есть очень улучшенный шанс того, чтобы заставлять их принять методы.

И если Вы не можете показать им, что, возможно, хотели принять методы на основе философии, а не практичности. Если другие не совместно используют Вашу философию затем, Вы не собираетесь добираться где угодно. И возможно Вы не были должны.

За десятилетия было очень много методологий. Более новые всегда обращаются к недостаткам старых, все же проекты все еще входят в проблему и сбой. Почему? Поскольку рок-звезды, которые придумывают новые методологии, являются рок-звездами и сделали новую методологию точно, потому что они понимают базовые проблемы и как применить их. Те, кто приезжает после, склонны слепо следовать рецепту, и он не работает так хорошо.

Таким образом, я думаю, что лучшая вещь состоит в том, чтобы учить базовым проблемам и затем показать, как различные методы пытаются иметь дело с теми проблемами. Различия в компаниях, проектах и командах являются столь большими, что никакая методология не может быть применена успешно ко всем комбинациям. Обучение выбрать соответствующий инструмент и применить его хорошо крайне важно.

6
ответ дан 3 December 2019 в 23:15
поделиться

При работе с направлением деятельности разработка IT на предприятии означает иметь необходимость передать знание о бизнесе от фактических деловых людей в головы разработчиков. В то время как я сам нахожу, что абстрактная математика одно из самых больших времяпрепровождений, существует, это - ужасный коммуникационный инструмент. И связь - то, о чем это - все. В то время как я мог бы очевидно иметь некоторый успех убедительные люди IT для охвата более абстрактных нотаций, у меня в основном нет шанса с деловыми людьми.

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

Я думаю, что жюри все еще отсутствует на основанных на модели подходах и предметно-ориентированных языках. Я думаю, что они успешно выполнятся или перестанут работать в зависимости от того, обеспечивают ли они более быструю обратную связь от IT до пожеланий и потребностей бизнес-стороны, и предполагают ли они, что деловые люди должны будут сделать любое значительное изучение.

Технология легка. Коммуникация трудна. Формальные методы могут помочь нам сделать вещи правильно, но те, которых я видел, не делают ничего, чтобы помочь нам сделать правильные вещи. (Да, это клише, но поэтому они неизбежно и крайне верны.)

2
ответ дан 3 December 2019 в 23:15
поделиться

Спасибо за все вклады. Они очень проницательны. Позвольте мне гореть немного (не берите его персональный, хотя :-)

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

Но рассмотрите инструменты нахождения/проверки модели, такие как Сплав. Обучение использовать инструмент как это берет незначительную сумму времени для любого привыкшего к UML и OO. Однако, это может дать Вам непосредственное понимание по Вашей модели. Обычно требуется не больше, чем 10 минут для нахождения контрпримера по достаточно маленькому подмножеству модели попыткой использовать (и это включает описание модели в Сплав во-первых).

Возьмите разработку требований в качестве примера. Каждый обычно тянет много UML. Немного людей используют OCL, тем не менее, и много бизнес-правил неофициально annoted на естественном языке. Почему? Ограничения времени?

Теперь рассмотрите то, что большинство просто использует ее/его инстинктивное чувство, чтобы доказать, что модель выполнима. Снова, почему? Я могу занять то же количество времени (вероятно, еще меньше, так как я не должен заботиться о рисовании эстетики) записать, что модель в Сплаве, и просто проверяет на выполнимость? И какая математика я должен теперь? "Предикаты"? Необычное название IFS и булевских переменных ;-) Кванторы? Необычные названия ForEachs ()...

Что относительно больших информационных систем? Они не должны быть очень важными... Просто попытайтесь проанализировать в голове концептуальное (не реализация!) схематически изображают с более чем 600 классами. Я вижу, что многие люди ударяют по голове в стене с легко делаемыми ошибками модели, потому что они пропустили некоторое ограничение, или модель позволяет глупым вещам произойти.

Факт, не нужно использовать формальные подходы от главы к хвосту. Предоставленный, я мог доказать целое приложение в Coq и сертифицировать, что это на 100% совместимо с некоторой спецификацией. Это может быть Программистом / подход Математика.

Однако, с GTD philisophy, почему я не могу делегировать некоторые задачи для компьютера и позволить ему помогать улучшению моей разработки? Это - действительно вопрос "времени" или простое, простое отсутствие технических способностей, и будет к learn/inovate?

3
ответ дан 3 December 2019 в 23:15
поделиться

Я беру курс о 'Спецификации и Проверке'. Как часть структуры курса мы делаем следующее - 1. Средства обучения как PVS (Опытная Система Проверки) http://pvs.csl.sri.com/ и SMV (Моделирование программного обеспечения и Проверка) http://www.cs.cmu.edu/~modelcheck/smv.html 2. Кроме этого мы действительно разделяем несчастные случаи, которые произошли из-за программных ошибок. Для, например, - отказ Ariane V

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

1
ответ дан 3 December 2019 в 23:15
поделиться

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

Достаточно забавный, те же люди более, чем рады произвести совершенно бесполезные диаграммы UML в ginormous количествах.

Я думаю, что существует две главных причины для этого:

a.) Многие разработчики чувствуют себя неловко из-за уровня абстракции, требуемой формальным подходом. Тому, что большая часть образования математики начального уровня является всем исчислением и не дискретной математикой, возможно, придется сделать что-то с этим.

b.) Формальные методы требуют очень восходящего подхода дизайна, где Вы разрабатываете свою базовую модель с нуля и делаете ее воздухонепроницаемой и затем соединяете ее до фактических требований пользователя путем обеспечения интерфейса сверху ее. Так как мы склонны иметь усилия по разработке диска требований, нисходящий подход чувствует себя более естественным, хотя он часто приводит к непоследовательным моделям. Это похоже на модифицирование подвала под Вашим домом после того, как это было уже создано.

1
ответ дан 3 December 2019 в 23:15
поделиться

Формальные методы не имеют никакого смысла в системах, где стоимость отказа является низкой.

В производственном веб-приложении у Вас есть несколько полей фронтенда, несколько полей бэкенда, несколько полей базы данных - если программа на ком-либо из них перестала работать, это - непримечательное событие. Аппаратные средства являются столь дешевыми, что можно создать эти системы для намного меньше, чем стоимость формального определения всего программного обеспечения.

1
ответ дан 3 December 2019 в 23:15
поделиться