SlideShare a Scribd company logo
1 of 83
Download to read offline
やわらかマッドサイエンティスツのプログラミング入門

3つのダイアログから見た
プログラミング
第2回 ジャクソン構造図の巻(後編)



            USP友の会会員 鳥海秀一
自己紹介

名前:鳥海秀一
出身地:北海道
年齢:47歳
業務で初めて使った言語はRPG
職業:SIerのBPとして、金融機関で働いてます
趣味:プログラミング言語の習得
USP友の会との関わり: 「アジャイルジャパン
2009」の當仲講演から
本日の予定

1.   USP友の会の紹介(10分)
2.   アイスブレイク(一言自己紹介)(30分)
3.   前回の振り返り(30分)
4.   講義1(先読み技法紹介)(30分)
5.   演習( 60分ぐらい)
6.   ライブプログラミング(30分)
7.   次回の予告(20分)
8.   まとめ(25分)
自己紹介をお願いします

下記の内容を含めてください

① お名前とご出身と現在お住まいの場所
② ご職業と今やっていること
③ この勉強会に参加しようと思ったわけ

1分間でお願いします。
※注意 本勉強会が対象とする設計の規模

• 80個の“=”を出力するプログラムより少しだ
  け大きいプログラムの設計方法
前回までの振り返り

1. プログラム入門でダイアログを
   取り上げる理由について
2. 状態遷移図について
3. ジャクソン構造図について
プログラム入門でダイアログを取り上げる理由

プログラムの作成には事前の設計が大切

• 設計は二つのプロセスから構成される
 – 発散
 – 収束

• 発散には概要把握と視点の切り替えが必要

• ダイアログは上記二つを提供する
3つのダイアログが提供する3つの視点

• 状態遷移図
   状態遷移(計算モデル)

• ジャクソン構造図
    データの構造

• データフローダイアグラム
   データの流れ
状態遷移図について

1. 計算モデルの一つ、有限オートマトンの図式
   表現
 • 構成要素は状態、事象、状態遷移、(アクティビ
   ティ)

2. マルコフ性を意識することが重要
 • 未来の状態は現在の状態と外部刺激だけで決
   まる
例題:整数判定の状態遷移図

                0~9


                             0~9

                       0~9         EOS
          +|-




開始
     S0         S1           S2          OK




                             その他
                      その他

                その他
                                         NG
詳しくは下記資料を参照

• スライドシェア
http://www.slideshare.net/ryuichiueda/usp-9642558


• USPマガジン Vol.3
ジャクソン構造図について

1. プログラムの入出力データ構造に着目
 • 連接、選択、反復の3つの構成要素を用いた木
   構造でデータを表現


2. 表現力は状態遷移図と等価

3. 可読性の高いプログラムを導きやすい
入出力のデータ構造に着目

• プログラムは入力データを出力データに
  変換するものであり、両者の構造から影
  響を受ける


   入力データ   処理   出力データ
ジャクソン構造図の基本構造

次の3つの基本構造でデータを記述する
• 連接
• 選択
• 反復
ジャクソン構造図による連接の表現


       A


  B    C    D

  Aは、BとCとDからなる
ジャクソン構造図の連接の例




    名前           年月日



姓        名   年   月     日
ジャクソン構造図による選択の表現


       A


  B    C    D

  Aは、BかCかDである
ジャクソン構造図による選択の表現(補足1)



          A


    B     C    -

Aは、BかCか存在しないかである
ジャクソン構造図による選択の表現(補足2)

             (省略形)

     A         A


 B       -     B

 Aは、Bか存在しないかである
ジャクソン構造図の選択の例




    人            年金


            国民   厚生   共済
男       女   年金   年金   年金
ジャクソン構造図による反復の表現


       A

           *

       B

  Aは、複数のBからなる
ジャクソン構造図の反復の例




         テキスト
プロジェクト
         ファイル


     *          *
プロジェクト    行
 メンバー
ジャクソン構造図による整数表現


               整数




   符号                  絶対値



           ○
  + or -        1文字目          2文字目
                 数字          以降数字群



                                   *
                0~9          0~9
表現力は状態遷移図と等価

言語階層       機械         文法           備考


タイプ0   チューリングマシン    句構造文法


タイプ1   線形有界オートマトン   文脈依存文法


       プッシュダウンオート
タイプ2                文脈自由文法    プログラミング言語の階層
       マトン
                              ジャクソン構造図と等価
タイプ3   有限オートマトン     正規文法

                             状態遷移図と等価
可読性の高いプログラムを導きやすい

1. 木構造でデータを表現
 • 木構造は人の思考となじみやすい

