33
1 脳内メーカーソフトを利用した Visual Basic.NET 使用したソース自動生成方法の研究 2010年1月22日 阪南大学 経営情報学部 経営情報学科 5106192 永戸 好洋 5106214 福井 亮介

使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

1

脳内メーカーソフトを利用した Visual Basic.NETを

使用したソース自動生成方法の研究

2010年1月22日

阪南大学 経営情報学部 経営情報学科

5106192 永戸 好洋 5106214 福井 亮介

Page 2: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

2

‐目次‐ 第一章. ........................................................... はじめに

........................................................................................................ P.3 第二章.Visual Studio.NETの概要 ................................................................ P.4

2-1.Visual Studio.NETとは何か .................................................... P.4 2-2.オブジェクト指向の概念 ........................................................... P.5 2-3.オブジェクト指向プログラム .................................................... P.6 2-4.VS.NET(VB.NET)の必要システム............................................ P.9 2-5..NETアプリケーションの環境.................................................. P.9 2-6.MSDN........................................................................................ P.11

第三章.Visual Basic.NETの開発環境 ......................................................... P.12

3-1.Visual Basic.NETの概要 .......................................................... P.12 3-2.各部の名称 ................................................................................. P.12 3-3.VB.NETの開発手順 .................................................................. P.14

第四章.脳内メーカーの提案 ........................................................................... P.20

4-1.脳内メーカーの概要................................................................... P.20 4-2.脳内メーカーの操作方法 ........................................................... P.20 4-3.システムの基本 .......................................................................... P.21 4-4.プログラムに使用した主な文と関数の説明............................... P.23

第五章.まとめ................................................................................................. P.30 参考文献 ........................................................................................................... P.31 謝辞................................................................................................................... P.32

Page 3: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

3

Page 4: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

4

第一章 はじめに 現在、私たちの社会生活では,必ずといっていいほどコンピュータシステムを利用して

いる。例えば、通学するために電車を利用するとき駅の自動改札機システムを通過したり,

家庭では炊飯器やテレビの一般家電などがある。このようにいろいろな場所でコンピュー

タシステムが使用されている。コンピュータシステムは社会的に今の私達の生活を支える

ために非常に重要な役割を果たしており、そのためにシステムのソフトウェアであるプロ

グラムも量と質ともに膨大になっている。このことを通産省の 2009年版組込みソフトウェア産業実態調査報告書を考察する[1] (図1参照)。組込みソフトウェアとは、家電製品や産業機器に組み込まれた特定の機能を提供するためのコンピュータシステムである。

この調査報告書で 2004年から 2009年にかけて,製品開発費を占める組込みソフトウェアの割合がこの 6年間で約 2倍に上がっている。また、組込みソフトウェア開発費が組込み

図 1 2009年版組込みソフトウェア産業実態調査報告

Page 5: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

5

製品開発費用に対する割合が大きくなればそれを組込みソフトウェア開発技術者が必要と

なる。現在この技術者の人口は 25万 8000人である。しかし現在の状況では技術者の人口では 6万 9000人の不足と考えられる。つまり,膨大なプログラムを作成しないといけない状況下にある。大量のプログラムを作成するために、プログラム製作過程でのソースコー

ド自動生成は重要な役割を果たしている。私たちは脳内メーカーを作成するに対して、プ

ログラム製作を製作する中でソースコード自動生成を取り入れるために Visual Basic.NETで脳内メーカーのプログラム製作を実施した。なぜ Visual Basic.NETを選択した理由は、大学の講義で学んでいたこととVisual Basic.NETを使ってプログラムを製作する開発環境が整っていたことと、脳内メーカーのプログラムを作るのに一番難しい画像の取り込みが

簡単だった為である。この論文では、第二章で Visual Studio.NETの概要と必要環境を説明してVisual Basic.NETとの違いについて述べるのと、オブジェクト指向について述べる。第三章では Visual Basic.NETの概要とプログラムの開発手順について述べる。第四章では自分達で作った脳内メーカーについて述べ、第五章でまとめを述べる。

第二章 Visual Studio.NETの概要

2-1 Visual Studio.NETとは何か

Visual Studio.NET(VS.NET)とは、マイクロソフト社がリリースしているソフトウェア開発を詰め合わせたソフトウェアパッケージである。またWindows環境における統合開発環境でもある。なので、各開発言語に共通のウィザードやツール、統合言語開発などを持

っている。また VS.NET は、それぞれのアプリケーションと連携がとれるようになっている。まず、開発言語の本体では.NETテクノロジーを用いたWindowフォームの機能を利用して、表現力豊かな Windows アプリケーションを作成できる。さらに、Windows アプリケーションと同様なアプリケーションモデルでWebアプリケーションを作成するなど、ネットワーク対応の機能が強化されている。また、VB.NET ではアップグレード・ウィザードを使えばVB6.0で作成したプロジェクトファイルをVB.NET用のプロジェクトへアップグレードすることができる。また Visual Studioと Visual Studio.NETとの大きな変更点は.NET Frameworkの採用である。それによってマネージドコードのアプリケーションを開発することができるようになる。また Windows 上で動作する普通のプログラム(Win32プログラム)とは少し違う。VS.NET で作成したプログラム(.NET プログラム)は、.NET Frameworkという実行プラットフォームでのみ動作する(図2参照)。

