WO2012067034A1 - 設計・開発支援システム - Google Patents

設計・開発支援システム Download PDF

Info

Publication number
WO2012067034A1
WO2012067034A1 PCT/JP2011/076064 JP2011076064W WO2012067034A1 WO 2012067034 A1 WO2012067034 A1 WO 2012067034A1 JP 2011076064 W JP2011076064 W JP 2011076064W WO 2012067034 A1 WO2012067034 A1 WO 2012067034A1
Authority
WO
WIPO (PCT)
Prior art keywords
design
information
user
development support
behavior
Prior art date
Application number
PCT/JP2011/076064
Other languages
English (en)
French (fr)
Inventor
岳彦 長野
亀山 達也
知彦 茂岡
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Publication of WO2012067034A1 publication Critical patent/WO2012067034A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions

Definitions

  • the present invention relates to an embedded system design / development support system.
  • the above-mentioned conventional technology can collect only information on conditions that can be assumed by the designer / developer, such as when a failure occurs or there is a mistake in the operation method.
  • the usability depends on the subjectivity of the user, the user of the embedded system may be dissatisfied with the point that the designer / developer does not intend.
  • a typical example of the invention disclosed in the present application is as follows. That is, a design / development support system that supports the design and development of embedded systems, including a target system having an anomaly detection unit including a sensor that detects the user's trend, and data analysis that displays behavior information of a program to be investigated A sensor system that detects a user's trend when detecting a behavior that the user is dissatisfied with while using the embedded system after shipment. Collecting information on the behavior of the program to be investigated being processed at the timing when the sensor detects the user's trend, and notifying the host system of the collected behavior information.
  • the behavior information notified from the system is recorded in a recording device, and the anomaly detection unit is at a timing desired by the designer / developer, The information of the behavior of the study program at the time of over The showed dissatisfaction, be displayed in the design and development tools of the host system.
  • the present invention it is possible to associate a location that many users are potentially dissatisfied with design position information. As a result, it is possible to provide an easy-to-use system that does not depend on the subjectivity of the designer / developer and some loud users.
  • FIG. 1 is an explanatory diagram of an example of a function improvement system according to an embodiment of the present invention.
  • the function improvement system according to the present invention has a target system 1 that is a function improvement target and a host environment 2 that performs design and development of the target system to be improved.
  • the target system 1 includes a buffer memory 001, an investigation target program 002, a tracer 003, a profiler 004, an abnormality detection device 005, a communication module 006, and a recording device 007.
  • the buffer memory 001 is a memory for recording behavior information of the target system 1.
  • the investigation target program 002 is a program that provides control of the system and various functions of the target system and is improved by the function improvement system.
  • the tracer 003 collects behavior information of the investigation target program 002 and records it in the buffer memory 001.
  • the abnormality detection device 005 senses the user's dissatisfaction, detects an abnormality different from the usual behavior of the user, and at the timing when the abnormality is determined to be abnormal, the tracer 003 and the profiler 004 store the investigation target program 002 recorded in the buffer memory 001.
  • the behavior information is collected via the tracer 003 and the profiler 004 and delivered to the communication module 006 for transmission to the host environment 2.
  • the communication module 006 transmits the behavior information acquired from the abnormality detection device 005 to the communication module 011 in the host environment 2, receives the tracer 012 created in the host environment, and updates the tracer 003.
  • the recording device 007 stores a learning result used when an abnormality is detected.
  • the host environment 2 includes a design / development tool 008, a data analysis function 009, a recording device 010, a communication module 011 and a tracer 012.
  • the design / development tool 008 is a tool used when designing and developing a program to be investigated in the target system 1.
  • the data analysis function 009 uses the behavior information of the investigation target program 002 recorded in the recording device 010 as the corresponding function information of the design / development tool using the behavior information and design / development information recorded in the recording device 010. This is a function for displaying images in a superimposed manner.
  • the recording device 010 records behavior information of the survey target program 002 and design / development information generated when the survey target program 002 is designed and developed using the design / development tool 008.
  • the communication module 011 communicates with the communication module 006 of the target system 1, acquires behavior information of the investigation target program 002, and transmits a tracer 012 of the newly created investigation target program.
  • the tracer 012 newly creates or updates a recorded portion in order to change the trace target when proceeding with the analysis of the investigation target program 002.
  • the target system 1 and the host environment 2 include a processor that executes a program, a memory that stores a program executed by the processor, a communication interface that controls communication with other devices, and a non-volatile storage device that stores data (for example, A computer (server) having a magnetic disk drive.
  • a processor that executes a program
  • a memory that stores a program executed by the processor
  • a communication interface that controls communication with other devices
  • a non-volatile storage device that stores data (for example, A computer (server) having a magnetic disk drive.
  • Each of the target system 1 and the host environment 2 may be physically constructed on one computer, or physically constructed on a logical partition configured on one or a plurality of computers. .
  • each computer is preferably provided with an interface for reading a storage medium (CD-ROM, flash memory, etc.).
  • a storage medium CD-ROM, flash memory, etc.
  • FIG. 2 is a diagram illustrating an example of a data structure of the buffer memory 001 for temporarily or permanently storing system behavior information collected by the tracer 003 and the profiler 004.
  • the buffer memory 001 stores the content of information acquired by the behavior information collection function such as the tracer 003 and the profiler 004 included in the target system 1.
  • FIG. 2 shows an example of the data structure of the buffer memory for the tracer 003.
  • the sequence number (001-001), event name (001-002), time (001-003), content 1 (001-004), content 2 (001-005).
  • the sequence number (001-001) is the sequence number of the event information acquired by the tracer.
  • the event name (001-002) is the name of the event to be acquired. For example, contents of process switching, interruption, memory allocation / release, timer activation, and the like are recorded. Although the application-specific event name is not written here, such contents may be recorded.
  • the object to be developed is a digital TV, examples include channel switching and volume adjustment.
  • Time (001-003) is the time when the event name (001-002) occurs.
  • Etc. auxiliary information necessary for analyzing the event name (001-002) is recorded. For example, in the event of process switching of sequence number 1, it is possible to know from which process to which process switching has occurred, rather than just knowing that process switching has occurred. However, it is possible to accurately grasp the behavior of the system.
  • the content is supplementary information that supports behavioral analysis that is insufficient only with event names.
  • the profiler 004 records the profiled information, but details thereof are omitted.
  • the anomaly detection device 005 is a device for detecting dissatisfaction when the user uses the embedded system based on sensing data obtained from various sensors.
  • the abnormality detection device 005 includes a sensor group 5-001, a format conversion device 5-002, an identification device 5-003, a learning result 5-004, a buffer memory 5-005, and a learning device 5-006.
  • Sensor group 5-001 is various sensors for sensing user actions.
  • the format conversion device 5-002 performs various processes such as data A / D conversion and sampling in order to perform learning / identification processing to determine the normal state or abnormal state of the user from the sensed information. Pre-processing.
  • the identification device 5-003 uses the converted data and the learning result 5-004, which is the result of learning the normal state of the user using the learning device 5-006, and the user is successively dissatisfied with the embedded system. Determine whether you are holding. If the identification device 5-003 determines that the user is dissatisfied (not normal or abnormal), the behavior information collection tool (tracer 003, profiler 004) is transmitted via the tracer 003 and profiler 004. ) Is transferred to the communication module 006 and requested to be sent to the communication module 011 in the host environment 2.
  • the identification device 5-003 determines that the user is not dissatisfied, the identification data 5-003 uses the sensing data stored in the buffer memory 5-005 at that time, and the normal state of the user of the target system 1 As a result, a processing request is made to the learning device 5-006.
  • the buffer memory 5-005 temporarily stores information until the identification device 5-003 determines whether the data converted by the format conversion device 5-002 can be used as learning data.
  • the learning device 5-006 learns the normal state by a machine learning algorithm or the like using the information stored in the buffer memory 5-005 in response to the processing request issued from the identification device 5-003.
  • the learning result 5-004 used by the identification device and the learning result stored in the recording device 007 are updated.
  • FIG. 4 is a flowchart illustrating an example of the abnormality detection process.
  • the abnormality determination process starts when the system is started. After the start of processing, the process proceeds to step S-01, the past learning result stored in the recording device 007 is read out, stored as a learning result 5-004 in the working memory, and the process proceeds to step S-02.
  • step S-02 the memory is scanned for an abnormality determination request, and it is determined whether or not to stop the process. If the process is to be stopped, the process is terminated as it is. If the process is not to be stopped, the process proceeds to step S-03.
  • step S-03 the degree of abnormality is calculated based on the learning result 5-004 and the sensor information acquired from the format conversion device 5-002.
  • the degree of abnormality calculation process uses a score of a machine learning identification algorithm. As an example, there is a method called clustering. Based on the normal behavior information, the behavior information is classified into classes called classes in the vector space, the distance between the center of gravity and representative vectors of those classes and the input vector data is obtained, and the distance and the distance are normalized. Is treated as the degree of abnormality. When such abnormality level calculation is completed, the process proceeds to step S-04.
  • step S-04 the threshold value recorded in the learning result 5-004 is compared with the abnormality level obtained in step S-03. After the comparison, the process proceeds to step S-05.
  • step S-05 the processing after the next step is branched based on the comparison result obtained in step S-04. If the degree of abnormality does not exceed the threshold, it is determined that the user is in a normal state, and the process proceeds to step S-08 to perform additional learning of the normal state. If the degree of abnormality exceeds the threshold value, the process proceeds to step S-06 to collect information on the function of the investigation target program 002 being processed at that time.
  • step S-06 the behavior information recorded in the buffer memory 001 by the tracer 003 and the profiler 004 is referred to by referring to the API provided by the tracer 003 and the profiler 004, and the descriptor and address information for accessing the recording area. Collect and proceed to step S-07.
  • step S-07 the communication module 006 is requested to transmit the behavior information collected in step S-06 to the communication module 011 of the host environment 2, and the process returns to step S-02.
  • step S-08 since it is determined to be normal from the value of the degree of abnormality calculated in step S-03 at that time, learning is performed for the learning device 5-006 in order to perform additional learning of the normal state. The process proceeds to step S-02.
  • FIG. 5 is a flowchart illustrating an example of learning processing performed in the learning device 5-006 of the abnormality detection device 005, and illustrates processing performed when a learning request is received from the identification device 5-003.
  • step S-08 the learning result stored in the buffer memory 5-005 is read, and the process proceeds to step S-09.
  • step S-09 learning is performed based on the data read in step S-08.
  • learning is performed using a learning algorithm used in machine learning or the like. As an example, there is a method called clustering. Based on the acquired normal behavior information, the behavior information is classified into classes called classes in the vector space, and the center of gravity and representative vectors of these classes are obtained. When the learning is finished, the process proceeds to Step S-10.
  • step S-10 based on the learning result obtained in step S-09, the learning result 5-004 stored in the memory and the learning result stored in the recording device 007 are updated. After the update is completed, the process proceeds to step S-11.
  • step S-11 the remaining number of learning target data is checked. If there is no unprocessed learning target data, the process ends. If there is unprocessed learning target data, the process returns to step S-08.
  • FIG. 6 shows an example of a function for adding definition information to the design / development tool 008.
  • the function shown in FIG. 6 creates definition information for reflecting in the design / development information which function of the embedded system user is dissatisfied with, and the created definition information is used for normal embedded system. Add to design and development tool 008.
  • UML a modeling language called UML
  • a flowchart may be created using a document file creation program. May be described.
  • design methods and design tools there are various development tools.
  • the design / development tool 008 has an object analysis tool 008-001 and a trace location registration tool 008-002.
  • the object analysis tool 008-001 is designed by the design / development tool 008 and created by the design / development tool 008 and stored in the recording device 010.
  • a list of position information corresponding to the processing event is extracted from the program 010-002, and analysis information 010-003 is stored in the recording device 010.
  • the trace location registration tool 008-002 is analysis information 010-003 analyzed and saved by the object analysis tool 008-001 and definition information 010 created by the user in which a label name such as a function name of the trace processing is registered. From -004, the hook inserted for tracing and the trace statement itself are extracted, and the analysis information 010-003 is updated.
  • the recording device 010 records the above-described design information 010-001, creation program 010-002, analysis information 010-003, and definition information 010-004.
  • FIG. 7 is a diagram showing an example of the data structure of the analysis information 010-003 stored in the recording device 010.
  • the analysis information 010-003 varies depending on the tool used for design, the design method, the compiler used for creating the program, the tool chain, and the like.
  • the analysis information 010-003 includes a management ID (010-003-001), a label name (010-003-002), an event name (010-003-003), an address (010-003-004), and a problem location (010). -003-005).
  • Management ID (010-003-001) is an ID for managing a destination from which a trace is acquired.
  • the label name (010-003-002) is a function name indicating a position where the trace is acquired, or a name represented by a function name and its offset.
  • the event name (010-003-003) is a name indicating the contents of the trace or profile.
  • the address (010-003-004) is an address corresponding to the label name from which the trace is acquired, that is, an address at which the trace is taken.
  • the problem location (010-003-005) is an area for the system to write a result indicating which function the embedded system user is dissatisfied with in the trace result reflection processing described later.
  • FIG. 8 is a diagram showing an example of related processing for specifying which function of the embedded system the behavior information was acquired from, and updating the analysis information 010-003 from the acquired behavior information.
  • the normal embedded system design / development tool 008 uses design information 010-001, creation program 010-002, and analysis information 010-003. Label names and events recorded in design information 010-001 To identify the label name and event name that are recorded as the problem part by the name and the problem part (010-003-005) of the analysis information 010-003, and to superimpose the analysis result on the design / development information
  • the analysis result overlay process 008-003 is performed. Superimposition of analysis results can also be realized by changing the display method of the corresponding function. Moreover, you may implement
  • the data analysis function 009 combines the following three processes to obtain a problem location (010-003-005) in the analysis information 010-003 shown in FIG. 7 from the acquired behavior information 010-005 and analysis information 010-003. Realize the update.
  • the data analysis function 009 includes a behavior information read processing unit 009-001, a work memory 009-002, a name resolution processing unit 009-003, and a design information update processing unit 009-004.
  • the behavior information reading processing unit 009-001 reads the behavior information 010-005 recorded in the recording device 010, updates the work memory 009-002, and requests the name resolution processing unit 009-003 for processing.
  • the work memory 009-002 receives data from the behavior information reading processing unit 009-001, and temporarily records the data in the data structure shown in FIG.
  • the work memory 009-002 temporarily records analysis information 010-003 in the data structure shown in FIG. 7 when the name resolution processing unit 009-003 is processed.
  • the recorded data is used by the name resolution processing unit 009-003 as temporary storage when updating the determination result as to whether or not there is a problem.
  • the name resolution processing unit 009-003 receives the request from the behavior information reading processing unit 009-001, reads the analysis information 010-003 from the recording device 010 onto the work memory, and is expanded on the work memory in FIG.
  • the event names of the behavior information shown are matched in order from the top to see if they match the analysis information 010-003 shown in FIG. 7. If there is matching data, the problem location (010-003-003) of the analysis information 010-003 is found. 005) is updated.
  • the design information update processing unit 009-004 is requested to update the design information 010-001 recorded in the recording device 010.
  • the design information update processing unit 009-004 receives a processing request from the name resolution processing unit 009-003 and, based on the analysis information updated on the work memory, the label or event of the corresponding function of the design information 010-001. Add / update additional information to the name.
  • the host environment 2 and the target system 1 are connected via the network.
  • the host environment 2 and the target system 1 may not be connected via the network.
  • the communication modules 006 and 011 are configured by a recording device (for example, a non-volatile memory) that can be inserted and removed.
  • a recording device for example, a non-volatile memory
  • a recording device that can be inserted and removed is connected, and behavior information and the like when the user using the target system 1 feels dissatisfied are recorded.
  • the recording apparatus is detached from the target system 1 and connected to the host environment 2 to perform analysis with the same contents as in the first embodiment.
  • the behavior information obtained from the host information is recorded in a recording device that can be inserted / removed at the timing of the update, and the behavior information is recorded.
  • the recorded recording apparatus is connected to the target system 1 and a tool update process for collecting behavior information is performed.
  • the target system 1 and the host environment 2 are separate environments, but they may be contained in the same environment (enclosure). In this case, data transfer via the communication module is not performed, and data is transferred directly between devices and functions (for example, via a bus).
  • the location where many users are potentially dissatisfied can be associated with design location information, and which part of the target embedded system the user using the embedded system is dissatisfied with It becomes easy for the designer / developer to grasp the information, and it is possible to provide an easy-to-use system that does not depend on the subjectivity of the designer / developer and some loud users.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

 組込みシステムの設計及び開発を支援する設計・開発支援システムであって、前異常検出部を有するターゲットシステムと、データ解析部を有するホストシステムとを備え、前記センサは、出荷後の組込みシステムの使用中にユーザが処理を不満に思う挙動を検出した際に、ユーザの動向を検知し、前記異常検出部は、前記センサがユーザの動向を検知したタイミングで、調査対象プログラムの挙動の情報を収集し、前記収集された挙動の情報を前記ホストシステムに通知し、前記ホストシステムは、前記ターゲットシステムから通知された挙動の情報を記録装置に記録し、前記異常検出部は、設計・開発者が望むタイミングで、ユーザが不満を示した際の調査対象プログラムの挙動の情報を、設計・開発ツールに表示する。

