利用時の品質を表計算ソフト(Excel)に例えてみる3

これの続き.
利用時の品質を表計算ソフト(Excel)に例えてみる2 - NK5のノート

「有効性」「効率性」そして「満足性」について勉強したので,
最後の2つをここで整理してみる.

■リスク回避性
定義は以下のとおり.

製品又はシステムが,経済状況,人間の生活又は環境に対する潜在的なリスクを緩和する度合い。
注記 リスクは,所与の脅威の発生確率と,その脅威の発生によって起きる悪影響の可能性との関数である。

「リスク」という言葉は,時と場合と相手によって意味が変わるので
結構危険な単語だと個人的に思っているなけど,
ここでは,発生確率によって重みづけされた悪影響の度合いとされている.
満足性と同様,これも3つの副特性から成る.

(1) 経済リスク緩和性
定義は以下のとおり.

意図した利用状況において,財政状況,効率的運用操作,商業資産,評判又は他の資源に対する潜在的なリスクを,製品又はシステムが緩和する度合い。

経済的なダメージ全般のリスクをターゲットにしているので,
セキュリティ関連は基本的にここに入ることになると思う.
Excelでは正直立てづらいけど,例えば,異常終了時のデータ復元機能が,
ここで言う「効率的運用操作に対する潜在的なリスク」に該当する,かな.

(2) 健康・安全リスク緩和性
定義は以下のとおり.

意図した利用状況において,製品又はシステムが人々に対する潜在的なリスクを緩和する度合い。

いわゆるミッションクリティカルなシステムにおいて
この特性が担うものは大きい.
自動車を一種のシステムと捉えるのなら,ATSなんかもこれに該当するはず.
Excelでは……うーん,ちょっと思いつかない.

(3) 環境リスク緩和性
定義は以下のとおり.

意図した利用状況において,環境に対する潜在的なリスクを製品又はシステムが軽減する度合い。

資源の無駄遣いや無暗な汚染を回避する度合い……ということかな.
スマホの省エネモードなんかは,これの一種になると思う.
やはりExcelではちょっと例えづらいところがある.

■利用状況網羅性
定義は以下のとおり.

明示された利用状況及び当初明確に識別されていた状況を超越した状況の両方の状況において,有効性,効率性,リスク回避性及び満足性を伴って製品又はシステムが使用できる度合い。

これまでに述べてきた4つの品質特性が,
あらゆる状況下においても十分に発揮されるか,という特性になる.
たぶん,定義内のとんでもない文言に目が奪われたはずだけど,
敢えてここでは触れずに,2つの副特性の話に入る.

(1) 利用状況完全性
定義は以下のとおり.

明示された全ての利用状況において,有効性,効率性,リスク回避性及び満足性を伴って製品又はシステムが使用できる度合い。

これは理解できる.
要は「動作保証環境」における利用時の品質の保証状態を指しているわけだ.
Excelの正確な動作保証環境に関する情報はよく知らないが,
例えば,Windows7とWindows10の間で利用時品質に大きな欠落が生じなければ
利用状況完全性が高い,と言える.
問題は次だ.

(2) 柔軟性
定義は以下のとおり.

要求事項の中で初めに明示された状況を逸脱した状況において,有効性,効率性,リスク回避性及び満足性を伴って製品又はシステムが使用できる度合い。

冒頭でも敢えてスルーしたけれど,
要するに,想定外の状況における利用時品質を語っている.
「いや,そんなの知らんよ」
と言いたくなるが,まあ例えばそういうときに
「これこれこういう風にすれば,使えるようになりますよ」
というメッセージを出してくれるか,
それとも問答無用で異常終了するかでは
満足性にそこそこ差が出るんじゃないかな.
そういうシステムは,柔軟性が高い,ということになる.

以上.
間違いがあったら申し訳ないけれど,
まあ,そこまで大外しはしていないんじゃないかな.


今更ながらExcelは題材としてあまり適切ではなかった気がする.