図 2 Win32プログラムと.NETプログラムの違い

Page 6: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

6

この大きな変更の理由は、近年ではインターネットの急速な発展に伴って、ネットワー

ク非対応のアプリケーション開発の企業ユーザーの減少が見られるようになる。ネットワ

ーク対応の開発言語に利用の中心が移り、それに伴いマイクロソフト社は 2002年に Visual Basic.NET(VB.NET)をリリースして Web アプリケーションの開発を可能にするなどネットワーク対応を図ると同時に、Visual C#.NET、Visual C++.NET、Visual j.NETを合わせてリリースしている。ネットワーク対応の開発言語へ移行を計り、これらのセットは Visual Studio.NET(VS.NET)としてパッケージ販売される。翌年 2003年にはユーザーの要望などに応え、さらに改良した Visual Studio.NET version2003をリリースしている。構成する各言語も Visual Studio.NET version2003と、すべて改訂された。また、2005年の 11月には.NETというフレーズがはずれ Visual Studio 2005とされた。このバージョンから 64ビット拡張に対応している。現在は 2008年の 2月に Visual Studio 2008がリリースし、VB や C#の言語仕様が拡張されている。一方で J#が外された。また、このバージョンのVisual C++で作成したプログラムはWindows 98/Me/NT4上での動作が不可能となっている。このように Visual Studio.NETとは、ネットワークに対応した開発言語などの統合開発環境を提供するソフトウェア開発を詰め合わせたソフトウェアパッケージである。

2-2 オブジェクト指向の概念

オブジェクト指向の概念とは、一つ一つのオブジェクトは独立して存在し、それぞれの

オブジェクトが固有の役目や責務を持っている。それらは孤立した存在ではなく、互いに

メッセージを通じて協調性を持ちながら全体として1つの仕事を行うのがオブジェクト指

向の概念である[2](図3参照)。

またオブジェクトとは、「もの」「目的」「対象」の言葉の意味を持っている。オブジェク

ト指向でのオブジェクトとは、単に「もの」指す訳ではなく全体として一つの仕事を行う

図 3 自律分散協調動作

Page 7: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

7

上で、その仕事の「目的」にあった「もの」「対象」を全体として認識したのがオブジェク

トである。つまりその仕事にあった「目的」の「もの」「対象」でなければその仕事の全体

の中の一つとして認識されないのである[2](図4参照)。

2-3 オブジェクト指向プログラム

オブジェクト指向プログラム言語とは、オブジェクトを中心としたプログラムを作成す

ることである。そのオブジェクトとはオブジェクト指向の概念で述べたオブジェクトであ

り、またオブジェクトの中身は、内部データといくつかのメソッドで構成されている[3](図5参照)。

まず内部のデータとは、内部とついているように外部には公開せず外部からアクセスす

ることのできないようになっているデータである。次にメソッドとはそのオブジェクトに

対して何らかの動作・命令が行われた時に内部データの代わりに動作・命令を実行する部

図 4 認識する主体と認識対象

図 5 オブジェクトの構造

Page 8: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

8

分である。またオブジェクト指向プログラムを説明する上でカプセル化、継承、多様性の

特徴が重要になってくる。 カプセル化

オブジェクト指向プログラミングが持つ特徴の一つである。オブジェクトの外から

はそのオブジェクト内のデータを扱えなくする。外からは公開された手続きを利用す

ることでしかデータを操作できないようにすることにより、個々のオブジェクトの独

立性が高まる。カプセル化を進めることによりオブジェクト内部の仕様変更が外部に

影響しなくなる。それにより、ソフトウェアの保守性や開発効率が高くなりプログラ

ムの部分的な再利用が簡単になる [4] [5] (図6参照)。

また、メソッドとは上記に記した通りである。プロパティとはオブジェクトがそれ

ぞれ持っている、そのオブジェクトが持つデータの種類を表すものである。プロパテ

ィはオブジェクトによって異なる。下記にプログラム例を挙げる[6]。 TestClass(クラスモジュール) Private m_value As Integer Private m_name As String “初期化処理” Private Sub Class Initialize () m_value = 666 m_name = "Iron Maiden" End Sub “ここから下はゲッター・セッター” Public Property Get getValue() As Integer getValue = m_value End Property Public Property Let setValue(ByVal value As Integer) m_value = value

図 6 カプセル化

Page 9: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

9

End Property Public Property Get getName() As String getName = m_name End Property Public Property Let setName(ByVal name As String) m_name = name End Property

継承 オブジェクトから類似した新しいオブジェクトを作るときオブジェクトの性質を受

け継ぐ。古いクラスを基本クラス、新しいクラスを派生クラスと呼ぶ。基本クラスの

性質はすべて派生クラスに受け継がれ、派生クラスでは基本クラスとの違いを定義す

るだけである。複数の基本クラスから派生クラスを定義することを多重継承といわれ