2. 3つの基本構造という制約
 • 基本構造の制約が構造化された(上から下に読
   んでいける)プログラムを導く
木構造による表現

木構造(階層構造)は概念構造に相即的
 •   複合概念、基本概念
 •   上位概念、下位概念
例:整数という概念

整数は符号とそれに続く絶対値から構成される。符号
はなくてもよいが、ある場合には「+」か「ー」かの一文
字からなり…
                   整数



       符号                  絶対値


               ○
                    1文字目          2文字目
      + or -         数字          以降数字群


                                       *
                    0~9          0~9
補足:階層構造を導入した状態遷移図(ハレル図)


                          0~9
     整数

     +|-
             符号

                  0~9    絶対値

       0~9




                        EOS
3つの基本構造という制約

• きちんと構造を表現しないとプログラムが導
  けない
(整数のジャクソン構造図の悪例)
                      整数



                           *
                      文字


                  ○                  ○
          符号                   数字



         + or -                0~9
(補足)状態遷移図の威力

状態遷移図からなら先の悪例からもプロ
グラムを導けます。
例:整数判定の状態遷移図

                 0~9


                              0~9

                        0~9         EOS
           +|-




開始
     S0          S1           S2          OK




                              その他
                       その他

                 その他
                                          NG
先の例を状態遷移表に変換

      符号         数字     終端      その他
     (+ or -)   (0~9)   (EOS)

S0     S1        S2      NG     NG
S1     NG        S2      NG     NG
S2     NG        S2      OK     NG
状態遷移表の縦と横を入れ替える

           S0   S1   S2
 符号
           S1   NG   NG
(+ or -)
 数字
           S2   S2   S2
(0~9)
 終端
           NG   NG   OK
 (EOS)
その他        NG   NG   NG
プログラムに変換すると
#!/usr/bin/perl                                } else {
                                                  exit 1;
@c = split //, shift;                          }
                                             }
$s = 0;                                      if ($s == 2) {
for $c (@c) {                                   exit 0;
  if ($c eq '+' || $c eq '-') {              } else {
     if ($s == 0) {                             exit 1;
        $s = 1;                              }
     } else {
        exit 1;
     }
  } elsif ('0' le $c && $c le '9') {
     if ($s == 0 || $s1 == 1 || $s == 2) {
        $s = 2;
     }
ジャクソン構造図による整数表現


               整数




   符号                  絶対値



           ○
  + or -        1文字目          2文字目
                 数字          以降数字群



                                   *
                0~9          0~9
先のジャクソン構造図から導かれたプログラム

#!/usr/bin/perl                 while ('0' le $c && $c le '9') {
                                  $c = shift @c;
@c = split //, shift;           }

$c = shift @c;                  if ($c eq '') {
if ($c eq '+' || $c eq '-') {      exit 0;
   $c = shift @c;               } else {
}                                  exit 1;
                                }
if ('0' le $c && $c le '9') {
   $c = shift @c;
} else {
   exit 1;
}
前回の宿題

1. 身の回りのもので位置を利用して情
   報を表現しているものを探してみよう
2. 浮動小数点数のジャクソン構造図をプ
   ログラムに変換してみよう
3. 浮動小数点数の状態遷移図からgoto
   プログラムを書いたのち、発見的手法
   でgotoを取り除いてみよう
宿題2のジャクソン構造図

                                                                             浮動
                                                                            小数点数




                             仮数部                                                                                   指数部



                                                                                                                          ○
 符号                                                           絶対値                                                  省略可能
                                                                                                                    指数部


         ○                              ○                                         ○
+ or -                           整数部付                                        小数部のみ                        指数文字                   指数
                                  絶対値                                         絶対値




                    整数部                           小数部                         小数部                         E or e     符号                     整数部



                                                         ○                                                                   ○
             1文字目          2文字目                   省略可能                小数点                 小数                        + or -        1文字目             2文字目
              数字          以降数字群                    小数部                                                                             数字             以降数字群


                                 *                                                                                                                       *
             0~9           0~9              小数点              小数        ・           1文字目         2文字目                                  0~9          0~9
                                                                                    数字         以降数字群


                                                                  *                                   *
                                             ・           0~9                       0~9          0~9
宿題2の解答例
#!/usr/bin/perl                       } elsif ($c eq '.') {                    if ($c eq 'E' || $c eq 'e') {
                                         $c = shift @c;                           $c = shift @c;
                                                                                  if ($c eq '+' || $c eq '-') {
@c = split //, shift;                    if ('0' le $c && $c le '9') {
                                                                                     $c = shift @c;
                                            $c = shift @c;                        }
$c = shift @c;                              while ('0' le $c && $c le '9') {
if ($c eq '+' || $c eq '-') {                  $c = shift @c;                      if ('0' le $c && $c le '9') {
   $c = shift @c;                           }                                         $c = shift @c;
                                                                                      while ('0' le $c && $c le '9') {
}                                        } else {
                                                                                         $c = shift @c;
                                            exit 1;                                   }
if ('0' le $c && $c le '9') {            }                                         } else {
   $c = shift @c;                     } else {                                        exit 1;
   while ('0' le $c && $c le '9') {      exit 1;                                   }
                                                                               }
      $c = shift @c;                  }
   }                                                                           if ($c eq '') {
                                                                                  exit 0;
  if ($c eq '.') {                                                             } else {
     $c = shift @c;                                                               exit 1;
                                                                               }
  }