利用時の品質を表計算ソフト(Excel)に例えてみる2

前回のこれの続き.
利用時の品質を表計算ソフト(Excel)に例えてみる1 - NK5のノート

利用時の品質には5種類の品質特性があり,
目標達成に向けてシステムが役立ってくれるか否かの特性が「有効性」,
有効性と照らし合したときの消費資源の妥当性の特性が「効率性」
という話だった.
今日は残り3つを勉強する……予定だったけど,
満足性が凄く長くなったので,この記事ではそれだけピックアップ.

■満足性
定義は以下のとおり.

製品又はシステムが明示された利用状況において使用されるとき,利用者ニーズが満足される度合い。

利用時の品質を語るときは,大体この満足性にフォーカスしているイメージ.
定義が一見するとそのまんまなので,4つある副特性に着目して行く.

(1) 実用性
定義は以下のとおり.

利用の結果及び利用の影響を含め,利用者が把握した目標の達成状況によって得られる利用者の満足の度合い。

注目すべき点は「結果」「影響」というキーワードかな.
あくまでシステムを使った結果系に対して,ユーザが得られた満足度を
評価する特性となる.
有効性との違いは,正直俺にはよく分からないんだけど,
こちらの方がより感性・感情に訴えるもので判定するんじゃないかな.

中々Excelに例えるのは難しいというか,
Excelに限らず,「ああ,このツールを使って良かった」と言えるかどうかで
決まる品質特性,だと思う.

(2) 信用性
定義は以下のとおり.

利用者又は他の利害関係者がもつ,製品又はシステムが意図したとおりに動作するという確信の度合い。

実用性が結果にフォーカスしている品質特性とするなら,
こちらは過程にフォーカスした品質特性,だと思う.

特定の操作に対してユーザが期待する結果を確実にもたらさないといけない.
例えば「Ctrl + S」という操作でセーブが出来ないのであれば
そのシステムやソフトウェアの信用性は低いということになる.

また,これは製品特性で言うところの「信頼性」などにも関わると思う.
故障や緊急停止を繰り返せば,どんどん信用性は損なわれることになる.

Excel自体が表計算ソフトのデファクトスタンダードなところがあるけれど,
一方で信用性が十分かというと,微妙なところだと思う.
例えばオートコンプリート機能.
こちらが望んでいない文字列補完を促し,かつ意図せず実行しちゃう辺りは
信用性の低さの一因と言えるんじゃないかな.

(3) 快感性
定義は以下のとおり.

個人的なニーズを満たすことから利用者が感じる喜びの度合い。

……ごめん,これ,わかんない.
ただ,あくまでイメージなんだけど,
「満足」と「快感」で言うと,後者の方が強いイメージ.
ただし,「個人的なニーズ」を狙って満たすことは難しいので,
たまたまクリティカルヒットした場合に,この特性が強いと
言えるんじゃないかな,たぶん.

(4) 快適性
定義は以下のとおり.

利用者が(システム又はソフトウェアを利用する時の)快適さに満足する度合い。

これも他の特性と似通っているところがあるけれど,
裏返しで考えると,多少はピンと来る気がする.
つまり,快適性というのは
「ユーザを不快にさせない度合い」
と考えれば,良いんじゃないかと.

「Ctrl + S」でちゃんとセーブが出来たとしても,
そのたびに1分以上待たされるのであれば,
そのシステムは「信用性は高い」けど「快適性は低い」ことになる.

Excelで言うと,1個のファイルが異常終了するたびに
全ファイルが連鎖的に死亡するのは,個人的に
快適性の低さの1つかなぁと思っている.


残り2つの品質特性も,この後,別記事で書きます.

利用時の品質を表計算ソフト(Excel)に例えてみる1

これの続き.
ソフトウェア品質って何だろう - NK5のノート

今回はまず,利用時の品質について勉強してみる.
ただ,普通にやると理解しづらいので,
誰もが使ったことがあるであろうExcelに例えてみることにする.