る [7] [8] (図7参照)。下記にプログラム例を挙げる[9]。 Public Class Class1 Public Sub Test1() Trace.WriteLine("Test1 called") End Sub End Class Public Class Class2 Inherits Class1 Public Sub Test2() Trace.WriteLine("Test2 called") End Sub End Class

多様性

あるオブジェクトへの操作が呼び出し側(sender)ではなく、受け手のオブジェクト

図 7 継承

Page 10: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

10

(receiver)によって定まる特性をもっている。これは継承などの各種概念と組み合わせ実行される [10] 。

それらカプセル化、継承、多様性の特徴によってオブジェクトの内部データを外部から

隠ぺいし、メソッドが代わりに動作・命令が実行されるようになるのである。

2-4 VS.NET(VB.NET)の必要システム

Visual Studio 2003のインストールに必要なシステムは以下の通りである。Windows95、Windows meなどの OS(オペレーティングシステム)にはインストールできない。メモリやハードディスクの容量が必要量あるか必ず確かめる。単体でインストールする時は必要量

が少なくて済む。 オペレーティングシステム

Microsoft Windows XP Professionalまたは Home Edition

Microsoft Windows 2000 Professional Service Pack3以上

Microsoft Windows 2000 Server Service Pack3以上

Microsoft Windows 2000 Advanced Server Service Pack3以上

Microsoft Windows Server 2003 Standard Editionまたは Enterprise Edition

また、Visual Studio 2005 は、Intel Itanium (IA64) を搭載しているコンピュータには

インストールできない[11]。

2-5 .NETアプリケーションの環境

.NET Framework は、.NET 対応のソフトウェアの開発し、実行するためのプラットフォームである。その.NET Framework 上で.NET 対応のソフトウェアを開発するための開発環境が VS.NET(VB.NET)ある。また.NET Frameworkは.NET対応のソフトウェアを実行するための下層構造を提供する。次の図のように CLRと呼ばれるプログラム実行エンジンと、クラスライブラリ群から構成される [12] (図8参照)。

図 8 クラスライブラリ

Page 11: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

11

構成内容は、CLRが.NETアプリケーションをロードして実行するためのエンジンがある。この上にベース・フレームワーク・クラスがあり、主にデータの入出力やネットワー

ク機能、スレッド管理、セキュリティ管理の.NETアプリケーションの基本的な機能を実現するためのクラスライブラリである。またデータ/XML関連クラスがあり、主にデータ操作機能や XMLデータの操作機能を提供する。その上位にWebサービス開発用クラス、Webアプリケーション開発用のWebフォーム関連クラス、Windowsアプリケーション開発用

Windowsフォーム関連クラスがある。ASP.NETは、WebフォームによるWebアプリケーションを開発するためのプラットフォームという以上の構成内容でつくられている。

CLR .NETアプリケーションを実行するためのエンジンとして機能する。.NET対応のプログラムは IL(Intermediate Language)と呼ばれる中間コード形式に変換される。従来のプログラムコードは特定のマイクロプロセッサのマシンコードに依存するが ILは特定のマイクプロセッサには依存しない抽象的なコードである。次に抽象的な IL から、実際のマシンコードに変換する機能が CLRの1つの役割としてある。またメモリ管理機能(メモリ・リークの防止、バッファ・オーバーフローによるセキュリティホール混入の防止)やコード・セキュリティ機能(プログラム実行のパーミッション・チェックなど)、バージョン・チェック機能(DLL Hellを回避する)などの機能が提供される。このCLR の機能により、.NET アプリケーションは、高度なセキュリティやより安全なメモリ管理、バージョン管理などが可能になる。CLR 上で実行される.NET アプリケーションはマネージ・コード呼ぶのに対し、従来のプログラムはアンマネージ・コード

とよばれる。以下に各用語の説明を加える。 中間コード形式

ソフトウェアプログラムにおいて、元のソースコードから最終的な実行形

式に変換する過程で、一時的に作成される中間形式のコード。利点は、複数

のプラットフォーム(ターゲット)に言語処理を対応させることが容易であ

る。 メモリ・リークの防止

不要になったメモリの情報領域が正しく消去されず、情報領域が再利用で

きない状態を防ぐ バッファ・オーバーフローによるセキュリティホール混入の防止

処理速度や転送速度の差を補うためにデータを一時的に保存しておく記憶

装置や記憶領域をバッファという。そのバッファ領域にデータが入りきらず

にあふれたり、上書きされてデータが失われる。またほかの部分のデータが

破壊されてプログラムやシステムが暴走する危険性がある。コンピュータシ

ステムへの侵入や情報の漏えい、破壊などにつながるセキュリティ上の穴/問題点とよばれるセキュリティホールが発生する可能性を防止する。

Page 12: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

12

パーミッション・チェック コンピュータのハードディスクなどに保存されているファイルやディレク

トリに対するユーザーのアクセス権をチェックする。 DLL Hell

DLL・COMコンポーネートなどのバージョンアップなどに伴い、それに以前のバージョンの DLL・COM コンポーネートなどに依存して動作するアプ

リケーションが動作しなくなる現象である。 ASP.NET

