Webシステム開発基礎

目的

情報システム演習は、一般的なソフトウェア技術者(エンジニア)を育成するのではなく、教育エンジニアとして技術者の基礎的なスキルを持ち合わせながらも、教育的視点からシスーテム的に物事をとらえることのできる人物の育成を目指しています。本コースでは、その中の技術者の基礎的なスキルの育成に相当するものとして、ネットワークを構築しサーバを運用できる人材、つまり教育システムの環境を整備できるような人材の育成を目指しています。本課題では、近年特に増加しているWeb上の教育システムを開発できるようにするなることを目的として、Webシステム開発の基礎について学びます。

準備物

学習方法

課題は、大きく2種類あります(Webプログラミング入門とWebシステム設計・開発入門)。まずプログラミングの課題(計5つ)を行い、それに合格した段階で、プロクターから要求仕様書を受け取ってください。その要求に従ったシステムを開発することになります。開発するにあたって、システム設計書などの書類を提出することになっています。
なお、進め方としては各自で参考文献を見つけ、自分で課題を進めてください。各課題が終了したらプロクターのチェックを受けるようにしてください。TAから合格が出たら、次に進んでください。

プロクター

 3年生、ただしプログラミングの課題について3年生がわからない場合はTAに見てもらうようにしてください。

課題1.Webプログラミング入門

1.利用フリーのWeb掲示板を設置する
学習目標
  1. 既存のプログラム(スクリプト)をWeb公開用スペースに設置できるようになる。
  2. Webサーバへのプログラムの公開手順がわかる
  3. PerlとPHPの特徴を説明できる
  4. CGIとは何かを説明できる
課題

利用フリーのWeb掲示板を探し(利用条件を良く読むこと)、自分の公開スペースで利用できるようにすること。
プログラムの配布元、フリー利用条件、設置した手順、実行結果をレポートとして提出すること(プログラムはつけなくてよい)。
また、Webプログラミングの代表的な言語として、「Perl」と「PHP」について調べ、その特徴をレポートしてください。さらに「CGI」という言葉について、その意味を説明してください。これらをレポートとして提出すること。

評価方法

レポート。課題を行ったら、プロクターにチェックを受けてください。

合格基準
  1. レポートの内容が妥当であること。
  2. 掲示板が稼動していること。
備考

本課題を行っているうちに、自分の利用したいプログラム言語を選択してください。Webプログラミング用として代表的なものには、Perl、PHPがあります。最近はPHPを利用する人が多いようです。PerlやPHP以外で何か利用したいものがあるなら、TAと相談してください。


2.ブラウザ(クライアント)・Webサーバ間のデータ受け渡しを理解する
学習目標
  1. ブラウザ・サーバ間のデータ受け渡し(要求・応答)の流れを理解する。
  2. HTMLフォームが扱えるようになる
  3. HTTPヘッダを利用できる
  4. GET・POSTリクエストを理解する
  5. 環境変数を理解する
課題

次の要求を満たすWebプログラムを開発し、稼動させること。なお、入力・表示ともに半角英数字のみを用いること。
・HTMLフォームには、名前の入力欄、性別選択のラジオボタン、送信ボタンを用意する。
・入力・送信後に、名前を表示し、その次の行に男性であったら「male」、女性であったら「female」と表示する。
・アクセスのあったクライアントのIPアドレスも表示する。
作成したスクリプトと実行結果を載せたレポートを提出すること。
また、GETとPOSTのを2つのデータ受け渡し方法を調べ、それぞれを説明(レポート)しなさい。その際に今回のプログラムではどちらを利用し、その結果どうなったのかもあわせて説明しなさい。

評価方法

レポート。課題を行ったら、プロクターにチェックを受けてください。

合格基準
  1. レポートの内容が妥当であること。
  2. プログラムが課題の条件を満たすように稼動していること
備考  

3.データ処理の方法を理解する
学習目標
  1. 日本語処理を理解する
  2. 正規表現を理解する
  3. ファイル操作を理解する
課題

次の要求を満たすWebプログラムを開発し稼動させること
  ・表示には、すべてShiftJISを用いること
  ・名前の入力について、日本語(全角)入力とすること。
  ・入力データ(全角;日本語)をEUC変換してファイル保存すること(各行に1人)。
  ・名前の入力欄にlistと入力すると、登録データをすべて表示すること。
  ・IPアドレスが、192.16.158で始まるものと、それ以外で、何か表示を変更すること。(正規表現を用いること)。
作成したスクリプトと実行結果を載せたレポートを提出すること。

評価方法

レポート。課題を行ったら、プロクターにチェックを受けてください。

合格基準
  1. レポートの内容が妥当であること。
  2. プログラムが稼動していること
備考  

4.状態保持の方法を理解する
学習目標
  1. hiddenフィールドによるデータの受け渡しができるようになる。
  2. クッキーを利用できるようになる。
  3. セッション管理関数(モジュール)を利用できるようになる。
課題

以下に示す状態保持する3つの方法について、それぞれの利点・問題点と、自分の選択したプログラム言語でどのように行うのかをレポートしなさい。また、(1)から(3)のいずれかについて、実際にその内容を実行するプログラムを作成し、レポートしなさい。

(1)hiddenフィールドを用いて状態を保持する方法
(2)クッキーを利用して状態を保持する方法
(3)セッション管理用の関数(モジュール)を利用して状態を保持する方法

評価方法

レポート。課題を行ったら、プロクターにチェックを受けてください。

合格基準
  1. レポートの内容が妥当であること。
  2. プログラムが稼動していること
備考  

5.セキュリティ対策ができるようになる
学習目標
  1. 汚染された文字列への対応ができる
  2. セッションハイジャックを理解する
  3. SSLについて理解する
  4. データを暗号化できるようになる
課題

・「汚染された文字列」「セッションハイジャック」「SSL」について、それぞれどのようなものかを調べ、レポートしなさい。
・フォームにユーザID、パスワード、氏名、性別、住所の入力欄をもち、そこに入力されたパスワードは暗号化してファイルに保存(その他のデータは暗号化せずに保存)し、登録したIDとパスワードを後で入力(氏名と住所は空欄)して一致したときにのみ、入力した氏名と性別と住所が表示されるプログラムを作成し、レポートしなさい。その際に、入力されたデータの汚染を除去するようにしなさい。

評価方法

レポート。課題を行ったら、プロクターにチェックを受けてください。

合格基準
  1. レポートの内容が妥当であること。
  2. プログラムが稼動していること
備考  

※任意課題は、まだ作成中です。


(任意課題)6.データベースを扱う
学習目標
  1. データベースを利用できるようになる(ユーザ登録、権限)
  2. SQL文を理解する(insert、update、create、delete...)
  3. 選択したプログラム言語からのデータベース操作を理解する(DBモジュール利用)
課題

SEコースで構築したサーバに、データベース(PostgreSQLかMySQL)を入れ、データベースを利用したプログラムを作成しなさい。

評価方法

なし。

合格基準

プログラムが稼動していること。

備考 単位とは関係がありませんが、覚えていて損はありません。

 

課題2.Webシステム設計・開発入門

プロクターから提示された要求仕様に基づいてWebシステムを1つ開発してください。
なお開発には、システム設計書等の書類を随時提出してもらう必要があります。課題内容の詳細については、リンク先を参照のこと。

合格基準:

  1. 指定された書類のすべが提出され、すべてに承認をえていること。
  2. 要求を満たしたシステムが開発され、稼動していること。

戻る