JP2008226252A - ネットワーク上でプロジェクトスケジュールを管理するためのプロジェクトタスク管理システムのデータベースクエリの生成 - Google Patents

ネットワーク上でプロジェクトスケジュールを管理するためのプロジェクトタスク管理システムのデータベースクエリの生成 Download PDF

Info

Publication number
JP2008226252A
JP2008226252A JP2008066657A JP2008066657A JP2008226252A JP 2008226252 A JP2008226252 A JP 2008226252A JP 2008066657 A JP2008066657 A JP 2008066657A JP 2008066657 A JP2008066657 A JP 2008066657A JP 2008226252 A JP2008226252 A JP 2008226252A
Authority
JP
Japan
Prior art keywords
editor
schedule
project
information
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008066657A
Other languages
English (en)
Inventor
Tetsuro Motoyama
モトヤマ テツロウ
Avery Curtis Fong
カーティス フォング アヴェリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JP2008226252A publication Critical patent/JP2008226252A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Calculators And Similar Devices (AREA)

Abstract

【課題】クライアント・サーバベースのプロジェクトスケジュール管理システムによりプロジェクトスケジュールを効果的に管理する。
【解決手段】クライアント・サーバベースプロジェクトスケジュール管理システムは、プロジェクトの各メンバーによる各種スケジューリングタスクを実行するため、ウェブブラウザを介しアクセス可能な複数のエディタを有する。クライアントにより実行可能なコードがサーバにより生成され、スケジュールに関する情報と共にクライアントに転送される。クライアントは、このコードを実行し、各エディタを表示し、新規の又は更新された情報を管理及び維持する。タスクの各行は対応するオブジェクトにより表され、エディタ要素は各オブジェクトにより直接アクセス可能なオブジェクト属性である。データベースクエリが、使用される情報と置換されるプレースホルダーを含むコンスタント文字列に基づきサーバにより生成される。
【選択図】図32

Description