ASP.NET は、HTML や XML の操作機能、SOAP 対応機能など、Web サービスやWeb アプリケーション開発を支援するさまざまな機能を提供するクラスライブラリを含めたプラットフォームである。この特徴は Web アプリケーションの常識であったHTMLの知識やHTTP通信の仕組みやブラウザとサーバー間のデータのやりとりなどを抽象化する。したがって、Graphical User Interface(以降 GUI)モデルによるアプケーション開発が行えるようになっている。またページデザインは Visual Studioなどの開発環境を使って GUIによるページデザインが行えるようになっている。用語を以下に説明する。

GUI ユーザーに対して情報の表示やグラフィックを主に用いて、大半の基礎的

な操作をマウスなどのよって行うことができるユーザーインターフェイス SOAP

XMLと HTTPなどをベースにした、他のコンピュータにあるデータやサービスを呼び出すためのプロトコル(通信規約)

2-6 MSDN MicroSoft Developer .Networkの略称である。マイクロソフトの製品や技術を使用したア

プリケーションを作成する開発者を支援することを目的とした、一連のオンラインおよび

オフラインのサービスの総称である。

Page 13: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

13

第三章 Visual Basic.NETの開発環境

3-1 Visual Basic.NETの概要

Visual Basic.NETとは、初心者汎用言語 Basicを基礎にしている。マイクロソフト社が標準開発したプログラミング言語である。または略称で VB.NETともいわれる。また、プログラムを簡単に開発できる開発環境と一緒に提供される為、プログラム言語とこの開発

環境が一般的に一緒にされることが多い。次にVisual Basic.NET の特徴は、Basic、Fortran(FORmula TRANslater)、Cobol(COmmon Business Oriented Language)、C言語など旧来型の多くのプログラミング言語(手書き型言語)は、プログラムのアルゴリズム(手

順)に従って各種の処理が実行されるという特徴がある。これに対して、VB.NET は、VS.NETの他の Visualシリーズの開発言語と同様に、オブジェクト指向型言語としての特徴を持っている。まずWindows上のフォームと呼ばれるウィンドを開き、その上にテキストボックスなどのオブジェクトと呼ばれるものを配置する。こうしたオブジェクトをマウ

スでクリックすると、イベント(動作)が発生し、対応する処理(プロシージャ)が実行

する。その処理(プロシージャ)を実行する命令コードをプログラムとして作成できるの

である。つまり旧来型のプログラムだけでなくさまざまなオブジェクトをフォーム上に配

置しながら、1つのアプリケーション・ソフトを作成している。そこにオブジェクト指向型言語の由来がある。命令コードをプログラムすることをコーディングという。対話形式で

コーディングを行いながら、スペルエラーや構文エラーなどもチェックする機能があり、

エラー修正しながらコーディングをすることができる。また、プログラム全体を実行する

と、マシン語に一括翻訳(コンパイル)して実行する。そこでもエラーチェックする。エ

ラーを除去(デバッグ)しながら、コンパイル作業を進めることで正常のプログラムを作

成する。このようにフォームの設計、コードのプログラム編集、実行、デバッグなどの作

業を統合的にできる。このことにより、プログラム開発が効率的にできる。さらにひとつ

ひとつのプログラムはプロジェクトと呼ばれるファイル管理している。さまざまなプログ

ラムを組み合わせた開発が可能になっている。以上のことが Visual Basic.NETの概要になる

3-2各部の名称

① ツールボックス ツールボックスウィンドには、Label、Button、TextBox、ListBox などのコントロール(またはツール)が一覧されている。これらのコントロールをフォーム上に配置して、ア

プリケーションの外観をデザインする。またツールボックスにある主なコントロールの役

割は以下の通りである(図9参照)。

Page 14: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

14

ポインター…コントロールではないが、フォーム上をマウスポインターが移動できる

状態を示してある。 ラベル…文字を表示するためのもの。 ボタン…マウスでクリックするためのボタン。 テキストボックス…数値、文字の入力と、表示するためのもの。 チェックボックス…チェックマークを付けて、選択か非選択を設定するもの。 ラジオボタン…複数の項目から1つだけ選択するためのボタン。 グループボックス…関連するオブジェクトをグループ化するためのもの。 ピクチャーボックス…文字、図形、画像を表示するためのもの。 リストボックス…リスト表示された項目の中から選択するためのもの。 コンボボックス…リスト表示された項目から1つを選択するためのもの。 水平スクロールバー…水平方向にスクロールする機能を持たせるためのもの。 垂直スクロールバー…垂直方向にスクロールするためのもの。 タイマー…指定した時間間隔で timerイベントを発生させる。 ② フォームウィンド

フォームをデザインするためのウィンドである。ツールボックスからコントロール

を選んで配置することでウィンドを作成できる。また新しくコントロールを配置する

際は、このフォームウィンドを表示させて、その上に直接任意のコントロールを配置

する。 ③ プロパティウィンド

プロジェクトを管理するためのものであるプロジェクトエクスプローラであり、プロ

ジェクトを管理するためのもので、フォームやコントロールの名称や状態などの詳細

図 9 各部の名称

Page 15: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

15

な設定をこのウィンドから設定が行える。 ④ メニューバー