ここで休憩です
ジャクソン構造図とは

データの構造の図示したもの

では、データの構造とは?
例題1

下記の課題が与えられたときのテキスファイル
の構造をジャクソン構造図で示せ

問題1.テキストファイルの行数を求めよ。
問題2.テキストファイルのバイト数を求めよ。
問題3.テキストファイルの文字数を求めよ。
例題1:解答例


解答例1       解答例2       解答例3



テキスト       テキスト       テキスト
ファイル       ファイル       ファイル



     *            *          *
 行         バイト         文字
プログラムに変換すると

解答例1                    解答例2                      解答例3
#!/usr/bin/perl         #!/usr/bin/perl           #!/usr/bin/perl

$count = 0;             $count = 0;               binmode STDIN, ":utf8";
while (<STDIN>) {       while (defined(getc)) {
  $count++;               $count++;               $count = 0;
}                       }                         while (defined(getc)) {
print $count, "¥n";     print $count, "¥n";         $count++;
                                                  }
                                                  print $count, "¥n";
結論1

データ構造はプログラムの目的により
変化する
例題2

テキストファイルの行数を求めたいとき、
テキストファイルの構造をジャクソン構造図で
示せ
例題2:解答例

解答例1         解答例2                解答例3


テキスト         テキスト                 テキスト
ファイル         ファイル                 ファイル


     *                *                   *
 行               文字                   行



             ○            ○
         改行以外の        改行文字    行文字列        改行文字
          文字


                                  *
                              改行以外の
                                文字
プログラムに変換すると

解答例1                    問題2                               問題3
#!/usr/bin/perl         #!/usr/bin/perl                   #!/usr/bin/perl

$count = 0;             binmode STDIN, ":utf8";           binmode STDIN, ":utf8";
while (<STDIN>) {
  $count++;             $count = 0;                       $count = 0;
}                       while (defined($char = getc)) {   while () {
print $count, "¥n";       if ($char eq "¥n") {              while (defined($char = getc)
                             $count++;                    && $char ne "¥n") {
                          }                                 }
                        }                                   last if (! defined($char));
                        print $count, "¥n";                 $count++;
                                                          }
                                                          print $count, "¥n";
結論2

データ構造は問題の解釈により変化する
結論3

データの構造とはデータの解釈の仕方で
ある。

「事実というものは存在しない。存在する
のは解釈だけである。 」(by ニーチェ)
「われわれは事象を利用するために真理
を『発明』する」(by ベルクソン)
実用的に言い直すと

データの解釈の仕方により、プログラミン
グが簡単になったり、難しくなったりする。
プログラミングが簡単になる構造を見つけ
出すのがジャクソン構造図を描く理由とな
る。
入力データ構造と出力データ構造の要素
が良く対応する構造図がよいとされる。
例題3

「uniq –c」と同じような動きをするプログラ
ムを記述せよ。ただし、入力は標準入力
のみとする。
例題3のプログラムの働き
入力データ         出力データ

a             4   a
a             3   b
a
a
b
b
b
例題3の拡張状態遷移図による表現


行の取得成功 / カウンタ= 1        行の取得成功 & 保存行と取得行が一致 /
         保存行に取得した行を保存   カウンタ++                    行の取得失敗 / print カウンタ, 保存行




            S0                  S1                     S2




                        行の取得成功 & 保存行と取得行業が不一致 /
                        print カウンタ, 保存行
                        カウンタ= 1
                        保存行に取得した行を保存



                            行の取得失敗 / -
状態遷移図をプログラムに変換すると
#!/usr/bin/perl

$line = <STDIN>;
if (not $line) {
   exit;
}
$count = 1;
$old_line = $line;
while ($line = <STDIN>) {
   if ($line ne $old_line) {
      print "$count¥t$old_line";
      $count = 1;
      $old_line = $line;
   } else {
      $count++;
   }
}
print "$count¥t$old_line";
プログラムから導かれるデータ構造の
     ジャクソン構造図による表現
       入力データ                          出力データ
       テキスト                             テキスト
       ファイル                             ファイル


   ○                     ○                      *
