• 検索結果がありません。

オブジェクト指向に基づくドキュメント創成プログラム — 基本概念

N/A
N/A
Protected

Academic year: 2021

シェア "オブジェクト指向に基づくドキュメント創成プログラム — 基本概念"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)

日本ソフトウェア科学会第

21

回大会(

2004

年度)論文集

1

オブジェクト指向に基づくドキュメント創成プログラム — 基本概念

Principles of a Document Authoring Program based on Object-oriented Concepts

林 恒俊

Hayashi, Tsunetoshi

立命館大学情報理工学部

College of Information Engineering and Science, Ritsumeikan University

HyperPage

は、かっての

HyperCard

を近代化した、ユーザ指向オーサリングプログラムである。

HyperPage

文書はページの集合であり、ページは一定順に並べられる。いくつかのページを

page class

にまとめられ る。

page class

は原型ページを継承してさらに機能を追加することができる。

page class

から個別のデータ を格納した

page instance

を生成する。ページには、

frame

pane

control

等の要素オブジェクトが配置さ れる。これらのページの定義は

XML

によって記述される。本報告ではこの

HyperPage

の基本概念につい て述べる。

1

はじめに

1.1

動機

かって、

Macintosh

にはパーソナルコンピュータに ふさわしい

“Development Tool for the Rest of Us”

として、

HyperCard

が開発され広く普及していた。

HyperCard

では、プログラミングや計算機科学を専

門に学習した経験がなくても、それなりに様々なメ ディアを取り扱うことができて、有用なスタックを 作成することが可能であった。実際に、広範なスタッ クが作成されて、広く公開されていた。

その後、ソフト会社が主導権を持つようになった ことや、メディアの高度に複雑化したことなどが相 まって、アマチュアのプログラミングは昔ほど盛ん でないように見受けられる。

MS Office

に代表される プロダクティビティプログラムを利用すれば、似た ような機能を実現することも可能ではあるが、実際 には果実が広く公開されている訳でもない。

ここでは、

HyperCard

の基本概念をもとに、最近 の思想を取り入れて発展させた文書創成プログラム

HyperPage

を提案し、

“Rest of Us”

のいわゆる情報 発信への取組みを推進することを考えた。各自の課 題を解決するために最も適した専用のソリューショ ンを作成するツールとして利用できるものを考えた。

さらに、作成された

HyperPage

文書はオンライン、

オフラインの両方のプレゼンテーションなどでも利 用可能である。

オンラインであれば、

Web

ページでもよいが、オ フラインのブラウザのみでは高度

Web

アプリケー

ションの利用は困難である。

本発表では、この

HyperPage

プログラムの基本的 なアイデアとその実装方針について報告する。なお、

これは第一報であり、今後より優れたアイデアや設 計が見つかれば、進んで導入するつもりである。

1.2

概略

HyperPage

プログラムの設計の目標は、

外部からみた使い勝手は

HyperCard

内部では、現代的プログラミング思想の採用、と くにオブジェクト指向の概念を取り入れる

実装はできるだけ一般的におこない、プラット ホームに依存しない

ことなどである。

HyperCard

では、大きさの一定したカードに、ビッ トマップや固定テキスト、編集可能テキスト、ナビ ゲーション用ボタンなどの要素を配置し、それぞれ にスクリプトを与えることによって、動作を指定す ることができるようになっている。また、カードの 集まりのスタックには背景カードが用意されて、ス タック全体に共通に機能する。

HyperPage

プログラムでは、

HyperPage

文書を

HyperPage

のページの集まりとし、各ページに様々

なオブジェクトを配置する点では

HyperCard

と同様 である。ただし、背景カードに相当するものは用意 されておらず、クラスの継承によって類似機能を実 現する。

(2)

日本ソフトウェア科学会第

21

回大会(

2004

年度)論文集

2

文書、ページ、ページに配置される要素などをす べてクラスとして定義する。個別の文書、ページ、要 素はそれぞれ各クラスのインスタンスであり、具体 的に

HyperPage

プログラムによって表示することが 可能である。各クラスはルートになるクラスから要 素やスクリプトを追加して継承することによりより 高度な機能を持った文書・ページを作成することが 可能である。

各文書、ページ、要素にはスクリプトをメソッド として付加することができる。基本的なメソッドは、

各文書、ページ、要素に発生するイベントに対応して いるが、ユーザ定義のメソッドも付加することができ る。スクリプトは

HyperTalk

あるいは

AppleScript

などの例に準じてテキスト型プログラミング言語で 記述される予定であるが、データフロー型ビジュア ルプログラミング言語の採用も考慮中である。

2 HyperPage

の基本概念

2.1

基本概念

HyperPage

の文書の基本概念は次のようになってい

る。

HyperPage

文書はページの集合であり、ページ は一定の順に並べられる

ページに含まれる特定の属性

(

インスタンス変

)

の値か、次ページへのリンクがページ順を指 定する

ページには上記の属性の他に、ページの大きさ や位置を代表する属性や主となる

frame

要素を 定義する属性をもっている

frame

要素は長方形の領域であり、その中に他

frame

pane

control

要素を配置することが できる

frame

要素は入れ子にすることができる

pane

要素には

static text

editable text

static pict

paintable pict

static graph

drawable graph

movie

などが考えられる

pane

要素の表示編集には

plug in

アーキテクチャ を採用する

control

要素には

button

radio button

check box

popup menu

などがある

blank

chap head

1

2

body

ページ クラス階層

ページ インスタンス

1:

ページの階層構造

HyperPage

文書、ページ、すべての要素には発 生したイベントを処理するためにスクリプト

(

ソッド

)

を付加することができる

スクリプトにより、メニューバーにメニューを 表示することも可能である

これらの文書、ページ、要素の表示やイベント メッセージの受渡しは

HyperPage

実行プログラ ムがおこなう

ページクラス、個別ページの編集も実行プログ ラムの仕事である

そして、これらの文書、ページ、要素について、作成 を容易に行うためオブジェクト指向概念を導入する。

2.2

オブジェクト指向の導入

HyperPage

のページはページの内容の階層構造に従っ て、ページクラスの階層構造を構成している。ペー ジ内容の形式はページクラスによって定義され、各 ページの内容はそれぞれのページが共通に持ってい る要素の値によって決定される。これは、各ページ

(3)

日本ソフトウェア科学会第

21

回大会(

2004

年度)論文集

3

Object

Document

Page

Frame

Pane

Control

Text Pict

Button

Check box

2:

オブジェクトの階層構造

がページクラスのインスタンスになっていると考え られる。

ページクラスのルートクラスは白紙のページであ り、それを継承してヘディングやフーティングを属 性として追加することで、一般のページを記述する ことが可能である。

ルートクラスで次ページや前ページを定義してあ れば、すべてのページでページ順が定義できること になる。ルートクラスで、ページ捲り操作ををイベン トハンドラメソッドで与えてあれば、すべてのペー ジでクリックするとページを捲ることができるよう になる。

したがって、このようなクラス階層の導入は図

1

のようにきわめて自然な考え方であるということが できる。

2.3

オブジェクトの階層

クラス階層の考え方は、ページの間だけではなく他 のすべての要素の間に当てはめることが可能である。

2

に示すようにルートオブジェクトをすべての先祖 とし、それに属性変数

(

ページ要素

)

とメソッド

(

イベ ントハンドラ

)

を追加することにより

HyperPage

構成するすべての要素の間に階層構造を定義できる。

ルートオブジェクトはオブジェクトの生成と消滅、

保存と再格納を実装し、他のオブジェクトはこれを 相続して実装すればよい。

2.4

メソッド

メッセージハンドラ

このようなオブジェクトのクラスには、ユーザの 操作により発生したイベントの処理を行うメッセー ジハンドラをクラスのメソッドとして定義すること ができる。これらのメソッドもクラスが継承される ときに引き継がれる。

メソッドによって処理されるイベントは次のよう なものが考えられる。

mouseDown

mouseUP

keyDown

keyUp

windowOpen

windowClose

windowShow

windowHide

focused

unfocused

documentOpen

documentClose

timer

idle

userDefined

これらのメッセージのすべてに対して、ハンドラを 用意する必要はないが、何もしないハンドラをルー トオブジェクトで定義するとよいかもしれない。ハ ンドラでは、独自の処理を定義するか、さもなけれ ばハンドラ階層の上位に処理を委ねることになる。

2.5

スクリプト

メソッドの内容は、適切なスクリプト記述言語を利 用して作成する。スクリプト記述言語の設計そのも のは、それほど困難ではない。通常のプログラミン グ言語の設計とほとんど異ならないが、インタプリ ティブに実行する都合上、できるだけ

構文を単純化して、解析を容易に実現する

(4)

日本ソフトウェア科学会第

21

回大会(

2004

年度)論文集

4

実行時環境も単純化する ことが要求される。

むしろ、場合によってテキスト依存のプログラミ ング言語よりも、ビジュアルインタフェースによる、

例えばデータフロー型言語によりスクリプトを記述 することを試みてもよいかもしれない。文書の作成 と類似のインタフェースによって、スクリプトまで 構成することができるからである。

マウス操作で文書を構成しているときに、スクリ プトになるとキーボードを主に使うようでは、切替 えが心もとないと思われる。

いずれにせよ、スクリプトは構文解析後の内部表 現あるいは中間言語で保存しておく方が望ましい。

3

実装

3.1

実装方針

HyperPage

プログラムには次のような処理を実装す

る必要でがある。

クラスとインスタンス定義の外部記述

クラスとインスタンス定義

(

内部表現

)

ページインスタンスや、要素インスタンスの表示

システムイベントの処理、イベントのオブジェ クトへの引き渡しとスクリプトの実行

クラスの編集とインスタンス生成

(

ページ、要素

)

スクリプト編集

いずれにせよ、かなり大掛かりなプログラムになり そうである。

3.2

クラス編集とインスタンス生成

HyperPage

のクラスは図

3

のような考え方で表現す ることが可能である。このような内容を適切な言語 で外部表現として保存し、表示編集やインスタンス 生成などの処理時に内部のデータ構造に読み込むよ うにすればよい。

外部表現としては、階層構造を表現できるものな ら何を利用してもかまわないので、ここでは

XML

採用する。ただし、

XML

は表現が非常に冗長である ため、何か工夫が必要かもしれない。

pane

の表示・編集には、その内容に対応した

plug in

を利用する。

A page: class inherited blank page;

pos : Position;

size : SizeRect;

obj1 : Text;

obj2, obj3 : Button;

end A page;

Text : class;

pos : Position;

size : SizeRect;

font name : String;

font size : integer;

content : String;

end Text

3: HyoerPage

クラスの定義

4

おわりに

4.1

これまでの実現

HyperPage

2003

年の春頃から考察を始め、よう やく基本概念が確立したところである。

XML

を利用して

HyperPage

オブジェクトの定義 を与える試みに取りかかったが、まだ完成に至って はいない。

4.2

これからの方針

HyperPage

のオンライン化が重要な課題であり、

WWW

のページと連携する機能の設計について現 在考察中である。単にテキスト中の

URL

をクリック して

WEB

ページを表示するだけではあまり面白く ない。もうすこし面白い協調ができればよいと思わ れる。

謝辞

HyperPage

について検討検証し、これを実現する試

みに協力を戴いた研究室のメンバに深く感謝する。

参考文献

[1] Apple Computer Inc., HyperCard 2.2 Reference

Manual, APDA, 1993

参照

関連したドキュメント

また、 4WD 車は 4WD セレクトレバーを 2H 、 4H 、 4L のいずれかにいれてくださ い。 → 102 ページ「 4WD

が成立し、本年七月一日から施行の予定である。労働組合、学者等の強い反対を押し切っての成立であり、多く

指針に基づく 防災計画表 を作成し事業 所内に掲示し ている , 12.3%.

当財団では基本理念である「 “心とからだの健康づくり”~生涯を通じたスポーツ・健康・文化創造

熱が異品である場合(?)それの働きがあるから展体性にとっては遅充の破壊があることに基づいて妥当とさ  

すべての Web ページで HTTPS でのアクセスを提供することが必要である。サーバー証 明書を使った HTTPS

基準の電力は,原則として次のいずれかを基準として決定するも

高さについてお伺いしたいのですけれども、4 ページ、5 ページ、6 ページのあたりの記 述ですが、まず 4 ページ、5