こんにちは!
ナビゲータのEVEです。
現在、EVEプロジェクトでは、以下の環境を保有しています。
Xserver━pro2grammer.com
┗shareholders.com
VMware━開発環境
┗テスト環境
本日は、開発環境でフレームワークを検証できるように設定を微調整をしていました。なんとか、明日から検証作業ができるようになったようです。確か、PHP5から、PHP7にバージョンアップしようとしたときに、DBの接続方法が変わったといった内容を読んだ記憶がありますが、どうなのでしょうか?今日やろうかなとも思ったのですが、楽しみは明日にとっておきます。
それでは、昨日の話の続きをします。
[機能設計2]
昨日は、5W1Hで誰が何をどうしたいのかということを列記するという話をし、その列記した内容の網羅性を樹形図、またはマトリックスを作り確認してはどうでしょうかと提案しています。
その作業については、これから順次行うとして、その後は何をするのかお話ししましょう。
以下の様な樹形図、またはマトリックスを作成後、次に、この機能を実現するために、何をどのようにするのかブレイクダウンしていきます。既に、最初の機能定義でどこでやるのかは明確になっているので、次にやる作業は、名詞と動詞を用いて何を、どうするのか記述していきます。
記述方法としては、最初に定義した機能定義を<レベル1機能定義>とすると、その内容を詳しく列記し、そのレベルを下げて記述していきます。
<レベル1機能定義> ← 昨日抽出した機能
リアルタイムで、インターネットを介して、教師が、生徒に、プログラム言語を教える
❶ ❷ ❸ ❹ ❺
<レベル2機能定義>
教師は、生徒へ、使用する資料を配付する。
❶ ❷ ❸
<レベル3機能定義>
授業で使用する資料は、ログイン後のシステムでダウンロードすることができる
❶ ❷
授業で使用する資料は、登録済みのメールアドレスで受信することができる。
❶ ❷
(レベルの関係)
<レベル1機能定義>
┗<レベル2機能定義>
┗<レベル3機能定義>
以上のような感じで、レベルをブレイクダウンしていき、もう詳細化することができないところまで実施します。それで、1つの機能が完成します。
以上の機能定義により何をどうするのか深いレベルで理解できるようになるので、これ以降の作業は、その機能をシステム的にどう実現するのか仕様書に纏めていくという作業になります。これ以降は、どこのプロジェクトでもやっていることと同じになると思います。
[機能定義の方針が決定して]
システム仕様書を作っていて、最後にもめるのが、「思ったシステムでない!」、「当初考えていた機能が足りない!」っといた部分になります。確かに作っていてモノができあがってくると、あぁすればよかった、こうすればもっといいのにとかといった意見が出てくるのですが、それをプロジェクトの途中で取りこむのは非常に難しいのが現実です。できれば、2次開発、3次開発といった次の開発で取り込めればいいのですが、資金が潤沢なプロジェクトだけではありません。多くのお客様は、現在の予算の中に入れようとするのですが、入れるとデグレード問題などが発生し大変なことになります。
今回の機能定義は、そんなプロジェクトの悩みを解決する手法だと思っています。
なお機能定義をしていて、思ったのですが、網羅性のマトリックスの作成は、レベル1機能定義だけになりそうです。レベル1機能定義だけでも作成するのは大変なのですが、ここにレベル2、レベル3が入ってきたら大変です。最終的にどうなるのか未定なのです。いろいろ、工夫して仕様書を作っていきたいと思います。
引き続き機能設計をし、終えたのちに、通常の開発に入りたいと思います。なお、設計資料ですが、現時点は、pro2grammer.comを通してどんなことをやっているのか公開しようかなっと思っています。
実現するか未定ですが・・・。
では、また!
<レベル1機能定義樹形図>
リアルタイム━ブラウザ━教師━PHP
┃ ┃ ┣JavaScrpt
┃ ┃ ┣Java
┃ ┃ ・
┃ ┃ ・
┃ ┃ ・
┃ ┃ ・
┃ ┃ ┗HTML
┃ ┗生徒━PHP
┃ ┣JavaScrpt
┃ ┣Java
┃ ・
┃ ・
┃ ・
┃ ・
┃ ┗HTML
┗メール ━教師━PHP
┃ ┣JavaScrpt
┃ ┣Java
┃ ・
┃ ・
┃ ・
┃ ・
┃ ┗HTML
┗生徒━PHP
┣JavaScrpt
┣Java
・
・
・
・
┗HTML
オフライン━ブラウザ━教師━PHP
┃ ┃ ┣JavaScrpt
┃ ┃ ┣Java
┃ ┃ ・
┃ ┃ ・
┃ ┃ ・
┃ ┃ ・
┃ ┃ ┗HTML
┃ ┗生徒━PHP
┃ ┣JavaScrpt
┃ ┣Java
┃ ・
┃ ・
┃ ・
┃ ・
┃ ┗HTML
┗メール ━教師━PHP
┃ ┣JavaScrpt
┃ ┣Java
┃ ・
┃ ・
┃ ・
┃ ・
┃ ┗HTML
┗生徒━PHP
┣JavaScrpt
┣Java
・
・
・
・
┗HTML
注意!
今まで頭の中だけで設計していた内容を昇華し、文章にすると以上のような感じになります。普段からこんなことをしているわけではありません(笑)。
タグ:機能定義