単語 - 岩手県立大学

KBSE2002-43
システム開発におけるユーザ要求の
明示的表現に関する一検討
岩手県立大学 ソフトウェア情報学部
山根 孝幸 鈴木 博也 米田 多江 佐々木 淳 船生 豊
<2>
目次
背景
システム開発プロセスの問題点
要求についての検討
ユーザ要求の明示的表現法の提案
今後の方向性
まとめ・今後の課題
<3>
背景
 情報技術の発達
⇒ さまざまな分野で情報システムを導入,効果をあげている
 情報システムの現状
「要求が反映されず使いづらいシステムの存在」
成功28%, 破棄23%, 失敗49% (The Standish Group,2000)
失敗
49%
成功
28%
破棄
23%
プロジェクトの実態調査
システム開発プロセスに問題
→ 要求分析に根本的課題
システム開発プロセスの問題点
<5>
伝統的なシステム開発における要求分析
 SEとユーザのギャップ

SEの視点(コンピュータ系寄り)で要求の獲得を試みるため,
ユーザの視点(人間系寄り)からの要求を理解しがたい
対話
人間
系
ユーザ
システム開発
コンピュータ
系
SE
 ユーザ要求の不明瞭さ



ユーザの属する専門分野における暗黙知の存在
ユーザが要求を記述する手段をもたない(難解)
要求自体がまとまっていない(曖昧・不足・矛盾)
<6>
要求分析に関する既存研究
 制限自然言語によるソフトウェア要求記述と解析

要求仕様記述用制限日本語を提案

要求記述を解析し,曖昧さや矛盾,不足を検出
 自然言語記述による要求導出支援システム

要求者が自然言語で要求仕様を記述

自然言語のまま形式化し,要求者自身で確認,修正
ユーザの意図を損なうことなくSEに伝えられる可能性
しかし,前提としてSEを介したシステム開発があるため,
十分かつ柔軟に要求を反映することが困難
<7>
新しいソフトウェア技術を用いたシステム開発
 エンドユーザによるシステム開発

Cyber Framework
- ソフトウェア部品とオブジェクト化されたデータベース
のドラッグ&ドロップ操作のみで"ソフトウェア開発"
- 部品,データベース定義が困難

Lyee
- ユーザ要求を単語の組み合わせで定義し,単語の
計算式と成立条件から単語の関連付けを行なうこと
でソースプログラムを機械的に生成
<8>
Lyeeツールを用いた開発
 Lyee (GovernmentaL Methodology for Software Providence)

Lyee単語定義,処理経路図,Lyee BELTによりシステム開発

プログラミングレス(自動コーディング)
※Lyee単語定義:画面上の項目,DBのレコードなどを単語で定義
Lyeeツールを用いた開発工程
要求定義・設計
開発
Lyee MAX
Lyee All2
Lyee単語定義,処理経路図,Lyee BELT
自動コーディング
テスト
プログラム実行
<9>
Lyeeツールを用いたシステム開発実験
目的: ①Lyeeツールを用いた開発において,開発経験の違いにより
開発達成度に差が出るかを見る
②Lyeeツールの課題を明らかにする
方法: SE2名,学生2名にLyeeツールを用いたシステム開発を行な
わせる.開発過程の状況と質問のログを採集,達成度を比較
する.
結果: 学生とSEにほとんど差はなかった
⇒ ユーザによるシステム開発が可能
学生,SEともにLyee単語定義が困難であった
⇒ Lyeeツールのインタフェースに問題がある
<10>
Lyeeツールにおける問題点の分析
 ユーザの要求を単語の形にし,定義するのが難しい
 ユーザの要求が曖昧または不足している場合,ユーザ
が潜在的に持っている要求を導き出すことができない
新しいソフトウェア技術を用いたシステム開発でも
要求獲得が課題
→ システム開発において,ユーザの意図を
十分に反映できていない
<11>
本研究の目的
 ユーザの意図を十分に反映できる