関連するメニューがカテゴリ別に分類されている。 ⑤ ツールバー

Visual Basic.NETでよく使用する機能をまとめたツールボタンを並べたものである。 このツールボタンをクリックすることで、そのツールボタンの機能を使用することが

できる。 ⑥ コードウィンド

フォームに記述されたコード(プログラム)を表示できる。 なお、Visual Basic.NETの開発環境では、プログラマが簡単にプログラミングできるようにフォームやそれに

配置されたコントロール別に項目が分類(オブジェクトリスト)されている。さらに

それらに対する各イベントが直ちに表示できる(イベントリスト)ように配慮されて

いる。また、コードを割り当てたいコントロールをダブルクリックしてコードウィン

ドを開くことができる(図 10参照)。

3-3 VB.NETの開発手順

VB.NET によるプログラムの作成、実行、エラーの修正、保存は、次のような手順で行われる。 ① 起動とプロジェクトの選択

図 10 コードウィンド

Page 16: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

16

Windows のスタートメニューまたはデスクトップ上の VB.NET のアイコンを使用して起動する。起動したらスタートページにある「開く」または「作成」をクリック

し、自分の作成したデータを読み込むか新しく作成する(図 11参照)。 今回は新規作成をするので、「作成」をクリックし新しいプロジェクトを選択する。

後に新しいプロジェクトの画面でプロジェクト名とフォルダを指定する(図 12参照)。

② フォームの設計とプロパティの設定 フォームを開いてその上に各種のコントロールを配置し、プログラムの外観をデザ

インする(図 13 参照)。またフォームや各種のコントロールのプロパティ(属性)を設定する(図 14参照)。

図 11 スタートページ 図 12 新しいプロジェクト

図 14 プロパティ

図 13 フォーム

サンプル

Page 17: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

17

③ イベントの発生とコードの記述 (1)イベントの発生

VB.NET ではフォーム上にはコードが表示されない。フォームやコントロールなどのオブジェクトをクリックしてコードエディタウィンドが開く(図 15 参照)。例えばフォーム上に配置した Button1 をダブルクリックすると、図のようにコードエディタウィンドが開く(図 16参照)。

(2)コードの記述

イベントによって開いたコードエディタウィンドの上で、コードを記述して、プロ

グラムを作る。例えば、Private sub と End subの間に、下記のコードを入力する。これは Label1に「卒論」と表示するプログラムである。 Dim M As String M = “卒論” Label1.Text = M

コード

使い手がコンピュータに行わせたい動作や処理の指示を一定の規則に基に記したプ

ログラムである。

図 15 コードエディタ表示の方法

図 16 コードエディタ画面

Page 18: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

18

④ プロジェクトの実行とエラーの修正 (1)プロジェクトの実行

プロジェクトが作成できたら、ツールボタンの「開始」をクリックして実行(図 17参照)。

実行ウィンドが表示され、次に Button1 をクリックすると、コードが実行されて、

Label1に「卒論」と表示される(図 18、19参照)。実行結果が確認できたら、ウィンドを閉じる。

(2)エラーの修正

実行したところエラーメッセージが表示される場合には、「ビルドエラーが発生しま

した。実行しますか?」と聞いてくる。そこで「いいえ」を選択すると、右下のタス

ク一覧ウィンドにエラーの説明が表示される。コードエディタウィンドにエラー箇所

が青い波線で表示される。そこでエラーを nとmに修正して、再度ツールボタンの開始をクリックして実行し直す。エラーがなくなったことが確認できたら、実行ウィン

ドを閉じる(図 20、21参照)。

図 18 コード実行前 図 19 コード実行後

図 17 開始

Page 19: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

19

いいえの場合

⑤ プロジェクトの保存

プロジェクトが正常に実行できて、完成したら、ツールボタンの「すべてを保存」

をクリックして保存する(図 22参照)。

あるいはメニューの「ファイル(f)」→「すべて保存」をクリックする(図 23参照)。

図 20 ビルドエラー

図 22プロジェクト保存(1)

図 21 エラー一覧

Page 20: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

20

⑥ 終了

編集画面の右上のウィンドを閉じるボタンをクリックする(図 24参照)。

または、メニューの「ファイル(f)」→「終了(x)」をクリックして終了する (図 25 参照)。

図 24 終了(1)

図 23 プロジェクト保存(2)

図 25 終了(2)

Page 21: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

21

第四章 脳内メーカーの提案

4-1 脳内メーカーの概要

本プログラムのオリジナルはインターネットに掲載されている脳内メーカーである[13]。これをパソコンができない人でも簡単に制作・操作できるようにしたものを作成している。

作成したプログラムは、文字を入力することで頭の画像の中に色のついた円を作成し、そ

の下に文章を作成する。自分なりにプログラムを変更することにより頭の画像の中に好き

な模様を作成して、偶然の文章を作成することが可能である。周囲の人達と面白おかしく

楽しむことを目的に作成している。

4-2 脳内メーカーの操作方法

Visual Studio 2005で制作した脳内メーカーを開き、デバック開始ボタンをクリックする(図 26参照)。

次に操作画面が現れる。操作画面のテキストボックスに好きな文字をひらがなで入力す