Description

設計・開発支援システム 参照による取り込み
 本出願は、平成22年(2010年)11月16日に出願された日本特許出願特願2010-255466の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、組込みシステムの設計・開発支援システムに関する。
 従来、組込みシステムの操作感(ユーザビリティ)を改善することは難しかった。その理由は、操作感は使用者の主観に依存し、設計・開発者や商品企画者など(以下、「設計・開発者」という)が顧客の不満に関する情報を、完全に収集出来ない点にある。その様なユーザビリティの向上については、これまでに幾つかの発明がされている。そもそも不満を収集する以前に、ソフトウェアの障害が発生した際に、障害情報を収集し、収集した情報を別の装置に送信したり、外部から参照したりする方法が検討されている。特開平9-259013号公報では、障害発生時のログ収集をするシステムにおいて、複数のログ記録先がある場合に、記録のズレなく記録を実施し、複数の記録先に外部から情報を参照出来るインタフェースを備えることによって、該ログ記録機能のどれかに障害が発生しても、情報を収集可能とする技術が提案されている。次に、ユーザビリティの改善については、特開2004-287716号公報に示す様に、ユーザの操作内容を収集し、正しい操作方法と比較することによって、操作性を悪くしている設計要素を絞り込むユーザビリティ改善システムが提案されている。
 上記従来技術では、障害が発生することや、操作方法に間違いがある等の、明確な契機なり、設計・開発者が想定出来る条件時の情報しか収集出来ない。しかし、ユーザビリティは使用者の主観に依存するので、設計・開発者が意図しない点で、該組込みシステムのユーザが不満を抱いていることも考えられる。
 従って、組込みシステムを使用するユーザが、対象となる組込みシステムのどの部分を不満に思っているかを設計・開発者が把握することは一般に困難であり、設計・開発者や、一部の声高なユーザの主観に依存することがない、使いやすいシステムを提供することは難しいという課題がある。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、組込みシステムの設計及び開発を支援する設計・開発支援システムであって、前記ユーザの動向を検知するセンサを含む異常検出部を有するターゲットシステムと、調査対象プログラムの挙動情報を表示するデータ解析部を有するホストシステムと、を備え、前記センサは、出荷後の組込みシステムの使用中に、ユーザが処理を不満に思う挙動を検出した際に、ユーザの動向を検知し、前記異常検出部は、前記センサがユーザの動向を検知したタイミングで、処理している調査対象プログラムの挙動の情報を収集し、前記収集された挙動の情報を前記ホストシステムに通知し、前記ホストシステムは、前記ターゲットシステムから通知された挙動の情報を記録装置に記録し、前記異常検出部は、設計・開発者が望むタイミングで、ユーザが不満を示した際の調査対象プログラムの挙動の情報を、前記ホストシステムの設計・開発ツールに表示する。
 本発明により、多くのユーザが潜在的に不満に感じていた箇所と、設計上の位置情報との対応付けが可能となる。それにより、設計・開発者や、一部の声高なユーザの主観に依存することがない、使いやすいシステムを提供することが可能になる。
