2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Программа/алгоритм как линейный оператор
Сообщение26.08.2015, 14:54 


25/08/15
4
Я занимают разработкой ПО последние 12 лет, в работе постоянно возникает вопрос проектирования, то есть каким образом разбить большую программу на блоки поменьше. На этот счет у программистов есть много эвристик, никто, правда не знает границы их применимости. В итоге проектирование программ это шаманство, которое делается на интуитивном уровне.

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

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

Спасибо

 Профиль  
                  
 
 Re: Программа/алгоритм как линейный оператор
Сообщение26.08.2015, 15:29 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Программа/алгоритм как линейный оператор
Сообщение26.08.2015, 16:03 
Заслуженный участник


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group