tag:blogger.com,1999:blog-945648952597344115.post2614144646806620326..comments2023-04-13T14:19:14.308+03:00Comments on Software Design: Задача про датчики: построение функциональной архитектурыAnonymoushttp://www.blogger.com/profile/16148486819764845169noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-945648952597344115.post-74527262060876368252011-11-13T13:46:22.096+04:002011-11-13T13:46:22.096+04:00Эдуард, с работой System Engineering Fundamentals ...Эдуард, с работой System Engineering Fundamentals можно ознакомиться здесь - http://www.dau.mil/pubscats/Pages/sys_eng_fund.aspx<br /><br />Мне, в общем-то, тоже привычнее понятие "функциональная модель". Но я не против "функциональной архитектуры", раз она используется в ряде источников.<br /><br />А вообще, тема проектирования ПО еще только развивается, терминология не устоялась. Так что ничего не вижу страшного в использовании разных терминов для обозначения одного и того же.Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-54585084609692263612011-11-11T16:24:41.600+04:002011-11-11T16:24:41.600+04:00Кирилл, где можно ознакомится с текстом работы Sys...Кирилл, где можно ознакомится с текстом работы System Engineering Fundamentals? Был бы рад почитать.<br /><br />Получается между термином архитектура и модель нет никакой разницы. Зачем вводить тогда лишнее понятие? Это не экономно. И видимо не соответствует реальности. Ясно, что любая архитектура - это модель, но модель - то не архитектура. Мое имо, по архитектуре нельзя легко реализовать систему. По модели невсегда это удается, она должна быть достаточно точна и однозначна.<br /><br />Это, правда, философский разговор. И вести его следует в иной обстановке :)Эдуард Галиаскаровhttps://www.blogger.com/profile/03401289362217079074noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-64845333569278361812011-11-07T10:24:53.313+04:002011-11-07T10:24:53.313+04:001) Функциональная архитектура - официальный термин...1) Функциональная архитектура - официальный термин из работы System Engineering Fundamentals. Согласен, что у нас чаще используется термин "функциональная модель".<br /><br />2) Других критериев я пока не знаю. Думаю, если проектировщик, знает, как реализовать функцию, и она ему не кажется сложной, является предсказуемой в плане затрат, то эту функцию можно счесть элементарной операцией. В конце-концов, функциональный анализ и проектирование тоже делается для людей. Если по разработанной архитектуре легко реализовать систему, то разве этого недостаточно?Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-61054946688791676592011-11-07T09:19:46.154+04:002011-11-07T09:19:46.154+04:00Кирилл, спасибо за ответы.
1) а в чем тогда разниц...Кирилл, спасибо за ответы.<br />1) а в чем тогда разница меджду понятием структура и архитектура, или архитектура и модель. не получается ли что использование слова архитектура дань модному слову?<br /><br />2) т.е. критерием элементарности является субъективная оценка проектировщика? В принципе так часто и бывает, но может есть более точные (объективные ) критерии?Эдуард Галиаскаровhttps://www.blogger.com/profile/03401289362217079074noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-76706792354207320862011-11-06T23:58:25.893+04:002011-11-06T23:58:25.893+04:00Коротко ответы на Ваши вопросы:
1) Да.
2) Да, согл...Коротко ответы на Ваши вопросы:<br />1) Да.<br />2) Да, согласен.<br />3) Элементарная операция - это функция, дальнейшая декомпозиция которой на подфункции (операции) не имеет смысла.Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-89063840519204533402011-11-06T23:54:52.920+04:002011-11-06T23:54:52.920+04:00Эдуард. Это полемика с Гради Бучем, с его абстракц...Эдуард. Это полемика с Гради Бучем, с его абстракциями сущностей, которые он рекомендует строить в процессе проектирования, "так как они прямо соответствуют сущностям предметной области" (стр. 56, 2-го издания). Смысл моей фразы таков: хоть объекты и реальные (т.е. берутся из предметной области), но из них получаются бесполезные классы или, как любит писать Буч, абстракции.Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-35113062730847847562011-11-06T20:38:43.689+04:002011-11-06T20:38:43.689+04:00Правильно ли я понимаю, что следуя цитате "со...Правильно ли я понимаю, что следуя цитате "составить функциональную архитектуру системы, сведя найденные элементарные операции в таблицу"<br />архитектура - это список элементарных операций перечисленных в особой таблице?<br /><br />Какова структура такой таблицы? Если та, что приведена на конечном рисунке, то я бы назвал это иерархическим списком.<br /><br />Еще вопрос уточняющий - что есть элементарная операция, каковы критерии ее элементарности?<br /><br />СпасибоЭдуард Галиаскаровhttps://www.blogger.com/profile/03401289362217079074noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-75100835492907771882011-11-06T20:33:56.111+04:002011-11-06T20:33:56.111+04:00Кирилл, я, конечно, понимаю "гений - парадокс...Кирилл, я, конечно, понимаю "гений - парадоксов друг" (c)Пушкин, но может назовете парочку - "абстрактные объекты реального мира" ;)Эдуард Галиаскаровhttps://www.blogger.com/profile/03401289362217079074noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-9510254471444287062011-11-02T18:59:37.697+04:002011-11-02T18:59:37.697+04:00Эдуард. Я не писал, что метод изобретен мною. Я пи...Эдуард. Я не писал, что метод изобретен мною. Я писал лишь о том, что метод предложен мною. Есть и некоторые доработки - выполнять проектирование процесса по аналогии с тем, как выполняется проектирование технологического процесса для производственных предприятий. Например, разбивать процесс на независимые циклы и т.п. (см. задачу про датчики). <br /><br />См. также кейсы в этом блоге и мои с С.В. Сычевым статьи из списка литературы: http://askofen.blogspot.com/2010/08/blog-post.htmlAnonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-90339613886575513662011-11-02T18:51:48.722+04:002011-11-02T18:51:48.722+04:00Эдуард. У каждой кружки есть своё предназначение. ...Эдуард. У каждой кружки есть своё предназначение. Есть кофейные чашки, есть чашки из чайного сервиза, есть чашки для чайной церемонии, есть походные кружки, кружки офисные, подарочные и т.д. В зависимости от назначения они приобретают нужную форму и размеры, а также - подбирается материал для их изготовления.<br /><br />Если в игру был добавлен объект "смертельно ядовитая трава", то он был добавлен не просто так, а потому что, например, уровень для прохождения без этого объекта - слишком лёгкий. Таким образом, его задача - "усложнить прохождение уровня".Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-30319154711590809862011-11-02T15:42:20.191+04:002011-11-02T15:42:20.191+04:00Кирилл, спасибо. Я понимаю Вашу мысль. Но мое имо,...Кирилл, спасибо. Я понимаю Вашу мысль. Но мое имо, это все проблемы обучения команды, образования в России (возможно). <br />Ну скажите например, каково предназначение кружки?<br />Или в игре Вы используете объект "Смертельно ядовитая трава", скажите, что все эти объекты Вам говорят?<br /><br />Я вовсе не хочу усомнится в Вашей квалификации и успешности применения метода. Правда Вы говорите, что метод изобретен Вами. Не мог ли бы Вы указать статьи, в которых изложены принципы Вашего метода? Просто то что я видел, укладывается в те знания и методы, которые мне известны. В том числе функциональный подход, который известен еще с эры больших ЭВМ.Эдуард Галиаскаровhttps://www.blogger.com/profile/03401289362217079074noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-19970662176102551122011-11-01T23:04:00.306+04:002011-11-01T23:04:00.306+04:00Эдуард. Если бы это был частный случай, то вряд ли...Эдуард. Если бы это был частный случай, то вряд ли бы он повторялся из проекта в проект и от конторы к конторе. Практика показала: оперируя сущностями (классами, объектами, ролями), люди не понимают их функциональный смысл. Ряд разработчиков, приступая к проектированию программы, совершенно не думают о том, что у программы есть какое-то предназначение, что она разрабатывается для чего-то.<br /><br />Большая игра несильно отличается от обычного бизнес-приложения, особенно, её экранная часть. То же есть формочки (экраны), то же есть база данных (конечно, не Oracle и не MS SQL), тоже есть бизнес-слой и слой доступа к данным. Геймлей, ИИ, физика, рендер, конечно, отличаются сильнее, но это никак не влияет на подход к проектированию.<br /><br />Мой подход был протестирован как при разработке бизнес-приложений (в области телекоммуникаций, GPS-навигации, в IDE), так и при разработке игр.<br /><br />В качестве критериев для выбора оптимальной структуры подойдут: количество обрабатываемых и/или хранимых данных, частота запросов на обработку, требуемая сложность/производительность алгоритма и т.п. Всё это хорошо описано в учебниках по алгоритмам и структурам данных.<br /><br />Что касается распределения работы в команде, то, согласно моему опыту, неплохо себя проявляет функциональная декомпозиция, когда человек специализируется в рамках функционального направления. При этом, архитектор или тех. лид создаёт каркас приложения, который потом усилиями команды обрастает "мясом".Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-80347625091611877562011-11-01T15:40:29.935+04:002011-11-01T15:40:29.935+04:00Кирилл. Да, конечно, но то, что проектировщики не ...Кирилл. Да, конечно, но то, что проектировщики не понимают какие функции сопоставляются ролям, проблемы проектировщиков, возможно аналитиков, но в любом случае проблема конкретного частного случая, необобщаемого на все ситуации.<br /><br />К сожалению у меня нет опыта проектирования игр, да и не знаю как и чем Вы руководствовались, когда проектировали игру. Возможно в Вашем случае - это действительно было правильно, но опять -можно ли считать, что Ваш подход - это подход, который всегда обощается?<br /><br />При функциональном подходе в режиме конструирования мы задаем функцию и подбираем под нее структуру ее обеспечивающую. Но где критерий какая структура эффективнее, а какая нет? Обычно он в качественных характеристиках, которые и оказывают влияние на архитектуру. Понимаете просто наличие трех программистов в Вашей компании и потребность выполнять задача максимально быстро, на мой взгляд может оказать больше влияние на архитектуру, чем определенная фича.<br /><br />Т.е. с моей позиции архитектура - это не конструкция, а принцип создания такой конструкцииЭдуард Галиаскаровhttps://www.blogger.com/profile/03401289362217079074noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-90327332968551532572011-11-01T12:59:05.657+04:002011-11-01T12:59:05.657+04:002 Эдуард: Роль - это группа функций, разве не так?...2 Эдуард: Роль - это группа функций, разве не так? Другое дело, что эта группа должна быть составлена правильно, а нередко бывает, что проектировщики обсуждают роли, не понимая, какие этим ролям будут сопоставлены функции.<br /><br />Говорите, функциональный подход - прошлый век? Вот сейчас завершаем работу над игрой, где наиболее сложные задачи были решены как раз при помощи функционального подхода.<br /><br />Мне ближе понятие не архитектура, а конструкция.Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-47601954056620158422011-11-01T08:18:33.316+04:002011-11-01T08:18:33.316+04:00А чем по Вашему отличается понятие роли от того, к...А чем по Вашему отличается понятие роли от того, какие функции исполняет человек, имеющий эту роль?<br />Функциональный подход отличное средство ... прошлого столетия. Картина мира изменилась.<br /><br />И простите, а что Вы сами понимаете под архитектурой?Эдуард Галиаскаровhttps://www.blogger.com/profile/03401289362217079074noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-71299108439716052112011-10-23T11:26:30.535+04:002011-10-23T11:26:30.535+04:002 beasonde: Если думать "объектно", т.е....2 beasonde: Если думать "объектно", т.е. в терминах "начальник" и "подчинённый", то, конечно, ничего не получится, т.к. количество возможных взаимосвязей зашкаливает. Поэтому нужно думать функционально, т.е. не о том, кем является человек в модели управления, а о том, какие функции он выполняет. Нужно выявить эти функции и упорядочить, как и было продемонстрировано при решении задачи про датчики.Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-50299869944132962002011-10-03T13:08:56.090+04:002011-10-03T13:08:56.090+04:00Задача хороша тем, что подходит под концепцию, про...Задача хороша тем, что подходит под концепцию, программирование АСУ ТП сильно отличается от программирования бизнес-приложений. Соответственно решение задачи, подобранной под концепцию, выглядит убедительно. Попробуйте расписать в таких терминах японскую модель управления персоналом, когда у одного человека несколько начальников и несколько сотрудников на одной с ним ступени, и сотрудник взаимодействует со всеми одновременно и учитывает в своей деятельности все входящие замечания от них.beasondehttps://www.blogger.com/profile/09306574981357253532noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-72538578549672578842011-10-03T09:53:35.894+04:002011-10-03T09:53:35.894+04:00Спасибо, Павел. Исправил.Спасибо, Павел. Исправил.Anonymoushttps://www.blogger.com/profile/16148486819764845169noreply@blogger.comtag:blogger.com,1999:blog-945648952597344115.post-74996941640897952192011-10-03T07:59:51.726+04:002011-10-03T07:59:51.726+04:00Пункт 2.6 четвертого рисунка, поправьте, если есть...Пункт 2.6 четвертого рисунка, поправьте, если есть возможность, смешное слово "Пасякаль"Pavelhttps://www.blogger.com/profile/01867914779975161180noreply@blogger.com