本発明の実施形態の全体構成の一例を示す図。 本発明の実施形態のシステムの挙動情報を保存するデータの構造の一例を示す図。 本発明の実施形態の異常検出装置の一例を示すブロック図。 本発明の実施形態の異常検出処理の一例を示すフローチャート。 本発明の実施形態のユーザの異常行動を学習する処理の一例を示すフローチャート。 本発明を実施する上で、通常の組込みシステムの設計・開発ツールの拡張に必要な機能の一例を示す図。 本発明の実施形態の解析情報のデータ構造の一例を示す図。 本発明の実施形態の挙動情報収集結果を、設計・開発ツールに反映するための処理の一例を示す図。
 <実施形態1>
 まず、本発明の第一の実施形態を説明する。
 図1は、本発明の実施形態による機能改善システムの一例の説明図である。本発明による機能改善システムは、機能の改善対象であるターゲットシステム1と、改善対象のターゲットシステムの設計・開発を実施するホスト環境2を有する。
 ターゲットシステム1は、バッファメモリ001、調査対象プログラム002、トレーサ003、プロファイラ004、異常検出装置005、通信モジュール006及び記録装置007を有する。
 バッファメモリ001は、ターゲットシステム1の挙動情報を記録するためのメモリである。調査対象プログラム002は、システムの制御や、ターゲットシステムの様々な機能を提供し、本機能改善システムによって改善される対象となるプログラムである。トレーサ003は、調査対象プログラム002の挙動情報を収集し、バッファメモリ001に記録する。
 異常検出装置005は、ユーザの不満をセンシングし、ユーザが普段の振る舞いと異なる異常を検出し、異常と判断したタイミングで、トレーサ003及びプロファイラ004が、バッファメモリ001に記録した調査対象プログラム002の挙動情報を、トレーサ003及びプロファイラ004経由で収集し、ホスト環境2に送信するために、通信モジュール006に引き渡す。
 通信モジュール006は、異常検出装置005から取得した挙動情報を、ホスト環境2の通信モジュール011に送信し、また、ホスト環境で作成されたトレーサ012を受信し、トレーサ003を更新する。記録装置007は、異常検出時に使用する学習結果を保存する。
 ホスト環境2は、設計・開発ツール008、データ解析機能009、記録装置010、通信モジュール011及びトレーサ012を有する。
 設計・開発ツール008は、ターゲットシステム1の調査対象プログラムを設計・開発する際に使用するツールである。データ解析機能009は、記録装置010に記録された、調査対象プログラム002の挙動情報を、記録装置010に記録された挙動情報及び設計・開発情報を用いて、設計・開発ツールの該当機能情報に重ね合わせて表示する機能である。
 記録装置010は、調査対象プログラム002の挙動情報、及び、設計・開発ツール008を用いて調査対象プログラム002を設計・開発した際に生成される設計・開発情報を記録する。通信モジュール011は、ターゲットシステム1の通信モジュール006と通信し、調査対象プログラム002の挙動情報を取得し、新規に作成された調査対象プログラムのトレーサ012を送信する。トレーサ012は、調査対象プログラム002の解析を進める上で、トレース対象を変更するために新規に作成、又は記録箇所を更新する。
 ターゲットシステム1及びホスト環境2は、プログラムを実行するプロセッサ、プロセッサによって実行されるプログラムを記憶するメモリ、他の装置との通信を制御する通信インタフェース、及びデータを格納する不揮発性記憶装置(例えば、磁気ディスクドライブ)を有する計算機(サーバ)である。なお、ターゲットシステム1及びホスト環境2の各々は、物理的に一つの計算機上に構築されても、物理的には一つ又は複数の計算機上に構成された論理区画上に構築されてもよい。
 各計算機のプロセッサで実行されるプログラムは、不揮発性の記憶媒体又はネットワークを介して、各計算機に提供される。このため、各計算機は、記憶媒体(CD-ROM、フラッシュメモリ等)を読み込むインタフェースを備えるとよい。
 <バッファメモリのデータ構造>
 図2は、トレーサ003や、プロファイラ004が収集するシステムの挙動情報を一時的または恒久的に保存するための、バッファメモリ001のデータ構造の一例を示す図である。バッファメモリ001は、ターゲットシステム1に含まれるトレーサ003や、プロファイラ004等の挙動情報収集機能が取得した情報の内容を格納する。
 図2は、トレーサ003についてのバッファメモリのデータ構造の一例であり、シーケンス番号(001-001)、イベント名称(001-002)、時刻(001-003)、内容1(001-004)、内容2(001-005)を含む。
 シーケンス番号(001-001)は、トレーサが取得したイベント情報のシーケンス番号である。リソースが有限な場合は、定められた閾値を境にラップアラウンドする。イベント名称(001-002)は、取得するイベントの名称である。例えば、プロセスの切り替えや、割り込み、メモリ確保・解放やタイマ起動等の内容が記録される。ここではアプリケーション固有のイベント名称は書かなかったが、その様な内容が記録されても構わない。開発する対象がデジタルテレビの場合は、一例として、チャンネル切り替え、音量調整等が挙げられる。
 時刻(001-003)は、イベント名称(001-002)が発生した時刻である。内容1(001-004)、内容2(001-005)..等の内容には、イベント名称(001-002)を解析する際に必要な補助情報が記録される。一例を挙げると、シーケンス番号1のプロセス切り替えというイベントでは、プロセス切り替えが起こったということだけが分かるよりも、それに付随し、どのプロセスから、どのプロセスへプロセス切り替えが発生したかということが分かる方が、システムの挙動を正確に把握可能である。内容は、その様な、イベント名称だけでは不足する挙動解析を支援する補足情報である。
 プロファイラ004も、同様に、プロファイリングした情報が記録されるが、その詳細は省略する。
 <異常検出装置の例>
 次に、図3を用いて、図1に示したターゲットシステム1の異常検出装置005の詳細について説明をする。
 異常検出装置005は、ユーザが該組込みシステムの使用時における不満を、様々なセンサから得られるセンシングデータに基づいて検出するための装置である。異常検出装置005は、センサ群5-001、形式変換装置5-002、識別装置5-003、学習結果5-004、バッファメモリ5-005、及び、学習装置5-006を有する。
 センサ群5-001は、ユーザのアクションをセンシングするための様々なセンサである。形式変換装置5-002は、センシングした情報からユーザの正常な状態や、異常な状態を判断するための、学習・識別処理をするために、データのA/D変換や、サンプリング等、様々なプリ・プロセッシングをする。
 識別装置5-003は、形式変換されたデータと、既に学習装置5-006を用いてユーザの正常状態を学習した結果である学習結果5-004とを用いて、逐次ユーザが組込みシステムに不満を抱いているかを判定する。そして、識別装置5-003は、ユーザが不満を持っている(正常ではない又は異常である)と判断した場合には、トレーサ003及びプロファイラ004経由で、挙動情報収集ツール(トレーサ003、プロファイラ004)が収集した情報を、通信モジュール006に転送し、ホスト環境2の通信モジュール011に送信する様、通信モジュール006に依頼する。一方、識別装置5-003は、ユーザが、不満を持っていないと判断した場合には、その時点でバッファメモリ5-005に蓄積されているセンシングデータを使い、ターゲットシステム1のユーザの正常状態を学習する様に、学習装置5-006に対し処理依頼を実施する。
 バッファメモリ5-005は、形式変換装置5-002によって変換されたデータを学習データとして使用出来るかを識別装置5-003が判定するまで、一時的に情報を格納する。学習装置5-006は、識別装置5-003から発行された処理依頼を契機に、バッファメモリ5-005に蓄積された情報を用いて、機械学習のアルゴリズム等によって、正常な状態を学習し、識別装置が使用する学習結果5-004及び記録装置007に保存されている学習結果を更新する。
 <異常検出装置の処理シーケンス>
 図4は異常検出処理の一例を示すフローチャートである。
 システムの起動時などに、異常判定処理は開始する。処理開始後、ステップS-01に進み、記録装置007に保存されている過去の学習結果を読み出し、ワーキングメモリ上に学習結果5-004として格納し、ステップS-02に進む。
 ステップS-02では、異常判定要求があったかメモリを走査し、処理を停止するか否かを判定する。処理を停止する場合は、そのまま終了し、処理を停止しない場合はステップS-03に進む。
 ステップS-03では、学習結果5-004と、形式変換装置5-002から取得したセンサ情報とに基づいて、異常度を算出する。異常度の算出処理は、一般的には、機械学習の識別アルゴリズムのスコアを用いる。一例を挙げると、クラスタリングという方法がある。正常時の挙動情報に基づいて、挙動情報をベクトル空間上でクラスという塊に分類し、それらクラスの重心や代表ベクトルと、入力されたベクトルデータの距離を求め、その距離や、その距離を正規化したものを異常度として扱う。この様な異常度算出が終了すると、ステップS-04に進む。
 ステップS-04の異常度比較ステップでは、学習結果5-004に記録されている閾値と、ステップS-03で求めた異常度とを比較する。比較した後ステップS-05に進む。
 ステップS-05では、ステップS-04で求めた比較結果に基づいて、次ステップ以降の処理を分岐する。異常度が閾知を超えていない場合は、ユーザが正常な状態であると判断し、正常状態の追加学習を行うため、ステップS-08に進む。異常度が閾値を越えた場合は、その時点で処理している調査対象プログラム002の機能の情報を収集するために、ステップS-06に進む。
 ステップS-06では、トレーサ003及びプロファイラ004が提供するAPI、及び記録領域へのアクセス用のディスクリプタやアドレス情報等を参照して、トレーサ003及びプロファイラ004によってバッファメモリ001に記録された挙動情報を収集し、ステップS-07に進む。
 ステップS-07では、ステップS-06で収集した挙動情報を、ホスト環境2の通信モジュール011に対して送信するよう、通信モジュール006に依頼し、ステップS-02へ戻る。
 ステップS-08では、その時点で、ステップS-03にて算出した異常度の値から正常と判断されたため、正常状態の追加学習をするために、学習装置5-006に対し、学習を実施する処理を依頼し、ステップS-02に進む。
 図5は、異常検出装置005の学習装置5-006において実施される学習処理の一例を示すフローチャートであり、識別装置5-003から、学習の依頼があった際に実施される処理を示す。
 学習装置5-006は、処理の依頼を受け付けると、学習処理を開始し、ステップS-08に進む。ステップS-08では、バッファメモリ5-005に蓄積された学習結果を読み出して、ステップS-09に進む。
 ステップS-09では、ステップS-08で読み出したデータに基づいて、学習を実施する。一般的には、機械学習等で用いられる学習アルゴリズムを使い、学習を実施する。一例を挙げると、クラスタリングという方法がある。取得した正常時の挙動情報に基づいて、挙動情報をベクトル空間上でクラスという塊に分類し、それらクラスの重心や代表ベクトルを求める処理である。学習が終わるとステップS-10に進む。
 ステップS-10では、ステップS-09で求めた学習結果に基づいて、メモリに保存された学習結果5-004と、記録装置007に保存された学習結果とを更新する。更新終了後、ステップS-11に進む。
 ステップS-11では、学習対象データの残存数をチェックし、未処理の学習対象データが無い場合には処理を終了、未処理の学習対象データが有る場合にはステップS-08に戻る。
 図6に、設計・開発ツール008に定義情報を追加する機能の一例を示す。図6に示す機能は、組込みシステムのユーザがどの機能に不満を持っていたかを、設計・開発時の情報に反映するための定義情報を作成し、作成した定義情報を、通常の組込みシステムの設計・開発ツール008に追加する。
 通常の組込みシステムの設計・開発ツールは多岐にわたる。例を挙げると、システムの設計をする場合でも、UMLというモデリング言語を使い、UMLのモデル記述をサポートするモデリングツールを使用して記述する場合もあれば、ドキュメントファイル作成プログラムを用いて、フローチャートを記述する場合もある。この様に、設計手法や、設計ツールは様々なものがある。同様に、開発ツールも様々なものがある。
 プログラミング言語だけでもかなりの数がある上、その言語から実行バイナリを生成するコンパイラや、関連する解析ツールは、言語の数より更に多い。そこで、ここでは、それらの設計環境、開発環境そのものではなく、それらの他に必要な通常の組込みシステムの設計・開発ツールに追加する部分の一例を示す。
 設計・開発ツール008は、オブジェクト解析ツール008-001及びトレース箇所登録ツール008-002を有する。
 オブジェクト解析ツール008-001は、設計・開発ツール008によって設計され、記録装置010に保存されている設計情報010-001と、設計・開発ツール008によって作成され、記録装置010に保存されている作成プログラム010-002とから、処理イベントと対応する位置情報の一覧を抽出し、記録装置010に解析情報010-003を保存する。
 トレース箇所登録ツール008-002は、オブジェクト解析ツール008-001によって解析され、保存された解析情報010-003と、トレース処理の関数名称等のラベル名称が登録された、ユーザが作成した定義情報010-004とからトレース用に挿入されたフックやトレース文そのものを抽出し、解析情報010-003を更新する。
 記録装置010は、上記した設計情報010-001、作成プログラム010-002、解析情報010-003及び定義情報010-004を記録する。
 図7は、記録装置010に保存されている解析情報010-003のデータ構造の一例を示す図である。
 解析情報010-003は、設計に使うツールや、設計手法、プログラムの作成に使うコンパイラやツールチェイン等によって様々に変わる。解析情報010-003は、管理ID(010-003-001)、ラベル名称(010-003-002)、イベント名称(010-003-003)、アドレス(010-003-004)及び問題箇所(010-003-005)を含む。
 管理ID(010-003-001)は、トレースを取得する先を管理するためのIDである。ラベル名称(010-003-002)は、トレースを取得する位置を示す関数名称や、関数名称とそのオフセット等で表わされる名称である。イベント名称(010-003-003)は、トレースやプロファイルの内容を示す名称である。アドレス(010-003-004)は、トレースを取得するラベル名称に対応するアドレス、即ちトレースを取るアドレスである。問題箇所(010-003-005)は、後述するトレース結果反映処理において、どの機能で組込みシステムユーザが不満を持ったかを、システムが結果を書き込むための領域である。
 図8は、取得した挙動情報より、該組込みシステムのどの機能の実行時に挙動情報が取得されたかを特定し、解析情報010-003を更新するための関連処理の一例を示す図である。
 通常の組込みシステムの設計・開発ツール008には、設計情報010-001と、作成プログラム010-002と、解析情報010-003とを使用し、設計情報010-001に記録されたラベル名称及びイベント名称と、解析情報010-003の問題箇所(010-003-005)とで、問題箇所であると記録されているラベル名称及びイベント名称を特定し、設計・開発情報に解析結果を重ね合わせるための解析結果重ね合わせ処理008-003を実施する。解析結果の重ね合わせは、該当する機能の表示方法を変更することでも実現出来る。また、該当する機能に、ポインタ等を重ね合わせる方法で実現しても構わない。
 次に、データ解析機能009について示す。データ解析機能009は、以下3つの処理を組み合わせることによって、取得した挙動情報010-005及び解析情報010-003から、図7で示した解析情報010-003における問題箇所(010-003-005)の更新を実現する。
 データ解析機能009は、挙動情報読み込み処理部009-001、ワークメモリ009-002、名前解決処理部009-003及び設計情報更新処理部009-004を有する。
 挙動情報読み込み処理部009-001は、記録装置010に記録された挙動情報010-005を読み出し、ワークメモリ009-002を更新し、名前解決処理部009-003に処理依頼をする。
 ワークメモリ009-002は、挙動情報読み込み処理部009-001からデータを受け、図2に示すデータ構造でデータを一時的に記録する。また、ワークメモリ009-002は、名前解決処理部009-003処理時に、解析情報010-003を図7に示すデータ構造で一時的に記録する。記録されたデータは、名前解決処理部009-003によって、問題箇所か否かの判定結果の更新時の一時記憶として利用される。
 名前解決処理部009-003は、挙動情報読み込み処理部009-001からの依頼を受け、解析情報010-003を記録装置010からワークメモリ上に読み出し、ワークメモリ上に展開されている図2に示す挙動情報のイベント名称を先頭から順に、図7に示す解析情報010-003に合致するかをマッチングをし、一致するデータがある場合は、解析情報010-003の問題箇所(010-003-005)を更新する。そして、全ての挙動情報010-005に対し処理が終了した後、記録装置010に記録されている設計情報010-001の更新処理を、設計情報更新処理部009-004に依頼する。
 設計情報更新処理部009-004は、名前解決処理部009-003からの処理依頼を受け、ワークメモリ上で更新された解析情報に基づいて、設計情報010-001の該当する機能のラベルやイベント名称に付加情報を追記・更新する。
 <実施形態2>
 前述したように、実施形態1では、ホスト環境2とターゲットシステム1が、ネットワークによって接続される例を示したが、ネットワークで接続されていなくても構わない。例えば、通信モジュール006、011を、挿抜可能な記録装置(例えば、不揮発性メモリ)で構成する。通常は、ターゲットシステム1側の通信モジュール006の代わりに、挿抜可能な記録装置を接続して、ターゲットシステム1を使用しているユーザが不満に思った際の挙動情報等を記録する。そして、開発者やターゲットシステム1のユーザが望んだ段階で、該記録装置をターゲットシステム1から取り外し、ホスト環境2に接続して、実施形態1と同じ内容で、解析を実施する。
 トレーサ012に一例を示すと、トレーサ等挙動情報収集用のツールを更新する場合は、更新したいタイミングで、ホスト情報から得られた挙動情報を、挿抜可能な記録装置に記録し、挙動情報が記録された記録装置をターゲットシステム1に接続して、挙動情報収集用のツール更新処理を実施する。
 <実施形態3>
 前述した実施形態1及び2は、ターゲットシステム1とホスト環境2が、別々の環境となっているが、同一の環境(筺体)に収まっていても構わない。その場合は、通信モジュールを介したデータの転送は実施されず、直接、装置や機能間で(例えば、バスを解して)データが転送される。
 <実施形態4>
 前述した実施形態1において、センサ群の情報を自動的に識別する代わりに、ユーザが不満を直接提示出来る機能を備え、不満を持った際に、直接設計者に意思表示することが出来ても構わない。
 多くのユーザが潜在的に不満を感じていた箇所と、設計上の位置情報との対応付けが可能となり、組込みシステムを使用するユーザが、対象となる組込みシステムのどの部分に不満に思っているかを設計・開発者が把握することが容易となり、設計・開発者や、一部の声高なユーザの主観に依存することがない、使いやすいシステムを提供することが可能となる。
 以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。

Claims (6)

  1.  組込みシステムの設計及び開発を支援する設計・開発支援システムであって、
     前記ユーザの動向を検知するセンサを含む異常検出部を有するターゲットシステムと、
     調査対象プログラムの挙動情報を表示するデータ解析部を有するホストシステムと、を備え、
     前記センサは、出荷後の組込みシステムの使用中に、ユーザが処理を不満に思う挙動を検出した際に、ユーザの動向を検知し、
     前記異常検出部は、前記センサがユーザの動向を検知したタイミングで、処理している調査対象プログラムの挙動の情報を収集し、前記収集された挙動の情報を前記ホストシステムに通知し、
     前記ホストシステムは、前記ターゲットシステムから通知された挙動の情報を記録装置に記録し、
     前記異常検出部は、設計・開発者が望むタイミングで、ユーザが不満を示した際の調査対象プログラムの挙動の情報を、前記ホストシステムの設計・開発ツールに表示することを特徴とする設計・開発支援システム。
  2.  請求項1に記載の設計・開発支援システムにおいて、前記センサから入力された情報に基づいて、ユーザが実施中の機能に対し不満を持っているか否かを識別する識別部を備えることを特徴とする設計・開発支援システム。
  3.  請求項1に記載の設計・開発支援システムにおいて、前記センサから入力された情報が異常と判定されなかった場合に、当該情報に基づいて学習結果を追加する学習部を備えることを特徴とする設計・開発支援システム。
  4.  請求項1に記載の設計・開発支援システムにおいて、
     前記ホストシステム及び前記ターゲットシステムは、ネットワーク的に独立した環境であって、
     前記ターゲットシステムは、前記センサから入力された情報を記録媒体に記録し、
     前記ホストシステムは、前記センサから入力された情報を前記記録媒体から取得することを特徴とする設計・開発支援システム。
  5.  請求項1に記載の設計・開発支援システムにおいて、前記ホストシステムと前記ターゲットシステムとが、単一の筺体に格納された計算機上に構成されることを特徴とする設計・開発支援システム。
  6.  請求項1に記載の設計・開発支援システムにおいて、
     前記ターゲットシステムは、
     ユーザの不満を直接設計・開発者に提示できる機能を有し、
     前記ユーザから提示された不満の情報を前記ホストシステムに送信することを特徴とする設計・開発支援システム。
