UML入門

基礎情報技術
ー第1日目ー
平成27年4月10日
東京工科大学
コンピュータサイエンス学部
○亀田・(中村)
講義担当教員
• クラスB:亀田弘之
• クラスA:中村太一
研A403
@研A403(ココ・金)
@研A502(上階・水)
研A502
2
今日はガイダンスから
• まずは、雑談から…
(皆さんへのアドバイス)
3
アドバイス(その1)
– 資格を取ろう (情報処理技術者試験制度)
• 基本情報技術者試験(www.jitec.jp)
– 経済産業省 ・ 国家試験
– 3年生の秋までにはとろう(年2回実施、4月と10月の第3日曜日)
– 今年の春は4月20日(検定料5,100円),秋は10月19日(日)
» 3年次後期授業「実践コンピュータ技術」の単位が取れる!
• ディジタル技術検定(digital-kentei.com)
–
–
–
–
–
公益財団法人 国際文化カレッジ(実務技能検定協会ではない!)
文部科学省 後援認可
情報2級部門 がお勧め
4年生までに1級(情報部門)が取れるとすごい!
今年は6月28日と11月(1級は秋のみ) (検定料2級5,000円)
4
平成21年度春期からの試験制度
5
http://www.jitec.ipa.go.jp/1_11seido/seido_gaiyo.htmlより引用
試験区分と実施時期
(出典) http://www.jitec.jp/1_02annai/_index_annai.html
6
ディジタル技術検定
(出典) http://digital-kentei.com/
7
ディジタル技術検定の内容
(出典) http://digital-kentei.com/2.html
8
お知らせ
• 「情報処理技術者試験」に合格すると
いいことがある!
• 「実践コンピュータ技術」の単位が
取得できる。
• 詳細は、教務課に確認すること。
(ガイダンスでも話があった?
と思いますが…)
We have to
strive for what
we want.
9
ミニ情報
• 平成19年度「実践コンピュータ技術」の単位
を無事修得した先輩に関する情報の報告会
で使用したパワーポイント(一部)を以下に掲
載しておきます。参考になれば幸いです。
10
「実践コンピュータ技術」
結果報告
平成20年1月16日(水)
東京工科大学
コンピュータサイエンス学部
Αγορα
科目担当:亀田弘之
レポートの内容
1.
2.
3.
4.
5.
資格取得に向けた各自の取り組み(具体的に)
1.1 主に使用した参考書
1.2 役に立った授業・演習・実験
1.3 役に立ったWebのサイト
苦労した点・良かった点
すでに取得している資格(IT以外も含む)
今後取得したい資格(もしあれば)
その他
(全体的な感想や本授業に対するコメント等)
1.資格取得に向けた取り組
み
1.1 主に使用した参考書
1.2 役に立った授業・演習・実験
1.3 役に立ったWebのサイト
主に使用した参考書
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
基本情報技術者 スーパー合格本 午前
C言語の切り札
1週間で分かる基本情報技術者集中ゼミ 午後
平成17年度秋季基本情報技術者合格本
よく出るよく分かる基本情報技術者 【午前】問題集2名
よく出るよく分かる基本情報技術者 【午後】問題集2名
基本情報技者試験らくらく突破C言語
平成19年度春季秋季 基本情報技術者 合格教本
基本情報技術者集中ゼミ[午前編]
イメージ&クレバー方式でよく分かる
栢木先生の基本情報技術者教室2名
基本情報「午前」完全合格教本
基本情報技術者完全解答
役に立った授業・演習・実験




基礎教育科目
共通技術科目
専門科目
実験科目
基礎教育科目









コンピュータ概論I5名
コンピュータ概論II5名
コンピュータ操作演習I2名
コンピュータ操作演習II2名
プログラミング技術I4名
プログラミング技術II4名
プログラミング技術III4名
プログラミング技術IV2名
(プログラミングの授業)
共通技術科目





論理回路
Web技術基礎
データベース技法入門3名
情報ネットワーク概論
信頼性工学2名
専門科目







コンピュータサイエンス概論
インターネット
ブロードバンドネットワーク
Web技術応用
情報セキュリティ
アルゴリズムとデータ構造
コンピュータアーキテクチャ
実験科目