教科書は前回と同様に以下.今回は4.1が対象となる.
JIS X 25010:2013 システム及びソフトウェア製品の品質要求及び評価(SQuaRE)−システム及びソフトウェア品質モデル

利用時の品質は以下に分類されるとある.

・有効性
・効率性
・満足性
・快適性リスク回避性
・利用状況網羅性

名前だけ見ると,有効性と満足性の違いがよく分からない.
1つ1つ定義を確認してみる.

■有効性
定義は以下のとおり.

明示された目標を利用者が達成する上での正確さ及び完全さの度合い。

Excelを使うからには,何かしらの「計算行為」が目標となるはずだ.
Excel方眼紙とかいうゴミは考慮しないこととする)
それに対する「正確さ」や「完全さ」ってのは,何だろう.
例えば,考え難いことだが,Excel内の数式にバグがあって
「1+1」を「3」と答えてしまうなら,
このソフトウェアには「正確さ」が損なわれることになる.
一方,割り算を実行する機能自体がなければ,
目標を達成するために必要な四則演算機能が伴っていないという意味で
「完全さ」が損なわれている,という意味になる,と思う.

正直,「製品品質」の「機能適合性」にかなり近い特性だが,
あくまでこちらは利用者目線での価値である,という点が重要だろう.
Excelには多種多様な利用な関数が用意されているが,
利用者の目標達成に寄与しない限り,
それらは「有効性」に対する加点とはならないのだ.

■効率性
定義は以下のとおり.

利用者が特定の目標を達成するための正確さ及び完全さに関連して,使用した資源の度合い。

ポイントは「利用者が~に関連して」という但し書きにある.
システムは使わなければ資源を基本的に消費しないはずだ.
「利用して得られる価値」との相対評価とすることによって,
はじめてこの品質特性が意味を為すことになる.

Excelで言うなら,表計算ソフトで得られた価値に対して,
・作業時間
・消費した電力
などの消費資源が,どれだけ支払う意義のあるものだったか,
という問いに対する答えが,「効率性」になる.


長くなりそうなので続きは別記事で.

ソフトウェア品質って何だろう

ちょっとお仕事で品質に関わる機会が増えたんだけど,
「品質ってなんだよ」というレベルなので,
これを機にお勉強することとする.

そもそも「品質」の定義自体が提唱者によってバラッバラ.
とりあえずいつも通り,Wikipedia先生に聞いてみる.

品質 - Wikipedia

サービス業が提供するサービスの有する特性、もしくは属性をいう。

例えば
「NK5の身長は160cmだ」
という文章においては,「身長」という特性が,一種の「品質」となる.

さて,この160cmという数字を
「チビ乙wwww」と思う人もいれば,
「ちっちゃくてかわいい」と思ってくれる人もいるだろう.
あるいは江戸時代の人なら
「標準的な身長ですね」くらいに言ってくれるかもしれない.

重要なのは,品質の評価は受け取り手によって変わるということだ.
また,今回は身長という測定可能な特性を扱ったが,
例えば「NK5のルックス」なんて話になったら
実際に見てもらわない限り,品質の是非を論じることはできない.

で,とても残念なことに,ソフトウェアは基本的に目に見えない.
正確には,最終的には何かしらのViewが生まれるわけだけど,
製造過程においては,ほとんど紙か電子データの集合でしかない.
このことからもわかるように,ソフトウェアの品質というのは
とても論じることが難しく,究極的には宗教に近い.

それでも,品質を定義しようと頑張っている人がいる.
代表例が,ISO/IEC 25000シリーズとかいうやつだ.
そこから導出されたJIS規格については
以下から誰でも無料で参照することができる.

JIS X 25000:2010 ソフトウェア製品の品質要求及び評価(SQuaRE)−SQuaREの指針
JIS X 25010:2013 システム及びソフトウェア製品の品質要求及び評価(SQuaRE)−システム及びソフトウェア品質モデル