PCT/JP2011/076064 2010-11-16 2011-11-11 設計・開発支援システム WO2012067034A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-255466 2010-11-16
JP2010255466A JP2014041390A (ja) 2010-11-16 2010-11-16 設計・開発支援システム

Publications (1)

Publication Number Publication Date
WO2012067034A1 true WO2012067034A1 (ja) 2012-05-24

Family

ID=46083966

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/076064 WO2012067034A1 (ja) 2010-11-16 2011-11-11 設計・開発支援システム

Country Status (2)

Country Link
JP (1) JP2014041390A (ja)
WO (1) WO2012067034A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6285333B2 (ja) * 2014-09-29 2018-02-28 富士フイルム株式会社 診断支援プログラム開発促進装置、診断支援プログラム開発促進装置の作動方法および作動プログラム、並びに診断支援プログラム開発促進システム
JP6907622B2 (ja) * 2017-03-17 2021-07-21 株式会社リコー 障害監視装置、障害監視システムおよびプログラム
KR101984760B1 (ko) * 2017-10-20 2019-05-31 두산중공업 주식회사 인공지능을 이용한 자가 설계 모델링 시스템 및 방법
CN112417449A (zh) * 2020-11-12 2021-02-26 北京鸿腾智能科技有限公司 异常行为检测方法、设备、存储介质及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05314040A (ja) * 1992-05-14 1993-11-26 Hitachi Ltd トレース方式
JP2006023835A (ja) * 2004-07-06 2006-01-26 Matsushita Electric Ind Co Ltd ユーザビリティ評価装置および方法
JP2007052601A (ja) * 2005-08-17 2007-03-01 Matsushita Electric Ind Co Ltd ユーザビリティ評価装置、ユーザビリティ評価方法およびプログラム
JP2009250811A (ja) * 2008-04-07 2009-10-29 Toyota Motor Corp 車載情報端末

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05314040A (ja) * 1992-05-14 1993-11-26 Hitachi Ltd トレース方式
JP2006023835A (ja) * 2004-07-06 2006-01-26 Matsushita Electric Ind Co Ltd ユーザビリティ評価装置および方法
JP2007052601A (ja) * 2005-08-17 2007-03-01 Matsushita Electric Ind Co Ltd ユーザビリティ評価装置、ユーザビリティ評価方法およびプログラム
JP2009250811A (ja) * 2008-04-07 2009-10-29 Toyota Motor Corp 車載情報端末

