JP5821495B2 - プログラム再利用システムおよびプログラム再利用方法 - Google Patents
プログラム再利用システムおよびプログラム再利用方法 Download PDFInfo
- Publication number
- JP5821495B2 JP5821495B2 JP2011222710A JP2011222710A JP5821495B2 JP 5821495 B2 JP5821495 B2 JP 5821495B2 JP 2011222710 A JP2011222710 A JP 2011222710A JP 2011222710 A JP2011222710 A JP 2011222710A JP 5821495 B2 JP5821495 B2 JP 5821495B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- source code
- extraction
- search
- code
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
また、プログラムの移植は、API関数のみではなく、CPUからデバイスへのアクセス方法の違い、CPUに依存したアセンブリ言語の違いやオペレーティングシステム(以下OSと記す)のシステムコールの違いなども考慮して行わなければならず、従来技術ではその変更箇所を探す作業を手動で実施していたという課題もあった。
また、第2の目的は、CPUからデバイスへアクセスしている箇所、またはCPUに依存したアセンブリ言語が記述されている箇所、またはOSのシステムコールを行っている箇所、すなわち、ハードウェアやOSに依存するソースコードの記載箇所を移植対象となるソースコードに示すことにより、ソフトウェア開発者がプログラムの移植作業を効率的に行うことができるプログラム再利用システムを得るものである。
CPUを備えた装置を動作させるソフトウェアプログラムのソースコードを複数保存するソースコード保存手段と、
装置に内蔵する周辺機能部であるデバイスのデバイス情報を有するプロジェクト情報を複数記憶するプロジェクト情報記憶手段と、
デバイス情報には、そのデバイスを特定する情報と、ソースコード保存手段に保存した該デバイスを制御するプログラムのソースコード情報と、が含まれ、
前記プロジェクト情報記憶手段に記憶したプロジェクト情報の中から、検索対象のデバイスを特定する情報と一致するデバイス情報を検索する検索手段と、
前記検索手段で検索した結果のデバイス情報に含まれたソースコード情報に基づき、前記ソースコード保存手段に保存されたソースコードを抽出する抽出手段と、
前記抽出手段が抽出した抽出結果を表示する表示手段と、
を備えたことを特徴とするものである。
まず、実施の形態1のプログラム再利用システムの構成について説明する。
図1はこの発明の実施の形態1におけるプログラム再利用システムの構成図である。
図1において、この発明の実施の形態1におけるプログラム再利用システム100は、今回開発するデバイスの情報を入力する検索情報入力手段101と、1つの製品に関するソフトウェア開発を1つのプロジェクトと定義すると、過去に開発した製品毎に、使用されているCPU、OS、デバイス情報などが記録された情報をプロジェクト情報として記憶してあるプロジェクト情報記憶手段102と、過去に開発した製品のプログラムのソースコードが保存してある既存ソースコード保存手段103と、検索情報入力手段101で入力されたデバイス情報からプロジェクト情報記憶手段102に記憶されているプロジェクト情報を検索して一致するデバイス情報に対応するソースコードを既存ソースコード保存手段103から抽出する検索抽出手段104と、CPUに依存したインストラクションを示したCPU情報記憶手段105と、OSのシステムコールに関する情報を記憶したOS情報記憶手段106と、検索抽出手段104により抽出したソースコードにおいて、CPU情報記憶手段105に記憶されているCPUに依存したインストラクションが記載されたコードを抽出し、OS情報記憶手段106に記憶されているOSのシステムコールが記載されたコードを抽出するコード抽出手段107と、検索抽出手段104により抽出したソースコードおよびコード抽出手段107により抽出した依存コードを表示する表示手段108とから構成される。
図2は、検索情報入力手段101によるデバイス情報入力画面200の例である。図2のように検索情報入力手段101では、デバイス情報としてUSB(Universal Serial Bus)やLAN(Local Area Network)やRS−232C等のデバイスの種類を示すデバイス種別201、そのデバイスの製造会社名を示すデバイスメーカー202、そのデバイスの製品型名を示すデバイス型名203を入力する。ここでは、理解を容易化するため具体例として、デバイス種別201を“USB”、デバイスメーカー202を“Maker−1”、デバイス型名203を“USB−1”と入力した場合について説明する。
メモリマップド方式とは、デバイスを制御するレジスタをアドレスに配置し、CPUがメモリにアクセスするのと同様にそのアドレスに読み書きして制御する方式である。アクセス方式334に「メモリマップド」が記録されていた場合、アドレス情報335にはデバイスのレジスタが配置されたアドレスを記録する。
ポートマップドI/O方式とは、デバイスを制御するポートがアドレスに配置され、CPUからそのアドレスに読み書きして制御する方式である。アクセス方式334に「ポートマップド」が記録されていた場合、アドレス情報335にはデバイスのポートが配置されたアドレスを記録する。
7行目の#define文で、レジスタのアドレスを定義し、プログラムから“REG“でレジスタにアクセスできるようになっていることを示す。
また、11行目では、インラインアセンブラで、CPUインストラクションを使用していることを示す。
また、12行目では、OSのシステムコールを使用していることを示す。
ここでは、CPU名401が“CPU−1”の場合のインストラクションコードの一覧(インストラクションコードテーブル)を示している。
ここでは、OS名501が“OS−1”の場合のシステムコールの一覧(システムコールテーブル)を示している。
101 検索情報入力手段
102 プロジェクト情報記憶手段
103 既存ソースコード保存手段
104 検索抽出手段
105 CPU情報記憶手段
106 OS情報記憶手段
107 コード抽出手段
108 表示手段
200 デバイス情報入力画面
201 デバイス種別
202 デバイスメーカー
203 デバイス型名
300 プロジェクト情報
310 CPU
320 OS
330 デバイス情報
331 デバイス種別
332 メーカー
333 型名
334 アクセス方式
335 アドレス情報
336 ソースファイル名
400 CPU情報
401 CPU名
402 命令分類
403 インストラクションコード
404 命令の意味
500 OS情報
501 OS名
502 システムコール分類
503 API名
504 システムコールの意味
Claims (5)
- CPUを備えた装置を動作させるソフトウェアプログラムのソースコードを複数保存するソースコード保存手段と、
前記装置に内蔵する周辺機能部であるデバイスのデバイス情報を有するプロジェクト情報を複数記憶するプロジェクト情報記憶手段と、
前記デバイス情報には、前記デバイスを特定する情報と前記ソースコード保存手段に保存した前記デバイスを制御するプログラムのソースコード情報とが含まれ、
前記プロジェクト情報記憶手段に記憶したプロジェクト情報の中から、検索対象のデバイスを特定する情報と一致するデバイス情報を検索する検索手段と、
前記検索手段で検索した結果のデバイス情報に含まれたソースコード情報に基づき、前記ソースコード保存手段に保存されたソースコードを抽出する抽出手段と、
前記抽出手段が抽出した抽出結果を表示する表示手段と、
を備えたことを特徴とするプログラム再利用システム。 - 前記プロジェクト情報記憶手段に記憶したデバイス情報には、前記デバイスにアクセスするアドレス情報がさらに含まれ、
前記検索手段により検索されたデバイス情報に含まれる前記アドレス情報を抽出し、前記抽出手段により前記抽出したソースコード中において、前記抽出したアドレス情報にアクセスしているソースコード部分を抽出するデバイスアクセスコード抽出手段と、を備え、
前記表示手段は、
前記抽出手段および前記デバイスアクセスコード抽出手段の少なくとも一つの抽出結果を表示する
ことを特徴とする請求項1に記載のプログラム再利用システム。 - 前記プロジェクト情報記憶手段に記憶したプロジェクト情報には、
前記CPUの名前を示すCPU情報がさらに含まれ、
複数のCPUのCPU名と命令コードと該命令コードの動作とで構成されるインストラクションコードテーブルと、
前記検索手段により検索されたデバイス情報を有するプロジェクト情報に基づいて前記CPU名を抽出し、前記検索手段が抽出したソースコード中において、前記インストラクションコードテーブルから前記抽出したCPU名に対応する命令コードを使用しているソースコード部分を抽出する命令コード抽出手段と、を備え、
前記表示手段は、
前記抽出手段、前記デバイスアクセスコード抽出手段、前記命令コード抽出手段の少なくとも一つの抽出結果を表示する
ことを特徴とする請求項1または2に記載のプログラム再利用システム。 - 前記プロジェクト情報記憶手段に記憶したプロジェクト情報には、
前記装置を構成するオペレーティングシステムを特定するOS名を含むオペレーティングシステム情報がさらに含まれ、
複数のオペレーティングシステムのOS名とオペレーティングシステムが独自に持つシステムコール名と該システムコールの動作とで構成されるシステムコールテーブルと、
前記検索手段により検索されたデバイス情報を有するプロジェクト情報に基づいて前記OS名を抽出し、前記検索手段が抽出したソースコード中において、前記システムコールテーブルから前記抽出したOS名のオペレーティングシステムが持つシステムコールを使用しているソースコード部分を抽出するシステムコールコード抽出手段と、を備え、
前記表示手段は、
前記抽出手段、前記デバイスアクセスコード抽出手段、前記命令コード抽出手段、前記システムコールコード抽出手段の少なくとも一つの抽出結果を表示する
ことを特徴とする請求項1乃至3いずれかに記載のプログラム再利用システム。 - CPUを備えた装置を動作させるソフトウェアプログラムのソースコードを複数保存するソースコード保存手段と、
前記装置に内蔵する周辺機能部であるデバイスのデバイス情報を有するプロジェクト情報を複数記憶するプロジェクト情報記憶手段と、備えたプログラム再利用システムに使用される方法であって、
前記デバイス情報には、前記デバイスを特定する情報と、前記ソースコード保存手段に保存した前記デバイスを制御するプログラムのソースコード情報と、が含まれ、
検索対象のデバイスを特定する情報である検索情報を入力する入力ステップと、
前記入力ステップで入力された検索情報と一致するデバイス情報を、前記プロジェクト情報記憶手段に記憶したプロジェクト情報の中から検索する検索ステップと、
前記検索ステップで検索した結果のデバイス情報に含まれたソースコード情報に基づき、前記ソースコード保存手段に保存されたソースコードを抽出する抽出ステップと、
前記抽出ステップで抽出した抽出結果を表示する表示ステップと、
を備えたことを特徴とするプログラム再利用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011222710A JP5821495B2 (ja) | 2011-10-07 | 2011-10-07 | プログラム再利用システムおよびプログラム再利用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011222710A JP5821495B2 (ja) | 2011-10-07 | 2011-10-07 | プログラム再利用システムおよびプログラム再利用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013084085A JP2013084085A (ja) | 2013-05-09 |
JP5821495B2 true JP5821495B2 (ja) | 2015-11-24 |
Family
ID=48529226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011222710A Expired - Fee Related JP5821495B2 (ja) | 2011-10-07 | 2011-10-07 | プログラム再利用システムおよびプログラム再利用方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5821495B2 (ja) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263509A (ja) * | 1995-03-24 | 1996-10-11 | Toshiba Corp | ソフトウェア利用装置 |
JPH08314699A (ja) * | 1995-05-15 | 1996-11-29 | Hitachi Ltd | オペレーティングシステムの生成方法、生成装置および計算機システム |
JP2001195254A (ja) * | 1999-10-25 | 2001-07-19 | Matsushita Electric Works Ltd | ソフトウェア開発支援システム |
JP2001282523A (ja) * | 2000-03-30 | 2001-10-12 | Hitachi Software Eng Co Ltd | プログラム移植支援装置および記録媒体 |
JP2002108611A (ja) * | 2000-09-28 | 2002-04-12 | Fujitsu Ltd | プログラム変換装置およびプログラム変換方法 |
JP2002351938A (ja) * | 2001-05-22 | 2002-12-06 | Mitsubishi Electric Corp | 設計自動化装置 |
JP2004246690A (ja) * | 2003-02-14 | 2004-09-02 | Canon Inc | プログラム移植支援システム |
-
2011
- 2011-10-07 JP JP2011222710A patent/JP5821495B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013084085A (ja) | 2013-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7090657B2 (ja) | アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体 | |
CN103744709B (zh) | 补丁加载方法及装置 | |
CN110287702B (zh) | 一种二进制漏洞克隆检测方法及装置 | |
TWI521428B (zh) | 用於可延伸韌體抽取之方法及相關計算平台 | |
US20080295069A1 (en) | User-extensible rule-based source code modification | |
CN107480476B (zh) | 一种基于ELF感染的Android本地层指令编译虚拟化加壳方法 | |
CN105446725A (zh) | 用于模型驱动开发的方法和系统 | |
KR20220092615A (ko) | 적시(Just-In-Time) 컨테이너 | |
EP2778629A1 (en) | Method and device for code change detection | |
WO2017020459A1 (zh) | 一种为宿主配置插件包的方法与装置 | |
US20160246709A1 (en) | Source code unit testing using an indexing tool | |
US10387124B2 (en) | System and method for creating domain specific language | |
US20230315416A1 (en) | Code translation method and apparatus, and device | |
CN106201564B (zh) | 在线升级基于内核虚拟机模块的设备和方法 | |
US8819626B2 (en) | Sharable development environment bookmarks for functional/data flow | |
JP5821495B2 (ja) | プログラム再利用システムおよびプログラム再利用方法 | |
Szolek | HLA typing from short-read sequencing data with OptiType | |
US10649743B2 (en) | Application developing method and system | |
CN112003837B (zh) | 基于Modbus协议的设备智能适配方法、装置及存储介质 | |
CN112463202B (zh) | 操作系统功能组件的配置方法及装置 | |
JPWO2018116522A1 (ja) | 判定装置、判定方法及び判定プログラム | |
CN106598839A (zh) | 一种面向目标代码的程序静态分析方法 | |
JP2008204023A (ja) | プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法 | |
JP2011113298A (ja) | 流用ソースコード解析システム及びプログラム並びに記録媒体 | |
JP2017091027A (ja) | システム開発支援システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20140326 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140910 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150727 |
|
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: 20150908 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150921 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5821495 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |