Re[21]: UML
От: _Obelisk_ Россия http://www.ibm.com
Дата: 16.06.05 19:51
Оценка: +1
Здравствуйте, nixite, Вы писали:


AR>>Да, сегодня архитектура и код оказались разъединенными. Но вот каким образом их соединить? Представляется три возможных варианта:

AR>>1) Расширить возможности UML и инструментария для работы с ним, включив в него возможности для встраивания исходного кода непосредственно в UML-модели (путь описанный _Obelisk_). В таком варианте исходный код может автоматически генерироваться прямо из полной UML-модели.

N>Ужаснейший вариант, просто страшно становиться если это кто-то сделает... чем это лучше RAD-средств, абстракция иная только. Представляете как с этим работать...


Уже сделали. Вполне нормально получается. Просто есть задачи, где UML можно и нужно использовать в качестве языка разработки.
В прошлом, такое делалось и для других языков спецификаций. Визуальные CASE-средства для языков типа SDL или TTCN уже больше десятка лет существуют. А они как раз позволяют встраивать исходный код в модели. CASE-средства эти вполне успешно применяются при разработки очень крупных программно-аппартных комплексов. UML — просто закономерное развитие этого процесса.
Беда в том, что в России программисты с этим почти не сталкиваются, ввиду отсутствия серьезных производителей всякой высокотехнологичной электроники.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[28]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 07:50
Оценка: 3 (1) +1
Здравствуйте, Сомов Александр, Вы писали:

СА>Всё-таки, даже если в математических книгах и есть картинки, то они описывают не структуру формул, а, грубо говоря, результат их применения. А вот тот же UML — описывает как раз-таки более структуру. Аналогом картинок из математических книг в программировании были бы screenshot'ы.


Ага, например, скриншоты библиотеки какой нибудь нейросетевой ...
Re[34]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 07:57
Оценка: +1
Здравствуйте, Merle, Вы писали:

M>Здравствуйте, byur, Вы писали:


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

M>Чем может быть удобнее два языка, когда можно обойтись одним?

В том-то и дело, что не удается обойтись только чем-то одним ... цели у языков разные. Для проектирования, например бизнес-систем, не нужны подробности, которе есть в исходниках. И проектировать я предпочитаю не в коде ...
Re[22]: UML
От: AndreyFedotov Россия  
Дата: 17.06.05 08:32
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

_O_>Уже сделали. Вполне нормально получается. Просто есть задачи, где UML можно и нужно использовать в качестве языка разработки.

_O_>В прошлом, такое делалось и для других языков спецификаций. Визуальные CASE-средства для языков типа SDL или TTCN уже больше десятка лет существуют. А они как раз позволяют встраивать исходный код в модели. CASE-средства эти вполне успешно применяются при разработки очень крупных программно-аппартных комплексов. UML — просто закономерное развитие этого процесса.
Полностью поддерживаю.
Всегда можно придумать такую ситуацию, где самое совершенное средство будет не эффективно. Если вам нужно распечатать ОДНУ платёжку и в ЕДИНСТВЕННОМ экземпляре то программирование в этом будет только мешать. Теперь в стиле критике UML можно сделать далеко идущие выводы...

_O_>Беда в том, что в России программисты с этим почти не сталкиваются, ввиду отсутствия серьезных производителей всякой высокотехнологичной электроники.

Именно. У нас привыкли думать, что мы тут крутые, потому что бухгалтерский софт писать умеем, а ведь в мире делается полно такого о чём у нас зачасую или вообще не имеют представление или имеют очень смутное представление. Взять те же САПР. Или суперкомпьютерные приложения. У нас об этом слышал один из деясти, ну а работал в этой области один из десяти тысяч, если не из миллиона. Но зато все уверенно рассуждают о том, что UML там не нужен.
Re[30]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 08:39
Оценка:
Здравствуйте, Сомов Александр, Вы писали:

СА>Я вот проектировщик/архитектор. И мне проще выделить базовый код архитектуры, чтобы он не перемешивался с остальным, чем строить абстрактные схемы "не ... на уровне кода". Более того, иногда приходится следить, что архитектура соблюдается. И тут опять же, без выделенного уровня будет тяжело.