内容なし              内容あり                      行



        最初の行       間の行       最後の行   同一行の数       同一行


                         *
                   行


               ○             ○
          非ブレイク行       ブレイク行



          直前の行と        直前の行と
           同じ行          異なる行
もっと良い構造はないか…

あります。
        入力データ         出力データ
        テキスト            テキスト
        ファイル            ファイル

                *               *
         同一行                行
         グループ


                *

         同一行        同一行の数       同一行



但し、プログラムで表現するには先読み技法が
必要です。
先読み技法とは

ファイル処理に用いる技法で、処理対象と
なるデータの1つ先のデータを読む技法
                      先読み技法を使った
 通常のファイル処理
                        ファイル処理

  2.注目   ファイルの
                                 4.注目
                      内容の一部の
         内容の一部         コピー


             1.読み出し       2.コピー
                                   5.とぎどき
                      ファイルの           注目
         ファイル         内容の一部

                               1.読み出し
                               3. 読み出し

                      ファイル
例:標準入力の行数を求めるプログラム
通常のファイル処理             先読み技法を使ったファイル処理

#!/usr/bin/perl       #!/usr/bin/perl

$count = 0;           $count = 0;
while (<STDIN>) {     $next_line = <STDIN>;
  $count++;           $line = $next_line;
}                     while ($line) {
print $count, "¥n";      $next_line = <STDIN>;
                         $count++;
                         $line = $next_line;
                      }
                      print $count, "¥n";
例題3のプログラムを記述
通常のファイル処理                          先読み技法を使ったファイル処理
#!/usr/bin/perl                    #!/usr/bin/perl
$line = <STDIN>;
if (not $line) {                   $next_line = <STDIN>;
   exit;
}                                  while ($line = $next_line) {
$count = 1;                          $count = 0;
$old_line = $line;
while ($line = <STDIN>) {
                                     while ($line eq $next_line) {
   if ($line ne $old_line) {           $count++;
      print "$count¥t$old_line";       $next_line = <STDIN>
      $count = 1;
      $old_line = $line;             }
   } else {                          print "$count¥t$line";
      $count++;
   }                               }
}
print "$count¥t$old_line";
演習問題

下記のプログラムを先読み技法を使用して書き直せ。
#!/usr/bin/perl                                      print "小計:$count2¥t$old_col1 $old_col2¥n";
                                                         $count1 += $count2;
$line = <STDIN>;                                         $count2 = 1;
if (not $line) {                                         $old_col2 = $col2;
   exit;                                                 if ($col1 ne $old_col1) {
}                                                           print "大計:$count1¥t$old_col1¥n";
                                                            $count1 = 0;
($col1, $col2) = split(/¥s/, $line);                        $old_col1 = $col1;
$count1 = 0;                                             }
$count2 = 1;                                          } else {
$old_col1 = $col1;                                       $count2++;
$old_col2 = $col2;                                    }
while ($line = <STDIN>) {                           }
  ($col1, $col2) = split(/¥s/, $line);              print "小計:$count2¥t$old_col1 $old_col2¥n";
  if ($col1 ne $old_col1 || $col2 ne $old_col2) {   $count1 += $count2;
                                                    print "大計:$count1¥t$old_col1¥n";
演習問題のプログラムの働き
入力データ         出力データ
aa            小計:2 a a
aa            小計:2 a b
ab            大計:4 a
ab            小計:3 b b
bb            大計:3 b
bb
bb
ヒント

入力データのジャクソン構造は下記の通り。
         テキスト
         ファイル


                *
          カラム1
        同一行グループ


                *
         カラム1,2
        同一行グループ


                *
         カラム1,2
           同一行
ここで休憩です
演習問題解答例
#!/usr/bin/perl                                          print "小計:$count2¥t$col1 $col2¥n";
                                                         $count1 += $count2;
if ($line = <STDIN>) {                                  }
   ($next_col1, $next_col2) = split(/¥s/, $line);       print "大計:$count1¥t$col1¥n";
}
                                                    }