本発明は、一般にプロジェクト管理に関し、より詳細には、クライアント・サーバネットワークアーキテクチャによりプロジェクトスケジュールを管理するためのタスク管理システムに関する。
製品開発プロジェクトは、典型的には、監視及び管理のための労力をかなり要する。さらに、コンピュータソフトウェア開発プロジェクトは、本来的には管理することが困難である。この困難さは、ソフトウェアパッケージから構成される大量のタスク及び関連する提出物と、当該タスク及び提出物に係る大量の事務処理及びプロジェクトファイルとに部分的に起因する。他の原因となるファクタは、ソフトウェアパッケージの開発サイクルの期間中に各タスクと提出物との間に確立された複雑な相互依存性群に関するものである。さらなる他の原因となるファクタは、開発中のソフトウェアに関する設計仕様を生成及び維持する必要である。
開発プロジェクトの管理は、典型的には、プロジェクト文書へのアクセス、スケジュールなどを整理、維持及び制御することを含む。さらに、企業組織内では、しばしば同時に実行される開発プロジェクトが複数存在し、このため、文書管理作業が大きく拡大する。従来、マスタープロジェクトスケジュールの管理は、手作業によりデータをスケジューリングアプリケーションに入力し、手作業によりスケジュール間のリンクを生成し、手作業により各開発者のタスクスケジュールをマスタープロジェクトスケジュールに集約させることを伴ってきた。これは、監視及びクオリティの制御がほとんどないため、面倒で間違いやすいタスクである。
マスタープロジェクトスケジュールはしばしば流動的なものであり、このため管理には、タスク状態及び関連するスケジュール更新を開発者に求めることとなる。しばしば、開発者によって管理に対して提供されるフィードバックは、ほとんど監視されておらず、厳格なポリシー、手順又は検証プロセスに従うものでない。このため、プロジェクトスケジュールの実際の状態は、各タスクの進捗が主観により支配され、しばしばタスクを割り当てられた各個人による独立的な進捗レポートとなってしまうため、確定することが困難となる。
パブリック及びプライベートネットワークは、プロジェクトチームの各メンバーがプロジェクトに関するすべての情報を取得するための有用かつシンプルな通信機構を提供する。プロジェクト及びプロジェクトメンバーに関するウェブページを維持することは、プロジェクトチームの各メンバーが当該プロジェクトの状態を判断するためスケジュールに容易にアクセスすることを可能にする。しかしながら、プロジェクトチームの各メンバーのスケジュールを生成及び更新することに関するタスクと、各メンバーのすべてのスケジュールを1つのプロジェクトスケジュールに統合することに関するタスクは、簡単なものではない。
プロジェクトスケジュール管理の1つのアプローチは、HTMLエディタを使用して、すべてのスケジュールを手作業により生成することに関するものである。プロジェクトマネージャは、主要なプロジェクトタスクを表示するプロジェクトスケジュール全体を生成することができる。プロジェクトタスクは、いくつかのサブタスクに分割可能であり、これらのサブタスクが非公式にプロジェクトチームの各メンバーに割当て可能である。その後、プロジェクトチームの各メンバーは、個別のメンバースケジュールの形式により統一されていないリスクはあるが、メンバースケジュールを生成することが可能である。すべてのメンバーのスケジュールから、プロジェクトマネージャは当該プロジェクトスケジュールに関するすべてのサブタスクスケジュールを集計し、全体的なプロジェクトスケジュールを更新することが可能となる。さらに、すべてのスケジュールは、各タスクのすべてのスケジュールの履歴を維持することが可能である。小さなグループでは、スケジューリングは退屈なものである。大きなグループでは、スケジューリングは、特にプロジェクトタスクスケジュールによるすべてのサブタスクスケジュールの集計は、複雑かつ退屈なものである。
プロジェクトスケジュール管理の他のアプローチは、ネットワークベースプロジェクトスケジュール管理システムを介し相互依存した各プロセスを自動化することに関する。例えば、手続き型のコンピュータプログラミング言語が、ネットワークベースプロジェクトスケジュール管理システムを開発するのに利用可能である。このような自動化されたシステムでは、グローバルファンクションがプロジェクトスケジュール管理システムのすべてのタスクを実行可能である。しかしながら、当該システムの各機能を変更又は訂正することは、プログラムにおいて変更が必要となる部分を特定するなど、困難な問題を生じさせる可能性がある。さらに、システムの一部の変更はシステムの他の部分に影響を与える可能性があり、正しく実装されない場合には、システムの機能を中断させる可能性がある。さらに、システムに対するグローバル変更の実装やシステムに対するコンポーネントの追加が各コードモジュールへの変更又は新たなコードの開発を必要とする可能性がある場合、複数のエディタページなど同様のシステムコンポーネント及び機能に対して、個別のコードが開発される必要が生ずるかもしれない。
本セクションで説明されたアプローチは、求めることが可能であるが、必ずしも以前に想到又は追求されてきたアプローチである必要はない。特段の記載がない場合、本セクションにおいて説明されるアプローチの何れも単に本セクションに含めることによって従来技術とみなされると考えられるべきでない。
本発明の課題は、クライアント・サーバベースのプロジェクトスケジュール管理システムによりプロジェクトスケジュールを効果的に管理するための技術を提供することである。
より詳細には、本発明は、プロジェクトタスク割当てエディタ、プロジェクトスケジュールエディタ及びメンバースケジュールエディタのウェブシステムのモジュール的実現のためのシステム及び方法に関する。すべてのエディタの上記実現は、新たなエディタの以降における利用を可能にする設計パターンに従う。当該実現は、表示用のエディタを生成し、ユーザとのセッション中にエディタを管理及び維持し、データベースにエディタの情報を投入し、タスク割当て又はスケジュールについてウェブページを生成するためのシステム独立した各モジュールを利用する。また、当該実現は、エディタにアクセス、表示及び管理するウェブページと、データベースにエディタの情報を投入するウェブページとモジュールを統合し、タスク割当て又はスケジュールのためのウェブページを生成する。
クライアント・サーバベースプロジェクトスケジュール管理システムにおけるプロジェクトスケジュールの管理は、クライアントとサーバのそれぞれにより実行される機能とそれらの間の通信に関する。実施例によると、スケジュール管理システムに係るエディタを閲覧するリクエストを受信することに応答して、サーバはデータベースからのスケジュールに関する情報にアクセスする。その後、サーバは当該情報をエディタに表示し、クライアントによりエディタを管理するためのクライアントにより実行可能なコードを生成し、クライアントに転送する。これにより、クライアントは、エディタに関連して抽出された情報を表示し、エディタを介しユーザから入力されるデータを管理及び維持するため、サーバにより生成されたコードを実行することが可能となる。
実施例によると、クライアントがエディタを介し入力データを受信すると、クライアントは、サーバにより生成されたクライアントにより実行可能なコードの一部を実行することによって、当該情報を管理及び維持する。ある時点において、クライアントはデータベースに格納するため、この新たな情報をサーバに転送する。以降においてクライアントがエディタに係るウェブページをリクエストすることに応答して、サーバはデータベースからの該当するエディタに固有の情報にアクセスし、抽出した情報をエディタに係るウェブページに表示するためのさらなるクライアントにより実行可能なコードを生成する。当該情報及びコードは、ウェブページに情報を表示するためクライアントに転送される。
実施例によると、サーバ動作は、サーバによるPHP(Hyertext Preprocessor)スクリプトコードの実行に基づき、クライアント動作は、サーバにより生成されたJavaScriptコードのクライアントによる実行に基づく。
実施例によると、ネットワークベースプロジェクトスケジュール管理システムにおけるデータベースクエリの自動生成は、リクエストに係る特定のエディタに関連した特定の“コンスタントクエリ”文字列をプロジェクトスケジュール管理システムから特定することに関する。コンスタントクエリ文字列は1以上のプレースホルダー文字列を有し、各プレースホルダー文字列は、データベースに送信するためのデータベースクエリを生成するため、プレースホルダー文字列が何れの変数値と置換されるか特定する。データベースクエリは、何れかのプレースホルダー文字列を対応する変数値と置換することによって自動生成され、これにより、生成されたクエリはデータベースに送信され、結果を返すことが可能となる。さらに、“プレースホルダー文字列のための定数”が、何れかの埋め込まれたプレースホルダー文字列をコンスタントクエリ文字列から検索し、当該プレースホルダー文字列を置換するための適切な値を特定するのに役立つよう利用されてもよい。プレースホルダー文字列を置換するのに使用される値は、ユーザエディタセッション及び/又はデータベースから取得されてもよい。実施例によると、コンスタントクエリ文字列は、プロジェクトスケジュール管理システムの各エディタコンポーネントの基本的特徴に係るクラスパッケージにおいて定義される。
実施例によると、プロジェクトスケジュールシステムにおけるスケジュールタスクの管理は、スケジュール情報が格納されているテーブルの行に影響を与えるイベントに応答することに関し、テーブルの各行はプロジェクトスケジュールに係るタスクに対応し、プロジェクトスケジュールシステムに係るエディタの各要素に対応する各値を格納する。このようなイベントに応答して、影響を受けた行に対応するクラスオブジェクトが、当該イベントに基づきエディタの各要素に対応する各値を操作する。エディタの各要素はクラスオブジェクトの属性として構成されているため、クラスオブジェクトは、これらの要素に対応し、イベントに基づきクラスの属性値を直接操作可能なオブジェクト属性に直接アクセス可能である。このような属性の操作は、属性の表示を変更しうる属性値の変更を含むかもしれない。
本発明によると、クライアント・サーバベースのプロジェクトスケジュール管理システムによりプロジェクトスケジュールを効果的に管理するための技術を提供することが可能となる。
クライアント・サーバベースのプロジェクトスケジュール管理システムによりプロジェクトスケジュールを管理するための技術が記載される。これらの技術は、主としてソフトウェア開発プロジェクトを参照して説明されるが、当業者は、本発明の効果がまた、他の開発プロジェクトに当該技術を適用するときにも利用可能であると認識すべきである。以下では、説明のため多数の具体的詳細が、本発明の完全なる理解を提供するため与えられる。しかしながら、本発明はこれらの具体的詳細なしに実現可能であるということは明らかであろう。他の例では、本発明を不必要に不明りょうにすることを回避するため、周知の構成及び装置はブロック図により示される。
[タスク割当てエディタ]
図1Aは、本発明の実施例によるタスク割当てエディタの画面図である。タスク割当てエディタ102は、ユーザがプロジェクトにおいて完了されるべきプロジェクトタスクを作成するのを支援する。いくつかの組織では、組織に関連して実行されるすべてのプロジェクトに共通したデフォルトプロジェクトタスクが存在する。これらのプロジェクトタスクには、プロジェクトメンバーに割り当てられるサブタスクが関連付けされる。典型的には、プロジェクトマネージャが、プロジェクトメンバーに各タスクを設定及び割り当てる。プロジェクトマネージャは、このタスク割当てエディタ102を利用して、プロジェクトのプロジェクトタスクを設定し、各プロジェクトタスクについてサブタスクを生成し、これらサブタスクをメンバーに割り当てることが可能である。プロジェクトマネージャがタスクの追加及び割当てをしている間、タスク割当てに関する情報は、タスク割当てエディタ102に格納及び維持される。マネージャがタスク割当てエディタ102を用いてセッションを完了すると、タスク割当て情報がデータベースにわたされ、格納され、維持される。
ユーザが図1Aのタスク割当てエディタ102の“終了”ボタンを選択することに応答してなど、タスク割当てセッションが完了すると、タスク割当てウェブページ104が、各プロジェクトメンバーに割り当てられるタスクを表示するため、ウェブサーバにおいて自動生成される。図1Bは、本発明の実施例によるタスク割当てウェブページのサンプルの画面図である。タスク割当てエディタ102を介し入力及び編集されるタスク及びタスク割当て情報は、ウェブブラウザに表示される際、ウェブページにある形式により表示される。すべてのタスクとタスクの割当ては、好ましくは、各行がタスクに対応し、タスク割当てエディタ102とタスク割当てウェブページ104に表示される1以上のデータベーステーブル内に格納される。
一実施例によると、タスク割当てマネージャ102(図1A)は、各種処理を実行するのに利用可能なボタン(“詳細追加”、“上への行の追加”、“下への行の追加”、“削除”及び“終了”など)を含む。“終了”ボタンは、エディタセッションを終了し、データベースに格納及び維持するタスク割当て情報を送信する。その他のボタンは、タスクに対応する行のチェックボックスを選択することによって選択される必要があるタスクに対して各処理を実行する。“詳細追加”ボタンは、マネージャがサブタスクを追加し、プロジェクトメンバーに割り当てることができるように、プロジェクトタスクの下方に行を追加する。“上への行の追加”及び“下への行の追加”ボタンは、マネージャがさらなるプロジェクトタスクを追加できるように、又はさらなるサブタスクを追加及び割り当てできるように、選択されたタスク(プロジェクトタスク又はサブタスク)に対応する行の上下に行を追加する。追加される行数は、“下への行の追加”ボタンの隣の“行数”メニュー選択によって設定される。“削除”ボタンは、選択されたタスクを削除し、プロジェクトからプロジェクトタスクを削除し、又はプロジェクトメンバーへのサブタスクの割当てを削除する。
[プロジェクトスケジュールエディタ]
図2Aは、本発明の実施例によるプロジェクトスケジュールエディタの画面図である。プロジェクトスケジュールエディタ202は、タスク割当てエディタ102(図1A)において作成されたプロジェクトタスクのスケジュールを設定するのに使用される。プロジェクトタスクは、プロジェクトスケジュールエディタ202において作成及びスケジューリングされてもよい。しかしながら、一実施例では、サブタスクはプロジェクトスケジュールエディタ202を使用してプロジェクトメンバーに割り当てるために、プロジェクトタスクに追加することはできない。おそらく、プロジェクトマネージャは、タスク割当てエディタ102の後にプロジェクトスケジュールエディタ202を使用するであろう。マネージャは、プロジェクトスケジュールエディタ202を使用して、タスク割当てエディタ102に追加された主要なプロジェクトタスクの初期的なプロジェクトスケジュールを設定することができる。プロジェクトマネージャがタスクを追加及びスケジューリングしながら、プロジェクトタスクのスケジューリングに関する情報がプロジェクトスケジュールエディタ202に格納及び維持される。マネージャがプロジェクトスケジュールエディタセッションを終了すると、プロジェクトタスクのスケジュール情報がデータベースにわたされ、格納され、維持される。
ユーザが図2Aのプロジェクトスケジュールエディタ202の“終了”ボタンを選択することなどに応答して、プロジェクトスケジュールセッションが終了すると、プロジェクトスケジュールウェブページ204は、プロジェクトスケジュールのテーブルを表示するため、ウェブサーバにおいて自動生成される。各プロジェクトメンバーのスケジュールがプロジェクトサブタスクについて作成及び/又は更新される場合、プロジェクトスケジュールエディタ202は、すべてのサブタスクスケジュールと共に各プロジェクトタスクスケジュールを表示する。プロジェクトスケジュールエディタ202は、サブタスクをそれを割り当てられたプロジェクトメンバーと共に表示する。エディタセッションを終了することによって、又は図2Aのプロジェクトスケジュールエディタ202の“併合”を選択することによって、各プロジェクトタスクのすべてのサブタスクスケジュールが、プロジェクトタスクのスケジュールを更新するため自動的に併合又は集計され、プロジェクトタスクスケジュールがデータベースにおいて更新される。
図2Bは、本発明の実施例によるプロジェクトスケジュールウェブページのサンプルの画面図である。プロジェクトスケジュールウェブページ204は、タスク又はサブタスクが割り当てられたメンバーと共に、プロジェクトタスク及びそれのサブタスクのスケジュールを表示するため生成される。プロジェクトスケジュールウェブページ204は、プロジェクトチームがタスクのスケジュールにおいて生じた変更を確認することができるように、各プロジェクトタスク及びサブタスクの以前のすべてのスケジュール(以前の日付の取消線などと共に)を表示する。プロジェクトスケジュールエディタ202を介し入力及び編集されたプロジェクトスケジュール情報は、ウェブブラウザに表示される際にウェブページの形式により表示される。すべてのプロジェクトタスクのスケジュール及びサブタスクのスケジュールは、好ましくは、各行がタスクに対応し、プロジェクトスケジュールエディタ202及びプロジェクトスケジュールウェブページ204に表示される1以上のデータベーステーブルに格納される。
一実施例によると、プロジェクトスケジュールエディタ202(図2A)は、各種処理を実行する各ボタン(“上への行の追加”、“下への行の追加”、“削除”、“併合”及び“終了”)を含む。“終了”及び“併合”ボタンは、プロジェクトスケジュールエディタセッションを終了し、データベースに格納及び維持されるプロジェクトタスクスケジュール情報を送信する。“併合”ボタンは、プロジェクトスケジュールがデータベースにおいて更新されるように、各メンバースケジュールをプロジェクトスケジュールに併合する。“併合”ボタンは、プロジェクトスケジュールエディタを更新されたタスクスケジュールによるプロジェクトスケジュールウェブページに再表示する。その他のボタンは、タスクに対応する行のチェックボックスを選択することによって選択されるタスクに対する各処理を実行する。これらの処理は、プロジェクトタスクに対してのみ実行可能であり、メンバーに割り当てられたサブタスクに対しては実行できない。“上への行の追加”及び“下への行の追加”ボタンは、マネージャがさらなるプロジェクトタスクを追加し、タスクのスケジュールを設定することができるように、選択されたプロジェクトに対応する行の上下に行を追加する。追加される行数は、“下への行の追加”ボタンの隣の“行数”メニュー選択によって設定される。“削除”ボタンは、選択されたプロジェクトタスクを削除する。
[メンバースケジュールエディタ]
図3Aは、本発明の実施例によるメンバースケジュールエディタの画面図である。メンバースケジュールエディタ302(“個人スケジュールエディタ”とも呼ばれる)は、各プロジェクトメンバーのスケジュールを作成するのに使用される。一実施例によると、メンバースケジュールエディタ302は、メンバースケジュールが以前に作成されていた場合、終了していないタスクのみを表示する。メンバーのタスクは、プロジェクトサブタスク及び/又はプロジェクトに関連しないタスクである可能性がある。メンバーは、メンバースケジュールエディタ302を介しスケジュールを設定し、スケジュールを変更し、タスクの結果を更新することが可能である。メンバーの各タスクは、タスクの詳細をスケジューリングするため、より低いレベルのタスクに分解可能である。より低いレベルのタスクの追加又は変更は、より上位のレベルのタスクのスケジュールに影響を与えるかもしれない。従って、より上位のレベルのタスクスケジュールは、“更新”ボタンが選択されると更新される。メンバーがタスクスケジュールを追加又は変更しながら、タスクのスケジューリングに関する情報がメンバースケジュールエディタ302に格納及び維持される。メンバーがメンバースケジュールエディタ302のセッションを終了すると、タスクスケジュール情報がデータベースにわたされ、格納及び維持される。図3Aは、ドロップダウンリストにより割り当てられたタスクを示す。
ユーザが図3Aのメンバースケジュールエディタ302の“終了”ボタンを選択などすることに応答して、メンバースケジュールセッションが終了すると、メンバースケジュールウェブページ304(図3Bの画面において“タスクスケジュール”とラベル付けされた)が、メンバースケジュールのテーブルを表示するため、ウェブサーバにおいて自動生成される。図3Bは、本発明の実施例によるメンバーのスケジュールウェブページのサンプルの画面図である。メンバースケジュールエディタ302を介し入力及び編集される個人スケジュール情報は、ウェブブラウザに表示される際にウェブページの形式により表示される。すべてのタスクのスケジュールは、各行がタスクに対応するテーブル内に表示される。メンバースケジュールウェブページ304は、プロジェクトチームがタスクのスケジュールに生じた変更を確認することができるように、各プロジェクトタスク及びサブタスクの以前のスケジュール(以前の日付の取消線などと共に)を表示する。
メンバースケジュールエディタ302では、各種処理を実行するのに使用されるボタン(“詳細追加”、“最も下への行の追加”、“上への行の追加”、“下への行の追加”、“削除”、“更新”及び“終了”)がテーブルの近傍に配置される。“終了”ボタンは、メンバースケジュールエディタセッションを終了し、データベースに格納及び維持されるタスクスケジュール情報を送信する。“更新”ボタン及び“最も下への行の追加”ボタンを除いて、その他のボタンは、タスクに対応する行のチェックボックスを選択することによって選択されるタスクに対する処理を実行する。“詳細追加”ボタンは、メンバーがタスクのさらなる詳細を与えるため、タスクにサブタスク(1レベル下位のタスク)を追加できるように、タスクの下方に行を追加する。“上への行の追加”及び“下への行の追加”ボタンは、メンバーが同一レベルにおいてスケジュールにさらなるタスクを追加できるように、選択されたタスクに対応する行の上下に行を追加する。追加される行数は、“下への行の追加”ボタンの隣の“行数”メニュー選択によって設定される。“削除”ボタンは、選択されたタスクを削除する。“削除”ボタンはまた、タスクを削除し、メンバーのスケジュールからタスクに係る下位レベルのすべてのタスクを削除する。“最も下への行の追加”ボタンは、追加される行数が“行数”メニュー選択において設定されるスケジュールの最も下に1以上の最も高いレベルの行を追加する。“更新”ボタンは、下位レベルのタスクスケジュールにより上位レベルのすべてのタスクスケジュールを更新し、新たな日付を表示するため、メンバースケジュールエディタ302の表示を更新する。
タスクのスケジュール情報は、プランの開始及び終了日と、実際の開始及び終了日とを有する。プランの日付と実際の日付は、メンバースケジュールエディタ302におけるタスクについて設定及び変更可能である。しかしながら、タスクが最初にスケジューリングされるときには、プランの日付のみがプロジェクトスケジュールエディタ202(図2A)のプロジェクトタスクに対して設定可能でない。併合時に、プランの日付は自動更新され、実際の日付はプロジェクトサブタスクのプランの日付と実際の日付のメンバーのスケジュールの情報に基づき、自動設定される。図示しないが、プロジェクトスケジュールエディタ202は、プランされた日付が変更可能となるように、変更することができる。しかしながら、プロジェクトタスクのプランされた日付においてどのような変更がなされても、それはプロジェクトサブタスクのメンバーのスケジュールのプランされた日付を併合することによって上書きされる。データベースの情報は、プロジェクトマネージャがプロジェクトエディタセッションを終了したとき、又はプロジェクトスケジュールエディタ202の“併合”ボタンを介し、プロジェクトタスクの実際の日付を更新するのに使用される。
図4は、本発明の実施例による各エディタ(タスク割当て、プロジェクトスケジュール、メンバースケジュール)の1つにプロジェクトメンバーがログオンするためのログインウェブページの画面図である。メンバーはプロジェクト番号とメンバー名を入力し、適切なエディタを選択し、その後にエディタにアクセスするためこの情報を送信する。プロジェクトスケジュール管理システムは、この入力を確認し、当該メンバーがプロジェクトの有効なメンバーであるか判断し、選択されたエディタに対するアクセス権を有する。そうでない場合、メンバーはエディタへのアクセスを拒絶される。より強固なセキュリティのため、ログインウェブページ及びエディタは、セキュアHTTP(HTTPSなど)を介し実行可能であり、ログインページはログイン前にパスワードを要求することができる。
[プロジェクトスケジュール管理システム]
図5は、本発明の実施例が実現可能な動作環境を示す図である。図示された動作環境は、ここに記載されるプロジェクトスケジュール管理システムの全体的なシステム構成を説明する。この一例となる動作環境は、複数のワークステーション、1以上のウェブサーバ及び1以上の付属するデータベースから構成され、これらすべては、通信のためソフトウェア開発ネットワークに直接的に又は間接的に接続される。
一般に、ウェブサーバ507及び530は、エディタの表示及び管理のためのリソースを有する。ウェブサーバ507及び530は、データ508、538などのタスク割当て及びタスクスケジュール情報を格納、維持及び管理するため、それぞれデータベース506及び536とやりとりする。2つのウェブサーバと2つのデータベースの図示は、単なる一例に過ぎない。すなわち、ここに記載されるようなプロジェクトスケジュール管理システムにおいて使用されるウェブサーバとデータベースの個数は、実現形態に応じて異なるかもしれない。コンピュータワークステーション501と502のウェブブラウザは、エディタを表示するため、ウェブサーバ507及び530のリソースにアクセスする。プロジェクトメンバー又はマネージャは、ネットワーク500(LAN又はWAN)を介しエディタにアクセス可能である。プロジェクト管理システムは、プロジェクト、部門、組織レベルなど、組織内の各レベルにおいてプロジェクトを管理するのに利用可能である。
ワークステーション501、502は、典型的には、1以上のブラウザを有する図35のコンピュータシステム3500により示されるように構成されたコンピュータシステムであり、例えば、技術者/開発者が製品開発プロジェクトに係るタスクを終了するため使用される。このようなタスクの関連する非限定的な具体例として、プロジェクトの開始、タスクスケジュールの準備及び維持、ソフトウェアアーキテクチャの設計、仕様書の作成、ソフトウェアコードの作成、ソフトウェアコードの実装及びテスト、各種タスクプロダクトの検査などがあげられる。さらに、プロジェクトマネージャは、プロジェクトの進捗状況を確認及び管理するための情報にアクセスするため、ワークステーション501、502を利用する。開発者及びマネージャは、アクセスポイント524を介しウェブサーバ507、530、データベース506、536、携帯装置20及びラップトップ522など、その他の接続されたコンポーネントにネットワーク500を介し通信を送信する。ウェブサーバ507及び530からウェブページにアクセス可能なワークステーション501、502、携帯装置520及びラップトップ522は、ブラウザのエディタを管理するためウェブページが有するJavaScriptを処理可能である。ブラウザは、JavaScriptを処理することが可能である。
ウェブサーバ507、530は、適切なプロトコル(HTTP(Hypertext Transfer Protocol)、TCP/IP(Transmission Control Protocol/Internet Protocol)など)を利用して、ワークステーション501、502において開発者やマネージャなどのユーザにウェブページを構成するファイル(HTML(Hypertext Markup Language)ファイル、XML(eXtensible Markup Language)ファイルなど)を提供するコンピュータハードウェア及びソフトウェアの組み合わせである典型的なウェブサーバを示す。非限定的な具体例として、PHPスクリプトを実行するためのモジュールを有するApacheウェブサーバが、ウェブサーバ507及び530のウェブサーバアプリケーションとして利用可能である。一般に、開発プロジェクトのライフサイクル期間中に交換及び管理される情報の大部分は、ネットワーク500を介しウェブサーバ507、530により提供される。さらに、ここに記載される技術の各特徴は、本発明の実現がこのような実現形態に限定されるものではないが、ウェブサーバ507、530上で実現及び実行されるかもしれない。これらの技術は、ワークステーション501、502などの他の何れかの処理システム、又は図35に示されるような同様に構成されたコンピュータシステム上で実現可能である。
データベース506、536は、開発プロジェクトに関連するデータ508、538を格納し、ネットワーク500を介し送信されるクエリを通じてワークステーション501、502における認証された個人による情報へのアクセスを提供する典型的なデータベースを示す。データベース501、502に格納されているデータのタイプは無限であり、非限定的な具体例として、プロジェクト開始フォーム、メンバー及びプロジェクトタスクスケジュール、仕様書、ソフトウェアコード、検査レポート、ウェブページファイル並びに文書ディレクトリ及びインデックスがあげられる。
ネットワーク500は、ワークステーション501、502、ウェブサーバ507、530及びデータベース506、536などの各種接続されたコンポーネントの間の情報の交換を実現するため、パケット交換ネットワークなどの従来のネットワークを示す。ネットワーク500は、企業内に実装される従来技術によるイーサネット(登録商標)、高速イーサネット(登録商標)、トークンリングなどのローカル・エリア・ネットワーク(LAN)や802.11a及び802.11b(IEEE(Institute of Electrical and Electronics Engineers)のワーキンググループにより開発された)などのワイヤレスLANであるかもしれない。さらに、ネットワーク500はまた、VPN(Virtual Private Network)を介したリモートユーザとの通信を実現するため、インターネットなどのワイド・エリア・ネットワーク(WAN)であってもよく、又はLANとWANの組み合わせを表すものであってもよい。さらに、ネットワーク500は、以下に限定されるものではないが、電線若しくはケーブル又は光若しくは無線接続を含む各種媒体を利用して構成可能である。
図6は、本発明の実施例が実現可能な自動化されたスケジューリングシステムのソフトウェアコンポーネントを含む通信アーキテクチャを示す図である。クライアントプロセッサ602はウェブブラウザに対応し、サーバプロセッサ604はウェブサーバ507や530(図5)などのウェブサーバに対応する。プロジェクトメンバー又はマネージャは、ユーザインタフェース601を介しクライアントプロセッサ602とやりとりする。クライアントプロセッサ602は、ログインウェブページ(図4)及び各種エディタウェブページ(図1A、2A、3A)を管理及び維持する。クライアントプロセッサ602は、これらのウェブページにおいて発生するすべてのイベントを処理する。一実施例によると、クライアントプロセッサ602は、HTTPプロトコルを介しサーバプロセッサ604とやりとりする。一実施例によると、クライアントプロセッサ602は、セキュアなHTTPSプロトコルを介しサーバプロセッサ604とやりとりする。
サーバプロセッサ604は、ログインウェブページ(図4)及びエディタウェブページ(図1A、2A、3A)を表示するため、クライアントプロセッサ602に情報を提供する。サーバプロセッサ604はまた、クライアントプロセッサ602がこれらのページにより情報を送信すると、ログイン及びエディタウェブページの情報を処理する。データベース606は、プロジェクト及びタスクスケジューリング情報のレポジトリとなる。サーバプロセッサ604は、データベースにおける情報を取得、追加又は更新するため、データベース606とやりとりする。一実現形態によると、サーバプロセッサ604はデータベース606とやりとりする。しかしながら、他のデータベース及びプロトコルが利用可能である。
[クライアント・サーバインタフェース]
図7は、本発明の実施例によるシステムのクライアントプロセッサとサーバプロセッサとの間のインタフェースを示す図である。HTTP/HTTPS GETリクエストは、クライアントプロセッサ602にホーム、ログイン(図4)、プロジェクトスケジュールエディタ(図2A)、メンバースケジュールエディタ(図3A)及びタスク割当てエディタ(図1A)の各ウェブページをサーバプロセッサ604から取得させる。HTTP/HTTPS POSTリクエストは、クライアントプロセッサ602にログイン(図4)及びエディタウェブページ(図1A、2A、3A)に入力された情報を処理のため、サーバプロセッサ604に送信させる。適用可能なHTTP/HTTPS GETリクエスト及びHTTP/HTTPS POSTリクエストが、以降においてより詳細に説明される。
HTTP/HTTPS GET Project/Dept/Division Home Pageリクエストは、サーバプロセッサ604にそれぞれデパートメント又はディビジョンに係るプロジェクトホームページをクライアントプロセッサ602に対してリターンさせる。ホームページは、スケジュール、タスク割当て及びエディタへのログインのための各ウェブページにリンク及び閲覧するためのリンク(ハイパーリンクなど)を含む。
HTTP/HTTPS GET current project directory/schedule.htmリクエストは、サーバプロセッサ604に図2Bに示されるような現在のプロジェクトのプロジェクトスケジュールを含むウェブページをクライアントプロセッサ602に対してリターンさせる。
HTTP/HTTPS GET current project directory/taskAssignment.htmリクエストは、サーバプロセッサ604に図1Bに示されるような現在のプロジェクトのプロジェクトタスクのタスク割当てを含むウェブページをクライアントプロセッサ602に対してリターンさせる。
HTTP/HTTPS GET project member directory/schedule.htmリクエストは、サーバプロセッサ604に図3Bに示されるような現在のプロジェクトのプロジェクトメンバーのスケジュールを含むウェブページをクライアントプロセッサ602に対してリターンさせる。
HTTP/HTTPS GET login.htmリクエストは、サーバプロセッサ604にエディタ(プロジェクトスケジュール、メンバースケジュール、タスク割当て)の1つにプロジェクトメンバー又はマネージャがログオンすることを可能にするウェブページをクライアントプロセッサ602に対してリターンさせる。メンバー又はマネージャは、プロジェクト、メンバー名及びエディタセッションタイプに関する情報を入力する。図4は、エディタの1つにログインするためのウェブページを示す。
HTTP/HTTPS GET TaskAssignEditor.htmリクエストは、サーバプロセッサ604に現在のプロジェクトについてプロジェクトメンバーに各タスクを割り当てるのに利用されるタスク割当てエディタのウェブページをクライアントプロセッサ602に対してリターンさせる。プロジェクトマネージャは、サーバプロセッサ604がタスク割当てエディタウェブページをリターンする前に、プロジェクトメンバーに各タスクを割り当てるためのアクセス権限を要求する。この権限は、マネージャがログインウェブページ(図4)により情報を送信すると検証される。一実施例によると、TaskAssignEditor.htmは、タスク割当てエディタにイベントを表示、管理及び処理するためのJavaScriptを有する。一実施例によると、TaskAssignEditor.htmは、データベース506、536から情報を取得し、当該情報をJavaScriptにわたすためのPHPスクリプトを有し、これにより、当該情報は図1Aに示されるようなタスク割当てエディタにより表示される。
HTTP/HTTPS GET ProjScheduleEditor.htmリクエストは、サーバプロセッサ604に現在のプロジェクトのプロジェクトスケジュールを作成又は更新するのに利用されるプロジェクトスケジュールエディタのウェブページをクライアントプロセッサ602に対してリターンさせる。プロジェクトマネージャは、サーバプロセッサ604がプロジェクトスケジュールエディタをリターンする前に、プロジェクトスケジュールを作成するためアクセス権限を有する必要がある。この権限は、マネージャがログインウェブページ(図4)により情報を送信すると検証される。一実施例によると、ProjScheduleEditor.htmは、プロジェクトスケジュールエディタのウェブページによりイベントを表示、管理及び処理するためのJavaScriptを含む。一実施例によると、ProjScheduleEditor.htmは、データベース506、536から情報を取得し、当該情報をJavaScriptにわたすためのPHPスクリプトを有し、これにより、当該情報は、図2Aに示されるようなプロジェクトスケジュールエディタに表示される。
HTTP/HTTPS GET MembScheduleEditor.htmリクエストは、サーバプロセッサ604に現在のプロジェクトのプロジェクトメンバーのスケジュールを作成又は更新するのに使用されるメンバースケジュールエディタのウェブページをクライアントプロセッサ602に対してリターンさせる。一実施例によると、スケジュールエディタは、プロジェクトメンバーのスケジュールが以前に作成されていた場合、終了していないタスクのみを表示する。プロジェクトメンバーは、サーバプロセッサ604がこのウェブページをリターンする前に、スケジュールを作成又は編集するための権限を有している必要がある。この権限は、メンバーがログインウェブページ(図4)に情報を送信すると検証される。一実施例によると、MembScheduleEditor.htmは、プロジェクトメンバーのスケジュールエディタにイベントを表示、管理及び処理するためのJavascriptを有する。一実施例によると、MembScheduleEditor.htmは、データベース506、536から情報を取得し、当該情報をJavascriptにわたすためのPHPスクリプトを有し、これにより、情報は、図3Aに示されるようなメンバースケジュールエディタに表示される。
HTTP/HTTPS POST login.htmインタフェースは、クライアントプロセッサ602が各種エディタ(プロジェクトスケジュール、メンバースケジュール、タスク割当て)にアクセス及び表示することを可能にする。このインタフェースは、“送信”ボタンがlogin.htmに対応するウェブページから選択されると呼び出される。login.htmに入力される情報は、サーバプロセッサ604のPostLogin.htmにわたされる。PostLogin.htmは、当該情報を利用してプロジェクトのメンバーを検証し、当該メンバーがリクエストされたエディタへのアクセス権限を有しているか判断する。当該情報が有効でないか、又は当該メンバーがエディタへのアクセス権限を有していない場合、PostLogin.htmは、プロジェクトメンバーがリクエストされたエディタにアクセス不可であるというメッセージをクライアントプロセッサ6092にリターンする。そうでない場合、PostLogin.htmは、エディタの1つに対応するウェブページをリターンする。すなわち、ウェブブラウザは、リクエストされたエディタに対応するウェブページにリダイレクトされる。
HTTP/HTTPS POST PostTaskAssign.htmは、クライアントプロセッサ602がタスク割当てエディタ(図1A)に入力されたすべての情報をサーバプロセッサ604に送信することを可能にする。このインタフェースは、“終了”ボタンがTaskAssignEditor.htmに対応するウェブページから選択されると呼び出される。TaskAssignEditor.htmのエディタに入力された情報は、サーバプロセッサ604のPostTaskAssign.htmにわたされる。PostTaskAssign.htmは、適切なデータベース506、536のタスク割当て情報を追加及び更新する。入力された情報の何れかが有効でない場合、又は当該プロセスが適切なデータベースにアクセス又はクエリするのに失敗した場合、適切なメッセージが表示される。PostTaskAssign.htmはまた、図1Bに示されるようなタスク割当てウェブページを作成する。
HTTP/HTTPS POST PostProjSchedule.htmは、クライアントプロセッサ602がプロジェクトスケジュールエディタ(図2A)に入力されたすべての情報をサーバプロセッサ604に送信することを可能にする。このインタフェースは、“終了”ボタンがProjScheduleEditor.htmに対応するウェブページから選択されると呼び出される。PostProjSchedule.htmのエディタに入力される情報は、サーバプロセッサ604のPostProjSchdule.htmにわたされる。PostProjSchedule.htmは、適切なデータベース506、536のタスクスケジュール情報を追加及び更新する。入力された情報の何れかが有効でない場合、又は当該プロセスが適切なデータベースにアクセス又はクエリすることに失敗した場合、適切なメッセージが表示される。PostProjSchedule.htmはまた、図2Bに示されるようなプロジェクトスケジュールウェブページを作成する。
HTTP/HTTPS POST PostMembSchedule.htmは、クライアントプロセッサ602がプロジェクトメンバーのスケジュールエディタ(図3A)に入力されるすべての情報をサーバプロセッサ604に送信することを可能にする。このインタフェースは、“終了”ボタンがMembScheduleEditor.htmに対応するウェブページから選択されると呼び出される。MembScheduleEditor.htmに入力された情報は、サーバプロセッサ604のPostMembSchdule.htmにわたされる。PostMembSchedule.htmは、適切なデータベース506、536のタスクスケジュール情報を追加及び更新する。入力された情報の何れかが有効でない場合、又は当該プロセスがデータベースにアクセス又はクエリすることに失敗した場合、適切なメッセージが表示される。PostMembSchedule.htmはまた、図3Bに示されるようなメンバーのウェブページを作成する。
各種エディタのウェブページ(TaskAssignEditor.htm、ProjScheduleEditor.htm及びMembScheduleEditor.htm)は、非限定的な一実施例によるJavascript又はPHPスクリプトを含むファイルを有する。ここに記載される各種機能を実行するのに使用されるスクリプト言語は、実現形態に応じて可変的なものであるかもしれない。ウェブブラウザ(クライアントプロセッサ602など)がエディタのウェブページをリクエストすると、エディタウェブページ及びJavascriptに対応するすべてのファイルがウェブブラウザにわたされ、これにより、ウェブブラウザはJavascriptを処理する。しかしながら、PHPスクリプトのファイルはウェブブラウザにはわたされない。PHPスクリプトは、図5のウェブサーバ507、530などのウェブサーバにおいて処理され、PHPスクリプトがウェブページに書き込んだもののみがウェブブラウザにわたされる。
図8は、本発明の実施例によるログインウェブページを利用してプロジェクトメンバー又はマネージャがエディタの1つにログオンするためのシーケンス図を示す。この図は、エディタがメンバー又はマネージャに表示される前に、システムの各コンポーネントの間でわたされる情報を示す。ログインウェブページ(図4)上で発生するすべてのイベントを処理するため、クライアントプロセッサ602の内部において処理が実行される。ログインページに入力された情報を検証し、エディタのメンバーのアクセス権限を検証するため、サーバプロセッサ604の内部において処理が実行される。サーバプロセッサ604は、アクセス権限を検証するため、適切なデータベース506又は536から情報を取得する。プロジェクトメンバー又はマネージャは、図9〜11に示されるシーケンスを有するエディタの何れかに入る前に、このプロセスを実行する。
[各エディタのシーケンス図]
図9(タスク割当てエディタ)、図10(プロジェクトスケジュールエディタ)及び図11(メンバースケジュールエディタ)は、ウェブブラウザにおいて各エディタを表示し、セッションが終了するとエディタに情報を掲示するためのシーケンスを示す。すべてのエディタは、同様のシーケンスに従う。クライアントプロセッサのウェブブラウザのエディタの初期表示を取得するため、適切なタスク割当て/スケジュール情報は、サーバプロセッサのデータベースから取得される(PHPスクリプトを使用して)。サーバプロセッサは、サーバプロセッサが(PHPスクリプトを使用して)生成し、クライアントプロセッサの初期エディタを表示するコードと共に、クライアントプロセッサがエディタを管理及び維持するため実行可能なコード(JavaScript)を含むウェブページをわたす。サーバプロセッサは、それがデータベースから取得したタスク割当て/スケジュール情報をクライアントプロセッサにわたすためのコードを生成する。
図9は、本発明の実施例によるタスク割当てエディタによるセッションにおけるプロジェクトマネージャのシーケンス図を示す。クライアントプロセッサ602がTaskAssignEditor.htmをリクエストすると、TaskAssignEditor.htmファイルとJavascriptを有する含まれるすべてのファイル(“.js”の拡張子により示される)が、サーバプロセッサ604からクライアントプロセッサ602にわたされる。PHPスクリプトを有する含まれるファイル(“.php”拡張子により示される)は、サーバプロセッサ604において処理される。PHPスクリプトは、適切なデータベース506又は536からタスク割当て情報を取得し、情報をクライアントプロセッサ602にわたすため、TaskAssignEditor.htmのウェブページにJavascriptを書き込む。クライアントプロセッサ602は、対応するタスク割当てエディタを表示するため、それが受信したすべてのファイルのJavascriptを処理する。プロジェクトマネージャとタスク割当てエディタとの間のすべてのやりとりは、タスク割当てエディタを管理、維持及び更新するため、Javascriptにより処理される。プロジェクトマネージャがセッションを終了すると(“終了”を選択するなど)、タスク割当てエディタのすべてのタスク割当て情報は、PostTaskAssign.htmを介しクライアントプロセッサ602からサーバプロセッサ604にわたされる。サーバプロセッサ604は、適切なデータベースの情報を追加又は更新することによって、情報を処理する。データベースのタスク割当て情報を利用して、サーバプロセッサ604は、図1Bに示されるようなプロジェクトタスク割当てのためのウェブページを自動生成する。
図10は、本発明の実施例によるプロジェクトスケジュールエディタによるセッションにおけるプロジェクトマネージャのためのシーケンス図を示す。クライアントプロセッサ602がProjScheduleEditor.htmをリクエストすると、ProjScheduleEditor.htmファイルとJavascriptを有する含まるすべてのファイルが、サーバプロセッサ604からクライアントプロセッサ602にわたされる。PHPスクリプトを有する含まれるファイルは、サーバプロセッサ604において処理される。PHPスクリプトは、適切なデータベースからプロジェクトタスクスケジュール情報を取得し、情報をクライアントプロセッサ602にわたすため、ProjScheduleEditor.htmのウェブページにJavascriptを書き込む。クライアントプロセッサ602は、プロジェクトスケジュールエディタを表示するため、それが受信したファイルのJavascriptを処理する。プロジェクトマネージャとプロジェクトスケジュールエディタとの間のすべてのやりとりは、エディタを管理、維持及び更新するため、Javascriptにより処理される。マネージャがセッションを終了すると(“終了”を選択などして)、プロジェクトスケジュールエディタのすべてのプロジェクトタスクスケジュール情報は、PostProjSchedule.htmインタフェースを介しクライアントプロセッサ602からサーバプロセッサ604にわたされる。サーバプロセッサ604は、適切なデータベースの情報を追加又は更新することによって、情報を処理する。サーバプロセッサ604はまた、プロジェクトスケジュールによりプロジェクトメンバーのスケジュールを自動集計し、データベースのプロジェクトスケジュールを追加又は更新する。データベースのプロジェクトタスクスケジュール情報を利用して、サーバプロセッサ604は、図2Bに示されるようなプロジェクトスケジュールのウェブページを自動生成する。
“併合”ボタンの選択に応答したシステムの動作は、“終了”ボタンの選択に対するものと同一である。両方のボタンは、(a)プロジェクトスケジュールエディタからの情報による適切なデータベースの追加及び更新、(b)プロジェクトスケジュールによるメンバーの各スケジュールの集計、(c)データベースのプロジェクトスケジュールの追加及び更新、及び(d)プロジェクトスケジュールのウェブページの作成を引き起こす。さらに、“併合”は、ProjScheduleEditor.htmを再びリクエストすることによって、更新されたプロジェクトスケジュールによるプロジェクトスケジュールエディタを再表示する。
図11は、本発明の実施例によるプロジェクトメンバースケジュールエディタ(すなわち、メンバースケジュールエディタ)によるセッションにおけるプロジェクトメンバーのためのシーケンス図を示す。クライアントプロセッサ602がMembScheduleEditor.htmをリクエストすると、MembScheduleEditor.htmファイルとJavascriptを有する含まれるすべてのファイルが、サーバプロセッサ604からクライアントプロセッサ602にわたされる。PHPスクリプトを有する含まれるファイルは、サーバプロセッサ604において処理される。PHPスクリプトは、適切なデータベースからメンバータスクスケジュール情報を取得し、情報をクライアントプロセッサ602にわたすため、MembScheduleEditor.htmのウェブページにJavascriptを書き込む。クライアントプロセッサ602は、メンバースケジュールエディタを表示するため、それが受信したファイルのJavascriptを処理する。プロジェクトメンバーとメンバースケジュールエディタとの間のやりとりは、メンバースケジュールエディタを管理、維持及び更新するため、Javascriptにより処理される。メンバーがセッションを終了すると(“終了”を選択などして)、メンバースケジュールエディタのメンバータスクスケジュール情報は、PostMembSchedule.htmインタフェースを介しクライアントプロセッサ602からサーバプロセッサ604にわたされる。サーバプロセッサ604は、適切なデータベースの情報を追加又は更新することによって、情報を処理する。データベースのメンバータスクスケジュール情報を利用して、サーバプロセッサ604は、図3Bに示されるようなメンバースケジュールのウェブページを自動生成する。
[データベーススキーマ]
図12は、本発明の実施例によるプロジェクト及びプロジェクトメンバーのタスク割当て及びタスクスケジュール情報を格納及び管理するのに使用されるデータベーステーブルのスキーマを示す。当該テーブルは、タスク割当て、プロジェクトタスクのスケジュール、及び各プロジェクトメンバーのスケジュールに関する情報を維持する。これらのテーブルは、タスク割当て、プロジェクトスケジュール及びメンバーのスケジュールのすべてが関連するように、構成及びリンクされる。
TaskAssignmentテーブル1202は、プロジェクトのプロジェクトタスクと対応するサブタスクとを格納する。TopLevelProjectTaskテーブル1204は、TaskAssignmentテーブル1202にあるプロジェクトタスクのスケジュールを格納する。Level1MemberTaskテーブル1206は、TaskAssignmentテーブル1202に割り当てられているメンバータスクのスケジュールを格納し、TopLevelProjectTaskテーブル1204の対応するプロジェクトタスクのスケジュールにリンクする。これらのテーブルの間のリンクは、プロジェクトスケジュールによるメンバースケジュールの自動集計を可能にする。Level1MemberTaskテーブル1206はまた、何れのプロジェクトタスクにも関連しないメンバータスクのスケジュールを格納する。LevelXMemberTaskテーブル(ただし、X=1,2,3,4)及びMemberTasksテーブル1208は、メンバーの各種タスクレベルの間のリンクを格納及び管理する。下位レベルのタスクは、上位レベルのタスクのより詳細なタスクである。これらのテーブルの構成は、メンバーのスケジュールを維持する。ProjectTeamテーブル1210は、プロジェクトメンバーに関する情報を含む。プロジェクトメンバーのプロジェクトメンバー情報は、(a)各種エディタへのアクセス権限を決定するための役割、(b)メンバースケジュールウェブページが格納される場所を決定するためのディレクトリ、及び(c)各種レベルにおけるメンバータスクの識別子を決定するのに使用されるIDを含む。
ログインプロセスは、ProjectTeamテーブル1210の情報を利用して、エディタを表示する前にリクエストされたエディタへのアクセス権限を決定する。タスク割当てエディタは、DefaultTasks1212、TaskAssignment1202、TaskAssignmentHistory1218、TopLevelProjectTask1204及びMemberTasks1208の各テーブルの情報を利用及び/又は更新する。プロジェクトスケジュールエディタは、DefaultTasks1212、TaskAssignment1202、TopLevelProjectTask1204、MemberTasks1208及びLevel1MemberTask1206の各テーブルの情報を利用及び/又は更新する。メンバースケジュールエディタは、ProjectTeam1210、TaskAssignment1202、TopLevelProjectTask1204、MemberTasks1208及びLevelXMemberTaskの情報を利用及び/又は更新する。
図12に示され、ここに記載されるプロジェクトスケジュール管理システムの実施例に使用される各種テーブルが以下に示される。しかしながら、図12を参照して説明されたテーブルの個数及び構成は、実現形態に応じて可変的なものであるかもしれない。
DefaultTasksテーブル1212:このテーブルは、典型的にはすべてのプロジェクトのタスクであるタスクの名称を含む。ソフトウェア開発プロジェクトに関して、デフォルトタスクの一部の例として、Project Plans、Requirements及びTop Level Designがあげられる。
ProjectTeamテーブル1210:このテーブルは、プロジェクトのプロジェクトメンバーに関する情報を含む。sMemberLabelは、プロジェクトスケジュールを表示する際にプロジェクト番号を特定するのに使用される2〜4文字の文字列であり、図1A及び1Bに示されるようなプロジェクトタスクと関連するメンバータスクを示す。一実施例では、プロジェクトメンバーのイニシャルが、sMemberLabelに使用される。nMemberRoleは、プロジェクトメンバーの役割を示すのに使用される番号である。例えば、プロジェクトマネージャは1であり、プロジェクトリーダーは2であり、プロジェクトアドミニストレータは3であり、プロジェクトメンバーは4である。その役割は、誰がエディタにアクセスできるか示すことである。例えば、役割番号が1であるプロジェクトメンバーは、すべてのエディタにアクセス可能である。しかしながら、役割番号が4であるプロジェクトメンバーは、メンバーのスケジュールエディタにのみアクセス可能である。システムは、何れの役割番号が各エディタにアクセス可能であるか決定するよう構成可能である。sMemberDirectoryは、プロジェクトチームがメンバーのスケジュールを閲覧できるように、メンバースケジュールのHTMLファイルが格納される場所を決定するのに使用される。
nMemberTaskIDは、当該メンバーのタスクのIDを決定するため使用されるプロジェクトメンバーに割り当てられた番号である。一実施例によると、nMemberTaskIDは、タスクのスタートIDとして使用される。プロジェクトチームのサイズに応じて、IDは小さなチームにはMOD10(1,2,...,9)とされ、大きなチームにはMOD100(1,2,...,99)又はそれ以上とすることができる。タスクIDは、MODのインクリメントである。例えば、プロジェクトメンバー“test1”のnMemberTaskIDが1である場合、test1のタスクのタスクIDは11,21,31,...(大きなチームについては、101,201,301,...)となるであろう。タスクIDは、タスクの一部の名前が同じであったとしても、プロジェクトメンバーのタスクを一意的に特定する。タスクIDはまた、すべてのレベルにおいてタスクを一意的に特定する。nLevelXMaxTaskIDは、プロジェクトメンバーの異なるレベルのタスクについてこれまで使用されてきた最も高いタスクIDを維持するため使用される番号である。これらの番号は、メンバーのスケジュールエディタセッションにおいて追加されるタスクのタスクIDを決定するのに使用されるスタートIDを提供する。これらの値は、各エディタセッションの後に抽出及び更新される。nLevelXMaxTaskIDの値を除いて、他のエントリの値はプロジェクトの開始前に設定される必要がある。
TaskAssignmentテーブル1202:このテーブルは、プロジェクトのプロジェクトメンバーに割り当てられるプロジェクトタスクとそれのサブタスクに関する情報を含む。sTaskNameは、タスクの名称について使用され、nProjectTaskIDは、タスクに係るIDである。プロジェクトスタートタスクIDは0であり、このため、それのタスクのIDはMOD(小さなチームについては、10,20,30,...)のインクリメントとなる。sLevelTaskNameは、プロジェクトタスクに係るサブタスク(メンバータスク)の名称に使用され、nLevel1TaskIDは、サブタスクに係るIDについて使用される。sMemberLabelは、サブタスクに割り当てられたプロジェクトメンバーを特定するのに使用される。bIsObsoletedは、タスクがプロジェクトから取り除かれたか示すのに使用される。タスクがスケジュールから削除されても、当該タスクに関する情報はデータベースに維持される。sTaskName、nProjectTaskID、sLevel1TaskName及びsMemberLabelの各値が、タスク割当てエディタセッションを通じてTaskAssignmentテーブル1202に追加可能である。プロジェクトスケジュールエディタセッションは、sTaskName及びnProjectTaskIDの値を追加可能である。メンバースケジュールエディタセッションのみが、nLevel1TaskIDの値を追加可能である。
TopLevelProjectTaskテーブル1204:このテーブルは、プロジェクトタスクのスケジューリングに関する情報を有する。sTaskNameは、タスクの名称について使用され、nProjectTaskIDは、タスクに係るIDについて使用される。planStart及びplanEndは、タスクの予想される開始日及び終了日について使用される。actualStart及びactualEndは、タスクが実際の開始及び終了した日について使用される。setDateは、プランされた日付が設定又は変更された日付について使用される。nScheduleRevNumberは、タスクスケジュールの修正回数について使用される。プロジェクトタスクの直近のスケジュールは、最も大きな修正回数に対応する。プロジェクトタスクのスケジュールの変更を追跡するため、プロジェクトタスクのすべての修正がTopLevelProjectTaskテーブル1204に維持される。プランされた日付が異なる日にプロジェクトスケジュールエディタにおいて変更されるときに限って、この修正はインクリメントされる。nProjectTaskID、sTaskName、日付及びnScheduleRevNumberのすべての値は、プロジェクトスケジュールエディタセッション又はタスク割当てエディタセッションを通じてTopLevelProjectTaskテーブル1204において追加又は更新される。
MemberTasksテーブル1208:このテーブルは、すべてのプロジェクトメンバーのすべてのタスク(すべてのレベルにおけるタスク)に関する情報を有する。プロジェクトの各メンバー(sMemberName)には、タスクIDとnLevelXTaskIDが関連付けされ、すべてのタスクと互いの関係とを特定する。TaskAssignmentテーブルに関して、bIsObsoletedは、タスクがプロジェクトメンバーのスケジュールから削除されているか示す。bIsCompletedは、タスクが終了したか示す。nLevelXTaskIDは、MemberTasksテーブル1208に追加され、新たなタスクがメンバーのスケジュールエディタセッションに追加されるとき、ProjectTeamテーブル1210のnLevelXMaxTaskIDから決定されるタスクについて使用される。このテーブルの各値は、3つのエディタセッション(メンバースケジュール、プロジェクトスケジュール、タスク割当て)の何れかの結果から更新又は変更(bIsObsoleted又はbIsCompleted)することが可能である。MemberTasksテーブル1208は、下位レベルのタスクスケジュールの間のリンクを上位レベルのタスクスケジュールに提供するため重要である。
LevelXMemberTaskテーブル(Level1MemberTaskテーブル1206、Level2MemberTaskテーブル1214、Level3MemberTaskテーブル1216):このテーブルは、メンバータスクのスケジューリングに関する情報を有する。sLevelXTaskNameは、タスクの名称について使用され、nLevelXTaskIDは、タスクに係るIDについて使用される。テーブルに追加されるタスクのnLevelXTaskIDは、新たなタスクがメンバーのスケジュールエディタセッションに追加されると、ProjectTeamテーブル1210のnLevelXMaxTaskIDから決定される。planStart及びplanEndは、タスクの予想される開始日及び終了日について使用される。actualStart及びactualEndは、タスクの実際の開始日及び終了日について使用される。setDateは、プランされた日付が設定又は変更された日付について使用される。メンバータスクの直近のスケジュールは、最も大きな修正番号に対応する。メンバータスクのすべての修正は、メンバータスクのスケジュールの変更を追跡するため、テーブルにおいて維持される。一実施例によると、プランされた日付がメンバースケジュールエディタにおいて変更されるときに限って、修正はインクリメントされる。各LevelXMemberTaskテーブルは、上位レベルタスクのタスクIDを含む(タスクがそれのペアレントとしてのプロジェクトタスクを有するか、又はペアレントタスクを有しないレベル1を除いて)。これは、タスクに対してそれのペアレントタスクとそれのチャイルドタスクへのリンクを提供する。ペアレントタスクID、sLevelXTaskName、nLevelXTaskID、日付及びnScheduleRevNumberのすべての値は、メンバースケジュールエディタセッションを通じてテーブルにおいて追加又は更新される。Level1MemberTaskテーブル1206のみが、TaskAssignmentテーブル1202とのリンクを提供するため、sMemberLabelを有する。
データベースは、レベル4までの下位レベルしか表示しない。しかしながら、データベースは、タスクスケジュールのさらなる詳細のため、下位レベルを含むよう変更可能である。
TaskAssignmentHistoryテーブル1218:このテーブルは、プロジェクトタスクに係るタスクのプロジェクトメンバーに対する割当ての履歴に関する情報を有する。このテーブルは、タスクが他のプロジェクトメンバーに再割り当てされる前に、当該タスクに以前に割り当てられたプロジェクトメンバーに関する情報を維持する。nProjectTaskIDは、タスクに係るIDである。sLevel1TaskNameは、プロジェクトに係るサブタスク(メンバータスク)の名称である。sMemberLabelは、サブタスクに割り当てられるプロジェクトメンバーである。nRevNumberは、タスクのプロジェクトメンバーへの割当ての修正回数である。nRevNumberは、プロジェクトにおけるタスクの再割当を示す。タスク割当てエディタ102(図1A)は、TaskAssignmentHistoryテーブル1218の情報を利用及び/又は更新する。
[サーバのためのプログラミングパッケージ図]
図13は、本発明の実施例による図6のサーバプロセッサ604のプログラミングパッケージ図を示す。サーバプロセッサ1300は4つのパッケージを有し、各パッケージは、クライアントプロセッサ602上でユーザに表示されるウェブページ/エディタに対応し、それを介して、ユーザにより入力された情報が、ユーザがログイン又はエディタセッションを終了すると処理される。
LoginProcessor1302パッケージは、プロジェクトメンバーがエディタの1つにログインすることを可能にするフォームを表示するためのウェブページを提供する。メンバーが当該フォームを送信すると、LoginProcessor1302パッケージは、当該情報を検証するため、メンバーにより入力された情報を処理する。情報が有効であり、メンバーが適切なアクセス権限を有する場合、LoginProcessor1302パッケージは、システムをエディタに対応するパッケージの1つにリダイレクトする。
TaskAssignmentProcessor1304パッケージは、プロジェクトメンバーへのプロジェクトタスクの割当てを追加又は変更するのに使用されるタスク割当てエディタ102(図1A)を表示するため、ウェブページを提供する。タスク割当てエディタ102が送信されると、TaskAssignmentProcessor1304パッケージは、タスク割当てエディタ102からの情報を処理及び格納し、直近のタスク割当てのウェブページを作成する。
ProjectScheduleProcessor1306パッケージは、プロジェクトタスクのスケジュールを追加又は変更するのに使用されるプロジェクトスケジュールエディタ202(図2A)を表示するため、ウェブページを提供する。プロジェクトスケジュールエディタ202が送信されると、ProjectScheduleProcessor1306パッケージは、プロジェクトスケジュールエディタ202からの情報を処理及び格納し、直近のプロジェクトスケジュールのウェブページを作成する。
MemberScheduleProcessor1308パッケージは、メンバータスクのスケジュールを追加又は変更するのに使用されるメンバースケジュールエディタ302(図3A)を表示するため、ウェブページを提供する。メンバースケジュールエディタ302が送信されると、MemberScheduleProcessor1308パッケージは、メンバースケジュールエディタ302からの情報を処理及び格納し、直近のメンバースケジュールのウェブページを作成する。
LoginProcessor1302パッケージのエディタパッケージへのリダイレクトを除いて、プロセッサパッケージは互いに独立し、一般には、エディタパッケージの間のやりとりはない。各プロセッサパッケージ1302〜1308は、情報を取得、追加又は更新するため、データベースとやりとりする。LoginProcessor1302パッケージは、メンバーがアクセス権限を有しているか判断するため、データベース1310にアクセスする。その他のプロセッサパッケージ1304〜1308のそれぞれは、対応するエディタ及びそれが生成する対応するウェブページに表示すべきタスク情報を取得し、対応するタスク情報を追加又は更新するため、データベース1310にアクセスする。非限定的な具体例として、データベース1310は、MySQLを利用して実現されてもよいが、データベース1310はMySQLを利用した実現形態に限定されるものでない。
実施例によると、各エディタプロセッサ1304〜1308パッケージは、PHPスクリプトファイル、JavaScriptファイル及びHTMLファイルから構成される。PHPスクリプトファイルは、データベース1310からプロジェクト及びタスク情報を取得し、クライアントプロセッサ602(図6)上にエディタを表示するJavaScriptを生成する。これは、PHPスクリプトがJavaScriptとやりとりすることを可能にする。JavaScriptは、エディタを生成し、エディタとプロジェクトメンバーとの間のすべてのやりとりを管理する。エディタが送信されると、PHPスクリプトファイルは、エディタの情報を処理し、当該情報をデータベース1310において追加又は更新し、エディタに対応するウェブページを生成する。
図14は、本発明の実施例によるエディタプロセッサ1304〜1308のプログラミングパッケージ図を示す。実施例によると、TaskAssignmentProcessor1304、ProjectScheduleProcessor1306及びMemberScheduleProcessor1308パッケージのすべては、図14に示されるパッケージ図を利用する。パッケージは主要な2つの部分に分割され、表示エディタ1402は、エディタ1404からの提示情報及びエディタの表示及び管理を行い、エディタ1404は、エディタに情報を提示し、ウェブページを生成する。
XXX1406(ただし、“XXX”は、TaskAssignment、ProjectSchedule又はMemberScheduleを表す)は、エディタを表示するため、以下のパッケージを一体化する。ウェブページ1406は、エディタを表示及び管理するためのXXXXPHPProcessor1408パッケージのすべてのPHPスクリプトファイルと、XXXJavaScriptProcessor1410パッケージのすべてのJavaScriptファイルとを有する。データベースからタスク情報を所得し、XXXJavaScriptProcessor1410パッケージとやりとりするJavaScriptを生成するため、ウェブサーバ(図5のウェブサーバ507、530など)上で処理される。エディタの初期表示を提供するため、すべてのJavaScriptがクライアントプロセッサ602(図6)のウェブブラウザにおいて実行される。すべてのJavaScriptファイルは、エディタを管理するため、すなわち、対応するすべての編集イベントを処理するため、クライアントプロセッサ602のウェブブラウザにわたされる。
PostXXX1412のウェブページは、情報を提示し、提示ウェブページを生成する以下のパッケージを一体化する。PostXXX1412のウェブページは、エディタからの情報を提示するためのPostXXXPHPProcessor1414パッケージのすべてのPHPスクリプトファイルと、ウェブページを生成するためのXXXWebPageGenerator1416パッケージのすべてのPHPスクリプトファイルとを有する。PostXXXPHPProcessor1414パッケージは、エディタからすべてのタスク情報を取得し、データベースのタスク情報を追加又は更新する。XXXWebPageGenerator1416パッケージは、適切なウェブページを生成するため、データベースからタスク情報を取得する。
図14の各パッケージは、パッケージのインタフェースを提供し、パッケージ内部のクラスを管理するクラスを提供する。これは、パッケージ内のデザインがその他のパッケージに影響を与えることなく容易に変更されることを可能にする。
[メンバースケジュールプロセッサパッケージ]
図15〜18は、メンバースケジュールエディタ302(図3)に対応する図13のMemberScheduleProcessor1308パッケージに対応する図14のパッケージのクラス図を示す。これらの図は、表示エディタ1402の4つのパッケージとエディタ1404からの掲示情報に対応するクラス構成を示す。XXXPHPProcessor1408(図14)パッケージは、データベースからタスク割当て/スケジュール情報を取得し、サーバプロセッサ604(図6)におけるエディタの初期表示のためのコードを生成する。XXXJavaScriptProcessor1410(図14)パッケージは、クライアントプロセッサ602(図6)のエディタを表示、管理及び維持する。PostXXXPHPProcessor1414(図14)パッケージは、クライアントプロセッサ602のエディタセッションからのすべてのタスク割当て/スケジュール情報をサーバプロセッサ604のデータベースに提供する。XXXWebPageGenerator1416(図14)パッケージは、タスク情報を表示する適切なウェブページを生成するため、サーバプロセッサ604のデータベースからタスク割当て/スケジュール情報を取得する。これらの図は、3つのエディタの間の4つのパッケージのデザインの類似性を示している。これらのエディタは異なるタスクを実行するが、すべてのエディタが類似したデザインパターンに従っている。
図15は、本発明の実施例によるMemberSchedulePHPProcessorパッケージ1500(図14のXXXPHPProcessor1408など)のクラス図を示す。MemberSchedulePHPProcessorパッケージ1500は、クライアントプロセッサ602(図6)のウェブブラウザに初期メンバ0スケジュールエディタ302(図3A)を表示するJavaScriptインタフェースを生成する。
CMemberScheduleManager1502クラスは、MemberSchedulePHPProcessorパッケージ1500のためのインタフェースを提供し、JavaScriptを生成するため、MemberSchedulePHPProcessorパッケージ1500のクラスを管理する。CMemberScheduleInitialData1504クラスは、エディタにおいて初期データを設定するためのJavaScriptを生成する。初期データは、スケジュールに追加可能なプロジェクトメンバーに割り当てられるメンバータスクである。CMemberScheduleTaskRowData1506クラスは、以前のエディタセッションにおいてメンバーのスケジュールに追加されたメンバータスクの各行を表示するためのJavaScriptを生成する。CJavaScriptInterface1508クラスは、ウェブブラウザに初期エディタを生成し、図16のMemberScheduleJavaScriptProcessor1600パッケージとインタフェースをとるJavaScriptのシーケンスを生成する。CEditorDBInterface1510クラスは、エディタに表示されるデータベースからの情報にアクセスする。CEditorDBInterface1510は、所望される表示用の情報を取得するため、適切なデータベースクエリを生成する。CEditorDBInterface1510は、データベースにアクセスするため、CScheduleDB1512とインタフェースをとる。CMemberScheduleInitialData1504及びCMemberScheduleTaskRowData1506は、CEditorDBInterface1510を介しデータベースからタスク情報を取得する。一実施例によると、MemberSchedulePHPProcessorパッケージの上記クラスは、PHPスクリプトにより実現される。
図16は、本発明の実施例によるMemberScheduleJavaScriptProcessorパッケージ1600(図4のXXXJavaScriptProcessor1410など)のクラス図を示す。MemberScheduleJavaScriptProcessorパッケージ1600は、クライアントプロセッサ602(図6)のウェブブラウザにおいてメンバースケジュールエディタ302(図3A)を管理する。
CEditorManager1602クラスは、当該パッケージのインタフェースを提供し、メンバースケジュールエディタ302のウェブページ及びフォームを生成する。CTableManager1604クラスは、メンバースケジュールエディタ302のテーブルを生成し、当該テーブルに影響を与えるすべてのイベントを管理する。CMemberScheduleTable1606クラスは、メンバースケジュールエディタ302のテーブルを初期化及び管理し、テーブルの各行を生成及び管理する。CMemberScheduleRow1608クラスは、メンバースケジュールエディタ302のテーブルの行を初期化及び管理し、当該行に影響を与えるすべてのイベントを管理し、当該行のセルを生成及び管理する。CTaskCell1610クラスじゃ、行のタスクセルを初期化及び管理し、タスクに関する情報を維持する。CDateCell1612クラスは、行の日付セルを初期化及び管理し、タスクのスケジュールに関する情報を維持する。SmemberTaskInfo1614の構成は、エディタにおいてタスクを表示するため、メンバータスク情報がMemberSchedulePHPProcessor1500パッケージからMemberScheduleJavaScriptProcessor1600パッケージにわたされることを可能にする。CDetailTaskInfo1616クラスは、タスクの詳細タスクに関する情報を格納及び維持し、それのサブタスクによりタスクのスケジュールを更新するのに使用される。CDateCell1612は、データセルにより月、日及び年メニュー選択を表示するため、CDateSelector1618を有する。一実施例によると、MemberScheduleJavaScriptProcessor1600パッケージの上記クラス及び構成のすべてが、JavaScriptにより実現される。
図17は、本発明の実施例によるPostMemberSchedulePHPProcessorパッケージ1700(図14のPostXXXPHPProcessor1414など)のクラス図を示す。CMemberTaskManager1702クラスは、当該パッケージのためのインタフェースを提供し、パッケージの他のすべてのクラスを管理する。CMemberTaskManager1702は、エディタからの各タスクに対して実行されるアクションを決定する。CMemberTaskUpdater1704クラスは、データベースのタスクのスケジュールを更新する。この更新は、予定日の編集、実際の日付の更新、タスクの削除及び新たなタスクの追加を含む。CPostDBInterface1706クラスは、情報を取得し、データベースの情報を更新するため、クラスに対するインタフェースを提供する。CPostDBQueryGenerator1708クラスは、CPostDBInterface1706についてSQLデータベースクエリを生成する。CPostDBInterface1706は、データベースにアクセスするため、CScheduleDB1710とのインタフェースをとる。CMemberTaskUpdater1704は、CPostDBInterface1706を介しデータベースのタスク情報を更新する。実施例によると、PostMemberSchedulePHPProcessorパッケージ1700の上記クラスは、PHPスクリプトにより実現される。
図18は、本発明の実施例によるMemberScheduleWebPageGeneratorパッケージ1800(図14のXXXWebPageProcessor1416など)のクラス図を示す。CMemberScheduleWebPageManager1802クラスは、当該パッケージがメンバースケジュールウェブページを生成するためのインタフェースを提供する。CMemberScheduleTable1804は、メンバースケジュールウェブページのテーブルを生成する。CProjectTaskRow1806は、テーブル内にタスク行を生成する。CWebPageDBInterface1808クラスは、クラスがデータベースにおいて情報を取得するためのインタフェースを提供する。CWebPageDBQueryGenerator1810クラスは、CWebPageDBInterface1808についてSQLデータベースクエリを生成する。CWebPageDBInterface1808は、データベースにアクセスするため、CScheduleDB1812とインタフェースをとる。CMemberScheduleTable1804及びCProjectTaskRow1806は、CWebPageDBInterface1808を介しデータベースからタスク情報を取得する。実施例によると、MemberScheduleWebPageGenerator1800パッケージの上記クラスは、PHPスクリプトにより実現される。
テーブル1は、本発明の実施例によるメンバースケジュールエディタ302(図3)の文書オブジェクトモデル表現を示す。テーブル1は、メンバースケジュールエディタ302を構成する各要素と対応する要素名及びidプロパティとを示す。これらの要素の一部は、テーブル要素、行要素、セル要素、チェックボックス入力要素、入力テキスト要素及び選択要素など、エディタに表示されるエディタの各部分に対応する。隠れた入力要素など、これらの要素の一部は、情報を表示するのでなく、格納するのに使用される。情報を格納し、又はユーザから情報を受け取る要素は、エディタセッションからのタスク情報を掲示するため、情報をサーバプロセッサにわたすのに重要である。ドキュメント・オブジェクト・モデル(DOM)については、O‘Reeilly&Associates,Inc.により刊行されているDavid Flanaganによる“JavaScript:the Definitive Guide”(Fourth Edition)に記載されている。
エディタを構成する各要素は、それのidを介しアクセス可能であり、これらの要素のプロパティは当該要素の値及び/又は表示を変更するよう設定可能である。実施例によると、メンバースケジュールエディタ302の各要素について、当該要素は図16のMemberScheduleJavaScriptProcessor1600パッケージのクラスの1つの内部にラップされる。これらの要素はクラスの属性である。このため、クラスのメンバーファンクションは、要素への直接的なアクセスを有し、必要に応じてそれらのプロパティを変更する。クラスが要素への直接的なアクセスを有することによって、それらのidを使用して要素を取得する必要はない。
以下のテーブル2は、本発明の実施例による図16に示されるMemberScheduleJavaScriptProcessor1600パッケージのCTaskCell1610クラスの属性メンバーを示す。CTaskCell1610は、それが有するすべての要素のプロパティの値を取得及び設定することが可能である。
[プロジェクトスケジュールプロセッサパッケージ]
図19〜22は、プロジェクトスケジュールエディタ202(図2A)に対応する図13のProjectScheduleProcessor1310パッケージに対応する図14のパッケージのクラス図を示す。これらの図は、表示エディタ1402の4つのパッケージとエディタ1404からの掲示情報に対応するクラス構成を示す。XXXPHPProcessor1408(図14)パッケージは、データベースからタスク情報/スケジュール情報を取得し、サーバプロセッサ604(図6)のエディタの初期表示のためのコードを生成する。XXXJavaScriptProcessor1410(図14)パッケージは、クライアントプロセッサ602(図6)のエディタを表示、管理及び維持する。PostXXXPHPProcessor1414(図14)パッケージは、クライアントプロセッサ602のエディタセッションからのすべてのタスク情報/スケジュール情報をサーバプロセッサ604のデータベースに提供する。XXXWebPageGenerator1416(図14)パッケージは、タスク情報を表示する適切なウェブページを生成するため、サーバプロセッサ604のデータベースからタスク割当て/スケジュール情報を取得する。これらの図は、3つのエディタの間の4つのパッケージのデザインに関する類似性を示している。エディタは異なるタスクを実行するが、それらはすべて類似したデザインパターンに従う。
図19は、本発明の実施例によるProjectSchedulePHPProcessorパッケージ1900(図14のXXXPHPProcessor1408など)のクラス図を示す。ProjectSchedulePHPProcessorパッケージ1900は、クライアントプロセッサ602(図6)のウェブブラウザにおいて初期的なプロジェクトスケジュールエディタ202(図2A)を表示するJavaScriptパッケージを生成する。
CProjectScheduleManager1902クラスは、ProjectSchedulePHPProcessorパッケージ1900のためのインタフェースを提供し、Javascriptを生成するため、ProjectSchedulePHPProcessorパッケージ1900のクラスを管理する。CProjectScheduleInitialData1904クラスは、エディタの初期データを設定するためのJavascriptを生成する。初期データは、プロジェクトスケジュールに追加可能なプロジェクトタスクである。CProjectScheduleTaskRowData1906クラスは、以前のエディタセッションにおいてメンバーのスケジュールに追加された対応するメンバータスクと共に、プロジェクトタスクの各行を表示するためのJavascriptを生成する。CJavaScriptInterface1912クラスは、ウェブブラウザにおいて初期エディタを生成し、ProjectScheduleJavaScriptProcessor2000パッケージとインタフェースをとるJavascriptのシーケンスを生成する。CProjectEditorDBInterface1908クラスは、エディタに表示されるデータベースからの情報にアクセスする。CProjectEditorDBQueryGenerator1910クラスは、CProjectEditorDBInterface1908についてSQLデータベースクエリを生成する。CProjectEditorDBInterface1908は、データベースにアクセスするためCScheduleDB1914とインタフェースをとる。CProjectScheduleInitialData1904及びCProjectScheduleTaskRowData1906は、CProjectEditorDBInterface1908を介しデータベースからタスク情報を取得する。実施例によると、ProjectSchedulePHPProcessor1900の上記クラスは、PHPスクリプトにより実現される。
図20は、本発明の実施例によるProjectScheduleJavaScriptProcessorパッケージ2000(図14のPostXXXJavaScriptProcessor1410など)のクラス図を示す。ProjectScheduleJavaScriptProcessorパッケージ2000は、ブラウザにおいてプロジェクトスケジュールエディタ202(図2A)を管理する。CProjectEditorManager2002クラスは、当該パッケージのインタフェースを提供し、プロジェクトスケジュールエディタ202のウェブページ及びフォームを生成する。CProjectTableManager2004クラスは、プロジェクトスケジュールエディタ202のテーブルを生成、初期化及び管理し、当該テーブルに影響を与えるすべてのイベントを管理する。CProjectTableManager2004はまた、テーブルの各行を生成及び管理する。CProjectScheduleRow2006クラスは、プロジェクトスケジュールエディタ202のテーブルの行を初期化及び管理し、当該行に影響を与えるすべてのイベントを管理し、当該行のセルを生成及び管理する。CTaskCell2008クラスは、行のタスクセルを初期化及び生成する。CMemberCell2010クラスは、行のメンバーセルを初期化及び管理する。SProjectTaskInfo2014の構成は、プロジェクトスケジュールエディタ2092においてプロジェクトタスクとそれのメンバータスクスケジュールを表示するため、プロジェクト/メンバータスク情報をProjectSchedulePHPProcessor1900パッケージからProjectScheduleJavaScriptProcessor2000パッケージにわたすことを可能にする。CDateCell2012は、予定/実際の日付セルの月、日及び年メニュー選択を表示するため、CDateSelector2016を有する。実施例によると、ProjectScheduleJavaScriptProcessorパッケージ2000の上記クラス及び構成は、Javascriptにより実現される。
図21は、本発明の実施例によるPostProjectSchedulePHPProcessor2100パッケージ(図14のPostXXXPHPProcessor1414など)のクラス図を示す。CProjectTaskManager2102クラスは、当該パッケージのインタフェースを提供し、パッケージの他のすべてのクラスを管理する。CProjectTaskManager2102は、プロジェクトスケジュールエディタ202からの各プロジェクトタスクに対して実行されるアクションを決定する。CProjectTaskUpdater2104クラスは、データベースのプロジェクトタスクのスケジュールを更新する。この更新は、プロジェクトタスクのスケジュールの追加又は更新を含む。CProjectTaskUpdater2104クラスは、メンバーのタスクによりプロジェクトタスクを併合し、データベースにおいてプロジェクトタスクを更新する。CPostProjectDBInterface2106は、クラスがデータベースにおける情報を取得及び更新するためのインタフェースを提供する。CPostProjectDBQueryGenerator2108クラスは、CPostProjectDBInterface2106についてSQLデータベースクエリを生成する。CPostProjectDBInterface2106は、データベースにアクセスするため、CScheduleDB2110とインタフェースをとる。CProjectTaskUpdater2104は、CPostProjectDBInterface2106を介しデータベースのタスク情報を更新する。実施例によると、PostProjectSchedulePHPProcessor2100パッケージの上記クラスは、PHPスクリプトにより実現される。
図22は、本発明の実施例によるProjectScheduleWebPageGenerator2200パッケージ(図14のXXXWebPageProcessor1416など)のクラス図を示す。CProjectScheduleWebPageManager2202クラスは、当該パッケージがプロジェクトスケジュールウェブページを生成するためのインタフェースを提供する。CProjectScheduleTable2204は、プロジェクトスケジュールウェブページのテーブルを生成する。CProjectTaskRow2206クラスは、テーブル内にプロジェクト及びメンバータスク行を生成する。CProjectWebPageDBInterface2208クラスは、クラスがデータベースから情報を取得するためのインタフェースを提供する。CProjectWebPageDBQueryGenerator2210クラスは、CProjectWebPageDBInterface2208についてSQLデータベースクエリを生成する。CProjectWebPageDBInterface2208は、データベースにアクセスするため、CScheduleDB2212とインタフェースをとる。CProjectScheduleTable2204及びCProjectTaskRow2206は、CProjectWebPageDBInterface2208を介しデータベースからタスク情報を取得する。実施例によると、ProjectScheduleWebPageGenerator2200パッケージの上記クラスは、PHPスクリプトにより実現される。
テーブル3は、本発明の実施例によるプロジェクトスケジュールエディタ202(図2A)のドキュメント・オブジェクト・モデル表現を示す。テーブル3は、プロジェクトスケジュールエディタ202を構成する各要素と、対応する要素名及びidプロパティとについて記載する。各要素は、それのidを介しアクセス可能であり、要素のプロパティは要素の値及び/又は表示を変更するよう設定可能である。実施例によると、プロジェクトスケジュールエディタ202の各要素について、当該要素は、図20のProjectScheduleJavaScriptProcessor2000パッケージのクラスの1つの内部にラップされる。これらの要素はクラスの属性である。このため、クラスのメンバーファンクションは、要素への直接的なアクセスを有し、必要に応じてそれらのプロパティを変更する。クラスが要素への直接的なアクセスを有することによって、それらのidを利用して要素を取得する必要はない。
テーブル4は、本発明の実施例による図20に示されるProjectScheduleJavaScriptProcessor2000パッケージのCTaskCell2008クラスの属性メンバーを示す。CTaskCell2008は、それが有するすべての要素のプロパティの値を取得及び設定可能である。
[タスク割当てプロセッサパッケージ]
図23〜26は、タスク割当てエディタ102(図1A)に対応する図13のTaskAssignmentProcessorパッケージに対応する図14のパッケージのクラス図を示す。これらの図は、表示エディタ1402の4つのパッケージとエディタ1404からの掲示情報に対応するクラス図を示す。XXXPHPProcessor1408(図14)パッケージは、データベースからタスク割当て/スケジュール情報を取得し、サーバプロセッサ604(図6)においてエディタの初期表示のためのコードを生成する。XXXJavaScriptProcessor1410(図14)パッケージは、クライアントプロセッサ602(図6)においてエディタを表示、管理及び維持する。PostXXXPHPProcessor1414(図14)パッケージは、クライアントプロセッサ602のエディタセッションからのすべてのタスク割当て/スケジュール情報をサーバプロセッサ604のデータベースに提供する。XXXWebPageGenerator1416(図14)パッケージは、タスク情報を表示する適切なウェブページを生成するため、サーバプロセッサ604のデータベースからタスク割当て/スケジュール情報を取得する。これらの図は、3つのエディタの間の4つのパッケージの構成の類似性を示している。エディタは異なるタスクを実行するが、それらはすべて同様のデザインパターンに従う。
図23は、本発明の実施例によるTaskAssignmentPHPProcessor2300パッケージ(図14のXXXPHPProcessor1408など)のクラス図を示す。TaskAssignmentPHPProcessor2300パッケージは、クライアントプロセッサ602(図6)のウェブブラウザに初期的なタスク割当てエディタ102(図1A)を表示するJavascriptインタフェースを生成する。
CTaskAssignmentManager2302クラスは、TaskAssignmentPHPProcessor2300パッケージのためのインタフェースを提供し、Javascriptを生成するため、パッケージのすべてのクラスを管理する。CTaskAssignmentInitialData2304クラスは、タスク割当てエディタ102(図1A)において初期データを設定するためのJavascriptを生成する。この初期データは、プロジェクトスケジュールに追加され、メンバーに割当て可能なプロジェクトタスクである。CTaskAssignmentTaskRowData2306クラスは、プロジェクトタスクの各行を、以前のエディタセッションにおいて割り当てられたタスクに割り当てられたメンバーとそれのメンバータスクと共に表示するためのJavascriptを生成する。CTaskAssignmentJavaScriptInterface2310クラスは、ウェブブラウザにおいて初期的なタスク割当てエディタ102を生成し、TaskAssignmentJavaScriptProcessor2400パッケージとインタフェースをとるJavascriptシーケンスを生成する。CTaskAssignmentEditorDBInterface2308は、エディタに表示されるデータベースからの情報にアクセスする。CTaskAssignmentEditorDBInterface2308は、所望される表示用の情報を取得するため、適切なクエリを生成する。CTaskAssignmentEditorDBInterface2308は、データベースにアクセスするため、CScheduleDB2314とインタフェースをとる。CTaskAssignmentInitialData2304及びCTaskAssignmentTaskRowData2306は、CTaskAssignmentEditorDBInterface2308を介しデータベースからタスク情報を取得する。実施例によると、TaskAssignmentPHPProcessor2300パッケージの上記クラスは、PHPスクリプトにより実現される。
図24は、本発明の実施例によるTaskAssignmentJavaScriptProcessor2400パッケージ(図14のPostXXXJavaScriptProcessor1410など)のクラス図を示す。TaskAssignmentJavaScriptProcessor2400パッケージは、ブラウザにおけるタスク割当てエディタ102(図1A)を管理する。CTaskAssignmentEditorManager2402クラスは、当該パッケージのためのインタフェースを提供し、タスク割当てエディタ102についてウェブページ及びフォームを生成する。CTaskAssignmentTable2404クラスは、タスク割当てエディタ102のテーブルを生成、初期化及び管理し、当該テーブルに影響を与えるすべてのイベントを管理する。CTaskAssignmentTable2404はまた、テーブルの各行を生成及び管理する。CTaskAssignmentRow2406クラスは、タスク割当てエディタ102のテーブルの行を初期化及び管理し、当該行に影響を与えるすべてのイベントを管理し、当該行のセルを生成及び管理する。CTaskCell2408クラスは、行のタスクセルを初期化及び管理する。CAssignmentCell2410クラスは、行の割当てセルを初期化及び管理する。実施例によると、TaskAssignmentJavaScriptProcessor2400パッケージの上記クラス及び構成は、Javascriptにより実現される。
図25は、本発明の実施例によるPostTaskAssignmentPHPProcessor2500パッケージ(図14のPostXXXPHPProcessor1414など)のクラス図を示す。CTaskAssignmentManager2502クラスは、当該パッケージのためのインタフェースを提供し、パッケージの他のすべてのクラスを管理する。CTaskAssignmentManager2502は、タスク割当てエディタ102(図1A)からの各プロジェクトタスクに対して実行されるアクションを決定する。CTaskAssignmentUpdater2504クラスは、データベースにおけるプロジェクトタスクの割当てを更新する。この更新は、プロジェクトタスクの割当ての追加又は削除を含む。CPostTaskAssignmentDBInterface2508クラスは、クラスがデータベースにおいて情報を取得及び更新するためのインタフェースを提供する。CPostTaskAssignmentDBQueryGenerator2506クラスは、CPostTaskAssignmentDBInterface2508についてSQLデータベースクエリを生成する。CPostTaskAssignmentDBInterface2508は、データベースにアクセスするため、CScheduleDB2510とインタフェースをとる。CTaskAssignmentUpdater2504は、CPostTaskAssignmentDBInterface2508を介しデータベースにおけるタスク情報を更新する。実施例によると、PostTaskAssignmentPHPProcessor2500パッケージの上記クラスは、PHPスクリプトにより実現される。
図26は、本発明の実施例によるTaskAssignmentWebPageGenerator2600パッケージ(図14のXXXWebPageProcessor1416など)のクラス図を示す。CTaskAssignmentWebPageManager2602クラスは、当該パッケージがタスク割当てウェブページを生成するためのインタフェースを提供する。CTaskAssignmentTable2604クラスは、タスク割当てウェブページについてテーブルを生成する。CTaskAssignmentWebPageGeneratorDBIンterface2606クラスは、クラスがデータベースから情報を取得するためのインタフェースを提供する。CTaskAssignmentWebPageGeneratorDBInterface2606は、所望の情報を取得するため、適切なクエリを生成する。CTaskAssignmentWebPageGeneratorDBInterface2606は、データベースにアクセスするため、CScheduleDB2608とインタフェースをとる。CTaskAssignmentTable2604は、CTaskAssignmentWebPageGeneratorDBInterface2606を介しデータベースからタスク情報を取得する。実施例によると、TaskAssignmentWebPageGenerator2600パッケージの上記クラスは、PHPスクリプトにより実現される。
テーブル5は、タスク割当てエディタ102(図1A)のドキュメント・オブジェクト・モデル表現を示す。テーブル5は、タスク割当てエディタ102を構成する各要素と、対応する要素名及びidプロパティとを記述する。各要素はそれのidを介しアクセス可能であり、要素のプロパティは、当該要素の値及び/又は表示を変更するよう設定可能である。実施例によると、タスク割当てエディタ102の各要素について、当該要素は図24のTaskAssignmentJavaScriptProcessor2400パッケージのクラスの1つの内部にラップされる。各要素はクラスの属性である。このため、クラスのメンバーファンクションは、要素への直接的なアクセスを有し、必要に応じてそれのプロパティを変更する。クラスが要素への直接的なアクセスを有することによって、それらのidを使用して各要素を取得する必要がなくなる。
以下のテーブル6は、本発明の実施例による図24に示されるTaskAssignmentJavaScriptProcessorパッケージのCTaskCell2408クラスの属性メンバーを示す。CTaskCell2408は、それが有するすべての要素のプロパティの値を取得及び設定することが可能である。
メンバースケジュールエディタ302(図3A)、プロジェクトスケジュールエディタ202(図2A)及びタスク割当てエディタ102(図1A)のそれぞれについてPHPProcessor、JavaScriptProcessor、PostPHPProcessor及びWebPageGeneratorを記載した図15〜26から理解されるように、各エディタのデザインは同様のパターンに従っている。このため、システムに追加される新たなエディタは、同様のデザインパターンに従うことができる。
テーブル7は、デザインの類似性を確認するため、ここに記載されるオブジェクト指向スケジューリングシステムのソフトウェア設計仕様のインデックス化を示す。テーブル7は、各パッケージとパッケージ内の各クラスを列記し、3つのエディタの構成の類似性を示す。
[プレースホルダー文字列によるコンスタント文字列からのデータベースクエリの生成]
図27は、本発明の実施例によるデータベースクエリを生成するのに使用される一例となるコンスタント文字列を示す。2つのタイプのコンスタント文字列が使用される。“コンスタントクエリ文字列”は、所与のクエリの値と置換されるプレースホルダー文字列を有するクエリ文字列全体を含む。コンスタントクエリ文字列はクエリ全体を示し、プレースホルダー文字列は、何れの値がクエリに入力される必要があるか示す。“プレースホルダー文字列に対するコンスタント”とは、コンスタントクエリ文字列のプレースホルダー文字列を検索し、実際の値と置換するのに使用される。クエリのプレースホルダー文字列は、クエリの結果を限定するための制限を適用する。図27に示される例は、PHPスクリプトに対応しているが、任意の言語により利用可能である。
プレースホルダー文字列を有するコンスタントクエリ文字列を使用することは、読解することが困難な文字列の連結の系列を介し文字列を構成することからの改良を提供する。データベースにアクセスするパッケージの各クラス図は、図15、17、18、19、21、22、23、25及び26に示されるように、パッケージ内で使用されるパッケージコンスタントを含む。コンスタントクエリ文字列は、それらが容易に特定できるように、パッケージ内で定義される。コンスタントクエリ文字列の他の効果は、Navicat MySQLなどのデータベースツールにおいてそれらをテストすることである。コンスタントクエリ文字列は、クエリ文字列が有効な文字列であるかテストするため、各値と置換されたプレースホルダー文字列を有するこのようなツールにコピーすることができる。
図28は、本発明の実施例による図27のコンスタント文字列からデータベースクエリを生成するのに使用される一例となるスクリプトを示す。図28に示される例は、PHPスクリプトに対応するが、当該シーケンスを実現するため任意の言語が利用可能である。上記例は、スクリプトの各ステートメントが実行された後のクエリ文字列の値を示す。第1ステートメントの実行では、コンスタント文字列は変数文字列$loc_sQueryに割り当てられる。変数$loc_sQueryは、データベースクエリに使用されるクエリを含む。第2、第3及び第4ステートメントの実行では、プレースホルダー文字列“%%ProjectNumber%%”、“%%MemberLabel%%”及び“%%ProjectTaskID%%”はそれぞれ、“J17”、“T1”及び“40”と置換される。第4ステップの実行は、結果として得られるクエリ文字列を示す。この例は、プロジェクト番号、メンバーラベル及びプロジェクトタスクidなどのシンプルな値によるプレースホルダーの置換を示す。エディタによるセッション中に変動しないプロジェクト番号やメンバーラベルなど、プレースホルダー文字列を置換するいくつかの値はスタティックなものとなる。例示されるクエリは、指定されたプロジェクト番号、メンバーラベル及びプロジェクトタスクidによるデータベースのテーブルの記録に制限される。
図29は、本発明の実施例によるコンスタント文字列からクエリ文字列を生成するプロセスを示すフロー図である。ブロック2902において、コンスタントクエリ文字列が変数文字列に割り当てられる。変数文字列は、プレースホルダー文字列を各値に置換することを可能にするため必要とされ、コンスタント文字列の各値は変化しない。ブロック2904において、変数文字列は、それがプレースホルダー文字列を有するか確認するためチェックされる。変数文字列がさらなるプレースホルダー文字列を有しない場合、クエリ文字列はオリジナルのコンスタントクエリ文字列に対応し、本プロセスはブロック2906において終了する。変数文字列がさらなるプレースホルダー文字列を有する場合、ブロック2908において、変数文字列のプレースホルダー文字列はある値と置換される。ブロック2908の置換後、ブロック2904に移行し、変数文字列がさらなるプレースホルダー文字列を有しているか判断される。変数のすべてのプレースホルダー文字列が各値と置換されると、クエリ文字列が生成され、データベースへの送信準備が整う。クエリがデータベースに送信されると、データベースは、要求元に返され、他のプロセスにわたされ、又は必要に応じて処理することが可能な結果を生成する。
CXXXDBInterfaceクラス(図17のCPostDBInterface1706クラス、図18のCWebPageDBInterface1808クラスなど)及びCYYYDBQueryGeneratorクラス(図17のCPOstDBQueryGenerator1708クラス、図18のCWebPageDBQueryGenerator1810クラスなど)が、クエリを生成及び使用する。いくつかのケースでは、CXXXDBInterfaceクラスは、ユーザから、エディタを介し及びデータベースから取得した定数及び値からクエリ文字列を生成するプライベートファンクションを有する。一例として、図15のCEditorDBInterface1510があげられる。ほとんどの場合、CXXXDBInterfaceクラスは、クエリ文字列を生成するため、CYYYDBQueryGeneratorのパブリックファンクションを使用する。一例として、図17のCPostDBInterface1706及びCPostDBQueryGenerator1708があげられる。
[エディタウェブページコンポーネント]
図30は、本発明の実施例によるエディタ(メンバースケジュールエディタ302、プロジェクトスケジュールエディタ202、タスク割当てエディタ102など)のウェブページの各コンポーネントを示す。ウェブページは、ウェブサーバなどのサーバプロセッサ604(図6)に格納されているファイルである。ウェブページは、JavaScriptコンポーネントとPHPコンポーネントとを有する。JavaScriptコンポーネントは、エディタにおいて発生するイベントを処理するJavaScriptファンクションを含む。JavaScriptコンポーネントは、エディタを表示、管理及び維持するためのクラス、ユーティリティ及びコンスタントに対応する他のJavaScriptファイルを含む。ウェブページのPHPコンポーネントは、データベースから取得されるタスク割当て/スケジュール情報をエディタに表示するJavaScriptコードの生成を開始するためのPHPスクリプトを含む。PHPコンポーネントは、データベースからタスク割当て/スケジュール情報を取得し、エディタに対するJavaScriptコードを生成するためのクラス、ユーティリティ及びコンスタントに対応するPHPスクリプトを有するファイルを含む。
ウェブページがエディタウェブページなどをリクエストするウェブブラウザなどのクライアントプロセッサ602(図6)によりリクエストされると、ウェブページのPHPコンポーネントのみがサーバプロセッサ604により処理される。例えば、PHPスクリプトは、ウェブサーバ507及び530(図5)などのウェブサーバにおいて実行される。PHPスクリプトは、データベースからのタスク割当て/スケジュール情報にアクセス及び取得する。PHPスクリプトは、タスク情報を格納し、JavaScriptに転送するため、JavaScriptコードによる構成を生成する。PHPスクリプトは、エディタを生成、管理及び維持するJavaScriptクラスのオブジェクトを生成するJavaScriptコードを生成し、タスク情報を有するエディタの初期表示を生成するため、オブジェクトのメンバーファンクションを呼び出す。PHPスクリプトにより生成されるJavaScriptコードが、ウェブページがクライアントプロセッサ602にわたされると、エディタウェブページに追加される。PHPコードは、それがクライアントプロセッサ602にわたされるとき、ウェブページにはない。クライアントプロセッサは、初期的なエディタを表示し、ユーザがエディタとやりとりするとき、エディタを管理及び維持するため、ウェブページにおけるすべてのJavaScriptコードを実行する。PHPスクリプトは、クライアントプロセッサ602にはわたされないが、サーバ側コードである。
図31は、本発明の実施例によるエディタ(メンバースケジュールエディタ302、プロジェクトスケジュールエディタ202、タスク割当てエディタ102など)のウェブページの各コンポーネントを示す。PHPプロセッサはサーバ側で実行され、JavaScriptプロセッサはクライアント側で実行される。サーバ上のPHPプロセッサは、クライアント上でJavaScriptプロセッサにより実行されるJavaScriptコードを生成するため、PHPコンポーネントを実行する。
[クライアント・サーバベースプロジェクトスケジュールシステムによるプロジェクトスケジュール管理方法]
図32は、本発明の実施例によるクライアント・サーバベースプロジェクトスケジュール管理システムによるプロジェクトスケジュール管理方法を示すフロー図である。図32に示される方法の実施例は、1以上のプロセッサが命令を実行することによってなど、コンピュータ又はマシーンが方法の各ステップを実行するコンピュータ及び/又はマシーンにより実現される方法として実現される。例えば、本方法は、図35のコンピュータシステム3500などのコンピュータシステムにより実行可能である。
ブロック3202において、クライアント・サーバベースプロジェクトスケジュールシステムに係るエディタを閲覧するリクエストに応答して、サーバはデータベースの第1のスケジュールに関する情報にアクセスする。例えば、クライアントプロセッサ602(図6)のユーザは、タスク割当てエディタ102(図1A)、メンバースケジュールエディタ302(図3A)又はプロジェクトスケジュールエディタ202(図2A)の1つをリクエストするため、ユーザインタフェースとやりとりする。当該リクエストに応答して、サーバプロセッサ604(図6)は、データベース506(図5)からのデータ508(図5)及び/又はデータベース538(図5)からのデータ536(図5)など、データベースからデータにアクセスする。例えば、サーバプロセッサ604は、要求元のユーザと対応するプロジェクトに対して要求されたエディタを提供するため、データベースから適切なデータを抽出するようPHPスクリプトコードを実行する。データベースからサーバが抽出するデータは、ユーザがリクエストしたエディタに固有のものであり、またユーザidやプロジェクトidなど、当該リクエストに関連してユーザにより入力された各種情報に固有なものである。エディタに対するリクエストに応答してサーバがデータベースから抽出するデータは、必要に応じて、リクエストされたエディタに各フィールドを提供するための初期情報を含む。
ブロック3204において、サーバは、要求元のクライアントによる実行のためのクライアントにより実行可能なコードを生成する。サーバにより生成されるこのクライアントにより実行可能なコードは、リクエストされたエディタをクライアントに表示し、エディタの適当なフィールドに抽出した情報を表示し、クライアントにおいてエディタを管理するためのものである。例えば、サーバプロセッサ604(図6)は、抽出したデータをクライアントプロセッサ602(図6)が利用可能なフォーマットに変換するため、PHPスクリプトコードを実行する。例えば、クライアントプロセッサ602は、サーバスクリプトコードを理解しないため、クライアントプロセッサ602により実行可能なJavaScriptコードに抽出した情報をラップするなど、サーバは抽出した情報をクライアントが理解及び利用可能なフォーマットに処理する必要がある。ブロック3206において、サーバはクライアントにより実行可能なコードと第1のスケジュールに関する情報を実行のためクライアントにわたす。
付録A、C及びEは、各エディタのための一例となるコードリストを提供する。これらのコードリスト例は、<script>タグにより示されるJavaScriptと、<?php and?>タグ内に囲まれたPHPスクリプトを示す。エディタページは、ウェブサーバ507、530(図5)などのサーバプロセッサ604に格納される。ウェブブラウザなどのクライアントプロセッサ602がエディタページにアクセスすると、サーバプロセッサ604においてPHPスクリプトが実行され、PHPスクリプト全体が、PHPスクリプトが生成するJavaScriptコードに置換される。PHPスクリプトにより生成されるものを含むすべてのJavaScriptコードが、実行のためクライアントプロセッサ602にわたされる。
ブロック3208において、クライアントは、リクエストされたエディタに第1のスケジュールに関する情報を表示し、データ及びエディタを管理するため、一般にクライアントにより実行可能なコード又は当該コードの少なくとも一部を実行する。このため、リクエストされたエディタの初期表示は、クライアントプロセッサとサーバプロセッサのそれぞれに係る上記アクションに基づき完了する。
エディタページがサーバにより生成されるクライアントにより実行可能なコード(JavaScriptなど)を実行することによってクライアントにロードされると、ユーザは、エディタに係る情報を編集及び/又は追加することを開始できる。ブロック3210において、クライアントは第2スケジュールに関する情報をエディタを介しユーザから受信する。例えば、エディタに応じて、クライアントプロセッサ602(図6)は、エディタを介し入力されたユーザからのプロジェクトスケジュール情報、メンバースケジュール情報又はタスク割当て情報を受信する。
ブロック3212において、クライアントは、クライアント側において第2スケジュールに関する情報をエディタにおいて管理及び/又は維持するため、クライアントにより実行可能なコードの少なくとも一部を実行する。例えば、コードの実行は、サーバへの送信前にクライアントにおいて新規の又は更新されたデータを管理するためのデータ構造及び関連付けを生成し、エディタページオブジェクト(HTMLボタン、テキストエントリオブジェクトなど)に実現される各機能を提供する。
ブロック3214において、クライアントは第2スケジュールに関する情報をエディタからサーバに転送する。ブロック3216において、サーバは第2スケジュールに関する情報をデータベースに格納し、そこからリクエストに応答してクライアントに返送するため、当該情報は以降においてアクセス可能となる。例えば、各エディタページ(図1A、2A、3Aなど)に対するリクエスト又は各エディタに係るウェブページ(図1B、2B、3Bなど)に対するリクエストに応答して、スケジュール関連情報がサーバからクライアントにわたされるかもしれない。
[ネットワークベースプロジェクトスケジュールシステムにおけるデータベースクエリの自動生成方法]
図33は、本発明の実施例によるネットワークベースプロジェクトスケジュール管理システムにおけるデータベースクエリ自動生成方法を示すフロー図である。図33に示される方法の実施例は、1以上のプロセッサが命令を実行などすることによって、コンピュータ又はマシーンが方法の各ステップを実行するコンピュータ及び/又はマシーンにより実現される方法として実現される。例えば、本方法は、図35のコンピュータシステム3500などのコンピュータシステムにより実行可能である。
ブロック3302において、ネットワークベースプロジェクトスケジュールシステムのエディタに係るリクエストに応答して、当該エディタに係るクエリ文字列が特定される。“コンスタントクエリ文字列”(図27〜29など)としても記載されるクエリ文字列は、1以上のプレースホルダー文字列を有する。プレースホルダー文字列は、当該プレースホルダー文字列の置換としてわたされる各値について、コンスタントクエリ文字列内においてプレースホルダーとして機能する。このため、各プレースホルダー文字列は、データベース506及び/又はデータベース536などのデータベースに送信するためのクエリを生成するため、プレースホルダー文字列が置換される値のタイプを指定する。この“値のタイプ”は、データタイプを表すのでなく、対応するプレースホルダー文字列を置換するため値が使用される対応する変数名である。例えば、図27及び28を参照するに、これらの図に示されるように、プレースホルダー文字列“%%ProjectNumber%%”はプロジェクト番号の値(“J17”など)と置換され、プレースホルダー文字列“%%MemberLabel%%”は、プロジェクトメンバーのラベルの値(“T1”など)と置換され、プレースホルダー文字列“%%ProjectTaskID%%”は、プロジェクトタスクのidの値(“40”など)と置換される。C_ProjectNumberKey、C_MemberLableKey及びC_ProjectTaskIDKeyなどのプレースホルダー文字列の各定数は、プレースホルダー文字列を適切な値と置換するため、コンスタントクエリ文字列のプレースホルダー文字列を特定するのにストリングファンクション(PHPのstr_replce()など)により使用される。
ブロック3304において、クエリ文字列の1以上のプレースホルダー文字列を対応する値と自動的に置換することによって、データベースクエリが生成される。例えば、プレースホルダー文字列“%%ProjectNumber%%”は“J17”と置換され、プレースホルダー文字列“%%MemberLabel%%”は“T1”と置換され、プレースホルダー文字列“%%ProjectTaskID%%”は“40”と置換される。
図27を参照して説明されたように、実施例によると、何れかのプレースホルダー文字列について“コンスタントクエリ文字列”を検索し、プレースホルダー文字列をある値と置換するため、“プレースホルダー文字列のための定数”が使用される。
図29を参照して説明されたように、実施例によると、サーバプロセッサ604(図6)に係るCXXXDBInterfaceクラスとCYYYDBQueryGeneratorクラスは、ブロック3304においてデータベースクエリを生成するのに使用される。ここで、クエリ生成プロセスは、CXXXDBInterfaceクラスのプライベートファンクションに基づくものであってもよいし、又はCYYYDBQueryGeneratorクラスのパブリックファンクションに基づくものであってもよい。実施例によると、クエリ文字列は、データベースのデータにアクセスするための類似したデータベースクエリを自動生成するための再利用可能なクエリテンプレートとして機能する基礎となるコンスタントクエリ文字列を変更せずに、プレースホルダー文字列の置換を可能にするため変数文字列(図28の“$loc_sQuery”など)に割り当てられる。
ブロック3306において、自動生成されたデータベースクエリがデータベースに送信され、ブロック3308において、データベースクエリの結果が、リクエストに応答して返される。
[プロジェクトスケジュールシステムにおけるタスク管理方法]
図34は、本発明の実施例によるプロジェクトスケジュール管理システムにおけるタスク管理方法を示すフロー図である。図34に示される方法の実施例は、1以上のプロセッサが命令を実行などすることによって、コンピュータ又はマシーンが方法の各ステップを実行するコンピュータ及び/又はマシーンにより実現される方法として実現される。例えば、本方法は、図35のコンピュータシステム3500などのコンピュータシステムにより実行可能である。
ブロック3402において、エディタの表示テーブルの行に影響を与えるイベントに応答して、影響を受けた当該行に対応するクラスオブジェクトは、プロジェクトスケジュールシステムに係るエディタの要素に対応するクラスオブジェクトの1以上の属性に直接アクセスする。表示テーブルの各行は、エディタの各要素に対応する表示値とプロジェクトスケジュールに係るスケジュールタスクとに係るスケジュールタスクに対応する。エディタの各要素はクラスオブジェクトの属性として構成されるため、クラスオブジェクトはこれらの属性に直接的にアクセス可能であることが重要である。このため、クラスオブジェクトは、影響を受けた行の影響を受けた各要素の要素idを構成する必要はなく、またこのような要素を取得する必要もない。
例えば、ユーザは、メンバースケジュールエディタ302(図3A)を介しタスクのスケジュールデータを編集する。ユーザの編集は、メンバースケジュールエディタのテーブルの行に影響を与えるイベントを有する。メンバースケジュールエディタ302のXXXJavaScriptProcessor1410(図14)のクラス(図15のCMemberScheduleTaskRowData1506など)のメンバーファンクションは、必要に応じてイベントに基づき要素のプロパティを変更するため、クラスのオブジェクトの属性として各要素への直接的なアクセスを有する。各要素は、エディタセッションの終了時に、サーバプロセッサにわたすことが可能なタスクに関する情報を当該行に維持する。
ブロック3404において、影響を受けた行に対応するクラスオブジェクトは、イベントに基づきクラスオブジェクトの1以上の属性のそれぞれについて値を直接操作する。この例から続けて、メンバースケジュールエディタ302のXXXJavaScriptProcessor1410のCMemberScheduleTaskRowData1506クラスのオブジェクトのメンバーファンクションは、オブジェクトの属性値を設定し、メンバースケジュールエディタ302の要素の各値を操作する。
ブロック3406において、クライアントは、ブロック3404において操作された属性の各値を含む1以上の属性のそれぞれの値をサーバに送信する。例えば、メンバースケジュールエディタ302のXXXJavaScriptProcessor1410を有するクライアントプロセッサ602(図6)は、操作されたデータをサーバプロセッサ604(図6)に提供する。ブロック3408において、サーバは、各属性の値をデータベースに格納する。例えば、サーバプロセッサ604は、データベース506、536(図5)などのデータベースにデータを格納する。エディタセッションの終了時、テーブルの各行のイベントがタスクに関する情報を変更又は追加したタスクが、データベースにおいて更新又は追加される。
[デザインパターン]
“デザインパターン”は、オブジェクト指向システムにおいて繰り返し発生するデザイン問題を解決する一般的なデザインを意味する。メンバースケジュールエディタの一般的なデザインは、タスク割当てエディタ及びプロジェクトスケジュールエディタに適用される。デザインパターンは、Addison−Wesleyにより刊行されているErich Gammaらによる“Design Patterns:Elements of Reusable Object−Oriented Software”に記載されている。図15〜18は、メンバースケジュールエディタの各種パッケージのクラスのデザインを示している。当該デザインは、図19〜22に示されるようなプロジェクトスケジュールエディタと、図23〜26に示されるようなタスク割当てエディタに同様に使用される。これらのエディタの特性及び動作は異なっているが、デザインパターンはシステムのすべてのエディタにより利用可能である。さらなるエディタがプロジェクトスケジュール管理システムに追加される場合、新たなエディタの設計及び実装に関する労力及び作業は、既存のエディタのデザインパターンに従うことによって大きく低減することができる。
図36は、本発明の実施例によるエディタに対応するシステムの3つの主要なパッケージに着目したテーブル7のインデックス化部分を示す図である。各エディタは、図14に記載されるような4つのサブパッケージを有する。各サブパッケージは、それらのプロセスを実行するための同様のクラス構成を有する。各パッケージからのクラスの記載は、エディタのデザインパターンを示すのに役立つ。
CTaskAssignmentTaskRowData3602、CProjectScheduleTaskRowData3612及びCMemberScheduleTaskRowData3622の各クラスは、データベースからタスク情報を取得し、行のタスク情報をそれの対応するエディタに表示するためのクライアントコードを生成する各自のXXXPHPProcessorパッケージの一部である。CTaskAssignmentTaskRowData3602は、プロジェクトタスク、対応するメンバータスク及びメンバータスクのメンバーへの割当てに関する情報を取得する。CTaskAssignmentTaskRowData3602は、プロジェクトタスク行とメンバー割当てによるメンバータスク行とをタスク割当てエディタに表示するためのクライアントコードを生成する。CProjectScheduleTaskRowData3612は、プロジェクトタスク、対応するメンバータスク及びタスクのスケジュールに関する情報を取得する。CProjectScheduleTaskRowData3612は、プロジェクトタスクスケジュールと対応するメンバータスクスケジュールの行をプロジェクトスケジュールエディタに表示するためのクライアントコードを生成する。CMemberScheduleTaskRowData3622は、メンバータスク、すべての詳細タスク(レベル4までのタスク)及びタスクのスケジュールに関する情報を取得する。CMemberScheduleTaskRowData3622は、メンバータスクスケジュールと対応する詳細タスクスケジュールの行をメンバースケジュールエディタに表示するためのクライアントコードを生成する。各エディタのXXXPHPProcessorパッケージは、情報が異なるものであっても、タスク行をクライアントプロセッサのエディタに表示するためのコードを生成するためのクラスを利用する。
CTaskAssignmentTable3604及びCProjectTableManager3614の各クラス並びにCTableManager及びCMemberScheduleTable3624の組み合わせは、対応するエディタのテーブル及び各行を生成、管理及び維持する各自のXXXJavaScriptProcessorパッケージの一部である。メンバースケジュールエディタはタスク割当てエディタ及びプロジェクトスケジュールエディタより相対的に複雑であるため(すなわち、異なるレベルでのタスクの追加及び削除、実際の日付の設定、上位レベルのタスクスケジュールにより下位レベルタスクスケジュールの更新)、2つのクラスはテーブル及び行を管理するのに利用される。エディタのテーブルにおいて発生しうるイベントのタイプ及びテーブルの各コンポーネントは異なるが、それらはすべてパッケージのデザインにおいて1又は2のクラスにより表すことができる。XXXJavaScriptProcessorパッケージは、テーブル、行及びセルなどのエディタの各部分に対応するクラスを含む。
CTaskAssignmentUpdater3606、CProjectTaskUpdater3616及びCMemberTaskUpdater3626の各クラスは、クライアントプロセッサ上の対応するエディタセッションから転送される情報によって、データベースのタスク情報を更新する各自のPostXXXPHPProcessorパッケージの一部である。エディタにおいてタスクに対して実行されるアクションに応じて、データベースのタスクに関する情報を更新するため、適切なアクションがとられる。アクションのタイプは各エディタ間で異なり、当該アクションの詳細はクラスのデザインの内部で処理され、クラスの全体ファンクションは、データベースのタスク情報を更新するためのものである。従って、すべてのエディタに対して情報をエディタセッションからデータベースに更新するため、デザインパターンが利用可能である。
CTaskAssignmentWebPageManager3608、CProjectScheduleWebPageManager3618及びCMemberScheduleWebPageManager3628の各クラスはそれぞれ、タスク割当て、プロジェクトスケジュール及びメンバースケジュールのウェブページを生成するクラスを管理する各自のXXXWebPageGeneratorパッケージの一部である。CTaskAssignmentWebPageManager3608は、各種クラスを利用してプロジェクトタスクとメンバータスクを示すテーブルによりウェブページを生成する。ここで、メンバータスクはタスクに割り当てられたメンバー及びタスクの履歴を表示する。
CProjectScheduleWebPageManager3618は、各種クラスを利用して、スケジュールの履歴と共にプロジェクトタスクスケジュール及びそれのメンバータスクスケジュールを示すテーブルによるウェブページを生成する。CMemberScheduleWebPageManager3628は、各種クラスを利用して、スケジュールの履歴と共にタスクスケジュール及びそれの詳細タスクを示すテーブルによるウェブページを生成する。同一のデザインパターンが、異なる情報を有するウェブページを生成するすべてのエディタにより使用される。
CTaskAssignmentWebPageGeneratorDBInterface3610、CProjectWebPageDBInterfaceとCProjectWebPageDBQueryGenerator3620の組み合わせ、及びCWebPageDBInterface及びCWebPageDBQueryGenerator3630の組み合わせの各クラスはそれぞれ、タスク割当て、プロジェクトスケジュール及びメンバースケジュールの各ウェブページを生成するのに必要とされるタスク情報にアクセスするため、データベースとのインタフェースを処理する各自のXXXWebPageGeneratorパッケージの一部である。エディタの各クラス及びクラスの各組み合わせは、データベースクエリを生成し、クエリに応答して情報を取得するデータベースインタフェースを表す。
図36のパッケージの各クラスの記載では、メンバースケジュールエディタの各クラスは、その他のエディタに類似するクラスを有する。このため、メンバースケジュールに使用されるデザインパターンは、その他のエディタにおいて利用可能である。エディタの各パッケージは異なる動作をするが、同一のデザインパターンが依然として使用可能である。
[付録]
付録Aは、本発明の実施例によるプロジェクトスケジュールエディタのウェブページの一例となるコードリストを示す。このコードリスト例は、<script>タグにより示されるJavaScriptと、<?php and?>タグ内に囲まれたPHPスクリプトとを示す。ウェブページは、ウェブサーバ507、530(図5)などのサーバプロセッサ604(図6)に格納される。ウェブブラウザなどのクライアントプロセッサ602(図6)がウェブページにアクセスすると、サーバプロセッサ604においてPHPスクリプトが実行され、PHPスクリプト全体がPHPスクリプトが生成するJavaScriptコードと置換される。PHPスクリプトにより生成されたものを含むすべてのJavaScriptコードが、実行のためクライアントプロセッサ602にわたされる。
付録Bは、本発明の実施例による付録AのPHPスクリプトによって生成される一例となるJavaScriptコードを示す。このJavaScriptコードは、ウェブページのPHPコードを置換する。JavaScriptコードは、データベースから取得されるタスクスケジューリング情報を含む。タスク情報は、情報を処理のためJavaScriptにわたすためのデータ構成に割り当てられる(例えば、var glo_ProjectTaskInfo=new SProjectTaskInfo()及びglo_ProjectTaskInfo.xxx=“value”など)。また、オブジェクトを生成し、プロジェクトスケジュールエディタの初期表示を提供するためにオブジェクトのメンバーファンクションを呼び出すため、JavaScriptコードが生成される(var glo_EditorManager=new CProjectEditorManager()、glo_EditorManager.setup_createEditor(“J99”)及びglo_EditorManager.setup_addTaskToEditor(glo_ProjectTaskInfo)など)。
タスク割当てエディタ(付録C及びD)とメンバースケジュールエディタ(付録E及びF)は、プロジェクトスケジュールエディタの付録A及びBに示されるように、それのウェブページがエディタを生成するための類似したフォーマットに従う。
付録Cは、本発明の実施例によるタスク割当てエディタのウェブページの一例となるコードリストを示す。このコードリスト例は、<script>タグにより示されるJavaScriptと、<?php and?>タグ内に囲まれたPHPスクリプトとを示す。ウェブページは、ウェブサーバ507、530(図5)などのサーバプロセッサ604(図6)に格納される。ウェブブラウザなどのクライアントプロセッサ602(図6)がウェブページにアクセスすると、サーバプロセッサ604においてPHPスクリプトが実行され、PHPスクリプト全体がPHPスクリプトが生成するJavaScriptコードと置換される。PHPスクリプトにより生成されたものを含むすべてのJavaScriptコードが、実行のためクライアントプロセッサ602にわたされる。
付録Dは、本発明の実施例による付録CのPHPスクリプトによって生成される一例となるJavaScriptコードを示す。このJavaScriptコードは、ウェブページのPHPコードを置換する。JavaScriptコードは、データベースから取得されるタスクスケジューリング情報を含む。タスク情報は、情報を処理のためJavaScriptにわたされる。また、オブジェクトを生成し、タスク割当てエディタの初期表示を提供するためにオブジェクトのメンバーファンクションを呼び出すため、JavaScriptコードが生成される(var glo_EditorManager=new CTaskAssignmentManager()、glo_EditorManager.setup_createEditor(“J99”)及びglo_EditorManager.setup_addTopLevelTaskToEditor(“10”,“Project Preparation”)など)。
付録Eは、本発明の実施例によるメンバースケジュールエディタのウェブページの一例となるコードリストを示す。このコードリスト例は、<script>タグにより示されるJavaScriptと、<?php and?>タグ内に囲まれたPHPスクリプトとを示す。ウェブページは、ウェブサーバ507、530(図5)などのサーバプロセッサ604(図6)に格納される。ウェブブラウザなどのクライアントプロセッサ602(図6)がウェブページにアクセスすると、サーバプロセッサ604においてPHPスクリプトが実行され、PHPスクリプト全体がPHPスクリプトが生成するJavaScriptコードと置換される。PHPスクリプトにより生成されたものを含むすべてのJavaScriptコードが、実行のためクライアントプロセッサ602にわたされる。
付録Fは、本発明の実施例による付録EのPHPスクリプトによって生成される一例となるJavaScriptコードを示す。このJavaScriptコードは、ウェブページのPHPコードを置換する。JavaScriptコードは、データベースから取得されるタスクスケジューリング情報を含む。タスク情報は、情報を処理のためJavaScriptにわたすためのデータ構成に割り当てられる。また、オブジェクトを生成し、メンバースケジュールエディタの初期表示を提供するためにオブジェクトのメンバーファンクションを呼び出すため、JavaScriptコードが生成される(var glo_EditorManager=new CEditorManager()、glo_EditorManager.setup_createEditor(“J99”,“test1”)及びglo_EditorManager.setup_addTaskToEditor(glo_MemberTaskInfo)など)。
[ハードウェア概略]
図35は、本発明の実施例が実現可能なコンピュータシステム3500を示すブロック図である。コンピュータシステム3500はさらに、ワークステーション102(図1)及びウェブサーバ104(図1)のシステム構成の非限定的な具体例を示す。コンピュータシステム3500は、情報を通信するためのバス3502又は他の通信機構と、情報を処理するためのバス3502に接続されたプロセッサ3504とを有する。コンピュータシステム3500はまた、プロセッサ3504により実行される命令及び情報を格納するため、バス3502に接続されたRAM(Random Access Memory)又は他のダイナミックストレージデバイスなどのメインメモリを有する。メインメモリ3506はまた、プロセッサ3504により実行される命令の実行中に一時的な変数又は他の中間情報を格納するため利用可能である。コンピュータシステム3500はさらに、プロセッサ3504の静的情報及び命令を格納するため、バス3502に接続されるROM(Read Only Memory)3508又は他のスタティックストレージデバイスを有する。磁気ディスク、光ディスク又は光磁気ディスクなどの記憶装置3510が、情報及び命令を格納するため設けられ、バス3502に接続される。
コンピュータシステム3500が、情報をコンピュータユーザに表示するため、CRT(Cathode Ray Tube)又はLCD(Liquid Crystal Display)などのディスプレイ3512にバス3502を介し接続されてもよい。英数字及び他のキーを含む入力装置3514が、情報及びコマンド選択をプロセッサ3504に通信するためバス3502に接続される。他のタイプのユーザ入力装置は、指示情報及びコマンド選択をプロセッサ3504に通信し、ディスプレイ3512上のカーソルの移動を制御するため、マウス、トラックボール又はカーソル指示キーなどのカーソルコントロール3516がある。この入力装置は、典型的には、当該装置が平面上でイチを指定することを可能にする第1軸(xなど)と第2軸(yなど)の2つの軸による2つの自由度を有する。
本発明の実施例は、ここに記載された技術を実現するためのコンピュータシステム3500の利用に関する。本発明の一実施例によると、これらの技術は、メインメモリ3506に含まれる1以上の命令の1以上のシーケンスをプロセッサ3504が実行することに応答して、コンピュータシステム3500により実行される。このような命令は、記憶装置3510などの他のコンピュータ可読媒体からメインメモリ3506に読み込まれるかもしれない。メインメモリ3506に含まれる命令シーケンスの実行は、プロセッサ3504にここに記載されたプロセスステップを実行させる。他の実施例では、配線回路が本発明を実現するためのソフトウェア命令の代わりに又はそれと共に利用されるかもしれない。このため、本発明の実施例は、ハードウェア回路とソフトウェアの何れか特定の組み合わせに限定されるものでない。
ここで使用される“コンピュータ可読媒体”という用語は、実行のためプロセッサ3504に命令を提供するのに関係する何れかの媒体を表す。このような媒体は、以下に限定されるものではないが、不揮発性媒体、揮発性媒体及び伝送媒体を含む多数の形態をとりうる。限定されることなく、不揮発性媒体の具体例として、記憶装置3510などの光ディスク、磁気ディスク又は光磁気ディスクがあげられる。揮発性媒体は、メインメモリ3506などの動的メモリを含む。伝送媒体は、バス3502を構成する配線を含む同軸ケーブル、銅線及び光ファイバを含む。電装媒体はまた、無線及び赤外線データ通信中に生成されるものなど、音響波又は光波の形態をとりうる。
コンピュータ可読媒体の一般的な形態として、以下に限定されることなく、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の何れかの磁気媒体、CD−ROM、DVD、他の何れかの光若しくは光磁気媒体、パンチカード、紙テープ、ホールパターンを有する他の何れかの物理媒体、RAM、PROM、EPROM、FLASH−EPROM、他の何れかのメモリチップ若しくはカートリッジ、後述されるような搬送波又はコンピュータにより読み込み可能な他の何れかの媒体があげられる。
各種形態のコンピュータ可読媒体は、実行のため1以上の命令の1以上のシーケンスをプロセッサ3504に搬送することに関するものであるかもしれない。例えば、命令は初期的にはリモートコンピュータの磁気ディスクに備えられるかもしれない。リモートコンピュータは、命令をそれの動的メモリにロードし、モデムを利用して電話線を介し送信することができる。コンピュータシステム3500のローカルモデムは、電話線を介し当該データを受信し、赤外線送信機を利用して、データを赤外線信号に変換する。赤外線検出装置は、赤外線信号により搬送されたデータを受信し、適切な回路がバス3502上に当該データを配設することが可能である。バス3502は、データをメインメモリ3506に搬送し、そこからプロセッサ3504が命令を抽出及び実行する。メインメモリ3506により受信された命令は、任意的にプロセッサ3504による実行前後に記憶装置3510に格納されてもよい。
コンピュータシステム3500はまた、バス3502に接続される通信インタフェース3518を有する。通信インタフェース3518は、ローカルネットワーク3522に接続されるネットワークリンク3520に接続した双方向データ通信を提供する。例えば、通信インタフェース3518は、対応するタイプの電話線とのデータ通信接続を提供するISDN(Integrated Services Digital Network)カード又はモデムであってもよい。他の例として、通信インタフェース3518は、互換的なLAN(Local Area Network)とのデータ通信接続を提供するLANカードであってもよい。ワイヤレスリンクがまた実装されてもよい。このような何れかの実現形態において、通信インタフェース3518は、各種タイプの情報を表すデジタルデータストリームを搬送する電気、電磁又は光信号を送受信する。
ネットワークリンク3520は、典型的には、他のデータ装置との1以上のネットワークを介したデータ通信を提供する。例えば、ネットワークリンク3520は、インターネット・サービス・プロバイダ(ISP)3526により操作されるデータ装置又はホストコンピュータ3524とのローカルネットワーク3522を介した接続を提供するかもしれない。さらに、ISP3526は、現在では一般に“インターネット”3528と呼ばれるワールドワイドパケットデータ通信ネットワークを介したデータ通信サービスを提供する。ローカルネットワーク3522及びインターネット3528は共に、デジタルデータストリームを搬送する電気、電磁又は光信号を利用する。コンピュータシステム3500との間でデジタルデータを搬送する各種ネットワークを介した信号及びネットワークリンク3520及び通信インタフェース3518を介した信号は、情報を伝送する搬送波の例示的な形態である。
コンピュータシステム3500は、ネットワーク、ネットワークリンク3520及び通信インタフェース3518を介しプログラムコードを含むデータ及びメッセージを送受信することができる。インターネットの例では、サーバ3530は、インターネット3528、ISP3526、ローカルネットワーク3522及び通信インタフェース3518を介しアプリケーションプログラムのリクエストされたコードを送信するかもしれない。
受信したコードは、実行のため記憶装置3510又は他の不揮発性ストレージに受信及び/又は格納されると、プロセッサ3504により実行されるかもしれない。このようにして、コンピュータシステム3500は、搬送波の形態によりアプリケーションコードを取得してもよい。
[拡張及び代替]
本発明の代替的な実施例が、上記記載を通じて記載され、また実施例の文脈の理解を最も容易にする場所に記載されている。さらに、本発明は、それの具体的な実施例を参照して説明された。しかしながら、本発明の実施例のより広範な範囲から逸脱することなく、各種改良及び変更が可能であることは明らかであろう。従って、本明細書及び図面は、限定的でなく例示的なものとしてみなされるべきである。
さらに本記載では、特定のプロセスステップが特定の順序により与えられ、ステップを特定するため、英字及び英数字ラベルが利用可能である。本記載において特段の断りがない場合、本発明の実施例はこのようなステップを実行する何れか特定の順序に限定される必要はない。特に、これらのラベルは、便宜的なステップの識別のためだけに使用され、当該ステップを実行する特定の順序を指定又は要求することを意図するものでない。
図1Aは、本発明の実施例によるタスク割当てエディタの画面図である。 図1Bは、本発明の実施例によるタスク割当てウェブページのサンプルの画面図である。 図2Aは、本発明の実施例によるプロジェクトスケジュールエディタの画面図である。 図2Bは、本発明の実施例によるプロジェクトスケジュールウェブページのサンプルの画面図である。 図3Aは、本発明の実施例によるメンバースケジュールエディタの画面図である。 図3Bは、本発明の実施例によるメンバースケジュールウェブページのサンプルの画面図である。 図4は、本発明の実施例によるプロジェクトメンバーがエディタの1つにログオンするためのログインウェブページの画面図である。 図5は、本発明の実施例が実現可能な動作環境を示す図である。 図6は、自動スケジューリングシステムのソフトウェアコンポーネントを含む本発明の実施例が実現可能な通信アーキテクチャを示す図である。 図7は、本発明の実施例によるシステムのクライアントプロセッサとサーバプロセッサとの間のインタフェースを示す図である。 図8は、本発明の実施例によるログインウェブページを使用してプロジェクトメンバー又はマネージャがエディタの1つにログオンするためのシーケンス図を示す。 図9は、本発明の実施例によるタスク割当てエディタによるセッションにおけるプロジェクトマネージャのシーケンス図を示す。 図10は、本発明の実施例によるプロジェクトスケジュールエディタによるセッションにおけるプロジェクトマネージャのシーケンス図を示す。 図11は、本発明の実施例によるプロジェクトメンバースケジュールエディタによるセッションにおけるプロジェクトメンバーのシーケンス図を示す。 図12は、本発明の実施例によるプロジェクト及びプロジェクトメンバーのタスク割当て及びタスクスケジュール情報を格納及び管理するのに使用されるデータベーステーブルのスキーマを示す。 図13は、本発明の実施例による図6のサーバプロセッサのプログラミングパッケージ図を説明する図である。 図14は、本発明の実施例によるエディタプロセッサパッケージのプログラミングパッケージ図を説明する図である。 図15は、本発明の実施例によるMemberSchedulePHPProcessorパッケージのクラス図を示す。 図16は、本発明の実施例によるMemberScheduleJavaScriptProcessorパッケージのクラス図を示す。 図17は、本発明の実施例によるPostMemberSchedulePHPProcessorパッケージのクラス図を示す。 図18は、本発明の実施例によるMemberScheduleWebPageGeneratorパッケージのクラス図を示す。 図19は、本発明の実施例によるProjectSchedulePHPProcessorパッケージのクラス図を示す。 図20は、本発明の実施例によるProjectScheduleJavaScriptProcessorパッケージのクラス図を示す。 図21は、本発明の実施例によるPostProjectSchedulePHPProcessorパッケージのクラス図を示す。 図22は、本発明の実施例によるProjectScheduleWebPageGeneratorパッケージのクラス図を示す。 図23は、本発明の実施例によるTaskAssignmentPHPProcessorパッケージのクラス図を示す。 図24は、本発明の実施例によるTaskAssignmentJavaScriptProcessorパッケージのクラス図を示す。 図25は、本発明の実施例によるPostTaskAssignmentPHPProcessorパッケージのクラス図を示す。 図26は、本発明の実施例によるTaskAssignmentWebPageGeneratorパッケージのクラス図を示す。 図27は、本発明の実施例によるデータベースクエリを生成するのに使用される一例となるコンスタント文字列を示す。 図28は、本発明の実施例による図27のコンスタント文字列からデータベースクエリを生成するのに使用される一例となるスクリプトを示す。 図29は、本発明の実施例によるコンスタント文字列からクエリ文字列を生成するプロセスを示すフロー図である。 図30は、本発明の実施例によるエディタのウェブページの各コンポーネントを示す。 図31は、本発明の実施例によるウェブページの各コンポーネントを処理するプロセッサと共にエディタのウェブページの各コンポーネントを示す。 図32は、本発明の実施例によるクライアント・サーバベースプロジェクトスケジュール管理システムによるプロジェクト管理方法を示すフロー図である。 図33は、本発明の実施例によるネットワークベースプロジェクトスケジュール管理システムにおけるデータベースクエリを自動生成する方法を示すフロー図である。 図34は、本発明の実施例によるプロジェクトスケジュール管理システムにおけるタスク管理方法を示すフロー図である。 図35は、本発明の実施例が実現可能なコンピュータシステム3500を示すブロック図である。 図36は、本発明の実施例によるエディタに対応するシステムの3つの主要なパッケージに着目したテーブル7のインデックス化部分を示す図である。
符号の説明
102 タスク割当てエディタ
202 プロジェクトスケジュールエディタ
302 メンバースケジュールエディタ
500 ネットワーク
501、502 コンピュータワークステーション
506、536、606 データベース
507、530 ウェブサーバ
602 クライアントプロセッサ
604 サーバプロセッサ
3500 コンピュータシステム
3502 バス
3504 プロセッサ
3506 メインメモリ
3508 ROM
3510 記憶装置
3512 ディスプレイ
3514 入力装置
3516 カーソルコントロール
3518 通信インタフェース
3520 ネットワークリンク
3522 ローカルネットワーク
3524 ホストコンピュータ
3526 インターネット・サービス・プロバイダ(ISP)
3528 インターネット
3530 サーバ

