FuzzyTrade

MQL5プログラミング研究会の案内を目的としています。MQL5プログラミングミングをやさしく解説。要求工学から開発プロセスまで、オブジェクト指向の小さなプログラミングから説明。

MQL5要求定義04


MQL5要求定義04

ユーザー(日本ハム)

要求定義(多重継承)要求抽出01
1.ゴール要求
(1)スクリプトで1回きりの計算する。
(2)3つのクラスを定義。
(3)最後のクラスは前の2つのクラスを多重継承する。
(4)試作品のテストを行う。

ユーザー(日本ハム)
要求定義(多重継承)要求抽出02
プロトタイプ1

class CCircle
  { 
public:   
   double     pi;
   double     r ;
public:   
              CCircle(void){pi=3.14;};
             ~CCircle(void){}; 
  }; 
  
class CSquare 
  { 
public:   
   double     a;
public:
              CSquare(void){a=5;};
             ~CSquare(void){}; 
  }; 

class CArea :   public CSquare , public CCircle
  { 
    double     b;
public:
             CArea(void){b=10;};
            ~CArea(void){};     
      
   double    f1(void ){return(r*r*pi);}; 
   double    f2(void ){return(a*b);}; 
  };  
  
void OnStart()
  {  
   CArea s;
   s.r = 3;
   Print(s.f1()); 
   Print(s.f2());   
  } 
  
 ベンダー(ソフトバンク)

要求定義(多重継承)要求確認01
次の項目の要求の妥当性を検討することになった。
1.要求の真理さ
2.要求の正当さ
3.要求の誠実さ

 

FuzzyTrade(MQL5プログラミング研究会)の案内はこちらから

MyFuzzyTrade

よろしかったら「平尾容疑者の脱走とFX」の記事もご覧ください

FUZZYTRADE



ベンダー(ソフトバンク)

要求定義(多重継承)要求確認02
要求の妥当性を検討
MQL5では多重継承は使用出来ないことが判った。
テスト結果
(1)コンパイルはエラーを表示。

ベンダー(ソフトバンク)

要求定義(多重継承)要求確認03
プロトタイプ1を修正して試みた。
CAreaクラスはCCircleのサブクラスCSquareのサブクラスとした。

プロトタイプ2
class CCircle
  { 
public:   
   double     pi;
   double     r ;
public:   
              CCircle(void){pi=3.14;};
             ~CCircle(void){}; 
  }; 
  
class CSquare : public CCircle
  { 
public:   
   double     a;
public:
              CSquare(void){a=5;};
             ~CSquare(void){}; 
  }; 

class CArea :   public CSquare 
  { 
    double     b;
public:
             CArea(void){b=10;};
            ~CArea(void){};     
      
   double    f1(void ){return(r*r*pi);}; 
   double    f2(void ){return(a*b);}; 
  };  
  
void OnStart()
  {  
   CArea s;
   s.r = 3;
   Print(s.f1()); 
   Print(s.f2());   
  } 

ベンダー(ソフトバンク)

要求定義(多重継承)要求確認04
上記プログラムのテストは問題なかった。
テスト結果
(1)コンパイルは異状なく終了。
(2)MT5で正常に表示。

ユーザー(日本ハム)とベンダー(ソフトバンク)の打ち合わせ

要求定義(多重継承)要求確認05
ユーザーとベンダーは会議を開き、
要求のすり合わせを行った。
プロトタイプ1は廃棄されることになった。 
代わって、プロトタイプ2が採用されることになった。