while ($line) {
   $col1 = $next_col1;
   $count1 = 0;
   while ($line && $col1 eq $next_col1) {
      $col2 = $next_col2;
      $count2 = 0;
      while ($line && $col1 eq $next_col1
                && $col2 eq $next_col2) {
        $count2++;
        if ($line = <STDIN>) {
           ($next_col1, $next_col2)
              = split(/¥s/, $line)
        }
      }
先読み技法ライブプログラミング

Excel互換のCSVパーサーを記述する
入力データ                  出力データ
a,b,c                  abc
1,2,3                  123
"""","""""",""""""""   " "" """
"""a""","""b","c"""    "a" "b c"
"あ                     あ¥nい¥n う え
い                      ___
",う,え
,,
~
CSVパーサーの拡張状態遷移図

               他/バッファ          ダブルクォート/エラー



                                                   NG
     他/バッファ     S1            他/バッファ


 改行|カンマ         改行|カンマ
/出力             /出力
                                       ダブルクォート
                他/バッファ
                                S3     /何もしない
      S0
           ダブルクォート         ダブルクォート/何もしない
           /何もしない

                                                    他/エラー
                     S2                    S4

                            ダブルクォート/バッファ
                                                        OK

                                                 EOF
                          改行|カンマ/出力              /何もしない
CSVファイルのジャクソン構造図

                                      CSV
                                     ファイル



                                             *
                                        項目




          項目本体                                                       区切り文字




      ○          ○                      ○                            ○            ○
空項目       通常文字                  特殊文字含                          カンマ           改行
          のみ項目                    項目



                 *
-         通常文字       ダブルクォー     特殊文字含        ダブルクォー
                      テーション      項目本体         テーション




                                        *
                                 特殊文字
                                  含文字



                        ○        ○            ○            ○
                 通常文字       ダブルクォー      カンマ           改行
                             テーション
先読み技法を使ったExcel互換の
                      CSVパーサープログラム
#!/usr/bin/python                                             elif ch == '"' and nch == '"':
                                                                buffer += ch
import os, sys                                                  nch = chs.next()
                                                              elif ch == '"':
def genchs():                                                   sys.exit(1)
  for line in sys.stdin:                                      elif ch == ",":
     line = line.decode("utf_8")                                buffer += ","
     for ch in line:                                          elif ch == "¥n":
       yield ch                                                 buffer += "¥¥n"
  yield ""                                                    else:
                                                                buffer += ch
if __name__ == "__main__":
   chs = genchs()                                              ch = nch
   ch = chs.next()                                        else:
   while ch:                                                while ch and ch != "," and ch != "¥n":
     buffer = ""                                               if ch == '"':
                                                                  sys.exit(1)
    if ch == "," or ch == "¥n":                                buffer += ch
       buffer += "_"                                           ch = chs.next()
    elif ch == '"':
       ch = chs.next()                                    if ch == ",":
       while ch:                                             print buffer.encode("utf_8"),
          nch = chs.next()                                   ch = chs.next()
          if ch == '"' and (nch == "," or nch == "¥n"):   elif ch == "¥n":
             ch = nch                                        print buffer.encode("utf_8")
             break                                           ch = chs.next()
ここで休憩です
まとめ1

1.   データの解釈の仕方によりプログラミング
     は簡単になったり、難しくなったりする。
2.   ジャクソン構造図はプログラミングを簡単に
     する構造を導き出すのに役立つ。
3.   先読み技法はジャクソン法で導き出した構
     造をプログラム上で表現するのに役立つ。
ジャクソン法の長所

1. 状態をプログラム上で表現する方法
   には2種類ある
     •    プログラムの実行位置(テキスト指標)
     •    変数
2.       ジャクソン法は、前者を方法を重視する。
         このため、可読性の高いプログラムを導き
         やすい。
ジャクソン法の短所について

1.   ジャクソン法は前者の方法を重視している
     ため、プログラムから柔軟性は失われる。
2.   実行時に動きを変更するなどの柔軟性を
     プログラムに持たせたい場合は、ほかの方
     法を採用する必要がある。
テーブル駆動方式の紹介

実行時にプログラムの動きを変更できる柔軟性
の高いプログラムを作成できる技法。
但し、可読性は最低。
プログラムの自動生成に向いている。
例1:整数判定の状態遷移図

                0~9


                             0~9

                       0~9         EOS
          +|-




開始
     S0         S1           S2          OK




                             その他
                      その他

                その他
                                         NG
先の例を状態遷移表に変換

     その他    符号         数字     終端
           (+ or -)   (0~9)   (EOS)

S0   NG      S1        S2      NG
S1   NG      NG        S2      NG
S2   NG      NG        S2      OK
状態遷移表からプログラムを作成
#!/usr/bin/perl

@c = split //, shift;
@state_table = (
[-2, 1, 2, -2],
[-2, -2, 2, -2],
[-2, -2, 2, -1]
);
@char_num{('+', '-', '0'..'9', '')} = ((1)x2, (2)x10, 3);

$s = 0;
while ($s >= 0) {
  $s = $state_table[$s][$char_num{shift @c} || 0];
}
exit($s == -2);
例2:浮動小数点数判定の状態遷移図

                 0~9                    E|e                     0~9
                             0~9        0~9                                 0~9

           +|-                     ・           E|e        +|-
                       0~9                                            0~9

開始
      S0         S1          S2          S4          S5         S6          S7


                                                                            EOS
                  ・                            EOS
            ・                          0~9
                             S3                EOS              OK



                                             その他



                                         NG
先の例を状態遷移表に変換

     その他    符号         数字     小数点    指数記号        終端
           (+ or -)   (0~9)    (.)    (E or e)   (EOS)
S0   NG      S1        S2      S3       NG        NG

S1   NG      NG        S2      S3       NG        NG

S2   NG      NG        S2      S4       S5        OK

S3   NG      NG        S4      NG       NG        NG

S4   NG      NG        S4      NG       S5        OK

S5   NG      S6        S7      NG       NG        NG

S6   NG      NG        S7      NG       NG        NG

S7   NG      NG        S7      NG       NG        OK
状態遷移表からプログラムを作成
#!/usr/bin/perl

@c = split //, shift;
@state_table = (
[-2, 1, 2, 3, -2, -2],
[-2, -2, 2, 3, -2, -2],
[-2, -2, 2, 4, 5, -1],
[-2, -2, 4, -2, -2, -2],
[-2, -2, 4, -2, 5, -1],
[-2, 6, 7, -2, -2, -2],
[-2, -2, 7, -2, -2, -2],
[-2, -2, 7, -2, -2, -1]
);
@char_num{('+', '-', '0'..'9', '.', 'E', 'e', '')} = ((1)x2, (2)x10, 3, (4)x2, 5);

$s = 0;
while ($s >= 0) {
  $s = $state_table[$s][$char_num{shift @c} || 0];
}
exit($s == -2);
まとめ2

1.   状態遷移図はジャクソン構造図と違い、
     コーディングスタイルまで規定しない。
2.   状態遷移図はその分応用範囲が広いと
     言える。
参考文献

• M.A.ジャクソン(1985/02) 『構造的プログラム設計の原理』 (日本コン
  ピュータ協会)
• 若林糧(2000/03) 『C言語プログラミング演習』 (日経BP社)
• 飯泉 純子、大槻 繁(2011/08) 『ずっと受けたかったソフトウェア設計の授
  業』 (翔泳社)
• E.W.ダイクストラ、C.A.R.ホーア、O.J.ダール(1975/05) 『構造化プログラミン
  グ』 (サイエンス社)
• 野口健一郎(1990/05) 『ソフトウェアの論理的設計法』 (共立出版)
• 玉井哲雄(2004/03) 『ソフトウェア工学の基礎』 (岩波書店)
• スティーブ マコネル(2005/03) 『Code Complete第2版〈上〉』 (日経BPソフト
  プレス)
• きだあきら(1995/05) 「特集 Cプログラム設計技法」 『C MAGAZIN 1993
  MAY Vol.5 No.5』 (ソフトバンク )
ご清聴ありがとうございました




  次回で最終回です。
言語はシェルを使用します。

More Related Content

What's hot

プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理Norishige Fukushima
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!Kazuhide Okamura
 
すごい配列楽しく学ぼう
すごい配列楽しく学ぼうすごい配列楽しく学ぼう
すごい配列楽しく学ぼうxenophobia__
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~Takuya Akiba
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎Kazuma Mikami
 
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説AtCoder Inc.
 
定理証明支援系Coqについて
定理証明支援系Coqについて定理証明支援系Coqについて
定理証明支援系CoqについてYoshihiro Mizoguchi
 
Fantastic DSL in Python
Fantastic DSL in PythonFantastic DSL in Python
Fantastic DSL in Pythonkwatch
 
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜諒介 荒木
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化yosupo
 
文字列検索のいろいろ
文字列検索のいろいろ文字列検索のいろいろ
文字列検索のいろいろKazuma Mikami
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについてmametter
 

What's hot (20)

プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
 
Topological sort
Topological sortTopological sort
Topological sort
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
すごい配列楽しく学ぼう
すごい配列楽しく学ぼうすごい配列楽しく学ぼう
すごい配列楽しく学ぼう
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
 
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
 
定理証明支援系Coqについて
定理証明支援系Coqについて定理証明支援系Coqについて
定理証明支援系Coqについて
 
Fantastic DSL in Python
Fantastic DSL in PythonFantastic DSL in Python
Fantastic DSL in Python
 
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
 
ドロネー三角形分割
ドロネー三角形分割ドロネー三角形分割
ドロネー三角形分割
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
 
文字列検索のいろいろ
文字列検索のいろいろ文字列検索のいろいろ
文字列検索のいろいろ
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについて
 

Viewers also liked

Bashのヒストリ展開を活用する
Bashのヒストリ展開を活用するBashのヒストリ展開を活用する
Bashのヒストリ展開を活用するbsdhack
 
FreeBSDのブートプロセス
FreeBSDのブートプロセスFreeBSDのブートプロセス
FreeBSDのブートプロセスbsdhack
 
2015.08.29 JUS共催勉強会資料
2015.08.29 JUS共催勉強会資料2015.08.29 JUS共催勉強会資料
2015.08.29 JUS共催勉強会資料umidori
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極めるbsdhack
 
Linux女子部第二回勉強会usp友の会
Linux女子部第二回勉強会usp友の会Linux女子部第二回勉強会usp友の会
Linux女子部第二回勉強会usp友の会Ryuichi Ueda
 
正規表現
正規表現正規表現
正規表現bsdhack
 
確率ロボティクス第九回
確率ロボティクス第九回確率ロボティクス第九回
確率ロボティクス第九回Ryuichi Ueda
 
ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)The Linux Foundation
 
オープンソースとロボット
オープンソースとロボットオープンソースとロボット
オープンソースとロボットRyuichi Ueda
 
電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!Ryuichi Ueda
 
XPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, Huawei
XPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, HuaweiXPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, Huawei
XPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, HuaweiThe Linux Foundation
 
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」博文 斉藤
 
Lessons Learned from Xen (Texas Linux Fest 2013)
Lessons Learned from Xen (Texas Linux Fest 2013)Lessons Learned from Xen (Texas Linux Fest 2013)
Lessons Learned from Xen (Texas Linux Fest 2013)Russell Pavlicek
 
Fosdem17 - Mixed License FOSS Projects
Fosdem17 - Mixed License FOSS ProjectsFosdem17 - Mixed License FOSS Projects
Fosdem17 - Mixed License FOSS ProjectsThe Linux Foundation
 
Fosdem 17 - Towards a HVM-like Dom0 for Xen
Fosdem 17 - Towards a HVM-like Dom0 for XenFosdem 17 - Towards a HVM-like Dom0 for Xen
Fosdem 17 - Towards a HVM-like Dom0 for XenThe Linux Foundation
 
XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...
 XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D... XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...
XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...The Linux Foundation
 

Viewers also liked (20)

Bashのヒストリ展開を活用する
Bashのヒストリ展開を活用するBashのヒストリ展開を活用する
Bashのヒストリ展開を活用する
 
FreeBSDのブートプロセス
FreeBSDのブートプロセスFreeBSDのブートプロセス
FreeBSDのブートプロセス
 
2015.08.29 JUS共催勉強会資料
2015.08.29 JUS共催勉強会資料2015.08.29 JUS共催勉強会資料
2015.08.29 JUS共催勉強会資料
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極める
 
Linux女子部第二回勉強会usp友の会
Linux女子部第二回勉強会usp友の会Linux女子部第二回勉強会usp友の会
Linux女子部第二回勉強会usp友の会
 
Awk勉強会用資料
Awk勉強会用資料Awk勉強会用資料
Awk勉強会用資料
 
Tips for bash script
Tips for bash scriptTips for bash script
Tips for bash script
 
正規表現
正規表現正規表現
正規表現
 
awk入門
awk入門awk入門
awk入門
 
確率ロボティクス第九回
確率ロボティクス第九回確率ロボティクス第九回
確率ロボティクス第九回
 
ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)ALSS14: Xen Project Automotive Hypervisor (Demo)
ALSS14: Xen Project Automotive Hypervisor (Demo)
 