Каждый работает так как ему удобней ... в многообразии -- единство

B>>Выдержка из вашего сайта о вас же ...

СА>Я, хоть во многом с Mystic'ом не согласен, но, всё же, это уже переход на личности. Вам что, кроме этого, больше нечего сказать по содержанию?

Просто это аргументация бессмысленности дискусси конкретно с этим участником ... и все.

СА>В любом случае, до определённых пределов можно соблюдать такую коммуникацию, что UML не нужен. Обычный язык достаточно эффективен. Следом, по эффективности, идёт код. А затем только формальные картинки. И вот архитектор должен хорошо владеть этими средствами в перечисленном порядке.


Что есть эффективность? Эффективность эффективности рознь ...
Re[34]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 09:29
Оценка: 3 (1) +1
Здравствуйте, nixite, Вы писали:


B>>Толк это вещь сложная, неопределенная и непонятная. Проще говорить что Domain Model по определению вообще независит от реализации .

N>я конечно понимаю, что знание какого либо языка (даже UML) не обязательно для описания процессов происходящих в жизни, буть то тех-процессы, бизнес-процессы, то что описывает автоматизируемую систему, в случае автоматизации чего-либо, но ведь это не архитектура ПО.

Интересно, в чем отличие "тех-процессов" и "бизнес-процессов"? А кто говорит, что описание БП есть архитектура???? Что-то я такого в этой ветке не встречал ...

N>И безусловно из вашей модели предметной области ну никак однозначно програмную систему построить нельзя, без промежуточных этапов проектирования. А знания языка, ОС, и прочего на этапе проектирования для реализации по-моему просто необходммы... Как вы будете проектировать 3D реадктор скажем, не зная о сушествовании OpenGL и DirectX, а также их особенности, или как


Стоп ... я думаю, что все прекрасно поминамают, раз дискутируют о применимости UML и вопросах методологий, где он используется, в каких случаях эффективно строить Domain Model а в каких нет, это даже в Rational Edge писали, году в 2001 кажись ... и конечно же знаете, что есть таки отличие в системах для автоматизации деятельности организации и например, офисными приложениями или как в вашем случае 3D редактора. Кроме этого, как я говорил Domain Model относиться к Модели анализа, а не дизайна ... . Так что IMHO не вполне корректный пример.

N>вы будете проектировать не зная что в C++ возможно множественное наследование, а в Object Pascal нет, и даже наследование интерфейсов не возможно множественное. Модель модели рознь, и


Именно, это важно только при построении Platform Specific models ... как я говорил что можно жить даже в модели дизайна (при наличии определенной квалификации) без этого. Кстати это часто демонстрируют на презентациях своих продуктов их производители (IBM так точно показывал, лично тов. Сперанский приезжал из Франции ...)

N>моё мнение таково что модель должна быть построенна так чтобы максимально описывать объект с минимальными затратами на её создание. Я не уверен что описание бизнес-процессов в производстве удобнее представить в виде UML, и затем демонстрировать это управляющему производством или президенту автоматизируемой компании... или вы их UML обучать будете...


Наша пiсня гарана, нова (укр.)... Открою вам один секрет ... ни один руководитель организации-заказчика, в моем опыте, даже не взглянул на описания бизнес-процессов дольше чем 2 минуты, не зависимо от нотации в которой они были смоделированы. Максимум они читали 10-страничный Vision. Более интересно, с вашей т.з., видимо им показывать исходные коды ? Я утририю конечно, но тем не более . Кроме этого, я уже писал, что бизнес-моделирование (БМ) бизнес-моделированию рознь ... использование UML или IDEF или ARIS или ... сильно зависит от целей этого БМ. Если моя цель просто понять, как происходят процессы, какими сущностями они оперируют ... и это для целей только автоматизации а не реинжениринга -- то ничего мне не мешает это описать на UML. А если я могу использовать подход с бизнес-юзкейсами, то при желании могу и без UML динамику бизнеса описать .