Claims (14)

  1. クライアント・サーバベースプロジェクトスケジュールシステムによりプロジェクトスケジュールを管理するコンピュータにより実現される方法であって、
    前記スケジュールシステムに係るエディタを閲覧するリクエストを受信するステップと、
    前記リクエストに応答して、サーバがデータベースから第1のスケジュールに関する情報にアクセスするステップと、
    前記エディタを表示し、該エディタに前記第1のスケジュールに関する情報を表示し、クライアントにより前記エディタを管理するため、前記サーバが該クライアントにより実行される第1のクライアントにより実行可能なコードを生成するステップと、
    前記サーバが前記第1のクライアントにより実行可能なコードと前記第1のスケジュールに関する情報とを前記クライアントに転送するステップと、
    前記エディタを表示し、該エディタに前記第1のスケジュールに関する情報を表示し、前記エディタを管理するため、前記クライアントが前記第1のクライアントにより実行可能なコードの少なくとも一部を実行するステップと、
    を有する方法。
  2. 前記クライアントが前記エディタを介しユーザから第2のスケジュールに関する情報を受信するステップと、
    前記第2のスケジュールに関する情報を前記エディタに維持するため、前記クライアントが前記クライアントにより実行可能なコードの少なくとも一部を実行するステップと、
    前記クライアントが前記第2のスケジュールに関する情報を前記エディタから前記サーバに転送するステップと、
    前記サーバが前記第2のスケジュールに関する情報を前記データベースに格納するステップと、
    をさらに有する、請求項1記載の方法。
  3. 前記クライアントが前記エディタに係るウェブページをリクエストすることに応答して、前記サーバが少なくとも前記データベースからの前記第2のスケジュールに関する情報にアクセスするステップと、
    前記エディタに係るウェブページを表示し、該ウェブページに前記第2のスケジュールに関する情報を表示するため、前記サーバが前記クライアントにより実行される第2のクライアントにより実行可能なコードを生成するステップと、
    前記サーバが前記第2のクライアントにより実行可能なコードと前記第2のスケジュールに関する情報を前記クライアントに転送するステップと、
    前記エディタに係るウェブページを表示し、該ウェブページに前記第2のスケジュールに関する情報を表示するため、前記クライアントが前記第2のクライアントにより実行可能なコードを実行するステップと、
    をさらに有する、請求項2記載の方法。
  4. 前記スケジュールシステムに係るエディタ群からの各エディタに関連して、前記ステップのすべてが実行され、
    前記エディタ群は、タスク割当てエディタ、プロジェクトスケジュールエディタ及びメンバースケジュールエディタから構成される、請求項3記載の方法。
  5. 前記第1のスケジュールに関する情報にアクセスするステップと前記第1のクライアントにより実行可能なコードを生成するステップとは、前記プロジェクトスケジュールシステムのサーバに係る第1モジュールによって実行され、
    前記エディタを表示し、該エディタに前記第1のスケジュールに関する情報を表示し、前記エディタを管理するステップと、前記エディタに前記第2のスケジュールに関する情報を維持するステップとは、前記プロジェクトスケジュールシステムのクライアントに係る第2モジュールにより実行され、
    前記第2のスケジュールに関する情報を前記データベースに格納するステップは、前記プロジェクトスケジュールシステムのサーバに係る第3モジュールにより実行され、
    前記第2のスケジュールに関する情報に少なくともアクセスするステップと、前記第2のクライアントにより実行可能なコードを生成するステップとは、前記プロジェクトスケジュールシステムのサーバに係る第4モジュールにより実行される、請求項3記載の方法。
  6. 前記スケジュールシステムに係るエディタ群からの各エディタは、前記第1モジュール、前記第2モジュール、前記第3モジュール及び前記第4モジュールを有し、
    前記エディタ群は、タスク割当てエディタ、プロジェクトスケジュールエディタ及びメンバースケジュールエディタから構成される、請求項5記載の方法。
  7. 前記アクセスするステップは、前記データベースからの第1のクライアントにより実行可能なコードを生成するため、前記サーバがPHP(Hypertext Preprocessor)コードを実行することから構成される、請求項1記載の方法。
  8. 前記生成するステップは、前記第1のクライアントにより実行可能なコードをJavaScriptコードとして生成するため、前記サーバがPHPコードを実行することから構成される、請求項1記載の方法。
  9. 前記生成するステップは、前記第1のクライアントにより実行可能なコードをJavaScriptコードとして生成し、前記第1のスケジュールに関する情報を前記クライアントに格納及び転送するための構成を前記JavaScriptコードにより生成するため、前記サーバがPHPコードを実行することから構成される、請求項1記載の方法。
  10. 前記生成するステップは、前記エディタを生成、管理及び維持するJavaScriptクラスのオブジェクトをインスタンス化するためのJavaScriptコードとして、前記サーバが前記第1のクライアントにより実行可能なコードを生成することから構成される、請求項1記載の方法。
  11. 前記生成するステップは、前記第1のスケジュールに関する情報を前記エディタに表示するため、前記オブジェクトのメンバーファンクションを呼び出すためのJavaScriptコードとして、前記サーバが前記第1のクライアントにより実行可能なコードを生成することから構成される、請求項1記載の方法。
  12. 請求項1乃至11何れか一項記載の方法を1以上のプロセッサに実行させる1以上の命令シーケンスを有するコンピュータ可読記憶媒体。
  13. 1以上のプロセッサと、
    前記1以上のプロセッサに通信可能に接続される1以上のメモリと、
    を有するシステムであって、
    前記1以上のメモリは、
    プロジェクトスケジュールシステムを構成するサーバに係る第1モジュールであって、前記1以上のプロセッサの少なくとも1つにより実行されるとき、前記スケジュールシステムに係るエディタインタフェースを閲覧するリクエストに応答して、データベースからの第1のスケジュールに関する情報にアクセスし、前記エディタインタフェースを表示し、該エディタインタフェースに前記第1のスケジュールに関する情報を表示し、前記プロジェクトスケジュールシステムのクライアントによる前記エディタの処理を管理するため、クライアントにより実行される第1のクライアントにより実行可能なコードを生成する第1モジュールと、
    前記クライアントに係る第2モジュールであって、前記1以上のプロセッサの少なくとも1つにより実行されるとき、前記エディタインタフェースと前記第1のスケジュールに関する情報を前記エディタインタフェースに表示し、前記第1のクライアントにより実行可能なコードに基づき前記エディタの処理を管理し、前記エディタインタフェースを介しユーザから第2のスケジュールに関する情報を受信する第2モジュールと、
    前記サーバに係る第3モジュールであって、前記1以上のプロセッサの少なくとも1つにより実行されるとき、前記クライアントから前記第2のスケジュールに関する情報を受信し、該第2のスケジュールに関する情報を前記データベースに格納する第3モジュールと、
    前記サーバに係る第4モジュールであって、前記1以上のプロセッサの少なくとも1つにより実行されるとき、前記エディタに係るウェブページを前記クライアントがリクエストすることに応答して、前記データベースからの前記第2のスケジュールに関する情報にアクセスし、前記エディタに係るウェブページを表示し、該ウェブページに前記第2のスケジュールに関する情報を表示するため、前記クライアントにより実行される第2のクライアントにより実行可能なコードを生成する第4モジュールと、
    を構成する命令を格納するシステム。
  14. 前記スケジュールシステムに係るエディタ群からの各エディタは、前記第1モジュール、前記第2モジュール、前記第3モジュール及び前記第4モジュールを有し、
    前記エディタ群は、タスク割当てエディタ、プロジェクトスケジュールエディタ及びメンバースケジュールエディタから構成される、請求項13記載のシステム。
JP2008066657A 2007-03-15 2008-03-14 ネットワーク上でプロジェクトスケジュールを管理するためのプロジェクトタスク管理システムのデータベースクエリの生成 Pending JP2008226252A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/724,963 US8826282B2 (en) 2007-03-15 2007-03-15 Project task management system for managing project schedules over a network

Publications (1)

Publication Number Publication Date
JP2008226252A true JP2008226252A (ja) 2008-09-25

Family

ID=39763981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008066657A Pending JP2008226252A (ja) 2007-03-15 2008-03-14 ネットワーク上でプロジェクトスケジュールを管理するためのプロジェクトタスク管理システムのデータベースクエリの生成

Country Status (2)

Country Link
US (1) US8826282B2 (ja)
JP (1) JP2008226252A (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100228951A1 (en) * 2009-03-05 2010-09-09 Xerox Corporation Parallel processing management framework
US10679230B2 (en) * 2009-04-07 2020-06-09 The Boeing Company Associative memory-based project management system
JP5277217B2 (ja) * 2010-08-05 2013-08-28 京セラドキュメントソリューションズ株式会社 情報処理装置およびコンピュータープログラム
US20120060155A1 (en) * 2010-09-02 2012-03-08 Keys Gregory C Method, system, and computer readable medium for workflow communication wherein instructions to a workflow application are written by the workflow application
US8453155B2 (en) 2010-11-19 2013-05-28 At&T Intellectual Property I, L.P. Method for scheduling updates in a streaming data warehouse
CA2793400C (en) * 2012-01-26 2018-02-06 The Boeing Company Associative memory-based project management system
US20130332212A1 (en) * 2012-06-06 2013-12-12 Alon Cohen Methods and systems for developing an optimised operational system in a network
US20140257906A1 (en) * 2013-03-08 2014-09-11 Trimble Navigation Limited Workflow Management Method and System
US9208382B2 (en) 2013-03-08 2015-12-08 Trimble Navigation Limited Methods and systems for associating a keyphrase with an image
US20140350985A1 (en) * 2013-05-24 2014-11-27 Construx Solutions Advisory Group Llc Systems, methods, and computer programs for providing integrated critical path method schedule management & data analytics
US10198702B2 (en) * 2015-01-30 2019-02-05 Acccenture Global Services Limited End-to end project management
US20160292622A1 (en) * 2015-04-01 2016-10-06 NoteVault, Inc. Systems and methods for indexing resources to a project schedule
EP3223200A1 (en) * 2016-03-22 2017-09-27 Hexagon Technology Center GmbH Construction site management
EP3223208A1 (en) * 2016-03-22 2017-09-27 Hexagon Technology Center GmbH Self control
US11182549B2 (en) 2017-03-06 2021-11-23 AppExtremes, LLC Systems and methods for modifying and reconciling negotiated documents
WO2020142719A1 (en) * 2019-01-04 2020-07-09 AppExtremes, LLC, d/b/a Conga Systems and methods for dynamic assignment, monitoring and management of discrete tasks
US20230025504A1 (en) * 2019-12-20 2023-01-26 Hewlett-Packard Development Company, L.P. Querying development toolchain work items in batches
CN113835681A (zh) * 2021-08-18 2021-12-24 华建数创(上海)科技有限公司 通过编辑器实现智慧运营管理中心项目制作的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001202405A (ja) * 2000-01-17 2001-07-27 Fuji Xerox Co Ltd タスク関与者間のコミュニケーション機能を有するプロジェクト管理装置およびプロジェクト管理方法
JP2002024495A (ja) * 2000-07-11 2002-01-25 Honda Motor Co Ltd スケジュール管理システム
JP2006244342A (ja) * 2005-03-07 2006-09-14 Hitachi Ltd プロジェクト計画算出方法及びシステム
US20060248166A1 (en) * 2005-04-29 2006-11-02 Jovan Milosevic System and method for client side rendering of a web page

Family Cites Families (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197001A (en) 1990-05-14 1993-03-23 International Business Machines Corp. Bill of material and project network processing
US5699310A (en) 1990-06-29 1997-12-16 Dynasty Technologies, Inc. Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications
US5682473A (en) 1995-05-03 1997-10-28 Texas Instruments Incorporated In-process inspection
AUPN773496A0 (en) 1996-01-25 1996-02-15 Task Solutions Pty Ltd Task management system
US5706502A (en) 1996-03-25 1998-01-06 Sun Microsystems, Inc. Internet-enabled portfolio manager system and method
US5826252A (en) 1996-06-28 1998-10-20 General Electric Company System for managing multiple projects of similar type using dynamically updated global database
US6901579B1 (en) 1996-11-07 2005-05-31 Fujitsu Limited Generation of source code from classes and maintaining the comment that indicates the role of the class in the generated source code
US6308164B1 (en) 1997-04-28 2001-10-23 Jeff Nummelin Distributed project management system and method
EP0979477A1 (en) 1997-04-29 2000-02-16 MCI Worldcom, Inc. Client profile management within a marketing system
CA2228574A1 (en) 1997-06-05 1999-08-02 Attention Control Systems, Inc. An automatic planning and cueing system and method
US6049776A (en) 1997-09-06 2000-04-11 Unisys Corporation Human resource management system for staffing projects
US5909689A (en) 1997-09-18 1999-06-01 Sony Corporation Automatic update of file versions for files shared by several computers which record in respective file directories temporal information for indicating when the files have been created
JPH11214462A (ja) 1998-01-22 1999-08-06 Hitachi Ltd 回路パターン検査における欠陥致命性判定方法、レビュー対象とする欠陥選択方法、およびそれらに関連する回路パターンの検査システム
US6222530B1 (en) 1998-08-21 2001-04-24 Corporate Media Partners System and method for a master scheduler
US7107268B1 (en) 1998-11-12 2006-09-12 Printable Technologies, Inc. Centralized system and method for managing enterprise operations
US6487469B1 (en) 1998-11-13 2002-11-26 Texas Instruments Incorporated System and method for integrating schedule and design environments
US20050022198A1 (en) 1998-11-16 2005-01-27 Taskserver, Inc. Computer-implemented process management system
US7212986B1 (en) 1999-06-16 2007-05-01 Metier, Ltd. Method and apparatus for planning and monitoring multiple tasks based on user defined criteria and predictive ability
US6415259B1 (en) 1999-07-15 2002-07-02 American Management Systems, Inc. Automatic work progress tracking and optimizing engine for a telecommunications customer care and billing system
US6957189B2 (en) 1999-08-30 2005-10-18 Sabre Inc. Apparatus and method for creating a marketing initiative
AU1814201A (en) 1999-12-01 2001-06-12 Sinex Aviation Technologies Corporation Dynamic aircraft maintenance management system
AU2001235814A1 (en) 2000-03-31 2001-10-15 British Telecommunications Public Limited Company Handling unscheduled tasks in a scheduling process
US7010788B1 (en) 2000-05-19 2006-03-07 Hewlett-Packard Development Company, L.P. System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs
US20020004734A1 (en) 2000-07-10 2002-01-10 Shinichiro Nishizawa Schedule managing apparatus and method and computer-readable recording medium storing schedule managing program therein
JP3882479B2 (ja) 2000-08-01 2007-02-14 コクヨ株式会社 プロジェクト活動支援システム
US20070192156A1 (en) 2000-10-24 2007-08-16 Gauger Derek K Network based, interactive project management apparatus and method
US20020078007A1 (en) 2000-12-20 2002-06-20 Carlos Herrero Task management program
US20020082889A1 (en) 2000-12-20 2002-06-27 Electronic Data Systems Corporation System and method for project management and assessment
US20070294617A1 (en) 2000-12-23 2007-12-20 Kroeger Dann E System, method, and article of manufacture for scheduling and document management integration
US7283975B2 (en) 2001-02-05 2007-10-16 Broughton W Curtis System and method for tracking and managing construction projects
US20040039723A1 (en) * 2001-02-08 2004-02-26 In Lee Systems and methods for distributing multimedia presentations over a network
US8306841B2 (en) 2001-04-17 2012-11-06 4Sight Technologies, Inc. Enterprise project management system and method therefor
US20020169738A1 (en) 2001-05-10 2002-11-14 Giel Peter Van Method and system for auditing an enterprise configuration
US20020178226A1 (en) 2001-05-24 2002-11-28 Anderson Andrew V. Method and apparatus for message escalation by digital assistants
US7191141B2 (en) 2001-06-13 2007-03-13 Ricoh Company, Ltd. Automated management of development project files over a network
US7406432B1 (en) 2001-06-13 2008-07-29 Ricoh Company, Ltd. Project management over a network with automated task schedule update
US20030014409A1 (en) 2001-07-11 2003-01-16 Shabina Shukoor Method and system for managing projects utilizing histogrammatical representations of real-time tasking and statusing
US20030046134A1 (en) 2001-08-28 2003-03-06 Frolick Harry A. Web-based project management system
US7167893B1 (en) 2001-10-03 2007-01-23 Bellsouth Intellectual Property Corp. Methods and systems for processing a plurality of errors
US7251693B2 (en) 2001-10-12 2007-07-31 Direct Computer Resources, Inc. System and method for data quality management and control of heterogeneous data sources
US6954737B2 (en) 2001-11-05 2005-10-11 Johnsondiversey, Inc. Method and apparatus for work management for facility maintenance
US7051036B2 (en) 2001-12-03 2006-05-23 Kraft Foods Holdings, Inc. Computer-implemented system and method for project development
US20030135481A1 (en) 2001-12-07 2003-07-17 Philip Helmes Rules based method and system for project performance monitoring
JP2003242321A (ja) 2002-02-20 2003-08-29 Hitachi Ltd プロジェクト情報処理装置及びコンピュータ・ソフトウエア
US20030225611A1 (en) 2002-05-30 2003-12-04 Wilson Ethel M. Electronic source inspection process
US20040017400A1 (en) 2002-07-26 2004-01-29 Ly Eric Thichvi Method for project planning
US7058660B2 (en) 2002-10-02 2006-06-06 Bank One Corporation System and method for network-based project management
US8510181B2 (en) 2002-10-04 2013-08-13 Hart Business Solutions, L.L.C. Administering a contract over a data network
EP1573483A4 (en) 2002-10-17 2006-10-11 Knowledge It Corp VIRTUAL KNOWLEDGE MANAGEMENT SYSTEM
US20040078257A1 (en) 2002-10-21 2004-04-22 Laborsage, Inc. Labor and resource scheduling system
US7171652B2 (en) 2002-12-06 2007-01-30 Ricoh Company, Ltd. Software development environment with design specification verification tool
US20040117046A1 (en) 2002-12-12 2004-06-17 Renzo Colle User interface for scheduling tasks
US7219107B2 (en) * 2002-12-23 2007-05-15 Sap Ag Collaborative information spaces
US7584114B2 (en) 2003-01-22 2009-09-01 International Business Machines Corporation System and method for integrating projects events with personal calendar and scheduling clients
WO2004070653A2 (en) 2003-01-31 2004-08-19 Discovery Partners International Image analysis system and method
AU2004237171B2 (en) 2003-04-30 2010-02-11 Landmark Graphics Corporation Stochastically generating facility and well schedules
US20030191681A1 (en) 2003-05-06 2003-10-09 Gallion Kirk P. Method for managing a business process related to a document publishing project
WO2004114096A2 (en) 2003-06-20 2004-12-29 Newdea, Inc. Improved philanthropy management system and method of doing business
US20040267595A1 (en) 2003-06-30 2004-12-30 Idcocumentd, Llc. Worker and document management system
JP2005031771A (ja) 2003-07-08 2005-02-03 Hitachi Ltd ジョブスケジューリング管理方法及びシステム並びにプログラム
WO2005008403A2 (en) 2003-07-10 2005-01-27 Computer Associates Think, Inc. Apparatuses and methods for dynamic creation of phase gantt charts
US20050027386A1 (en) 2003-07-30 2005-02-03 Michele Weigand Decentralized project management system
US7590971B2 (en) 2003-08-01 2009-09-15 Idx Investment Corporation Enterprise task manager
US7308675B2 (en) 2003-08-28 2007-12-11 Ricoh Company, Ltd. Data structure used for directory structure navigation in a skeleton code creation tool
US20050080714A1 (en) 2003-09-30 2005-04-14 Cmarket, Inc. Method and apparatus for combining items in an on-line charitable auction or fund raising event
US20050138031A1 (en) 2003-12-05 2005-06-23 Wefers Wolfgang M. Systems and methods for assigning task-oriented roles to users
US8549036B2 (en) 2003-12-22 2013-10-01 Bladelogic, Inc. Information technology enterprise manager and product portfolio manager application module
WO2005071564A1 (en) 2004-01-21 2005-08-04 Rnc Global Projects A project management method and system
JP2005284385A (ja) 2004-03-26 2005-10-13 Ricoh Co Ltd プロジェクト管理方法及びプロジェクト管理プログラム
US20060042125A1 (en) * 2004-09-01 2006-03-02 Eddie Chen Abrasion-resistant shoe upper
US8290805B2 (en) 2004-09-13 2012-10-16 Hirokazu Usui Project management system
US8005710B2 (en) 2004-09-28 2011-08-23 Microsoft Corporation Methods and systems for caching and synchronizing project data
US7496886B2 (en) * 2004-09-30 2009-02-24 Microsoft Corporation Method and system for providing cross project commitments
US7788589B2 (en) 2004-09-30 2010-08-31 Microsoft Corporation Method and system for improved electronic task flagging and management
US20060090071A1 (en) 2004-10-13 2006-04-27 Werner Sinzig Systems and methods for project management
US8626570B2 (en) 2004-12-22 2014-01-07 Bank Of America Corporation Method and system for data quality management
US8005704B2 (en) 2005-01-19 2011-08-23 Macfarlane Bryan Method and system for tracking of work-item revisions
US8510148B2 (en) 2005-03-01 2013-08-13 Alcatel Lucent Methods and apparatus for associating and displaying project planning and management information in conjunction with geographic information
JP2006285522A (ja) 2005-03-31 2006-10-19 Ntt Docomo Inc タスク選択支援装置、及び、タスク選択支援方法
US7599934B2 (en) 2005-09-27 2009-10-06 Microsoft Corporation Server side filtering and sorting with field level security
US20070143827A1 (en) 2005-12-21 2007-06-21 Fiberlink Methods and systems for intelligently controlling access to computing resources
JP2007168382A (ja) * 2005-12-26 2007-07-05 Canon Inc 印刷装置、印刷システム、印刷方法、及びそのプログラム、記憶媒体
WO2007091979A1 (en) 2006-02-08 2007-08-16 National University Of Singapore A method and system for constraint-based project scheduling
US20070203660A1 (en) 2006-02-28 2007-08-30 Ed North Systems and related methods for managing data corresponding to environmental inspections, and for dynamically generating an inspection report
KR100785352B1 (ko) 2006-04-21 2007-12-18 엔에이치엔(주) 검색결과리스트 생성 방법 및 검색결과리스트 생성 시스템
US8027861B2 (en) 2006-06-05 2011-09-27 Lee Page Brintle Systems and methods for shared task management
US20070288288A1 (en) 2006-06-07 2007-12-13 Tetsuro Motoyama Use of schedule editors in a network-based project schedule management system
US8050953B2 (en) 2006-06-07 2011-11-01 Ricoh Company, Ltd. Use of a database in a network-based project schedule management system
US8799043B2 (en) 2006-06-07 2014-08-05 Ricoh Company, Ltd. Consolidation of member schedules with a project schedule in a network-based management system
US20070288283A1 (en) 2006-06-09 2007-12-13 Devshop Inc. Method for project management
US8234142B2 (en) 2006-07-26 2012-07-31 Dsheet Llc Method and system for strategic project planning
JP2008059368A (ja) 2006-08-31 2008-03-13 Ricoh Co Ltd ワークフロー管理システム、ワークフロー管理方法、ワークフロー管理プログラムおよび記録媒体
US20080103871A1 (en) 2006-10-26 2008-05-01 Raytheon Company Company project management system
US20080201713A1 (en) 2007-02-16 2008-08-21 Pivotal Labs, Inc. Project Management System
US7617245B2 (en) 2007-02-26 2009-11-10 Accenture Global Services Gmbh Workflow definition and management system
JP2008217719A (ja) 2007-03-07 2008-09-18 Ricoh Co Ltd ワークフロー管理システム、管理サーバ、担当者端末、ワークフロー管理システムの進捗管理方法、管理サーバの進捗管理方法、及び管理サーバの進捗管理プログラム
US9152433B2 (en) 2007-03-15 2015-10-06 Ricoh Company Ltd. Class object wrappers for document object model (DOM) elements for project task management system for managing project schedules over a network
US7668800B2 (en) 2007-03-15 2010-02-23 Ricoh Company, Ltd. Database query generation for project task management system for managing project schedules over a network
US20090217240A1 (en) 2008-02-22 2009-08-27 Tetsuro Motoyama Script generation for graceful termination of a web enabled client by a web server
US20090217241A1 (en) 2008-02-22 2009-08-27 Tetsuro Motoyama Graceful termination of a web enabled client
US20090222299A1 (en) 2008-02-29 2009-09-03 Gregory Clemenson Systems and methods for defining and managing task oriented projects
US8021156B2 (en) 2008-04-17 2011-09-20 Sweeney Kenneth J Method and system for arranging and displaying project management intelligence
US8577712B2 (en) 2008-05-02 2013-11-05 Hewlett-Packard Development Company, L.P. Assessing risk
US20090287522A1 (en) 2008-05-16 2009-11-19 Tetsuro Motoyama To-Do List Representation In The Database Of A Project Management System
US8352498B2 (en) 2008-05-16 2013-01-08 Ricoh Company, Ltd. Managing to-do lists in a schedule editor in a project management system
US8321257B2 (en) 2008-05-16 2012-11-27 Ricoh Company, Ltd. Managing project schedule data using separate current and historical task schedule data
US7941445B2 (en) 2008-05-16 2011-05-10 Ricoh Company, Ltd. Managing project schedule data using separate current and historical task schedule data and revision numbers
US8706768B2 (en) 2008-05-16 2014-04-22 Ricoh Company, Ltd. Managing to-do lists in task schedules in a project management system
US8862489B2 (en) 2008-09-16 2014-10-14 Ricoh Company, Ltd. Project management system with inspection functionality
US20100070328A1 (en) 2008-09-16 2010-03-18 Tetsuro Motoyama Managing Project Schedule Data Using Project Task State Data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001202405A (ja) * 2000-01-17 2001-07-27 Fuji Xerox Co Ltd タスク関与者間のコミュニケーション機能を有するプロジェクト管理装置およびプロジェクト管理方法
JP2002024495A (ja) * 2000-07-11 2002-01-25 Honda Motor Co Ltd スケジュール管理システム
JP2006244342A (ja) * 2005-03-07 2006-09-14 Hitachi Ltd プロジェクト計画算出方法及びシステム
US20060248166A1 (en) * 2005-04-29 2006-11-02 Jovan Milosevic System and method for client side rendering of a web page

Also Published As

Publication number Publication date
US8826282B2 (en) 2014-09-02
US20080229313A1 (en) 2008-09-18

Similar Documents

Publication Publication Date Title
JP2008251004A (ja) ネットワーク上でプロジェクトスケジュールを管理するためのプロジェクトタスク管理システムのデータベースクエリの生成
JP2008226252A (ja) ネットワーク上でプロジェクトスケジュールを管理するためのプロジェクトタスク管理システムのデータベースクエリの生成
US9152433B2 (en) Class object wrappers for document object model (DOM) elements for project task management system for managing project schedules over a network
JP5396904B2 (ja) 処理方法、データ処理システム及びコンピュータプログラム
US7941445B2 (en) Managing project schedule data using separate current and historical task schedule data and revision numbers
US8352498B2 (en) Managing to-do lists in a schedule editor in a project management system
JP5396903B2 (ja) 処理方法、データ処理システム及びコンピュータプログラム
US8706768B2 (en) Managing to-do lists in task schedules in a project management system
US8050953B2 (en) Use of a database in a network-based project schedule management system
US8321257B2 (en) Managing project schedule data using separate current and historical task schedule data
US8799043B2 (en) Consolidation of member schedules with a project schedule in a network-based management system
US20090287522A1 (en) To-Do List Representation In The Database Of A Project Management System
US20100070328A1 (en) Managing Project Schedule Data Using Project Task State Data
US8862489B2 (en) Project management system with inspection functionality
US8291047B2 (en) Screen scraping interface
US20070288288A1 (en) Use of schedule editors in a network-based project schedule management system
US20110029440A1 (en) Approach for Managing Project Schedule Data in a Project Management System
US9846849B2 (en) System and method for providing an editor for use with a business process design environment
US20100180260A1 (en) Method and system for performing an automated quality assurance testing
JP2003058685A (ja) ネットワーク環境で開発プロジェクトファイルを自動管理する方法、コンピュータシステム及びプログラム
US20210117313A1 (en) Language agnostic automation scripting tool
CN110138582A (zh) 信息处理方法、装置及运维环境治理系统
Dpenha Improve reporting on test execution and test coverage
Chang The 64-bit. NET e-portal applications for e-Learning and e-Science
Abels et al. SOA4All Studio UI and Infrastructure Services D2. 4.2 First Demonstrator & Interface Specification-Prototype Documentation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130318

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130528