る。その後作成ボタンをクリックすると頭の画像の中に円の図形が下の部分に文字が作成

される。消したい時はクリアボタンを押すことによって全てが最初の状態になる(図 27参照)。

図 26 初期画像

Page 22: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

22

4-3 システムの基本

システムの基本思想 打ち込まれたひらがなを数字に変換して、その数字を画像や文字にあてはめてフォ

ームに出力させる。 プログラムの流れ

打ち込まれた文字一つごとに、文字列型配列を使って二つのベクトルを宣言する。

それにひらがなの 74音と数字(1~74)を入力する。

Dim a() As String = {“あ”, “い”, “う”, “え”, “お”,………“ゃ”, “ゅ”, “ょ”} Dim b() As String = {“1”, “2”, “3”, “4”, “5”,………“73”, “74”, “75”}

例えば、テキストボックスに入力されている「あいうえお」と入力されているとそ

の「あいうえお」という 5 文字の長さをとる。また入力されている「あいうえお」はプログラムが処理する時「01234」として認識されるので繰り返し制御と Get Lengthを用いて下記の様に文を構成する。 For i = 0 To テキストボックス.Length – 1

これによって繰り返し制御だけだと 1 から長さを取ってしまい正しく「あいうえお」

の文字の長さをとることができないのが Length– 1 を用いることによって正しく「あ

いうえお」の文字の長さをとることができる。

その中に If文()と Select Case文を作成する(図 28参照)。

図 27入出力画面

Page 23: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

23

この If文で 「If s.Substring(i、1) = "あ" Then tmp=b(0)」の Substringは入力さ

れた文字を取り出したい部分を取り出すことができる。また b( )は文字列型配列の数字を宣言した変数である。また tmpは if文に入力されているb()の配列の記憶場所の変数でもある。その記憶場所の変数 tmpに記憶されている数字を Select Case文を用いて検索する。一致するものがあったらブロック Select Case文で数字ごとに割り振られた条件に当てはめる(図 29参照)。

図 28 繰り返し文の文構成

図 29 繰り返し文の文構成説明(1)

Page 24: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

24

また、その Select Case文で文字列型配列の宣言したひらがなと数字(1~74)の条件を作成し、その中の条件ごとに画像や文字を FillEllipse メソッドと文字がフォームに出力されるようにその条件ごとに Label1.Text =Label1.Text&” あゝ紅の血は燃ゆる”というように” ”の中に文字を書き込んでおいて使用する。よってフォーム内の下に実行後に出力される文字とピクチャーボックスに画像を出力される。もしなけれ

ば非表示で出力されるようにする。また出力される画像が重ならないように下記の図

30の赤い線で囲った変数を定義と変数の設定内容を用いて Select Case文の中の条件ごとにあらかじめランダムで座標の部分に書き込こんでおき座標を繰り返すたびにず

れるようにする。また入力された数字が上書きされないように「tmp = tmp + s」とSelect Case文の各条件に付け加える(図 30参照)。

4-4 プログラムに使用した主な文と関数の説明

文字列型配列 Dim 文を用いて宣言する。その配列名を要素数が一定の固定長配列で以下のように

宣言する。 Dim X As string = {“あ”, “い”, “う”, “え”, “お”}

図 30 繰り返し文の文構成説明(2)

Page 25: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

25

Dim Y As string = {“a”, “i”, “u”, “e”, “o”} またデータ型を文字列型の stringにする。そしてこの配列を二つ宣言し、()内に入力されている文字がもう一つの配列と()内が対応するようになる。

繰り返し制御(For~Next文) プログラムの一部を、指定した回数だけ繰り返し実行する。また For文と Next文で

ステートブロックを以下のとおりする(図 31参照)。

① 制御変数に最初に初期値が設定され、最終を超えるかを判定し、超えていなければブロ

ック部分を実行する。Next 文に来ると、For 文に戻り、制御変数に増分値が加えられる。その値が最終値を超えなければ、ブロック部分を繰り返し、最終を超えると、.NET文の次の文に実行が移る。

② 増分値が負のときは、制御変数の値が初期値から最終値まで減少されて最終値より小さ

くなったときに終了する。 ③ 初期値、最終値、増分値には、定数、変数、式を書くことができる。 ④ 増分値が1のときは「step1」を省略できる。 ⑤ 最終値に達する前に、繰り返しループから抜けるときは、Exit For 文を指定し、Next文の次の文に実行が移る。

Get Lengthメソッド 特定の要素の数を返すことができる。

Dim Names() As string = {“ネルヴァ”, “トラヤヌス”, “アントニヌス・ピウス”} Dim X As Integer

For X = 0 To Name.Length - 1 ListBox1.Items.Add(K + 1 & “” & Names(X)) Get Lengthを使って上記のプログラムを作成すると文字列型配列で宣言したすべての単語が出力される。

配列 配列は、似たような変数をまとめて扱うことができる。 ① 配列の宣言

Dim X(2) As Integer 上記の文で(2)と宣言すると、0~2までの三つの要素をもつ配列を宣言したこと

図 31 繰り返し制御

Page 26: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

