(57)【要約】【課題】グループメンバ全体で、さらに、複数のグループの作業を担当する利用者に対して最適な作業スケジューリングをできるようにすること。【解決手段】本発明の作業日程調整システムは、複数のメンバのタスク情報を管理し、タスクの実行日時のスケジューリングを指示するタスク情報管理部と、前記指示に基づき、メンバ毎のタスクの実行日時をスケジューリングするタスクスケジューリング部と、前記タスクスケジューリング部によるスケジューリングを管理するスケジュール管理部と、タスクを完了させるために必要な予定時間に対する該タスクを実行するための時間の不足を計算する作業あふれ判定部と、タスクを実行するための時間が不足する場合、前記タスク情報管理部が管理するタスク情報をもとに、該タスクの担当者の変更先として抽出したメンバの候補が該タスクを実行する場合の評価を行うタスク担当者候補抽出部と、を含む。【選択図】      図１
2011090625.tif 000002
【特許請求の範囲】
【請求項１】
１つ又は複数のグループに所属し、自らが所属するグループに帰属するタスクを実行する複数のメンバのタスク情報を管理し、タスクの実行日時のスケジューリングを指示するタスク情報管理部と、
前記スケジューリングの指示に基づき、タスクの期限と、タスクに付与された重要度と、を用いて、メンバ毎のタスクの実行日時をスケジューリングするタスクスケジューリング部と、
前記タスクスケジューリング部によるスケジューリングを管理するスケジュール管理部と、
前記タスクスケジューリング部によるスケジュールの結果から、タスクを完了させるために必要な予定時間に対する該タスクを実行するメンバが該タスクを実行するための時間の不足である、あふれ時間を計算する作業あふれ判定部と、
タスクを担当するメンバが該タスクを実行するための時間が不足する場合、前記タスク情報管理部により管理されている該タスクの前記タスク情報を読み出し、該タスクが帰属するグループに所属するメンバから、該タスクの担当者の変更先となるメンバの候補を抽出し、該抽出したメンバの候補のそれぞれが該タスクを実行する場合の評価を行うタスク担当者候補抽出部と、
を含む作業日程調整システム。
【請求項２】
タスク毎に、該タスクが完了しなければ実行できない他のタスクである後続タスクへの影響の大きさを表す影響度の算出を行う影響度算出部
を含み、
前記タスクスケジューリング部が、前記タスク情報管理部からのタスクの実行日時のスケジューリング指示を受け、タスクの期限と、タスクの重要度と、タスクの影響度とを用いて、メンバ毎のタスクの実行日時をスケジューリングする
請求項１に記載の作業日程調整システム。
【請求項３】
複数のメンバが共同で行う共同作業の実行日時を、該複数のメンバが同時に該共同作業を実行できるようにスケジューリングする共同作業スケジューリング部
を含む請求項２に記載の作業日程調整システム。
【請求項４】
タスク情報又は共同作業情報と、タスクスケジュール情報と、あふれタスク情報との関連を表す関連情報を生成し管理する関連情報管理部
を含む請求項２又は３に記載の作業日程調整システム。
【請求項５】
前記影響度算出部が、影響度を算出する対象であるタスクの完了予定時刻における、該タスクの後続タスクを完了させなければならない時刻までの時間を、該後続タスクを完了させるために必要な時間で割った値を、複数の後続タスクについて計算した中での最大値を、前記タスクの影響度として算出する
請求項２乃至４のいずれかに記載の作業日程調整システム。
【請求項６】
前記タスク担当者候補抽出部が、タスクを実行するメンバを変更することによって新たに発生するあふれ時間が最も少なくなるように、該タスクを実行するメンバを選択する
請求項１乃至５のいずれかに記載の作業日程調整システム。
【請求項７】
１つ又は複数のグループに所属し、自らが所属するグループに帰属するタスクを実行する複数のメンバのタスク情報を管理し、タスクの実行日時のスケジューリングを指示し、
前記スケジューリングの指示に基づき、タスクの期限と、タスクに付与された重要度と、を用いて、メンバ毎のタスクの実行日時をスケジューリングし、
前記タスクスケジューリング部によるスケジュールの結果から、タスクを完了させるために必要な予定時間に対する該タスクを実行するメンバが該タスクを実行するための時間の不足である、あふれ時間を計算し、
タスクを担当するメンバが該タスクを実行するための時間が不足する場合、前記タスク情報管理部により管理されている該タスクの前記タスク情報を読み出し、該タスクが帰属するグループに所属するメンバから、該タスクの担当者の変更先となるメンバの候補を抽出し、該抽出したメンバの候補のそれぞれが該タスクを実行する場合の評価を行う、
作業日程調整システム制御方法。
【請求項８】
タスク毎に、該タスクが完了しなければ実行できない他のタスクである後続タスクへの影響の大きさを表す影響度の算出を行い、
を含み、
前記タスクのスケジューリングが、タスクの期限と、タスクの重要度と、タスクの影響度とを用いて、メンバ毎のタスクの実行日時をスケジューリングする
請求項７に記載の作業日程調整システム制御方法。
【請求項９】
複数のメンバが共同で行う共同作業の実行日時を、該複数のメンバが同時に該共同作業を実行できるようにスケジューリングする
請求項８に記載の作業日程調整システム制御方法。
【請求項１０】
タスク情報又は共同作業情報と、タスクスケジュール情報と、あふれタスク情報との関連を表す関連情報を生成し管理する
請求項８又は９に記載の作業日程調整システム制御方法。
【請求項１１】
前記影響度の算出が、影響度を算出する対象であるタスクの完了予定時刻における、該タスクの後続タスクを完了させなければならない時刻までの時間を、該後続タスクを完了させるために必要な時間で割った値を、複数の後続タスクについて計算した中での最大値を、前記タスクの影響度として算出する
請求項８乃至１０のいずれかに記載の作業日程調整システム制御方法。
【請求項１２】
前記タスク担当者候補の抽出が、タスクを実行するメンバを変更することによって新たに発生するあふれ時間が最も少なくなるように、該タスクを実行するメンバを選択する
請求項７乃至１１のいずれかに記載の作業日程調整システム制御方法。
【請求項１３】
コンピュータを、
１つ又は複数のグループに所属し、自らが所属するグループに帰属するタスクを実行する複数のメンバのタスク情報を管理し、タスクの実行日時のスケジューリングを指示するタスク情報管理部と、
前記スケジューリングの指示に基づき、タスクの期限と、タスクに付与された重要度と、を用いて、メンバ毎のタスクの実行日時をスケジューリングするタスクスケジューリング部と、
前記タスクスケジューリング部によるスケジューリングを管理するスケジュール管理部と、
前記タスクスケジューリング部によるスケジュールの結果から、タスクを完了させるために必要な予定時間に対する該タスクを実行するメンバが該タスクを実行するための時間の不足である、あふれ時間を計算する作業あふれ判定部と、
タスクを担当するメンバが該タスクを実行するための時間が不足する場合、前記タスク情報管理部により管理されている該タスクの前記タスク情報を読み出し、該タスクが帰属するグループに所属するメンバから、該タスクの担当者の変更先となるメンバの候補を抽出し、該抽出したメンバの候補のそれぞれが該タスクを実行する場合の評価を行うタスク担当者候補抽出部と、
して動作させる作業日程調整プログラム。
【請求項１４】
コンピュータを、
タスク毎に、該タスクが完了しなければ実行できない他のタスクである後続タスクへの影響の大きさを表す影響度の算出を行う影響度算出部と、
して動作させ、
前記タスクスケジューリング部が、タスクの期限と、タスクの重要度と、タスクの影響度とを用いて、メンバ毎のタスクの実行日時をスケジューリングする
請求項１３に記載の作業日程調整プログラム。
【請求項１５】
コンピュータを、
複数のメンバが共同で行う共同作業の実行日時を、該複数のメンバが同時に該共同作業を実行できるようにスケジューリングする共同作業スケジューリング部
として動作させる請求項１４に記載の作業日程調整プログラム。
【請求項１６】
コンピュータを、
タスク情報又は共同作業情報と、タスクスケジュール情報と、あふれタスク情報との関連を表す関連情報を生成し管理する関連情報管理部
として動作させる請求項１４又は１５に記載の作業日程調整プログラム。
【請求項１７】
前記影響度算出部が、影響度を算出する対象であるタスクの完了予定時刻における、該タスクの後続タスクを完了させなければならない時刻までの時間を、該後続タスクを完了させるために必要な時間で割った値を、複数の後続タスクについて計算した中での最大値を、前記タスクの影響度として算出する
請求項１４乃至１６のいずれかに記載の作業日程調整プログラム。
【請求項１８】
前記タスク担当者候補抽出部が、タスクを実行するメンバを変更することによって新たに発生するあふれ時間が最も少なくなるように、該タスクを実行するメンバを選択する
請求項１３乃至１７のいずれかに記載の作業日程調整プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業日程調整システム、作業日程調整方法、および作業日程調整プログラムに関し、特に、複数のグループのタスクをタスク担当者ごとに自動的に作業スケジューリングし、タスクの担当者を変更するのに適したメンバの候補を抽出し、作業スケジュールの全体最適化を図ることができる作業日程調整システム、作業日程調整方法、および作業日程調整プログラムに関する。
【背景技術】
【０００２】
計算機を利用して、利用者に割り当てられた業務（タスク）を電子的に管理するタスク管理手段が広く普及している。利用者はタスク管理手段にタスク情報を入力し、タスクが完了したらタスク管理手段に登録されているタスク情報を完了状態にすることによって、自分のタスクの作業もれや期限遅れなどの危険性を低減することができる。簡単なタスク管理手段では、タスク情報をリストとして保持し、タスクの完了状態を管理している。しかし、このようなタスク管理手段では、タスクをいつ実行するかを扱っておらず、利用者の経験によってタスクの実行日時がスケジューリングされるため、最適な作業スケジューリングにならない場合があるという課題がある。
【０００３】
タスクを自動的にスケジューリングするシステムの一例が、特許文献１に記載されている。特許文献１に記載のスケジューリング装置は、複数の仮想ジョブの定められた作業順序を入力する作業順序入力部と、工数及び納期からジョブ毎の優先度を求める評価式を記憶する評価式記憶部と、該評価式の係数を求める係数算出部と、前記評価式記憶部が記憶している評価式に基づいて複数のジョブの優先度を求める作業順序決定部を含み、概略次のように動作する。
【０００４】
まず、納期と工数を想定した複数の仮想ジョブの定められた作業順序に基づき、ジョブ毎の優先度を求める評価式の各変数を求める。次に、納期と工数が既知である複数の実際のジョブに対して、係数を求めた前記の評価式に基づいて優先度を求める。優先度に従って、前記複数の実際のジョブの作業順序を決定する。
【０００５】
特許文献２には、会議の重要度や会議関係者の出席必要度・個人スケジュールから、会議日程を調整する会議日程調整システムの一例が記載されている。特許文献２の会議日程調整システムは、個人スケジュールデータベースと、出席依頼先等入力手段と、候補空き時間帯検索手段と、出席可否回答状況監視・通知手段と、候補日程再検討手段と、を含み、概略以下のように動作する。
【０００６】
まず会議主催者は、出席依頼先メンバとメンバ毎の出席必要度と所要時間等を、出席依頼先等入力手段により入力する。次に、候補空き時間帯検索手段が、個人のスケジュールをあらかじめ入力してある個人スケジュールデータベースから、会議の所要時間を下回らず、出席重要度が「必須」のメンバに共通する空き時間帯を検索する。検索した空き時間帯を、出席重要度が「重要」であるメンバの出席可能人数が多い順番にソートし、さらに同順の時間帯を出席重要度が「任意」のメンバの出席可能人数が多い順番にソートする。
【０００７】
会議主催者は、ソートの結果から複数の時間帯を候補日程として選択し、出席依頼先メンバに出席可否回答を依頼する。出席可否回答状況監視・通知手段は、出席可否回答状況を監視し、出席重要度が「必須」のメンバが揃う候補日程が一つもない場合は、会議主催者の日程の再考を促す。
【０００８】
出席重要度が「必須」のメンバが揃う候補日程が存在した場合、候補日程再検討手段は、出席重要度が「必須」のメンバが参加不可能な日程候補を除外する。候補日程再検討手段は、次に、出席重要度が「重要」のメンバの参加可能人数が多くなる順に候補日程をソートし、更に同順の候補日程を出席重要度が「任意」のメンバの出席可能人数が多い順番にソートする。ソート再検討結果として出力された候補日程から、会議主催者は適当な日程を決定する。
【０００９】
また、会議参加者のスケジュール情報とプロジェクトの工程状況に関する情報から、会議開催可能部の候補を自動選定する会議予約装置の一例が、特許文献３に記載されている。特許文献３の会議予約装置は、会議予約調整部と、工程・スケジュール調整部と、工程・スケジュール統合管理ＤＢ管理部と、ユーザ・会議室スケジュール管理データベースと、工程管理データベースと、を含む。工程管理データベースにおいて、ある作業の正味の日数と、該作業の見積もり日数が同一の場合は、該作業はクリティカルパス上の作業であることを意味し、その場合の空き時間はゼロとなる。特許文献３の会議予約装置は概略以下のように動作する。
【００１０】
まず会議主催者が会議開催予定時間、会議出席者等を入力すると、会議予約調整部は、工程・スケジュール統合管理ＤＢ管理部を介して工程・スケジュール管理データベースを検索し、会議参加者にスケジュールの空きがあるか確認する。スケジュールの空きの確認後、会議予約調整部は、工程・スケジュール調整部、工程管理ＤＢ管理部を介して、会議参加者の作業に対する空き時間を工程管理データベースから取得する。作業に対する空き時間から会議設定可能な日時を自動選定し、工程・スケジュール調整部を介して工程管理データベースとユーザ・会議室スケジュール管理データベースとの更新を行い、会議の予約を行う。
【００１１】
さらに、グループ内で複数の仕事を複数の作業者により行う場合のスケジュールを調整するスケジューリング管理システムの一例が、特許文献４に記載されている。特許文献４のスケジューリング管理システムは、スケジュール管理手段と、仕事負荷管理手段と、グループ管理手段と、通信手段と、通信命令解析手段と、公開許可入力手段と、公開情報決定手段と、仕事依頼手段とを含み、概略以下のように動作する。
【００１２】
管理するスケジュール管理手段に入力され記憶されたあるグループに属するメンバーの個人のスケジュールから、仕事負荷管理手段が仕事負荷の予測を行う。仕事負荷の予測とは、その日に実行すべき仕事と各仕事の工数の計算である。グループメンバーを記憶し、グループ内の仕事の前後関係の管理を行うグループ管理手段は、スケジュール管理手段からグループ内で実行される仕事に関する情報を受け取り、記憶する。スケジュール管理手段で記憶されている情報のうち、ユーザが公開許可入力手段により「公開」の属性値を入力した仕事情報は全てのグループメンバーに公開される。また、ユーザが公開許可入力手段により「非公開」の属性値を入力した仕事情報は、その仕事の依頼者とその仕事の関係者のみに公開される。
【００１３】
仕事の依頼者は仕事の依頼の際、まず仕事担当候補者を選択し該仕事担当候補者の仕事負荷状態を表示させる操作を行う。すると、仕事依頼手段が仕事負荷の他メンバーへの公開を要求する命令を通信命令解釈手段に送信する。通信命令解釈手段が仕事負荷の他メンバーへの公開を要求する命令を受け取ると、公開情報決定手段が公開可否の判定を行う。公開可の場合は通信命令解釈手段が公開可能なデータを仕事依頼者に送る。仕事依頼者は受け取ったデータを元に仕事の依頼を行うか決定する。
【００１４】
また、大規模なプロジェクト業務を管理する時、ガントチャートを用いてタスク管理およびプロジェクト管理を行うシステムも広く普及している。例えば、Microsoft社のMicrosoft Office Projectなどのアプリケーションソフトウェアが広く用いられている。このシステムでは、プロジェクト全体のタスクやプロジェクトメンバのタスク割り当てを、ガントチャートを用いて管理ができる。これによって複数のメンバのタスクを管理でき、ガントチャートからプロジェクト業務のクリティカルパスを自動算出することができる。また、プロジェクトメンバに対してタスクの割り当てが作業可能工数を超過しているかどうかを検出し、システムによるタスク割り当ての平準化をすることができる。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００１−３３７７１１号公報
【特許文献２】特開２００７−０６５８２７号公報
【特許文献３】特開２００７−１２２１９９号公報
【特許文献４】特許第２７７６２８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１に記載のスケジューリング装置は、利用者１人のタスクのみを扱っており、自分のタスクに後続する他者のタスクのことを考慮していない。また、該スケジューリング装置は、タスクに対してグループの概念がないため、複数のグループやプロジェクトのタスクを扱った作業の優先度を算出することができない。すなわち、特許文献１に記載のスケジューリング装置には、グループメンバ全体で、また、複数のグループのタスク全体で最適となる作業スケジューリングができないという問題があった。
【００１７】
また、特許文献２に記載の会議日程調整装置および特許文献３の会議予約装置は、それぞれの予定項目（タスク）や会議の前に完了しておかなければならない他の予定項目を考慮していない。また、該会議日程調整装置および会議予約装置は、会議予定者の予定項目を他の会議参加者に割り当て直すことは考慮していない。そのため、該会議日程調整装置および会議予約装置には、ある予定項目の前に別のある予定項目を完了させておかなければならないと言った、予定項目や会議の依存関係を考慮したスケジューリングができないという問題があった。また、予定があふれた会議参加者の一部の予定項目を他の会議参加者に割り当て直し、一部の会議参加者だけに予定項目が集中しないようにすることができないという問題があった。
【００１８】
特許文献４のスケジュール管理システムは、ユーザが手作業でスケジュールを定めるものであり、自動的にスケジューリングを行うものではなかった。また、仕事の重要度や、ある仕事の開始前に別のある仕事を完了させておく必要があると言った仕事の依存関係を考慮していない。そのため、該スケジューリングシステムには、仕事の重要度や依存関係を考慮したスケジューリングを自動的に行うことができないという問題があった。また、一つのグループにおけるスケジュールの管理を行うものであり、複数のグループが存在し、一人のメンバーが複数のグループに重複して所属する場合は考慮されていないという問題があった。
【００１９】
また、Microsoft Office Projectを始めとするプロジェクト管理システムは、１つのプロジェクトが管理対象であるため、複数のグループのタスクを扱った作業スケジューリングができない。つまり、こちらのシステムでも、複数のグループのタスク全体で最適となる作業スケジューリングができない。
【００２０】
そこで、本発明は、複数のグループのタスクをタスク担当者ごとに、タスクの期限、重要度、他のタスクへの影響度を用いて自動的に作業スケジューリングする作業日程調整システム、作業日程調整方法、および作業日程調整プログラムを提供することを目的とする。
【００２１】
本発明の目的は、グループメンバ全体で、また、複数のグループのタスク全体で最適となる作業スケジューリングを行う、作業日程調整システムを提供することにある。
【課題を解決するための手段】
【００２２】
本発明の作業日程調整システムは、１つ又は複数のグループに所属し、自らが所属するグループに帰属するタスクを実行する複数のメンバのタスク情報を管理し、タスクの実行日時のスケジューリングを指示するタスク情報管理部と、前記スケジューリングの指示に基づき、タスクの期限と、タスクに付与された重要度と、を用いて、メンバ毎のタスクの実行日時をスケジューリングするタスクスケジューリング部と、前記タスクスケジューリング部によるスケジューリングを管理するスケジュール管理部と、前記タスクスケジューリング部によるスケジュールの結果から、タスクを完了させるために必要な予定時間に対する該タスクを実行するメンバが該タスクを実行するための時間の不足である、あふれ時間を計算する作業あふれ判定部と、タスクを担当するメンバが該タスクを実行するための時間が不足する場合、前記タスク情報管理部により管理されている該タスクの前記タスク情報を読み出し、該タスクが帰属するグループに所属するメンバから、該タスクの担当者の変更先となるメンバの候補を抽出し、該抽出したメンバの候補のそれぞれが該タスクを実行する場合の評価を行うタスク担当者候補抽出部と、を含む。
【００２３】
本発明の作業日程調整システム制御方法は、１つ又は複数のグループに所属し、自らが所属するグループに帰属するタスクを実行する複数のメンバのタスク情報を管理し、タスクの実行日時のスケジューリングを指示し、前記スケジューリングの指示に基づき、タスクの期限と、タスクに付与された重要度と、を用いて、メンバ毎のタスクの実行日時をスケジューリングし、前記タスクスケジューリング部によるスケジュールの結果から、タスクを完了させるために必要な予定時間に対する該タスクを実行するメンバが該タスクを実行するための時間の不足である、あふれ時間を計算し、タスクを担当するメンバが該タスクを実行するための時間が不足する場合、前記タスク情報管理部により管理されている該タスクの前記タスク情報を読み出し、該タスクが帰属するグループに所属するメンバから、該タスクの担当者の変更先となるメンバの候補を抽出し、該抽出したメンバの候補のそれぞれが該タスクを実行する場合の評価を行う。
【００２４】
本発明の作業日程調整プログラムは、コンピュータを、１つ又は複数のグループに所属し、自らが所属するグループに帰属するタスクを実行する複数のメンバのタスク情報を管理し、タスクの実行日時のスケジューリングを指示するタスク情報管理部と、前記スケジューリングの指示に基づき、タスクの期限と、タスクに付与された重要度と、を用いて、メンバ毎のタスクの実行日時をスケジューリングするタスクスケジューリング部と、前記タスクスケジューリング部によるスケジュールの結果から、タスクを完了させるために必要な予定時間に対する該タスクを実行するメンバが該タスクを実行するための時間の不足である、あふれ時間を計算する作業あふれ判定部と、前記タスクスケジューリング部によるスケジューリングを管理するスケジュール管理部と、タスクを担当するメンバが該タスクを実行するための時間が不足する場合、前記タスク情報管理部により管理されている該タスクの前記タスク情報を読み出し、該タスクが帰属するグループに所属するメンバから、該タスクの担当者の変更先となるメンバの候補を抽出し、該抽出したメンバの候補のそれぞれが該タスクを実行する場合の評価を行うタスク担当者候補抽出部として動作させる。
【発明の効果】
【００２５】
本発明は、複数のメンバにより構成されグループ間でメンバの重複がある複数のグループのそれぞれにおいて、互いに依存するタスクを含み重要度に違いがある複数のタスクを行う場合に、特定のメンバへのタスクの集中を軽減し、全てのタスクが終了するまでの時間を短縮するスケジューリングを自動的に行えるという効果を奏する。
【図面の簡単な説明】
【００２６】
【図１】第１の実施形態の構成を示すブロック図である。
【図２】第２の実施形態におけるユーザのタスクをスケジューリングする動作を示すフローチャートである。
【図３】第１の実施形態において管理されているタスク情報の一例を示す説明図である。
【図４】第１の実施形態において管理されているタスク情報の一例を示す説明図である。
【図５】第１の実施形態におけるタスクの重要度と後続タスクへの影響度の一例を示す説明図である。
【図６】第１の実施形態において管理されているユーザ情報の一例を示す説明図である。
【図７】第１の実施形態におけるあふれタスクの担当者を変更する動作を示すフローチャートである。
【図８】第１の実施形態において管理されているタスク情報の一例を示す説明図である。
【図９】第１の実施形態において管理されているタスク情報の一例を示す説明図である。
【図１０】第１の実施形態において管理されているタスク情報の一例を示す説明図である。
【図１１】第２の実施形態及び第１の実施例の構成を示すブロック図である。
【図１２】第２の実施形態及び第１の実施例におけるユーザのタスクをスケジューリングする動作を示すフローチャートである。
【図１３】第２の実施形態及び第１の実施例において管理されているタスク情報の一例を示す説明図である。
【図１４】第１の実施形態、第２の実施形態及び第１の実施例において管理されているユーザ情報の一例を示す説明図である。
【図１５】第１の実施形態、第２の実施形態及び第１の実施例において管理されているグループ情報の一例を示す説明図である。
【図１６】第２の実施形態及び第１の実施例において管理されているタスク情報の一例を示す説明図である。
【図１７】第２の実施形態及び第１の実施例におけるタスクの影響度を計算する算出式の一例を示す説明図である。
【図１８】第２の実施形態及び第１の実施例におけるタスクの重要度と後続タスクへの影響度の一例を示す説明図である。
【図１９】第２の実施形態及び第１の実施例において管理されているユーザ情報の一例を示す説明図である。
【図２０】第１の実施形態、第２の実施形態及び第１の実施例におけるタスクの実行日時の仮スケジューリング結果の一例を示す説明図である。
【図２１】第２の実施形態及び第１の実施例におけるタスクの実行日時の本スケジューリング結果の一例を示す説明図である。
【図２２】第１の実施形態、第２の実施形態及び第１の実施例において管理されているタスクスケジュール情報の一例を示す説明図である。
【図２３】第１の実施形態、第２の実施形態及び第１の実施例において管理されているあふれタスク情報の一例を示す説明図である。
【図２４】第１の実施形態、第２の実施形態及び第１の実施例において管理されているタスクスケジュール情報の一例を示す説明図である。
【図２５】第２の実施形態及び第１の実施例において管理されているあふれタスク情報の一例を示す説明図である。
【図２６】第２の実施形態及び第１の実施例において管理されているタスク情報とあふれタスク情報とタスクスケジュール情報との関連情報の一例を示す説明図である。
【図２７】第２の実施形態及び第１の実施例におけるあふれタスクの担当者を変更する動作を示すフローチャートである。
【図２８】第１の実施形態、第２の実施形態及び第１の実施例において管理されているあふれタスク情報の一例を示す説明図である。
【図２９】第２の実施形態及び第１の実施例において管理されているタスク情報の一例を示す説明図である。
【図３０】第２の実施形態及び第１の実施例において管理されているユーザ情報の一例を示す説明図である。
【図３１】第２の実施形態及び第１の実施例において管理されているあふれタスク情報の一例を示す説明図である。
【図３２】第２の実施形態及び第１の実施例において管理されているタスク情報の一例を示す説明図である。
【図３３】第２の実施形態及び第１の実施例において管理されているタスク情報の一例を示す説明図である。
【図３４】第２の実施形態及び第１の実施例において発生するあふれタスク情報を説明する説明図である。
【図３５】第２の実施形態及び第１の実施例において管理されているあふれタスク情報の一例を示す説明図である。
【図３６】第２の実施形態及び第１の実施例において管理されているあふれタスク時間の一例を示す説明図である。
【図３７】第３の実施形態及び第２の実施例の構成を示すブロック図である。
【図３８】第３の実施形態及び第２の実施例における共同作業の開催日時をスケジューリングする動作を示すフローチャートである。
【図３９】第３の実施形態及び第２の実施例における共同作業情報登録画面の一例である。
【図４０】第３の実施形態及び第２の実施例において管理されている共同作業情報の一例を示す説明図である。
【図４１】第３の実施形態及び第２の実施例において管理されている共同作業情報とタスク情報とあふれタスク情報の関連情報の一例を示す説明図である。
【図４２】第３の実施形態及び第２の実施例において管理されている共同作業スケジュール情報の一例を示す説明図である。
【図４３】第３の実施形態及び第２の実施例における共同作業の開催日時の候補の抽出の一例を示す説明図である。
【図４４】第３の実施形態及び第２の実施例において管理されているタスク情報の一例を示す説明図である。
【図４５】第３の実施形態及び第２の実施例におけるユーザの共同作業とタスクをスケジューリングする動作を示すフローチャートである。
【図４６】第３の実施形態及び第２の実施例において管理されている共同作業スケジュール情報の一例を示す説明図である。
【図４７】第３の実施形態及び第２の実施例において管理されている共同作業スケジュール情報の一例を示す説明図である。
【図４８】第３の実施形態及び第２の実施例において管理されているタスク情報の一例を示す説明図である。
【図４９】第３の実施形態及び第２の実施例におけるタスクの重要度と後続タスクへの影響度の一例を示す説明図である。
【図５０】第３の実施形態及び第２の実施例において管理されているタスク情報の一例を示す説明図である。
【図５１】第３の実施形態及び第２の実施例における共同作業とタスクの実行日時の仮スケジューリング結果を示す説明図である。
【図５２】第３の実施形態及び第２の実施例における共同作業とタスクの実行日時の本スケジューリング結果を示す説明図である。
【図５３】第３の実施形態及び第２の実施例において管理されているタスクスケジュール情報の一例を示す説明図である。
【図５４】第３の実施形態及び第２の実施例において管理されているあふれタスク情報の一例を示す説明図である。
【図５５】第３の実施形態及び第２の実施例において管理されているタスク情報とあふれタスク情報とタスクスケジュール情報との関連情報の一例を示す説明図である。
【図５６】第３の実施形態及び第２の実施例において管理されている共同作業の開催日時候補ごとの共同作業メンバのあふれタスク情報の一例を示す説明図である。
【図５７】第３の実施形態及び第２の実施例における共同作業の開催日時候補ごとの共同作業メンバのあふれタスク情報を示す画面の一例である。
【図５８】第３の実施形態及び第２の実施例において管理されているあふれ共同作業情報の一例を示す説明図である。
【図５９】第３の実施形態及び第２の実施例において管理されているタスクスケジュール情報の一例を示す説明図である。
【図６０】第３の実施形態及び第２の実施例において管理されている共同作業スケジュール情報の一例を示す説明図である。
【図６１】第３の実施形態及び第２の実施例において管理されているあふれタスク情報の一例を示す説明図である。
【図６２】第３の実施形態及び第２の実施例において管理されているタスク情報とタスクスケジュール情報とあふれタスク情報の関連情報の一例を示す説明図である。
【図６３】第３の実施形態及び第２の実施例において管理されている共同作業情報とタスク情報とあふれタスク情報との関連情報の一例を示す説明図である。
【発明を実施するための形態】
【００２７】
次に、本発明の実施例について図面を参照して詳細に説明する。
【００２８】
図１は、本発明の第１の実施形態の作業日程調整システムの構成を示すブロック図である。
【００２９】
本実施形態の作業日程調整システムは、グループのメンバであるユーザにより入力されたタスクの情報から、個々のメンバがタスクを実行する日時を調整するものである。グループは１人又は複数のメンバにより構成される。各メンバは１つ又は複数のグループに重複して所属する。各グループには、該グループに所属するメンバが行わなければならない１つ又は複数のタスクがあり、該グループに所属するいずれかのメンバが該タスクを実行する。あるグループに所属するいずれかのメンバが行わなければならないタスクは、タスクが該グループに帰属する又は属すると表記することにする。一人のメンバが同時に実行するタスクは一つだけである。また、各メンバは、自らが所属しないグループのタスクは実行しない。各メンバは本実施形態の作業日程調整システムのユーザとなり、タスク情報を入力し、作業日程調整システムが行ったタスクのスケジューリングの結果を、例えば図示しない端末の画面で閲覧するなどして受け取る。
【００３０】
スケジューリングの結果、メンバによっては、担当のタスクを実行する時間が不足する場合がある。担当するメンバが実行するための時間が足りないタスクをあふれタスクと呼ぶことにする。
【００３１】
あふれタスクが存在する場合、該あふれタスクを締め切りまでに完了させるための方法として、該あふれタスクが帰属するグループに属する別のメンバに、該あふれタスクの担当者を変更することが挙げられる。本システムは、あふれタスクの担当者を別のメンバに変更する場合、担当者変更後の作業負荷が最も小さいメンバをタスクの変更先として抽出する。作業負荷の大小の評価は、例えば該あふれタスクの担当者の変更によって増加するあふれ時間が最小となるようなメンバを選択するといった評価基準によって行う。
【００３２】
以下、前述のメンバを、ユーザ又は担当者と表記して説明する。
【００３３】
図１を参照すると、本実施形態の作業日程調整システムは、タスク情報管理部３０Ａと、スケジュール管理部５０Ａと、タスクスケジューリング部５１Ａと、作業あふれ判定部７０と、タスク担当者候補抽出部８０Ａとを含む。
【００３４】
タスク情報管理部３０Ａは、ユーザが図示しない入出力部を介して入力した全てのタスクのタスク情報から、所定の方法で個々のタスクの優先度を算出する。タスク情報管理部３０Ａは、タスク情報と算出したタスクの優先度とをスケジュール管理部５０Ａに渡して、タスクの実行日時のスケジューリングを指示する。タスク情報管理部３０Ａは、タスクのスケジューリングの結果生じたあふれタスク情報を、スケジュール管理部５０Ａから受け取る。
【００３５】
タスク情報は、タスクを特定するための情報と、タスクの担当者を特定するための情報と、タスクが帰属するグループを特定するための情報と、タスクの期限と、タスクを完了させるために必要な予想時間と、タスクの重要度とを含む。タスク情報の詳細は後述する。
【００３６】
あふれタスク情報とは、完了させるのに必要と予想される作業時間に対して担当者が実行するための時間が少ないタスクである、あふれタスクの情報である。タスクを完了させるのに必要な作業時間に対する、該タスクの担当者が該タスクを実行するための時間の不足分を、あふれ時間と呼ぶ。あふれタスク情報は、タスクを特定するための情報と、あふれ時間とを含む。あふれタスク情報の詳細は後述する。
【００３７】
また、タスク情報管理部３０Ａは、ユーザが担当者を変更するよう指示したあふれ時間が存在するタスクの、あふれタスク情報をタスク担当者候補抽出部８０Ａに渡して、あふれ時間が存在するタスクの担当者の変更先となる担当者候補の抽出を指示する。タスク情報管理部３０Ａは、タスク担当者候補抽出部８０Ａが抽出したタスクの担当者候補の情報をタスク担当者候補抽出部８０Ａから受け取る。タスク情報管理部３０Ａは、受け取ったタスクの担当者候補の情報を、図示しない入出力部に出力することによりユーザに提示する。
【００３８】
スケジュール管理部５０Ａは、タスク情報管理部３０Ａからタスク情報を受け取り、タスクの実行日時のスケジューリング指示を受ける。スケジュール管理部５０Ａは、受け取ったタスク情報をタスクスケジューリング部５１Ａに渡して、タスクの実行日時のスケジューリングを指示する。スケジュール管理部５０Ａは、タスクスケジューリング部５１Ａによるスケジューリングにより生成されたタスクスケジュール情報とあふれタスク情報とを、タスクスケジューリング部５１Ａから受け取る。スケジュール管理部５０Ａは、受け取ったタスクスケジュール情報とあふれタスク情報とを、タスク情報管理部３０Ａに渡す。
【００３９】
タスクスケジュール情報は、タスクのスケジューリングを行った結果を表す情報であり、タスクスケジュールを特定するための情報と、スケジューリングされたタスクを特定するための情報と、該タスクを実行する担当者を特定するための情報と、該タスクの実行日時を含む。詳細は後述する。
【００４０】
タスクスケジューリング部５１Ａは、スケジュール管理部５０Ａからタスク情報を受け取り、タスクの実行日時のスケジューリング指示を受ける。タスクスケジューリング部５１Ａは、受け取ったタスク情報を用いてタスクのスケジューリングを行い、タスクスケジュール情報を生成する。また、タスクスケジューリング部５１Ａは、タスクスケジュール情報を作業あふれ判定部７０に渡して、あふれタスク情報の生成を指示し、作業あふれ判定部７０が生成したあふれタスク情報を作業あふれ判定部７０から受け取る。さらに、タスクスケジューリング部５１Ａは、生成したタスクスケジュール情報と、受け取ったあふれタスク情報とをスケジュール管理部５０Ａに渡す。
【００４１】
作業あふれ判定部７０は、タスクスケジューリング部５１Ａからタスクスケジュール情報を受け取り、あふれタスク情報の生成指示を受ける。また、作業あふれ判定部７０は、タスクスケジュール情報からあふれタスク情報を生成し、生成したあふれタスク情報をタスクスケジューリング部５１Ａに渡す。
【００４２】
タスク担当者候補抽出部８０Ａは、まず、タスク情報管理部３０Ａからタスク情報を受け取る。タスク担当者候補抽出部８０Ａは、あらかじめユーザにより入力され自らが管理するグループ情報及びユーザ情報から、前記受け取ったタスク情報のタスクが帰属するグループのグループ情報と、該グループに属する全てのユーザのユーザ情報とを検索する。タスク担当者候補抽出部８０Ａは、前記受け取ったタスク情報のタスクが帰属するグループに属するユーザのユーザ情報をタスク情報管理部３０Ａに返す。また、タスク担当者候補抽出部８０Ａは、タスク情報管理部３０Ａからあふれタスク情報を受け取り、該あふれタスク情報に含まれるタスクを実行する担当者を変更する場合の変更先となる担当者候補の抽出指示を受ける。タスク担当者候補抽出部８０Ａは、受け取ったあふれタスク情報からタスクの担当者候補を抽出し、抽出したタスクの担当者候補を特定する情報をタスク情報管理部３０Ａに渡す。
【００４３】
図３は、ある一人のユーザが担当となっているタスクの、タスク情報の一例を示す説明図である。図３に示す例では、タスク情報は、タスク情報を一意に表しタスクを特定するための“タスクＩＤ”と、タスク名を表す“タスク名”と、タスクの担当ユーザを表す“担当ユーザＩＤ”と、タスクが帰属するグループを特定する“グループＩＤ”と、タスクを完了させなければならない期限を表す“期限”と、タスクを完了させるために必要と予想される“予想工数”と、タスクの重要度を表す“重要度”とを含む。“担当ユーザＩＤ”には、タスクを担当するユーザ特定するユーザＩＤが格納されている。このユーザＩＤで特定されるユーザに関する情報は、下記のユーザ情報に含まれている。また、“グループＩＤ”には、グループを特定するグループＩＤが格納されている。このグループＩＤで特定されるグループに関する情報は、下記のグループ情報に含まれている。
【００４４】
図１４は、ユーザ情報の一例を示す説明図である。図１４のユーザ情報は、ユーザを特定する“ユーザＩＤ”と、ユーザ名を表す“ユーザ名”とを含む。
【００４５】
図１５は、グループ情報の一例を示す説明図である。図１５のグループ情報は、グループを特定する“グループＩＤ”と、グループ名を表す“グループ名”と、グループを構成する全てのユーザのユーザＩＤが格納される“グループメンバＩＤ”とを含む。
【００４６】
図２２は、タスクスケジュール情報の一例を示す説明図である。図２２に示すタスクスケジュール情報は、タスクスケジュール情報を一意に表す“タスクスケジュールＩＤ”と、タスクを表す“タスクＩＤ”と、タスクの担当者を表す“ユーザＩＤ”と、タスクの実行日時を表す“実行日時”とを含む。
【００４７】
図２３は、あふれタスク情報の一例を示す説明図である。図２３のあふれタスク情報は、あふれタスク情報を一意に表す“あふれタスクＩＤ”と、タスクを表す“タスクＩＤ”と、タスクの担当者を表す“ユーザＩＤ”と、タスクのあふれ時間を表す“あふれ工数”と、を含む。図２３のあふれタスク情報は、ユーザＩＤが“Ｕ１”であるユーザが担当になっているタスクＩＤ“Ｔ１”のタスクには、“２Ｈ”のあふれ時間が存在することを表している。
【００４８】
図２４は、タスクスケジュール情報の一例を示す説明図である。図２４のタスクスケジュール情報は、タスクスケジュール情報を一意に表す“タスクスケジュールＩＤ”と、タスクを表す“タスクＩＤ”と、タスクの担当者を表す“ユーザＩＤ”と、タスクの実行日時を表す“実行日時”とを含む。
【００４９】
次に、図面を参照して本実施形態に係る作業日程調整システムの動作を詳細に説明する。
【００５０】
本作業日程調整システムの動作の流れは、まず本システムが、入力されたユーザのタスクの実行日時をスケジューリングし、あふれタスクがあるかどうかを判定する。あふれタスクが存在すると判定された場合は、本システムは、該あふれタスクの担当者を該タスクが帰属するグループに所属する別のメンバから、所定の基準で最もよいと判断されるメンバを、変更先の担当者の候補として抽出する。抽出したメンバを変更先として決定すると、本システムは、前記変更先として決定したメンバ前記タスクの担当者としたスケジュールを新しいタスクスケジュールとして、処理を終了する。
【００５１】
以下では、まず最初に本作業日程調整システムがユーザのタスクの実行日時をスケジューリングし、あふれタスクの有無を判定する動作を説明する。次に、あふれタスクが存在する場合に、該あふれタスクの担当者を変更する時の本作業日程調整システムの動作を説明する。
【００５２】
まず、図面を参照して、ユーザのタスクをスケジューリングする動作を説明する。
【００５３】
図２は、本実施形態に係る作業日程調整システムの、ユーザのタスクをスケジューリングする動作を示すフローチャートである。本作業日程調整システムは、順番に一人ずつユーザを選択してユーザ毎にスケジューリングを行うことで、全てのユーザのタスクのスケジューリングを行う。図２はある一人のユーザのタスクをスケジューリングする場合の動作を示す。この動作は、キーボードやマウスなどの図示しない入力手段によるユーザの指示により処理を開始するようにしてもよいし、システムであらかじめ処理を実行する時刻を定めておき、自動的に処理を開始するようにしてあってもよい。以下、システムが定期的にスケジューリングの処理を自動的に実行する場合の、システムによりスケジューリングの処理が自動的に開始された後の動作について説明する。
【００５４】
タスク情報管理部３０Ａは、自らが管理しているタスク情報の中から、タスクのスケジューリングを行うユーザが担当するすべてのタスク情報を抽出する（ステップＡ１）。ここで抽出されたタスク情報に含まれるタスクは、前記ユーザが所属するグループのいずれかに帰属している。以下、本システムがユーザＩＤが“Ｕ１”であるユーザ１を選択し、ユーザ１が担当するタスクのスケジューリングを行うとして説明する。
【００５５】
図４はタスク情報に含まれるタスクの例である。以下、図４に示すように、タスク情報は、全てのユーザのタスク情報を含む。このタスク情報の中から抽出した、ユーザ１のタスク情報が図３である。
【００５６】
次に、タスク情報管理部３０Ａは、タスク情報の重要度を用いて、ステップＡ１で取得したタスク情報の並べ替えを行う（ステップＡ２）。ステップＡ２では、タスクの重要度が大きい順にタスク情報の並べ替えをする。
【００５７】
図６は、並べ替えを行った後のユーザ１のタスク情報一覧の例である。
【００５８】
次に、タスク情報管理部３０Ａは、図６に例を示す並べ替えを行ったタスク情報一覧をスケジュール管理部５０Ａに渡して、タスクの実行日時のスケジューリングを指示する。
【００５９】
スケジュール管理部５０Ａは、タスク情報管理部３０Ａから、並べ替えを行ったタスク情報一覧を受け取り、タスクの実行日時のスケジューリングの指示を受ける。スケジュール管理部５０Ａは、受け取ったタスク情報一覧をタスクスケジューリング部５１Ａに渡し、まず、タスクの実行日時の仮スケジューリングを指示する。タスクスケジューリング部５１Ａは、スケジュール管理部５０Ａからタスク情報一覧を受け取り、タスクの実行日時の仮スケジューリング指示を受けると、受け取ったタスク情報一覧について実行日時の仮スケジューリングを行う（ステップＡ３）。
【００６０】
タスクの実行日時の仮スケジューリングでは、タスク情報に含まれるタスクの締め切り日時にあわせて、タスクの実行日時を設定する。すなわち、タスク情報に含まれる情報をそのまま用いて、タスクの期限から予想工数の時間だけ遡った時刻に該タスクを開始し、期限の時刻に該タスクを終了するように、該タスクのスケジューリングを行う。仮スケジューリングでは、スケジューリングの結果複数のタスクにで実行日時の重複が生じるとしても、上記のように、タスク情報に含まれる予想工数と期限に基づいてスケジューリングを行う。また、タスクのスケジューリングは、例えば９時から１７時のような、あらかじめ決められている所定の時間内で行われるものとする。
【００６１】
図２０は、ユーザ１のタスクについてタスクの実行日時の仮スケジューリング結果を示す説明図である。図２０のスケジューリング結果の例では、ユーザがそれぞれのタスクを、該タスクの実行を開始した日に終了させる形になっているが、必ずしもタスクを開始した日のうちに該タスクを完了させる必要はない。一つのタスクを複数の日にまたがって実行するようスケジューリングしてもよい。タスクスケジューリング部５１Ａは、仮スケジューリング結果をスケジュール管理部５０Ａに渡す。
【００６２】
次に、スケジュール管理部５０Ａは、タスクスケジューリング部５１Ａにタスクの実行日時の本スケジューリングを指示する。タスクスケジューリング部５１Ａは、ステップＡ３で受け取ったタスク情報一覧について、タスクの実行日時の本スケジューリングを行う（ステップＡ４〜ステップＡ７）。図２１は、タスクの実行日時の本スケジューリング結果を示す説明図である。以下、図２１に示すタスクの実行日時の本スケジューリングについて詳細に説明する。
【００６３】
タスクスケジューリング部５１Ａは、ステップＡ４において、受け取ったタスク情報一覧に未処理のタスク情報があるか判定する。未処理のタスク情報がある場合はステップＡ５に進む。ない場合は、タスクの実行日時の本スケジューリングを終了する。
【００６４】
タスクスケジューリング部５１Ａは、ステップＡ５において、処理対象となっているタスク情報について、ステップＡ３で仮スケジューリングしたタスクの実行日時よりも前に、実行するタスクが割り当てられていない空き時間があるか否かを判定する。仮スケジューリングしたタスクの実行日時よりも前に空き時間がある場合、タスクスケジューリング部５１Ａは、該タスクの実行日時を早められると判断し、該タスクの実行日時を前倒しする（本スケジューリング）。
【００６５】
次に、タスクスケジューリング部５１Ａは、ステップＡ５で本スケジューリングした後のタスクの実行日時に重複があるか否かを判定する（ステップＡ６）。実行日時の重複がある場合はステップＡ７に進む。実行日時に重複がない場合はステップＡ４に戻る。
【００６６】
次に作業あふれ判定部７０は、ステップＡ６で判定したタスクの実行日時の重複をあふれタスク情報として抽出し、あふれタスク情報の一覧を生成する（ステップＡ７）。作業あふれ判定部７０は、ステップＡ６の処理で複数のタスクの実行日時が重複すると判定した場合、後からスケジューリングを行ったタスクに、重複した時間分のあふれ時間が生じたとして、あふれタスク情報を生成する。例えば図２２に示すタスクスケジュール情報では、タスクスケジュールＩＤ“ＳＴ１”と“ＳＴ２”のタスクに実行日時の重複が生じている。これらをスケジューリングするに当たり、タスクスケジュールＩＤ“ＳＴ１”のタスクのスケジューリングを先に行ったとすると、あふれ時間は、後でスケジューリングを行ったタスクスケジュールＩＤ“ＳＴ２”のタスクに生じるものとする。この場合、作業あふれ判定部７０により生成されるあふれタスク情報に含まれるタスクは、図２３に例を示すあふれタスク情報のように、タスクスケジュールＩＤ“ＳＴ２”が付与されているタスクＩＤ“Ｔ１”のタスクとなる。
【００６７】
以上で、タスク情報一覧の実行日時の本スケジューリングが完了する。
【００６８】
タスク情報一覧の実行日時の本スケジューリングが完了すると、作業あふれ判定部７０は、生成したあふれタスク情報をタスクスケジューリング部５１Ａに渡す。次に、タスクスケジューリング部５１Ａは、受け取ったあふれタスク情報と生成したタスクスケジュール情報とをスケジュール管理部５０Ａに渡す。スケジュール管理部５０Ａは、受け取ったあふれタスク情報をタスク情報管理部３０Ａに渡す。これにより、あふれタスク情報は、タスク情報管理部３０から、図１においては図示しない入出力部を介してユーザに提示される。
【００６９】
以上で、ユーザのタスクをスケジューリングする動作が完了する。
【００７０】
次に、図面を参照して、本実施形態に係る作業日程調整システムのあふれタスクの担当者を変更する動作を説明する。
【００７１】
図７は、あふれタスクの担当者を変更する動作を示すフローチャートである。
【００７２】
ユーザは、図示しない入出力部を介して、作業日程調整システムが表示したあふれタスクリストから、担当者を変更したいタスクを選択する（ステップＢ１）。以下、ユーザ１のあふれタスクの担当者を他のユーザに変更する場合について説明する。
【００７３】
図２８に示すあふれタスク情報が、ユーザ１のあふれタスク情報として、ユーザに提示されているとする。図２８に示す例では、タスクＩＤが“Ｔ１”、“Ｔ６”、“Ｔ１１”のタスクについてあふれタスク情報がある。ユーザは、タスクＩＤ“Ｔ１”のあふれタスク、すなわち図２８の例ではあふれタスクＩＤ情報が“ＯＦ１”のあふれタスクを、担当者の変更を行うタスクとして選択したとする。ユーザは、図示しない入出力部を介して、あふれタスクＩＤが“ＯＦ１”のタスクのタスクＩＤ“Ｔ１”を、選択した担当者変更をするあふれタスクの識別情報として入力する。
【００７４】
タスク情報管理部３０Ａは、ユーザが選択し入力した、担当者の変更を行うタスクの識別情報を受け取る。タスクの識別情報として、担当者の変更を行うタスクのタスクＩＤがタスク情報管理部３０Ａに渡る。タスク情報管理部３０Ａは、受け取ったタスクＩＤにより特定されるタスクのタスク情報を取得する。タスク情報管理部３０Ａは、取得したタスク情報をタスク担当者候補抽出部８０Ａに渡し、タスク担当者の変更先の候補としてタスクが帰属するグループに所属するユーザ情報一覧（グループメンバリスト）を取得する（ステップＢ２）。このユーザ情報一覧の取得は次のように行われる。
【００７５】
タスク情報管理部３０Ａは、取得したタスク情報をタスク担当者候補抽出部８０Ａに渡す。図８は該タスク情報の例である。
【００７６】
タスク担当者候補抽出部８０Ａは、まず、タスク情報から、タスクが帰属するグループを特定する。次にタスク担当者候補抽出部８０Ａは、自らが管理するグループ情報から、前記特定したグループに属する全てのユーザのユーザＩＤを、タスク担当者の変更先の候補として抽出する。次に、タスク担当者候補抽出部８０Ａは、抽出したユーザＩＤで特定されるユーザの詳細な情報をユーザ情報から取得する。ユーザの詳細な情報は、例えばユーザ名である。次に、タスク担当者候補抽出部８０Ａは、担当者の変更を行うタスクが帰属するグループに所属する全てのユーザの、前記抽出したユーザＩＤと前記取得した詳細な情報とを一覧にして、タスク担当者候補一覧としてタスク情報管理部３０Ａに渡す。
【００７７】
次に、タスク情報管理部３０Ａは、タスク担当者候補一覧に含まれるそれぞれのユーザが、前記担当者の変更を行おうとしているタスクの担当者になった場合に、新たにあふれタスクが生じるか否かをユーザ毎に判定する。以下、該判定を、新たなあふれの有無の判定と表記する。処理の詳細な説明は次の通りである。
【００７８】
まず、タスク情報管理部３０Ａは、受け取ったユーザ情報の一覧に、新たなあふれの有無の判定を行っていないユーザが含まれていないか判定する（ステップＢ３）。ユーザ情報に新たなあふれの有無の判定を行っていないユーザが含まれる場合（ステップＢ３、Ｙ）はステップＢ４に進み、含まれない場合（ステップＢ３、Ｎ）はステップＢ７に進む。
【００７９】
次に、タスク情報管理部３０Ａが受け取ったユーザ情報の一覧に、前記判定を行っていないユーザが含まれている場合について説明する。前記新たなあふれの有無の判定を行っていないユーザが複数存在する場合は、一人ずつ順に選択して、以下で詳細を説明する新たなあふれの有無の判定を行う。以下、選択され該判定を行っているユーザを処理中のユーザと表記する。
【００８０】
タスク情報管理部３０Ａは、まず、処理中のユーザのあふれタスク情報をタスク情報から取得する（ステップＢ４）。
【００８１】
次に、タスク情報管理部３０Ａは、処理中のユーザが担当者となっているすべてのタスクのタスク情報を、自らが保持するタスク情報から抽出する。次に、タスク情報管理部３０Ａは、抽出した全てのタスクに担当者を変更しようとしているタスクを加えたタスクの、タスク情報の一覧をスケジュール管理部５０Ａに渡し、タスクのスケジューリング（再スケジューリング）を指示する（ステップＢ５）。図８が担当者を変更しようとしているタスクの情報であり、図９が前記処理中のユーザが担当者となっているタスクの情報であるとすると、タスク情報管理部３０Ａからスケジュール管理部５０Ａに渡されるタスク情報の一覧は図１０のようになる。このステップＢ５の処理は、すでに説明した図２に示すタスクのスケジューリングのフローで行われるため、説明を省略する。
【００８２】
タスクのスケジューリングが完了すると、タスク情報管理部３０Ａは、スケジュール管理部５０Ａから、処理中のユーザを担当者の変更を行おうとしているタスクの新たな担当者とした場合の、処理中のユーザのあふれタスク情報の一覧を取得する。
【００８３】
次にタスク情報管理部３０Ａは、タスク担当者候補抽出部８０Ａに、ステップＢ４で取得した処理中ユーザのもともとのあふれタスク情報の一覧と、ステップＢ５で取得した処理中ユーザにタスクの担当者変更をした場合のあふれタスク情報の一覧を渡し、処理中ユーザのタスク担当者候補としての評価を指示する（ステップＢ６）。タスクの担当者候補の評価の基準として、例えばタスクの担当者を変更したことによって新たに発生するあふれタスクのあふれ工数の量を用いる。この評価は別な指標を用いて行ってもよい。例えば、タスク担当者を変更したことによる、新たな担当者のあふれタスクの総数や、総あふれタスク工数などを用いて評価してもよい。
【００８４】
同様にして、他のユーザに対しても、担当者を変更しようとしているタスクの担当者を該他のユーザに変更したときのタスクスケジューリングと新たなあふれタスク情報の一覧を生成を行う。担当者を変更しようとしているタスクが帰属するグループの、元の担当者以外の全てのユーザに対して、順に一人ずつ選択して以上の処理を行う。
【００８５】
以上でステップＢ３〜Ｂ６の繰り返し処理が完了し、ステップＢ７に進む。  次に、タスク情報管理部３０Ａは、タスク担当者候補抽出部８０Ａから受け取った、タスクを担当変更するタスク担当者候補とその評価情報との組から、最も評価情報がよいタスク担当者候補をタスクの担当の変更先として選択する。評価情報として、担当者を変更することにより新たに発生するあふれ時間を使用する場合は、新たに発生するあふれ時間が最も少ない担当者候補をタスクの担当の変更先として選択する。タスク情報管理部３０Ａは、タスク担当者候補とその評価情報との組を、タスクの担当の変更先となるユーザを明示して、ユーザに提示する（ステップＢ７）。提示は、例えば図示しないユーザ端末の画面に表示するなどして行う。
【００８６】
次に、ユーザはステップＢ７の提示を確認する。担当を変更しようとしているタスクの担当の変更先を、タスク情報管理部３０Ａにより選択されたユーザから他のユーザに変更する場合は、ユーザは図示しない例えばキーボードやマウスなどの入力手段により他のユーザを選択する。ユーザは、選択されたユーザを、前記図示しない入力手段により、タスクの担当の変更先となるユーザとして決定する（ステップＢ８）。
【００８７】
次に、タスク情報管理部３０Ａは、ステップＢ８で選択されたユーザのタスクスケジュール情報とあふれタスク情報の保存を行う（ステップＢ９）。
【００８８】
以上で、あふれタスクの担当者を変更する動作が完了する。
【００８９】
上記ステップＢ１では、ユーザがあふれタスクのリストから担当の変更を行いたいタスクを選択する構成にしたが、作業日程調整システムが自動的に選択するようにしてもよい。その場合、例えば、タスク情報管理部３０Ａが、あふれ工数が最も多いタスクを選択するなど所定の基準により、担当の変更を行うタスクを選択する。タスクの選択を行った後の動作は、上記の動作と同じである。
【００９０】
以上、本実施形態には、複数のメンバにより構成されグループ間でメンバの重複がある複数のグループのそれぞれにおいて重要度に違いがある複数のタスクを行う場合に、グループによらずメンバ全体で実行するタスクの量のばらつきを軽減できるという効果がある。
【００９１】
その理由は、タスクが帰属するグループによらず、重要度と完了期限によってユーザ単位でスケジューリングを行うからである。また、あふれタスクの担当者の変更先を、該あふれタスクが帰属するグループに所属する他のメンバから選択するからである。さらに、あふれタスクの担当者の変更先を選択する評価の基準を、例えば新たに生じるあふれ時間の少なさにするなど、あふれタスクの担当の変更先として、実行予定のタスクに余裕があるメンバを選択できるからである。
【００９２】
図１１は、本発明の第２の実施形態の作業日程調整システムの構成を示すブロック図である。
【００９３】
図１１を参照すると、本実施形態の作業日程調整システムは、入出力部１０と、画面生成部２０と、タスク情報管理部３０と、関連情報管理部４０と、スケジュール管理部５０と、タスクスケジューリング部５１と、影響度算出部６０と、作業あふれ判定部７０と、タスク担当者候補抽出部８０と、タスク情報記憶部１０１と、グループ情報記憶部１０２と、ユーザ情報記憶部１０３と、関連情報記憶部１０４と、タスクスケジュール記憶部１０５と、を備えている。本実施形態に係る作業日程調整システムは、第１の実施形態に係る作業日程調整システムの構成に加えて、入出力部１０と、画面生成部２０と、関連情報管理部４０と、影響度算出部６０と、タスク情報記憶部１０１と、グループ情報記憶部１０２と、ユーザ情報記憶部１０３と、関連情報記憶部１０４と、タスクスケジュール記憶部１０５とを含む点が異なる。以下、第１の実施形態との相違点を中心に説明する。
【００９４】
入出力部１０は、ユーザからの入力をタスク情報管理部３０に渡す。また、入出力部１０は、画面生成部２０から受け取った画面情報を表示してユーザに提示する。入出力部は、例えばディスプレイ等の表示装置とキーボードなどの入力装置により実現できる。
【００９５】
画面生成部２０は、タスク情報管理部３０からユーザに提示する画面情報の生成指示を受けて画面情報を生成し、生成した画面情報を入出力部１０に渡す。
【００９６】
タスク情報管理部３０は、タスク情報記憶部１０１からタスク情報を受け取り、受け取ったタスク情報を影響度算出部６０に渡して、該タスク情報のタスクが他タスクの実行日時に対して及ぼす影響の度合いを表す影響度の算出を、影響度算出部６０に指示する。タスク情報管理部３０は、影響度算出部６０が生成したタスクの影響度情報を影響度算出部６０から受け取る。また、タスク情報管理部３０は、タスクの影響度情報を用いて、該タスクの優先度を算出する。タスク情報管理部３０は、タスク情報と算出したタスクの優先度情報とをスケジュール管理部５０に渡してタスクの実行日時のスケジューリングを指示する。タスク情報管理部３０は、スケジュール管理部５０からあふれタスク情報を受け取り、受け取ったあふれタスク情報をタスク情報記憶部１０１に格納する。また、タスク情報管理部３０は、タスク情報とあふれタスク情報とを関連情報管理部４０に渡し、タスク情報とあふれタスク情報とタスクスケジュール情報との関連情報の生成を指示する。
【００９７】
さらに、タスク情報管理部３０は、ユーザが入力した担当者を変更するタスクのタスクを特定できる情報を入出力部１０から受け取り、ユーザが入力した情報で特定されるタスクのタスク情報をタスク担当者候補抽出部８０に渡す。タスク情報管理部３０は、タスク担当者候補抽出部８０が受け取ったタスク情報を元に抽出した、前記タスクが帰属するグループに属するユーザのユーザ情報をタスク担当者候補抽出部８０から受け取る。また、タスク情報管理部３０は、タスク情報記憶部１０１に記憶されている、ユーザのあふれタスク情報を抽出し、抽出したあふれタスク情報をタスク担当者候補抽出部８０に渡して、該あふれタスク情報に含まれるタスクの担当の変更先となる担当者候補の抽出を指示する。タスク情報管理部３０は、タスク担当者候補抽出部８０が抽出した該タスクの担当の変更先となる担当者の候補の情報である、タスク担当者候補抽出部８０から担当者候補情報を受け取る。また、タスク情報管理部３０は、受け取ったタスクの担当者候補情報を画面生成部２０に渡し、ユーザに提示する画面情報の生成を指示する。
【００９８】
関連情報管理部４０は、タスク情報管理部３０からタスク情報とあふれタスク情報を受け取り、タスク情報とあふれタスク情報とタスクスケジュール情報との関連を表す情報である関連情報の生成指示を受ける。また、関連情報管理部４０は、スケジュール管理部５０からタスクスケジュール情報を受け取る。さらに、関連情報管理部４０は、タスク情報とあふれタスク情報とタスクスケジュール情報との関連を表す情報である関連情報を生成し、生成した関連情報を関連情報記憶部１０４に格納する。
【００９９】
スケジュール管理部５０は、タスク情報管理部３０からタスク情報を受け取り、タスクの実行日時のスケジューリングを行うよう指示を受ける。スケジューリングの指示を受けると、スケジュール管理部５０は、受け取ったタスク情報をタスクスケジューリング部５１に渡して、タスクの実行日時のスケジューリングを指示する。スケジューリング管理部５０は、スケジューリング管理部５０からの指示によりタスクスケジューリング部５１がスケジューリングを行って生成したタスクスケジュール情報とあふれタスク情報とを、タスクスケジューリング部から受け取る。スケジュール管理部５０は、受け取ったタスクスケジュール情報をタスクスケジュール記憶部１０５に格納する。さらに、スケジュール管理部５０は、受け取ったあふれタスク情報をタスク情報管理部３０に渡し、受け取ったタスクスケジュール情報を関連情報管理部４０に渡す。
【０１００】
タスクスケジューリング部５１は、スケジュール管理部５０からタスク情報を受け取り、タスクの実行日時のスケジューリングを行うよう指示を受ける。タスクのスケジューリングの指示を受けると、タスクスケジューリング部５１は、受け取ったタスク情報を用いてタスクスケジューリングを行い、タスクスケジュール情報を生成する。また、タスクスケジューリング部５１は、生成したタスクスケジュール情報を作業あふれ判定部７０に渡して、あふれタスク情報の生成を指示する。タスクスケジューリング部５１は、作業あふれ判定部７０が生成したあふれタスク情報を、作業あふれ判定部７０から受け取る。タスクスケジューリング部５１は、生成したタスクスケジュール情報と、受け取ったあふれタスク情報とをスケジュール管理部５０に渡す。
【０１０１】
影響度算出部６０は、タスク情報管理部３０からタスク情報を受け取り、該タスク情報のタスクが他タスクの実行日時に対して及ぼす影響の度合いである影響度を算出するよう指示を受ける。影響度の算出の指示を受けた影響度算出部６０は、タスクを特定するための情報とタスクの影響度とを含む影響度情報を生成し、生成した影響度情報をタスク情報管理部３０に渡す。
【０１０２】
作業あふれ判定部７０は、タスクスケジューリング部５１からタスクスケジュール情報を受け取り、あふれタスク情報を生成するよう指示を受ける。あふれタスク情報生成の指示を受けると、作業あふれ判定部７０は、タスクスケジュール情報をもとに、あふれタスク情報を生成し、生成したあふれタスク情報をタスクスケジューリング部５１に渡す。
【０１０３】
タスク担当者候補抽出部８０は、タスク情報管理部３０からタスク情報を受け取り、該タスク情報のタスクが帰属するグループに所属するユーザを抽出するよう指示を受ける。該指示を受けたタスク担当者候補抽出部８０は、受け取ったタスク情報のタスクが帰属するグループのグループ情報をグループ情報記憶部１０２から読み出す。抽出したグループ情報から該グループに属するユーザを抽出し、グループ情報から抽出したユーザのユーザ情報をユーザ情報記憶部１０３から読み出す。タスク担当者候補抽出部８０は、読み出したユーザ情報をタスク情報管理部３０に渡す。また、タスク担当者候補抽出部８０は、タスク情報管理部３０から担当者を変更しようとしているタスクのあふれタスク情報を受け取り、該タスクの担当者を変更する変更先となる候補の抽出指示を受ける。該指示を受けたタスク担当者候補抽出部８０は、受け取ったあふれタスク情報から、該あふれタスク情報に含まれるタスクが帰属するグループに所属するメンバを、該タスクの担当の変更先の候補であるタスクの担当者候補として抽出する。タスク担当者候補抽出部８０は、抽出したタスクの担当者候補のユーザを特定するための情報を含むタスクの担当者候補情報を生成してタスク情報管理部３０に渡す。
【０１０４】
タスク情報記憶部１０１は、各ユーザのタスク情報とあふれタスク情報とを保持する。
【０１０５】
グループ情報記憶部１０２は、各グループのグループ情報を保持する。
【０１０６】
ユーザ情報記憶部１０３は、各ユーザのユーザ情報を保持する。
【０１０７】
関連情報記憶部１０４は、タスク情報とあふれタスク情報とタスクスケジュール情報の関連情報を保持する。
【０１０８】
タスクスケジュール記憶部１０５は、各ユーザのタスクスケジュール情報を保持する。
【０１０９】
図１３は、タスク情報記憶部１０１に記憶されている、ある一人のユーザが担当となっているタスクのタスク情報の一例を示す説明図である。図１３のタスク情報は、タスク情報を一意に表す“タスクＩＤ”と、タスク名を表す“タスク名”と、タスクの担当ユーザを表す“担当ユーザＩＤ”と、タスク情報が関連付いているグループを表す“グループＩＤ”と、タスクの実行期限を表す“期限”と、タスクを完了させるために必要と予想される“予想工数”と、タスクの重要度を表す“重要度”と、タスクを実行するためにタスクが完了されていることが必要な前提タスクを表す“前提タスクＩＤ”とを含む。“担当ユーザＩＤ”情報には、タスクを担当するユーザを一意に識別するユーザＩＤ情報が格納されている。このユーザＩＤに対応する情報は、ユーザ情報記憶部１０３で管理されている。また、“グループＩＤ”情報には、グループを一意に識別するグループＩＤ情報が格納されている。このグループＩＤに対応する情報は、グループ情報記憶部１０２で管理されている。
【０１１０】
図１４は、ユーザ情報記憶部１０３で管理されているユーザ情報の一例を示す説明図である。図１４に示す例では、ユーザ情報を一意に表す“ユーザＩＤ”情報と、ユーザ名を表す“ユーザ名”情報とが管理されている。
【０１１１】
図１５は、グループ情報記憶部１０２で管理されているグループ情報の一例を示す説明図である。図１５に示す例では、グループ情報を一意に表す“グループＩＤ”情報と、グループ名を表す“グループ名”情報と、グループを構成するユーザを表す“グループメンバＩＤ”情報とが管理されている。
【０１１２】
図１６はタスク情報の例である。図１６に示すタスク情報の構成は図１３に示すタスク情報の構成と同じである。両者の相違点は、図１３のタスク情報はある一人のユーザ（ユーザ１）のタスク情報のみを取りだしたものであるのに対し、図１６のタスク情報は全てのユーザが担当しているタスクのタスク情報になっている点である。
【０１１３】
図２６は、タスク情報とあふれタスク情報とタスクスケジュール情報との関連情報の一例を示す説明図である。図２６に示す関連情報は、タスク情報とあふれタスク情報とタスクスケジュール情報との関連情報を一意に表す“タスク関連ＩＤ”と、タスク情報を表す“タスクＩＤ”と、スケジュール情報を表す“タスクスケジュールＩＤ”と、タスクのあふれ時間を表す“あふれ工数”と、を含んでいる。
【０１１４】
次に、図面を参照して本実施形態に係る作業日程調整システムの動作を詳細に説明する。
【０１１５】
本実施形態に係る作業日程調整システムの動作の流れは、第１の実施形態に係る作業日程調整システムの動作と同じである。具体的には、まず本システムが、入力されたユーザのタスクの実行日時をスケジューリングし、あふれタスクがあるかどうかを判定する。あふれタスクが存在すると判定された場合は、本システムは、該あふれタスクの担当者を該タスクが帰属するグループに所属する別のメンバから、所定の基準で最もよいと判断されるメンバを、変更先の担当者の候補として抽出する。抽出したメンバを変更先として決定すると、本システムは、前記変更先として決定したメンバ前記タスクの担当者としたスケジュールを新しいタスクスケジュールとして、処理を終了する。
【０１１６】
以下では、第１の実施形態の説明と同様に、まず最初に本作業日程調整システムがユーザのタスクの実行日時をスケジューリングし、あふれタスクの有無を判定する動作を説明する。次に、あふれタスクが存在する場合に、該あふれタスクの担当者を変更する時の本作業日程調整システムの動作を説明する。
【０１１７】
まず、図面を参照して、ユーザのタスクをスケジューリングする動作を説明する。
【０１１８】
図１２は、本実施形態に係る作業日程調整システムの、ユーザのタスクをスケジューリングする動作を示すフローチャートである。本作業日程調整システムは、ユーザ毎に順番に、全てのユーザのタスクのスケジューリングを行う。図１２はある一人のユーザのタスクをスケジューリングする場合の動作を示す。この動作は、キーボードやマウスなどの図示しない入力手段によるユーザの指示により処理を開始するようにしてもよいし、システムであらかじめ処理を実行する時刻を定めておき、自動的に処理を開始するようにしてあってもよい。以下、システムが定期的にスケジューリングの処理を自動的に実行する場合の、システムによりスケジューリングの処理が自動的に開始された後の動作について説明する。
【０１１９】
タスク情報管理部３０は、タスクのスケジューリングを行うユーザが担当するすべてのタスク情報をタスク情報記憶部１０１から読み出す（ステップＣ１）。ここで読み出すタスク情報に含まれるタスクは、前記ユーザが所属するグループのいずれかに帰属している。以下、タスクのスケジューリングを行う対象のユーザをユーザ１とする。タスク情報管理部は読み出したタスク情報から、ユーザ１が担当であるタスク情報を抽出する。タスク情報記憶部１０１から図１６に示すタスク情報を読み出し、ユーザ１のタスク情報を抽出した場合の、抽出したユーザ１のタスク情報の例を図１３に示す。
【０１２０】
次に、タスク情報管理部３０は、ステップＣ１で読み出した全てのユーザのタスク情報と、抽出したユーザ１のタスク情報とから、ユーザ１の各タスクに後続する後続タスクへの影響度を算出する（ステップＣ２）。
【０１２１】
図１７は影響度を算出するための計算式の例である。図１７に示す例では、あるタスクの後続タスクへの影響度は、後続するタスクの切迫度の最大値としている。またタスクの切迫度とは、タスクの予定工数情報をタスク締め切りまでの残り時間で割った値としている。図１７は影響度の定義の一例であり、他の方法で後続タスクへの影響度を算出してもよい。例えば、あるタスクを前提とするタスク数を後続タスクの影響度と定義するなどの方法も考えられる。
【０１２２】
次に、タスク情報管理部３０は、タスク情報の重要度と、後続タスクへの影響度の情報を用いて、ステップＣ１で取得したタスク情報の並べ替えを行う（ステップＣ３）。タスク情報管理部３０は、まず重要度が高い順にタスクを並べ替え、次に重要度が同じタスクでは影響度が大きい順になるようにタスクを並べ替える。
【０１２３】
次に、タスク情報管理部３０は、並べ替えを行ったタスク情報一覧をスケジュール管理部５０に渡し、タスクの実行日時のスケジューリングを指示する。スケジュール管理部５０は、タスク情報管理部３０から並べ替えを行ったタスク情報一覧を受け取り、タスクの実行日時のスケジューリングの指示を受けると、受け取ったタスク情報一覧をタスクスケジューリング部５１に渡し、まず、タスクの実行日時の仮スケジューリングを指示する。タスクスケジューリング部５１は、スケジュール管理部５０からタスク情報一覧を受け取り、タスクの実行日時の仮スケジューリング指示を受けると、受け取ったタスク情報一覧について実行日時の仮スケジューリングを行う（ステップＣ４）。ステップＣ４の仮スケジューリングでは、タスクスケジューリング部５１は、タスクの締め切り日時にあわせて、タスクの実行日時を設定する。すなわち、タスクスケジューリング部は、タスク情報に含まれるタスクの期限から予想工数の時間だけ遡った時刻にタスクを開始し、タスクの期限にタスクを完了するように、タスクの実行日時を決める。タスクスケジューリング部５１は、仮スケジューリングを行う場合、複数のタスクの実行日時の重複を考慮しない。タスクスケジューリング部５１は、仮スケジューリング結果をスケジュール管理部５０に渡す。
【０１２４】
次に、スケジュール管理部５０は、タスクスケジューリング部５１にタスクの実行日時の本スケジューリングを指示する。タスクスケジューリング部５１は、ステップＣ４で受け取ったタスク情報一覧について、タスクの実行日時の本スケジューリングを行う（ステップＣ５〜ステップＣ８）。図２１は、タスクの実行日時の本スケジューリング結果を示す説明図である。以下、このタスクの実行日時の本スケジューリングについて詳細に説明する。
【０１２５】
タスクスケジューリング部５１は、ステップＣ４で受け取ったタスク情報一覧に本スケジューリングを行っていない未処理のタスクがあるか判定する（ステップＣ５）。本スケジューリングを行っていないタスクがある場合は、タスクスケジューリング５１部は該タスクのいずれか一つを選択して処理対象とし、ステップＣ６に進む。ない場合は、タスクの実行日時の本スケジューリングを終了する。
【０１２６】
タスクスケジューリング部５１は、ステップＣ５で処理対象としたタスクの、ステップＣ４で仮スケジューリングした実行日時を早められるか否かを判定する。仮スケジューリングしたタスクの実行日時よりも前に空き時間がある場合は、タスクスケジューリング部５１は、該タスクの実行日時を早められると判定し、該タスクの実行日時を空き時間の分だけ早める（ステップＣ６）。
【０１２７】
次に、タスクスケジューリング部５１は、ステップＣ６でスケジューリングしたタスクの実行日時に、他のタスクの実行日時との重複があるか否かを判定する（ステップＣ７）。実行日時の重複がある場合はステップＣ８に進む。ない場合はステップＣ５に戻る。
【０１２８】
次に作業あふれ判定部７０は、ステップＣ７で判定したタスクの実行日時の重複をあふれタスク情報として抽出し、あふれタスク情報の一覧を生成する（ステップＣ８）。作業あふれ判定部７０は、ステップＣ７の処理で複数のタスクの実行日時が重複すると判定した場合、後からスケジューリングを行ったタスクに、重複した時間分のあふれ時間が生じたとして、あふれタスク情報を生成する。
【０１２９】
タスク情報一覧の実行日時の本スケジューリングが完了すると、作業あふれ判定部７０は、生成したあふれタスク情報をタスクスケジューリング部５１に渡す。次に、タスクスケジューリング部５１は、受け取ったあふれタスク情報と生成したタスクスケジュール情報とをスケジュール管理部５０に渡す。スケジュール管理部５０は、受け取ったタスクスケジュール情報をタスクスケジュール記憶部１０５に格納し、さらに受け取ったあふれタスク情報をタスク情報管理部３０に渡す。タスク情報管理部３０は、受け取ったあふれタスク情報をタスク情報記憶部１０１に格納し、さらにスケジューリングを行ったタスク情報の一覧と受け取ったあふれタスク情報とを関連情報管理部４０に渡し、タスク情報とあふれタスク情報とタスクのスケジュール情報との関連情報の生成を指示する。
【０１３０】
関連情報管理部４０は、タスク情報一覧とあふれタスク情報とを受け取り、タスク情報とあふれタスク情報とタスクのスケジュール情報との関連情報の生成指示を受けると、受け取ったタスク情報一覧をスケジュール管理部５０に渡して、タスクスケジュール情報の取得を指示する。スケジュール管理部５０は、タスク情報一覧を受け取り、タスクスケジュール情報の指示を受けると、受け取ったタスク情報一覧に対応するタスクスケジュール情報をタスクスケジュール記憶部１０５から取得し、取得したタスクスケジュール情報を関連情報管理部４０に返す。
【０１３１】
関連情報管理部４０は、スケジュール管理部５０からタスクスケジュール情報を受け取ると、タスク情報管理部３０から受け取ったタスク情報一覧とあふれタスク情報とを合わせて、タスク情報とあふれタスク情報とタスクスケジュール情報との関連情報を生成する。さらに関連情報管理部４０は、生成した関連情報を関連情報記憶部１０４に格納する。
【０１３２】
以上で、ユーザのタスクをスケジューリングする動作が完了する。
【０１３３】
次に、図面を参照して、あふれタスクの担当者を変更する動作を説明する。
【０１３４】
図２７は、あふれタスクの担当者を変更する動作を示すフローチャートである。
【０１３５】
ユーザは、入出力部１０に作業日程調整システムが表示したあふれタスクリストから、担当者を変更したいタスクを選択する（ステップＤ１）。ステップＤ１は第１の実施形態におけるステップＤ１と同じである。
【０１３６】
タスク情報管理部３０は、入出力部１０を介して、ユーザが選択した担当者の変更を行うタスクを特定するタスクの識別情報を受け取る。タスクの識別情報は、例えばタスクＩＤである。タスク情報管理部３０は、受け取ったタスクＩＤで特定されるタスクのタスク情報を、タスク情報記憶部１０１から読み出す。タスク情報管理部３０は、読み出したタスク情報をタスク担当者候補抽出部８０に渡し、タスク担当者の変更先の候補として、タスクが帰属するグループに属するユーザのユーザ情報一覧を、タスク担当者候補抽出部８０から取得する（ステップＤ２）。このユーザ情報一覧の取得は次のように行われる。タスク情報管理部３０は、タスク情報記憶部１０１から読み出した、タスク担当者の変更を行うタスクのタスク情報をタスク担当者候補抽出部８０に渡して、該タスクの担当者を変更する変更先の候補を抽出するようタスク担当者候補抽出部８０に指示する。タスク担当者候補抽出部８０は、まず、受け取ったタスク情報に含まれるグループＩＤにより該タスクが帰属するグループを特定する。タスク担当者候補抽出部８０は、前記特定したグループのグループ情報を読み出し、該グループ情報に含まれるユーザＩＤから該グループに所属する全てのユーザを特定する。タスク担当者候補抽出部８０は、前記特定した全てのユーザを、前記担当者の変更を行うタスクの、担当者の変更先の候補とする。次に、タスク担当者候補抽出部８０は、タスク担当者の変更先の候補とした全てのユーザのユーザ情報を、ユーザ情報記憶部１０３から読み出す。次に、タスク担当者候補抽出部８０は、読み出した全てのユーザ情報の一覧をタスク情報管理部３０に渡す。
【０１３７】
次に、タスク情報管理部３０は、タスク担当者候補一覧に含まれるそれぞれのユーザが、前記担当者の変更を行おうとしているタスクの担当者になった場合に、新たにあふれタスクが生じるか否かをユーザ毎に判定する。以下、該判定を、新たなあふれの有無の判定と表記する。処理の詳細な説明は次の通りである。
【０１３８】
まず、タスク情報管理部３０は、受け取ったユーザ情報の一覧に、新たなあふれの有無の判定を行っていない、未処理のユーザのユーザ情報が含まれていないか判定する（ステップＤ３）。未処理のユーザ情報がある場合は（ステップＤ３、Ｙ）ステップＤ４に進み、ない場合は（ステップＤ３、Ｎ）ステップＤ７に進む。この例では、まずは、未処理のユーザ情報があるとしてステップＤ４に進む。ステップＤ２で取得したユーザ情報の一覧には、ユーザＩＤが“Ｕ１”であるユーザ１ユーザ情報が含まれるが、この例では、ユーザ１のあふれタスクの担当者変更を行おうとしているので、ステップＤ３からステップＤ６の繰り返し処理ではユーザＩＤ“Ｕ１”に対する処理を行わない。
【０１３９】
次に、タスク情報管理部３０が受け取ったユーザ情報の一覧に、前記判定を行っていない未処理のユーザのユーザ情報が含まれている場合について説明する。前記新たなあふれの有無の判定を行っていないユーザが複数存在する場合は、一人ずつ順に選択して、以下で詳細を説明する新たなあふれの有無の判定を行う。以下、選択され前記判定を行っているユーザを処理中のユーザと表記する。
【０１４０】
タスク情報管理部３０は、まず、処理中のユーザのあふれタスク情報をタスク情報記憶部１０１から読み出す（ステップＤ４）。
【０１４１】
次に、タスク情報管理部３０は、処理中のユーザが担当者となっているすべてのタスクのタスク情報を、タスク情報記憶部１０１から読み出す。次に、タスク情報管理部３０は、前記読み出した処理中のユーザが担当者となっている全てのタスクに担当者を変更しようとしているタスクを加えたタスクの、タスク情報の一覧をスケジュール管理部５０に渡し、タスクのスケジューリングを指示する（ステップＤ５）。このステップＤ５の処理は、すでに説明した図１２に示すタスクのスケジューリングのフローで行われるため、説明を省略する。
【０１４２】
スケジュール管理部５０においてタスクのスケジューリングが完了すると、タスク情報管理部３０は、処理中のユーザを前記担当者の変更を行おうとしているタスクの新たな担当者とした場合の、処理中のユーザのあふれタスク情報の一覧を、スケジュール管理部５０から受け取る。
【０１４３】
次にタスク情報管理部３０は、ステップＤ４で取得した処理中ユーザのもともとのあふれタスク情報の一覧と、ステップＤ５で取得した処理中ユーザにタスクの担当者変更をした場合のあふれタスク情報の一覧とをタスク担当者候補抽出部７０に渡し、処理中のユーザのタスク担当者候補としての評価を指示する（ステップＤ６）。タスクの担当者候補の評価の基準として、例えばタスクの担当者を変更したことによって新たに発生するあふれタスクのあふれ工数の量を用いる。この評価は別な指標を用いて行ってもよい。例えば、タスク担当者を変更したことによる、新たな担当者のあふれタスクの総数や、総あふれタスク工数などを用いて評価してもよい。ステップＤ６が完了するとステップＤ３に戻る。
【０１４４】
担当者を変更しようとしているタスクが帰属するグループに所属する他のユーザに対しても同様に、該ユーザが前記タスクの担当者になった場合の、タスクスケジューリングと新たなあふれタスク情報の一覧の生成を行う。前記タスクが帰属するグループに所属する、前記タスクの元の担当者以外の全てのユーザに対して、順に一人ずつ選択して上記ステップＤ３〜Ｄ６の処理を繰り返し行う。
【０１４５】
以上でステップＤ３〜Ｄ６の繰り返し処理が完了し、ステップＤ７に進む。
【０１４６】
次に、タスク情報管理部３０は、タスクの担当者の変更先の候補であるタスク担当者候補とその評価との組を、タスク担当者候補抽出部８０から受け取る。タスク情報管理部３０は、受け取ったタスク担当者候補とその評価の組を、画面生成部２０と入出力部１０を介してユーザに提示する（ステップＤ７）。
【０１４７】
次に、ユーザはステップＤ７で提示されたタスク担当者候補とその評価の組から一人のユーザ選択し、選択したユーザをタスクの担当の変更先に決定する（ステップＤ８）。タスクの担当者を変更する際、ユーザは、提示された評価に基づいて選択を行う。例えば、ユーザは、担当者の変更により新たに発生するあふれタスク工数が最も小さいユーザを選択するなどする。ステップＤ８の処理は、ユーザに介在せずに例えばタスク情報管理部３０が行うようにしても良いし、タスク情報管理部３０が行いユーザに了解を求める形にしても良い。
【０１４８】
次に、タスク情報管理部３０は、ステップＤ８でタスクの変更先に決定したユーザの、タスク担当者の変更後のタスクスケジュール情報およびあふれタスク情報の保存を行う（ステップＤ９）。タスク情報管理部３０は、あふれタスク情報をタスク情報記憶部１０１に格納し、スケジュール管理部５０に対して、該スケジュール管理部５０が生成し保持している、タスク担当者を前記決定したユーザに変更後のタスクスケジュール情報をタスクスケジュール記憶部１０５に保存するよう指示を行う。
【０１４９】
以上で、あふれタスクの担当者を変更する動作が完了する。
【０１５０】
以上のように、本実施形態には、複数のグループに重複して所属する複数のメンバにより構成される複数のグループが存在し、各グループにおいて依存関係があるタスクを含む複数のタスクを実行する場合に、全てのタスクが完了するまでの時間を短縮する効果がある。
【０１５１】
その理由は、本実施形態の作業日程調整システムは、影響度算出部により算出した後続タスクへの影響の度合いを用いてタスクのスケジューリングを行うからである。更に、本実施形態の作業日程調整システムは、負荷の大きいメンバのタスクを、該タスクを行うグループに属する他のメンバに割り振るスケジューリングを、自動的に行うからである。
【０１５２】
次に、本発明の第３の実施形態について、図面を参照して説明する。本実施形態の作業日程調整システムは、第２の実施形態の作業日程調整システムを拡張したシステムである。本実施形態の作業日程調整システムは、各ユーザが一人で行うタスクに加えて、複数のユーザが同時に行う作業である共同作業の日時の調整を行う。共同作業の例としては例えば会議がある。共同作業は、新たにタスクや他の共同作業を追加する場合の再スケジューリングにおいて、既に決まった実行日時を変更できない特殊なタスクと見なすこともできる。しかし、以下ではタスクと共同作業は区別する。
【０１５３】
共同作業は、本発明で日程調整を行う、複数のユーザが同時に行う作業の他に、本発明で日程調整の対象としない、実行日時を変更できない個人の予定を含むことにする。実行日時を変更できない個人の予定には、本作業日程調整システムで作業日時の調整を行わない外部の人との会議等を含む。本発明では日程調整の対象としない、実行日時を変更できない個人の予定の情報は、後述の共同作業スケジュール情報に含まれているとする。
【０１５４】
共同作業にも、該共同作業の開始前に終了させておかなければならないタスクである前提タスクが存在しうる。例えば会議で使用する資料の作成等が、共同作業の前提タスクである。
【０１５５】
図３７は、本発明の第３の実施形態の作業日程調整システムの構成を示すブロック図である。図３７に示すように、本実施形態の作業日程調整システムは、図１１の構成のうち、入出力部１０を入出力部１０Ｘに置き換え、画面生成部２０を画面生成部２０Ｘに置き換え、タスク情報管理部３０をタスク情報管理部３０Ｘに置き換え、関連情報管理部４０を関連情報管理部４０Ｘに置き換え、スケジュール管理部５０をスケジュール管理部５０Ｘに置き換え、タスクスケジューリング部５１をタスクスケジューリング部５１Ｘに置き換え、関連情報記憶部１０４を関連情報記憶部１０４Ｘに置き換え、さらに図１１に示す構成に対して、共同作業スケジューリング部５２と、共同作業情報管理部９０と、共同作業スケジュール記憶部１０６と、共同作業情報記憶部１０７と、を加えたものである。
【０１５６】
入出力部１０Ｘは、図１１の入出力部１０に、ユーザからの入力を共同作業管理部９０に渡す機能を加えたものである。
【０１５７】
画面生成部２０Ｘは、図１１の画面生成部２０に、共同作業情報管理部９０からユーザに提示する画面情報の生成指示を受けて画面情報を生成し、生成した画面情報を入出力部１０Ｘに渡す機能を加えたものである。
【０１５８】
タスク情報管理部３０Ｘは、図１１のタスク情報管理部３０に、共同作業情報管理部９０からタスクの実行日時のスケジューリング指示を受け、スケジュール管理部５０Ｘにタスクの実行日時のスケジューリングの指示をする機能を加えたものである。また、タスク情報管理部３０Ｘは、図１１の情報管理部３０に、共同作業情報管理部９０にあふれタスク情報を渡す機能と、共同作業管理部９０からあふれタスク情報の保存指示を受け、タスク情報記憶部１０１にあふれタスク情報を格納する機能を加えたものである。
【０１５９】
関連情報管理部４０Ｘは、図１１の関連情報管理部４０に、共同作業情報管理部９０から共同作業情報を受け取り、共同作業情報とタスク情報とあふれタスク情報の関連情報の生成指示を受ける機能と、スケジュール管理部５０Ｘから共同作業スケジュール情報を受け取る機能を加えたものである。さらに、関連情報管理部４０Ｘは、図１１の関連情報管理部４０に対して、共同作業情報とタスク情報とあふれタスク情報の関連情報を生成し、生成した関連情報を関連情報記憶部１０４Ｘに格納する機能を加えたものである。
【０１６０】
スケジュール管理部５０Ｘは、図１１のスケジュール管理部５０に、共同作業情報管理部９０からユーザ情報を受け取って共同作業日時の候補の抽出指示を受け、共同作業スケジュール記憶部１０６から共同作業スケジュール情報を読み出し、読み出した共同作業スケジュール情報と、受け取ったユーザ情報を共同作業スケジューリング部５２に渡し、共同作業の開催日時の抽出を指示する機能を加えたものである。また、スケジュール管理部５０Ｘは、図１１のスケジュール管理部５０に、タスクスケジューリング部５１に共同作業スケジュール情報を渡す機能と、共同作業管理部９０に共同作業スケジュール情報を渡す機能と、関連情報管理部４０Ｘに共同作業スケジュール情報を渡す機能と、共同作業スケジュール情報を共同作業スケジュール記憶部１０６に格納する機能を加えたものである。
【０１６１】
タスクスケジューリング部５１Ｘは、図１１のタスクスケジューリング部５１に、スケジュール管理部５０Ｘから共同作業スケジュール情報を受け取り、共同作業とタスクのスケジューリングを行い、共同作業とタスクのスケジュール情報を生成し、生成した共同作業とタスクのスケジュール情報をスケジュール管理部５０Ｘに渡す機能を加えたものである。
【０１６２】
共同作業スケジューリング部５２は、スケジュール管理部５０Ｘから共同作業に参加するユーザのユーザ情報と共同作業スケジュール情報を受け取って、共同作業の開催日時を抽出するよう指示を受ける。また、共同作業スケジューリング部５２は、受け取った共同作業スケジュール情報を用いて共同作業の開催日時を抽出し、新たな共同作業スケジュール情報を生成する。また、共同作業スケジューリング部５２は、生成した共同作業スケジュール情報をスケジュール管理部５０Ｘに渡す。
【０１６３】
共同作業情報管理部９０は、ユーザが入力した共同作業情報を入出力部１０Ｘを介して受け取り、受け取った共同作業情報を共同作業情報記憶部１０７に格納する。また、共同作業管理部９０は、共同作業に参加するユーザのユーザ情報をスケジュール管理部５０Ｘに渡して共同作業日時の候補の抽出を指示し、スケジュール管理部５０Ｘが共同作業の開催日時を抽出して作成した共同作業スケジュール情報を、スケジュール管理部５０Ｘから受け取る。また、共同作業情報管理部９０は、タスク情報管理部３０Ｘにタスクの実行日時のスケジューリングを指示し、タスク情報管理部３０Ｘがスケジューリングを行って生成したあふれタスク情報を、タスク情報管理部３０Ｘから受け取る。また、共同作業情報管理部９０は、受け取ったあふれタスク情報と共同作業スケジュール情報を画面生成部２０Ｘに渡し、ユーザに提示する画面情報の生成を指示する。また、共同作業情報管理部９０は、スケジュール管理部５０Ｘに共同作業スケジュール情報の保存を指示する。さらに、共同作業情報管理部９０は、関連情報管理部４０Ｘに共同作業情報を渡し、共同作業情報とタスク情報とあふれタスク情報の関連情報の生成を指示する。
【０１６４】
関連情報記憶部１０４Ｘは、図１１の関連情報記憶部１０４に、共同作業情報とタスク情報とあふれタスク情報の関連情報を保持する機能を加えたものである。
【０１６５】
共同作業スケジュール記憶部１０６は、複数のユーザの共同作業スケジュール情報を保持する。
【０１６６】
共同作業情報記憶部１０７は、複数のユーザの共同作業情報を保持する。
【０１６７】
図３７に示すその他の構成要素は、図１１の構成要素と同じである。
【０１６８】
図４０は、共同作業情報の一例を示す説明図である。図４０に示す共同作業情報は、共同作業情報を一意に表す“共同作業ＩＤ”と、共同作業名を表す“共同作業名”と、共同作業の参加者を表す“参加者ＩＤ”と、共同作業の開始日時を表す“共同作業開始日時”と、共同作業の作業時間を表す“共同作業の長さ”と、を含む。図４０は共同作業開始日時が未定の状態の例であり、“共同作業開始日時”には値が入っていない。
【０１６９】
図４１は、共同作業情報とタスク情報とあふれタスク情報の関連を表す関連情報の一例を示す説明図である。図４１に示す共同作業情報とタスク情報とあふれタスク情報の関連情報は、関連情報を特定する“共同作業関連ＩＤ”と、共同作業情報を表す“共同作業ＩＤ”と、タスク情報を表す“前提タスクＩＤ”と、あふれタスク情報を表す“あふれタスクデータＩＤ”と、を含む。図４１はあふれタスク情報をまだ抽出していない状態の例であり、“あふれタスクデータＩＤ”には値が入っていない。
【０１７０】
図４２は、共同作業に参加するユーザの共同作業スケジュール情報の一例を示す説明図である。図４２に示す共同作業スケジュール情報は、共同作業スケジュール情報を一意に表す“スケジュールＩＤ”と、スケジュールの実行ユーザを表す“ユーザＩＤ”と、スケジュール名を表す“スケジュール名”と、スケジュールの実行日時を表す“実行日時”と、共同作業情報を表す“共同作業ＩＤ”と、を含む。共同作業スケジュール情報は、共同作業のスケジュールと、共同作業に参加する各ユーザ個人の、共同作業ではないが実行日時を動かせない作業のスケジュールを含む。共同作業のスケジュールの“共同作業ＩＤ”の部分には、共同作業ＩＤが入るが、共同作業でないタスクのスケジュールの“共同作業ＩＤ”の部分には値が入らない。図４２に示す例は、全てが個人のスケジュール情報であり、“共同作業ＩＤ”情報に値が入っていない。
【０１７１】
次に、図面を参照して、本実施形態に係る作業日程調整システムの動作を説明する。
【０１７２】
本実施形態に係る作業日程調整システムの動作の流れは以下の通りである。まず本作業日程調整システムが次回の共同作業の開催日時をスケジューリングし、共同作業に参加するユーザのタスクの実行日時をスケジューリングする。そして、ユーザのあふれタスクがあるかどうかを判定する。あふれタスクがある場合は、該あふれタスクが、該あふれタスクの締め切りや、該あふれタスクを前提としている共同作業の開催日時までに完了するように、該あふれタスクの担当者を、該あふれタスクが帰属するグループに所属する別のユーザに変更する。このとき、所定の基準による評価で最も適したユーザを選択し、該選択したユーザに前記あふれタスクの担当者を変更するようにすることで、タスクの実行日時のスケジューリングの全体最適を図れるようにする。あふれタスクの担当者の変更先となるユーザを選択するための基準は、例えば、あふれタスクの担当者を変更した場合に生じる新たなあふれタスクの量が最小となることである。
【０１７３】
まず、図面を参照して、共同作業の開催日時をスケジューリングする動作を説明する。
【０１７４】
図３８は、共同作業の開催日時をスケジューリングする動作を示すフローチャートである。共同作業の開催日時のスケジューリングは、新たな共同作業情報を生成して、その共同作業の開催日時のスケジューリングをする場合と、既に開催日時をスケジューリング済みの共同作業に対して、開催日時の変更をする場合がある。この例では、新たな共同作業情報を生成する場合を説明する。
【０１７５】
共同作業情報管理部９０は、ユーザが入出力部１０Ｘを介して入力した共同作業の情報から、共同作業情報を生成する（ステップＥ１）。
この時点では共同作業開始日時は未定なので、図４０の例のように、作成した共同作業情報の“共同作業開始日時”には値が入っていない。共同作業情報管理部９０は、生成した共同作業情報を共同作業情報記憶部１０７に格納する。
【０１７６】
また、共同作業情報管理部９０は、生成した共同作業情報と前提タスク情報とを用いて、共同作業情報とタスク情報とあふれタスク情報の関連情報を生成する。この時点ではあふれタスク情報を抽出していないので、図４１に示す例のように、共同作業情報の“あふれタスクデータＩＤ”には値が入っていない。
【０１７７】
次に、共同作業情報管理部９０は、ステップＥ１で生成した共同作業情報の“作業者ＩＤ”に含まれる全てのユーザＩＤをスケジュール管理部５０Ｘに渡し、共同作業の開催日時の候補の抽出を指示する。スケジュール管理部５０Ｘは、該共同作業に参加する全てのユーザのユーザＩＤを受け取り、共同作業の開催日時の候補の抽出指示を受けると、受け取ったユーザＩＤで特定される全てのユーザの共同作業スケジュール情報を共同作業スケジュール記憶部１０６から読み出す。図４２は読み出した共同作業スケジュール情報の例である。共同作業スケジュール情報は、共同作業のスケジュールと個人のスケジュールとを含む。図４２の例は、個人のスケジュールのみを含み、共同作業のスケジュールは含んでいないので、全てのスケジュールの“共同作業ＩＤ”に値が入っていない。
【０１７８】
次に、スケジュール管理部５０Ｘは、取得した共同作業スケジュール情報を共同作業スケジューリング部５２に渡し、共同作業の開催日時の候補の抽出を指示する。共同作業スケジューリング部５２は、受け取った共同作業スケジュール情報を用いて、共同作業の開催日時の候補を抽出する（ステップＥ２）。共同作業スケジューリング部５２は、受け取った共同作業スケジュール情報から、共同作業に参加する全てのユーザに共通する空き時間を、共同作業の開催日時の候補として抽出する。ただし、前記共通する空き時間の長さが共同作業の長さより短い場合は、共同作業の開催日時の候補から除外する。共同作業スケジューリング部５２は、抽出した共同作業の開催日時候補の一覧をスケジュール管理部５０Ｘに渡す。スケジュール管理部５０Ｘは、受け取った共同作業の開催日時候補の一覧を共同作業管理部９０に渡す。
【０１７９】
次に、共同作業情報管理部９０は、ステップＥ２で受け取った共同作業の開催日時の候補ごとに、該開催日時候補の日時に共同作業を行った場合の該共同作業に参加するユーザのタスクスケジューリングを行う（ステップＥ３〜ステップＥ５）。
【０１８０】
まず、共同作業情報管理部９０は、ステップＥ２で受け取った共同作業の開催日時候補の一覧の中に、該開催日時候補の日時に共同作業を行う場合の該共同作業への参加者のタスクスケジューリングを行っていない、未処理の開催日時候補があるかどうか判定する（ステップＥ３）。未処理の開催日時候補があれば（ステップＥ３、Ｙ）、該未処理の開催日時候補を処理対象としてステップＥ４に進む。なければ（ステップＥ３、Ｎ）ステップＥ７に進む。
【０１８１】
未処理の開催日時候補がある場合（ステップＥ３、Ｙ）、共同作業情報管理部９０は、ステップＥ１で生成した共同作業情報に含まれる共同作業に参加するユーザの中に、処理対象とした前記開催日時候補の日時に共同作業を行った場合の該ユーザのスケジューリングを行っていない、未処理のユーザが存在するか判定する（ステップＥ４）。未処理のユーザが存在すれば（ステップＥ４、Ｙ）、該ユーザを処理対象としてステップＥ５に進む。なければ（ステップＥ４、Ｎ）ステップＥ３に戻る。
【０１８２】
未処理のユーザが存在する場合（ステップＥ４、Ｙ）、共同作業情報管理部９０は、ステップＥ３で処理対象とした共同作業の開催日時候補の日時に共同作業を行うとした場合の、ステップＥ４で処理対象としたユーザが担当者となっているタスクのタスクスケジューリングを行う（ステップＥ５）。
【０１８３】
ステップＥ５の処理は、図４５に示す、共同作業とタスクとをスケジューリングする動作を示すフローチャートに従って実行する。ここで、図３８の共同作業のスケジューリングフローの説明は中断し、先に図４５の共同作業とタスクのスケジューリングのフローの説明を行う。また、この後の説明では、図４４の例のタスク情報がタスク情報記憶部１０１に保存されているとして説明する。
【０１８４】
図４５は、ユーザの共同作業とタスクをスケジューリングする動作を示すフローチャートである。
【０１８５】
共同作業情報管理部９０は、スケジュール管理部５０ＸにユーザＩＤを渡し、該ユーザＩＤで特定されるユーザの共同作業スケジュール情報の取得を指示する。次に、スケジュール管理部５０Ｘは、受け取ったユーザＩＤで特定されるユーザの共同作業スケジュール情報を共同作業スケジュール記憶部１０６から読み出し、読み出した共同作業スケジュール情報を共同作業情報管理部９０に渡す（ステップＦ１）。共同作業管理部９０は、受け取った共同作業スケジュール情報に、スケジューリングを行う共同作業の開催日時の候補を加えた、共同作業スケジュール情報を保持する。図４７は共同作業の候補を含む共同作業スケジュール情報の例である。図４７の例では、共同作業ＩＤ“ＴＣ１”の共同作業の開催日時がまだ決定していないので、“スケジュールＩＤ”情報に値が入っていない。
【０１８６】
次に、タスク情報管理部３０Ｘは、タスクのスケジューリングを行うユーザが担当するすべてのタスク情報をタスク情報記憶部１０１から読み出す（ステップＦ２）。ここで読み出すタスク情報は、前記ユーザが担当する全てのタスクのタスク情報なので、該タスク情報で表されるタスクは、前記ユーザが所属するいずれかのグループに帰属する。
【０１８７】
次に、タスク情報管理部３０Ｘは、ステップＦ２で読み出したタスク情報で表されるタスクの、該タスクに後続する後続タスクへの影響の度合いを表す影響度を算出する（ステップＦ３）。影響度の算出には、第２の実施形態における影響度の算出と同様に、例えば図１７に示す計算式を用いる。図１７の計算式では、あるタスクの後続タスクへの影響度は、後続するタスクの切迫度の最大値としている。またタスクの切迫度とは、タスクの予定工数情報をタスク締め切りまでの残り時間で割った値としている。図１７は影響度の定義の一例であり、他の方法で後続タスクへの影響度を算出してもよい。たとえば、あるタスクを前提とするタスク数を後続タスクの影響度と定義するなどの方法も考えられる。図４９に、算出した影響度を表す影響度情報の例を示す。
【０１８８】
次に、タスク情報管理部３０Ｘは、タスク情報の重要度と、後続タスクへの影響度の情報を用いて、ステップＦ２で取得したタスク情報の並べ替えを行う（ステップＦ４）。例えば、まずタスクの重要度の大きい順に並べ替えを行い、次に重要度が同じタスクについては後続タスクへの影響度の大きい順に並べ替えを行う。
【０１８９】
次に、タスク情報管理部３０Ｘは、並べ替えを行ったタスク情報一覧をスケジュール管理部５０Ｘに渡し、共同作業とタスクの実行日時のスケジューリングを指示する。スケジュール管理部５０Ｘは、タスク情報管理部３０から並べ替えを行ったタスク情報一覧を受け取り、タスクの実行日時のスケジューリングの指示を受けると、さらに共同作業情報管理部９０からステップＦ１で取得した共同作業スケジュール情報を取得する。次にスケジュール管理部５０Ｘは、受け取ったタスク情報一覧と共同作業スケジュール情報一覧をタスクスケジューリング部５１に渡し、まず、共同作業とタスクの実行日時の仮スケジューリングを指示する。タスクスケジューリング部５１は、スケジュール管理部５０Ｘから共同作業スケジュール情報一覧とタスク情報一覧を受け取り、共同作業とタスクの実行日時の仮スケジューリング指示を受けると、受け取った共同作業スケジュール情報一覧とタスク情報一覧に含まれる共同作業とタスクに対して実行日時の仮スケジューリングを行う（ステップＦ５）。共同作業とタスクの実行日時の仮スケジューリングでは、先に共同作業スケジュール情報の実行日時を設定し、次にタスクの締め切り日時にあわせて、タスクの実行日時を設定する。このとき、共同作業の開始日時を、該共同作業の前提タスクとなっているタスクの締め切り日時としてスケジューリングを行う。仮スケジューリングでは、共同作業や複数のタスクに実行日時の重複は考慮せず、タスクの締切日時から該タスクの予想工数分の時間だけ遡った時刻にタスクを開始し、締切日時に完了するよう日時を決める。タスクスケジューリング部５１Ｘは、仮スケジューリング結果をスケジュール管理部５０Ｘに渡す。
【０１９０】
次に、スケジュール管理部５０Ｘは、タスクスケジューリング部５１Ｘに共同作業とタスクの実行日時の本スケジューリングを指示する。タスクスケジューリング部５１Ｘは、ステップＦ５で受け取った共同作業スケジュール情報一覧とタスク情報一覧に含まれる、共同作業とタスクの実行日時の本スケジューリングを行う（ステップＦ６〜ステップＦ９）。以下、共同作業とタスクの実行日時の本スケジューリングについて詳細に説明する。
【０１９１】
タスクスケジューリング部５１Ｘは、ステップＦ５で受け取ったタスク情報一覧に、本スケジューリングを行っていない未処理のタスク情報があるか判定する（ステップＦ６）。未処理のタスク情報がある場合（ステップＦ６、Ｙ）、該タスクを処理対象にしてステップＤ７に進む。ない場合（ステップＦ６、Ｎ）、タスクの実行日時の本スケジューリングを終了する。
【０１９２】
タスクスケジューリング部５１Ｘは、ステップＤ６で処理対象としたタスクに対して、ステップＦ５で行った仮スケジューリングの結果の該タスクの実行日時を早められるか判定する。仮スケジューリングした該タスクの実行日時よりも前に空き時間があれば得実行日時を早められると判定し、タスクの実行日時を空き時間分だけ前倒しする（ステップＦ７）。このとき、共同作業スケジュールの実行日時は動かさない。
【０１９３】
次に、タスクスケジューリング部５１Ｘは、ステップＦ７でスケジューリングしたタスクの実行日時に、共同作業や本スケジュールが終了した他のタスクの実行日時との重複があるか判定する（ステップＦ８）。実行日時の重複がある場合は（ステップＦ８、Ｙ）、ステップＦ９に進む。ない場合は（ステップＦ８、Ｎ）、ステップＤ６に戻る。この判定は、作業あふれ判定部７０が行う。タスクスケジューリング部５１Ｘは、既に本スケジューリングが終了している共同作業とタスクの実行日時の情報を作業あふれ判定部７０に渡して、タスクの実行日時の重複がないか判定するようを指示する。指示を受けた作業あふれ判定部７０は、指示と同時に受け取った、共同作業及びタスクの実行日時に重複が無いか判定を行う。
【０１９４】
処理対象のタスクの実行日時と、既に本スケジューリングが終了している共同作業及びタスクの実行日時との間に重複がある場合、作業あふれ判定部７０は、及び前記重複からあふれタスク情報を作成し、あふれタスク情報のリストに追加する（ステップＦ９）。作業あふれ判定部７０は、ステップＦ８で実行日時が重複した場合、後からスケジューリングを行ったタスクにあふれが生じたとして、あふれタスク情報を生成する。
【０１９５】
ステップＤ５で受け取ったタスク情報一覧に含まれる他のタスク情報についても同様にして、タスクの本スケジューリングと、あふれタスクの判定と、あふれタスク情報の生成を行う。  共同作業及びタスクのスケジューリングの対象となっているユーザの、全ての共同作業情とタスクの実行日時の本スケジューリングが完了すると、作業あふれ判定部７０は、本スケジューリングによって生成したあふれタスク情報をタスクスケジューリング部５１Ｘに渡す。次に、タスクスケジューリング部５１Ｘは、受け取ったあふれタスク情報と生成したタスクスケジュール情報とをスケジュール管理部５０Ｘに渡す。スケジュール管理部５０Ｘは、受け取ったタスクスケジュール情報を保持し、さらに受け取ったあふれタスク情報をタスク情報管理部３０Ｘに渡す。タスク情報管理部３０Ｘは、受け取ったあふれタスク情報を保持し、さらにスケジューリングを行ったタスク情報の一覧と受け取ったあふれタスク情報とを関連情報管理部４０Ｘに渡し、タスク情報とあふれタスク情報とタスクのスケジュール情報との関連を表す関連情報の生成を指示する。
【０１９６】
関連情報管理部４０Ｘは、タスク情報一覧とあふれタスク情報とを受け取り、タスク情報とあふれタスク情報とタスクのスケジュール情報との関連情報の生成指示を受けると、受け取ったタスク情報一覧をスケジュール管理部５０Ｘに渡して、タスクスケジュール情報の取得を指示する。スケジュール管理部５０Ｘは、タスク情報一覧を受け取り、タスクスケジュール情報の指示を受けると、保持しているタスクスケジュール情報の中から、受け取ったタスク情報一覧に対応するタスクスケジュール情報を関連情報管理部４０Ｘに返す。
【０１９７】
関連情報管理部４０Ｘは、スケジュール管理部５０Ｘからタスクスケジュール情報を受け取ると、タスク情報管理部３０Ｘから受け取ったタスク情報一覧とあふれタスク情報とを合わせて、タスク情報とあふれタスク情報とタスクスケジュール情報との関連を表す関連情報を生成する。さらに関連情報管理部４０Ｘは、生成した関連情報を保持する。図５５は、タスク情報とあふれタスク情報とタスクスケジュール情報との関連情報の一例を示す説明図である。
【０１９８】
以上で、共同作業とタスクをスケジューリングする動作が完了する。
【０１９９】
ここで、再び図３８の共同作業の開催日時をスケジューリングする動作のフローの説明に戻る。
【０２００】
図４５の共同作業及びタスクのスケジューリングによって、共同作業に参加するユーザのタスクスケジューリング情報とあふれタスク情報とが生成される。そして、図３８のステップＥ３〜Ｅ５の繰り返し処理が終わると、タスク情報管理部３０Ｘは、共同作業の開催日時の候補ごとに、共同作業に参加するユーザのあふれタスク情報の一覧を保持している状態になる。
【０２０１】
タスク情報管理部３０Ｘは、自らが保持している、共同作業の開催日時の候補毎のあふれタスク情報を、共同作業情報管理部９０に渡す。次に、共同作業情報管理部９０は、画面生成部２０Ｘと入出力部１０Ｘとを介して、受け取った共同作業の開催日時の候補毎のあふれタスク情報をユーザに提示する（ステップＥ６）。
【０２０２】
ユーザは、ステップＥ６で提示された共同作業の開催日時の候補から一つの候補を選択し、共同作業の開催日時を決定する（ステップＥ７）。共同作業情報管理部９０は、ユーザが決定した共同作業の開催日時の情報を、入出力部１０Ｘを介して受け取る。
【０２０３】
共同作業情報管理部９０は、共同作業情報に含まれる前記共同作業の“共同作業開始日時”に、ユーザが決定した共同作業の開始日時を追加し、共同作業情報記憶部１０７に格納する。また、共同作業情報管理部９０は、決定した共同作業の開催日時の情報をスケジュール管理部５０Ｘに渡し、該開催日時に共同作業を実行する場合のスケジューリングの結果の、共同作業参加メンバの共同作業スケジュール情報とタスクスケジュール情報とを、新しいスケジュールの情報として保存するよう指示する。スケジュール管理部５０Ｘは、決定した開催日時に前記共同作業を行う場合の、ユーザ毎のタスクスケジュール情報及び共同作業スケジュール情報を既に保持している。スケジュール管理部５０Ｘは、決定した前記共同作業の開催日時と、共同作業参加メンバの共同作業スケジュール情報とタスクスケジュール情報を保存する指示とを受けると、決定した開催日時に前記共同作業を行う場合の、ユーザごとのタスクスケジュール情報及び共同作業スケジュール情報を、それぞれタスクスケジュール情報記憶部１０５及び共同作業スケジュール記憶部１０６に格納する。
【０２０４】
次に、共同作業情報管理部９０は、決定した共同作業の開催日時の情報をタスク情報管理部３０Ｘに渡し、タスク情報とスケジュール情報とあふれタスク情報の関連情報の保存を指示する。タスク情報管理部３０Ｘは、決定した開催日時に共同作業が行われる場合のユーザごとのあふれタスク情報を、新しいあふれタスク情報としてタスク情報記憶部１０１に格納する。また、タスク情報管理部３０Ｘは、タスク情報とスケジュール情報とあふれタスク情報の関連情報の保存指示を受け、タスク情報一覧とあふれタスク情報一覧を関連情報管理部４０Ｘに渡し、タスク情報とスケジュール情報とあふれタスク情報の関連情報の生成を指示する。
【０２０５】
関連情報管理部４０Ｘは、タスク情報一覧とあふれタスク情報とを受け取り、タスク情報とあふれタスク情報とタスクのスケジュール情報との関連情報の生成指示を受けると、受け取ったタスク情報一覧をスケジュール管理部５０Ｘに渡して、タスクスケジュール情報の取得を指示する。スケジュール管理部５０Ｘは、タスク情報一覧を受け取り、タスクスケジュール情報の指示を受けると、受け取ったタスク情報一覧に対応するタスクスケジュール情報をタスクスケジュール記憶部１０５から読み出し、読み出したタスクスケジュール情報を関連情報管理部４０Ｘに返す。
【０２０６】
関連情報管理部４０Ｘは、スケジュール管理部５０Ｘからタスクスケジュール情報を受け取ると、タスク情報管理部３０Ｘから受け取ったタスク情報一覧とあふれタスク情報とを合わせて、タスク情報とあふれタスク情報とタスクスケジュール情報との関連情報を生成する。さらに関連情報管理部４０Ｘは、生成した関連情報を関連情報記憶部１０４Ｘに格納する。
【０２０７】
また、共同作業情報管理部９０は、開催日時のスケジューリングを行った共同作業情報を関連情報管理部４０Ｘに渡し、共同作業情報とタスク情報とあふれタスク情報との関連情報の生成を指示する。関連情報管理部４０Ｘは、共同作業とタスク情報とあふれタスク情報との関連情報の生成指示を受けると、共同作業管理部９０から受け取った共同作業情報とタスク情報管理部３０Ｘから受け取ったタスク情報とあふれタスク情報とを用いて、共同作業情報とタスク情報とあふれタスク情報の関連情報を生成し、生成した関連情報を関連情報記憶部１０４Ｘに格納する（ステップＥ８）。
【０２０８】
以上で、共同作業の開催日時をスケジューリングする動作が完了する。
【０２０９】
本実施形態に係る作業日程調整システムの、あふれタスクの担当者を変更する動作は、既に説明した図２７に示すフローチャートで表される通りである。ただし、本実施形態に係る作業日程調整システムは、図２７のステップＤ５におけるタスクのスケジューリングでは、図１２のタスクをスケジューリングするフローチャートではなく、図４５の共同作業とタスクをスケジューリングするフローチャートのように動作する。
【０２１０】
以上のように、本実施の形態には、さらに、会議などの共同作業の開催日時を設定するとき、共同作業の開催日時までに共同作業に必要なタスクが作業あふれせずに、最短で共同作業を開催できる共同作業の開催日をスケジューリングできると言う効果がある。その理由は、共同作業とタスク情報とタスクのスケジュール情報との関連情報を管理しており、さらに、共同作業の開催日をスケジューリングするとき、共同作業に必要なタスクで作業あふれするタスクをシステムが抽出するためである。
【０２１１】
また、本実施の形態には、共同作業に必要なタスクで作業あふれするタスクは、適切な担当者を見つけ出すことで、共同作業の開催日とタスクの実行日時とを全体で最適となるスケジューリングができると言う効果がある。その理由は、共同作業に必要なタスク情報とそれらのタスクのあふれタスク情報との関連情報を管理しておりさらに、作業あふれするタスクに対して、タスクの担当者を変更したときの、担当者変更候補への作業の影響度を算出し、複数のグループのタスクを鑑みて、作業の余裕のあるメンバを見つけ出せるためである。
【０２１２】
第１〜第３の実施形態の作業日程調整システムは、コンピュータと、該コンピュータを制御するプログラムにより実現できる。また、該作業日程調整システムは、１台のコンピュータによって実現してもよく、互いに通信可能な複数のコンピュータで実現してもよい。
【０２１３】
次に本発明の第１の実施例について、図面を参照して詳細に説明する。本実施例は、本発明の第２の実施形態に係る作業日程調整システムの動作の例である。
【０２１４】
前述の通り、図１２は本発明の第２の実施形態に係る作業日程調整システムの、ユーザのタスクをスケジューリングする動作を示すフローチャートである。以下、図１２のフローチャートに沿って説明する。
【０２１５】
図１２のステップＣ１において、タスク情報管理部３０は、タスク情報記憶部１０１から、スケジューリングを行うユーザが担当する全てのタスクのタスク情報を読み出す。本実施例では、ユーザ１のタスクのスケジューリングを行うとする。タスク情報記憶部１０１には、図１６に示すタスク情報が記憶されているとする。タスク情報管理部が読み出したユーザ１が担当するタスクのタスク情報は図１３のようになる。
【０２１６】
また、図１４のユーザ情報の通り、ユーザ１のユーザＩＤは“Ｕ１”であり、ユーザ１が所属するグループは、図１５に示すグループ情報の通り、グループＩＤ“Ｇ１”及び“Ｇ２”である。
【０２１７】
次に、タスク情報管理部３０は、ステップＣ１で読み出したユーザ１の各タスクの、該タスクに後続する後続タスクへの影響度を算出する（ステップＣ２）。影響度は図１７の式で算出する。
【０２１８】
図１３のユーザ１のタスク情報に後続するタスクの影響度を、まず“タスクＩＤ”が“Ｔ１”のタスクについて計算する。タスク情報管理部３０は、タスクＩＤが“Ｔ１”のタスクに後続するタスク情報を、タスク情報記憶部１０１から読み出す。図１６に示すとおり、タスクＩＤ“Ｔ１”のタスクが前提タスクとなっているのは、タスクＩＤが“Ｔ４”と“Ｔ５”のタスクである。タスク情報管理部３０は、影響度を算出するタスクＩＤ“Ｔ1”のタスクのタスク情報と、タスクＩＤ“Ｔ１”のタスクに後続するタスクＩＤ“Ｔ４”と“Ｔ５”のタスクのタスク情報を影響度算出部６０に渡し、影響度の算出を指示する。
【０２１９】
影響度算出部６０は、受け取ったタスク情報を用いて、タスクＩＤ“Ｔ１”のタスクの後続タスクへの影響度を算出する。ここで、影響度を算出する時点での時刻が“2009/7/16 9:00”だとすると、タスクＩＤが“Ｔ４”のタスクの切迫度は、予想工数の８Ｈを、タスク締め切り期限の“2009/7/17 17:00”までの１６Ｈで割った値として“０．５”と算出される。また、タスクＩＤが“Ｔ５”のタスクの切迫度は、予想工数の５Ｈを、タスク締め切り期限の“2009/7/17 17:00”までの１６Ｈで割った値として“０．３１２５”と算出される。このため、タスクＩＤが“Ｔ１”のタスクの後続するタスクへの影響度は“０．５”と算出される。影響度算出部６０は、算出した影響度をタスク情報管理部３０に渡す。
【０２２０】
図１３のタスクＩＤが“Ｔ３”と“Ｔ４”のタスクについては、図１６のタスク情報には、“前提タスクＩＤ”情報が“Ｔ３”および“Ｔ４”となっているタスクはないため、それぞれ後続タスクがないと判定でき、後続するタスクへの影響度は“０”と算出される。
【０２２１】
次に、タスク情報管理部３０は、タスク情報の重要度と、後続タスクへの影響度の情報により、ステップＣ１で取得したタスク情報の並べ替えを行う（ステップＣ３）。ユーザ１のタスクの重要度と影響度を表にしたものが図１８である。図１８の情報で、まずタスクの重要度の大きい順に並べ替えを行い、次に重要度が同じタスクについては後続タスクへの影響度の大きい順に並べ替えを行うとする。図１８の例では、重要度が“高”のタスクＩＤ“Ｔ３”が１番目になり、重要度が“中”のタスクＩＤ“Ｔ１”と“Ｔ４”については、後続タスクへの影響度の大きいタスクＩＤ“Ｔ１”が２番目になり、タスクＩＤ“Ｔ４”は３番目となる。
【０２２２】
図１９は、図１３に示すユーザ１のタスク情報の並べ替えを行ったものである。
【０２２３】
次に、タスク情報管理部３０が、図１９のタスク情報とスケジューリングの指示をスケジュール情報管理部５０に送る。タスク情報と指示を受け取ったスケジュール情報管理部５０は、図１９のタスク情報と仮スケジューリングの指示に送る。図１９のタスク情報と仮スケジューリングの指示を受け取ったスケジューリング部５１は、ユーザ１のタスクの仮スケジューリングを行う（ステップＣ４）。図１９に示すタスク情報一覧のタスクの仮スケジューリングを行う場合、タスクＩＤ情報が“Ｔ３”、“Ｔ１”、“Ｔ４”の順にタスクの実行日時をスケジューリングする。まず、タスクＩＤ“Ｔ３”のタスク情報は、“期限”が“2009/7/16 16:00”で、“予想工数”が“６Ｈ”であるから、タスクの実行日時を“2009 7/16 10:00 〜 2009/7/16 16:00”とする。同様にして、タスクＩＤ“Ｔ１”のタスクの実行日時は“2009/7/16 13:00 〜 2009/7/16 17:00”、タスクＩＤ“Ｔ４”のタスクの実行日時は“2009/7/17 9:00 〜 2009/7/17 17:00”となる。
【０２２４】
図２０は、ユーザ１のタスクを仮スケジューリングした結果を表す図である。
【０２２５】
次に、スケジュール管理部５０は、タスクスケジューリング部５１にタスクの実行日時の本スケジューリングを指示する。タスクスケジューリング部５１は、ステップＣ４で受け取ったタスクの実行日時の本スケジューリングを行う（ステップＣ５〜ステップＣ８）。
【０２２６】
まず本スケジューリングを行っていない未処理のタスクが存在するか判定し、存在する場合は（ステップＣ５、Ｙ）、未処理のタスクから１つ選択して処理対象とし、ステップＣ６に進む。未処理のタスクがない場合は（ステップＣ５、Ｎ）終了する。
【０２２７】
タスクスケジューリング部５１は、ステップＣ５で処理対象となっているタスク情報について、ステップＣ４で仮スケジューリングしたタスクの実行日時を早められるか判定し、仮スケジューリングしたタスクの実行日時よりも前に空き時間があれば、タスクの実行日時を該空き時間分だけ前倒しする（ステップＣ６）。現在の時刻を“2009/7/16 9:00”として説明する。タスクＩＤ“Ｔ３”のタスクの実行日時は、仮スケジューリングの結果“2009/7/16 10:00 〜 2009/7/16 16:00”となっている。しかし、この日時よりも前の“2009/7/16 9:00 〜 2009/7/16 10:00”に空き時間があるので、タスクの実行日時を前倒しして“2009/7/16 9:00 〜 2009/7/16 16:00”をタスクＩＤ“Ｔ３”の実行日時とする。タスクＩＤ“Ｔ１”のタスクの仮スケジューリング結果の実行日時は、“2009/7/16 13:00 〜 2009/7/16 17:00”となる。この日時の前には、すでにタスクＩＤ“Ｔ３”のタスクがスケジューリングされていて空き時間がないため、仮スケジューリングと同じ“2009/7/16 13:00 〜 2009/7/16 17:00”をタスクＩＤ“Ｔ１”のタスクの実行日時とする。
【０２２８】
図２１は本スケジューリングを行ったタスクのスケジュールを表す図である。
【０２２９】
タスクスケジューリング部５１は、ステップＣ６で本スケジューリングしたタスクの実行日時に、既に本スケジューリングを行った他のタスクの実行日時との重複があるか判定し、重複がある場合は（ステップＣ７、Ｙ）ステップＣ８に進む。重複がない場合はステップＣ５に戻る（ステップＣ７、Ｎ）。重複の判定では、タスクスケジューリング部５１が既に本スケジューリングの結果の情報であるタスクスケジューリング情報を作業あふれ判定部７０に送って判定を指示し、作業あふれ判定部７０が実際の判定を行う。
【０２３０】
図２２は、図２１のタスクＩＤ“Ｔ３”とタスクＩＤ“Ｔ１”のタスクのスケジュールを表すタスクスケジューリング情報である。
【０２３１】
作業あふれ判定部は図２２のタスクスケジューリング情報を受け取り、タスクＩＤ“Ｔ３”と“Ｔ１”の実行日時で、“2009/7/16 13:00 〜 2009/7/1615:00”の日時に重複があると判定し、ステップＣ８の処理に進む。
【０２３２】
次に作業あふれ判定部７０は、ステップＣ７で判定したタスクの実行日時の重複を表すあふれタスク情報を生成する（ステップＣ８）。生成したあふれタスク情報は、あふれタスク情報の一覧であるあふれタスクリストに追加する。
【０２３３】
図２３は、図２２のタスクスケジューリング情報から生成したあふれタスク情報である。
【０２３４】
一方、図１９のタスクＩＤ“Ｔ４”のタスクは、ステップＣ６でタスクの実行日時が“2009/7/17 9:00 〜 2009/7/17 17:00”と本スケジューリングされ、ステップＣ７でタスクの実行日時の重複はないと判定される。
【０２３５】
図２４は、図１９に示すタスクから生成されたタスクスケジューリング情報である。
【０２３６】
図２５は、図１９に示すタスクから生成されたあふれタスク情報である。
【０２３７】
タスクのスケジューリングが終了すると、関連情報管理部４０は、タスクスケジュール情報とタスク情報とあふれタスク情報とから、タスクスケジュール情報とタスク情報とあふれタスク情報との関連を表す関連情報を生成する。
【０２３８】
図２６は、図１９のタスク情報と、図２４のタスクスケジュール情報と、図２５のあふれタスク情報から関連情報管理部が生成した、関連情報を表す図である。
【０２３９】
次に本実施例の作業日程調整システムがタスクの担当者を変更する動作について、図面を参照して詳細に説明する。
【０２４０】
前述の図２７が、本実施例の作業日程調整システムがタスクの担当者を変更する場合の動作を表すフローチャートである。以下、図２７のフローチャートに沿って説明を行う。
【０２４１】
タスク情報管理部３０は、入出力部１０を介してユーザにあふれタスク情報を提示し、入出力部１０を介してユーザが選択した担当者を変更するタスクの情報を受け取る。
【０２４２】
図２８は、ステップＤ１においてユーザに提示されるあふれタスク情報の例である。ユーザは、図２８に示すあふれタスク情報から、タスクＩＤ“Ｔ１”のあふれタスク情報、すなわち図２８であふれタスクＩＤが“ＯＦ１”であるあふれタスク情報のタスクを、担当者を変更するタスクとして選択したとする。
【０２４３】
ステップＤ２において、タスク情報管理部３０は、担当者を変更するタスクとして選択されたタスクのタスク情報を読み出す。タスク情報管理部３０は、読み出したタスク情報からをタスク担当者候補抽出部８０に渡す。タスク担当者候補抽出部８０が前記タスクが帰属するグループを特定し、特定したグループに所属するユーザをタスクの担当者の変更先となる候補者として抽出する。タスク担当者候補抽出部８０は、抽出した候補者のユーザ情報を、タスク情報管理部３０に送る。
【０２４４】
図２９は、選択したタスクＩＤ“Ｔ１”のタスクのタスク情報である。タスクＩＤ“Ｔ１”のタスクは、グループＩＤ“Ｇ１”のグループに帰属するので、タスク担当者候補抽出部８０は、グループ情報記憶部１０２からグループＩＤ“Ｇ１”のグループ情報を読み出す。図１５に示すグループ情報の通り、グループＩＤ“Ｇ１”に所属するユーザは、ユーザＩＤが“Ｕ１”、“Ｕ２”、“Ｕ３”のユーザである。ユーザＩＤが“Ｕ１”、“Ｕ２”、“Ｕ３”のユーザが、タスクの担当者の変更先の候補となる。
【０２４５】
図３０はタスク担当者候補抽出部８０がタスク情報管理部３０に送る、タスクの担当者の変更先となる候補者の情報である。ユーザＩＤが“Ｕ１”、“Ｕ２”、“Ｕ３”のユーザは、それぞれユーザ１、ユーザ２、ユーザ３である。ステップＤ３以降では、図３０の候補者のうち、元の担当者であるユーザ１を除くユーザを、前記タスクの担当者とした場合に新たに発生するあふれタスクの量を求める。まずユーザ２が前記タスクの新たな担当者になった場合のあふれタスクの増加を求める。
【０２４６】
まず、タスク情報管理部３０は、ユーザ２のあふれタスク情報をタスク情報記憶部１０１から読み出す（ステップＤ４）。
【０２４７】
図３１は、ステップＤ４でタスク情報管理部３０が読み出したユーザ２のあふれタスク情報である。
【０２４８】
次に、タスク情報管理部３０は、ユーザ２が担当者となっている全てのタスク情報を、タスク情報記憶１０１から読み出す。
【０２４９】
図３２はユーザ２が担当者となっている全てのタスクのタスク情報である。ユーザ２に前記タスクの担当者を変更した場合、ユーザ２のタスク情報は図３３のようになる。
【０２５０】
タスク情報管理部３０は、スケジュール管理部６０に指示して、タスクスケジューリング部５１と作業あふれ判定部７０に、それぞれタスクスケジュール情報とあふれタスク情報を、図３３に示すタスク情報から生成させる（ステップＤ５）。
【０２５１】
図３４は、ステップＤ５において、図３３のタスク情報に含まれるタスクをスケジューリングした結果を表す図である。
【０２５２】
図３５は、ステップＤ５のスケジューリングの結果生成されたあふれタスク情報である。タスク情報管理部３０は、タスク担当者候補抽出部７０に指示して、図３５のあふれタスク情報と、図３１の元のあふれタスク情報から、新たに発生したあふれタスクを求めさせる。（ステップＤ６）
担当者を変更しようとしているタスクの元の担当者であるユーザ１以外の他のユーザに対しても、同様にしてステップＤ５のタスクのスケジューリングとあふれタスク情報の生成と、新たに発生するあふれタスクの算出とを行う。
【０２５３】
ステップＤ３〜Ｄ６の処理が終了すると、図３６に示す、前記タスクの担当者を他のユーザに変更した場合に新たに発生するあふれタスクの量の一覧が得られる。
【０２５４】
次に、タスク情報管理部３０は、画面生成部２０と入出力部１０を介して、図３６に示す、タスクの担当者の変更先の候補と、それぞれの候補にタスクの担当者を変更した場合の新たに発生するあふれタスクの量とを提示する。ユーザは提示された候補から変更先を決定し、入出力部１０を介してタスク情報管理部３０に決定した変更先のユーザの情報を送る。
【０２５５】
新たに発生するあふれタスクの量が少ないユーザ３を前記タスクの変更先としてユーザが選択したとすると、タスク情報管理部３０は、ユーザ３が前記タスクの担当者となった場合のあふれタスク情報を、新たなあふれタスク情報としてタスク情報記憶部１０１に格納する。また、タスク情報管理部３０は、スケジュール管理部５０に指示して、ユーザ３が前記タスクの担当者となった場合のスケジュール情報を、新たなスケジュール情報としてタスクスケジュール記憶部１０５に格納させる。
【０２５６】
次に、本発明の第２の実施例について図面を参照して詳細に説明する。本実施例は、本発明の第３の実施形態に係る作業日程調整システムの動作の例である。
【０２５７】
前述の通り、図３８は本実施例の作業日程調整システムの、共同作業の開催日時をスケジューリングする動作を示すフローチャートである。以下、図３８のフローチャートに沿って説明を行う。
【０２５８】
まず、ユーザが入出力部１０Ｘを介して共同作業の情報を入力し、共同作業情報管理部９０が入力された情報をもとに共同作業情報を生成する（ステップＥ１）。
【０２５９】
図３９は、ユーザが共同作業情報を入力する際にユーザに提示される画面の例である。図３９の共同作業登録画面は、画面ｇ１と、共同作業情報の登録を実行するボタンｇ１ａと、共同作業名を入力するテキストボックスｇ１ｂと、共同作業の作業時間を入力するテキストボックスｇ１ｃと、共同作業の参加ユーザを指定するテキストボックス“ｇ１ｄ”と、共同作業を開催する前にタスクの完了が必要な前提タスク情報を指定するテキストボックスｇ１ｅと、から構成されている。この例では、テキストボックスｇ１ｂに共同作業名“進捗会議”が、テキストボックスｇ１ｃに共同作業時間“２Ｈ”が、テキストボックスｇ１ｄに共同作業の参加者のユーザＩＤ“Ｕ１”、“Ｕ２”、“Ｕ３”が、テキストボックスｇ１ｅに共同作業の前提タスクのタスクＩＤ“Ｔ１”、“Ｔ７”、“Ｔ１１”が指定されている。ユーザがボタンｇ１ａをクリックすると、各テキストボックスに入力された情報が入出力部１０Ｘから共同作業情報管理部９０に渡る。
【０２６０】
共同作業情報管理部９０は、入出力部１０Ｘを介して受け取った情報を用いて、図４０に例を示す同作業情報を生成する。共同作業情報管理部９０は生成した共同作業情報を、共同作業情報記憶部１０７に格納する。
【０２６１】
図４０は、共同作業情報の例を示す説明図である。図４０は、図３９に示す画面により入力された情報により生成される共同作業情報である。
【０２６２】
また、共同作業情報管理部９０は、生成した共同作業情報と前提タスク情報とを用いて、共同作業情報とタスク情報とあふれタスク情報との関連を表す関連情報を生成する。
【０２６３】
図４１は、共同作業情報とタスク情報とあふれタスク情報との関連を表す関連情報の一例を示す説明図である。ただし、あふれタスク情報はまだ抽出していないので、図４１に示す関連情報のあふれタスクデータＩＤには値が入っていない。
【０２６４】
次に、共同作業情報管理部９０は、図４１の共同作業ＩＤ“ＴＣ１”の共同作業情報に含まれるユーザＩＤの一覧をスケジュール管理部５０Ｘに渡し、共同作業の開催日時の候補の抽出を指示する。スケジュール管理部５０Ｘは、受け取ったユーザＩＤの一覧に含まれるユーザの共同作業スケジュール情報を共同作業スケジュール記憶部１０６から読み出す。
【０２６５】
図４２は、読み出された共同作業スケジュール情報の一例を示す説明図である。スケジュール管理部５０Ｘが共同作業情報記憶部１０６から読み出した、図４０に示す共同作業“ＴＣ１”に参加するユーザＩＤ“Ｕ１”、“Ｕ２”、“Ｕ３”のユーザの共同作業スケジュール情報の例が図４２であるとする。
【０２６６】
次に、スケジュール管理部５０Ｘは、取得した共同作業スケジュール情報を共同作業スケジューリング部５２に渡し、共同作業の開催日時の候補の抽出を指示する。共同作業スケジューリング部５２は、受け取った共同作業スケジュール情報を用いて、共同作業“ＴＣ１”の開催日時の候補を抽出する（ステップＥ２）。
【０２６７】
図４３は、共同作業の開催日時の候補の抽出の一例を示す説明図である。図４３には、図４２のスケジュール情報が図示されている。この中から共通するスケジュールの開いた時間帯を抽出すると、“2009/7/16 9:00 〜 2009/7/16 10:00”の１Ｈと、“2009/7/17 11:00 〜 2009/7/17 13:00”の２Ｈと、“2009/7/17 15:00 〜 2009/7/17 17:00”の２Ｈとが得られる。共同作用“ＴＣ１”の長さは“２Ｈ”であるため、“2009/7/16 9:00 〜 2009/7/16 10:00”の１Ｈは時間が足りないので、共同作業の開催日時候補から除外する。その結果、共同作業“ＴＣ１”の開催日時候補として、候補１“2009/7/17 11:00 〜 2009/7/1713:00”と、候補２“2009/7/17 15:00 〜 2009/7/17 17:00”とが残る。共同作業スケジューリング部５２は、抽出した共同作業の開催日時候補の一覧をスケジュール管理部５０Ｘに渡す。スケジュール管理部５０Ｘは、受け取った共同作業の開催日時の候補の一覧を共同作業管理部９０に渡す。
【０２６８】
次に、共同作業情報管理部９０は、ステップＥ２で受け取った共同作業の開催日時の候補ごとに、共同作業に参加する全てのユーザのタスクスケジューリングを行う（ステップＥ３〜ステップＥ５）。
【０２６９】
まず、共同作業情報管理部９０は、ステップＥ２で受け取った共同作業の開催日時の候補から、該日時に共同作業を開催した場合のユーザのタスクスケジューリングが終了していない、未処理の開催日時の候補があるかどうか判定する（ステップＥ３）。未処理の開催日時の候補があれば該開催日時を処理対象として選択しステップＥ４に進む。なければステップＥ７に進む。
【０２７０】
次に、共同作業情報管理部９０は、前記共同作業への参加ユーザの中に、ステップＥ４で処理対象として選択した日時に共同作業が開催される場合のスケジューリングを行っていない、未処理のユーザが存在するか判定する（ステップＥ４）。未処理のユーザが存在すれば処理対象のユーザとして選択しステップＥ５に進む。なければステップＥ３に戻る。
【０２７１】
次に、共同作業情報管理部９０は、ステップＥ３で処理対象となった共同作業の開催日時の候補において共同作業を開催した場合の、ステップＥ４で処理対象となったユーザが担当者であるタスクのタスクスケジューリングを行う（ステップＥ５）。以下、共同作業の開催日時の候補で“候補１”に共同作業を実施する場合の、ユーザＩＤ“Ｕ１”のユーザが担当者となっているタスク及び共同作業のタスクスケジューリング行う場合についてを説明する。
【０２７２】
図４５は、ステップＥ５の、あるユーザの共同作業とタスクとをスケジューリングする動作を示すフローチャートである。また、図４４に示すタスク情報がタスク情報記憶部１０１に格納されているとする。以下、前記開催日時の候補である候補１“2009/7/17 11:00 〜 2009/7/17 13:00”に共同作業を開催する場合の、ユーザＩＤ“Ｕ１”のユーザの共同作業とタスクのスケジューリングをする場合の動作を説明する。
【０２７３】
共同作業情報９０は、ユーザＩＤ“Ｕ１”のユーザの共同作業スケジュール情報を、スケジュール管理部５０Ｘを介して、共同作業スケジュール情報記憶部１０６から読み出す（ステップＦ１）。以下図３０に従って、ユーザＩＤ“Ｕ１”のユーザをユーザ１と表記する。
【０２７４】
図４６は、共同作業スケジュール記憶部１０６から読み出された、ユーザ１の共同作業スケジュール情報の例である。
【０２７５】
共同作業管理部９０は読み出した共同作業スケジュール情報に、共同作業“ＴＣ１”の開催日時の候補１の共同作業スケジュール情報を加える。
【０２７６】
図４７は、前記の読み出したユーザ１の共同作業スケジュール情報に、共同作業“ＴＣ１”の共同作業日時の候補１を加えたスケジュール情報である。
【０２７７】
次に、タスク情報管理部３０Ｘは、タスクのスケジューリングを行うユーザが担当するすべてのタスク情報をタスク情報記憶部１０１から読み出す（ステップＦ２）。
【０２７８】
図４８はユーザ１のタスク情報の例である。ステップＦ２では、図４８に示すタスク情報が読み出されたとする。
【０２７９】
次に、タスク情報管理部３０Ｘは、ステップＦ２で読み出したタスク情報に含まれる全てのユーザ１のタスクに対して、該タスクに後続する後続タスクへの影響度を算出する（ステップＦ３）。
【０２８０】
図４９は、図４４に示すタスク情報から、図１７に示す計算式により算出した、各タスクの影響度である。例としてタスクＩＤ“Ｔ１”のタスクの影響度を算出する過程について説明する。
【０２８１】
図４４に示すタスク情報においては、タスクＩＤ“Ｔ１”のタスクが前提タスクとなっているのは、タスクＩＤが“Ｔ４”と“Ｔ５”のタスクである。タスク情報管理部３０ＸがタスクＩＤ“Ｔ４”と“Ｔ５”のタスク情報を影響度算出部６０に渡し、タスクＩＤ“Ｔ１”のタスクの影響度の算出を指示する。影響度算出部６０における影響度の算出は以下の通り行われる。影響度を算出する時点での時刻が“2009/7/16 9:00”だとすると、タスクＩＤが“Ｔ４”のタスク情報の切迫度は、予想工数の８Ｈを、タスク締め切り期限の“2009/7/17 17:00”までの１６Ｈで割った“０．５”となる。また、タスクＩＤが“Ｔ５”のタスク情報の切迫度は、予想工数の５Ｈを、タスク締め切り期限の“2009/7/17 17:00”までの１６Ｈで割った“０．３１２５”となる。図７に計算式の示す影響度は、後続するタスクの切迫度の最大値である。従って、タスクＩＤが“Ｔ１”のタスク情報の後続するタスクへの影響度は“０．５”となる。
【０２８２】
また、 タスクＩＤが“Ｔ１”以外のタスクは、該タスクが前提タスクとなっているタスクが無いので、影響度は“０”となる。
【０２８３】
次に、タスク情報管理部３０Ｘは、重要度と影響度とを用いて処理対象となっているユーザのタスク情報を並べ替える。（ステップＦ４）。タスク情報は、まず重要度順に並べ替え、次に同じ重要度のタスクを影響度の大きい順に並べ替える。
【０２８４】
図５０は、図４８に示すユーザ１のタスク情報を並べ替えた結果である。図４８のタスクの並べ替えにおいて、重要度が“高”のタスクＩＤ“Ｔ３”が１番目になり、同じく重要度が“高”のタスクＩＤ“Ｔ１２”が２番目になる。次に重要度が“中”のタスクが並ぶが、後続タスクへの影響度の大きいタスクＩＤ“Ｔ１”が３番目になる。その他のタスク情報であるタスクＩＤ“Ｔ４”、“Ｔ５”、“Ｔ６”は、タスクの重要度も後続タスクへの影響度も同じであるため、図４８のタスク情報一覧と同じ順として、タスクＩＤ“Ｔ４”が４番目、タスクＩＤ“Ｔ５”が５番目、タスクＩＤ“Ｔ６”が６番目となる。
【０２８５】
次に、タスク情報管理部３０Ｘは、スケジュール管理部５０Ｘに、並べ替えを行ったタスク情報一覧を渡して共同作業とタスクの実行日時のスケジューリングを行うよう指示する。スケジュール管理部は、スケジューリングの指示を受けると共同作業情報管理部９０から共同作業スケジュール情報を受け取り、受け取ったタスク情報及び共同作業スケジュール情報とを、タスクスケジューリング部５１に渡して仮スケジューリングを行うよう指示する。
【０２８６】
タスクスケジューリング部５１は、受け取ったタスク情報と共同作業スケジュール情報に含まれるタスク及び共同作業の仮スケジューリングを行う（ステップＦ５）。タスク及び共同作業の仮スケジューリングでは、まず先に共同作業の実行日時を決める。次に、タスク情報に含まれる順に、それぞれのタスクの実行日時を、タスク情報に含まれる期限から予想工数分だけ遡った日時に開始し、前記期限に終了するように決める。
【０２８７】
図４７に示す共同作業スケジュール情報と図５０に示すタスク情報の仮スケジューリングでは、タスクスケジューリング部５１は、まず共同作業スケジュール情報“Ｓ１”、“Ｓ２”、共同作業“ＴＣ１”の順に共同作業の実行日時を決める。タスクスケジューリング部５１は、次にタスクＩＤ“Ｔ３”、“Ｔ１２”、“Ｔ１”、“Ｔ４”、“Ｔ５”、“Ｔ６”の順にタスクの実行日時を決める。
【０２８８】
図５１は、図４７の共同作業及び図５０のタスクの仮スケジューリングを行った結果を表す図である。
【０２８９】
次に、スケジュール管理部５０Ｘは、タスクスケジューリング部５１Ｘに共同作業とタスクの実行日時の本スケジューリングを指示する。
【０２９０】
タスクスケジューリング部５１Ｘは、タスクの本スケジューリングの処理が終了していないタスクがあれば（ステップＦ６、Ｙ）を処理対象として選択し、ステップＦ７に進む。本スケジューリングでは、共同作業スケジュールの実行日時は動かさないので、処理対象にはしない。全てのタスクの本スケジューリングが終了していれば（ステップＦ６、Ｎ）、処理を終了する。
【０２９１】
タスクスケジューリング部５１Ｘは、ステップＦ６で処理対象としたタスクの、仮スケジューリングの結果の実行日時よりも前に、他のタスクや共同作業がスケジューリングされていない空き時間があれば、該タスクの実行日時を、前記空き時間分だけ早める（ステップＤ７）。
【０２９２】
仮スケジューリング結果が図５１のようになった各タスクの本スケジューリングは、以下のようになる。現在の時刻を“2009/7/16 9:00”として説明する。仮スケジューリングの結果の実行日時より前に空き時間があるのは、タスクＩＤ“Ｔ３”のタスクだけである。ステップＦ６でタスクＩＤ“Ｔ３”のタスクが処理対象となった場合、該タスクの仮スケジューリングの結果の実行日時は“2009/7/16 10:00 〜 2009/7/16 16:00”であるが、この日時よりも前に“2009/7/16 9:00 〜 2009/7/16 10:00”に空き時間がある。そこで、タスクスケジューリング部５１Ｘは、タスクＩＤ“Ｔ３”のタスクの実行日時を空き時間分だけ前にずらして、“2009/7/16 9:00 〜 2009/7/16 16:00”をタスクＩＤ“Ｔ３”の実行日時にする。ステップＦ６で他のタスクが処理対象となった場合は、仮スケジューリング結果の実行日時より前に空き時間はないので、何もしない。
【０２９３】
次に、タスクスケジューリング部５１Ｘは、本スケジューリングを行った結果のタスクの実行日時に、重複があるか作業あふれ判定部７０に判定させる。作業あふれ判定部７０は、本スケジューリングを行った結果のタスクの実行日時に、共同作業または他のタスクの実行日時との重複があるか判定する（ステップＦ８）。判定の結果、実行日時の重複がある場合は（ステップＦ８、Ｙ）。ステップＦ９に進み、ない場合は（ステップＦ８、Ｎ）ステップＦ６に戻る。
【０２９４】
ステップＦ６でタスクＩＤ“Ｔ３”のタスクが処理対象となっている場合、作業あふれ判定部７０は、スケジュールＩＤ“Ｓ１”とタスクＩＤ“Ｔ３”の実行日時に、“2009/7/16 13:00 〜 2009/7/16 15:00”の時間帯に重複があると判定し、ステップＦ９の処理に進む。
【０２９５】
次に作業あふれ判定部７０は、ステップＦ８で判定した共同作業とタスクの実行日時の重複から、あふれタスク情報を生成する（ステップＦ９）。共同作業又はタスクに重複が生じた場合、後でスケジューリングを行ったタスクにあふれ時間が生じたとして、あふれタスク情報を生成する。あふれタスク情報は、作業あふれ判定部７０は、生成したあふれタスク情報を、全てのタスクのあふれタスク情報の一覧に追加して保持する。あふれタスク情報の一覧をあふれタスクリストとも表記することにする。
【０２９６】
図５２は、図４７の共同作業情報に含まれる共同作業と図５０に示すタスク情報に含まれる全てのタスクとに対し、本スケジューリングを行った結果を表す図である。
【０２９７】
図５３は、タスクスケジューリング部５１Ｘが、図４７の共同作業情報と図５０に示すタスク情報から生成したタスクスケジュール情報である。
【０２９８】
図５４は、図４７の共同作業情報と図５０に示すタスク情報に対してスケジューリングを行った結果から、作業あふれ判定部７０が生成したあふれタスク情報である。
【０２９９】
タスクスケジューリング部５１Ｘはスケジュール管理部５０Ｘを介して、タスクスケジュール情報をタスク情報管理部３０Ｘに渡す。また、作業あふれ判定部７０は、タスクスケジューリング部５１Ｘ及びスケジュール管理部５０Ｘを介して、あふれタスク情報をタスク情報管理部３０Ｘに渡す。
【０３００】
タスク情報管理部３０Ｘは、関連情報管理部４０Ｘに、スケジューリングを行ったタスクのタスク情報と、あふれタスク情報と、タスクスケジュール情報とを渡して、タスクのタスク情報とあふれタスク情報とタスクスケジュール情報との関係を表す関連情報の生成を指示する。
【０３０１】
関連情報管理部４０Ｘは、受け取ったタスクのタスク情報とあふれタスク情報とタスクスケジュール情報とから、該タスク情報と該あふれタスク情報と該タスクスケジュール情報との関係を表す関連情報を生成する。
【０３０２】
図５５は、図５０に示すタスク情報と、図５４に示すあふれタスク情報と、図５３に示す付くスケジュール情報とから、関連情報管理部４０Ｘが生成した関連情報を表す図である。
【０３０３】
以上のような処理を繰り返し、全ての共同作業の開催日時の候補に対して、共同作業及びタスクのスケジューリングが終了したとする。このとき、タスク情報管理部３０Ｘは、それぞれの共同作業の開催日時の候補において共同作業を開催した場合の、あふれタスク情報を保持している。
【０３０４】
図５６は、タスク情報管理部３０Ｘが保持しているあふれタスク情報の一覧の例である。
【０３０５】
図５６に示すように、共同作業の開催日時の候補１では、ユーザ１はタスク“Ｔ４”で新たに２Ｈの作業あふれが発生し、ユーザ２はタスク“Ｔ９”で新たに２Ｈの作業あふれが発生し、ユーザ３はタスク“Ｔ５”で新たに３Ｈの作業あふれが発生している。また、ユーザ３は、共同作業の前提タスク“Ｔ５”で新たな作業あふれが発生してしまうことがわかる。これに対して、共同作業の開催日時の候補２では、ユーザ１でタスク“Ｔ４”に新たに２Ｈの作業あふれが発生するのみである。
【０３０６】
タスク情報管理部３０Ｘは、共同作業情報管理部９０に保持しているあふれタスク情報を渡す。次に、共同作業情報管理部９０は、画面生成部２０Ｘと入出力部１０Ｘを介して、共同作業の開催日時候補ごとの共同作業メンバのあふれタスク情報を示す画面をユーザに提示する（ステップＥ６）。
【０３０７】
図５７は、共同作業の開催日時候補ごとの共同作業メンバのあふれタスク情報を示す画面の一例である。図４７の画面は、画面“ｇ２”と、共同作業の開催日時候補ごとの共同作業メンバのあふれタスク情報の一覧“ｇ２ａ”と、開催日時候補を選択するラジオボタン“ｇ２ｂ”と、ＯＫボタン“ｇ２ｃ”と、Ｃａｎｃｅｌボタン“ｇ２ｄ”と、から構成されている。
【０３０８】
ユーザは、ステップＥ６で提示された画面を確認し、共同作業の開催日時を候補から選択して決定する（ステップＥ７）。ユーザが選択した共同作業の開催日時の候補の情報は、入出力部１０Ｘを介して共同作業情報管理部９０に渡る。以下、ユーザは図５７の候補１を開催日時に決定したとする。
【０３０９】
共同作業情報管理部９０は、決定した開催日時の情報を共同作業情報に追加し、該共同作業情報を共同作業情報記憶部１０７に格納する。
【０３１０】
図５８は決定した開催日時の情報を追加した共同作業情報である。
【０３１１】
また、共同作業情報管理部９０は、決定した共同作業の開催日時の情報をスケジュール管理部５０Ｘに渡し、共同作業の開催日時が該決定した開催地日時である、共同作業参加メンバの共同作業スケジュール情報とタスクスケジュール情報の保存を指示する。スケジュール管理部５０Ｘは、保持している共同作業の開催日時の候補ごと、ユーザごとのタスクスケジュール情報から、決定した開催日時に共同作業を行う場合のユーザごとのタスクスケジュール情報を選択し、タスクスケジュール情報記憶部１０５に格納する。同様に、スケジュール管理部５０Ｘは、保持している開催日時の候補ごと、ユーザごとの共同作業スケジュール情報から、決定した開催日時に共同作業を行う場合のユーザごとの共同作業スケジュール情報を選択し、共同作業スケジュール記憶部１０６に格納する。
【０３１２】
図５９は、決定した開催日時において共同作業を行う場合のタスクスケジュール情報である。
【０３１３】
図６０は、決定した開催日時において共同作業を行う場合の共同作業スケジュール情報である。
【０３１４】
次に、共同作業情報管理部９０は、決定した共同作業の開催日時におけるタスク情報とスケジュール情報とあふれタスク情報の関連情報の保存を、タスク情報管理部３０Ｘに指示する。タスク情報管理部３０Ｘは、保持している共同作業の開催日時の候補ごと、ユーザごとのあふれタスク情報から、決定した開催日時に共同作業を行う場合のユーザごとのあふれタスク情報を選択して、タスク情報記憶部１０１に格納する。
【０３１５】
図６１は、決定した共同作業に共同作業を行う場合のあふれタスク情報である。
【０３１６】
また、共同作業情報管理部９０は、タスク情報管理部３０Ｘを介し、関連情報管理部４０Ｘに対して、決定した開催日時に共同作業を行う場合の、タスク情報とスケジュール情報とあふれタスク情報とのとの関連を表す関連情報の生成と保存を指示する。
【０３１７】
関連情報管理部４０Ｘは、必要なタスク情報一覧と必要なあふれタスク情報とをタスク情報管理部３０Ｘから受け取り、必要なタスクスケジュール情報をスケジュール管理部５０Ｘから受け取り、それぞれ受け取ったタスク情報とあふれタスク情報とタスクスケジュール情報とのとの関連を表す関連情報を生成する。関連情報管理部４０Ｘは、生成した前記関連情報を、関連情報記憶部１０４Ｘに格納する。
【０３１８】
図６２は、関連情報管理部４０Ｘが生成したタスク情報とあふれタスク情報とタスクスケジュール情報との関連を表す前記関連情報である。
【０３１９】
また、共同作業情報管理部９０は、決定した開催日時にスケジューリングされた共同作業の共同作業情報を関連情報管理部４０Ｘに渡し、前記共同作業情報と前記タスク情報と前記あふれタスク情報との関連情報の生成と保存を指示する。共同作業情報管理部９０からの指示を受けた関連情報管理部４０Ｘは前記関連情報を生成し、生成した関連情報を関連情報記憶部１０４Ｘに格納する（ステップＣ８）。
【０３２０】
図６３は、共同作業情報とタスク情報とあふれタスク情報との関連を表す前記関連情報である。
【０３２１】
以上で、共同作業の開催日時をスケジューリングする動作が完了する。
【０３２２】
本実施例における、あふれタスクの担当者を変更する動作については、既に説明した図２７のフローと同様であるので、説明を省略する。ただし、本実施例の、図２７のステップＤ５におけるタスクのスケジューリングの動作は、図４５の共同作業とタスクをスケジューリングするフローチャートで表される動作である。
【符号の説明】
【０３２３】
１０、１０Ｘ    入出力部
２０、２０Ｘ    画面生成部
３０、３０Ａ、３０Ｘ    タスク情報管理部
４０、４０Ｘ    関連情報管理部
５０、５０Ａ、５０Ｘ    スケジュール管理部
５１、５１Ａ、５１Ｘ    タスクスケジューリング部
５２    共同作業スケジューリング部
６０    影響度算出部
７０    作業あふれ判定部
８０、８０Ａ    タスク担当者候補抽出部
９０    共同作業情報管理部
１０１    タスク情報記憶部
１０２    グループ情報記憶部
１０３    ユーザ情報記憶部
１０４、１０４Ｘ    関連情報記憶部
１０５    タスクスケジュール記憶部
１０６    共同作業スケジュール記憶部
１０７    共同作業情報記憶部
ｇ１    共同作業登録画面
ｇ１ａ    登録ボタン
ｇ１ｂ    共同作業名入力テキストボックス
ｇ１ｃ    共同作業時間入力テキストボックス
ｇ１ｄ    参加ユーザ入力テキストボックス
ｇ１ｅ    前提タスク入力テキストボックス
ｇ２    あふれタスク情報画面
ｇ２ａ    あふれタスク情報一覧
ｇ２ｂ    開催日時候補選択ラジオボタン
ｇ２ｃ    ＯＫボタン
ｇ２ｄ    Ｃａｎｃｅｌボタン
【図１】
2011090625.tif 000003
【図２】
2011090625.tif 000004
【図３】
2011090625.tif 000005
【図４】
2011090625.tif 000006
【図５】
2011090625.tif 000007
【図６】
2011090625.tif 000008
【図７】
2011090625.tif 000009
【図８】
2011090625.tif 000010
【図９】
2011090625.tif 000011
【図１０】
2011090625.tif 000012
【図１１】
2011090625.tif 000013
【図１２】
2011090625.tif 000014
【図１３】
2011090625.tif 000015
【図１４】
2011090625.tif 000016
【図１５】
2011090625.tif 000017
【図１６】
2011090625.tif 000018
【図１７】
2011090625.tif 000019
【図１８】
2011090625.tif 000020
【図１９】
2011090625.tif 000021
【図２０】
2011090625.tif 000022
【図２１】
2011090625.tif 000023
【図２２】
2011090625.tif 000024
【図２３】
2011090625.tif 000025
【図２４】
2011090625.tif 000026
【図２５】
2011090625.tif 000027
【図２６】
2011090625.tif 000028
【図２７】
2011090625.tif 000029
【図２８】
2011090625.tif 000030
【図２９】
2011090625.tif 000031
【図３０】
2011090625.tif 000032
【図３１】
2011090625.tif 000033
【図３２】
2011090625.tif 000034
【図３３】
2011090625.tif 000035
【図３４】
2011090625.tif 000036
【図３５】
2011090625.tif 000037
【図３６】
2011090625.tif 000038
【図３７】
2011090625.tif 000039
【図３８】
2011090625.tif 000040
【図３９】
2011090625.tif 000041
【図４０】
2011090625.tif 000042
【図４１】
2011090625.tif 000043
【図４２】
2011090625.tif 000044
【図４３】
2011090625.tif 000045
【図４４】
2011090625.tif 000046
【図４５】
2011090625.tif 000047
【図４６】
2011090625.tif 000048
【図４７】
2011090625.tif 000049
【図４８】
2011090625.tif 000050
【図４９】
2011090625.tif 000051
【図５０】
2011090625.tif 000052
【図５１】
2011090625.tif 000053
【図５２】
2011090625.tif 000054
【図５３】
2011090625.tif 000055
【図５４】
2011090625.tif 000056
【図５５】
2011090625.tif 000057
【図５６】
2011090625.tif 000058
【図５７】
2011090625.tif 000059
【図５８】
2011090625.tif 000060
【図５９】
2011090625.tif 000061
【図６０】
2011090625.tif 000062
【図６１】
2011090625.tif 000063
【図６２】
2011090625.tif 000064
【図６３】
2011090625.tif 000065