Это было как-то раз в ФИДО, лет 7 назад...

И была дискуссия на тему кризиса в софтостроении. И о сравнении, мол в железостроении все шоколадно. Ну, или почти. А в софтостроении не хватает аналогичного компонентного подхода. И тогда я подумал вот о чем.

Дело не в компонентности, а в том, что для hardware используется конечноавтоматная модель, обеспечивающая полноту тестирования. Во-вторых, hardware работает с фиксированной тактовой частотой, т.е. обеспечивает на выходе сигнал в заданный интервал времени, software - практически никогда не обеспечивает. В-третьих, у более отдаленных аналогов - кирпичей - характеристик (внешних и внутренних) на порядки меньше, чем у программных "кирпичей".

Когда для софтовых компонентов все это будет выполняться, тогда и можно будет говорить о "высшей форме", позволяющей их массово тиражировать и повторно использовать, а пока это очередное частное решение, в частности же (но не в массовости) и удобное. Постоянно сталкиваюсь с нарушениями базовых концепций в угоду маркетингу. Посему "черные ящики", к сожалению, оказываются на практике "сферическими конями в вакууме", требующими, к тому же постоянной доработки напильником и закраски черным цветом подпиленных мест.

"Блочный" подход в стиле hardware-компонентов тоже не стал панацеей, хотя и занял свое место. Тому есть несколько причин:
(1) в hardware имеем прохождение сигнала со скоростью тактовой частоты (цифра) или света (аналог), в то время как в software время отклика на выходе практически всегда зависит от поданной на вход информации.
(2) число возможных состояний конечного автомата в не самом сложном бизнес-software-компоненте на порядки выше, чем в hardware-микросхеме. Протестировать все состояния не представляется возможным за разумное время. А если возможно, то это относительно простые компоненты вроде вычисления математических функций или STL, для которых, опять таки, верен п(1).

Таким образом, собрав из кучи микросхем устройство мы уверены, что оно будет работать с единой тактовой частотой. Собрав из кучи компонентов программу мы не можем даже приблизительно оценивать время отклика на выходе. Когда говорят: "Прошло время программ - "черных ящиков с большой красной кнопкой" - не верьте. Это противоречит принципу инкапсуляции. Она - как беременность, либо есть, либо ее нет.

Ответить

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <b> <i> <strike> <center> <del> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <p> <br> <h1> <h2> <h3> <h4> <img> <hr> <sup> <sub> <blockquote>
  • Use <!--pagebreak--> to create page breaks.
  • You can enable syntax highlighting of source code with the following tags: <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

Captcha
Вопрос для предотвращения спама
Copy the characters (respecting upper/lower case) from the image.