Это было как-то раз в ФИДО, лет 7 назад...
Опубликовано Serguei_Tarassov в вт, 02/10/2007 - 18:25.И была дискуссия на тему кризиса в софтостроении. И о сравнении, мол в железостроении все шоколадно. Ну, или почти. А в софтостроении не хватает аналогичного компонентного подхода. И тогда я подумал вот о чем.
Дело не в компонентности, а в том, что для hardware используется конечноавтоматная модель, обеспечивающая полноту тестирования. Во-вторых, hardware работает с фиксированной тактовой частотой, т.е. обеспечивает на выходе сигнал в заданный интервал времени, software - практически никогда не обеспечивает. В-третьих, у более отдаленных аналогов - кирпичей - характеристик (внешних и внутренних) на порядки меньше, чем у программных "кирпичей".
Когда для софтовых компонентов все это будет выполняться, тогда и можно будет говорить о "высшей форме", позволяющей их массово тиражировать и повторно использовать, а пока это очередное частное решение, в частности же (но не в массовости) и удобное. Постоянно сталкиваюсь с нарушениями базовых концепций в угоду маркетингу. Посему "черные ящики", к сожалению, оказываются на практике "сферическими конями в вакууме", требующими, к тому же постоянной доработки напильником и закраски черным цветом подпиленных мест.
"Блочный" подход в стиле hardware-компонентов тоже не стал панацеей, хотя и занял свое место. Тому есть несколько причин:
(1) в hardware имеем прохождение сигнала со скоростью тактовой частоты (цифра) или света (аналог), в то время как в software время отклика на выходе практически всегда зависит от поданной на вход информации.
(2) число возможных состояний конечного автомата в не самом сложном бизнес-software-компоненте на порядки выше, чем в hardware-микросхеме. Протестировать все состояния не представляется возможным за разумное время. А если возможно, то это относительно простые компоненты вроде вычисления математических функций или STL, для которых, опять таки, верен п(1).
Таким образом, собрав из кучи микросхем устройство мы уверены, что оно будет работать с единой тактовой частотой. Собрав из кучи компонентов программу мы не можем даже приблизительно оценивать время отклика на выходе. Когда говорят: "Прошло время программ - "черных ящиков с большой красной кнопкой" - не верьте. Это противоречит принципу инкапсуляции. Она - как беременность, либо есть, либо ее нет.
- Блог пользователя Serguei_Tarassov
- Добавить комментарий
- Просмотров 1008
