ソフトウェア(computer

ソフトウェア
情報社会とコンピュータ
第3回
前回の復習



汎用の安価なコンピュータ(ハードウェア)
+
多様なソフトウェア
↓
いろいろな場面で使うことができる(価値)
ソ フ ト ウ ェ ア(1)

前回
プログラム
 PC(ハードウェア)に対する命令(指示)
ソ フ ト ウ ェ ア(2)




前回
ゲームのカセット,CD
PCのワープロ,表計算,…
スマホのアプリ
↓
ソフトウェア
 アプリケーション ソフトウェア(応用ソフトウェ
ア)
ソ フ ト ウ ェ ア(3)


アプリケーション ソフトウェア(応用ソフトウェア)
オペレーティングシステム(基本ソフトウェア)
 Windowsなど
プログラムとソフトウェア(1)



区別があるような,ないような
プログラム
 ハードウェアに対する一連の命令
ソフトウェア
 幾つかのプログラムで構成され,ある処理を
行う
プログラムとソフトウェア(2)

文書処理を行うワープロソフトには,幾つかの機
能がある
 個々の機能を実行するためのプログラム
 さらに使用方法の説明書(マニュアル)
 このようなモノを含めている場合もある
どうせなら英語も




ソフトウェア
 software
ハードウェア
 hardware
アプリケーション
 application
プログラム
 program
プログラムは

人間が作る

人間はミスをする

つまり,プログラムには間違い(誤り)がある
プログラムの誤り(1)

世の中で使われているプログラム

で,誤りのないもの

は,ない
 全てのプログラムに誤りはある
プログラムの誤り(2)

どのようなことになるのか?

プログラムは,PCに対する指示

誤った指示を出す

誤った結果となる
誤 り の 分 類(1)

試験の間違った解答(誤りの理由)
 問題の内容を把握していない・理解が不十分

誤字・脱字
 意味が分からなくなる場合と,別の意味に
なる場合
 “君に講義するために来た”
 “君に抗議するために来た”
誤 り の 分 類(2)

プログラムの誤り
 処理の手順の誤り
 アルゴリズムの誤り

誤字・脱字
 I (英字のアイ) → 1 (数字のイチ)
 100 → 10
0~100点(1)

試験だったら,60点以上で合格

99点だったら,優秀な答案と褒められる
0~100点(2)

プログラムの場合
 99点
 “100の指示(命令)のうち,一つが誤り”
 その誤りにより,正しくない結果
 ダメなプログラム
 つまり,0点のプログラム
0~100点(3)

プログラムの場合
 100の指示のうち,一つが誤り
つまり,コンピュータは誤った命令
を実行することはない
 いつも全ての指示を出すわけではない
 誤りの指示はめったに出さない
 ひょっとすると,永久に出さないかも知れない
 でも,誤りは誤り
 その一つの誤りを見つけるのが難しい
アルゴリズム
アルゴリズム(1)

algorithm

問題を解く手順

“こうやれば”答えが求められる
これをコンピュータが実行できる“形”で
記述したものがプログラム
アルゴリズム(2)

パターン その1
1. … をしろ
2. … をしろ
…
n. … をしろ
と順番に指示を出す
アルゴリズム(3)

パターン その2

1年生なら, … をしろ
そうでなければ, … をしろ

条件(1年生か?)により,指示が変わる

アルゴリズム(4)



パターン その3
1年生全員に対して, … をしろ
 1年生全員に資料を手渡せ
資料を手渡すということ(指示)を,1年生全員に
対して繰り返す
アルゴリズム(5)





順番に
条件により変わる
繰り返す
この三つが,アルゴリズムの基本要素
組み合わせて,複雑なアルゴリズムを記述する
アルゴリズムの誤り(1)



その1
料理のレシピ
 トマト(大きさ中)を一つ半(1.5個)を…
スーパーで,トマト(大きさ中)を一つ100円で売っ
ていた
トマト代はいくら?
 150円?
アルゴリズムの誤り(2)


その1
トマト代はいくら?
 150円?
 トマト半分で売ってくれるわけないだろう!
正しいようで,どこかに間違いがある
 理解が不十分
 でも,うちの近所のパン屋さん,フランスパン
を半分にして,売ってくれる
アルゴリズムの誤り(3)


その2
誤りの指示はめったに出さない
“ある条件のときは,… をしろ”
 … に誤りがある
 この条件に該当する場合がめったにない
 気が付かないまま,そのプログラムを使い続
ける
 そして,ある日,その条件に該当する…
アルゴリズムの誤り(4)




その3
“ある条件のときは,… をしろ”
この指示を忘れた
“ある条件”を考慮していない ⇒ 条件の見落とし
“2月29日(うるう年限定)の12時34分から1分間
だけ,雨が降ったら”
 こんなことめったに起こらない
 でも,絶対にないとは言えない
アルゴリズムの誤り(5)

アルゴリズムの誤りには,いろいろある

いつも,誤りの部分を実行するとは限らない

あっても,必ず誤った結果が出てくるとは限らな
い
アルゴリズム ⇒ プログラム

アルゴリズムは正しい

プログラムを記述するときに間違うこともある
個々のプログラムは


正しい
しかし,組み合わせると(ソフトウェア)不都合が
生じる場合がある
プログラムの誤り(1) 再

世の中で使われているプログラム

で,誤りのないもの

は,ない
 全てのプログラムに誤りはある
ソフトウェア
脆弱性


情報漏えいなど安全な運用を脅かす原因になる
ソフトウェアの誤り
インターネットに接続しているコンピュータのソフ
トウェアの場合,大きな問題になる(なっている)
 インターネットを経由し,脆弱性を突く
ま と め
ソフトウェアは

複雑

誤りが含まれている

しかし,必ずトラブルが起こるわけではない

でも,起こる可能性を否定できない

その誤りを,悪用されることにより,被害を受ける

脆弱性を突く攻撃
アルゴリズム


問題を解く手順
三つのパターンの組合せ
 順番に
 条件により変わる
 繰り返す
考えてみよう
原因は明らかではないが


「Yahoo!メール」8月の障害で258万通のメール
消失が判明
http://www.itmedia.co.jp/news/articles/1509/06
/news024.html
ハードウェアかも知れない,ソフトウェアかも知れ
ない
誰が責任



実際にトラブルが起こり,損害を受けた
ソフトウェアを開発した者(会社)に賠償を求めた
い
話は簡単ではない
 製造物責任法(PL法)の対象ではない
 ソフトウェアの場合は責任を追及することは難
しい,ただし…
最近の自動車



インターネットに接続
ソフトウェアに脆弱性があると,外部から遠隔操
作される危険
さらに,自動運転カ-
 事故があったら責任は?