「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ステップ数

pointこの用語のポイント

pointプログラムの規模を測るときの目安だよ

pointソースコードの行数だよ

point気休め程度にしかならないよ

スポンサーリンク

簡単に書くよ

ステップ数(読:ステップスウ 英:number of steps?)とは

プログラムの規模を測るときの目安となる指標のひとつ
です。
一般的には

人間語で書いたプログラムの元ネタ(ソースコード)の行数のこと
を指します。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「ソースコード」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

ソースコードは「人間語で書いたプログラムの元ネタ」です。

ステップ数

プログラムを作って動かすまでの一般的な流れは

1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する


です。

ステップ数2

コンピュータさんは人間語が分かりません。

ステップ数3

人間様はコンピュータさんの言葉が分かりません。

ステップ数4

プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。

ステップ数5

次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。

ステップ数6

コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。

ステップ数7

かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。

この話で登場した

人間語で書いたプログラムの元ネタ

を「ソースコード」と言います。

ステップ数8

以上を踏まえて

ソースコードの行数

をカッコつけて言った表現が「ステップ数」です。
処理が何行書かれているかを示した数字です。

ステップ数9

ステップ数はプログラムの規模を測るための指標です。
もしかしたらソースコードの行数以外を指標として使うことも あるかもしれませんけどね。
私は知りません。
私の経験上では

ステップ数=ソースコードの行数

です。

とはいえ、行数の数え方には いろいろなローカルルールがあります。
コメント行を除いたり、改行だけの行を除いたり、他にも独自の数え方があったりします。

例えば、そうですね。
以下の処理は6行です。

if($a == "1")
{
    print "1だよ";
}else {
    print "1じゃないよ";
}


これを単純に「6」と数える場合も あります。
あるいは、2行目の「{」を1行目に含まれると解釈して

if($a == "1"){
    print "1だよ";
}else {
    print "1じゃないよ";
}


のように読み替えることで「5」と数える場合も あります。

基準は結構あいまいです。

まぁ、そもそもの話として気休め程度にしかならない指標ですけどね。

処理の書き方は1つでは ありません。
同じ処理を書くのにも、いろいろな書き方があります。

例えば、PHPで書いた以下の3つは、すべて同じ処理です。

if($a == "1")
{
    print "1だよ";
}else {
    print "1じゃないよ";
}


if($a == "1"){print "1だよ";}else {print "1じゃないよ";}

print $a ==1 ? "1だよ" : "1じゃないよ";

1つ目の処理は6行で書かれています。
ステップ数は「6」です。

2つ目、3つ目の処理は1行で書かれています。
ステップ数は「1」です。

それでは、1つ目の処理は2つ目、3つ目の処理の6倍の規模なのでしょうか?

そんなことは、ありませんよね。

それにステップ数を増やすのは簡単です。
わざとらしくない範囲でも、いろいろできます。

例えば

if($a == "1")
{
    print "1だよ";
}else {
    print "1じゃないよ";
}


の処理ですが、ステップ数を増やしたければ以下のように書けます。

$MSG_OK = "1だよ";
$MSG_NG = "1じゃないよ";
$TARGET_NUM = 1;


if($a == TARGET_NUM)
{
    print $MSG_OK;
}else {
    print $MSG_NG;
}


これだって無駄に長い書き方とは言えません。
「メッセージや比較する数値が変更される際の修正コストを考慮して、定数化して外出しにしています。拡張性を重視しました!」とか適当なことを言っておけば怒られないはずです。
というか、固定の文言や値を変数にするのは普通です。

いかがでしょうか。

print $a ==1 ? "1だよ" : "1じゃないよ";



$MSG_OK = "1だよ";
$MSG_NG = "1じゃないよ";
$TARGET_NUM = 1;

if($a == TARGET_NUM)
{
    print $MSG_OK;
}else {
    print $MSG_NG;
}


は同じ処理ですよ。

他に指標にできそうな要素が少ないので仕方ない面もありますけどね。
いろいろと操作しやすいので実情に即しているとは言いにくい指標です。

個人的には、どんな数え方をするにしろ気休め以外の何物でもないと思っています。


image piyo2

一言でまとめるよ

まぁ「ステップ数」って単語が出てきたら「ソースコード(人間語で書いたプログラムの元ネタ)の行数なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像017
書籍画像064

おまけ

■訳してみるよ

「step(ステップ)」の意味は「一歩」とか「歩み」とか「(階段とかの)段」とか「階段」とか「段階」とかです。
「数」は日本語ですね。
何となく くっつけると

歩数

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
優れたエンジニアがコミュニティの中でしていること
ウォーターサーバーのキャッチコピーを100本考える方法