Почему инструменты CASE не увенчались успехом?
... или почему они потерпели неудачу?
Я собираюсь создать доказательство концепции чего-то, что может быть классифицировано как CASE, но я хочу избежать некоторых ошибок, сделанных ранее.
Спасибо!
2 ответа
Во-первых, я думаю, что диаграммы дают реальную ценность, когда они маленькие и простые. Большие, очень подробные диаграммы в основном тратят много бумаги, времени, места на жестком диске и т. Д. Карандаш и бумага прекрасно работают для диаграмм, которые достаточно малы (и достаточно просты), чтобы быть полезными. Программный инструмент помогает только тогда, когда вы создаете диаграмму, которая настолько велика и сложна, что практически гарантированно бесполезна.
Во-вторых, в большинстве случаев, самый быстрый способ нарисовать диаграмму - это начать с написания некоторого (упрощенного, макетного) кода, а затем "реверсировать" диаграмму из кода. Рисование диаграммы напрямую медленнее, чем написание кода. Чтобы обеспечить большую реальную ценность, создание диаграммы высокого уровня должно быть немного проще, чем написание эквивалентного кода.
Когда вы приступаете к этому, я редко видел инструменты CASE, используемые в любом случае как реальную "помощь" "разработке программного обеспечения". В большинстве случаев, которые я видел, разработка программного обеспечения выполняется полностью отдельно, а инструменты CASE использовались для обратного проектирования диаграмм из уже написанного кода. Люди, производящие диаграммы, как правило, находили их бесполезными и включали их в отчеты руководителям высшего звена по поводу "вау-фактора". Единственная "помощь", на которую они надеялись из диаграмм, впечатляла руководство сложностью того, что они делали в надежде увеличить финансирование (довольно много включали диаграммы таких вещей, как части стандартной библиотеки, просто чтобы добавить к очевидной сложности),
Редактировать: Что касается того, как инструменты потерпели неудачу в части разработки программного обеспечения, я не знаю ни одного простого ответа - из того, что я видел, я бы сказал, что это скорее "смерть тысячи ников", чем любая вопиющая проблема. Если бы мне пришлось указать на одну большую проблему, то те, на которые я смотрел, не учитывают паттерны. Например, мне хотелось бы работать на еще более высоком уровне абстракции, чтобы я мог указать на некоторые функциональные возможности и поиграть с такими вещами, как "как бы все выглядело, если бы я реализовал следующие части этой функциональности как уроки декоратора?" Да, я могу нарисовать одну диаграмму с ними как классы декоратора, а другую без, но у меня нет действительно быстрого и простого способа сказать "преобразовать всю эту иерархию, чтобы переместить X, Y и Z в классы декоратора".
Сравните типичный инструмент CASE с электронной таблицей. В электронной таблице я могу изменить одну ячейку, и она автоматически пересчитает, как это влияет на все остальное в электронной таблице, которая зависит от нее. В отличие от этого, инструменты CASE кажутся (по крайней мере мне) застрявшими примерно на уровне элемента управления сеткой, где я могу вносить изменения в ячейку, но мне все равно приходится вручную отслеживать, какие другие ячейки зависят от этой ячейки, и какие формулы использовать, вычислять и модифицировать все затронутые клетки вручную. Да, если я хочу распечатать лист с правильными значениями, иметь возможность редактировать их на компьютере, чтобы у меня не было меток ластика в ячейках, и это было бы улучшением - но только небольшое улучшение, а не вид, который превратил персональные компьютеры из игрушек для нескольких любителей в основной продукт практически каждого бизнеса на земле.
Если вы посмотрите на статью в Википедии: http://en.wikipedia.org/wiki/Computer-aided_software_engineering то увидите "классические" инструменты 1990-х годов. Поработав со многими из этих инструментов, я бы предположил, что акцент на коммерциализации фрагментировал рынок. Как правило, вы платите не только огромные суммы за инструменты, но и за консультации, обучение и среду выполнения. С таким количеством инструментов было сложно создать компетентную команду, специализирующуюся на данном инструменте.
Кроме того, это не помогло, что инструменты были перепроданы. Перспективные управления нереально увеличивают производительность. Нет ни одной другой области ИТ, где я бы видел так много готовых изделий - продукты, используемые для одного проекта, а затем заброшенные, часто вместе с проектом.
Концепции CASE основаны на Eclipse и многих других инструментах MDE. Проблемы крутых кривых обучения и фрагментации до сих пор не решены. Хотя стоимость инструментов снизилась (во многих случаях бесплатно), затраты на обучение, консультации и наращивание все еще существуют.
Прежде чем тратить много усилий на инструмент CASE, взгляните на области MDA, MDE, DSL и даже UML. Также стоит посетить веб-сайт OMG.
В конце дня вы должны сосредоточиться на том, что вы производите, а не на инструменте. Если вы можете автоматизировать некоторые задачи, это хорошо. Создание еще одного CASE-подобного инструмента - отличное интеллектуальное упражнение, но с минимальными шансами на коммерческий успех. В конце концов, IBM, Oracle и Computer Associates достигли спорадических успехов в использовании своих инструментов, и они до сих пор активно продают их корпоративным клиентам.
Я работал с Knowldegeware еще в начале 90-х. Мой простой ответ на кончину CASE состоит в том, что как только вы напечатали модель, она была старой. Синхронизация модели и кода стала невозможной. Первой целевой платформой была MicroFocus COBOL, но затем появился клиент-сервер 94-95, а затем Интернет 97-98, и никто не хотел использовать CASE с этими новыми платформами.