B>>>>1. Чтобы сначала увидеть лес, а потом интересующие меня деревья.

N>Кстати, а что если лес в этом месте в силу ограничений систмы, платформы или языка посадить нельзя, что если это взлётная полоса, а вы не знаете таких особенностей в силу того что не считаете нужным знать ещё какие-то там особенности систем или языков, а заказчик тоже знать не может...

Тогда еще на фазе Inseption (это из RUP) мы скорее всего откажемся от создания ПО . А вообще это становится 100% очевидным при формировании требований к ПО. Т.е. когда дизайн только начинается в параллель требованиям.


B>>>>ОК ... ну не знаю я Smalltalk-а ... как мне понять суть системы на нем написанной???

N>1) взять документацию по системе. А если вам нужно внедрение в систему или переработка, взять книги по SmallTalk, изучить Smalltalk.

Кто это будет оплачивать??? (Время-деньги).


N>p.s. Я не утверждал что использовать UML не возможно или нельзя, я говорил что пользоватся средствами создания и поддержки UML-проектов крайне не удобно, перенося это на язык я говорил что UML (как методологией) пользоваться также не удобно. Безусловно ей пользуются, потому что


1. UML это не МЕТОДОЛОГИЯ!!!!!
2. А вот как раз при методологическом подходе, использовать UML становиться очень удобно. Особенно когда а) хорошо знаешь UML б) хорошо знаешь методологию в) хорошо знаешь инструментальные средства.
3. А если работать без методологии, и при этом искать нечто "что бы мне позволило выразить мое понимание и видинье системы" -- то вполне допускаю, что UML не совсем то, что вы от него ожидаете . Отсюда и тяга к демонстрации кода. Не спорю, код может быть с "мыслями внутри".
4. По-большому счету -- никто не говорит, что UML rulez forever. Но это лучше чем собственные измыслы ..., а код нужен для своих целей. В конце концов есть методология XP, которая "кодоориентирована", но и она имеет собственную область применения и условия применения. "Каждому проекту -- своя методология" (с) А. Коберн. Если бы дискутирующие апелировали к ней, и имели солидный опыть использования в проектах XP, я бы еще это воспринял .

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


Просто все что нужно -- уже создано ... только нужно уметь им пользоваться ... и знать, в каких случаях что лучше.
Re[35]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 09:34
Оценка:
Здравствуйте, Alexey Rovdo, Вы писали:

AR>Целиком поддерживаю, когда речь идет именно о процессе разработки. Использовать методологии UML для разработки неудобно и накладно, а тем более в небольших проектах. Нужны иные средства (Together и DSL вероятно как раз и есть движение в нужном направлении). В то же время нет


Ну вот приехали ... додискутировались до того что есть "методологии UML" !!! И до того что Together НЕ ИСПОЛЬЗУЕТ UML!!!!

AR>никакого смысла заменять UML как средство визуализации. Возвращаясь к своей аналогии с PDF замечу, что все согласны использовать PDF-документы, когда надо обеспечить народ информацией. Но вот писать тексты сразу в формате PDF никто особо не стремится — все больше Word или другие текстовые редакторы пользуем.


Это хорошая мысль .
Re[32]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 09:46
Оценка: 3 (1) +1
Здравствуйте, Сомов Александр, Вы писали:


СА>Насчёт доводить — функциональные требования нужны всегда, а с ними — да, возьмусь. В этой области UML один из инструментов описания и даже не самый удобный.


Вау ... это ж где говорилось про то что требования к ПО можно на UML выражать???

СА>А из грамотно написанного, работающего кода я могу извлечь описание функциональности. Разумеется, то, что в коде не содержится, не будет отражено. Но в этом случае, если была бы документация, то она просто не соответствовала системе. А когда она полностью соответствует, то она становится ненужной (при условии, что код написан хорошо). Причём ненужной, как документация, — необходимость остаётся при разборе дефектов. Но тут опять же архитектурный UML никаким боком не вылазит, достаточно словесных описаний.