26

になる。つまり 0、1、2 と 3 つの変数が一度に宣言されたことになる。この要素という言葉は配列に並んで重要である。また、この図の配列を図で表すと

この図をみて「この配列のサイズは 3である」とわかるように、「配列のサイズ」とは、その配列の記憶場所の表である(図 32参照)。 ② 普通の変数と配列の比較

配列は普通の変数と同じように使用できる。また使用するときにはかっこの中

に番号を指定する。これだけが普通の変数と配列の要素の違いである。 Dim X(2) As Integer

X(0) X(1) = 25 X(2) = 3

MsgBox(X(0) + X(1) + X(2))

()の中の番号のことを添え字または、インデックスなどと呼ばれる。また添え字はあらかじめ指定した範囲でなければいけない、また添え字の範囲は Dimのなどで宣言する時に使用する。

③ 配列の利点 配列の利点は添え字を変数で指定できることである。

Dim Numbers(99) As Integer Dim i As Integer For i = 0 To 99 Numbers(i) = i Next 上記のプログラムであげた例は、100個の変数を簡単に値のセットができる。なので、普通の変数では困難な作業を配列は簡単な作業で行える。

If文 If文とは、「もし○○ならば、××で処理せよ」なので、条件に応じたプログラムに使用する。

図 32 3サイズ

Page 27: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

27

① 従来型 If文 If 条件式 then 文1(Else 文2)

1行で納められあまり長い文にならない場合に多く使用する。条件式が成立する(真)ならば文1を不成立(偽)ならば文2を実行する。実行した後は次の文に移行する。

また、不成立の処理がないときには、else以下の文を省略することができる[14]。 ② ブロック if文(二者択一)

複数の行から構成される文の集まりがブロックである。この場合、条件式が成立す

ればブロック1を実行し、不成立ならばブロック2を実行する。それぞれ End Ifに移行する。不成立の処理がないときには、else ブロック2を省略することができる[14](図 33参照)。

③ ブロック if文(複数条件)

条件式1が成立すればブロック 1を実行し、不成立ならば次の条件式 2に移行する。成立すればそのときのブロックを実行する。不成立ならば次の条件式へと順番に繰り

返し、ブロック実行後はそれぞれ End Ifに移行する。どれも不成立のとき、elseのブロックを実行する。また、Else If節や else節の必要がなければ省略することができる[14](図 34参照)。

図 33 ブロック if文(二者択一)

図 34 ブロック if文(複数条件)

Page 28: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

28

Substring 文字列の一部を抜き出すことができる。 ① 左から何文字か抜き出す

MsgBox(“あいうえ”.Substring(0,3)) この文では「あいう」が抜き出される。

② 中ほどから何文字か抜き出す MsgBox(“あいうえ”.Substring(1,2)) この文では「いう」が抜き出される。

③ 何文字か除いたすべてを抜き出す Dim X As String X = “あいうえ” MsgBox(X.Substring(2)) この文では「あい」を除くすべてが抜き出さる。

Select Case文 テストしたい対象の条件式で、変数や式を指定することをテスト式という。テスト式

を、式1から式mまでを順に調べ、等しくなったときのブロックを実行し End Select文に移行する。一致する式がなければ、Case Else節のブロックが実行され、End Select文に移行する。また、Case Else節がない場合もある[14](図 35参照)。

ピクチャーボックス ① グラフィックオブジェクトの定義

ピクチャーボックス1(変数名)をグラフィックオブジェクトとして定義するに

は、次のように宣言する(図 36参照)。 Dim 変数名 As Graphics = PictureBox1.Craphics()

図 35 select case文

Page 29: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

29

ピクチャーボックスの位置や大きさは、他のコントロールにも適用するが、top、left、height、widthにより定義する。

② 主なグラフィックメソッド

Clearメソッド Clear(Color.色名) 描画する画面を指定した色でクリアする。

Draw Lineメソッド DrawLine(Pens.色名、x1、y1、x2、y2) 指定した色で、2点(x1、y1)、(x2、y2)を結ぶ直線を描けるようになる。

Fill Rectangleメソッド FillRectangle(Brushes.色名、x、y、a、b) 指定した色で、座標(x、y)、(x+a、y+b)を対角線とする四角形の中を塗

りつぶすことができる。 Draw Rectangleメソッド

DrawRectangle(Pens.色名、x、y、a、b) 指定した色で、座標(x、y)、(x+a、y+b)を対角線とする四角形を描ける

ようになる Draw Ellipseメソッド

DrawEllipse(Pen.色名、x、y、a、b) 指定した色で、座標(x、y)、(x+a、y+b)を対角線とする四角に内接する楕円を描く、四角が正方形のときは、円を描くようになる。

Fill Ellipsesメソッド FillEllipse(Brushes .色名、x、y、a、b) 指定した色で、座標(x、y)、(x+a、y+b)を対角線とする四角に内接する楕円や円の内部を塗りつぶせるようになる。

図 36 ピクチャーボックス

Page 30: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

30

Draw Arc、Draw Pieメソッド (1) Draw Arc(Pens.色名、x、y、a、b、開始角度、ずれ角度)

