espyの日記: ソフトとハードの設計/製造 3
日記 by
espy
オモテのストーリー: 日本のソフトウエア産業、衰退の真因のこのあたりやこのあたりを見て、ソフトの製造って何だろうと思う。
ハードウェアに関しては、
・設計:構造・材料・回路を検討・考案する。
・製造:工場で設計が指定する通り作る。(製造方法の検討はあるが、設計自体はいじらない)
であるのだけれど、
ソフトウェアで設計と製造は分けられるのだろうかと。
・設計:アルゴリズム、データの処理方法やデータ構造を考案する。
・製造:コーディング…?
「ソフトウェアには回路図がない」というのも時々言われるし、なんとなく分かるのだが、
回路図というものに備わっている特徴は、何なのだろうと。
- 設計に基づいた実装の指示ドキュメント(図面)である。
- 使う部品と結線が指定されている。 (部品の仕様書は別ドキュメントである)
- その中を流れる信号の電圧・電流・波形・タイミングについて設計値(目標値)がある。
- 回路図をみんなでレビューできる。
- 回路図には現れない設計項目もある。(基板パタン等)
- 実装結果(→出来上がった基板)の電圧や波形を確認することで、設計値とのズレ(品質)が評価できる。
対するソースコードはどうか。
私は業務で本格的なソースを書くことをした経験が無いので、違っているかも知れないが、
レビューはしづらそうな気がする。それと、品質のチェックも数値比較などはしづらそうな。
部品って、ライブラリだろうか。
回路なら、部品は買ってくるので品質と責任者は明確。プリント基板のパタンについては
回路設計側の責任だけれど。
根本的な間違いが (スコア:1)
> ・設計:構造・材料・回路を検討・考案する。
> ・製造:工場で設計が指定する通り作る。(製造方法の検討はあるが、設計自体はいじらない)
>であるのだけれど、
>ソフトウェアで設計と製造は分けられるのだろうかと。
> ・設計:アルゴリズム、データの処理方法やデータ構造を考案する。
> ・製造:コーディング…?
そうでなくて
・設計:アルゴリズム、データの処理方法やデータ構造を考案する(いわゆる設計)。コーディング(設計図を起こす事に相当)。
・製造:ビルドと配布、インストール。
なのでほとんどが設計。これがわかってないからうまく行かない。
# ソフトウェア開発に工場メタファ持ち込んだバカは(ry)と言いたくなるような状況なのですよ。
Re:根本的な間違いが (スコア:1)
もし、コーディングの前に、実装を規定するようなドキュメントが仮にあったとして (それは“仕様書”なのかも)
longの変数を○個使えとか、規定するわけもなく、それはコーディング担当に任されている。
製造のメタファの話が良く出るのは、品質をどうにかしたいという動機があるから
だと思います。あるいはデスマーチを避けたいとか。
しかしソフトに限ったことでなく、仕事場の身近なところで大きなLSIをコーディングで
作っている人達もデスマ傾向にあって、大規模なコーディングって似た傾向があるのかも。
Re:根本的な間違いが (スコア:1)
動機はそうなんだけど、間違ったメタファを使うと状況は悪化するだけだからダメなものはダメ。だが、本当に悪いのは「やってみたけどダメだった」という記憶が選択的に残らないのかしらん。と思えるくらいこのメタファが蔓延している事なんだよな。
>しかしソフトに限ったことでなく、仕事場の身近なところで大きなLSIをコーディングで
>作っている人達もデスマ傾向にあって、大規模なコーディングって似た傾向があるのかも。
コーディングにはシリアライズを必ず伴うんだけど、ソフトウェアでもシリアライズでなーんか引っかかりを感じる。なので、もしかすると言語に直す事自体に何か無理があるのかも知れない。特にハードは並列動作の部分が多いからシリアライズには向いてないのかも。