ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Astah*で、上流から、下流まで、トレーサビリティをもって開発する方法(4)

2013-04-18 19:30:51 | 開発ネタ


Astah*で、上流から、下流まで、トレーサビリティをもって開発する方法(3)
http://blog.goo.ne.jp/xmldtp/e/cb7b784d5e73df3d147ec3bc2ae1b6b0

で書いた話の続き。

View,Modelが埋まってきて、とくにViewは画面に分割できた。
のこりは、コントローラーなのだが、ここで問題がある。

今日は、そこから話をはじめる・・・




■コントローラーは、フレームワークに結び付いている

 コントローラーは、フレームワークに結び付いています
 たとえば、

  strutsであれば、コントローラーは、Action「クラス」であり、
   Viewのイベント(メソッドに表現されている)と結び付くのは
   このActionクラス

  cakephpであれば、コントローラーは、Action「メソッド」であり、
   Viewのイベント(メソッドに表現されている)と結び付くのは
   このコントローラークラスのActionメソッド

 というわけで、クラスの単位が違うわけです。
 そこで、コントローラーを決める前に、フレームワークを決める必要が
あるわけです。




■フレームワークの決定

 これは趣味とか、思惑とか、宗教とか、そんな感じの問題です。

 今回は、CakePHPと決めてしまいます。




■コントローラークラスの決定

 そして、コントローラーグラスを具体的に決めます。

 CakePHPだとしても、1画面1コントローラークラスにして、
作成することも可能です。
 また、もっと大きく取って、
   コントローラークラスは、ユースケースにすることもできるし、
   やる気になれば、1モデル1コントローラーにもできます
     →これをすると、bakeでの自動生成がしやすい?

 今回は
  「1コントローラークラスは、1ユースケース」
 とします。




■アクションメソッドの決定

 コントローラークラスの中の、アクションメソッドですが、これは、
 View(でおきるイベントの)メソッドに対し、
 (呼び出される)Actionメソッドはあるはずです。

 ただし、次画面表示に関しては、かならずしもメソッドが必要なわけではありません。
 1アクションに対し、かならず次の画面が決まっている場合は、
 Viewから呼び出されたActionメソッドで、次画面表示を行ってもいいわけです。

 そこで、このようにします。

   ・まず、取り合えず、Viewから呼び出されるActionメソッドを作ります。

   こんなかんじ


   問3画面の「課題文表示()」は、コントローラーにありません。
   これは、View上で表示するだけで、コントローラーに来ないためです。

   集計結果表示画面の「結果表示()」もコントローラーにありません。
   これは、上述の「Viewから呼び出されたActionメソッドで、次画面表示を行」う
   パターンです。
   アンケート集計管理の集計開始メソッド内で、集計結果表示の内容をつくってしまうため、
   アクションメソッドが作られていません


  ・画面のActionから、コントローラーを呼び出し、画面を表示するという流れが
   滞りなく、抜けがないか確認する
    →そのため、画面遷移図等を作ります。




 ということで、次は、画面遷移などの話にいきます。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelの凡ミスで、世界中の人の人生が狂わされている現実!

2013-04-18 15:38:34 | トピックス
すげ~・・・

ここ

「ごめんなさい」では済まされない! 財政切り詰め策の根拠となった論文に誤り 欧州連合の方針に疑問
http://markethack.net/archives/51871682.html

(以下太字は上記サイトより引用)


2009年にギリシャ問題が発覚し、それが欧州財政危機問題へと拡大した際、欧州委員会は危機を回避する政策を策定するにあたってひとつの論文を参考にしました。

それはハーバード大学のケネス・ロゴフ教授とハーバード・ケネディ・スクールのカーメン・ラインハート教授による「Growth in a Time of Debt(国家債務時代の経済成長)」という論文です。


この論文、


「国家負債が90%を超えるとGDP成長が著しく鈍化する」


と主張されているが、


マサチューセッツ大学アマースト校の博士課程に学ぶトーマス・ハーンドンがこの論文に書かれている結果を再現しようとしたところ、ロゴフ教授とラインハート教授が主張するような、「国家負債が90%を超えるとGDP成長が著しく鈍化する」という結果が得られませんでした。そこで彼の指導教授であるマイケル・アッシュ教授ならびにロバート・ポーリン教授とともに「結果がそうならなかった」という指摘をしました。


