比較プログラム言語論 平成16年7月21日 森田 彦 レポート(7/14)総括 < テーマ > 本日の講義で、あなたが最も興味を持った点はどのような点で すか?講義の全体的な感想と共に、できる限り具体的に、200 字~400字程度で記述して下さい。 <論点の構成> ソフトウェア開発現場への関心 現職SEへのインタビュー Java言語の評価(位置づけ)は? JBuilderのメリット ソフトウェア開発現場への関心 実際の企業などにおいてプログラミングの作業 がどのようにされているのかなどについて興味 があるので聞けたらいいなと思っています。 ソフトウェア危機について。なんでもソフトウェア 開発はものすごい勢いで発展しているため、現 在企業に雇われるプログラマーは即戦力の使い 捨てで、次々に新しいプログラムが登場し、激務 でその新たなプログラムを勉強する暇もないの だと聞いたのですがどうなんでしょう。読んで「そ こまでひどいものか?」と内心疑っていますが。 ある企業のSEに実状を聞いてみました。 あるベテランSEへのインタビューから ある大手企業のSEの方に以下の点を聞いてみました。 1.SEの研修体制は? 2.SEという職業の魅力は? 3.SEになりたい人へのメッセージ 1.ある企業のSE研修体制 4~7月 研修期間 基礎トレーニング (接客の仕方、電話での応対の仕方、 レポートの書き方等々) プログラム、ネットワーク、セキュリティなどの学習 7月 配属 → 2年間は先輩SEの指導によるOJT期間 1年度目末・2年度目末に成果発表会 OJTの2年間でプログラミング、データベース、ネット ワーク等を学ぶが、教えるのは基礎のみ。→後は自分 でつかみ取る必要がある 新人を育てることは重要→研修はみっちりやる! 2.SEの魅力は? 厳しい仕事なのは間違いない。特に納期前の作業は確 かにハード! しかし、自分(達)が作成したシステムが稼働したときの 達成感は何ものにも代え難い。 システムを一つ作ると・・・また次のシステムを作りたくな る。→モノ作りはやめられない! モノ作りのためには最先端の技術動向を把握する必要 がある。 大変だが、それを獲得して行くことで、自分自身の成長 を実感できる。 ハイリスク・ハイリターンな職業!? 3.SEになりたい人へのメッセージ まず、コンピュータが好きなことが第一要件。 共同で作業を進めるのでコミュニケーション力は重要。 プログラミング、データベース、ネットワークそしてセキュ リティの問題など、勉強すべき点は数多くある。それらを、 主体的に勉強することが必要。 進展が激しい分野なので、常に勉強が必要。→ 勉強 する人は伸びる。逆に、勉強をやめた人はそこまでで終 わる。 それがはっきりと出る(見える)職業。 意欲のある人には、大変やり甲斐のある職業! 若い人にチャレンジして欲しい! Java言語の評価(位置づけ)は? Javaの現状について(一般的な評価、利用方法 など)講義していただけると嬉しいです。 個人的 な興味という面もありますが就職活動を控えて、 現場でどのような使われ方がしているのかや、 需要と供給の移り変わりなど、Javaの世間的な 評価も知ってみたいなと少し思いました。 SEの人に聞いてみました。 Java言語の評価(SEの人に聞きました) Java言語自身が今後どうなるかは、分からない。 恐らく誰にも答えられないだろう。 しかし、Java言語の持つ、“プラットフォームに依 存しない”、つまりどのOSでも動作する、という アーキテクチャは、今やスタンダード! 仮にJava言語が何かに移り変わっても、その性 質は今後も引き継がれるだろう。 なお、現場のSEは特定の言語にはこだわってい ません。言語は道具だから・・・。 JBuilderのメリット JAVA言語のデメリットにあげられた。『オブジェクト指向の独 特の記述が初心者には理解困難。』 『クラスライブラリの全 体像の把握することが困難。』の二つであるが、(開発)ツー ルの側で解決できないかと考えた。 すぐにJBuilderなどに、 先を越されていることに気付いた。記述問題に関して、エ ラーやおかしな文を指摘し、全体像に関しても、繋がりがわ かりやすいようにしてある。 JAVA言語の特徴や、オブジェク ト指向を、半期講義を受けて、ようやくツール設計の必然性 に気付けた。 プログラミングの授業などでJavaを使ってきていますが、実 際にFrameのほうは使いますが、Applicationのほうはいつ もまったく触れないので、何に使えるのかと思っていましたが、 今日の授業でフレームを作るのにApplicationが使われると いう話をしていて、何気なく出来ていたフレームが Applicationで作られていたのだと初めて知りました。 JBuilderのメリットを理解するためには? 一つ提案というか…最初のプログラミングの時 に、コマンドプロント上で文字が表示される、簡 単なプログラムを書いたじゃないですか。あれを 改良…というわけではないですが、灰色の四角 を表示するくらいまでのものにしてもいいのでは ないかと。HTMLタグは打ち込んで表示の操作 をすると結果がすぐに分かります。 そのように、 ある程度視覚化できるレベルまでをテキストエ ディタから作ってみたほうがより分かりやすいの ではないかと思います。 <本日のテーマ> Javaプログラミング総復習 JBuilderを用いて行ってきたフレームの生成やイベント処 理などを、(JBuilderに頼らず)最初から記述してみる。 その過程を通じてJBuilderの機能のメリットを理解する。 <内容> 1. 2. 3. 4. 5. 6. mainクラスの定義 フレームの生成 mainクラスとフレームクラスの役割分担 ボタンとテキストフィールドの貼り付け イベント処理の実装① イベント処理の実装② 1.mainクラスの定義 class FrameApplication { コンストラクタ public FrameApplication() { 省略可 } public static void main(String[] args) { System.out.println("実行成功!"); } } mainメソッドの定義:一つの処理に対し必ず一つ定義する。 FrameApplication.javaとして保存 以下、作成したファイルやフォルダが、javac.exeやjava.exeなどのJava翻 訳システムがあるフォルダにあるものとして話を進める。 mainクラスの翻訳・実行 ① バイトコードへの変換(翻訳) ② バイトコードの実行 実行結果! 2.フレームの生成 import javax.swing.*; フレームクラスはjavax.swing パッケージにある class FrameApplication { public static void main(String[] args) { JFrame frame=new JFrame(); フレームオブジェクトの生成 w h フレームの幅wと高さhを設定 frame.setSize(300,200); } } frame.setTitle("自作のフレーム"); x y frame.setLocation(100,50); 表示位置(x,y)の設定 frame.setVisible(true); フレームを表示させる フレームの生成→実行 50 100 200 300 ※ ×をクリックしても、ウィンドウは閉じるがプログラムの実行は終了しない。 プログラムの終了処理を記述しなければならない。 3.mainクラスとフレームクラスの役割分担 <準備> 1. 適当なフォルダ、例えばframesampleというフォルダを作る。 2. その中にFrameApplication.javaを移動する。 3. 同フォルダ内に、フレームを定義するFrame1.javaを作る。 framesample パッケージ FrameApplication.java フレームを生成 Frame1.java フレームを定義 Frame1.java package framesample; import javax.swing.*; import java.awt.event.*; パッケージの指定 ウィンドウ(フレーム)の終了処理 のために必要 class Frame1 extends JFrame { public Frame1() { ・・・ } JFrameを継承 コンストラクタ フレームの初期処理 //ウィンドウが閉じられたときに終了するようにオーバーライド protected void processWindowEvent(WindowEvent e) { ・・・ } } FrameApplication.java package framesample; class FrameApplication { public static void main(String[] args) { Frame1 frame=new Frame1(); frame.setLocation(100,50); frame.setVisible(true); } } これで、FrameApplication.javaはいじる(変更する)必要が なくなる。 JBuilderで皆が意識しなかった理由 4.ボタンとテキストフィールドの貼り付け <Frame1.java> class Frame1 extends JFrame { private JPanel contentPane; private JTextField TField1 = new JTextField(); private JButton Btn1= new JButton(); public Frame1() { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(null); TField1.setBounds(20,10,200,25); テキストフィールドの 貼り付け contentPane.add(TField1); Btn1.setBounds(20,60,120,25); Btn1.setText("自作ボタン"); ボタンの貼り付け contentPane.add(Btn1); this.setSize(300,200); this.setTitle("自作のフレーム"); } 5.イベント処理の実装① ボタンをクリックした時に、テキストフィールドに「イベント処理 成功!」という文字を表示させるには・・・ 以下の部分を加える。 イベントリスナの登録 public Frame1() { ・・・ this.setTitle("自作のフレーム"); リスナインタフェース Btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TField1.setText("イベント処理成功!"); } }); } メソッドの上書き(定義) 6.イベント処理の実装② public Frame1() { ・・・ this.setTitle("自作のフレーム"); Btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Btn1_actionperformed(); TField1.setText("イベント処理成功!"); } }); } メソッドに置き換える public void Btn1_actionperformed() { TField1.setText("イベント処理成功!"); } 関連する質問:開発手法とは? 様々な職種で役割分担を行い、効率をあげている のはあたりまえであるが、開発現場でも行われてい ることに興味を持ちました。(中略) しかし、プログラ マによってクラスの設計や継承が異なるので共有し にくい欠点があったことや現在は開発手法が整備さ れルールが共有されていることに疑問を感じました。 ルールとはどのようなものがあるのでしょうか? JBuilderは、標準的なJavaプログラミングの手法を、ある意味 で強制している。それにより、個々が開発したプログラム(クラ ス)の共有を促進している。→一つの開発ルールの提示 第14回目レポート これまで(3ヶ月にわたって)本講義を受けてみての感想を、 特にあなたが興味を持った点を中心に400~800字程度で 記述して下さい。もちろん、講義に対する意見や要望を含め ても結構です。 上に加えて、後輩(来年度以降、本講義を受講する学生)へ のメッセージを記述して下さい。短くても結構です。後輩達が、 本講義を選択する際の参考になるようなメッセージをお願い します。よくまとまったメッセージはHPに掲載しておきます。 提出先:[email protected] 件名:「学籍番号(半角)+半角空白+氏名」を記入して下さ い。 例) s02xxx 学院太郎 HPに自由掲示板を開設(6/24) 各自活用して下さい。 コンストラクタの記述 class Frame1 extends JFrame { public Frame1() { this.setSize(300,200); this.setTitle("自作のフレーム"); } ・・・ } これにより、フレームが生成されるときに、その大きさとフ レームタイトルが設定される。 フレームの終了処理 //ウィンドウが閉じられたときに終了するようにオーバーライド protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } ×を選択した場合 } プログラムを終了させる。 メソッドの上書き→終了処理を加える。
© Copyright 2024 ExpyDoc