全部読んでいると日が暮れるので(いつかは読まないといけない),
とりあえず今回は後者の品質モデルに着目する.

品質モデルとは何ぞやということだけど,
要は上述の例でいうところの「身長」のような「特性」を
カテゴライズしながら列挙したもの,という理解で良いと思う.

ここで
「品質の評価は受け取り手によって変わる」
という事実に立ち返る.
ソフトウェアの品質を評価する人って誰だろうか?

まずは間違いなくユーザだ.
だからこそ品質モデルには「利用時の品質」というものが
定義されている.
これはとても分かりやすい.

続けて開発者だ.
開発者にとって製品は我が子みたいなものなので(例外もあるが),
あれやこれやと褒め称えたくなるものだ.
その褒めたたえる観点が,
もう1つの品質モデルの「製品品質」と言える.
つまり,
「うちの子はこんなことが出来るんです」
の「こんなこと」に埋め込む言葉を集約したのが,製品品質だ.

「利用時の品質」も「製品品質」も,つまるところ視点の違いなので,
同一の対象に対し,同時に論じることが可能だ.
例えば「音読ガイド機能」を考えよう.
目が不自由な人向けに用意されたこの機能は
「製品品質」においては「アクセシビリティ」に対して
大きな加点をもたらす,かもしれない.
一方で「利用時の品質」においては「満足性」とか「有効性」に
加点をもたらす,かもしれない.

「かもしれない」を連呼している理由は,例えばこれが
俺個人だけの利用を想定している自作アプリに実装されていたとしても,
まったく無駄な機能であり,品質上何の加点ももたらさない.

しつこいが,「誰が」「いつ」「どうやって」使うかという点が
品質を語る上で必要不可欠だ.
特に直接的な利用者ではない開発者にとって
そこの特定は至難の作業と言えるし,腕の見せ所ともいえる.
古典的なウォーターフォールでは,それを要件定義書という形で
大量の文字列に置き換えようと試みる.
アジャイルはもっと開き直っていて,
「利用時の品質を知りたければ,利用してもらえば良い」という信念で
ドキュメンテーションよりデリバリを優先する.
無論,大外れしないよう,ユーザーストーリーという仮説を用意するが.

とりあえず,大枠はこんな感じ.
この後,数パートに分けて,具体的な品質特性を勉強する記事を書く予定.

株価を検索するツール #3

細々と作っていました.

GitHub - nk5jp/StockAnalyzer

とりあえずタイトル画面はこんな感じ.
f:id:bob_l_s:20180521000310p:plain

「Stock」ボタンでこの一覧に検索表示する銘柄を編集.
上の画面は,コード7974(任天堂)だけ設定した状態.
「Save」ボタンを押すと,現時点の価格を保存できる.

保存した価格情報は銘柄のリストを押すと一覧表示できる.
f:id:bob_l_s:20180521000733p:plain

ここで価格情報を手動で追加・修正・削除することも可能.
保存し忘れた情報とかはここでポチポチ修正する運用イメージ.
(削除は0円で保存するという若干面倒な手順)
ちなみに現時点で「Add/Edit」以外のボタン押すとフリーズします.


次はグラフ表示だけど,良いライブラリないかなぁ.

ゼロから作るDeep Learning 感想

とりあえずディープラーニングについて
最低限語れるようになっておきたいという,
非常にシンプルな動機による購読.

AI絡みの話題で頻出の「ディープラーニング」について,
概念を説明しつつ,Pythonによる実装例も併記することによって
実践の足掛かりも与えてくれているのが,この書籍.

ディープラーニングを頑張って説明すると,
何かしらを判断させる演算マシンの内部パラメータを
自動的に最適値に調整させる技術,という感じ.
最初はポンコツな判断しかできないマシンが,学習を繰り返すことで
最終的には人間以上の判断能力を備えたマシンになる.

この技術の要となる行列演算は膨大な計算リソースを要するため,
昔はそれほど注目されていなかったわけだけど,
技術向上によってリソースのハードルが下がったこともあり,
色んな分野で応用しましょうというトレンドが,最近発生している.

