JP2016033779A - ソースコードの共有を支援する装置及び方法 - Google Patents

ソースコードの共有を支援する装置及び方法 Download PDF

Info

Publication number
JP2016033779A
JP2016033779A JP2014156962A JP2014156962A JP2016033779A JP 2016033779 A JP2016033779 A JP 2016033779A JP 2014156962 A JP2014156962 A JP 2014156962A JP 2014156962 A JP2014156962 A JP 2014156962A JP 2016033779 A JP2016033779 A JP 2016033779A
Authority
JP
Japan
Prior art keywords
information
user
change information
shared
change set
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.)
Granted
Application number
JP2014156962A
Other languages
English (en)
Other versions
JP6029117B2 (ja
Inventor
武彦 天野
Takehiko Amano
武彦 天野
芳雄 堀内
Yoshio Horiuchi
芳雄 堀内
賢 熊谷
Masaru Kumagai
賢 熊谷
孝昭 川瀬
Takaaki Kawase
孝昭 川瀬
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2014156962A priority Critical patent/JP6029117B2/ja
Priority to US14/753,524 priority patent/US9860287B2/en
Publication of JP2016033779A publication Critical patent/JP2016033779A/ja
Application granted granted Critical
Publication of JP6029117B2 publication Critical patent/JP6029117B2/ja
Priority to US15/420,450 priority patent/US9858071B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ソースコードに対する変更を確定させる確定作業を行うことなく、複数のユーザ間でのソースコードの共有を実現する。【解決手段】共有変更セットサーバ30では、受信部31が、変更セットを作成した開発者が使用する端末装置から、未確定変更セットの情報とこれを共有するユーザの情報とを受信する。次に、共有変更セット管理部32が、未確定変更セットとこれを共有するユーザの情報とを含む共有変更セットを作成し、共有変更セット記憶部33に記憶する。その後、送信部34が、共有変更セットの情報を、これを共有する開発者が使用する端末装置へ送信する。【選択図】図4

Description

本発明は、ソースコードの共有を支援する装置及び方法に関する。特に、本発明は、複数のユーザ間でのソースコードの共有を支援する装置及び方法に関する。
ソフトウェア開発プロジェクトでは、1つの作業(タスク)を複数の開発者が担当しており、各開発者の作業が密接に絡んでいる場合が多い。例えば、ある開発者がソースコードを開発し、別の開発者がそのソースコードの単体試験のコードを開発するような場合である。このような場合には、ソースコードに合わせた試験のコードの開発が必要になる。よって、複数の開発者間でソースコードを共有する必要が生じる。ソースコードを共有するためにソフトウェア構成管理ツールが利用される。
この他にも、コンピュータを用いて共同作業を行う技術は知られている(例えば、非特許文献1、2、及び、特許文献1、2参照)。
非特許文献1は、共有ボタンをクリックすれば、友達、クラスメート、同僚、家族など誰もがドキュメントを閲覧、コメント、編集できるようになり、他のユーザがドキュメントを編集していると、変更やテキストのハイライト表示に合わせて、そのユーザのカーソルが表示されるGoogle(登録商標)ドキュメントを開示する。
非特許文献2は、1つのセッションで、かつ、マルチユーザのチャットでの多数のドキュメントをサポートする無料の共同作業用のエディタであるGobbyを開示する。
特許文献1は、少なくとも2のクライアントとそのクライアントにネットワークを介して接続されうるサーバとを備えうるコンピューティング環境において、その少なくとも2のクライアントのうちの1つのクライアント上で実行されるアプリケーションのローカル環境のクローンをサーバ上に構築する技法を開示する。
特許文献2は、複数のグループ協同作業エージェントを多地点通信サーバを介して互いに通信回線で接続してなり、その各グループ協同作業エージェントは、情報の通信をする通信サーバと、基礎的な作業を支援する基礎作業支援サーバと、多者間の会議を支援する多者間会議サーバと、ソフトウェア開発業務を支援するソフトウェア開発支援サーバと、通信サーバにより行われる通信のための情報を管理する通信情報ベースと、基礎作業支援サーバにより行われる基礎作業実行のための知識を管理する基礎作業知識ベースと、多者間会議サーバにより行われる会議に関する知識を管理する会議知識ベースと、ソフトウェア開発支援サーバにより行われるソフトウェア開発に関する知識を管理するソフトウェア開発知識ベースと、利用者との間で直接に情報のやりとりをする統合利用者インタフェースとからなるソフトウェア分散協同開発支援システムを開示する。
また、ソースコードの変更管理を行う技術も知られている(例えば、特許文献3参照)。
特許文献3は、クライアント端末機から受信したソースコードファイルを構文解析し、構文ツリーに分解する構文解析手段と、構文ツリーの要素毎に、ソースコードファイルの前のバージョンにおけるソースコードファイルとの変更差分を抽出するリポジトリ編集手段と、変更差分を保持するリポジトリ情報保持部とを備えるソースコード管理サーバを開示する。
特開2012−118674号公報 特開平6−28164号公報 特開2005−346660号公報
Googleドキュメント、[online]、[平成26年7月17日検索]、インターネット<URL:http://www.google.com/intl/ja/docs/about/index.html> Gobby、[online]、[平成26年7月17日検索]、インターネット<URL:http://gobby.0x539.de/trac/wiki/WikiStart>
上述したように、ソースコードを共有するためにソフトウェア構成管理ツールが利用される。ところが、ソフトウェア構成管理ツールでソースコードを共有するためには、ソースコード管理サーバへの確定作業を実施する必要がある。つまり、一度手元のソースコードを保存し、ソースコードに対する変更を確定させる確定作業を行う必要がある。確定作業が実施されると、それ以降、ソースコードは修正できなくなる。よって、確定作業を実施することは、不安定なソースコードがソースコード管理サーバに紛れ込む要因になる。その結果、ビルドの失敗やテストの失敗を誘発し、プロジェクトの運営に支障を来すこととなる。また、密接に協働作業を実施する開発者チームにおいては、確定作業が頻繁に行われるため、開発作業におけるボトルネックになってしまう。従って、確定作業を実施することにより生産性が低下するという課題があった。
こうしたことから、従来、個人開発用のブランチを利用し、プロジェクト全体への影響を最小限にすることも行われてきた。しかしながら、この場合も、ソースコードの確定作業は依然として必要であり、また、ブランチの管理も必要なので、生産性低下の課題は残ってしまう。
尚、非特許文献1、2、及び、特許文献1〜3に記載されたように、コンピュータを用いて共同作業を行う技術や、ソースコードの変更管理を行う技術は公知であったが、何れの技術も、上記課題を解決する手段を提示するものではない。
本発明の目的は、ソースコードに対する変更を確定させる確定作業を行うことなく、複数のユーザ間でのソースコードの共有を実現することにある。
かかる目的のもと、本発明は、複数のユーザ間でのソースコードの共有を支援する装置であって、第1のユーザが使用する第1の端末から、第1のユーザが作成した情報であってソースコードに対する確定されていない変更を示す情報である未確定変更情報を受信する受信部と、第1のユーザとの間で未確定変更情報を共有する第2のユーザを特定する特定部と、第2のユーザが使用する第2の端末に、未確定変更情報を送信する送信部とを含む、装置を提供する。
ここで、この装置は、未確定変更情報と、第2のユーザを示すユーザ情報とを含む共有変更情報を生成する生成部を更に含み、特定部は、共有変更情報に未確定変更情報と共に含まれるユーザ情報に基づいて、第2のユーザを特定する、ものであってよい。
その場合、受信部は、第1の端末から、第1のユーザが作成した情報であってソースコードに対する追加の変更を示す情報である追加変更情報を受信し、生成部は、共有変更情報に含まれる未確定変更情報を追加変更情報に基づいて変更し、送信部は、第2の端末に、追加変更情報を送信する、ものであってよい。
また、生成部は、未確定変更情報により示される確定されていない変更を確定させた確定変更情報を生成した後、共有変更情報を削除し、送信部は、第2の端末に、確定変更情報が生成された旨の情報と、共有変更情報が削除された旨の情報とを送信する、ものであってよい。
一方、この装置は、未確定変更情報と、第1のユーザを示す第1のユーザ情報と、第2のユーザを示す第2のユーザ情報とを含む共有変更情報を生成する生成部を更に含み、特定部は、共有変更情報に未確定変更情報と共に含まれる第1のユーザ情報及び第2のユーザ情報に基づいて、未確定変更情報を共有する第1のユーザ及び第2のユーザを特定し、送信部は、第1の端末及び第2の端末に、共有変更情報を送信する、ものであってもよい。
その場合、受信部は、第1の端末から、第1のユーザが作成した情報であってソースコードに対する追加の変更を示す情報である第1の追加変更情報を受信し、かつ、第2の端末から、第2のユーザが作成した情報であってソースコードに対する追加の変更を示す情報である第2の追加変更情報を受信し、生成部は、共有変更情報に含まれる未確定変更情報を第1の追加変更情報及び第2の追加変更情報に基づいて変更し、送信部は、第2の端末に、第1の追加変更情報を送信し、かつ、第1の端末に、第2の追加変更情報を送信する、ものであってよい。そして、この場合、第1の追加変更情報により示される追加の変更に要した作業量と、第2の追加変更情報により示される追加の変更に要した作業量とを区別して記録する記録部を更に含む、ものであってよい。
また、受信部は、第1の端末から、第1のユーザが行った指示であって未確定変更情報により示される確定されていない変更を確定させる指示を示す確定指示情報を受信し、生成部は、確定指示情報の受信に応じて、未確定変更情報により示される確定されていない変更を確定させた確定変更情報を生成した後、共有変更情報を削除し、送信部は、第2の端末に、確定変更情報が生成された旨の情報と、共有変更情報が削除された旨の情報とを送信する、ものであってよい。そして、この場合、生成部は、第1のユーザが作成した未確定変更情報の受信に応じて共有変更情報を生成する際に、第1のユーザが確定させる指示を行う権限を有することを示す権限情報を共有変更情報に含め、その後、第1のユーザが確定させる指示を行う前に、確定させる指示を行う権限を第2のユーザが有することを示すように権限情報を変更する、ものであってよい。
また、本発明は、複数のユーザ間でのソースコードの共有を支援する方法であって、第1のユーザが使用する第1の端末から、第1のユーザが作成した情報であってソースコードに対する確定されていない変更を示す情報である未確定変更情報を受信するステップと、第1のユーザとの間で未確定変更情報を共有する第2のユーザを特定するステップと、第2のユーザが使用する第2の端末に、未確定変更情報を送信するステップとを含む、方法も提供する。
更に、本発明は、複数のユーザ間でのソースコードの共有を支援する装置として、コンピュータを機能させるプログラムであって、コンピュータを、第1のユーザが使用する第1の端末から、第1のユーザが作成した情報であってソースコードに対する確定されていない変更を示す情報である未確定変更情報を受信する受信部と、第1のユーザとの間で未確定変更情報を共有する第2のユーザを特定する特定部と、第2のユーザが使用する第2の端末に、未確定変更情報を送信する送信部として機能させる、プログラムも提供する。
本発明によれば、ソースコードに対する変更を確定させる確定作業を行うことなく、複数のユーザ間でのソースコードの共有を実現できる。
本発明の実施の形態の課題について説明するための図である。 本発明の実施の形態の概要について示した図である。 本発明の実施の形態が適用されるコンピュータシステムの全体構成例を示した図である。 本発明の実施の形態における共有変更セットサーバの機能構成例を示したブロック図である。 本発明の実施の形態における共有変更セットサーバの共有変更セット作成時の動作例を示したシーケンス図である。 本発明の実施の形態における共有変更セットサーバの共有変更セット変更時の動作例を示したシーケンス図である。 本発明の実施の形態における共有変更セットサーバの共有変更セット確定時の動作例を示したシーケンス図である。 本発明の実施の形態における共有変更セットサーバのハードウェア構成例を示した図である。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
[本実施の形態の課題]
図1は、本実施の形態の課題について説明するための図である。この図は、開発者Aがソースコードを開発し、開発者Bがそのソースコードをテストするためのソースコードであるテストコードを開発する場面を示している。
開発者Aは、自身の端末装置のワークスペース100aにソースコードをロードして変更を行っている。また、開発者Bは、自身の端末装置のワークスペース100bにテストコードをロードして変更を行っている。その際、変更に関する情報は、図中、三角形で表した変更セットという単位で各ワークスペース内に保持される。変更セットとは、ファイル、フォルダ及びコンポーネントに対する変更を、関連するグループごとに収集して、1回の操作でワークスペース又はストリームに適用できるようにするリポジトリオブジェクトである。また、変更セットは、確定及び未確定の何れかの属性を持つものとする。以下では、確定の属性を持つ変更セットを確定変更セットと呼び、未確定の属性を持つ変更セットを未確定変更セットと呼ぶことにする。
ここで、確定変更セット及び未確定変更セットについて説明する。図では、確定変更セットを黒の三角形で表し、未確定変更セットを白の三角形で表している。開発者A,Bはそれぞれワークスペース100a,100bで変更したソースコードを保存する。ところが、ソースコードを保存しただけでは、変更は確定されない。確定作業を実施して初めて、変更が確定され、変更セットは、以降変更できない確定変更セットになる。そして、この確定変更セットのみが、ソースコード管理サーバのストリーム200を介して共有されることになる。一方、確定作業が行われていない未確定変更セットは共有されない。
例えば、図は、開発者Aが2つの変更セットの確定作業を行ったときの状態を示している。確定作業が行われると、ソースコードはそれ以上変更できなくなる。そして、確定変更セットは、図示するように、ストリーム200にデリバーされる。これにより、開発者Bは、図示するように、ストリーム200から確定変更セットをアクセプトする。開発者A,Bが互いに密接な作業をする場合には、これらのデリバー及びアクセプトといった作業が頻繁に行われる。従って、ストリーム200に不安定なコードが入り込む可能性がある。一方、開発者Bは、未確定変更セットをアクセプトすることはできない。
[本実施の形態の概要]
そこで、本実施の形態では、未確定変更セットに対して、プライベート及び共有の何れかの属性を持たせることとする。即ち、図1に示した未確定変更セットは、プライベートの属性を持つ未確定変更セットとし、共有の属性を持つ未確定変更セットを新たに設ける。以下では、共有の属性を持つ未確定変更セットを、特に、共有変更セットと呼ぶことにする。共有変更セットは、複数の開発者間での確定前の変更セットの共有を可能とするものである。これにより、共有変更セットを設けなかった場合における煩雑な作業が回避され、開発効率が向上する。
図2は、本実施の形態の概要について示した図である。この図も、開発者Aがソースコードを開発し、開発者Bがそのソースコードをテストするためのソースコードであるテストコードを開発する場面を示している。
開発者Aは、自身の端末装置のワークスペース100aにソースコードをロードして変更を行っている。また、開発者Bは、自身の端末装置のワークスペース100bにテストコードをロードして変更を行っている。この図でも、確定変更セットを黒の三角形で表し、未確定変更セットを白の三角形で表しており、新たに設けた共有変更セットは斜線ハッチングの三角形で表している。この状態で、テスト済みの確定変更セットついては、図1と同様に、アクセプトが実施される。また、共有されない未確定変更セットは、他の開発者からは見えないようになっている。一方、ワークスペース100aの共有変更セットと、ワークスペース100bの共有変更セットとは、点線で囲んで示すように共有される。即ち、例えばワークスペース100aの共有変更セットの変更はリアルタイムでワークスペース100bの共有変更セットに反映されるので、開発者A,Bは、共有変更セットの実体としては、同じものを見ていることになる。
[コンピュータシステムの全体構成]
図3は、このような概略動作を実現するためのコンピュータシステムの全体構成例を示した図である。図示するように、このコンピュータシステムは、端末装置10a,10bと、ソースコード管理サーバ20と、共有変更セットサーバ30とが、ネットワーク80を介して接続されることにより、構成されている。尚、図では、端末装置10a,10bを示したが、これらを区別する必要がない場合は、端末装置10と称する。また、図には、2台の端末装置10しか示していないが、3台以上の端末装置10を設けてもよい。
端末装置10は、開発者がソースコードを開発する際に用いられるコンピュータ装置である。具体的には、開発者がワークスペースにソースコード管理サーバ20からソースコードをロードし、ソースコードに対する変更を行う。そして、変更後のソースコードを保存したり、変更を確定させる確定作業を行ったりする。ここで、端末装置10としては、デスクトップPC(Personal Computer)、ノートPC等を用いるとよい。
ソースコード管理サーバ20は、ソースコード及びその変更履歴を管理するサーバコンピュータである。具体的には、ソースコードを保管し、端末装置10から要求があると、端末装置10にソースコードを送信する。また、ある端末装置10からデリバーされた確定変更セットを保持し、別の端末装置10からアクセプト要求があると、確定変更セットをその端末装置10に送信する。ここで、ソースコード管理サーバ20としては、PC等を用いるとよい。
共有変更セットサーバ30は、共有変更セットの共有及び同期を実現するためのサーバコンピュータである。具体的には、ある端末装置10から共有変更セットを受信すると、共有変更セットを保持し、別の端末装置10に共有変更セットを送信する。また、ある端末装置10から共有変更セットに対する追加変更内容を受信すると、保持していた共有変更セットに追加変更内容を反映し、別の端末装置10に追加変更内容を送信する。更に、ある端末装置10から共有変更セットを確定する指示を受信すると、保持していた共有変更セットに基づいて確定変更セットを生成して共有変更セットは削除し、別の端末装置10に共有変更セットが確定された旨及び共有変更セットが削除された旨を送信する。ここで、共有変更セットサーバ30としては、PC等を用いるとよい。
ネットワーク80は、端末装置10とソースコード管理サーバ20と共有変更セットサーバ30との間の情報通信に用いられる通信手段であり、例えば、LAN(Local Area Network)である。
[本実施の形態における共有変更セットサーバの機能構成]
図4は、本実施の形態における共有変更セットサーバ30の機能構成例を示した図である。図示するように、共有変更セットサーバ30は、受信部31と、共有変更セット管理部32と、共有変更セット記憶部33と、送信部34とを含む。
受信部31は、端末装置10で未確定変更セットを共有する指示がなされると、未確定変更セットの情報とこれを共有するユーザの情報とを端末装置10から受信する。また、端末装置10で共有変更セットに変更を追加する指示がなされると、共有変更セットに対する追加変更の情報を端末装置10から受信する。更に、端末装置10で共有変更セットを確定する指示がなされると、共有変更セットの確定指示の情報を端末装置10から受信する。本実施の形態では、未確定変更情報の一例として、未確定変更セットを用いており、追加変更情報の一例として、追加変更の情報を用いており、確定指示情報の一例として、確定指示の情報を用いている。また、未確定変更情報を受信する受信部、追加変更情報を受信する受信部、確定指示情報を受信する受信部の一例として、受信部31を設けている。
共有変更セット管理部32は、受信部31が未確定変更セットの情報とこれを共有するユーザの情報とを受信すると、未確定変更セットとユーザの情報とを含む共有変更セットを作成する。そして、共有変更セットの情報とユーザの情報とを送信部34に受け渡す。また、共有変更セット管理部32は、受信部31が共有変更セットに対する追加変更の情報を受信すると、共有変更セットに対する追加変更を行う。そして、共有変更セットに含まれるユーザの情報のうち、共有変更セットに変更を追加する指示を行っていないユーザの情報を取得し、追加変更の情報とこの取得したユーザの情報とを送信部34に受け渡す。更に、共有変更セット管理部32は、受信部31が共有変更セットの確定指示の情報を受信すると、共有変更セットを確定変更セットとしてソースコード管理サーバ20へデリバーし、共有変更セットを削除する。そして、共有変更セットに含まれていたユーザの情報のうち、共有変更セットを確定する指示を行っていないユーザの情報を取得し、共有変更セットがデリバーされた旨の情報と共有変更セットが削除された旨の情報とこの取得したユーザの情報とを送信部34に受け渡す。本実施の形態では、共有変更情報の一例として、共有変更セットを用いており、確定変更情報の一例として、確定変更セットを用いている。また、共有変更情報を生成する生成部、未確定変更情報を変更する生成部、確定変更情報を生成した後、共有変更情報を削除する生成部の一例として、共有変更セット管理部32を設けている。更に、ユーザを特定する特定部の一例として、共有変更セット管理部32を設けている。
共有変更セット記憶部33は、共有変更セット管理部32が作成した共有変更セットを、変更セットを識別する変更セットIDに関連付けて記憶する。
送信部34は、共有変更セット管理部32が共有変更セットを作成すると、共有変更セットの情報を端末装置10に送信する。また、共有変更セット管理部32が共有変更セットに対する追加変更を行うと、共有変更セットに対する追加変更の情報を端末装置10に送信する。更に、共有変更セット管理部32が共有変更セットを確定変更セットとしてソースコード管理サーバ20へデリバーして共有変更セットを削除すると、その旨の情報を端末装置10に送信する。送信部34は、これらの送信を行う際に、共有変更セット管理部32から受け取ったユーザの情報に基づいて、端末装置10のアドレスを特定する。本実施の形態では、未確定変更情報を送信する送信部、追加変更情報を送信する送信部、確定変更情報が生成された旨の情報と共有変更情報が削除された旨の情報を送信する送信部の一例として、送信部34を設けている。
[本実施の形態における共有変更セットサーバの動作]
次に、図4に示した構成を有する共有変更セットサーバ30の動作について説明する。尚、この動作に先立ち、第1のユーザの一例としての開発者Aが第1の端末の一例としての端末装置10aから、第2のユーザの一例としての開発者Bが第2の端末の一例としての端末装置10bから、それぞれ共有変更セットサーバ30に接続しているものとする。そして、共有変更セットサーバ30は、開発者AのユーザIDと端末装置10aのアドレスとの対応、及び、開発者BのユーザIDと端末装置10bのアドレスとの対応を含む対応情報を保持しているものとする。
図5は、共有変更セットサーバ30の共有変更セット作成時の動作例を示したシーケンス図である。開発者Aが変更セットを作成してこの変更セットを確定前に開発者Bと共有する指示を端末装置10aから共有変更セットサーバ30へ送信することにより、この動作は開始する。
端末装置10aが変更セットの情報とこれを共有するユーザの情報とを共有変更セットサーバ30に送信すると、共有変更セットサーバ30では、受信部31が、これらの情報を受信する(ステップ301)。ここで、変更セットの情報には、変更セットと、変更セットを識別する変更セットIDとを含めてよい。また、ユーザの情報には、開発者BのユーザIDを含めてよい。ユーザの情報には、更に開発者AのユーザIDを含めてもよいが、開発者AのユーザIDは、ユーザの情報に明示的に含めずに、端末装置10aのアドレスに基づいて上記対応情報を検索することにより取得してもよい。
次に、共有変更セットサーバ30では、共有変更セット管理部32が、共有変更セットを作成する(ステップ302)。ここで、共有変更セットには、変更セットと、これを共有する開発者のユーザIDとを含めてよい。その際、開発者のユーザIDには、開発者AのユーザIDと、開発者BのユーザIDとを含めてよい。そして、開発者AのユーザIDには、その共有変更セットを作成した開発者のユーザIDである旨の情報を付し、開発者BのユーザIDには、その共有変更セットを作成した開発者以外の開発者のユーザIDである旨の情報を付してもよい。このようにして作成された共有変更セットは、変更セットIDに関連付けて共有変更セット記憶部33に記憶される。
その後、共有変更セットサーバ30では、送信部34が、共有変更セットの情報を端末装置10aに送信する(ステップ303)。ここで、共有変更セットの情報には、ステップ302で作成された共有変更セットと、ステップ301で受信された変更セットIDとを含めてよい。また、端末装置10aのアドレスとしては、ステップ301での情報の受信時に把握されたアドレスを用いればよい。これにより、端末装置10aが保持する変更セットのうち、この動作例で共有が指示された変更セットは、ステップ302で作成された共有変更セットで置き換えられることになる。
また、共有変更セットサーバ30では、送信部34が、共有変更セットの情報を端末装置10bにも送信する(ステップ304)。ここで、共有変更セットの情報には、ステップ302で作成された共有変更セットと、ステップ301で受信された変更セットIDとを含めてよい。また、端末装置10bのアドレスは、ステップ301で受信された開発者BのユーザIDに基づいて上記対応情報を検索することにより取得すればよい。これにより、端末装置10aが保持する共有変更セットと、端末装置10bが保持する共有変更セットとは、同期されることになる。尚、このとき、開発者Bが端末装置10bで同じソースコードに対する変更セットを作成していたとすると、端末装置10bは、開発者Aが作成した変更セットにおける変更と、開発者Bが作成した変更セットにおける変更とをマージするためのUI(User Interface)を表示してよい。
尚、この動作例では、共有変更セットサーバ30が共有変更セットを端末装置10a及び端末装置10bへ送るようにしたが、この限りではない。例えば、共有変更セットサーバ30は、未確定変更セットを端末装置10bへ送り、既に未確定変更セットを保持している端末装置10aへは未確定変更セットを送らないようにしてもよい。
図6は、共有変更セットサーバ30の共有変更セット変更時の動作例を示したシーケンス図である。開発者Aが共有変更セットに変更を追加する指示を端末装置10aから共有変更セットサーバ30へ送信することにより、この動作は開始する。
端末装置10aが共有変更セットに対する追加変更の情報を共有変更セットサーバ30に送信すると、共有変更セットサーバ30では、受信部31が、この情報を受信する(ステップ321)。ここで、追加変更の情報には、追加変更の内容と、共有変更セットを識別する変更セットIDとを含めてよい。
次に、共有変更セットサーバ30では、共有変更セット管理部32が、共有変更セットを、追加変更の内容に基づいて書き換える(ステップ322)。具体的には、ステップ321で受信された変更セットIDに関連付けて共有変更セット記憶部33に記憶された共有変更セットを特定し、この特定された共有変更セットを書き換える。
その後、共有変更セットサーバ30では、送信部34が、共有変更セットに対する追加変更の情報を端末装置10bに送信する(ステップ323)。ここで、追加変更の情報には、ステップ321で受信された追加変更の内容と変更セットIDとを含めてよい。また、端末装置10bのアドレスは、次のようにして取得すればよい。即ち、まず、ステップ321で受信された変更セットIDに関連付けて共有変更セット記憶部33に記憶された共有変更セットを取得する。次に、この共有変更セットにこれを作成した開発者以外の開発者のユーザIDとして含まれる開発者BのユーザIDを取得し、これに基づいて上記対応情報を検索することにより取得すればよい。これにより、端末装置10aが保持する共有変更セットと、端末装置10bが保持する共有変更セットとは、同期されることになる。尚、このとき、開発者Bが端末装置10bで同じ共有変更セットに対する追加変更を行っていたとすると、端末装置10bは、開発者Aが行った共有変更セットに対する追加変更と、開発者Bが行った共有変更セットに対する追加変更とをマージするためのUIを表示してよい。
尚、この動作例では、端末装置10aが共有変更セットに対する追加変更の情報を共有変更セットサーバ30へ送ると、共有変更セットサーバ30が追加変更の情報を端末装置10bへ送るようにしたが、この限りではない。端末装置10bが共有変更セットに対する追加変更の情報を共有変更セットサーバ30へ送ると、共有変更セットサーバ30が追加変更の情報を端末装置10aへ送るようにしてもよい。
図7は、共有変更セットサーバ30の共有変更セット確定時の動作例を示したシーケンス図である。開発者Aが共有変更セットを確定する指示を端末装置10aから共有変更セットサーバ30へ送信することにより、この動作は開始する。
端末装置10aが共有変更セットの確定指示の情報を共有変更セットサーバ30に送信すると、共有変更セットサーバ30では、受信部31が、この情報を受信する(ステップ341)。ここで、確定指示の情報には、共有変更セットを識別する変更セットIDを含めてよい。
次に、共有変更セットサーバ30では、共有変更セット管理部32が、共有変更セットを確定し、確定した共有変更セットを確定変更セットとしてソースコード管理サーバ20へデリバーする(ステップ342)。
次いで、共有変更セット管理部32は、共有変更セットを共有変更セット記憶部33から削除する(ステップ343)。具体的には、ステップ341で受信された変更セットIDに関連付けて共有変更セット記憶部33に記憶された共有変更セットを特定し、この特定された共有変更セットを削除する。
その後、共有変更セットサーバ30では、送信部34が、共有変更セットが削除されたことと、共有変更セットが確定変更セットとしてソースコード管理サーバ20へデリバーされたこととを、端末装置10bに通知する(ステップ344)。ここで、この通知には、共有変更セットの削除が完了したことの通知と、共有変更セットのデリバーが完了したことの通知と、共有変更セットを識別する変更セットIDとを含めてよい。また、端末装置10bのアドレスは、次のようにして取得すればよい。即ち、まず、ステップ341で受信された変更セットIDに関連付けて共有変更セット記憶部33に記憶された共有変更セットを取得する。次に、この共有変更セットにこれを作成した開発者以外の開発者のユーザIDとして含まれる開発者BのユーザIDを取得し、これに基づいて上記対応情報を検索することにより取得すればよい。これにより、端末装置10bから共有変更セットが削除される。また、端末装置10bは、ソースコード管理サーバ20から、ステップ342でデリバーされた確定変更セットを取得することになる。
[本実施の形態における共有変更セットサーバの動作の変形例]
第1の変形例は、共有変更セットの所有者の設定に関するものである。共有変更セットの所有者とは、共有変更セットを共有する開発者のうち、共有変更セットの確定作業を実行する権限を有する開発者のことをいう。つまり、共有変更セットの所有者のみが、共有変更セットの確定作業を実行できる。ここで、共有変更セットの所有者は、初期状態では共有変更セットの作成者であるが、共有変更セットを共有する他の開発者を、共有変更セットの新たな所有者としてもよい。尚、共有変更セットの所有者は、確定作業前であればいつでも変更できるが、確定作業後は変更できないものとする。
具体的には、図5のステップ302で、共有変更セット管理部32が、共有変更セットを作成する際に、開発者Aが所有者であることを示す所有者情報を共有変更セットに含めておく。その後、図示しないが、開発者Aが確定指示を行う前に、受信部31が、端末装置10aから所有者を開発者Bに変更する変更指示を受信する。これにより、共有変更セット管理部32が、共有変更セットに含まれる所有者情報を、開発者Bが所有者であることを示すように変更するとよい。この場合において、所有者情報は、ユーザが確定させる指示を行う権限を有することを示す権限情報の一例である。
第2の変形例は、開発者ごとの作業時間の計測に関するものである。この変形例は、共有変更セットの作業量メトリックスを持つものとする。これにより、例えば、協働で作業した開発者の変更作業に要した時間や変更作業を行った量を記録する。ここで、変更作業を行った量としては、計測対象がテキストであれば、変更作業を行ったテキストの量をそのまま用いればよい。一方、計測対象がバイナリファイルであれば、バイナリファイルを作成するのに要した時間を、変更作業を行ったテキストの量に換算して用いるとよい。
具体的には、図6のステップ322で、共有変更セット管理部32が、共有変更セットを書き換える際に、例えば、書き換えたテキストの量を記録するとよい。この場合において、共有変更セット管理部32の記録する機能は、作業量を記録する記録部の一例である。
[本実施の形態の効果]
本実施の形態によれば、確定作業(コミット、チェックイン、コンプリート)を行っていない状態でも、協働開発を実施することが可能となる。これは、ペアプログラミング等にも利用することができる。
また、本実施の形態によれば、作業量を減らすことができると共に、確定作業を行ってしまった場合のソフトウェアの不安定要素を軽減することができる。その結果、ビルドミスの低減により、テストを実施している他の開発者への影響度が軽減されるという効果や、生産性の向上につながるという効果が得られる。
尚、ファイルサーバを共有する場合との相違点としては、以下のことが挙げられる。第一に、ファイルサーバを共有する場合は、ファイルの全体を共有することになり、本実施の形態のように、変更セットのみを共有することにはならない。第二に、ファイルサーバを共有する場合は、開発者同士が行った変更により不安定な状況になる可能性があるが、本実施の形態では、そのようなことはない。例えば、図1の「src/source1.java」は確定はしたものの、まだ試験を実施していないので、ファイルサーバで共有してしまうと、開発者Bに多大な影響を与えてしまうリスクがある。
[本実施の形態における共有変更セットサーバのハードウェア構成]
図8は、本実施の形態における共有変更セットサーバ30のハードウェア構成例を示した図である。図示するように、共有変更セットサーバ30は、演算手段であるCPU(Central Processing Unit)30aと、M/B(マザーボード)チップセット30bを介してCPU30aに接続されたメインメモリ30cと、同じくM/Bチップセット30bを介してCPU30aに接続された表示機構30dとを備える。また、M/Bチップセット30bには、ブリッジ回路30eを介して、ネットワークインターフェイス30fと、磁気ディスク装置(HDD)30gと、音声機構30hと、キーボード/マウス30iと、光学ドライブ30jとが接続されている。
尚、図8において、各構成要素は、バスを介して接続される。例えば、CPU30aとM/Bチップセット30bの間や、M/Bチップセット30bとメインメモリ30cの間は、CPUバスを介して接続される。また、M/Bチップセット30bと表示機構30dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構30dがPCI Express対応のビデオカードを含む場合、M/Bチップセット30bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路30eと接続する場合、ネットワークインターフェイス30fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置30gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス30i、及び、光学ドライブ30jについては、USB(Universal Serial Bus)を用いることができる。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
10…端末装置、20…ソースコード管理サーバ、30…共有変更セットサーバ、31…受信部、32…共有変更セット管理部、33…共有変更セット記憶部、34…送信部、80…ネットワーク

Claims (11)

  1. 複数のユーザ間でのソースコードの共有を支援する装置であって、
    第1のユーザが使用する第1の端末から、当該第1のユーザが作成した情報であって前記ソースコードに対する確定されていない変更を示す情報である未確定変更情報を受信する受信部と、
    前記第1のユーザとの間で前記未確定変更情報を共有する第2のユーザを特定する特定部と、
    前記第2のユーザが使用する第2の端末に、前記未確定変更情報を送信する送信部と
    を含む、装置。
  2. 前記未確定変更情報と、前記第2のユーザを示すユーザ情報とを含む共有変更情報を生成する生成部を更に含み、
    前記特定部は、前記共有変更情報に前記未確定変更情報と共に含まれる前記ユーザ情報に基づいて、前記第2のユーザを特定する、請求項1の装置。
  3. 前記受信部は、前記第1の端末から、前記第1のユーザが作成した情報であって前記ソースコードに対する追加の変更を示す情報である追加変更情報を受信し、
    前記生成部は、前記共有変更情報に含まれる前記未確定変更情報を前記追加変更情報に基づいて変更し、
    前記送信部は、前記第2の端末に、前記追加変更情報を送信する、請求項2の装置。
  4. 前記生成部は、前記未確定変更情報により示される確定されていない変更を確定させた確定変更情報を生成した後、前記共有変更情報を削除し、
    前記送信部は、前記第2の端末に、前記確定変更情報が生成された旨の情報と、前記共有変更情報が削除された旨の情報とを送信する、請求項2の装置。
  5. 前記未確定変更情報と、前記第1のユーザを示す第1のユーザ情報と、前記第2のユーザを示す第2のユーザ情報とを含む共有変更情報を生成する生成部を更に含み、
    前記特定部は、前記共有変更情報に前記未確定変更情報と共に含まれる前記第1のユーザ情報及び前記第2のユーザ情報に基づいて、前記未確定変更情報を共有する前記第1のユーザ及び前記第2のユーザを特定し、
    前記送信部は、前記第1の端末及び前記第2の端末に、前記共有変更情報を送信する、請求項1の装置。
  6. 前記受信部は、前記第1の端末から、前記第1のユーザが作成した情報であって前記ソースコードに対する追加の変更を示す情報である第1の追加変更情報を受信し、かつ、前記第2の端末から、前記第2のユーザが作成した情報であって前記ソースコードに対する追加の変更を示す情報である第2の追加変更情報を受信し、
    前記生成部は、前記共有変更情報に含まれる前記未確定変更情報を前記第1の追加変更情報及び前記第2の追加変更情報に基づいて変更し、
    前記送信部は、前記第2の端末に、前記第1の追加変更情報を送信し、かつ、前記第1の端末に、前記第2の追加変更情報を送信する、請求項5の装置。
  7. 前記第1の追加変更情報により示される追加の変更に要した作業量と、前記第2の追加変更情報により示される追加の変更に要した作業量とを区別して記録する記録部を更に含む、請求項6の装置。
  8. 前記受信部は、前記第1の端末から、前記第1のユーザが行った指示であって前記未確定変更情報により示される確定されていない変更を確定させる指示を示す確定指示情報を受信し、
    前記生成部は、前記確定指示情報の受信に応じて、前記未確定変更情報により示される確定されていない変更を確定させた確定変更情報を生成した後、前記共有変更情報を削除し、
    前記送信部は、前記第2の端末に、前記確定変更情報が生成された旨の情報と、前記共有変更情報が削除された旨の情報とを送信する、請求項5の装置。
  9. 前記生成部は、前記第1のユーザが作成した前記未確定変更情報の受信に応じて前記共有変更情報を生成する際に、当該第1のユーザが前記確定させる指示を行う権限を有することを示す権限情報を当該共有変更情報に含め、その後、当該第1のユーザが当該確定させる指示を行う前に、当該確定させる指示を行う権限を前記第2のユーザが有することを示すように当該権限情報を変更する、請求項8の装置。
  10. 複数のユーザ間でのソースコードの共有を支援する方法であって、
    第1のユーザが使用する第1の端末から、当該第1のユーザが作成した情報であって前記ソースコードに対する確定されていない変更を示す情報である未確定変更情報を受信するステップと、
    前記第1のユーザとの間で前記未確定変更情報を共有する第2のユーザを特定するステップと、
    前記第2のユーザが使用する第2の端末に、前記未確定変更情報を送信するステップと
    を含む、方法。
  11. 複数のユーザ間でのソースコードの共有を支援する装置として、コンピュータを機能させるプログラムであって、
    前記コンピュータを、
    第1のユーザが使用する第1の端末から、当該第1のユーザが作成した情報であって前記ソースコードに対する確定されていない変更を示す情報である未確定変更情報を受信する受信部と、
    前記第1のユーザとの間で前記未確定変更情報を共有する第2のユーザを特定する特定部と、
    前記第2のユーザが使用する第2の端末に、前記未確定変更情報を送信する送信部と
    して機能させる、プログラム。
JP2014156962A 2014-07-31 2014-07-31 ソースコードの共有を支援する装置及び方法 Active JP6029117B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014156962A JP6029117B2 (ja) 2014-07-31 2014-07-31 ソースコードの共有を支援する装置及び方法
US14/753,524 US9860287B2 (en) 2014-07-31 2015-06-29 Apparatus and method for supporting sharing of source code
US15/420,450 US9858071B2 (en) 2014-07-31 2017-01-31 Apparatus and method for supporting sharing of source code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014156962A JP6029117B2 (ja) 2014-07-31 2014-07-31 ソースコードの共有を支援する装置及び方法

Publications (2)

Publication Number Publication Date
JP2016033779A true JP2016033779A (ja) 2016-03-10
JP6029117B2 JP6029117B2 (ja) 2016-11-24

Family

ID=55180103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014156962A Active JP6029117B2 (ja) 2014-07-31 2014-07-31 ソースコードの共有を支援する装置及び方法

Country Status (2)

Country Link
US (2) US9860287B2 (ja)
JP (1) JP6029117B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720688B1 (en) * 2016-01-25 2017-08-01 International Business Machines Corporation Extensible change set conflict and merge gap detection
US10725816B2 (en) * 2017-01-13 2020-07-28 International Business Machines Corporation Optimizing pipeline execution scheduling based on commit activity trends, priority information, and attributes

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6272032A (ja) * 1985-09-25 1987-04-02 Toshiba Corp ソフトウエア製造状況把握方法
JPH01316822A (ja) * 1988-06-17 1989-12-21 Hitachi Ltd プログラム同時編集方法
JP2004280315A (ja) * 2003-03-13 2004-10-07 Ricoh Co Ltd ソースコードファイル管理システム、プログラム及びこのプログラムを記録した記憶媒体
JP2010237870A (ja) * 2009-03-30 2010-10-21 Internatl Business Mach Corp <Ibm> 複数のクライアントを用いた分散環境で更新作業のコンフリクトを回避するシステム、方法、サーバ及びコンピュータプログラム
JP2012118674A (ja) * 2010-11-30 2012-06-21 Internatl Business Mach Corp <Ibm> クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム
JP2012174095A (ja) * 2011-02-23 2012-09-10 Nomura Research Institute Ltd 並行開発管理装置および並行開発管理方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628164A (ja) 1992-07-06 1994-02-04 Nec Corp ソフトウェア分散協同開発支援システム
JPH09319568A (ja) 1996-05-31 1997-12-12 Canon Inc プログラム分離変更装置およびプログラム作成方法
US5920868A (en) 1996-07-03 1999-07-06 Sun Microsystems, Inc. Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system
US7865578B1 (en) * 2002-08-19 2011-01-04 Juniper Networks, Inc. Generation of a configuration patch for network devices
US7451434B1 (en) * 2003-09-09 2008-11-11 Sap Aktiengesellschaft Programming with shared objects in a shared memory
JP2005346660A (ja) 2004-06-07 2005-12-15 Ntt Docomo Inc ソースコード管理サーバ及びソースコード管理プログラム
US20080140732A1 (en) * 2006-12-11 2008-06-12 Bentley System, Inc. Method and system for sharing file based data
US20110040788A1 (en) * 2009-08-14 2011-02-17 Ic Manage, Inc. Coherent File State System Distributed Among Workspace Clients
US20140222758A1 (en) * 2009-08-14 2014-08-07 Ic Manage, Inc. Coherent File State Maintained Among Confederated Repositories By Distributed Workspace Apparatuses Backed Up By a File State Ledgerdemain Store
US8352919B2 (en) * 2009-09-30 2013-01-08 Sap Ag Operation support in versioning systems
US20110184938A1 (en) * 2010-01-27 2011-07-28 Tom Hill Determining similarity between source code files
US8412689B2 (en) * 2010-07-07 2013-04-02 Microsoft Corporation Shared log-structured multi-version transactional datastore with metadata to enable melding trees
US9805108B2 (en) * 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
US8826222B2 (en) * 2011-08-02 2014-09-02 International Business Machines Corporation Pre-merge conflict avoidance
EP2962186A4 (en) * 2013-02-28 2016-10-12 Hewlett Packard Entpr Dev Lp PROVISION OF CODE CHANGE JOB PACKAGES OF VARIOUS SIZE FOR VALIDATORS
US9424239B2 (en) * 2013-09-06 2016-08-23 Microsoft Technology Licensing, Llc Managing shared state information produced by applications
EP3063625A4 (en) * 2013-10-31 2017-04-26 Hewlett-Packard Enterprise Development LP Copy-on-write update-triggered consistency
US9483516B2 (en) * 2014-03-14 2016-11-01 Sap Se Multi-version concurrency control across row store and column store

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6272032A (ja) * 1985-09-25 1987-04-02 Toshiba Corp ソフトウエア製造状況把握方法
JPH01316822A (ja) * 1988-06-17 1989-12-21 Hitachi Ltd プログラム同時編集方法
JP2004280315A (ja) * 2003-03-13 2004-10-07 Ricoh Co Ltd ソースコードファイル管理システム、プログラム及びこのプログラムを記録した記憶媒体
JP2010237870A (ja) * 2009-03-30 2010-10-21 Internatl Business Mach Corp <Ibm> 複数のクライアントを用いた分散環境で更新作業のコンフリクトを回避するシステム、方法、サーバ及びコンピュータプログラム
JP2012118674A (ja) * 2010-11-30 2012-06-21 Internatl Business Mach Corp <Ibm> クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム
JP2012174095A (ja) * 2011-02-23 2012-09-10 Nomura Research Institute Ltd 並行開発管理装置および並行開発管理方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6016023510; 近藤和彦: 'Visual Studio 2005 Team Foundation Server スタートアップガイド' Windows Developerマガジン 2006年1月号特別付録小冊子 , 20060101, p.30, 株式会社翔泳社 *
JPN6016023511; 中村一星、松本章代、Martin J. DURST: '"教育支援を目標とした遠隔ペアプログラミング環境の構築"' 第72回(平成22年)全国大会講演論文集(1) , 20100308, pp.1-511〜1-512, 社団法人情報処理学会 *
JPN6016023512; 中島洋行: マスタリングMaven 初版, 20051212, p.128, 株式会社翔泳社 *
JPN6016023513; 株式会社テクノロジックアート: チーム開発プラットフォーム Team Foundation Server入門 初版, 20110425, p.184, 株式会社技術評論社 *

Also Published As

Publication number Publication date
US20160034271A1 (en) 2016-02-04
US20170139703A1 (en) 2017-05-18
US9860287B2 (en) 2018-01-02
JP6029117B2 (ja) 2016-11-24
US9858071B2 (en) 2018-01-02

Similar Documents

Publication Publication Date Title
US11528305B2 (en) Information exchange method and terminal
US9361095B2 (en) Integrated exchange of search results in an integrated software development environment
WO2021184725A1 (zh) 用户界面测试方法、装置、存储介质及计算机设备
JP7422836B2 (ja) クラウドベース文書の許可管理
TW201346791A (zh) 合作團隊之管理
TW201405452A (zh) 工作流程管理裝置及工作流程管理方法
JP2009181329A (ja) アプリケーション開発支援装置及びプログラム
US20180268372A1 (en) Visualization of microflows or processes
JP6243006B2 (ja) オンライン共有のためのクラウドサービスの統合
WO2020191551A1 (zh) 一种向特定用户分享电子内容或评论的方法
US20220229978A1 (en) System for collaboration on the drafting of a shared digital contract
JP6029117B2 (ja) ソースコードの共有を支援する装置及び方法
EP3345105A1 (en) Exposing external content in an enterprise
JP2017016294A (ja) 情報処理装置、その制御方法、及びプログラム
Adler et al. Evaluating and implementing a collaborative office document system
CN111222166A (zh) 多人在线协同的设计素材共享与管理的方法和装置
CN116011955A (zh) 一种机器人流程自动化需求实现方法、装置、设备和存储介质
Nebeling et al. Information Concepts for Cross-device Applications.
Nebeling et al. MUBox: Multi-user aware personal cloud storage
JP5716108B2 (ja) オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
JP2017156891A (ja) 情報処理システム、情報処理装置、及び情報処理方法
KR20160070255A (ko) 리얼타임 캔버스 제공 시스템, 리얼타임 캔버스 제공방법, 그 프로그램 및 이를 기록한 기록매체
JP2013164861A (ja) オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
US11373255B2 (en) Computer system and method for mirroring data across different accounts of a software as a service (SaaS) application
Margali et al. The Design, Development and Implementation of a Platform to Host Micro Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160112

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160323

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160920

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161011

R150 Certificate of patent or registration of utility model

Ref document number: 6029117

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150