Also Published As

Publication number Publication date
JP2014041390A (ja) 2014-03-06

Similar Documents

Publication Publication Date Title
CN101675425B (zh) 实况伴随窗口
EP2270655B1 (en) Compatibility evaluation apparatus, compatibility evaluation method, and recording medium
JP5329983B2 (ja) デバッグ支援装置
US8930761B2 (en) Test case result processing
CN103838537A (zh) 控制装置和信息处理装置
JP6870466B2 (ja) 制御プログラム、制御方法、制御装置、及びデータベースサーバ
CN110659256A (zh) 多机房同步方法、计算设备及计算机存储介质
WO2012067034A1 (ja) 設計・開発支援システム
CN112612417B (zh) 数据迁移方法、装置、设备及存储介质
CN103309751A (zh) 提供文件系统功能的终端的设备和方法
US8245085B2 (en) Dump output control apparatus and dump output control method
CN105683985A (zh) 虚拟机内省
US9891911B2 (en) Software development work item management system
JP2007199845A (ja) メモリ破壊検出方法および装置
KR101502725B1 (ko) 영상 사고 기록 장치의 저장 공간에 버퍼를 이용하여 파일을 관리하는 장치 및 방법
JP6531601B2 (ja) 診断プログラム、診断方法および診断装置
JP2009253847A (ja) 情報処理装置およびその制御方法、プログラム、記憶媒体
CN108388442B (zh) 一种安卓系统中固件的补丁管理方法及系统
JP5605370B2 (ja) システムモデル管理支援システム、システムモデル管理支援方法およびプログラム
JP2008257410A (ja) システム設計検証装置
US8869137B2 (en) Information processing apparatus that automatically and sequentially displays graphical user interface images and recording medium storing program
JP4838226B2 (ja) ネットワークロギング処理プログラム,情報処理システムおよびネットワークロギング情報自動退避方法
JP2013080386A (ja) 情報処理装置、アドレス管理方法
JP2009064125A (ja) サーバ装置、そのプログラム
JP4980267B2 (ja) システム構築支援装置、方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11841289

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11841289

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP