Comments
Description
Transcript
Java programming seminarについての案
Java programming seminarについての案 1. Java programming seminarの目的は? 2. Javaを通じてsoftware developmentを学びます 3. software development process(例) 4. Java versionの歴史 5. Java Editionの関連 6. 案-1: 学習の順番(Desktop applicationを目指す場合) 7. 案-2: 学習の順番(Web applicationを目指す場合) 8. 開発環境eclipseを使ってJavaを学びます 9. Webについても学びます 10. Web, Desktop application platform, language 11. Webの基本的データ HTML, XML 12. オブジェクト指向についても学びます 13.テキストサイトについて A. 参考: ダイナミック言語(scripting languageとも) 2010/9/4 K.Yanai 2010 夏 Kyosuke Yanai 1 1. Java programming seminarの目的は? • まずは、applicationを作るための入門 • 達成レベル – 最初は • Javaの可能性を感じる • 自力で勉強を続けるために必要な環境を整える • Java言語を使って簡単な機能を実現できる • プログラム作成の基礎的なイメージをつかむ – 最後は • どうなりたいですか? • seminarとしては、一流の技術者集団をめざしたものをやりたいです • どんなapplicationを目指しますか? • • • • 2010/9/4 applicationの目的によって動作/開発環境や考え方が大きく違います Web application PC application(Desktop application) device application K.Yanai 2 2. Javaを通じてsoftware developmentを学びます • program languageを学ぶ – 言語仕様 • software development processを学ぶ – コーディングルール – ツールの使いこなし • 開発ツール(IDE)など – ライブラリ – デザイン手法(オブジェクト指向) – テスト手法 – 文書化手法 IDE: Integrated Development Environment eclipse, NetBeans, VisualStudioなどがあります。 その他、ツールとしてはapplication platformご とにSDKがあります。 • 関連する技術を学ぶ – データベース(主にJavaとの接続について) – ネットワーク(特にWeb関連) – その他(各種のデータ形式など、XMLなど) 2010/9/4 K.Yanai 3 3. software development process(例) • • システム開発は設計やプログラムを行うだけではなく、たくさんの工程(過程)を経て行われます。 現在は、さまざまなプロセスがあります。図は古典的なプロセスの例です。 Start End 導入/構築 テスト計画 システム化計画 要件定義 Start・・・ テスト 次期システム化 計画 運用/維持管理 /サポート 設計 製造(Coding) 設計とか、コーディングは全体の中 のほんの一部でしかないのです。 2010/9/4 2010/9/4 K.Yanai 4 4. Java versionの歴史 • Java: 1995年5月23日のSunWorldカンファレンスで公開(Java applet) – JDK 1.0 (1996年1月23日) – JDK 1.1 (1997 年2月19日) • 国際化対応、AWT、JavaBeans、JDBC、Java RMI – J2SE 1.2 (1998 年12月8日) • リフレクション 、Swing 、Java Plug-in(Java applet)、Java IDL – J2SE 1.3 (2000 年5月8日) • Java RMI(CORBA)、Java Naming and Directory Interface (JNDI) – J2SE 1.4 (2002年2 月6日) • • • assert、JAXP (Java API for XML Processing)、 JCE(Java Cryptography Extension) JSSE(Java Secure Socket Extension): TLS/SSL JAAS(Java Authentication and Authorization Service)、 Java Web Start – J2SE 5.0(2004 年9月30日) • 言語仕様の拡張 • Webサービスほか – Java SE 6(2006 年12月11日) – Java SE 6 Update 10 (2008年10月22日) – Java SE 7 (予定) 2010/9/4 K.Yanai 5 5. Java Editionの関連 • Java SE(Java Platform, Standard Edition) • Java EE(Java Platform, Enterprise Edition) 6 • Java ME(Java Platform, Micro Edition) ここから始めます Java Platform Enterprise Edition Java Java EE EE 66 Webシステム向き Webシステム向き Java Platform Standard Edition Java Platform Micro Edition Java Java SE SE Java Java ME ME Desktop Desktop Application向き Application向き 携帯端末、情報機器向き 携帯端末、情報機器向き Java言語仕様 Java言語仕様 2010/9/4 K.Yanai 6 6. 案-1: 学習の順番(Desktop applicationを目指す場合) • Java SEで簡単なプログラム作成 – 開発環境のセットアップと使い方 – Hello World – javaの基礎的な仕様 – オブジェクト指向入門 • 基礎的プログラム作成 – – – – ライブラリを知る File access program DataBase access program gui program • MVCについて学ぶ • awt/swingを学ぶ • 実践的アプリケーションの作成 – テーマ決定~設計、実装、テストまで – デザインパターンを学ぶ target がWindowsだけならば、C#の ほうが良いでしょう 2010/9/4 K.Yanai 7 7. 案-2: 学習の順番(Web applicationを目指す場合) • Java SEで簡単なプログラム作成 – 開発環境のセットアップと使い方 – Hello World • – オブジェクト指向入門 Java EEで簡単なプログラム作成 – 開発環境のセットアップと使い方 • tomcat plugin など – Hello World – JSPでHello World • Web入門 – webに関連する技術(html, css, http, xml) • 基礎的Webプログラム作成 – html, css – File access ベース – DataBase access ベース • 実践的アプリケーションの作成(strutsを使うかどうか.......) – テーマ決定~設計、実装、テストまで – struts, jfs, デザインパターンなどの実践的技術を学ぶ 2010/9/4 K.Yanai 8 8. 開発環境eclipseを使ってJavaを学びます • eclipseは、代表的なJava開発環境のひとつです。 – 2010/9/4 C++, PHP, Rubなどの開発環境としても使用できますから、覚えておくとお得です。 K.Yanai 9 9. Webについても学びます • Webはもともと、ドキュメントを共有するためのしくみ 1989年頃、CERNでTim Berners-Lee氏が考案、協力者と実装 研究者同士が互いの情報 を共有しあうために作られ ました。 ネットワーク http, html, xml, domainなどについても学びましょう。 CERN: Conseil European pour la Recherche Nucleaire(欧州合同原子核研究機構) 2010/9/4 K.Yanai 10 10. Web, Desktop application platform, language client client Webサーバ Webサーバ request JavaScript JavaScript VBScript VBScript Java Java response SQL SQL XQuery XQuery application開発言語 application開発言語 XML XML HTML HTML Perl, Perl,php php Python Python browser browser DBサーバ DBサーバ VBScript VBScript JScript JScript C# C# Java Java Ruby Ruby JSP JSP RDB RDB XMLDB XMLDB JDBC JDBC ODBC ODBC HTML, HTML,XML XML VisualBasic VisualBasic Ruby Ruby Java Java C++ C++ C# C# server/container/frameowrk server/container/frameowrk Struts, Struts,ASP.NET ASP.NET EPUB(XML) EPUB(XML) WebSphere, WebSphere,WebLogic, WebLogic, Oracle Application Oracle ApplicationServer Server Ruby Rubyon onRails Rails MySQL DB2 Oracle PostgreSQL NeoCore TX1 Apache, Apache,tomcat, tomcat,IIS IIS Objective ObjectiveCC Java Java iPhone iPhoneOS OS android android 2010/9/4 2010/9/4 Javaは広範囲に適用が可能で す。 K.Yanai 11 11. Webの基本的データ HTML, XML • • • HTMLはSGMLに基づいて作成されました ブラウザの発展とHTMLの発展が絡み合って続きました XMLとの関係も複雑化しています DoCoMoのi-mode 応用言語 (ごく一部を示しています) HTML HTML 1.0 1994 CERN CHTML imode XHTML 1998/2 W3C subset HTML 2.0 1995 RFC HTML 3.2 1997/7 W3C HTML 4.0 HTML 4.01 1997/12 W3C HTML 5 1999/12 W3C XHTML 1.0 2012 W3C XHTML 1.1 2001/5 W3C 2000/1W3C EPUB 2.01 SGML 1986 メタ言語 XML 1998/2 W3C ISO 8879 メタ言語は、応用言語を定義す るための基本的なルールを定 めたものです。 2007/7 IDPF JavaとXMLも相性が 良いです。 CHTML : Compact HTML 2010/9/4 2010/9/4 K.Yanai 12 12. オブジェクト指向についても学びます • オブジェクト指向設計・実装をJavaで実践しながら学びます • Java以外の開発でも役に立ちます – – オブジェクト指向では、人が個々のものをどのように認識するか、ということを意識しています • どのようなものから構成されているか • 他のものとどのような関係(静的に、動的に)があるか • どのようなふるまいをするか 個々のものを抽象化して知識化することを学びます • クラスは、いろいろな物事を抽象化した知識のかたまりです。またクラスはカテゴリーにまとめられて存在し、 クラス同士も関係があります。 • クラス同士は、なんらかの制約や拡張によって関係づけられる 佐藤先生 ホワイトボード 27歳 男性 先生 いまは覚えなくても 良いですからね。 教えている グラフ 棒グラフ 差し棒 オレンジ ホワイトボードの前に 立っている 図 UMLについても学びます UMLについても学びます グラフを指す 背広を着ている 支柱 ※認知心理学や認知言語学などでは、スキーマという言葉が使われます。 2010/9/4 K.Yanai 13 13. テキストサイトについて • Javaのテキスト(pdf)を下記のサイトに置きます – http://www6.airnet.ne.jp/manyo/memo/java/ – アクセスには、ユーザID/パスワードが必要です • user id = xxxxxx • password = xxxxnnnn 2010/9/4 K.Yanai 14 A. 参考: ダイナミック言語(scripting languageとも) • • • • perl (1987) php (1995) python (1991) ruby (1995) Java以外を学ぶなら、 rubyがおすすめです。 End of the document. 2010/9/4 K.Yanai 15