で、


結局、ロゴフ教授とラインハート教授がエクセルのスプレッドシートを操作する際、コーディングのミスをした為、一部のデータが演算に反映されていなかったことが判明しました。


つまり、欧州連合の方針として、ギリシャやスペインは切り詰め政策を強要されていて、
その影響は、ヨーロッパ、さらに世界中の人々が受けている。
切り詰め政策で景気が悪くなり、人生が狂わされた人も数多くいると思われるが、

その原因は、
ロゴフ教授とラインハート教授のExcelのコーディングミス
のためでした(^^;)
っていうお話。

・・・まじ!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「秒速で結婚」する人がいたり「世界一即戦力な男」がいたり、「砂に埋まった社長」の会社は・・・

2013-04-18 13:06:29 | AI・BigData
人材豊富!?

「世界一即戦力な男」が内定した「砂に埋まった社長」の会社Ligで、秒速で結婚下人がいるそうです。


弊社にて奇跡が起きた件。~秒速で結婚できた理由~
http://ameblo.jp/haruka-ito/entry-11512017989.html


いろんな人がいる会社のような・・・
ただ、この会社、何やっている会社か、知らなかったりする・・・(^^;)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

C#でExcel-(3)グラフを描く-折れ線グラフなど

2013-04-18 11:23:39 | そのほか
まえに

C#でExcel-(2)グラフを描いてみる
http://blog.goo.ne.jp/xmldtp/e/c1223d4427fb2dc432e3493efa13b9d5

でグラフを描いた。今回は、
  ・ダイアログボックスを使わず(コマンドラインから起動する)、
  ・折れ線グラフを
書いてみたいと思う。





■お題

以下のようなExcelファイル

「PHPExcelSimple1.xls」を読み込み(PHPのときと同じもの)

のように、グラフをつけて
「PHPExcelSimple3.xls」に書き出しなさい



■環境
Visual Studio C# 2010
Excel 2003(Office 2003 プロフェッショナル版の)

■手順

・1.プロジェクトを作ります
 「コンソールアプリケーション」で作ります。

・Excelの参照追加
プロジェクト→参照の追加を選択

以下のダイアログが出る

COMタブをクリック、スクロールすると、以下のExcelのものになるので

これを選択してOK

すると、ソリューションエクスプローラーをみると

Excelと(ここがちがう)
MicrosoftOfficeCore
がある。

・4.プログラミング
こんなかんじ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Excel.Workbooks objBooks;
            Excel.Application objApp;
            Excel._Workbook objBook;

            try
            {
                //  読み込み
                objApp = new Excel.Application();
                objBooks = objApp.Workbooks;
                objBook = objBooks.Open("C:\tmp\PHPExcelSimple1.xls");

                //  グラフを書く
                Excel.Worksheet thisWorksheet;
                thisWorksheet = objBook.ActiveSheet as Excel.Worksheet;
                Excel.ChartObjects charts =
                    (Excel.ChartObjects)thisWorksheet.ChartObjects(Type.Missing);

                // チャート作成(x = 100, y = 100, 幅500 高さ 300)
                Excel.ChartObject chartObj = charts.Add(100, 100, 500, 300);
                Excel.Chart chart = chartObj.Chart;

                // データをセット.
                Excel.Range chartRange = thisWorksheet.get_Range("A1", "D5");
                chart.SetSourceData(chartRange, Type.Missing);

		        //	折れ線グラフのチャート指定
                chart.ChartType = Excel.XlChartType.xlLineMarkers;
                chart.PlotBy = Excel.XlRowCol.xlColumns;
               


                //  ファイル保存
                objBook.SaveAs("C:\tmp\PHPExcelSimple3.xls");

                //  クローズ処理
                objBook.Close();
                objBooks.Close();
                objApp.Quit();
            }
            catch (Exception theException)
            {
                //  エラーメッセージ出力
                Console.Write(theException.ToString());
            }

        }
    }
}



・5 実行する
 デバック→デバッグ開始で




問題は、折れ線グラフのとき、なにを指定するか・・・
とかだが、そういう詳しいことは、マクロでグラフを描くと、
わかったりする。それについては、別の機会で・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする