UMLを利用したシステム開発 - Simozono Ultra

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