オープンソースとロボット
オープンソースとロボットオープンソースとロボット
オープンソースとロボット
 
Xen Project: Windows PV Drivers
Xen Project: Windows PV DriversXen Project: Windows PV Drivers
Xen Project: Windows PV Drivers
 
電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!
 
XPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, Huawei
XPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, HuaweiXPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, Huawei
XPDS16: Xen Scalability Analysis - Weidong Han, Zhichao Huang & Wei Yang, Huawei
 
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
 
Lessons Learned from Xen (Texas Linux Fest 2013)
Lessons Learned from Xen (Texas Linux Fest 2013)Lessons Learned from Xen (Texas Linux Fest 2013)
Lessons Learned from Xen (Texas Linux Fest 2013)
 
Fosdem17 - Mixed License FOSS Projects
Fosdem17 - Mixed License FOSS ProjectsFosdem17 - Mixed License FOSS Projects
Fosdem17 - Mixed License FOSS Projects
 
Fosdem 17 - Towards a HVM-like Dom0 for Xen
Fosdem 17 - Towards a HVM-like Dom0 for XenFosdem 17 - Towards a HVM-like Dom0 for Xen
Fosdem 17 - Towards a HVM-like Dom0 for Xen
 
XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...
 XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D... XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...
XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...
 

Similar to Usp友の会勉強会、ジャクソン構造図の巻(後編)