AlphaGo(アルファ碁)が世界王者をフルボッコにした,
なんてニュースが以前話題になったけれど,あれもその一例.
人間には想像だにできない「最良手」を,膨大な「学習」の上に
「認識」した,という形となる.

話をこの本に戻すと,
「畳み込み」をはじめとする,ディープラーニング関連の
キーワードは,概ねこの本の中で網羅されている.
行列演算についても基礎のレベルから説明されているので,
あまり数学は得意じゃないという人にも十分読めるかと.

第5章の「誤差逆伝播法」が唐突すぎて「?」だったけれど,
ここはぶっちゃけ読み飛ばしても良い.
連鎖律の説明に特化しすぎていて,本質を捉えていない感がある.
誤差逆伝播法の意図するところについては,ググるなりして
ネット上で適当に調べた方が遥かに速い.たとえば以下.
誤差逆伝播法を宇宙一わかりやすく解説してみる - ロボット・IT雑食日記

今後もAI技術は進歩し続けるだろうから
この本に書かれていることも数年後には陳腐化しているかもだけど,
ある程度の前提知識を押さえておきたいという目的は
十分達成できたかなと思う.


株価予測モデルとかで応用してみたいなぁ.

ロックマン ゼロ コレクション 感想

ロックマン ゼロ コレクションNEW Best Price! 2000

ロックマン ゼロ コレクションNEW Best Price! 2000

縛りプレイ動画に触発されて購入.
ゲームボーイアドバンスで発売されたロックマンゼロ1~4を
この1つのソフトで遊ぶことができる.

イレギュラーと認定された無実のレプリロイドを救うべく
レジスタンスを統率していた人間の少女シエル.
彼女は窮地を打開するため,封印されし伝説の英雄ゼロを覚醒させる.
シエルに協力することを決意したゼロは,
かつての親友エックスが統治するネオアルカディアとの闘いに赴く.

X6の某ENDからの続編とか言われたりしているけれど,
後付けの設定が色々加わったりして,その辺りは曖昧になっている.
設定を流用した別作品,くらいの解釈が妥当だと思う.

本家のエックスはイレギュラーハンター,つまり「狩る側」だけど,
本作ではゼロたちがイレギュラーであり,「狩られる側」となる.
さらに悩み続けていたエックスに対して
「悩まない」ゼロの立ち振る舞いが強調されていたりと,
色んな面で,本家とは対極に位置する作品となっている.

細かいエピソードはツッコミどころ満載なんだけど(特に2),
アクションゲームとしては十分なストーリー設定じゃないかな.

肝心のアクション部分は非常に良い.
Xシリーズ独自のスピード感溢れるアクション性が再現されており,
かつ,ゴリ押しは返り討ちに遭うのがオチなので,戦略性も高い.
※「サイバーエルフ」という救済措置を駆使すればゴリ押しも可能

さらにステージ毎に採点制度が設けられており,
全ステージ満点(俗称:アベ100)を目指すと,完全な鬼畜ゲーと化す.
ハードモードのアベ100に挑戦したが,何度も気が狂いそうになった.

GBAってぶっちゃけ音質が酷いイメージしか無いんだけど,
この作品のBGMはかなり頑張っている方だと思う.
「Crash」「Esperanto」をはじめ,印象に残る曲が多かった.

難点として,大味な難易度設定のステージがたまに出てくること.
特にゼロ1の最終ステージやゼロ2の爆撃機ステージはトラウマレベル.
あと,ところどころのイベントが長いのも評価を落とすかな.

ともあれ,非常にクオリティの高いゲームであることは間違いなく,
面白いアクションゲームを求めている人には非常にオススメ.
年甲斐もなく,ハードのアベ100達成のために
5か月近く頑張ってました.以下がそのキャプチャ.

f:id:bob_l_s:20180415222210p:plain

続編のゼクスをやるかは検討中.