Есть! Есть достаточно грамонтно (для своего времени) написанный код ... а именно ядро АБС ... пришла новая команда разработчиков ... документации ноль ... голый код на Visual C++, да с комментариями, да инкапсулировано все в классы ... и ребятки пришли грамотные ... однако в беседе со мной говорят, о том что им очень не хватает диаграмм для понимания всего этого ..., и первое про что они сказали ... да да ... про UML ... вот вам и пример.
Re[15]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 09:49
Оценка:
Здравствуйте, Сомов Александр, Вы писали:

СА>Ну этот десяток стрелочек (уж если захотелось что-то рисовать, а не использовать великий и могучий) — описать совсем не проблема. На это уйдёт час. А на освоение UML?


Хм ... а сколько у Вас лично ушло времени на освоение собственно UML????
Re[21]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 10:00
Оценка: +1
Здравствуйте, nixite, Вы писали:

N>p.s. кстати на Use Case мне откровенно смотреть проивно ибо кажется поделкой из десткого сада. Его целесообразность вообще мне сомнительна. Текстовый документ описывающий всё тоже самое более подробно и ясно, займёт меньше места, сэкономит бумагу и время.


Вот вы и попались на незнании ... а если бы знали методологию (например RUP) то сказали бы, что просто диаграммы юзкесов в UML без спецификаций юзкейсов это откровенная БЕЗГРАМОТНОСТЬ. Я бы взглянул на эти диаграммы, с вероятностью 0,8 UC еще и неверно выделены ... UC это в первую очередь ТЕКСТ ... а диаграммы всего-лишь его графическое оглавление. Это нужно знать, прежде чем дискутировать о применимости UML. Есть конечно же и другие возможности описания юзкейсов с использованием других диаграмм UML .
Re[20]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 10:03
Оценка: +1
Здравствуйте, Merle, Вы писали:

M>Здравствуйте, Сомов Александр, Вы писали:


СА>> Однако, это верно для очень квалифицированного программиста.

M>Естественно, но лично я с турдом себе представляю архитектора, который не является квалифицированным программистом...

А я вот лично знаю пару ... (один канадец, а другой англичанин) ... которые не являются квалифицированными программистами, но зато они хорошие архитекторы, и их приглашают на серьезные проекты именно как архитекторов ...
Re[23]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 10:06
Оценка: +1
Здравствуйте, Merle, Вы писали:


AF>> А на самом деле — обычный старший программер...

M>Хоть горшком назови, какой тол от рахитектора, который кроме рисования диаграмок ничего не умеет?

Про толк же мы вроде выяснили ... что это вешь очень непонятная и неконкретная ...
Тогда не говорите про архитектуру ... а говорите про имплементацию требований, архитектуры и дизайна -- ее то как раз код и отражает в первую очередь
Re[15]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 10:17
Оценка: +1
Здравствуйте, Сомов Александр, Вы писали:

СА>Я правильно понимаю, что модель анализа — это ещё вовсе не архитектура классов? А всего лишь чётко выделенная структура предметной области?


Я при всем желании не могу ответить на ваш вопрос, ибр искренне не понимаю, что кроется под термином "архитектура классов" ... я такого не встречал в литературе

СА>И то, что модель дизайна может быть независимой — это накладывает ограничения общность её описания? Т.е. я так понимаю, там не должно быть подробного описания взаимодействия объектов. Скорее уж описание модульного разделения системы и взаимодействия модулей. Так?


Чтобы ответить на ваш вопрос корректно, мне нужно понять, какой методологией, или каким набором знаний, вы руководствуетесь рассуждая о программной архитектуре? Просто я бы смог исходя из ваших знаний попытаться вам это пояснить. Как я понимаю из вашего вопроса с RUP вы не знакомы совсем. Это так?

Исходим из того, что с паттернами дизайна вы таки знакомы. Тогда ответим так -- при построени модели анализа (а там используются в т.ч. и диаграммы классов UML) мы не определяем, что счет и его айтемы, например, или др. сущности выражаются через петтерны типа observer, facade и т.п. ... это будет в модели дизайна.
Re[2]: UML
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 17.06.05 10:27
Оценка: +1
Здравствуйте, bralgin, Вы писали:

B>Здравствуйте, ВСЕ УЧАСТНИКИ ОБСУЖДЕНИЯ, Вы писали:



B>Господа! Предлагаю определится с терминологией! А то, похоже, каждый под архитектурой понимает что-то свое:

B>кто бизнес логику, кто иерархию объектов, etc.

ОК, про software architecture можно тут http://www.sei.cmu.edu/architecture/definitions.html
Re[36]: UML
От: Alexey Rovdo Россия http://ru.linkedin.com/in/rovdo
Дата: 17.06.05 13:50
Оценка:
Здравствуйте, byur, Вы писали:


B>Ну вот приехали ... додискутировались до того что есть "методологии UML" !!! И до того что Together НЕ ИСПОЛЬЗУЕТ UML!!!!


Ну словили на слове. Конечно надо было написать "методологии, предполагающие использование UML". Что же касается Together, то конечно UML там есть (я ведь и не отрицаю необходимость UML вообще), но как-то это несколько по-другому что-ли, чем например в Rose. Он там как-бы на вторых ролях или уж во всяком случае не главнее собственно кода. Хотя я и не говорил, что Together это именно то, что нужно. Но некоторые моменты (лучшие средства синхронизации UML-моделей и кода) позволили мне сказать, что это "движение в нужном направлении".
Re[37]: UML
От: Сергей Орлик Россия http://sorlik.blogspot.com
Дата: 17.06.05 14:26
Оценка:
Здравствуйте, Алексей:

AR>Здравствуйте, byur, Вы писали:


B>>Ну вот приехали ... додискутировались до того что есть "методологии UML" !!! И до того что Together НЕ ИСПОЛЬЗУЕТ UML!!!!


AR>Ну словили на слове. Конечно надо было написать "методологии, предполагающие использование UML". Что же касается Together, то конечно UML там есть (я ведь и не отрицаю необходимость UML вообще), но как-то это несколько по-другому что-ли, чем например в Rose. Он там как-бы на вторых ролях или уж во всяком случае не главнее собственно кода. Хотя я и не говорил, что Together это именно то, что нужно. Но некоторые моменты (лучшие средства синхронизации UML-моделей и кода) позволили мне сказать, что это "движение в нужном направлении".


Позволю себе не согласиться с тем, что в Together UML "вторичен". Действительно, код с точки зрения тех редакций Together (Developer и Architect), которые ориентированы на проектирование — является "first class cictizen" и технология LiveSource действительно не заставляет хвататься за сердце (боясь потерять то, что написано руками) когда делаются изменения в модели и и получаем изменения кода.

В то же самое время, есть Together Designer — как самостоятельная "среда", так и встраиваемая в VS.NET, Eclipse (Analyst view в Together Edition for Eclipse), JBuilder или в близком будущем — в Delphi. Together Designer — "чистое" моделирование и проектирование на UML 1.x и UML 2.0. И UML в нем — на главных ролях

С уважением,
Сергей Орлик
Borland
Re[26]: UML
От: AndreyFedotov Россия  
Дата: 17.06.05 17:06
Оценка:
Здравствуйте, Merle, Вы писали:

M>Здравствуйте, AndreyFedotov, Вы писали:


AF>>И кто определяет ложность аналогий?

M>Аналогии ложны все..
Угу. То есть и все ВАШИ анологии — тоже ложны

AF>> Хорошо. Как спец по микроэлектронике — могу легко подсунуть тебе схемку на пару десятков процов и FLEX кристаллов. Разбирайся как с ней работать по этой самой схемке

M>Ну, про аналогии я уж еговорил...

Это не аналогии. Это повседневная практика некоторых проектов.

AF>> ты от всех остальных стало быть требуешь вступления в джедайский орден?

M>Вовсе нет, я хочу чтобы мне внятно объяснили зачем UML нужен. Два способа использования меня уже вполне устроили, но в остальном пока увы...
Объясняли миллион раз. Что бы описать некоторые аспекты модели общяпринятым, стандартным образом.
Re[34]: UML
От: AndreyFedotov Россия  
Дата: 17.06.05 17:35
Оценка:
Здравствуйте, Сомов Александр, Вы писали:

AF>>>>То есть вы возмьмётесь доволдить до победного конца проект, в котором описано 10% интерфейсов, классов и кода — без какой либо документации или других источников информации о том, что нужно делать?

СА>>>Не так, 10% кода должны отражать логику работу, а 90% — нюансы.
AF>> Про должны — это теория. А если не отражают? А если, как это часто бывает, зказчик хочет, что бы сначала заработала часть функционала, а потом делалось всё остальное — и именно этот кусок + обвязка которая ему нужна и реализованы?
СА>Да какая разница — какое там отношение процентное. Просто код, отражающий нюансы, должен быть инкапсулирован. А то, что останется — читать несложно. И поддерживать несложно.
Прямо как классики марксизма-ленинизма. Коммунизм должен быть построен. Есть большая разница между "должен" и что есть на самом деле. Вы и картинки в код поместите?

СА>А что касается написания части функциональности — есть две модели: гибкая и негибкая. В первой мы не будем писать дополнительный код сверх части функционала (тоже неплохо, а вдруг потом заказчик обанкротится, а так — мы не затратим лишних усилий ), а во второй — запланируем сразу. По моим ощущениям (даже и не расчитывайте на объективность мнения ) — временные затраты в первом случае (плюс рефакторинг и доведение до полного функционала) и во втором случае (полная архитектура, часть функциональность, доведение до полной) будут примерно одинаковы. А вот риск в первом случае вроде как меньше. Хотя он тоже растёт с ростом величины проекта.


И что? Как это связано с документированием или не документированием модели (с использованием или без использования UML)?

СА>>>Насчёт доводить — функциональные требования нужны всегда, а с ними — да, возьмусь. В этой области UML один из инструментов описания и даже не самый удобный.

AF>> То есть тезис о том, что кода достаточно вы только что сами же и отвергли...
СА>Для понимания архитектуры — достаточно, для развития и исправления дефектов — недостаточно.
А если от архитектуры только кусок?
Почему то вы забыли о том, что бывают весьма интересные и оригинальные решения — от алгоритмов до архитектуры — ценность которых гораздо выше, чем того (часто кривого) кода, который их реализует?

СА>>>Опять же, из функциональных требований, которые сами по себе не требуют UML.

AF>> Да, как уже многократно говорилось, обойтись можно. И в зависимости от ситуации это будет разумно использовать UML или не использовать.
СА>Ну вот. А я предлагаю структурировать код, чтобы и архитектура (не функциональные требования) им же просто и описывалась. Чтобы этот не очень удобный инструмент (UML то есть) и вовсе не был нужен.
И помещать туда тонны текста, картинок, диаграмм?

СА>>>А из грамотно написанного, работающего кода я могу извлечь описание функциональности. Разумеется, то, что в коде не содержится, не будет отражено.

AF>> То есть нужна документация описывющая модель.
СА>>>Но в этом случае, если была бы документация, то она просто не соответствовала системе. А когда она полностью соответствует, то она становится ненужной (при условии, что код написан хорошо). Причём ненужной, как документация, — необходимость остаётся при разборе дефектов. Но тут опять же архитектурный UML никаким боком не вылазит, достаточно словесных описаний.
AF>> Система может быть написана плохо и действительно не отражать модель. Но ценность часто имеет именно модель, а не сам код — особенно в крупных проектах.
СА>А как хорошо, когда там ещё и код модель отражает.
Да что вы в код то вцепились?! Прям как дети! "Вася смотри какой я класс состряпал". Половина оболтусов на форуме так и выступает.
Поймите, часто бывает ситуация, когда есть проект, который тянется годами, когда изначально не ясно, что делать, а делать что-то надо. И в этой ситуации — система пишется, притом, естественно, весьма далеко от идеала, но это всё хозяйство сертифицируется и отправляется клиентам — ибо бизнес не ждёт. И вот проходит 2-3-4 года за которые наконец-то становится ясно, что и главное как нужно делать. Если всё это время строилась модель — на уровне бизнес-процессов, на уровне UML моделей, на уровне толковых описаний, то это даёт возможность переписать систему грамотно — с использованием более современных технологий. Так вот эта модель — квинтэссенция опыта — стоит гораздо дороже, чем весь написанный код.
В чём здесь роль UML? Да в том, что опыт накапливается годами, времени писать романы нет. А вот накидать диаграммку с пояснениями возможно. Люди приходят и уходят. И через 2-3 года найти концы почти не реально. И если не использовать UML (или любую другую общепринятую систему обозначений) — то у кого потом спрашивать, что имел в виду автор диаграммки 3 года назад?
Придумать систему обозначений, да ещё её задокументировать (по сути разработать стандарт) — эта работа может быть сопоставима по объёму с самим проектом. И ради чего? Ради фанатичного нежелания учить UML? Или ради высокомерного самомнения — что всё сделаем лучше?