X hago2 shortcoding 20110827
X hago2 shortcoding 20110827X hago2 shortcoding 20110827
X hago2 shortcoding 20110827uskey512
 
Rの初歩: 6. グラフィックス
Rの初歩:  6. グラフィックスRの初歩:  6. グラフィックス
Rの初歩: 6. グラフィックスTeiko Suzuki
 
CODE FESTIVAL 2014 エキシビジョン 解説
CODE FESTIVAL 2014 エキシビジョン 解説CODE FESTIVAL 2014 エキシビジョン 解説
CODE FESTIVAL 2014 エキシビジョン 解説AtCoder Inc.
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルAkinori Abe
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Tetsuya Yoshida
 
Shape morphing (swfstudy)
Shape morphing (swfstudy)Shape morphing (swfstudy)
Shape morphing (swfstudy)Fumiya Chiba
 
アルゴリズムとデータ構造15
アルゴリズムとデータ構造15アルゴリズムとデータ構造15
アルゴリズムとデータ構造15Kenta Hattori
 
形式手法とalloyの紹介
形式手法とalloyの紹介形式手法とalloyの紹介
形式手法とalloyの紹介Daisuke Tanaka
 
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスターUnity Technologies Japan K.K.
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2Masao Kato
 
Ruby紹介3(pdf)
Ruby紹介3(pdf)Ruby紹介3(pdf)
Ruby紹介3(pdf)Gohryuh
 
