システム開発にJava言語もC言語も関係ない? 設計図、流れ図作成が8割の実務
C言語専用ページはこちらです。
http://ckouza.com
札プロのホームページはこちらです。
Java言語専用ページはこちら
C言語専用ページはこちらです。
http://ckouza.com
通信講座ポータルサイト
今日は。
札プロの横田です。
先日、資料請求をいただいた方に「プログラマはどれぐらい流れ図を重視するのですか?」
という質問を受けました。
今年は、通信教育元年といっていい年のようでJava、C、PHPなど通信講座もかなり増えているそうです。
別なスクールの講座をすでに受講されたそうで、恐らくほとんどの講座では設計図である「仕様書や流れ図、UMLの作成の仕方」はやらないと思うのです。
Java言語のプログラミングを教える。Androidのプログラミングを教える。という風に最初から言語をどんどん学習させてるわけです。
★例えば、iphoneアプリのサイコロアプリを作るとしましょう。
さて、どうやって作るか?
いきなりMACに向かってガンガンプログラムを打っていく!
「ん~~~~~っ、カッコイイ~~~」
とんでもないです。
できますか?よほどの天才でない限り無理です。
★手順は
(1)画面を正確に詳細に設計する。
(2)アプリの内容を文章にします。(要求定義と仕様書の作成)
(3)さらに細かいアプリの動きを、日本語で箇条書きで書く。
(4)サイコロの図を出す方法を日本語と数式で表し、タップ(タッチ)して投げる動作で転がり
目が出るための論理を数式に表す。
(5)リセットなどの方法の部分も箇条書きでその方法を詳細に書く。
当然、画面にはこのコントロール(ボタン アイコンなど)が正確に記載されていなければならない。
(6)MACのXcodeのどの形式ののアプリにし、使用するコントロール(画面部品)の使用方法を確認し
理解しておく。
このように、ブログラムの文の手前(直前)まで設計して、後は画面にコントロールを貼り付け、画面と連携させ、数式など設計図を見てC言語で作るのかObjective-C言語で作るのかを決め、文を設計図通りに打っていきます。
途中設計図が間違っていれな訂正して先にに進んでいきます。
上手くいけば2週間ぐらいで一応完成するかもしれません。
しかし、いきなり打ったら、・・・3ヶ月かかるでしょう。
★システム開発の実務の流れ 例えばAmazon.comなどのシステムの場合
① ●設計 労力と時間で8割 (上流工程)
(1)システム全体の内容を文書にする 要求定義→概要設計(文書で箇条書き)→
詳細設計(文書+流れ図 UML)
(2)各画面の詳細な設計とリンクの関係を見る画面遷移図を作る。(下流工程)
(3)使用する変数の名前、種類、大きさの設計。 データベースのデータの設計
(第1、第2、第3正規化による個人データ、出品データの部品化、分割するのが定石)
(4)データとプログラムの関係を表す流れ図の作成、または確認。
(6)使用する作成ツール Eclipse アプリケーションサーバー データベースの銘柄などを決定。
②●コーディング Javaなどの言語でのコーディング 画面はWEBデザイナーが作成
労力と時間 2割 (下流工程)
③●バグ取り間違い探し 労力と時間 2割
④●使用説明書 マニュアルの作成 労力と時間 2割
⑤●現場でのインストールとセッティング 0.5割
⑥●運転状況の監視と仕様従業員への教育、指導 1割
★言語の文法は、設計が出来る人間なら誰でもマスター出来るのです。
だいたいほとんどのチームリーダー(システムエンジニア)も言語でコーディングはしません。
「アプリ 仕様書 設計図 マニュアル」がワンセットで製品なのです。
TVやコンピュータだってそうではないですか?
設計図が無くてどうやって家電製品お修理やWindowsならそのセキュリティーホールを直すのですか
これを日本人は得意の完璧主義できっちり作ってきますが中国に外注した場合きちんとしたものは見たことがないと札幌のG社の主任エンジニアの方が言ってました。
申し訳ないですが事実です。
ですのでソフト作成の外国への外注はなかなか進まないのが現状なのです。
★高度なシステムほど、いきなり言語で作っているくのと、まずは徹底してその中の仕組みを日本語で書き練っていくのとどちらが簡単でしょうか?
後者ですよね。
逆に言うと、日本語ならAmazonのシステムだって作れそうですよね。
そうなんです。
通信教育が普及するほど、以上の認識がどんどん受講された方に希薄になっているのに奇遇を感じます。
★これらの様々な開発手法の定石は「基本情報技術者試験」できっちり学習します。
ですから、現場で独学でプログラマになった人間と基本情報技術者試験をしっかり学習して正当な基礎をマスターした人間とが衝突する事も小さな会社ほどあると思います。
プログラミングも絵画のデッサンやピアノの演奏などと同じで、きちんとした基本を手順を踏んで習得しないといけないのです。
独学の人が上司の場合、間違った開発手法を押し付けてくる場合もあるでしょう。
社内SEなどに多いと思いますが、これは私も体験がありますが『パワハラ』です。