СА>Мы же не говорим о том, как быть с уже написанной лапшой, мы говорим, как писать код так, чтобы он не требовал (или требовал минимум) подобных дополнений.

Ещё раз. Часто код сразу пишется для мусорной корзины — потому, что его просто не возможно сразу писать хорошо. И его единственное предназначение — выработать модель, которая будет нужна в дальнейшем.
Re[34]: UML
От: AndreyFedotov Россия  
Дата: 17.06.05 17:37
Оценка:
Здравствуйте, Сомов Александр, Вы писали:

AR>>Все-таки не стоит путать требования и уже разработанную базовую архитектуру системы. Одни и те же требования можно выполнить в рамках разных архитектур. Но когда речь идет о воплощении именно какой-то конкретной архитектуры, то описание требований должно быть дополнено и описанием этой архитектуры.


СА>Мне, всё таки, кажется, что это просто разные вещи: описания требований и описания архитектуры. Можно работать с незнакомым кодом при наличии первого и отсутствии второго, но не наоборот.


Если код среднего качества — тем более не завершённый, то в этом случае (если нет информации об архитектуре) — его проще выкинуть или по частям переписать — в соответствии с требованиями.
Re[32]: UML
От: AndreyFedotov Россия  
Дата: 18.06.05 11:37
Оценка:
Здравствуйте, Сомов Александр, Вы писали:

СА>>>А по вашему код должен выглядеть совсем не так? Мой код структурно очень близок к предметной области. И тут можно выделить последовательность взаимодействия в виде высокоуровневых операций в коде.


AF>>То есть в твоём коде отсутствуют ключи, идентификаторы, указатели или ссылки — в общем всё то, что отсутствует в предметной области?

AF>>Интресно — и как он при этом работает?

СА>Хм... да ведь это же всё, что запятые в тексте. Читать-то нисколько не мешают.


Д,а,,, ,з,а,п,я,т,ы,е, ,в, ,т,е,к,с,т,е, ,н,и,с,к,о,л,ь,к,о, ,н,е, ,м,е,ш,а,ю,т,.

Не мешают, когда они расставлены по смыслу и помогают воспринимать текст. А вот когда они там не по делу — мешают и ещё как.

СА>Вот когда там появляется дополнительная логика или нюансы — это хуже. Они скрывают общую логику. Ну так их можно отделить, инкапсулировать во что-нибудь, чтобы в глазах не маячили. А основной код остаётся лакончным и близким к предметно области.


А как с быть с оптимизацией по производительности?
В итоге вы следуя своей, изначально неверной идее, просто напишете код низкого качества. Вот и весь результат.
Это тоже самое, если в телевизоре, холодильнике или автомобиле на каждой детали, даже самой маленькой детали — приклеивать том с описанием технологии её производства.

СА>К тому (можно я тоже попередёргиваю ) — в предметной области, как правило и стрелочек с рамочками нет.

В том то и проблема, что сначала требуется построить адекватную модель предметной области — что бы потом по ней можно было построить модель программной системы.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.