2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Программа/алгоритм как линейный оператор
Сообщение26.08.2015, 14:54 
Я занимают разработкой ПО последние 12 лет, в работе постоянно возникает вопрос проектирования, то есть каким образом разбить большую программу на блоки поменьше. На этот счет у программистов есть много эвристик, никто, правда не знает границы их применимости. В итоге проектирование программ это шаманство, которое делается на интуитивном уровне.

Недавно размышляя на эту грустную тему у меня появилась идея, которую в силу своей математической малограмотности, я не могу довести до конца. Я надеюсь мне кто-нибудь сможет подсказать есть ли в нижеследующем смысл и стоит ли копать дальше.

Если бы можно было представить любую программу/функцию в виде матрицы/линейного оператора, то можно найти Жорданову форму этой матрицы. Такая форма, возможно, дала бы программисту очень ценную информацию:
1. Блоки такой матрицы образуются в тех местах, где связи между входом и выходом наиболее тесные, они могу указывать на то, что алгоритмы, обрабатывающие эти входы, следует выделить в отдельный модуль.
2. Требования к программе со временем меняется, связи между входами и выходами тоже. Если время от времени строить такую матрицу и смотреть насколько сильно она отклонилась от "идеальной", можно делать вывод о необходимости изменить структуру программы.
3. Возможно получиться формализовать такие понятия как связанность программы (coupling) и сцепление (cohesion).

Спасибо

 
 
 
 Re: Программа/алгоритм как линейный оператор
Сообщение26.08.2015, 15:29 
kikimora в сообщении #1048057 писал(а):
Если бы можно было представить любую программу/функцию в виде матрицы/линейного оператора, то можно найти Жорданову форму этой матрицы
:shock: :shock: :shock:
нет, нельзя

 
 
 
 Re: Программа/алгоритм как линейный оператор
Сообщение26.08.2015, 16:03 
Линейный оператор — это когда линейная комбинация исходных данных даёт ту же линейную комбинацию результатов. Например, $f(1)=2\to f(2)=4$. Вам виднее, удовлетворяют ли все написанные вами за 12 лет программы этому условию. Если да, то в ваших рассуждениях есть здравое зерно. Мои, увы, явно нелинейны.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group