Драконограф писал(а):
alexus писал(а):
Программисты должны стараться создавать качественные инструменты в тех случаях, когда речь идёт о том, что предметную область невозможно или не нужно/бесполезно (как в приведённом случае) формализовать.
Читай - когда, скажем, требуется просто отработать задачу от начала до конца по дной и той же схеме? М.б. неоднократно - но с рестартом каждый раз с определённого места (возможно, одного из нескольких)?
Возможно, но необязательно. Иногда достаточно не спешить приступать к реализации... поразмышлять, подумать, то есть, пропустить через голову. Иногда "через руки" доходит... всё это индивидуально и относительно задачи, и относительно разработчика.
Драконограф писал(а):
alexus писал(а):
Развитие должно опираться на "правильную схему/модель"... иначе неизбежно вернёмся к рефакторингу (переделки то в одном месте, то в другом). Так вот... "выявление сущностей/отношений предметки, операций над ними" - это относится к получению "правильной модели", но не её развитию.
...
Общее движение (аналитика, проектировщика, программиста) должно происходить от семантики в сторону насыщения/многообразия форм, а не от ошибок и недочётов (в модели/проектной документации/коде) к их исправлению. Исходная мысль здесь: "смысл всегда прост, трудно даётся его обретение". Ладно... я, кажется, опять увлёкся "тонкими материями"... Напрасно...
М.б. и нет... ну потом так потом.
Т.е. суммируя - один раз, уяснив смысл предметки, формируем её ДСЛ (язык моделей, которые считаем правильными)?
Вообще я имел в виду под изменением ДСЛ (кроме указанных Вами введений его изоморфных представлений) не столько его исправление, сколько расширение... подобно тому, как интегро/диффисчисления расширяют арифметику... ну и т.д. Вряд ли это всегда сразу видимо... или нет?..
Однажды я увител ссылку на статью Вирта... "...step by step..." Подумалось: "Вот оно", - но статья оказалась не о том... увы. Кратко я бы так выразил процесс развития... сначала познаётся суть. Собственно суть - это и есть минимальная модель из которой нельзя ничего убрать, не исказив существо... Убрав из промышленного предприятия производство, мы тем самым разрушаем суть промышленного предприятия... оно превращается в торговое или транспортное... уберём логистику и исчезнет логистическое предприятие... оно превратится в финансовое... в котором всего одна функциональная подсистема. Если её убрать, то... получим "дырку от бублика". Точно также и внутри любой подсистемы. Каждая подсистема образована всего тремя элементами... Например, сбыт: 1)товар/продукция, 2)деньги и 3)клиенты. Свяжем их товар-клиенты, клиенты-деньги, деньги-товар. Смысл каждой связи отражается на множестве документов. Если убрать хотя бы один из элементов, то сбыта уже не будет. Эти три взаимосвязных элемента отражают суть любого сбыта.
После того, как суть (как минимальная... правильная схема/модель) определена и реализована, может начинаться развитие. Развитие происходит как пошаговое углубление (более детальная проработка) и пошаговое расширение (включение новых "не
существенных" элементов). Никакой переработки того, что сделано на предыдущем шаге не делается (конечно, если семантическая модель была хорошо продумана). Развитие (углубление и расширение) связаны не с недостатками исходной семантической модели (она банально проста), а с привязкой её к конкретной предметной области.