ネットワーク系実験
コンピュータ系実験I
コンピュータ系実験II
自然科学講義付き実験
実験のクライアント・サーバ・システム
実験の論理回路
役に立ったWebサイト
情報処理技術者試験センター(http://www.jitec.jp)
の過去問ページ等3名
2. 一夜漬け 情報処理技術者試験
(http://www15.plala.or.jp/gcap/data)
3. 猫でもわかるプログラミング
(http://www.kumei.ne.jp/c_lang/)
2名
4. Amazon.co.jp(良書探しに役立った)
5. 特になし
1.
苦労した点
プログラミング言語とデータベース(独学)
データベース(操作経験がなくACCESSで自習)
アルゴリズムは難しかった2名.
試験範囲が広い(大学で学んだ以外の知識も必要)
体力と集中力
業務知識関係が非常に覚えづらく,苦戦した.
午前問題はとにかく覚えることが多かった.
午後問題は問題文が長い.
大学で習っていない内容は苦労した.
英語の略語の記憶に苦労した.
良かった点
ソフトウェアの観点からハードウェアの基本的なこと
を理解で,授業の理解に役立った.
問題1つ1つは簡単
大学の授業で学んだ内容との重複が多く,授業の
ありがたみがわかった.
大学にて下地ができていたので,本を1冊読むだけ
で合格ラインを超えることができた.
資格を取得することで次の目標を考えることができ
た.
大学での学習の筋道を立てるのにも役立った.
特になし2名.
すでに取得している資格
初級システムアドミニストレータ(18年度春)
普通自動車免許2名
実用英語技能検定2級
日本漢字能力検定2級
日本テニス協会公認C級審判員
特になし
今後取りたい資格
ソフトウェア開発技術者6名
CCNA3名
情報セキュリティアドミニストレータ
テクニカルエンジニア(データベース)
特になし
その他(感想など)(1)

本授業の認知度が高まれば,本授業の履修者
が増え,情報処理技術者試験の受験者が増える
のでは.
その他(感想など)(2)
大学のカリキュラムに基本情報技術者等の資格に
対してのアプローチをもっと組み込むべき.そうでな
いと,大学での学習の筋道の中で,中間的な目標が
立てにくい.
情報処理技術者やCCNAの資格取得をアピールし
ているが,カリキュラムでは後付に感じる.
CCNAに対しては触れてもいない.
Linuxも自発的に扱う以外はほとんど扱っていない.
基本情報技術者がCSの基礎に当たるのであれば,
1つの目標,カリキュラムの一環,進級条件にして
もいいのではないか.
その他(感想など)(3)
資格取得により就職を有利にしようと考えてい
る学生は多いと思う反面,受験するかどうか
迷っている学生も多いのではないかと思う.シラ
バスや大学のホームページに,資格取得に有
利な科目などを記載し,年度の初めのガイダン
スでより詳しいガイダンスを実施すれば,学生に
とってよい指針となるのではないか.
独学の部分も多かったが,参考書がたくさんあ
るのでそれほど苦労しなかった.
後輩へのアドバイス
参考書を用いてまずは午後の対策を取るべき.初
めて学ぶことや,理解しにくいこと,プログラミング
など時間を費やしてじっくりやる必要がある.その
後,午前の対策として参考書を一通り終わらせたら,
ただひたすら過去問を解くこと.
日頃の授業,勉強は大変重要である.
資格の取得だけでなく,情報技術に関する基礎的
な知識を学ぶことができた.
大学の授業を真剣に受けていれば資格を取れるレ
ベルに達すると思う.
勉強開始時期
2ヶ月程度前
今回が3度目の学生も1名いた
因みに

平成22年度は「応用情報処理技術者」に合格し
た先輩が3名いました!
(役立つ雑談は、ここまで)
• 以下から、本来の話の続きです。
31
アドバイス(その2)
• 統計処理
基礎的かつ重要!
– なぜ高校までの間にしっかり学ばないのか?
– 実務・研究あらゆる分野で人より一歩先んじる
には、統計は不可欠!
– 興味のある人は、統計学を深く学ぶこと!
• 理論:平均・分散・確率分布・推定・検定・
大数の定理・中心極限の定理・相関・
多変量解析・共分散分析(構造方程式モデリング) など
• 実践:記述統計学(図表の作り方),統計分析の体験・訓練
• ツール:R,gnuplot,Excel, SPSS,Python etc.
32
参考までに
• CS学における統計の講義
– 「確率と統計」 (CS,2年前期)
– 「データマイニング」 (CS,3年後期)
– 大学院では「先進的データ分析法」
(前期金曜1限)があります。
大学院進学希望者はB4の時にチャレンジしてください!
統計学の基礎は必ず学んでおきましょう!
33
アドバイス(その3)
• その他
– UML(Unified Modeling Language)
– SysML
– XML(eXtened Markup Langauage)
– UNL(Universal Networking Langaugae)
– Semantic Web
– Semantic Computing
– 情報倫理・法律(知的財産権) など
いずれも皆さんの役に立ちます。
34
アドバイス(その4)
• プログラミングの種類
– 手続き型プログラミング言語
– オブジェクト指向型プログラミング言語
– 関数型プログラミング言語
– 論理型プログラミング言語
– アスペクト指向型プログラミング言語 など
35
亀田の個人的コメント(1)
• IT(Information Technology)を真にかつ
格段に発展させるためには、以下の問題点を
本質的に解決する必要がある。
– 複雑さ(complexity)
– 意味(semantics)
人工知能
ソフトウェア工学
先端的ゲーム
サービス etc.
の取り扱いの困難性
36
そろそろ本題へ入りましょう
• まずは「シラバス」を用いて、本授業の概要を
説明します。
(Webにつなげられる人は、シラバスの
ページにアクセスしてみてください。)
– 共通技術科目
– 2年次前期
37
シラバス
38
授業概要
• ITエンジニアのプロフェッショナルになるためには、プロとして
の嗜み(たしなみ)と作法を身につけることも大切である。本
授業では、今後プロとしてソフトウェアかかわる人たちにとっ
て避けて通ることのできない嗜み・作法を簡単な演習を通じ
て紹介するとともに、学生の皆さんにそれらの必要性・重要
性を身を持って理解してもらうことを目指す。
• 具体的には、ソフトウェア開発を上流工程から下流工程へ向
けて実際に体験してもらいながら、UML(Unified Modeling
Language)やプロジェクト管理等の紹介を行う。
• ITシステム ≠ プログラミング であることや、ソフトウェア開発
におけるコミュニケーションの意義、プロジェクト管理の重要
性についてなど、多くのことを学生の皆さん自らが気づくこと
を期待する。
39
授業方法
• 基本的には講義形式で行うが、理解を深め
知識を確実なものとするために数多くの演習
(含む、PBL)を行う。
なお本授業は中村と亀田でそれぞれ行うた
め、各クラスで多少の授業方法・内容に異な
る部分があり得ることをあらかじめ断っておく。
40
準備学習
• 取り立てて予備知識は必要としない。
(皆さんはCSの基礎はもう学んでいる筈!)
• ただ、取り組みに対する真剣さ・熱意は必要。
=>主体的に行動のできる
ICT技術者を目指して!
41
履修上の注意
• 受講時には教員からの指定・紹介の有無に
かかわらず、積極的かつ主体的に関連書籍
やWebに目を通し、主体的な学習を心がける
こと。また、当然のことであるが欠席・遅刻・
早退はしないこと。
42
成績評価方法・基準
• 原則としてレポート課題で評価する。
詳細は授業で説明をする。
=>
– レポート
– (出席は前提)
43
教科書・参考書
• 松永・中村・亀田:“コンピュータシステム開発
入門”オーム社(2008)2,500円.
• 浅井他:“現場のUML -モデルベース開発の
すべて-”(ソーテック社)2,880円.
• 竹政他:“UMLモデリング教科書 UMLモデリ
ングL2”(翔泳社)3,444円.
その他は、後日Webで紹介します。
44
授業スケジュール(予定)
45
本講義日程(クラスA)
• 亀田弘之(CS)
– 4月10日,17日,24日
• ソフトウェア工学とは
• オブジェクト指向とは (開発準備フェーズ)
– 5月1日(PBL開始予定)
•
•
•
•
グループ分け
VC(Virtual Company)の立ち上げ
提案システムの構想 by brain storming
要求仕様書とその作成 etc
– 以後、順次(最後に成果発表会を行う)
46
それでははじめましょう。
Are you ready?
47
基礎情報技術
ー イントロ(1日目続き)ー
東京工科大学
コンピュータサイエンス学部
平成27年4月10日(金)
亀田弘之
背景と問題点
現実世界
実装された
での活動
情報システム
(作成)
モデル
(分析)
49
ソフトウェア工学とは
• バグのないソフトウェアを効率よく開発・テスト・維持
するための手法に関する理論・ノウハウの総体。
• 従来からさまざまな手法が提案されては消えていった。
• 現状は、UML(Unified Modeling Language)の登場に
より、オブジェクト指向を前提とする手法が主流になり
つつある。
(UML・オブジェクト指向・デザインパターン・
モデル駆動アーキテクチャ・開発プロセス・ツール)
50
ソフトウェアのライフサイクル(1)
1.
2.
3.
4.
5.
6.
要求分析
設計
プログラミング
デバッグ
評価
運用
⇒再び1へ戻る
51
ソフトウェアのライフサイクル(2)
1.
2.
3.
4.
5.
6.
何(どんなもの)を作ればいいの?
どう作ればいの?
作成作業そのもの(デバッグもやりながら)
本当にちゃんとできたのかな?
実際に使おう!
ちょっと変更したいな。
52
ソフトウェア開発モデル
•
•
•
•
•
•
•
ウォーターフォール(water fall)モデル
プロトタイピングによるソフトウェア開発
インクリメンタルモデルとイテラティブモデル
スパイラルモデル
データフローモデル
アジャイルモデル
モデル駆動型
=>一長一短あり
自主問題:
ウォーターフォールモデル , スパイラルモデルおよび
モデル駆動型アーキテクチャ(MDA)について調べよ。
53
現在のソフトウェア
• 大規模化・複雑化
• 継続的な進化(短時間での変更・高性能化)
(ソフトウェア開発はムービングターゲット)
一方、
• 安心・安全への要求(高品質)
• コストダウンへの要求 など
自動車は
1億ステップ
WindowsOSは
約5000万
ステップ
携帯電話
数千万
ステップ
54
アジャイル開発手法
• 背景:
– 仕様が確定しない
– 短期開発
– 低コスト化の要請
• 意義
– 優秀な小規模人材のチームの生産性大
– コンカレントエンジニアリングが不可欠
– お客のコミットした仕様を実現したテスト済ソース
コードの生産性(throughput)の最大化
55
MDA(Model Driven Architecture)
• まさにこれから重要なもの。後日お話します。
56
UMLとは
• その発生の歴史
• その意義・役割
この授業では
これがとてもとても
大切です!
57
UMLの歴史(背景)No.1
オブジェクト指向分析/設計の方法論
• 1980年代~90年代(pre-historic)
– Grady Booch(Booch method),
– James Rumbaugh(OMT),
– Ivar Jacobson(OOSE; Object Oriented
Software Engineering)
• 1994年 BoochとRumbaughが協力
• 1995年 Jacobsonも加わる(Three amigos)
→ UMLの始まり
58
UMLの歴史(背景)No.2
• 1997年1月 UML1.0OMG(Object
Management Group)へ提案
• 1997年末 UML1.1はOMGの標準に
• 1998年
2回改定される。
• 2004年4月 UML2.0発表される!
(現在はUML2.1.1)
<<注>> 本講義ではUML1.5 & 2.0に準拠する。
59
UMLとは
• モデリング言語
60
背景と問題点
現実世界
実装された
での活動
情報システム
モデル
61
UMLの利点
1. システム分析や設計の結果を
理解しやすく表現できる。
2. Object-orientedの考えに基づくため、
Javaなどと相性がよい。
3. OMGが策定した仕様(de facto standard)
(http://www.omg.org/)
4. 開発者相互、開発者ー利用者間の
円滑な意思疎通ができる。
62
UMLの適用有効分野
• 実践的なソフトウェア開発の現場では
どこでも!
• 組み込みソフトウェアも
• 社会基盤的な大規模情報システムも
63
UML理解のためのキーワード
• モデリング
– モデル記述言語とモデル
• オブジェクト指向
64
UML
開発言語
開発プロセス
開 発 ツ ー ル
65
UMLを学ぶ意義
意思疎通手段としての有効性
モデリング手段としての有効性
情報システム開発に
UMLの積極的活用を
UMLモデリングツールの充実
UMLはde facto standard
(国際性)
技術者認定試験
(社会的認知度)
66
モデリングツールの例
•
•
•
•
•
•
astah*
EclipsUML (http://www.omondo.com/)
Pattern Weaver
IIOSS (http://www.iioss.org/)
Rational Rose XDE Developer
Visual studio.NET Enterprise Architect
など
67
1回目のまとめ
• 以上が、ソフトウェア工学とUML.
クイズ:
1. ソフトウェア工学(SE)はどのような背景から
生まれたのか?
2. ソフトウェア工学の目指すものは何か?
3. UMLはどのような背景から生まれてきたのか?
4. UMLって何の略語?
5. UMLの役割は何か?
6. UMLはどんな分野で役立つ?
7. UMLを必要としている人ってどんな人たち?
8. 我々はこれから何を学ぶの?
68
次は、…
• オブジェクト指向
この授業では、
オブジェクト指向設計、
オブジェクト指向プログラミング
についても、若干ふれていきます。
あせらず
少しづつ
69
オブジェクト指向の理解も必要
•
•
•
•
•
•
•
オブジェクト
抽象化
クラスとオブジェクト(インスタンス)
データ抽象(カプセル化・隠蔽)
メッセージとメソッド
継承と集約
ポリモフィズム(polymorphism, 多相性)
など
70
http://kameken.clique.jp/
• 授業のURLです。
71
以上
それでは今後ともよろしく。
楽しくやっていきましょう。
72