They Write the Right Stuff — небольшая статья о процессе разработки софта для шатлов. Интересно, хотя и на английском, к сожалению.
This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program -- each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors.
PS. Понятно, что вряд ли здесь есть хоть кто-нибудь, кто пишет софт для космических кораблей или ядерных реакторов, и что для 99.9% читателей все описанное там выглядит как фантастика. Но, во-первых, это просто интересно, да и учится нужно всегда. И, во-вторых, в заключении статьи так и говорится:
And that's the point: the shuttle process is so extreme, the drive for perfection is so focused, that it reveals what's required to achieve relentless execution. The most important things the shuttle group does -- carefully planning the software in advance, writing no code until the design is complete, making no changes without supporting blueprints, keeping a completely accurate record of the code -- are not expensive. The process isn't even rocket science. Its standard practice in almost every engineering discipline except software engineering.
Здравствуйте, eao197, Вы писали:
E>Но, во-первых, это просто интересно, да и учится нужно всегда. И, во-вторых, в заключении статьи так и говорится: E>
E>And that's the point: the shuttle process is so extreme, the drive for perfection is so focused, that it reveals what's required to achieve relentless execution. The most important things the shuttle group does -- carefully planning the software in advance, writing no code until the design is complete, making no changes without supporting blueprints, keeping a completely accurate record of the code -- are not expensive. The process isn't even rocket science. Its standard practice in almost every engineering discipline except software engineering.
Klapaucius утверждает, что стоимость создания и сопровождения ПО шаттлов была самой высокой среди ПО того времени. Надо у него выпытать, откуда такие сведения.
А то может действительно — не так то все и просто?
E>>And that's the point: the shuttle process is so extreme, the drive for perfection is so focused, that it reveals what's required to achieve relentless execution. The most important things the shuttle group does -- carefully planning the software in advance, writing no code until the design is complete, making no changes without supporting blueprints, keeping a completely accurate record of the code -- are not expensive. The process isn't even rocket science. Its standard practice in almost every engineering discipline except software engineering.
Klapaucius утверждает, что стоимость создания и сопровождения ПО шаттлов была самой высокой среди ПО того времени. Надо у него выпытать, откуда такие сведения.
Если вы прочитаете статью, то увидите непосредственно перед процитированным мной абзацем:
The group has one customer, a smart one. And money is not the critical constraint: the groups $35 million per year budget is a trivial slice of the NASA pie, but on a dollars-per-line basis, it makes the group among the nation's most expensive software organizations.
Так что Klapaucius сказал в точности то же самое.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>They Write the Right Stuff — небольшая статья о процессе разработки софта для шатлов. Интересно, хотя и на английском, к сожалению. E>
E>This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program -- each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors.
Прямо скажем, эти цифры меня не удивляют. Это нормальный уровень ошибок для грамотно написаного кода.
Здравствуйте, Black_brick_road, Вы писали:
B__>Сделать дорого и хорошо — не самая большая заслуга. Сделать дешево и приемлемого качества намного ценнее
E>This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program -- each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors.
Дык им проще, учитывая:
Что бы программа работала без ошибок, не передавайте управление операционной системе.
ЗЫ: и это не шутка, современная ОС — сложное сплетение разнородного софта, кторый кто только не пишет...
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, gear nuke, Вы писали:
GN>Дык им проще, учитывая: GN>
Что бы программа работала без ошибок, не передавайте управление операционной системе.
GN>ЗЫ: и это не шутка, современная ОС — сложное сплетение разнородного софта, кторый кто только не пишет...
А в шаттлах есть отдельная ОС? Может там программа и есть сама себе и швец, и жнец и на железяке игрец? То есть один большой монолит. Или в целях устойчивости разбита на независимые подсистемы?
Здравствуйте, trophim, Вы писали: T>А в шаттлах есть отдельная ОС? Может там программа и есть сама себе и швец, и жнец и на железяке игрец? То есть один большой монолит. Или в целях устойчивости разбита на независимые подсистемы?
Угу. В целях устойчивости разбита на пять независимых одинаковых подсистем; параллельно работают три, а остальные две на случай подмены. Каждое решение принимается путем голосования всех трех систем. Шестой экземпляр стоит на земле, к нему подключен runtime-дебаггер, чтобы если что упало, то дамп не скачивать, а получать локально.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, trophim, Вы писали: T>>А в шаттлах есть отдельная ОС? Может там программа и есть сама себе и швец, и жнец и на железяке игрец? То есть один большой монолит. Или в целях устойчивости разбита на независимые подсистемы? S>Угу. В целях устойчивости разбита на пять независимых одинаковых подсистем; параллельно работают три, а остальные две на случай подмены. Каждое решение принимается путем голосования всех трех систем. Шестой экземпляр стоит на земле, к нему подключен runtime-дебаггер, чтобы если что упало, то дамп не скачивать, а получать локально. S>)
Здравствуйте, trophim, Вы писали:
T>Вы не против, если я патент оформлю на это дело?
X-29 сам по себе не может летать устойчиво. Система управления 40 раз в секунду корректирует положение аэродинамических рулей, расположенных как на передней, так и на задней кромке крыльев. Если все три цифровых контура отказывают, то в дело вступает двукратно резервированная аналоговая система, возможностей которой достаточно, чтобы продолжать полет.
X-29 сам по себе не может летать устойчиво. Система управления 40 раз в секунду корректирует положение аэродинамических рулей, расположенных как на передней, так и на задней кромке крыльев. Если все три цифровых контура отказывают, то в дело вступает двукратно резервированная аналоговая система, возможностей которой достаточно, чтобы продолжать полет.
В отличие от X-29, он мог обходиться без системы управления полетом, и это, по-видимому, спасло его от гибели. Есть сведения, что в четырех из девяти первых полетов компьютер начинал выдавать управляющие воздействия с обратным знаком. Причина, как выяснилось, была в том, что одна из главных программ, разработанная чуть ли не за двадцать пять лет до того и переносившаяся с одной модели на другую, содержала ошибку (деление на ноль), которая в предыдущих системах не приводила к заметным последствиям.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, trophim, Вы писали:
T>>Вы не против, если я патент оформлю на это дело?
S>
X-29 сам по себе не может летать устойчиво. Система управления 40 раз в секунду корректирует положение аэродинамических рулей, расположенных как на передней, так и на задней кромке крыльев. Если все три цифровых контура отказывают, то в дело вступает двукратно резервированная аналоговая система, возможностей которой достаточно, чтобы продолжать полет.
Здравствуйте, eao197, Вы писали:
E>They Write the Right Stuff — небольшая статья о процессе разработки софта для шатлов.
В дополнение, мнение Эрика Синка о выпуске продуктов с ошибками. Небольшая цитата (на английском):
If quality could be obtained without tradeoffs, there would be no problem. However, time is always a constraint. There is a "market window" for your product, and it is closing. After a certain point, the market doesn't want your product anymore. It's too late.
And product quality takes a lot of time. Increases in the quality of your product tend to become an exercise in constantly diminishing returns. Which of the following choices makes more sense?
* Deliver a product today with a quality level that your market considers acceptable.
* Deliver a product one year later with a quality level that is higher than your market requires.
Choosing the second option gives you the warm and fuzzy feeling of building a really high quality product. This is a cool thing. Good developers must have a sense of pride in their craftsmanship, and nothing I say should be construed to diminish the importance of that.
...
Remember, I'm not arguing for crappy software. I'm arguing that building products to please yourself instead of your customers is always a mistake.
Как раз касается большинства читателей RSDN, имхо.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>They Write the Right Stuff — небольшая статья о процессе разработки софта для шатлов. Интересно, хотя и на английском, к сожалению.