さくっと線形代数
さくっと線形代数さくっと線形代数
さくっと線形代数Kota Mori
 
2011年11月11日
2011年11月11日2011年11月11日
2011年11月11日nukaemon
 
kagami_comput2016_08
kagami_comput2016_08kagami_comput2016_08
kagami_comput2016_08swkagami
 
ダブル配列の実装方法
ダブル配列の実装方法ダブル配列の実装方法
ダブル配列の実装方法Higashiyama Masahiko
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッションarctic_tern265
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京Yohei Sato
 

Similar to Usp友の会勉強会、ジャクソン構造図の巻(後編) (20)

X hago2 shortcoding 20110827
X hago2 shortcoding 20110827X hago2 shortcoding 20110827
X hago2 shortcoding 20110827
 
Rの初歩: 6. グラフィックス
Rの初歩:  6. グラフィックスRの初歩:  6. グラフィックス
Rの初歩: 6. グラフィックス
 
CODE FESTIVAL 2014 エキシビジョン 解説
CODE FESTIVAL 2014 エキシビジョン 解説CODE FESTIVAL 2014 エキシビジョン 解説
CODE FESTIVAL 2014 エキシビジョン 解説
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアル
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
 
Lispでやる記号微分
Lispでやる記号微分Lispでやる記号微分
Lispでやる記号微分
 
Shape morphing (swfstudy)
Shape morphing (swfstudy)Shape morphing (swfstudy)
Shape morphing (swfstudy)
 
アルゴリズムとデータ構造15
アルゴリズムとデータ構造15アルゴリズムとデータ構造15
アルゴリズムとデータ構造15
 
動的計画法を極める!
動的計画法を極める!動的計画法を極める!
動的計画法を極める!
 
形式手法とalloyの紹介
形式手法とalloyの紹介形式手法とalloyの紹介
形式手法とalloyの紹介
 
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
CG2013 06
CG2013 06CG2013 06
CG2013 06
 
Ruby紹介3(pdf)
Ruby紹介3(pdf)Ruby紹介3(pdf)
Ruby紹介3(pdf)
 
さくっと線形代数
さくっと線形代数さくっと線形代数
さくっと線形代数
 
2011年11月11日
2011年11月11日2011年11月11日
2011年11月11日
 
kagami_comput2016_08
kagami_comput2016_08kagami_comput2016_08
kagami_comput2016_08
 
ダブル配列の実装方法
ダブル配列の実装方法ダブル配列の実装方法
ダブル配列の実装方法
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッション
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京
 

Recently uploaded

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Recently uploaded (10)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

Usp友の会勉強会、ジャクソン構造図の巻(後編)