卒業論文の書き方と構成


一般的には,次の項目により構成します.本研究室独自のローカルルールや分野による違いもありますので、外部の人にはあわないかもしれません。

1.背景と問題点(研究の必要性)
いきなり研究目的を挙げても分野外の人にはわかりません。そこで、この研究をする動機(社会的背景、ニーズ、研究領域の説明など) ・・・どういう分野で何を対象(課題)としているの か?を書いていきましょう。読者が研究対象(領域)をイメージできるように、大きな(一般的な)視点から徐々に絞り込んでいきます。

想定環境
どのような環境を想定しているのか?前提条件は何か?を明確にしましょう。ここが、非現実的であると意味が無いです。

ニーズ、課題
想定した環境において何が問題点であるのか?何か問題や必要性があるから研究をするわけで、ここはかならず論じなければいけません。

関連・先行研究
ニーズがあるから作った(ニーズに対応するシステムを作った)という内容は研究というより製品開発です。ニーズを解決するために、(技術的な)課題があることが明らかにし、その課題を解決するという内容であれば、それは研究らしくなります。想定環境を対象とした先行研究、あるいは問題点を解決する先行研究があるはずです。先行研究のない研究などありえません。研究を挙げるというのは、論文誌、学会発表論文集などをさします。それらを挙げていきます。卒論修論では、それをダラダラをあげるのではなく、アプローチ毎に分類していくのがベターです。
また、関連研究にも、大雑把に言って 国際学会論文>国内学会論文>国際会議論文>>国内発表論文というレベルがあります。研究らしく論じんるのであれば雑誌やウェブ(特に個人的なもの)は参考文献としては望ましくありません。
関連研究を見つける方法はCiNiiを利用すると良いでしょう。

本研究の位置づけ(対象とする研究課題)
先行研究の成果を元に、本研究で何を解決するのかを明らかにします。先行研究は挙げるだけではダメです。普通は、問題があるから作るわけです。


2.目的
  • 問題点から問題を解決するための要求仕様を明確にする。(要求仕様を明確にする)
  • 要求仕様を満たすための問題解決のアプローチ(方法論)を書い てください。
    #問題点についてすべて解決するように書く必要はありませんが、どのような位置づけになるのかは明確にしてください。
上記、問題点と目的は明確になるように書きま しょう。問題点を理解してゴール設定できることが卒業研究で最低限望まれるレベルですので。


3. 手法
  • どのような方法で目的を達成するのかを書いてください。
  • 実装の具体例 ではなく、抽象レベルで説明できれば研究としての格も上がります。(ここが一番難しいので、こだわる必要はないです)どんな技術を用いたのかも書いてくだ さい。
  • 「利用した技術(テクノロジー)」ということで、どのようなツールやライブラリを利用したのか。。。特に実装に関係する部分を書いてください (これは必須です)。
  • ここは、いわゆるマニュアル的に書いて、第3者(後輩など)が参考になるような記述にしてください。例えばソースコード例をも挙げて下さい。



4. 実装
作ったものを具体的に書いてください。
  • システムの概要・機能 
  • システム構成図
  • 画面構成
  • 画面遷移
  • クラス図
  • シーケンス図
  • ER図
  • API仕様....etc

システム構成図
システムの全体像および、システムがどのようなモジュールで構成されているかを説明する図です。ここはできるだけ実装に近い方が望ましいですが、システムのモジュール化は意外と難しく、モジュール化を前提に実装していないと、綺麗な図は書けないでしょう。
画面遷移


画面構成(1)

画面構成(2)



データベース設計


クラス図
クラスの全体像(クラス間の関 係)を先に書き、それからメンバ変数、関数などで各クラスの詳細を述べていく

シーケンス図
C++やJavaなどのオブジェクト指向言語で開発をおこなうと、たくさんのクラスを設計することになり、またクラス間でデータのやり取りをすることになります。シーケンス図を書くとその関係がわかりやすくなります。シーケンス図とは、
  • ある機能を実装する際のクラス呼び出しの手順の記述
を目的とします。「機能」といえば、たくさんの機能を実装していると思います。全て書いているとキリがありませんので、その取捨選択は考える必要があります。少なくとも、自分の研究の主となる機能については、きちんとシーケンス図で表現しましょう。なお、単独のクラスで処理が完結している際は、シーケンス図は不適切です。フローチャートでアルゴリズムを説明しましょう。

書く際は以下の点に注意してください。
  • 関係するクラス名
  • クラスに渡すデータ
  • 戻り値のデータ
いずれも、データの種類を書くか実際の変数名で書くかは自由にしてください。できれば、実際にクラスで定義してあるメソッドやフィールドを記入することで、ソースの流れが読みやすくなります(下記のサンプルではメソッド名などは書かれていませんが、、、、)。
ER図

API仕 様....etc



5.結果/評価/考察
 目的を達成できたのかが判断できるような結果や評価、考察について述べます。
(目的、方法、結果を書いてください)
実装結果 ・・・ どのようなものを実現(完成)したのか?動作例など。
評価 ・・・ 性能評価やユーザ評価などによ り、有効性を証明します。
考 察 ・・・ 作ったものについての考察


参考文献

参考文献で研究の格がわかります。参考文献により、どこに目線を向けているのかがわかるからです。ないよりはあっ たほうがいいです。大学院の進学する学生は必須です。

参考文献の書き方

著者名,著者名:論文題目、論文誌名、巻、号,ページ番号、年度、
例)越智洋司、論文の書き方、越智ラボ研究報告書、Vol.1,No,1,pp12-17,2010

謝辞
謝辞は必ず書いてください。本当に謝辞の気持ちがあるなしに関わらずスタイルの問題です。世の中そういうもんです。書き方は過去の卒論を見てください。




よい文章を書くコツ

全体像は先に見せろ
たとえば、4つの機能を説明したいとき

4.1 ○○機能
4.2 ○○機能
4.3 ○○機能
4.4 ○○機能

と節で列挙していくと、読んでいきながら、「いったいこの機能説明はどこまでつづくんだろう?」「このシステムは何個の機能を持っているのだろう?」と不安になります。 特に卒論はページ数が多いので全体像を把握することは困難となります。
よって、「機能概要」の節を設けて事前に、システムぜ実装した機能を箇条書きで説明し、詳細を以下に述べる。。として、以降の節を説明するとわかりやすくなります。

難しいことは簡単に!簡単なことは難 しく!
これは一番大切なコツです。難しいことを難しいままに説明すると 「わけわからん」「説明下手」と評価されます。また、簡単なことを簡単にいうと、「なんだそれだけのことか。。」と評価されません。

抽象度を上げて考えて説明せよ
天才な人は、物事を抽象的に捉えてそれを 具体的な策に落としていく。。。いわゆるトップダウンな考え方に長けています。一方、我々のような凡人はいきなりそう考えることが難しいです。ですから、 具体的なことをやりながら、その抽象度を上げて考えていく。。ボトムアップ的な思考をせざるをえません。ただし、説明する時は天才のごとくトップダウンに 説明しましょう。それが「賢く」思われるコツであり、簡単なことを難しくいうことにつながります。
Comments