スライド 1

応用情報処理V(2001)
もっとプログラミングをしたい人のた
めに
新居雅行
2001/1/21
教科書で学んだこと
• 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)セキュリティ
• アカウント、パスワードに対する理解
• ウイルスに対する理解
• ネットワークアタックに対する理解
• 不正利用に関する理解
エンジニアリングの世界
• いろいろな仕事があります
• 理科系でなければできないわけではありませ
ん
• プログラムなどの能力も必要ですが、業界が
求めているのは、協調性
• ほかの人の話を聞き、理解をして必要な行動
が取れる人