UMLを利用したシステム開発 2003年12月26日 鹿児島大学法文学部経済情報学科4年 下園ゼミ所属 寺脇えりか E-mail:[email protected] 1 CONTENTS 研究背景 研究目的 UMLの概要 システム構築 考察 今後の予定 2 研究背景 開発チームの目標 高品質のソフトウエアを開発 期間内、予算内に開発 現実 プロジェクトのやり直し 見積もり超過 時間超過 満足度が低い ソフトウエアプロジェクトの結果 2000.『CHAOS Report』 Standish Group 3 プロジェクト成功と失敗の根本原因 プロジェクトの成功要因 ユーザを巻き込んだ:15.9% トップマネージメントからのサポート:13.9% 要求を明確に記述した:13.0% 課題を残したプロジェクトの要因 ユーザからの情報の欠如:12.8% 要求および仕様が不完全であった:12.3% 要求および仕様が変更になった:11.8% 1994.『CHAOS Report』 Standish Group 要求がソフトウエア問題の最大の根本原因 4 要求とは システムが提供しなければならない能力を定 義したもの 要求を正確に定義し遵守するかどうかによって プロジェクトの成否が決まる ソフトウエア開発の中で重要なプロセス 要求分析(システムに対する要求の引き出し・整理) 設計(要求の文書化) 5 明確なモデリングの必要性 要求分析・設計フェーズではモデリングが作業の中心 モデリングとは 複雑な現実/実態を抽象化し、その中で最も重要なものをシン プルに表現すること 利点 全体像や矛盾が発見できる システム関係者相互で問題領域の共有化が図れる 欠点 コミュニケーション手段としてのモデリングが上手くいかない場合 • システム関係者相互で誤解が生じ • 満足度の低いシステムに仕上がる危険性 意識のずれが生じない、曖昧性のない明確なモデリン グが必要 6 UMLの普及 ソフトウエア業界で注目されているUML 従来よりも曖昧性の排除されたモデリングが 可能になることが期待される モデリング要素の意味・使い方が厳密に定義され ている 複数のダイアグラムで多角的にソフトウエアシステ ムを表現することができる 7 研究目的 ソフトウエア開発の場で抱えられている問題 モデリング言語として普及しつつあるUML 問題に対するUMLの効果と有益性の検証 8 UMLの概要 UML (Unified Modeling Language) 統一モデリング言語 オブジェクト指向分析・設計においてシステムをモデル化 し、記述するための言語 1990年半ばにGrady-Booch、James-Rumbaugh、IverJacobsonによって統一された表記法 1997年に正式にOMGの標準となる OMG(Object Management Group) 1989年設立 オブジェクト指向技術の普及や標準化を行う団体 現在では世界共通のモデリング言語としてソフトウエア業 界で広く利用されている 9 UML誕生の背景と歴史 ※現在の最新バージョン:UML1.5 『基礎編 :UML入門 』 (株)豆蔵 井上 樹 http://www.mamezou.com/tec/Tips/umlForBeginner/uml.html 10 UML2.0 2004年4月発表予定 UML1シリーズを全面的に改良 UMLのアーキテクチャを再定義 意味や記法を拡張・洗練 オブジェクト制約言語の仕様を拡張 新しいダイアグラムを追加 コンポジット図 相互作用概要図 タイミング図 名称変更 ステートチャート図 → ステートマシン図 コラボレーション図 → コミュニケーション図 11 UMLモデリングツールと総合開発環境 グラフィック編集ソフト モデル作成機能を持つ Visio • Microsoft • 17,800円 IDE(総合開発環境) プログラムのエディット、コンパイル、デバック、実行がビ ジュアルな環境で行える IIOSS • 11団体によるコンソーシアムが開発 • 無料 Eclipse • OTI (Object Technology International)が開発 • IBMが買収し、無料で配布 • プラグインが豊富 12 UML作成ツール利用状況/利用意向 利用状況 Visio 紙/ホワイトボードとペ ン 利用意向 Rational Rose IDE ラショナルソフトウエア 588,000円 @IT(2002年調査) モデリングからIDEへ http://www.atmarkit.co.jp/fjava/devs/survey /survey0210/survey0210.html 13 UMLの特徴と利点 モデリング要素の意味と使い方が厳密に決めら れている 曖昧性の無い図が描ける コミュニケーションギャップの軽減につながる システムの構造や振る舞いをプログラム言語に依存し ない形で残すことができる 運用後の保守、拡張性、再利用性、再開発時間短縮 に効果的 14 システム構築 15 DOSの概要 DOS(Distant Office System) 日本語名:在室確認システム 2001年4月、当ゼミの研究室が鹿児島大学法文棟 5Fよりソフトプラザ鹿児島に移転 先生とゼミ生の物理的距離、時間的リスク 十分な教育が行き届かないという問題 ゼミ生同士のコミュニケーション 遠隔地にいてもソフトプラザの利用状況が把握でき るシステム Webシステムを利用したサーバ/クライアント型シス テム 16 システム構築の目的 DOSv1の仕様書 フローチャート ドキュメント DOSv2をUMLで再開発する 従来のモデリングとUMLを利用したモデリングを比 較 UMLの効果と有益性を考察 17 要求定義 アンケート(2003年7月16日実施) 要件定義 ユースケース GUI データベーススキーマ定義 18 アンケート(2003年7月16日実施) DOSの改善したらよいと思う点/意見や要望 入退室をよく忘れる アドレスを打ち込んだらパスワードなしで入れる点 文字コードを変えなくても見られるようにしてほしい 在室者表示画面の色分けを分かりやすくしてほしい 自分の状態の入力が面倒 自分でパスワード設定したい 入室者状況の画面から入退室の更新が行えるようにし てほしい 入室者表示画面に入るときに時間がかかる 回答数13件の中から抜粋 19 OLTPの遅延発生 原因 誰か一人が入退室するたびに全員分の状態が データベースに登録・更新されている 実測値 初回アクセス 平均時間 126.0秒 2回目以降のアクセス 平均時間 41.0秒 同時に3人がアクセス 平均時間 308.6秒 20 データ取得機能の必要性の再考 データ 個人情報 更新状況 2001年1月10日 ~19日の調査 アクセス件数20件 一日平均2件 全体の2.372% データ取得 2% 退室操作 7% 入室操作 8% PC閲覧 31% PC閲覧 携帯閲覧 認証 変更取得 13% 変更取得 入室操作 退室操作 データ取得 認証 18% 携帯閲覧 21% 馬渡学 『卒業論文』 操作別アクセスデータ 21 問題点と改善点の考察 データ取得機能(個人情報・更新状況)の利用 率が低い ユースケースの削除 「個人情報」 「更新状況」 「XMLデータ取得」 ユーザが共通のパスワードを利用している ユースケースの追加 「一般ユーザを登録」 「一般ユーザ認証」 「管理者用ユーザ認証」 22 要件定義 ソフトプラザに誰がいるか把握するシステム ソフトプラザへの入室者の確認、入室、退室が可 能である ユーザがすでに入室している場合は入室できない 入室処理はユーザ本人しかできないが、退室処 理はどのユーザの処理もすることが可能 一般ユーザの登録、パスワード設定はシステム管 理者画面から行う 23 ユースケース図 DOSv1 DOS 認証機能 閲覧機能 変更機能 一般ユーザ XML変換機能 ユーザ登録 システム管理者 24 ユースケース図 DOSv2 DOSv2 入室する 退室する 入室者表示 一般ユーザ ユーザ認証 パスワード登録 25 GUI v1 画面遷移 / 認証失敗 ブラウザ選択画面 / 認証成功 ユーザ認証 PC 携帯電話 入退室更新画面 XMLデータ取得画面 入室者表示画面(PC) 入室者表示画面(携帯電話) 入退室更新画面 / タイムアウト 入室者表示画面 名前選択・処理 XMLデータ取得画面 個人情報表示画面 取得データ選択・処理 名前選択・処理 更新情報表示画面 26 GUI v2 画面遷移 / 認証失敗 / 認証成功 ユーザ認証 MENU 入室者表示画面 入室画面 退室画面 入室者表示画面 入室画面 / タイムアウト 入室確認画面 入室者表示画面 入室処理 退室画面 退室確認画面 入室者表示画面 退室者選択・退室処理 一般ユーザ登録確認画面 戻る 失敗 管理者用MENU 一般ユーザ登録画面 一般ユーザ登録画面 パスワード入力・処理 名前入力・処理 ID入力・処理 一般ユーザー登録確認画面 成功 27 データベーススキーマ定義 データベース名:dos テーブル名:dos_user dos_log テーブル名:dos_user Field Type Null Key userid int(11) UNI name varchar(40) PRI password varchar(12) Default Extra 意味 ID 0 ユーザ名 パスワード テーブル名:dos_log Field Type enterid int(11) utildate datetime name varchar(40) Null Key PRI YES Default NULL NULL Extra auto_increment 意味 入室番号 入室時間 入室者名 28 システム設計 クラス図 ステートチャート図 開発環境 ディレクトリ構造 29 クラス図 システムにログインする index.html UserCertServlet OK menu.jsp NG loginError.html +doPost() : void 一般ユーザ dos_user 30 クラス図 入室者を確認する menu.jsp SearchEnterServlet stateEnter.jsp +doGet() : void +doPost() : void 一般ユーザ dos_log useBean 31 クラス図 入室する menu.jsp 一般ユーザ enter.jsp EnterServlet +doPost() : void dos_log OK completeEnter.jsp NG endEnterError.html SearchEnterBeans 32 useBean +stateEnter() : void クラス図 退室する SearchEnterBeans dos_log menu.jsp useBean +stateEnter() : void useBean 一般ユーザ cancelEnter.jsp completeCancel.jsp confirmCancel.jsp CancelEnterServlet +doPost() : void 33 クラス図 一般ユーザを登録する adminMenu.html dos_user 一般ユーザ registerUser.html UserRegistServlet NG registUserError.html +doPost() : void OK completeRegistUser.html 34 ステートチャート図 システムにログインする DOSログイン画面 ユーザ認証コントロール ユーザ管理オブジェクト DOSメニュー画面 ログインエラー画面 一般ユーザ ユーザ名、パスワードを入力して送信 入力情報を取得 ユーザ認証を行う 認証OK 表示 例外処理 ID、ユーザ名、パスワードを入力して送信 入力漏れを通知 OKボタンを押す 例外処理 ユーザ認証を行う 認証NG 表示 戻るボタンを押す 表示 35 ステートチャート図 入室者を確認する DOSメニュー画面 入室者検索コントロール 入室者管理オブジェクト 入室状況画面 一般ユーザ 「入室者表示画面」を選択 入室者確認コントロールへ 入室者の検索 検索結果を取得 表示 戻るボタンを押す 表示 36 ステートチャート図 入室する DOSメニュー画面 DOS入室画面 入室者確認画面 入室コントロール 入室者情報管理オブジェクト 入室完了画面 入室済みエラー画面 一般ユーザ 入室を選択 表示 項目を確認し送信 項目内容を表示 内容を確認しOKボタンを押す 送信内容を取得 入室済みでないかを確認 確認OK 入室 更新した入室者の検索を行う 入室者の取得 表示 「メニューに戻る」ボタンを押す 表示 例外処理 内容を確認しOKボタンを押す 送信内容を取得 入室済みでないかを確認 すでに入室している 表示 戻るボタンを押す 表示 37 ステートチャート図 退室する DOSメニュー画面 入室者検索コントロール DOS退室画面 DOS退室確認画面 退室コントロール 入室者情報管理オブジェクト 退室完了画面 一般ユーザ 退室を選択 入室者検索コントロールへ 入室者の検索 検索結果を取得 表示 退室するユーザを選択し送信 選択した内容を表示 内容を確認しOKボタンを押す 情報を取得 退室 更新された入室者の検索を行う 入室者の取得 表示 「メニューに戻る」ボタンを押す 表示 38 ステートチャート図 一般ユーザを登録する 管理者メニュー画面 ユーザ登録画面 ユーザ登録確認画面 ユーザ登録コントロール ユーザ管理オブジェクト ユーザ登録完了画面 登録エラー画面 一般ユーザ 一般ユーザ登録を選択 表示 ID、名前、パスワードを入力し送信 入力内容を取得し表示 内容を確認しOKボタンを押す 情報を取得 ユーザ登録を行う 表示 例外処理 ID、名前、パスワードを入力し送信 入力漏れを通知 OKボタンを押す 39 開発環境 開発環境 OS Windows XP Webサーバ/JSPコンテナ Tomcat 4.1.27 JRE:J2SDK J2SDK 1.4.1_04 JDBC JDBC 2.0.14 データベース MySQL 3.23.58 UMLモデリングツール/IDE Visio Professional2002/Eclipse2.1.1 Ant(ビルトツール) apache-ant-1.5.4 40 ディレクトリ構造 TOMCAT_HOME/ webapps/dosv2app/ WEB-INF/ classes/ CancelEnterServlet.class EnterServlet.class SearchEnterServlet.class UserCertServlet.class UserRegistServlet.class adminresource.properties mysqlresource.properties mybeans/ CancelEnterBeans.class EnterBeans.class SearchEnterBeans.class UserCertBeans.class UserRegistBeans.class web.xml html/ adminMenu.html completeRegistUser.html endEnterError.html index.html loginError.html registUser.html registUserError.html jsp/ cancelEnter.jsp completeCancel.jsp completeEnter.jsp confirmCancel.jsp enter.jsp menu.jsp stateEnter.jsp systemError.jsp 41 デモンストレーション ソフトプラザ内部からのアクセス http://172.20.20.17:8080/dosv2app/html/index.html 外部、携帯電話からのアクセス http://221.113.248.196/dosv2app/html/index.html 42 考察 UMLの有益性 考えを整理する クラス設計 明確な仕様書を残す プログラム構成を表す図よりもクラスの役割が明確 大規模システム開発が効率的に行える クラスの必要な動作のみを役割分担 有益性が感じられなかった部分 曖昧性の排除 表記法がツールに依存する コミュニケーションギャップの軽減 ユーザのUMLに関する精通の必要性 UML2.0に期待? 43 今後の予定 システム運用 アクセスデータ解析、アンケート実施 2003年 08月 2003年 09月 2003年 10月 2003年 11月 2003年 12月 開発工程 8/10 8/17 8/24 8/31 1 環境構築 2 要求定義 3 システム設計 4 コーディング 5 テスト・デバック 6 保守・運用 9/7 9/14 9/21 9/28 10/5 10/12 10/19 10/26 11/2 11/9 11/16 11/23 11/30 12/7 12/14 12/21 12/28 44 ご静聴ありがとうございました 45
© Copyright 2025 ExpyDoc