スライド 1

応用情報処理V(2003)
もっとプログラミングをしたい人のために
新居雅行
2003/1/19
教科書で学んだこと




Java言語の基本
JBuilderの使い方
ユーザーインタフェース作成の基本
イベント処理
学んでいないこと
 Javaに関する知識(Java)
 ソフトウエア工学に関する知識(Soft)
 OS/Networkに関する知識(Net)
(Java)ファイル処理
 データをファイルに残したり、あるいはデータを
ファイルから取り込んだりする。
 それほど難しいプログラミングではないが、現
実問題として細かいことがある
 文字コードのこと
 サイズは一定しない、など
 メモリ利用効率や、あるいはコード処理の自動
化部分を理解するときちんと使える
(Java)さらなるユーザインタフェース
構築
 メニュー(Javaではちょっと面倒)
 紹介していないさまざまなコントロール(タブや
テーブルなど)
 たくさんのイベントがあるが、考え方はアクショ
ンイベントとほぼ同じ
 「レイアウト」と「イベント」でこの部分のハード
ルは越えたも同然。あとは、API仕様書を読め
るようになればOK
(Java)データの扱いについて
 国際化
 言語に応じた日付や通貨の表示
 言語に応じて画面メッセージを切り替える
 コレクションAPI
 複数のデータを効率的に管理するメカニズムがある
 この機能を理解するのは必須!
 数値処理
 Javaはそれほど強力ではないが、どこにあるのかを知って
おかないとわけがわからない
(Java)マルチスレッド
 並列に実行するプログラム
 単に並列に動かすだけなら至極簡単(テキス
トの第9週目を参照)
 ただし、現実的には複雑な問題がからむ
 ある1つのデータを複数のプログラムが同時に使
おうとしたら?
 ある処理は同時にはできない。
 では待ちに入るとしたら?双方が待ちに入ると?
(Java)ネットワーク等
 通信を含むプログラムを作成する機能が充実
している
 他のコンピュータにあるプログラムを呼び出す
ということもできる
 セキュリティ(暗号化、認証)
(Java)コンポーネント化
 JavaBeansという枠組みがある
 ソフトウエアの再利用を効率的に行う手法
(Java)サーバ向けアプリケーション
 Servlet
 Webサーバで動かすCGIのようなメカニズムで、Javaのプ
ログラムを動かす
 Java Server Pages(JSP)
 JavaScript等のように、HTMLにJavaのプログラムを混ぜ
るような形式でプログラムを作成できる
 データベース
 こうしたアプリケーションはデータベースとの連動が多い。
 JDBC、Enterprise JavaBeans(EJB)
(Java)携帯電話向けアプリケーション
 iアプリ、Java2 MEなど
 パソコンと違って制約された環境で稼動する
 少ないメモリ、遅い通信環境
 ユーザインタフェース機能は弱い
 エミュレータを使っての開発が一般的
 ボタンなど携帯電話独特の機能を使いこなす
(Soft)UML
 Unified Modeling Language
 一定の規則に従った作図を行うことで、システ
ムの分析や設計を行うための手法
 流れ図的な手順を示すものや、データ間の関
連を示すもの、配置を示すものなどいくつかの
種類がある
 作成や解読が比較的容易であることが特徴
(Soft)パターン
 ソフトウエアで構築する機能を分類したもの
 「パターン」という日本語の響きとは微妙に違う
 「形」とか「スタイル」に近いニュアンス
 一般にはUMLで記述されている
 それをもとに、プログラムを書いて実装する
(Soft)正規表現
 テキスト処理を効率的に記述する表現方法
 任意の文字列とか、数字、大文字アルファベッ
トといった文字クラスの扱いが可能
 検索や置換での利用
(Soft)XML
 構造を持ったデータを、テキストで記述できる
 メリットはあるのだが、説明は難しい
 すでに、データ交換のスタンダードとなりつつ
ある
 Webを利用した処理のリクエストとレスポンスを行
うSOAP
 Webページでデータとレイアウトを分離できる
XSTL
(Soft)フレームワーク




開発のベースになる機能
言語よりもこちらが大切
Javaはフレームワークを包含している
WindowsアプリケーションはMFC
(Microsoft Foundation Class)
 最近では.NETも注目されている
(Net)TCP/IPとサービス
 インターネットの基本的な仕組み
 それがOSでどのように実装されているのか
 どんなサービスがあるのか
(Net)UNIX
 管理作業をコマンドを使ってできるようになり
たいところ
 サーバを立てる
 お金がかからないことでもあるので、取り組ん
でもらいたい
(Net)Windows
 Windowsを単に使うのではなく、システム管
理、あるいはネットワークの中核として利用す
るような知識
 個人でやるには費用がかかるだろうけど、興
味があるなら、雑誌などで知識を集めればよ
い
(Net)スクリプト言語
 OSを使いこなすにはスクリプト系言語の知識
は不可欠
 Perl、シェルスクリプトが有名だが、さまざまな
ものがある
 ニーズにあった処理を自動化することで効率
化する
(Net)セキュリティ




アカウント、パスワードに対する理解
ウイルスに対する理解
ネットワークアタックに対する理解
不正利用に関する理解
エンジニアリングの世界
 いろいろな仕事があります
 理科系でなければできないわけではありませ
ん
 プログラムなどの能力も必要ですが、業界が
求めているのは、協調性
 ほかの人の話を聞き、理解をして必要な行動
が取れる人