Draw Arcは指定した色で、座標()、()を対角線とする四角に内接する円または楕円の、開始角度からずれの角度だけ弧を描きようになる。開始角度、

ずれ角度は整数で指定する。 (2) Draw Pie(Pens.色名、x、y、a、b、開始角度、ずれ角度)

Draw Pieを指定すると、半径が付いた弧(扇形)を描く、角度は下のように、時計回りに数える(図 37参照)。

図 37 Draw arc、draw pieメソッド

Page 31: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

31

第五章 まとめ 脳内メーカーソフトを利用したVisual Basic.NETを使用したソース自動生成方法の研究

をまとめる。はじめにコンピュータシステムが現代社会で非常に重要な役割をしており、

またプログラムの量と質が求められている。そのためコンピュータシステムの効率化が重

要視されるようになりソース自動生成法がプログラムを製作する上で重要な役割をもつよ

うになる。このことを考える中で、Visual Basic.NETを使用したソース自動生成方法の重要な役割を説明する。ただし、Visual Basic.NETと Visual Studio.NETがよく混在される問題がある。Visual Basic.NETはプログラム言語であり Visual Studio.NETはソフトウェア開発を詰め合わせたソフトウェアパッケージである。混在を避けるさけるために Visual Basic.NET で統一する。Visual Basic.NET は他のプログラム(Win32)と違い.NET Framework という実行プラットフォームでのみ動作する。.NET Framework を使った理由は、近年のインターネットの急速な発展に伴い多くの企業がネットワーク対応の開発言

語を求めたからである。また Visual Basic.NETはオブジェクト指向が用いられており、卒論のテーマであるソース自動生成法の重要な役割を担っている。オブジェクト指向は 2-2と 2-3で説明している。次に Visual Basic.NETの各部名称を 3-2で説明し、開発手順は 3-2で説明した各機能を用いてプログラムの開発をする。ただし、オブジェクト指向の分野は

広大な範囲があり Visual Basic.NETで必要なところだけを抜き出して紹介したので、オブジェクト指向の分野の調査は不十分である。 さらに,卒論のテーマであるソース自動生成法を使用した脳内メーカーのプログラムの

仕組みと開発手順では、操作として Visual Basic.NETの開発手順と概要で説明した操作と同じように画像を使って手順をわかりやすくまとめる。脳内メーカーのプログラムの仕組

みは、基本構成を述べるとこの脳内メーカーはひらがなを数字に変換してその変換した数

字に画像や文字を対応させるプログラムである。今後のテーマとしてはカタカナや漢字な

どを対応させることと入力された文字一つに対して一つの画像しか対応していないのでそ

れを複数の画像が表示できるように改善することである。最終的には、インターネットで

配信されている脳内メーカーと同じようなものにしたいと考えている。

Page 32: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

32

参考文献 [1] 通産省 2009年版組込みソフトウェア産業実態調査報告書 http://www.meti.go.jp/policy/mono_info_service/joho/downloadfiles/2009software_research/09keiei_houkokusyo.pdf [2] http://www.atmarkit.co.jp/im/carc/serial/object01/object01.html [3] http://www.atmarkit.co.jp/fdotnet/basics/oop01/oop01_01.html [4] http://e-words.jp/w/E382ABE38397E382BBE383ABE58C96.html [5] http://634.ayumu-baby.com/oo/capsule.html [6] http://fullmoon8507.blog62.fc2.com/blog-entry-11.html [7] http://e-words.jp/w/E7B699E689BF.html [8] http://www.atmarkit.co.jp/fdot..NET/basics/oop04/oop04_01.html [9] http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_10/vbnet2_10_01.html [10] http://www.curiocube.com/mikata/oop/p2_ch14_polymorphism.php [11] 林 直嗣・室井 勝子・鈴木 三枝子 共著: 実習 Visual Basic.NET‐だれでもわかるプログラミング‐P.4、P.5から抜粋

[12] http://www.atmarkit.co.jp/fdot..NET/basics/msdot..NET/msdot..NET_04.html

[13] 脳内メーカーホームページ:http://maker.usoko...NET/nounai/ [14] 林 直嗣・室井 勝子・鈴木 三枝子共著: 実習 Visual Basic.NET‐だれでもわかるプログラミング‐P.38~P.41から抜粋

Page 33: 使用したソース自動生成方法の研究 - Hannan …hanakawa/soturon/2009/NagatoFukui.pdf1 脳内メーカーソフトを利用したVisual Basic.NET を 使用したソース自動生成方法の研究

33

謝辞 卒論や三回生のゼミでいろいろなアドバイスをいただいた先輩方に感謝いたします。ま

た多くの指導と卒論のプログラムのアドバイスを頂いた花川先生に感謝いたします。同ゼ

ミの菅 啓行様、妹背 武志様、白木 久憲様、壽慶 拓哉様、角田 淳也様、竹元 学

様、長瀬 和也様、三並 真也様、村井 孝行様、楠原 拓磨様に感謝いたします。最後

にこれまで阪南大学に通えたのは親の大きな支援があってこそ四年間を無事に過ごすこと

が出来ましたので両親に感謝いたします。