アカウント名:
パスワード:
ソフトウェア工学の基本にして至高は、「発注者の希望想定している機能がなるべく早く完成すること」です。それに付随して、「開発者はいかに楽をするか、間違えないようにするか」という目的が生じます。
各種科学が周辺環境に制限されるように、ソフトウェア工学もツールやインフラなどに制限されます。他の科学と違うのは、その周辺環境が人によって大幅に異なること。より多くの環境で有効なベストプラクティスは存在しますが、必ず例外があります。銀の弾丸はありません。
例えば地球上ではニュートン力学でほぼ十分でしょう。科学が進歩して宇宙空間に進出すればニュートン力学で
>例えば地球上ではニュートン力学でほぼ十分でしょう。逆に、そういう普遍的な制約はくり込まれてソフトウェア上には現れない様に思えますが、どうなのでしょう。
普遍的で無いから、ソフトウェアでわざわざ記述しないとならなくなるけれど、その様な普遍的でない制約は、第一原理を持たないとしか思えません。(そう考えると、またそう考えた時に限り、「互いに話が通じない」現状を きれいに的確に説明できます。)
普遍的の範囲が狭いだけです。同時に複数の命令は実行できない(何らかの工夫をしている)とか機械語レベルで命令はアトミックであるとか。処理速度はクロックに依存するし、ハードウェア性能は物理的特性に依存する。命令した通りにしか動かないし、命令通りに動かなければバグです。普遍的ではないものをなるべく普遍的なものにしようというのが、言語仕様とかライブラリ、フレームワークなどのプログラム系制約だったりソフトウェア開発の方法論だったりです。それぞれきちんと読めば、なぜそうなっているのか、メリットやデメリットは何か、適用できる範囲はどこかなどが分かります。探せばインタビューなどで述べられているはずです。
ニュートン力学の範囲でも、摩擦を無視できたり出来なかったり。空気抵抗を減らした方がいい分野と増やした方がいい分野と。車なんかだと最適解を導く方法が部分ごとに対立していてバランスを取る必要がありますよね。
>普遍的の範囲が狭いだけです。>普遍的ではないものをなるべく普遍的なものにしようというのが、>探せばインタビューなどで述べられているはずです。自分が知る限り、最良の普遍的な言説でも、ウルトラ5つの誓い程度のことしか言っていないと思います。それもこれも、第一原理の「不在」が原因だと思います。 自分は第一原理の「不存在」とまで言っていいと思いますが、少なくとも「不在」は事実です。
コンピュータの話であれば、全ての計算は論理演算で近似できるということ、ソフトウェア工学の話であれば、コンピュータは決めた通りにしか動かないことと人間は間違えるということです。なのでソフトウェア工学の発展とは、いかに人間に余計なことをさせないか、間違いを排除できるようにするかという歴史になります。はっきり言って当たり前のことなので、ウルトラ5つの誓い程度にしか思えないだけではないでしょうか。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
ちょっと違う (スコア:0)
ソフトウェア工学の基本にして至高は、「発注者の希望想定している機能がなるべく早く完成すること」です。
それに付随して、「開発者はいかに楽をするか、間違えないようにするか」という目的が生じます。
各種科学が周辺環境に制限されるように、ソフトウェア工学もツールやインフラなどに制限されます。
他の科学と違うのは、その周辺環境が人によって大幅に異なること。
より多くの環境で有効なベストプラクティスは存在しますが、必ず例外があります。銀の弾丸はありません。
例えば地球上ではニュートン力学でほぼ十分でしょう。
科学が進歩して宇宙空間に進出すればニュートン力学で
Re: (スコア:0)
>例えば地球上ではニュートン力学でほぼ十分でしょう。
逆に、そういう普遍的な制約はくり込まれてソフトウェア上には現れない
様に思えますが、どうなのでしょう。
普遍的で無いから、ソフトウェアでわざわざ記述しないとならなくなる
けれど、
その様な普遍的でない制約は、第一原理を持たないとしか思えません。
(そう考えると、またそう考えた時に限り、「互いに話が通じない」現状を
きれいに的確に説明できます。)
Re: (スコア:0)
普遍的の範囲が狭いだけです。
同時に複数の命令は実行できない(何らかの工夫をしている)とか
機械語レベルで命令はアトミックであるとか。
処理速度はクロックに依存するし、ハードウェア性能は物理的特性に依存する。
命令した通りにしか動かないし、命令通りに動かなければバグです。
普遍的ではないものをなるべく普遍的なものにしようというのが、
言語仕様とかライブラリ、フレームワークなどのプログラム系制約だったり
ソフトウェア開発の方法論だったりです。
それぞれきちんと読めば、なぜそうなっているのか、メリットやデメリットは何か、
適用できる範囲はどこかなどが分かります。
探せばインタビューなどで述べられているはずです。
ニュートン力学の範囲でも、摩擦を無視できたり出来なかったり。
空気抵抗を減らした方がいい分野と増やした方がいい分野と。
車なんかだと最適解を導く方法が部分ごとに対立していてバランスを取る必要がありますよね。
Re:ちょっと違う (スコア:1)
>普遍的の範囲が狭いだけです。
>普遍的ではないものをなるべく普遍的なものにしようというのが、
>探せばインタビューなどで述べられているはずです。
自分が知る限り、最良の普遍的な言説でも、ウルトラ5つの誓い程度の
ことしか言っていないと思います。
それもこれも、第一原理の「不在」が原因だと思います。
自分は第一原理の「不存在」とまで言っていいと思いますが、少なくとも
「不在」は事実です。
Re: (スコア:0)
コンピュータの話であれば、全ての計算は論理演算で近似できるということ、
ソフトウェア工学の話であれば、コンピュータは決めた通りにしか動かないことと人間は間違えるということです。
なのでソフトウェア工学の発展とは、いかに人間に余計なことをさせないか、間違いを排除できるようにするかという歴史になります。
はっきり言って当たり前のことなので、ウルトラ5つの誓い程度にしか思えないだけではないでしょうか。