システム開発環境の提供
⇒ ユーザのユーザによるユーザのための情報システムの実現
ユーザ開発環境
要求
要求
定義
設計
&
コーディング
開発
ユーザ
情報システム
研究対象
Lyeeを用いて実現
<12>
要求定義の課題
a) 要求は正確に表わされなければならない
b) ユーザの要求を導出する必要がある
c) システム記述に過不足なく変換されなければならない
→ まず,a)に焦点をあてる
"要求"についての検討
<14>
要求と知識の関係
 曖昧さ,不足,矛盾のあるユーザ要求を明確に表現する

頭の中にある曖昧な要求の
一部をことばや文章で表現
頭の中
要求
ことばの中に表れる"単語"に着目
ことばの基本単位
 Lyeeツールにおけるインタフェース

表現された
要求 単語
<15>
"単語定義"と"知識"
 単語は単語間の関係からなる意味ネットワークに
より定義される
単語定義
単語B
⇒"単語定義"と呼ぶ
単語A
単語C
単語間の関係
 知識

単語定義の集合と考える
知識
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
単
語
<16>
システム開発に関わる知識
 ユーザ知識とSE知識の2種類に分類・整理
 それぞれに単語定義が存在
ユーザ知識
単
語
単
語
単
語
単
語
・
・
・
単
語
SE知識
単
語
単
語
単
語
単
語
単
語
・
・
・
共通の単語を持つものも存在する
ユーザ要求の明示的表現法の提案
<18>
要求の詳細化手法




漠然とした要求から具体的な要求へ詳細化する
要求は知識の一部を表現したものである
知識は単語定義からなる
単語定義を用いて要求を詳細化する
・・・
画面
機能
要求
画面内の項目
項目による詳細化
・・・
機能による詳細化
画面による詳細化
<19>
要求の詳細化アルゴリズム
Step1)単語○○を抽出,Ciとする
○○をする
システムが欲しい
知識
Ci
○○
Ci ?
単語定義の末端ノード
Step2)Ciの単語が単語定義の末端ノード and/or 末
端以外のノードにあるか調べる
case1) 末端以外のノードにある → 詳細化
case2) 末端だけにある → 詳細化終了
case3) どこにもない → ユーザに問い合わせ,単語
定義を追加
Step3)すべての単語が詳細化されるまで繰り返す
<20>
具体例
 調査により得られた意思の具体的な要求を表現
ユーザ領域
主体
サブ機能
受付
案内
作業
個人識別
機能
遷移
単語
病院システム
新規登録
作業
機能
関係
受付係
説明
テキスト
診療方法
内容
診察可能
項目
氏名
保険証
性別
カルテ作成
動作
表示
ボタン
保険証番号
保険事業者
診察
要求導出過程
⇒ ユーザ要求を単語と単語間の関係により
明示的に表現できた
今後の方向性
新しいシステム開発手法に
適用できる記述への変換
詳細化
ユーザレイヤー
写像
SEレイヤー
ユーザ知識で書かれた要求(ユーザレイヤー)をSEレイヤーに
写像する
 写像にはユーザ・SE共通の単語を持つ単語定義を用いる
 SEレイヤーからさらに新しいシステム開発手法へ写像する

<22>
<23>
システム開発シナリオ
要求を詳細化し,明示的に記述する
Lyeeに適用できる記述に写像する
Lyeeツールを用いてソースプログラムを生成する
プログラムを実行し,ユーザ要求が満たされているかテ
ストする
Step 5) 要求が満足されるまでStep 1)~4)を繰り返す
Step 1)
Step 2)
Step 3)
Step 4)
Step 5)
単語と単語関係
の明示的表現
Step 1)
Lyee記述
への変換
Step 2)
自動
コーディング
テスト
(Lyeeツール)
Step 3)
Step 4)
運用
<24>
まとめ
 新しいソフトウェア技術を用いたシステム開発でも
要求獲得が課題となることを指摘
 "単語"と"単語間の関係"によるユーザ要求の明
示的表現法を提案
 提案手法を用いたシステム開発シナリオを検討
今後の課題
 要求の記述の検証
 新しいソフトウェア技術の記述への写像手法の検討
 システム開発ツールの構築