OberonCore https://forum.oberoncore.ru/ |
|
Семантический редактор https://forum.oberoncore.ru/viewtopic.php?f=93&t=1542 |
Страница 27 из 34 |
Автор: | Владислав Жаринов [ Среда, 12 Сентябрь, 2012 12:45 ] |
Заголовок сообщения: | Re: Семантический редактор |
Среди типов основных схем программы как требующий наибольшей проработки при текущем состоянии дел видится схема объявлений. Среди вспомогательных типов - схема зависимостей в принятой парадигматике (классов для ОО, функций для ФП, правил для ЛП). М.б. уже есть решения (для того же редактора)?.. |
Автор: | Info21 [ Среда, 12 Сентябрь, 2012 14:40 ] |
Заголовок сообщения: | Re: Семантический редактор |
Сергей Прохоренко писал(а): Кто не сдал все лабы, к сессии не допускается, а потом вынужден ходить на платные дополнительные занятия для подготовки к экзаменам. Финансовые потери -- один из самых доходчивых аргументов
|
Автор: | Владислав Жаринов [ Четверг, 13 Сентябрь, 2012 05:56 ] |
Заголовок сообщения: | Re: Семантический редактор |
Это да... только нужно также дать и направление, как их избежать. Язык, допустим, пущай сами осваивают - но при этом среда выдаёт каждую конструкцию/элементарный оператор/бибфункцию именно в виде, аннотированном по Лаптеву (с утверждениями обобщёнными - и с неформальными комментами, отражающими условия употребления, ну и конкретизации утверждений). И будет элемент того самого "включения учебника в среду", о котором Сергей говорил... А вот технологию "говорения" думаю, для начала лучше зафиксировать. И тут ясно становится, что роли рабочих мест не сводятся к правам чтения/записи тех или иных частей проекта. А именно включают и назначение на работы. И вот для каждого вида лабы делается типовой техпроцесс выполнения. К каждой техоперации которого определён комплект исходных данных и результатных. Вплоть до имён файлов. Тот же чекер, который подразумевается здесь, может проверять работу (по тем самым встроенным логам).
Вот на такой основе можно переходить от бирюлек к работе... и вводить связь с промышленностью... Так что это только кажется неким идеалом... хотя реально не будет построено сразу. Но к этому уже можно привлекать студентов - и курсовые (а отчасти и те же лабы) наполнять реальными задачами достройки среды. Которые, начиная с какого-то уровня реализованности сказанного выше, планируются и организуются через саму же среду...
Разумеется, и на словах нужно это напоминать... Тогда и студент (не каждый, но всё-таки), попробовав типовую схему на одной лабе, посмотрев, что из этого выходит, может прийти как-то к преподу и сказать: "- А дайте мне права на запись - хочу процесс выполнения лабы улучшить (новую функцию в библиотеку добавить etc)!". И тут есть повод задать обычные три вида рабочих вопросов: "Зачем?", "Что?", "Как?"... Чтобы: Валерий Лаптев в viewtopic.php?p=74167#p74167 писал(а): ... по мере обучения "вожжи" можно отпускать. В то же время встаёт другой вопрос - а есть ли мотивация у преподов (в нынешней системе оценок от другой московской ) организовывать и вести дело к такому результату?.. |
Автор: | Владислав Жаринов [ Четверг, 13 Сентябрь, 2012 07:14 ] |
Заголовок сообщения: | Что говорят в сети о семантическом редактировании :) |
Вот что, например: PSV100 в viewtopic.php?p=74686#p74686 писал(а): ... - м.б. есть понимание, так это насчёт удобств и если нет, то почему...
Могу также сказать, что если у программиста отбирают удобство эмакса, вима, JEdit, Sublime, то должны быть серьёзные основания, это только Майкрософт или какой-нибудь Оракл смогут "нагнуть" под любую платформу, любой степени убогости ... А большие кружочки не по ГОСТУ, как "дизайнерский ход", можно взять на вооружение. Короче говоря, в потенциальном редакторе должны быть настройки для всего: диаметр вершин, толщина линий, тип стрелок, шрифты и пр., в т.ч. и поддержка "чертёжного" стиля. Кстати, если кому нужны чертёжные шрифты, то обращаю внимание, что появился OpenGostFont. |
Автор: | Сергей Прохоренко [ Четверг, 13 Сентябрь, 2012 09:32 ] |
Заголовок сообщения: | Re: Что говорят в сети о семантическом редактировании :) |
Владислав Жаринов писал(а): А вот в графе штрафов - реальные тарифы д.б. заложены... чтобы студент свою выгоду видел... Я против. У студентов в их возрасте и социальном положении еще нет правильного отношения к деньгам. Деньги будут браться из родительского кармана без малейшего угрызения совести. Не все родители одинаково богаты. Стандартная ситуация, когда ленивые инфантильные юноши, не желая попадать под родительскую "опеку", просто плюнут на учебу. Мозги-то еще сырые. За разгильдяйство студенты должны расплачиваться повышенной учебной нагрузкой, повторением плохо усвоенного материала, пересдачами лаб и тестов (как можно раньше в течение семестра) и зачетов, посещением дополнительных занятий, заданиями на каникулы. Наоборот, за успехи должны следовать баллы, приближающие зачет "автоматом". И родители должны видеть в онлайне все "успехи" своих отпрысков. |
Автор: | Валерий Лаптев [ Четверг, 13 Сентябрь, 2012 09:54 ] |
Заголовок сообщения: | Re: Семантический редактор |
Info21 писал(а): Сергей Прохоренко писал(а): Кто не сдал все лабы, к сессии не допускается, а потом вынужден ходить на платные дополнительные занятия для подготовки к экзаменам. Финансовые потери -- один из самых доходчивых аргументов Вот не помогает! В этом году даже летнюю школу устроили - по 3500 за дисциплину. Бесполезно! Как не делали - так и не делают. Выгнать 5 человек - невозможно, так как группу расформируют. Мне-то пофигу, а вот завкаф и директор института - те резко против. |
Автор: | Валерий Лаптев [ Четверг, 13 Сентябрь, 2012 09:57 ] |
Заголовок сообщения: | Re: Семантический редактор |
Владислав Жаринов писал(а): [...] Тогда и студент (не каждый, но всё-таки), попробовав типовую схему на одной лабе, посмотрев, что из этого выходит, может прийти как-то к преподу и сказать: "- А дайте мне права на запись - хочу процесс выполнения лабы улучшить (новую функцию в библиотеку добавить etc)!". И тут есть повод задать обычные три вида рабочих вопросов: "Зачем?", "Что?", "Как?"... Чтобы: Валерий Лаптев в viewtopic.php?p=74167#p74167 писал(а): ... по мере обучения "вожжи" можно отпускать. В то же время встаёт другой вопрос - а есть ли мотивация у преподов (в нынешней системе оценок от другой московской ) организовывать и вести дело к такому результату?.. Именно к подобной среде я сремлюсь. Работы - выше крыши. Преподы, которые будут ПОСЛЕ нас, получат уже наработанный вариант, который смогут изменять, обновлять, достраивать под себя. |
Автор: | Info21 [ Четверг, 13 Сентябрь, 2012 10:21 ] |
Заголовок сообщения: | Re: Что говорят в сети о семантическом редактировании :) |
Сергей Прохоренко писал(а): Мозги-то еще сырые. Чётто у каких-нибудь американских студентов они не настолько сырые.
|
Автор: | Сергей Прохоренко [ Четверг, 13 Сентябрь, 2012 11:07 ] |
Заголовок сообщения: | Re: Что говорят в сети о семантическом редактировании :) |
Info21 писал(а): Сергей Прохоренко писал(а): Мозги-то еще сырые. Чётто у каких-нибудь американских студентов они не настолько сырые.А я читал, что такие же. С Computer Science на младших курсах вылетает треть, если не больше. Да и кино рисует ту же картину: сомнительные развлечения на первом месте. Хотя студентами там становятся в более старшем возрасте. В престижных вузах ситуация лучше, но она и в российских престижных вузах лучше. Не стоит думать, что в Америке вода более жидкая, а люди взрослеют раньше. |
Автор: | Info21 [ Четверг, 13 Сентябрь, 2012 15:23 ] |
Заголовок сообщения: | Re: Что говорят в сети о семантическом редактировании :) |
Сергей Прохоренко писал(а): Не стоит думать, что в Америке вода более жидкая, а люди взрослеют раньше. Ну, я основываюсь на личных наблюдениях.Американская молодежь все-таки менее инфантильна. |
Автор: | Владислав Жаринов [ Пятница, 14 Сентябрь, 2012 09:40 ] |
Заголовок сообщения: | Re: Семантический редактор |
Валерий Лаптев в viewtopic.php?p=74714#p74714 писал(а): Владислав Жаринов в viewtopic.php?p=74704#p74704 писал(а): [...] Тогда и студент (не каждый, но всё-таки), попробовав типовую схему на одной лабе, посмотрев, что из этого выходит, может прийти как-то к преподу и сказать: "- А дайте мне права на запись - хочу процесс выполнения лабы улучшить (новую функцию в библиотеку добавить etc)!". И тут есть повод задать обычные три вида рабочих вопросов: "Зачем?", "Что?", "Как?"... Чтобы: Валерий Лаптев в viewtopic.php?p=74167#p74167 писал(а): ... по мере обучения "вожжи" можно отпускать. В то же время встаёт другой вопрос - а есть ли мотивация у преподов (в нынешней системе оценок от другой московской ) организовывать и вести дело к такому результату?.. Именно к подобной среде я сремлюсь. Работы - выше крыши. Преподы, которые будут ПОСЛЕ нас, получат уже наработанный вариант, который смогут изменять, обновлять, достраивать под себя. И вот Ваше согласие можно понимать так, что и для вашей команды главное - именно поддержка профессионального подхода к разработке как к обычной организованной деятельности. Т.е. среда предоставляет систему АРМов для производственных мощностей по выпуску моделей решения задач такими же по сути мощностями - моделированными в среде. Ну а разрабатываемый софт - естественное следствие реализации целей разумной автоматизации моделируемых рабочих мест и связей между ними... И для учебки мы просто специализируем подход и среду. В чём и замечания Сергея, подкреплённые Вашими, можно учесть. Просто меняя схему оценки для случая учебных работ полностью - так, чтобы там действительно стимулы фигурировали только нематериальные, например... Но обязательно предоставляя возможность попробовать и приложимые профессиональные схемы оценки - как именно элемент образования связи с промышленностью... Ну и специализация языкового базиса из того же ряда... Кстати, тут надо думать, как решать с вещами вроде описанных здесь: viewtopic.php?p=74627#p74627 - очевидно, по мере появления вопросов/решений выскажетесь?.. |
Автор: | Валерий Лаптев [ Пятница, 14 Сентябрь, 2012 12:28 ] |
Заголовок сообщения: | Re: Семантический редактор |
1. Естественно, мы начали с того, что ближе нам: с начального обучения программированию (императивному). Стимулировали нас два проекта: КуМир и Школьная сборка Ткачева. Но идеи зрели давно. Особенно идеи включить в обучающую среду автоматизацию оценивания - это я думал давно и идеи вынашивал давно. Тут много работы, но начало есть. Например, мой аспирант защитил диссер по оценке качества объектно-ориентированных проектов. На основе метрик с помощью нечетких нейронных сетей Ванга-Менделя можно хоть как-то оценить качество. Там дело усугублялось текстовым представлением кода программы, а в семантическом редакторе сразу имеем семантическое дерево и соответствующие метрики много легче собирать. Можно и новые разработать - удобные именно для этого представление. Более того, оценивание на основе сравнения с эталоном - это именно для учней использовать, а оценивание на основе измерений кода - тут и профессиональные проги можно оценивать (и курсовые тоже, между прочим... ) 2. Одновременно сейчас у меня пацан уже 3 курса делает среду по автоматам. Начал с конечных, но задача поставлена: включить UML и Дракон (для рисования автоматов в этих нотациях) с генерацией кода из схемы. Потом соединим с семантическим редактором - получится совсем хорошо. Надеюсь, он не пойдет зарабатывать деньги, а останется в магистратуре и аспирантуре... 3. Основной разработчик не собирается останавливаться на обучающей среде. Сейчас две девочки 4 курса озадачены сделать к концу семестра сайт, на котором начнется обсуждение всех идей и реализаций. ИМХО профессиональная версия должна обязательно иметь конвертер с один-два промышленных языка: в ветку С-подобного синтаксиса и ветку Паскале-подобного синтаксиса. Это должно произойти в следующем годе. |
Автор: | Сергей Прохоренко [ Пятница, 14 Сентябрь, 2012 16:25 ] |
Заголовок сообщения: | Re: Семантический редактор |
Валерий Лаптев писал(а): 1. Естественно, мы начали с того, что ближе нам: с начального обучения программированию (императивному). Стимулировали нас два проекта: КуМир и Школьная сборка Ткачева. Но идеи зрели давно. Особенно идеи включить в обучающую среду автоматизацию оценивания - это я думал давно и идеи вынашивал давно. Тут много работы, но начало есть. Например, мой аспирант защитил диссер по оценке качества объектно-ориентированных проектов. На основе метрик с помощью нечетких нейронных сетей Ванга-Менделя можно хоть как-то оценить качество. Там дело усугублялось текстовым представлением кода программы, а в семантическом редакторе сразу имеем семантическое дерево и соответствующие метрики много легче собирать. Можно и новые разработать - удобные именно для этого представление. Более того, оценивание на основе сравнения с эталоном - это именно для учней использовать, а оценивание на основе измерений кода - тут и профессиональные проги можно оценивать (и курсовые тоже, между прочим... ) С метриками можно "закопаться". Уж больно это субъективный подход, сильно зависящий от качества модели оценки и начального набора параметров. Знаю это по собственному опыту - сам занимался нейронными сетями. Существует более жесткий способ оценивания: прохождение множества (всех!) последовательных тестов на основе выданных заранее тестовых данных. Тесты могут быть на скорость выполнения, на объем используемой оперативной/дисковой памяти, на обработку некорректных данных или отказов, на обработку объемных, разнотипных или сложных данных, на использование/неиспользование каких-то библиотек, конструкций и т.п. в коде, на отсутствие предупреждающих сообщений компилятора, отсутствие утечек памяти и т.д. Тестовые задания могут требовать последовательного изменения программного кода, что проверит студента на способность создавать код, пригодный к рефакторингу и существенным изменениям. В МАИ задания конкретизируются и даже изменяются уже в ходе выполнения (обычная практика, когда заказчик/преподаватель не знает точно, чего хочет), тесты обычно заранее неизвестны студентам, а сообщения тестирующей программы, которые сообщаются студентам, лаконичны и требуют творческой интерпретации. В основе тестирования лежит отношение к качеству не как к совокупности более или менее субъективно оцениваемых свойств и характеристик программы, а как способность программы соответствовать всем предъявляемым требованиям (удовлетворять потребности). То есть, в основе оценки лежит конечный результат. При этом студент, конечно, должен продемонстрировать определенные знания, умения и навыки. Но эти знания, умения и навыки не оцениваются исходя из метрик, а включаются непосредственно в тестовое задание как непременное требование. Конечно, профессиональные программы невозможно оценить с помощью тестов, поскольку программы сильно отличаются друг от друга. Но для учебных программ тестирование как метод оценки вполне применим, так как учебные задания комбинируются из многократно выверенных подзаданий. Валерий Лаптев писал(а): 2. Одновременно сейчас у меня пацан уже 3 курса делает среду по автоматам. Начал с конечных, но задача поставлена: включить UML и Дракон (для рисования автоматов в этих нотациях) с генерацией кода из схемы. Потом соединим с семантическим редактором - получится совсем хорошо. А не хотите сделать сниппет конечного автомата прямо в структурном редакторе (как многоветочную конструкцию наподобие "длинной" формы условного оператора)? |
Автор: | Владислав Жаринов [ Пятница, 14 Сентябрь, 2012 20:31 ] |
Заголовок сообщения: | Re: Семантический редактор |
А почему бы и нет?.. Но юмль-то здесь упомянут, наверное, в "математическом" смысле - т.е. речь идёт не об очередном его "прецизионировании до экзекутабельности"?.. А о поддержке автоматного графа как формы спецификации задач в редакторе... с дальнейшей генерацией программы (маршруты которой м.б. представлены как вариант дракон-схемами)?.. И с учётом известного о снятии неопределённостей для алгоритмизации - что обсуждалось, допустим, здесь: viewtopic.php?p=71826#p71826?.. |
Автор: | Владислав Жаринов [ Пятница, 14 Сентябрь, 2012 20:37 ] |
Заголовок сообщения: | Re: Семантический редактор |
Валерий Лаптев писал(а): ... Да, и смысл в том, чтобы иметь средства для разработки в среде и того же сайта... и для начала самой среды.3. Основной разработчик не собирается останавливаться на обучающей среде. Сейчас две девочки 4 курса озадачены сделать к концу семестра сайт, на котором начнется обсуждение всех идей и реализаций. ИМХО профессиональная версия должна обязательно иметь конвертер с один-два промышленных языка: ... Именно поэтому здесь: viewtopic.php?p=74620#p74620 обсуждалось в таком смысле... |
Автор: | Валерий Лаптев [ Суббота, 15 Сентябрь, 2012 06:12 ] |
Заголовок сообщения: | Re: Семантический редактор |
Владислав Жаринов писал(а): А почему бы и нет?.. Но юмль-то здесь упомянут, наверное, в "математическом" смысле - т.е. речь идёт не об очередном его "прецизионировании до экзекутабельности"?.. А о поддержке автоматного графа как формы спецификации задач в редакторе... с дальнейшей генерацией программы (маршруты которой м.б. представлены как вариант дракон-схемами)?.. И с учётом известного о снятии неопределённостей для алгоритмизации - что обсуждалось, допустим, здесь: viewtopic.php?p=71826#p71826?.. и УМЛ и Дракон - это стандартные средства представления конечных автоматов. Ничего специально изобретать не придется. С драконом я меньше знаком, а в УМЛ просто есть диаграмма состояний - непосредственное изображение конечного автомата. |
Автор: | Сергей Прохоренко [ Суббота, 15 Сентябрь, 2012 10:26 ] |
Заголовок сообщения: | Re: Семантический редактор |
Валерий Лаптев писал(а): в УМЛ просто есть диаграмма состояний - непосредственное изображение конечного автомата. Текстовая форма (в PureBuilder) описания и редактирования конечного автомата, опирающаяся на непосредственно редактируемую таблицу переходов, может быть, не так привлекает внимание, зато гораздо менее трудоемка для программиста и позволяет автоматизировать многие его действия. Это значительно понизит "входной барьер" использования конечных автоматов. Ведь большинство не использует конечные автоматы, так как рассчитывает обойтись полумерами, а когда в разработку уже инвестировано много времени и усилий, уже поздно менять парадигму. Во многих языках программирования существуют даже специальные DSL и библиотеки для описания конечных автоматов. Если же непременно нужно увидеть графическое представление, то на основе имеющейся таблицы переходов может быть автоматически сгенерирована диаграмма состояний - хоть обычная, хоть UML-овская. Это гораздо проще, чем строить диаграмму состояний вручную и разрабатывать специальные инструменты для ее редактирования. |
Автор: | Валерий Лаптев [ Суббота, 15 Сентябрь, 2012 17:12 ] |
Заголовок сообщения: | Re: Семантический редактор |
Таблица переходов сделана с самого начала. И тут мы с окрября плотно садимся обсуждать реальные режимы работы и представления автоматов на экране. То есть начнется реальное проектирование уже техническое. Сейчас - только архитектурное и эксизное. |
Автор: | Владислав Жаринов [ Воскресенье, 16 Сентябрь, 2012 13:26 ] |
Заголовок сообщения: | Re: Семантический редактор |
Понятно. Т.е. нормальное математическое представление (как элемент спецификации) включать - а не весь конгломерат юмля тянуть... Это актуально и в свете замечаний по ДРАКОНу. Например, того же Алмазова. Он на Спейсе как бы даже предубеждение к языку стал переносить на личности... Ну, лично для меня подобные вещи служат не к дискуссиям со столь же неотразимыми аргументами... - а к дополнительному анализу позиции собеседника. И вот что можно сказать по существу. Он именно предпочитает формализацию математическую (автоматного графа), считая, что информатизация делает модель плохой - и текстовая тоже. Понимая, конечно, что без этого нельзя, если хотим автомат реализовать технически... Но как бы лучше, чтобы человек с программно строго формой дела не имел.
Есть и ещё одна сторона дела. Спецификации-то м.б. и не автоматными. Вот есть модельные программы для систем процессов. Автоматы там внутрях (скажем, для описания протоколов взаимодействия) м.б. полезны. Но сами целевые действия не обязательно к ним сводить удобно.
И здесь важно ещё - как связать спецификацию и реализацию. Лучше бы однозначно - так, чтобы было видно, какие понятия кода чем специфицированы.
|
Автор: | Владислав Жаринов [ Среда, 19 Сентябрь, 2012 09:56 ] |
Заголовок сообщения: | Re: Семантический редактор |
Кажется, понял... перечитывая Новикова... ну и с учётом некоторых других других источников отсюда: viewtopic.php?p=73665#p73665. При этом то, что формализовано, в данном случае плюс - помогает построить "систему языков". Как обычно, идём от моделирования/формализации по Леонтьеву-Грековой-Фридланду. Короче. Озадачился построитель-"сочинитель" достижением некоей цели - сам или извне, неважно. Или даже просто взялся за некую предметку и смотрит - а чего бы в ней можно достичь? Подумал... и появился некий образ... "нетекстовый, многомерный какой-то..." ((С) И. Ермаков ). В таком смысле, что: "Хачу! Чтобы из этого получилось такое при сяких условиях!". Всё, уже можно браться за редактор. Берёт он планшет... или смартфон (да-да, граждане разработчики, там тоже среда должна работать... и не просто, а бегать... не требуя гигов оперативки, как некоторые интегрированные решения ). Так вот, значит. Открыл редактор и создал структуру. Под именем, которое дал своей модели (задачи, предметки). Будет, само собой, интегрированный документ типа "проект" (в смысле сказанного здесь: http://forum.easyelectronics.ru/viewtop ... 47#p204947). Выбрал язык "родной", организацию "линейная" - открылась трёхколонная вьюшка. Уже обсуждалась - кому надо, может найти подробно - а что важно, далее напомню.
В левой колонке (она у нас математическая) пишет то же самое, но логически обоснованно. Т.е., формулирует Дано и Надо как соотношения между матемобъектами, а между ними - доказательство решения в целом. Как у Новикова для алгоритмов. Если сам из "неявно поощрённых" - то идёт за этим к коллеге-аналитику, владеющему математикой. В средней колонке (она "информатическая" в терминах уже Фридланда) на "родном" языке формализации предполагается псевдокод. В структурных скобках, само собой... и на национальном языке. Сам построитель пишет там что-то - например, как результат пошаговой детализации. В результате псевдокод может получиться в такой форме, как у Новикова - но разумнее предположить, что как у Вирта или Потопахина в "Решении сложных задач" - т.е. на "родном" ТЯС. Щаз объясню, почему. Штука в том, что границы между стадиями, на которые я разделил процесс по Фридланду, условные (как и между уровнями Фридланда). Что и было показано выше - у нас фактически получилась не чисто "качественная", предметная формализация - а с переходом к логико-математической. А дальше будем так же плавно (или не очень ) переходить от математики к информатике. На самом деле, конечно, в любом случае будут качественные изменения - хотя бы те, которые Фридланд описал. Качественный переход здесь прежде всего будет связан с выбором системы абстракций задачи (предметки). В общем, парадигмы информоделирования (программирования машины, инструктирования человека). Бодаются по этому поводу много (на КЫВТ.рф, например ) - а практический смысл в том, что часто надо с т.зр. более чем одной парадигмы на предмет посмотреть... И как же дать такую возможность нашему построителю? Так вот. Теперь сочинитель посмотрел на это, подумал... и снова появился образ. Типа: "А вот как это можно описать в виде абстрактной программы!". Т.е. как раз в форме, принятой у Новикова (только не забывая про абстрактные типы данных - он не всегда их приводит, часто в силу тривиальности, иной раз - очевидно, ради сокращения изложения). И тут он снова берётся за девайс (гаджет) с редактором, открывает тот же документ-проект. И создаёт там новую структуру. Под именем той же модели - но на "математическом" языке. Причём как вариант (среда это допускает). Почему, опять же дальше будет ясно. Снова выбирает линейную организацию. Только теперь уже начинает, скорее всего, со средней колонки. Допустим, он придумал формализацию точно по Новикову - т.е. программу на математизированном импер-прогязыке. Вот её и записывает (только придётся при жёсткой структурности без явных БП и множественных выходов). Ну, к каждой строчке - связанный коммент в правой колонке - если надо. Левую оставил пустой (раз он у нас "неявно поощрённый" )...
Так получился вариант спецификации. Который можно показать руководителю работ. Если проект для "критической" предметки - то шеф посмотрит и скажет: "А чем докажешь? Вон разрабы не проверили как следует - видел, чего получилось?!". Если решение у Новикова (Вирта, Гриса, Дейкстры...) целиком списано - то можно и доказательства оттуда представить. Но обычно так не получается - используются наработки, которые по опыту/публикациям вроде как должны работать.
Ну, пошёл сочинитель... в библиотеку/сеть... нашёл, почитал, как-то заполнил левую колонку для отдельных мест структур... Принёс показать аналитику опытному - всё ли правильно и как дальше. Тот посмотрел и говорит: "Ну, тут нормально, здесь лажа... это обосновывается так... а это вообще только при таких допущениях...".
Решил сочинитель пойти ещё к другому аналитику. Тот почитал то, что уже написано. Потом задумался и говорит: "Слушай, а вообще-то зачем именно так проверять? Вон у меня стоит модел-чекер... сейчас составим модель, сформулируем требования... тебе чего проверить-то надо?..". Читатель уже, возможно, догадался, что будет дальше. Правильно - открывает аналитик проект в инсталляции среды на своём АРМе из репоза конторы (или прямо на девайсе коллеги его локальную копию)... и создаёт там новую модель. Как другой вариант на своём "математическом" языке.
Ну, пусть чекер - это Спин, так что язык модели - Промела+логика требований.
Однако наш сочинитель решил подстраховаться. И пошёл к ещё одному аналитику. Тот посмотрел - и сказал: "Подождите-подождите... зачем здесь так? Я ясно вижу, как это можно реализовать композицией функций без побочных эффектов!". Что дальше? Правильно - создаётся ещё одна модель... теперь уже на функционально-математическом языке... Т.к. я по своей математической культуре недалеко от нашего главного героя ушёл - то не могу сказать абсолютно точно, как этот аналитик будет обосновывать её корректность - но понятно, что при принятой общей организации моделей результаты появятся в крайних колонках - а в средней будет сообственно функциональщина в нотации, принятой в среде. Чего там за синтаксис (и точная семантика за ним) будет - я тоже не знаю - вы, авторы редактора, решайте... я вот прагматику вам набросал... Теперь у нашего героя голова совсем пошла кругом... И решил он... правильно... а очередной аналитик... правильно, сказал: "Эврика! Так мы же можем задать здесь предметную область через факты и отношения для исчисления предикатов первого порядка!". И дальше... правильно... новая модель... теперь уже на логико-математическом языке... например, на Прологе...
А вообще-то выходит, что некий программный продукт уже написан... причём дважды (если для нашей функциональщины тоже есть прикладная среда). Ну а ещё один аналитик и объяснять ничего не стал - взял да составил структуру классов типа Эйффелевской... только вместо инвариантов составил N-мерную VMT, сказав при этом: "- Знаем мы эти инварианты классов...". Только без всякого юмля... примерно в той форме, как у Мейера и сделано...
Но. Т.к. мы ещё не все возможности редактора рассмотрели - то волшебник Дед Секрет не хочет отдать нам предмет... в смысле, готовый продукт.... А говорит ехидно (устами шефа): "А откуда наши клиенты возьмут платформы для вашего кода?! Идите и пишите экзешники!" Снова вошёл в проект, набросал состав команды в части реализации, установил сроки. График-то работ уже задан как типовой - если что, шеф корректирует... при необходимости с командой советуясь... И пошли теперь уже чисто прогеры работать... Но т.к. они не тупые кодеры - то тем, что уже было написано, не пренебрегают...
И вот тут что важно? В каталог включаются элементы не на основании чьего-то мнения в статье или в посте. А имеющие достоверные теоретические обоснования и подтверждённую практику применения. Т.е. по такому же принципу, что и конструкции деталей "их машин" ((С) Б. Мейер) и сооружений.
Причём речь не только о коде. Но и о спецификациях, кладущихся в его основу. И об архитектурных решениях - с т.зр. классификации, скажем, такой: И. Ермаков в http://metasystems.ru/download/science/ ... 10-eie.pdf, Разд. II.4 писал(а): ... - т.е. двигаемся к принципам ЕСКД - не только виды схем по наполнению связей (электрика/гидравлика и пр. материальные, а в ИТ - данные) - но и типы схем по назначению.
2) Внутрипрограммные конструктивные схемы; 3) Несущее программное обеспечение (middleware), которое обеспечивает выполнение, взаимодействие и управление в распределённых системах; 4) Межпрограммные конструктивные схемы, применяемые в распределённых системах; 5) Средства проектирования архитектуры, системного анализа, спецификации требований).
Раз - и АСД для средних столбцов превратились в АТ-схему типов... где мы и области видимости, и передачи параметров, и указательные связи видим нагляднее... ну а комменты/математика пошла как примечания к АТ-вершинам... И всё на отдельных вкладках, допустим... И ещё. Модель на инфор-языке (программирования ВУ) можно рассматривать как реализацию какой-то из спецификаций на одном из математических языков. Но. В общем случае возможны заметные отличия. Может не совпадать и архитектура. Т.е. невозможно прямо сопоставить каждому специф-элементу один элемент реализации - или несколько, ведущих себя в модельной связке как один. И/или если и можно соспоставить - то принципы связи будут не эквивалентны. Т.е. реализация должна иметь своё обоснование (что и показано выше). Единственно что будет со всем структурно совпадать - это исходная постановочная модель на "родном" языке... она же без структурирования решения... Это весьма наглядно для случая проверки моделей - обычно такая модель весьма упрощает суть решения. Ну и права доступа нужны, как мы видим. Можно предположить, что по умолчанию каждый должен видеть все спецификации и иметь возможность писать в их комменты. Далее всё настраивается. |
Страница 27 из 34 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |