WO2014097790A1 - 要求間矛盾判定システム、要求間矛盾判定方法、および、要求間矛盾判定プログラム - Google Patents

要求間矛盾判定システム、要求間矛盾判定方法、および、要求間矛盾判定プログラム Download PDF

Info

Publication number
WO2014097790A1
WO2014097790A1 PCT/JP2013/080966 JP2013080966W WO2014097790A1 WO 2014097790 A1 WO2014097790 A1 WO 2014097790A1 JP 2013080966 W JP2013080966 W JP 2013080966W WO 2014097790 A1 WO2014097790 A1 WO 2014097790A1
Authority
WO
WIPO (PCT)
Prior art keywords
contradiction
request
detection unit
requests
rule
Prior art date
Application number
PCT/JP2013/080966
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 日本電気株式会社
Priority to US14/652,592 priority Critical patent/US9483234B2/en
Priority to JP2014553025A priority patent/JP6260791B2/ja
Publication of WO2014097790A1 publication Critical patent/WO2014097790A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Definitions

  • the present invention relates to an inter-request inconsistency determination system, method and program for determining inconsistencies between requests in a system software development specification.
  • Patent Document 1 discloses a method for detecting contradictions in specifications.
  • conditions preconditions, postconditions, invariant conditions
  • arbitrary operations are extracted from the event flow, and the extracted operations are related.
  • Conditions pre-conditions and post-conditions are set, and it is determined whether or not the set conditions are satisfied using the operation conditions.
  • Patent Document 1 is based on the premise that specifications are strictly set as conditions for use cases, and there is a problem that preparation work before analysis is applied to each specification.
  • Non-Patent Document 1 discloses a method of finding a conflict of requirements.
  • a request is manually classified into attributes, and it is estimated that there is a conflicting relationship between requests having dependencies between predetermined attributes.
  • a dependency relationship between requests or a relationship between the request and the execution code is necessary, and it is necessary to prepare these relationships in advance, so that the preparation effort before the analysis is applied for each specification. There was a problem.
  • the present invention has been made in view of the above circumstances, and provides a system, method, and program for determining inconsistencies between requirements and specifications in specifications for system software development.
  • the object of the present invention is to determine a contradiction between requirements and specifications in a system / software development specification without taking any preparatory effort.
  • the system for determining a contradiction between requests provides a degree of similarity between a request obtained by converting one text based on a predetermined contradiction rule and a request not converted by the other for two requests expressed in text. Based on the relationship detection unit that detects the relationship between two requests, the detection result of the relationship detection unit, the similarity calculated by the relationship detection unit, and the original request before conversion And a contradiction detection unit that detects whether or not two requests are contradictory based on the similarity.
  • the present invention it is possible to determine inconsistencies in requirements / specifications in the system software development specifications without taking any preparatory effort.
  • a contradiction rule is prepared, but the contradiction rule does not need to be prepared for each specification and can be shared in system software development. Therefore, in the present invention, no effort is required for preparation for each specification.
  • FIG. 1 is a block diagram showing a configuration example of a request contradiction determination system according to a first embodiment of the present invention.
  • FIG. 2 is an explanatory diagram illustrating an example of contradictory requests stored in the request storage unit 100.
  • FIG. 3 is an explanatory diagram illustrating another example of contradictory requests stored in the request storage unit 100.
  • FIG. 4 is an explanatory diagram illustrating an example of the contradiction rules stored in the contradiction rule storage unit 101.
  • FIG. 5 is a flowchart showing an example of processing progress of the inter-request conflict determination system according to the first embodiment of the present invention.
  • FIG. 6 is an explanatory diagram illustrating an example of non-conflicting requests stored in the request storage unit 100.
  • FIG. 1 is a block diagram showing a configuration example of a request contradiction determination system according to a first embodiment of the present invention.
  • FIG. 2 is an explanatory diagram illustrating an example of contradictory requests stored in the request storage unit 100.
  • FIG. 3 is an explanatory diagram
  • FIG. 7 is a block diagram showing a configuration example of the inter-request contradiction determination system according to the second embodiment of the present invention.
  • FIG. 8 is an explanatory diagram illustrating an example of a division rule stored in the division rule storage unit 200.
  • FIG. 9 is an explanatory diagram illustrating an example of contradictory requests stored in the request storage unit 100.
  • FIG. 10 is an explanatory diagram illustrating an example of request information stored in the request information storage unit 201.
  • FIG. 11 is an explanatory diagram illustrating an example of a pre-conversion rule stored in the pre-conversion rule storage unit 202.
  • FIG. 12 is an explanatory diagram illustrating another example of the request stored in the request storage unit 100.
  • FIG. 13 is an explanatory diagram illustrating another example of request information stored in the request information storage unit 201.
  • FIG. 14 is a flowchart showing an example of processing progress of the inter-request conflict determination system according to the second embodiment of the present invention.
  • FIG. 15 is a flowchart showing an example of the processing progress of the request dividing unit 203 for the request i of the inter-request contradiction determination system according to the second embodiment of the present invention.
  • the conflict determination system between requests according to the first embodiment checks whether two requests are related to each other when the conflict between the conflicting parts is resolved, and if there is a relationship, Detect if it is actually inconsistent.
  • the contradiction of the part in the contradiction relationship is resolved by converting one request using the contradiction rule that is a plurality of contradiction expressions in the contradiction relationship. Whether or not there is a contradiction is actually detected by comparing the similarity between the original requests that remain in the contradictory relationship with the similarity between the requests that have resolved the contradiction.
  • the inter-request conflict determination system includes a storage unit 11 that stores information and a calculation unit 12 that operates under program control.
  • the storage unit 11 includes a request storage unit 100 and a contradiction rule storage unit 101.
  • the request storage unit 100 stores two requests.
  • the two requests may be specified by the user of the system by inputting via a keyboard or the like, may be stored as defaults in the system, or may be specified in other manners.
  • the request is extracted from the document that is subject to inconsistency determination.
  • the document is, for example, a Request For Proposal (RFP), which is used for the IT vendor that is the ordering agency when the government agency or company that is the ordering source procures information systems or IT services. This is a document for requesting a proposal.
  • RTP Request For Proposal
  • the proposal request is also called a procurement request, a bid request, a proposal request, a proposal request, a proposal request, a proposal solicitation, a request for quotation, a proposal submission request, a bid manual, a consignment specification, and the like.
  • the document is, for example, a proposal (Proposal), which is a document in which an IT vendor describes specific proposals.
  • the proposal is also called a plan book or plan proposal.
  • the document is, for example, a specification that describes requirements that are matters to be satisfied by the system or service.
  • the specification is also called a requirement specification, a requirement definition, a requirement definition, a functional specification, a design document, a contract, or the like.
  • requirement of this invention also includes the specification of these specifications.
  • FIG. 2 is an explanatory diagram illustrating an example of contradictory requests stored in the request storage unit 100.
  • FIG. 3 is an explanatory diagram illustrating another example of contradictory requests stored in the request storage unit 100.
  • the first line is a column heading line, and from the second line, one request is shown for each line.
  • the number in the first column is a number indicating a request.
  • the request text in the second column is text indicating the content of the request.
  • request 2 in FIG. 3 is an example extracted from the table of documents.
  • request i a request with the number i
  • request 2 in FIG. 3 is an example extracted from the table of documents.
  • a process for determining whether or not there is a contradiction to two requests in the request storage unit 100 will be described.
  • three or more requests are stored in the request storage unit 100, and the stored requests are stored. It may be determined whether there is a contradiction for every two requests.
  • a request extracted from a document may use a dictionary or the like to unify synonyms into their representative words and simplify redundant expressions. For example, when the request contains “read only”, “read only”, “read only”, “read only”, etc., these terms are unified into the term “read only” using a synonym dictionary.
  • the synonym dictionary may be created manually, and examples of common synonym dictionaries include WordNet.
  • the unification of terms using the synonym dictionary may be performed manually, or may be automatic conversion using a computer or the like.
  • the contradiction rule storage unit 101 stores a contradiction rule that is a rule for determining contradiction.
  • a contradiction rule consists of a plurality of contradiction expressions that indicate a state that does not hold simultaneously.
  • Each contradiction expression is a character string or one or more character strings expressed as a single character string Expression).
  • the contradiction rule may be specified by the user of the system by inputting through a keyboard or the like, may be stored as a default in the system, or may be specified in other manners. FIG.
  • the first line is a column heading line, and one contradiction rule is shown for each line from the second line.
  • the number in the first column is a number indicating a contradiction rule.
  • the first expression of the contradiction rule in the second column and the second expression of the contradiction rule in the third column are respectively contradiction expressions.
  • the contradiction rule with the number k is referred to as the contradiction rule k.
  • ⁇ sa variable noun> is an expression indicating an arbitrary sa variable noun
  • ". *" Is an expression indicating an arbitrary character string.
  • the calculation unit 12 includes a relevance detection unit 102 and a contradiction detection unit 103. Based on the contradiction rule stored in the contradiction rule storage unit 101, the relevance detection unit 102 converts one of the two requests stored in the request storage unit 100 and remains as the converted text. Based on the similarity between the other request texts, the relationship between the two requests is detected.
  • a character string that matches one of the two contradiction expressions of the contradiction rule included in the request is converted to the other contradiction expression of the contradiction rule. Converting to a matching string.
  • the character string matching the contradiction expression is, for example, “registration”, “deletion”, etc. that match the first expression for the contradiction expression “ ⁇ sa variable noun>” that is the first expression of the contradiction rule 1 in FIG. It is a character string.
  • the converted character string includes an expression “. *” Indicating an arbitrary character string such as “Registered. * None”, the relevance detecting unit 102 indicates an expression “ .
  • MeCab or ChaSen breaks the text into words, and outputs “noun, change connection” or the like if the word is a changeable noun. Or, even if a morpheme engine such as MeCab or ChaSen is not used, the storage unit stores a word indicating a saun noun side by side, and the relevance detection unit 102 searches the storage unit to determine whether there is a sabot noun. May be examined. The relevance detection unit 102 can estimate the similarity between the converted request i and the unconverted request j based on, for example, an estimate of Kolmogorov complexity.
  • the relevance detection unit 102 assumes that there is a contradiction between two requests, and if the contradiction is resolved by converting the text of one of the requests, does the relevance detection unit 102 have such a degree of similarity that the two requests can be considered consistent? Check out. For example, if there is a contradiction between natural language texts, check if the subject, predicate, object, etc. match using a parsing technique, and if they match, check if they are positive and negative. Is also possible. However, in the specification, the same meaning is used to mechanically interpret that “the user presses the registration button” and “the user presses the registration button” have the same meaning. It is necessary to prepare various syntax information shown in advance.
  • the specification includes sentences that omit the subject, such as “Press the registration button” and “Display on screen”.
  • the subject of “Press the registration button” is “user” and the subject of “display on the screen” is “system”. This is because it can.
  • specifications use knowledge specific to the industry, industry, and customers, it is practically impossible to prepare everything in advance.
  • a request from a specification includes a fragment of a sentence extracted from a diagram, etc., it is almost impossible to prepare all interpretations in advance because the interpretation of a sentence fragment is not necessarily unique. .
  • the consistency is determined using the similarity.
  • the contradiction detection unit 103 for the two requests detected as related by the relevance detection unit 102, the converted similarity calculated by the relevance detection unit 102 and the request stored in the request storage unit 100 Contradiction is detected based on the similarity between the two.
  • the detected result may be output immediately via a display device or a printing device, or may be stored and output in response to a request from a user of the system, or otherwise. It may be output.
  • the relevance detection unit 102 investigated whether there is a contradiction when there is a contradictory character string, and investigated whether or not the contradiction was resolved. There may not be.
  • the contradiction detection unit 103 investigates by similarity whether it can be considered that the case where the contradiction is resolved is more consistent than the case where the contradiction is not resolved.
  • the present invention may be applied as a combination of two contradictory expressions. Or, if the contradiction rule has more than two contradiction expressions, one request matches only one contradiction expression of the contradiction rule, and the other request is another contradiction expression of the contradiction rule. It is good also as a setting which makes object only when it matches only.
  • the method of application when there are three or more contradictory expressions may be specified by the system user by inputting via a keyboard or the like, or may be stored as a default in the system, It may be specified in other ways.
  • the relevance detection unit 102 initializes i indicating the number of the first request to 1 and j indicating the number of the second request to 2 among the requests stored in the request storage unit 100 ( Step A1).
  • the relevance detection unit 102 initializes k indicating the number of the contradiction rule stored in the contradiction rule storage unit 101 to 1 (step A2).
  • the relevance detection unit 102 compares k with the number K of contradiction rules stored in the contradiction rule storage unit 101 (step A3). If k is equal to or less than the number K of contradiction rules stored in the contradiction rule storage unit 101, the relevance detection unit 102 proceeds to step A5.
  • the relationship detection unit 102 shifts the processing to step A4.
  • the relevance detection unit 102 compares i with 1 (step A4). If i is equal to 1, the relevance detection unit 102 shifts the processing to step A14. If i is not equal to 1, the relevance detection unit 102 ends the operation. Here, if i is not equal to 1, the relevance detection unit 102 may output that no contradiction has been detected. The output may be immediately output via a display device or a printing device, or may be stored and output in response to a request from a user of the system, or output in any other manner. May be.
  • the relevance detection unit 102 checks whether the request i stored in the request storage unit 100 includes the first expression of the contradiction rule k stored in the contradiction rule storage unit 101 (step A5).
  • the request i includes only the first expression of the contradiction rule k means that the text of the request i includes the first expression of the contradiction rule k and does not include the second expression. If the request i includes only the first expression of the contradiction rule k, the relationship detection unit 102 proceeds to the next step A6. If not, the relationship detection unit 102 shifts the processing to step A12.
  • the two requests in FIG. 2 and the two contradiction rules in FIG. 4 will be described as an example.
  • the relevance detection unit 102 proceeds to the next step A6.
  • the case where two requests are shown in FIG. 3 instead of FIG. 2 will be described as an example.
  • the request 1 “data B is editable” includes “edit” as the first expression “ ⁇ sa variable noun>” of the contradiction rule 1, and the contradiction rule Since it does not include the second expression of “ ⁇ sa weird noun>. * Not”, the relevance detection unit 102 proceeds to the next step A6.
  • the request 1 “Data B is editable” does not include the first expression “read only” of the contradiction rule 2, so the relevance detection unit 102 performs the step The process proceeds to A12.
  • Read only” includes “read” as the first expression “ ⁇ sa variable noun>” of the contradiction rule 1 and the contradiction rule Since it does not include the second expression of “ ⁇ sa weird noun>. * Not”, the relevance detection unit 102 proceeds to the next step A6.
  • Read only includes the first expression “read only” of the contradiction rule 2 and the second expression “ Since “editable” is not included, the relationship detection unit 102 proceeds to the next step A6.
  • the relevance detection unit 102 selects an expression that matches a plurality of character strings from among the second expressions of the contradiction rule k stored in the contradiction rule storage unit 101, as a first expression that matches in the previous step. It is converted as a character string (step A6).
  • the second expression is a single character string, this step does nothing. Even if converted, the contradiction rule storage unit 101 does not store the converted contradiction rule.
  • the two requests in FIG. 2 and the two contradiction rules in FIG. 4 will be described as an example.
  • the relationship detection unit 102 converts the second representation of the contradiction rule k for conversion (step A8).
  • the relevance detection unit 102 converts an expression that matches a plurality of character strings, out of the second expressions of the contradiction rule k converted in step A6, into one shortest character string. For example, the relevancy detection unit 102 converts “registration. * Do not” into “do not register”, converts “edit. * Do not” into “do not edit”, and does not read “read. * Do”. Convert to Here, the relevance detection unit 102 does not rewrite the contradiction rule k in the contradiction rule storage unit 101. Next, the relevance detection unit 102 converts the request i stored in the request storage unit 100 using the contradiction rule k converted in the previous step A8 (step A9).
  • Converting a request means converting the first expression of the contradiction rule k included in the request i into the second expression of the contradiction rule k.
  • the relationship detection unit 102 does not rewrite the request storage unit 100. That is, the conversion result of request i is not stored in request storage unit 100.
  • “Register A” is converted to “Do not register data A”.
  • the relationship detection unit 102 calculates the similarity between the converted request i and the unconverted request j (similarity after conversion) as the converted similarity, A predetermined threshold value is compared (step A10). If the degree of similarity is greater than or equal to the threshold, the relevance detection unit 102 shifts the processing to step A11 of the contradiction detection unit 103. If the degree of similarity is less than the threshold value, the relationship detection unit 102 shifts the processing to step A12. If the degree of similarity is equal to or greater than the threshold, the relevance detection unit 102 detects that the request i and the request j are related.
  • the similarity calculation can be calculated using, for example, a Kolmogorov complexity estimation method.
  • the similarity s (i, j) between the text i and the text j is the size when the text i is compressed as C (i )
  • the size when the text j is compressed is C (j)
  • the specified compression algorithm is, for example, zip, gzip, etc.
  • a character string is encoded with a symbol (character) or a pair (matching length, matching position) with a previous partial character string.
  • the number of symbols appearing in a character string is obtained, and a shorter code is assigned to a larger number of symbols.
  • the similarity is a value from 0 to 1.
  • the predetermined threshold value may be a value such as 0.5, 0.45, or 0.4, for example.
  • the similarity can also be calculated using the number of words common to the two requests, the frequency of appearance of words, and the like.
  • What to use as a method of calculating the similarity may be specified by the user of the system through input via a keyboard or the like, or may be stored as a default in the system, or otherwise. May be specified.
  • the processing in this step will be described by taking two requests in FIG. 2 and two contradictory rules in FIG. 4 as an example.
  • the request 1 after conversion is the request 2 “data A. Registration is not done ". Therefore, the similarity between the converted request 1 and the non-converted request 2 is equal to or greater than a predetermined threshold.
  • the relevance detection unit 102 detects that there is relevance, and shifts the processing to step A11 of the contradiction detection unit 103.
  • the method for comparing the similarity after conversion with a predetermined threshold value has been described.
  • the relevance detection unit 102 may The threshold value may be estimated from a distribution of many similarities. Alternatively, the user of the system may determine the threshold while looking at the distribution of many similarities after conversion.
  • the contradiction detection unit 103 calculates the similarity (similarity before conversion) between the request i and the request j stored in the request storage unit 100, and the similarity after conversion calculated by the relevance detection unit 102 And the similarity before conversion are compared (step A11). If the degree of similarity after conversion is equal to or higher than the degree of similarity before conversion, the contradiction detection unit 103 proceeds to step A13.
  • the contradiction detection unit 103 moves the process to step A12 of the relevance detection unit 102.
  • FIG. 6 is an explanatory diagram illustrating an example of non-conflicting requests stored in the request storage unit 100.
  • the two requests in FIG. 6 and the two contradiction rules in FIG. 4 are assumed.
  • step A5 the request 1 “data B is read only” is the first expression of the contradiction rule 1 “ ⁇ sa variable noun>”. ”And“ read ”and the second expression of the contradiction rule 1 does not include“ ⁇ sa variable noun>. * Does not ”, the relevance detection unit 102 moves the process to the next step A6, and the contradiction rule Convert the second representation of 1 to “Read. Then, the relevance detection unit 102 shifts the processing to step A7, and the request 2 “data A is editable and data B is only read” does not include the second expression “read. Therefore, this step is not reached.
  • step A5 the request 1 “Data B is read only” includes the first expression “read only” of the contradiction rule 2, and the second of the contradiction rule 2 Since the expression “editable” is not included, the relationship detection unit 102 shifts the processing to the next step A6 and keeps the second expression of the contradiction rule 2 as “editable”. Then, the relationship detection unit 102 shifts the processing to the next step A7, and the request 2 “Data A is editable and data B is only read” includes the second expression “editable” of the contradiction rule 2. The process proceeds to the next step A8. Then, in step A8, the relevance detection unit 102 keeps the second expression “editable” in the contradiction rule 2 and proceeds to the next step A9.
  • step A9 the relevance detection unit 102 converts the request 1 “data B can only be read” into “data B can be edited”. Then, in the next step A10, the relevance detection unit 102 reads the converted request 1 “data B is editable” and the unconverted request 2 “data A is editable and data B is read only”. Calculate the similarity between. Since the request 1 after conversion and the request 2 not converted are similar to each other, they are equal to or greater than the threshold value, and if there is no step, they are detected as contradictions. However, when this step of the contradiction detection unit 103 is reached, the similarity between the request 1 before conversion and the request 2 not converted is calculated.
  • the converted request 1 “data B is editable” and the unconverted request 2 “data A is editable and data B is only read” are “data”, “is editable”, “Data B” and “.” Match.
  • step A5 the request 2 “data A is editable and data B is read only” is the first expression of the contradiction rule 1 “ ⁇ sa variable noun>”. Since “edit” or “read” is included and the second expression of the contradiction rule 1 does not include “ ⁇ sa variable noun>. * Does not”, the relationship detection unit 102 proceeds to the next step A6.
  • step A6 when the match in the previous step is “edit”, the relevance detection unit 102 converts the second expression “ ⁇ sa variable noun>. * Does not” in the contradiction rule 1 into “edit. * Does not”.
  • step A8 converts the second expression of the contradiction rule 1 to “do not edit” or “does not read”, and proceeds to the next step A7.
  • step A7 the request 1 does not include “edit. * Do not” or “read. * Do not”, which is the second expression of the contradiction rule 1, and therefore this step is not reached.
  • this step is not reached. In this way, this step of the contradiction detection unit 103 can not detect the two requests in FIG. 6 as contradiction.
  • the relationship detection unit 102 increments k (step A12). Then, the relationship detection unit 102 shifts the processing to step A3.
  • the contradiction detector 103 detects two requests as contradictions (step A13). The detected result may be output immediately via a display device or a printing device, or may be stored and output in response to a request from a user of the system, or otherwise. It may be output. Then, the contradiction detection unit 103 ends the process.
  • the relevance detection unit 102 changes i to 2 and j to 1 (step A14). Then, the process proceeds to step A2.
  • the reverse process in which the request 1 and the request 2 are replaced is started.
  • the case where one request includes one sub-variant noun has been described. However, when a plurality of sub-variable nouns are included in one request, there is a contradiction for each sub-variant noun.
  • the relevance detection unit and the contradiction detection unit are repeatedly examined in the same manner, and if there is even one contravariant noun that is inconsistent, it may be detected as a contradiction.
  • the inter-request conflict determination system includes a storage unit 21 that stores information and a calculation unit 22 that operates under program control.
  • the storage unit 21 includes a request storage unit 100, a division rule storage unit 200, a contradiction rule storage unit 101, a request information storage unit 201, and a pre-conversion rule storage unit 202.
  • the request storage unit 100 is the same as that in the first embodiment.
  • the division rule storage unit 200 stores a division rule for dividing the request into a condition part and a result part.
  • the division rule may be designated by the user of the system through a keyboard or the like, may be stored as a default in the system, or may be designated in other manners.
  • FIG. 8 is an explanatory diagram illustrating an example of a division rule stored in the division rule storage unit 200.
  • the first line is a column heading line, and from the second line, one division rule is shown for each line.
  • the number in the first column indicates the number indicating the division rule.
  • the division pattern in the second column indicates the pattern expression of the division rule.
  • division rule i the division rule with number i will be referred to as division rule i.
  • the contradiction rule storage unit 101 is the same as that of the first embodiment.
  • the request information storage unit 201 stores request information that is request information stored in the request storage unit 100.
  • FIG. 9 is an explanatory diagram illustrating an example of inconsistent requests stored in the request storage unit 100.
  • FIG. 10 is an explanatory diagram illustrating an example of request information stored in the request information storage unit 201.
  • the request information shown in FIG. 10 stores a condition part and a result part of each request.
  • the first row is a column heading row, and one request information is shown for each row from the second row.
  • the number in the first column is a number indicating request information.
  • the condition part in the second column indicates the condition part of the request, and the result part in the third column indicates the result part of the request.
  • the condition part after the conversion in the fourth column is the condition part after conversion based on the pre-rule described in the pre-conversion rule storage part 202, and the result part after the conversion in the fifth column is the pre-conversion rule storage part
  • the result part after having been converted based on the prior rule described in 202 is shown.
  • the request information with the number i is referred to as request information i.
  • the request information for the request i in the request storage unit 100 is the request information i in the request information storage unit 201.
  • the request information storage unit 201 is empty at the start of processing, and the request information is stored according to the processing of the present invention.
  • the pre-conversion rule storage unit 202 stores a pre-conversion rule for converting text before calculating the similarity.
  • the pre-conversion rule may be designated by the user of the system through a keyboard or the like, may be stored as a default in the system, or may be designated in other manners.
  • FIG. 11 is an explanatory diagram illustrating an example of a pre-conversion rule stored in the pre-conversion rule storage unit 202.
  • the first row is a column heading row, and one pre-conversion rule is shown for each row from the second row.
  • the number in the first column indicates the number of the pre-conversion rule.
  • the number of the contradiction rule in the second column indicates the number of the contradiction rule that is a premise for applying the pre-conversion rule.
  • the pre-conversion rule is composed of two expressions.
  • the first expression in the third column and the second expression in the fourth column indicate the expression before conversion and the expression after conversion of the pre-conversion rule, respectively.
  • the pre-conversion rule with the number m will be referred to as pre-conversion rule m.
  • the pre-conversion rule 1 since the contradiction rule number of the pre-conversion rule 1 is “1”, the pre-conversion rule 1 is applied when converting using the contradiction rule 1 of FIG. 4.
  • the contradiction rule 1 is matched with ⁇ sa variable noun>, and " ⁇ sa variable noun outside match>" is another sa variable noun different from the matched sa variable noun.
  • the pre-conversion rule is applied when converting using the contradiction rule 2 of FIG.
  • the second expression of the pre-conversion rule is empty (a character string having a length of 0) is described as an example here, the second expression of the pre-conversion rule may be other than empty.
  • the calculation unit 22 includes a request division unit 203, an association detection unit 204, and a contradiction detection unit 205.
  • the request division unit 203 Based on the division rule stored in the division rule storage unit 200, the request division unit 203 divides the request stored in the request storage unit 100 into a condition unit and a consequent unit, and the divided result is a request information storage unit. Store in 201. 8 and 9 will be described as an example.
  • the request dividing unit 203 responds to the request 1 “registered when the A button is pressed” in FIG. 9 in the case of the division pattern “ ⁇ (. *) ⁇ Tail unnecessary word>” (. *) $ ”In FIG. Does not match, and the division pattern “ ⁇ (. *) ⁇ Unnecessary word> when (.
  • the relevance detection unit 204 Based on the contradiction rule stored in the contradiction rule storage unit 101, the relevance detection unit 204 converts the request condition part and the consequent part stored in the request information storage unit 201, and converts the conversion result into the request information storage unit Store in 201. Then, based on the request information stored in the request information storage unit 201, the relationship between the two requests is detected.
  • the request extracted from the document is unified with the synonym as its representative word using a dictionary or the like, and the redundant expression is simplified as described in the request storage unit 100 of the first embodiment.
  • the pre-conversion here is pre-conversion performed for each contradiction rule to be applied.
  • the relevance detection unit 204 sets a character string that matches the first expression of the pre-conversion rule for the request information, and sets Convert to a string that matches the expression.
  • the case where the request information in FIG. 10 is converted based on the prior conversion rule in FIG. 11 will be described as an example.
  • the condition part “Press A button” of the request information 1 does not match the first expression of any pre-conversion rule in FIG.
  • the relevance detection unit 204 does not convert the condition part, and stores the condition part in the converted condition part of FIG.
  • the relevance detection part 204 deletes “registered”, as shown in FIG.
  • the result part after conversion is stored in the result part after conversion as “data A is deleted”.
  • the contradiction detection unit 205 detects a contradiction based on the similarity calculated by the relevance detection unit 204 and the similarity between the result information stored in the request information.
  • a request information consequent unit may be used instead of the request in the first embodiment.
  • the request division unit 203 divides the two requests stored in the request storage unit 100 into a condition unit and a consequent unit based on the division rules stored in the division rule storage unit 200 (step A15). Then, the request dividing unit 203 stores the condition part text and the result part text in the request information storage unit 201. Detailed processing of this step will be described later.
  • the association detection unit 204 initializes k indicating the number of the contradiction rule stored in the contradiction rule storage unit 101 to 1 (step A16).
  • the relevance detection unit 204 compares k with the number of contradictory rules K stored in the contradiction rule storage unit 101 (step A17).
  • the relevance detection unit 204 proceeds to step A18. If k is equal to or less than the number K of contradiction rules stored in the contradiction rule storage unit 101, the relevance detection unit 204 proceeds to step A18. If k is larger than K, the relationship detection unit 204 determines that the two requests are not contradictory, and ends the process. Here, if k is larger than K, the relationship detection unit 204 may output that there is no contradiction. The output may be immediately output via a display device or a printing device, or may be stored and output in response to a request from a user of the system, or output in any other manner. May be. Next, the relationship detection unit 204 converts the two requests based on the contradiction rule k and the pre-conversion rule stored in the pre-conversion rule storage unit 202 (step A18).
  • the relationship detection unit 204 calculates the similarity between the two request condition parts (step A19).
  • the similarity of the two request condition parts is set to a value higher than the threshold value of the next step. That is, if both of the two requests do not have a condition part, the relevance detection unit 204 determines that the condition part is similar in the next step. If one of the two requirement condition parts is empty, the similarity is approximately zero using the Kolmogorov complexity estimate. That is, when only one of the two requests has a condition part, the relevance detection part 204 determines that the condition part is not similar in the next step.
  • the relevance detection unit 204 compares the calculated similarity of the condition part with a threshold (step A20).
  • the threshold value may be designated by the user of the system through a keyboard or the like, may be stored in the system as a default, or may be designated in other manners. If the similarity is greater than or equal to the threshold value, the relevance detection unit 204 proceeds to the next step A21. If the similarity is less than the threshold value, the relationship detection unit 204 proceeds to step A23. That is, the relevance detection unit 204 checks whether there is a contradiction only when the condition units are similar. Next, the relevance detection unit 204 compares the similarity of the consequential unit obtained by converting one using the contradiction rule with a threshold value (step A21).
  • the threshold value may be designated by the user of the system through a keyboard or the like, may be stored in the system as a default, or may be designated in other manners. In this step, the threshold value may be the same value as in previous step A20, or another value may be designated.
  • the conversion using the contradiction rule is the same processing as in the first embodiment. If the similarity of the consequent part obtained by converting one of a certain contradiction rule is greater than or equal to the threshold value, the relevance detection unit 204 proceeds to the next step A22. If the similarity is less than the threshold value, the relationship detection unit 204 proceeds to step A23. In order to show the difference from the first embodiment, another example of conversion using a pre-conversion rule will be shown. FIG.
  • FIG. 12 is an explanatory diagram illustrating another example of the request stored in the request storage unit 100.
  • FIG. 13 is an explanatory diagram illustrating another example of request information stored in the request information storage unit 201.
  • the request information shown in FIG. 13 stores a condition part and a result part of each request.
  • the two requests are not contradictory.
  • the condition parts of the two requests are similar, and the consequent part “delete registered data A” of request information 1 matches “delete” which is a sub-noun, but does not match “delete. ,
  • the consequent part of the request information 2 “deletes data A but does not register” matches “delete. * Does not”.
  • the result information of the request information 1 is converted to “do not delete the registered data A” using the contradiction rule 1 in FIG. 4. And since the result part of the converted request information 1 is similar to the result part of the request information 2 that has not been converted, it is detected that there is a relevance.
  • the relevance detection unit 204 uses “deletion” as the ⁇ unchangeable noun> in the contradiction rule 1 in FIG. Since it is a non-deletive name other than “delete”, “result is deleted but not registered” in the result information 2 of the request information 2 is deleted, and the result information after conversion of the request information 1 in FIG.
  • the contradiction detection unit 205 refers to the request information storage unit 201, calculates the similarity between the consequent units before conversion using the contradiction rule after conversion using the prior conversion rule, The similarity after conversion calculated by the detection unit 204 is compared with the similarity before conversion in the contradiction rule calculated by the contradiction detection unit 205 (step A22). If the similarity after the conversion is equal to or higher than the similarity before the conversion in the contradiction rule, the contradiction detection unit 205 moves the process to the next step A24.
  • the contradiction detection unit 205 moves the process to the next step A23.
  • the relationship detection unit 204 increments k (step A23).
  • the relevance detection unit 204 proceeds to step A17.
  • the contradiction detection unit 205 detects two requests as contradiction (step A24).
  • the detection result may be output immediately via a display device or a printing device, or may be stored and output in response to a request from a user of the system, or output in any other manner. May be.
  • the contradiction detection unit 205 ends the process.
  • the operation of the request dividing unit 203 for the request i of the second embodiment will be described in detail with reference to the flowchart of FIG.
  • the request division unit 203 initializes the number m indicating the division rule to 1 (step A25).
  • the request division unit 203 compares m with the number of division rules M (step A26). If m is equal to or smaller than M, the request dividing unit 203 proceeds to the next step A27. If m is larger than M, the request dividing unit 203 shifts the processing to step A30.
  • the request dividing unit 203 checks whether the request i matches the division pattern of the division rule m (step A27). If there is a match, the request dividing unit 203 proceeds to step A29. If not matched, the request dividing unit 203 shifts the processing to the next step A28.
  • the request dividing unit 203 increments m indicating the split rule number (step A28). Then, the request dividing unit 203 shifts the processing to Step A26.
  • the request dividing unit 203 uses the division rule 1 to divide the request into a condition part and a result part (step A29). Then, the request dividing unit 203 ends the process. For example, the request 1 “Registered when the A button is pressed” in FIG. 9 becomes “Registered when the A button was pressed” in the condition part and “Registered” in the result part in FIG.
  • the request dividing unit 203 leaves the condition part of the request i empty and sets the consequent part to the request i itself (step A30). Then, the request dividing unit 203 ends the process.
  • the request division unit divides the request into a condition unit and a consequent unit, and the relevance detection unit detects inconsistencies only between requests with similar condition units.
  • the request is not erroneously detected as a contradiction, and the false detection of a contradiction is reduced.
  • the relevance detection unit pre-converts the request, erroneous detection of contradiction is reduced.
  • the method described in the present invention is a program that can be executed by a computer, such as a floppy (registered trademark) disk, a magnetic disk such as a hard disk, an optical disk such as a CD-ROM or DVD, a magneto-optical disk (MO), a semiconductor. It can also be stored and distributed in a storage medium such as a memory.
  • the storage medium can store a program and can be read by a computer
  • the storage format may be any form.
  • an operating system running on the computer middleware such as database management software, network software, or the like may execute a part of each process based on an instruction of a program installed in the computer from the storage medium.
  • the storage medium in the present invention is not limited to a medium independent of a computer, but also includes a storage medium in which a program transmitted via a LAN, the Internet, or the like is downloaded and stored or temporarily stored.
  • the number of storage media is not limited to one, and the case where the processing in the above embodiment is executed from a plurality of media is also included in the storage media in the present invention, and the media configuration may be any configuration.
  • the computer executes each process based on a program stored in a storage medium, and may have any configuration such as a device including a personal computer or a system in which a plurality of devices are connected to a network.
  • the computer in the present invention is not limited to a personal computer, but includes an arithmetic processing unit included in an information processing device, and is a device or device capable of realizing the functions of the present invention by a program.
  • the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage.
  • Various inventions can be formed by appropriately combining a plurality of components.
  • the contradiction rule is composed of a plurality of contradiction expressions indicating states that do not hold simultaneously, and the conversion of the request of the relevance detection unit is a character string that matches one contradiction expression of the contradiction rule in the one request Is converted to a character string that matches another contradiction expression of the contradiction rule.
  • the relevance detection unit detects that two requests are related if the similarity calculated by the relevance detection unit is equal to or greater than a predetermined threshold, and the contradiction detection unit detects the relevance detection unit. If the similarity detected by the relevance detection unit is higher than the similarity between the requests before the original conversion, it is detected as a contradiction.
  • the system for determining inconsistencies between requests according to the above supplementary note 2. (Appendix 4) The relevance detection unit and the contradiction detection unit calculate similarity between two texts based on a Kolmogorov complexity estimation method. Request contradiction determination system described in 1.
  • the relevance detection unit and the contradiction detection unit make two requests based on one contradiction rule used for conversion in the relevance detection unit and a predetermined pre-conversion rule. 5.
  • the pre-conversion rule is the pre-conversion rule 6.
  • a request division unit that divides a request expressed in text into a condition unit and a result unit based on a predetermined division rule, and the relevance detection unit is a degree of similarity between the texts of the two requirement units And the relevance between the texts of the result parts of the two requests, the relevance of the two requests is detected, and the contradiction detection unit detects the detection result of the relevance detection unit and the relevance detection unit Detecting whether or not two requests are contradictory based on the similarity between the texts of the result part calculated in step 1 and the similarity between the texts of the result part of the original request before conversion
  • the system for determining inconsistencies between requests according to any one of appendix 1 to appendix 6.
  • the method for determining a contradiction between requests according to the above supplementary note 8, wherein the character string is converted into a character string that matches another contradiction expression of the contradiction rule. (Appendix 10)
  • the degree of similarity calculated by the relevance detection unit is equal to or greater than a predetermined threshold, two requests are detected as related, and the contradiction detection step includes the relevance detection unit.
  • the above supplementary note 8 or 8 is detected as a contradiction if the similarity is detected by the relevance detection unit and the similarity calculated by the relevance detection unit is higher than the similarity between the requests before the original conversion.
  • the relevance detection step and the inconsistency detection step calculate similarity between two texts based on a Kolmogorov complexity estimation method, wherein any one of the above supplementary notes 8 to 10 is characterized.
  • the method for judging contradictions between requests described in 1. (Appendix 12)
  • two requests are made based on one contradiction rule used for conversion in the relevance detection unit and a predetermined pre-conversion rule before calculating the similarity. 12.
  • the pre-conversion rule is the pre-conversion rule 13.
  • a request dividing unit that divides a request expressed in text into a condition step and a consequent step based on a predetermined division rule, and the relevance detection step includes a similarity between the texts of the condition parts of two requests And relevance between the two requests based on the similarity between the texts of the two request consequences, and the contradiction detection step includes the detection result of the relevance detection unit and the relevance detection unit. Detecting whether or not two requests are contradictory based on the similarity between the texts of the result part calculated in step 1 and the similarity between the texts of the result part of the original request before conversion 14. The method for determining a contradiction between requests according to any one of appendix 8 to appendix 13.
  • the contradiction rule is composed of a plurality of contradiction expressions indicating a plurality of inconsistent states, and the conversion of the request of the relevance detection unit is a character string that matches one contradiction expression of the contradiction rule in the one request Is converted into a character string that matches another contradiction expression of the contradiction rule.
  • the relevance detection process and the contradiction detection process are based on one contradiction rule used for conversion in the relevance detection unit and a predetermined pre-conversion rule before calculating the similarity.
  • the pre-conversion rule is the pre-conversion rule 20.
  • Appendix 21 A request dividing unit that divides a request expressed in text into a condition process and a consequent process based on a predetermined division rule, and the relevance detection process is a similarity between the texts of the condition parts of two requests Based on the similarity between the texts of the result parts of the two requests, the relevance of the two requests is detected, and the contradiction detection process includes the detection result of the relevance detection unit, the relevance detection unit Detecting whether or not two requests are contradictory based on the similarity between the texts of the result part calculated in step 1 and the similarity between the texts of the result part of the original request before conversion
  • the inconsistency determination program between requests according to any one of appendix 15 to appendix 20.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Stored Programmes (AREA)

Abstract

システム・ソフトウェア開発の仕様書における要求・仕様の矛盾を、事前準備の労力をかけずに判定する。テキストで表現された2つの要求に対し、予め定めた矛盾ルールに基づいて一方のテキストを変換した要求ともう一方の変換していない要求との類似度とに基づいて、2つの要求間の関連性を検出する関連性検出部と、前記関連性検出部の検出結果と、前記関連性検出部で計算した類似度と、元の変換前の要求間の類似度とに基づいて、2つの要求が矛盾か否かを検出する矛盾検出部と、を備えることを特徴とする。

Description

要求間矛盾判定システム、要求間矛盾判定方法、および、要求間矛盾判定プログラム
 本発明は、システム・ソフトウェア開発の仕様書において、要求間の矛盾を判定する要求間矛盾判定システム、方法およびプログラムに関する。
 システム・ソフトウェア開発における仕様書は、人手でレビューして矛盾が無いことを確認していた。しかし、量が多く重複した記載のある文書の検査には、コスト(期間と労力)がかかり、また、人手では見逃す場合があるという問題があった。
 特許文献1には、仕様書の矛盾を検出する方法が開示されている。特許文献1では、ユースケースに基づいて、仕様書情報の正当性に関する条件(事前条件、事後条件、不変条件)を設定し、イベントフローの中から任意の操作を抽出し、抽出された操作に関する条件(事前条件、事後条件)を設定し、操作の条件を用いて、設定された条件が成立するか否かを判定する。しかし、特許文献1では、仕様書がユースケースの条件として厳密に設定されていることが前提であり、分析前の準備の労力が仕様書ごとにかかるという問題があった。
 非特許文献1には、要求の対立を見つける方法が開示されている。非特許文献1では、要求を手動で属性に分類し、予め決められた属性間で、依存関係のある要求間に対立の関係があると推定する。しかし、非特許文献1では、要求間の依存関係または要求と実行コードとの関係が必要であり、それらの関係を事前準備する必要があるため、分析前の準備の労力が仕様書ごとにかかるという問題があった。
特許第4351186号公報
A.エジェド、P.グランバッカー(A. Egyed、 P.Grunbacher)著、「アイデンティファイング リクワイメント コンフリクト アンド コオペレーション(Identifying Conflicts and Co−operation)」、2004年発行の論文誌IEEEソフトウェア(IEEE Software)、21巻6号50−58頁
 本発明は、上記の事情を鑑みてなされるものであって、システム・ソフトウェア開発の仕様書における要求・仕様間の矛盾判定システム、方法およびプログラムを提供する。
 本発明の要求間矛盾判定システムは、システム・ソフトウェア開発の仕様書における要求・仕様の矛盾を、事前準備の労力をかけずに判定することを目的とする。
 本発明の要求間矛盾判定システムは、テキストで表現された2つの要求に対し、予め定めた矛盾ルールに基づいて一方のテキストを変換した要求ともう一方の変換していない要求との類似度とに基づいて、2つの要求間の関連性を検出する関連性検出部と、前記関連性検出部の検出結果と、前記関連性検出部で計算した類似度と、元の変換前の要求間の類似度とに基づいて、2つの要求が矛盾か否かを検出する矛盾検出部と、を備えることを特徴とする。
 本発明によれば、システム・ソフトウェア開発の仕様書における要求・仕様の矛盾を、事前準備の労力をかけずに判定することができる。なお、本発明では矛盾ルールを準備するが、矛盾ルールは仕様書ごとに準備する必要はなくシステム・ソフトウェア開発において共通化することができる。そのため、本発明では、仕様書ごとの事前準備の労力はかからない。
 図1は、本発明の第1の実施形態による要求間矛盾判定システムの構成例を示すブロック図である。
 図2は、要求記憶部100に記憶された矛盾した要求の例を示す説明図である。
 図3は、要求記憶部100に記憶された矛盾した要求の別の例を示す説明図である。
 図4は、矛盾ルール記憶部101に記憶された矛盾ルールの例を示す説明図である。
 図5は、本発明の第1の実施形態による要求間矛盾判定システムの処理経過の例を示すフローチャートである。
 図6は、要求記憶部100に記憶された矛盾していない要求の例を示す説明図である。
 図7は、本発明の第2の実施形態による要求間矛盾判定システムの構成例を示すブロック図である。
 図8は、分割ルール記憶部200に記憶された分割ルールの例を示す説明図である。
 図9は、要求記憶部100に記憶された矛盾した要求の例を示す説明図である。
 図10は、要求情報記憶部201に記憶された要求情報の例を示す説明図である。
 図11は、事前変換ルール記憶部202に記憶された事前変換ルールの例を示す説明図である。
 図12は、要求記憶部100に記憶された別の要求の例を示す説明図である。
 図13は、要求情報記憶部201に記憶された別の要求情報の例を示す説明図である。
 図14は、本発明の第2の実施形態による要求間矛盾判定システムの処理経過の例を示すフローチャートである。
 図15は、本発明の第2の実施形態による要求間矛盾判定システムの要求iに対する要求分割部203の処理経過の例を示すフローチャートである。
(第1の実施形態)
 次に、本発明の第1の実施形態による要求間矛盾判定システムについて図面を参照して詳細に説明する。第1の実施形態に係る要求間矛盾判定システムは、2つの要求に対し、矛盾関係にある部分の矛盾を解消したときに2つの要求に関連性があるかを調べ、関連性があるならば、実際に矛盾であるかを検出する。矛盾関係にある部分の矛盾の解消は、矛盾関係にある複数の矛盾表現である矛盾ルールを用いて、一方の要求を変換することで行う。実際に矛盾であるかの検出は、矛盾関係のままの元の要求間の類似度と、矛盾を解消した要求間の類似度とを比較することで行う。なお、ここで、矛盾とは、ある事象が複数の状態となる可能性があり、同時に異なる状態にならない場合に、一方でその事象がある状態であるといい、もう一方で、その事象が別の状態であるということで、論理的に合わないことである。たとえば、ある事象が肯定か否定かという2つの状態のいずれかである場合に、ある事象を一方で肯定し、もう一方で否定すると、矛盾である。また、たとえば、ファイルAがread onlyという状態か編集可能という状態かのいずれかの状態である場合に、一方でファイルAがread onlyであるといい、もう一方で、ファイルAが編集可能であるということは矛盾である。
 図1を参照すると、本実施形態に係る要求間矛盾判定システムは、情報を記憶する記憶部11と、プログラム制御により動作する計算部12とから構成されている。
 記憶部11は、要求記憶部100と、矛盾ルール記憶部101とを備える。
 要求記憶部100は、2つの要求を記憶する。2つの要求は、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。要求は、矛盾判定の対象とするドキュメントから抽出する。ドキュメントは、たとえば、提案依頼書(RFP: Request For Proposal)であり、これは、発注元である官公庁や企業が情報システムやITサービスなどを調達する際に、発注先となるITベンダに対して提案を要請するためのドキュメントである。提案依頼書は、調達依頼書、入札依頼書、提案要請書、提案要求書、提案要望書、提案募集書、見積依頼書、提案書提出要請書、入札説明書、委託仕様書などとも呼ばれる。また、ドキュメントは、たとえば、提案書(Proposal)であり、これは、ITベンダが具体的な提案事項を記載した文書である。提案書は、企画書、企画提案書などとも呼ばれる。また、ドキュメントは、たとえば、システムやサービスが満たすべき事項である要件事項を記載した仕様書である。仕様書は、要求仕様書、要求定義書、要件定義書、機能仕様書、設計書、契約書などとも呼ばれる。ここで、本発明の要求は、これら仕様書の仕様のことも含む。これらのドキュメントは、本文以外に表も含む。したがって、テキストで表現される要求は、主語や述語、目的語の備わった文だけでなく、用語の羅列のような文の切れ端も含まれる。図2は、要求記憶部100に記憶された矛盾した要求の例を示す説明図である。図3は、要求記憶部100に記憶された矛盾した要求の別の例を示す説明図である。これらの図で、1行目は列の見出し行であり、2行目からは1行ごとに1件の要求を示す。1列目の番号は、要求を示す番号である。2列目の要求テキストは、要求の内容を示すテキストである。以降では、番号がiの要求を要求iと呼ぶことにする。ここで、図3の要求2は、ドキュメントの表から抽出した例である。なお、ここでは、要求記憶部100の2つの要求に対して、矛盾か否かを判定する処理について説明するが、要求記憶部100に3つ以上の要求を記憶しておき、記憶された要求のうちの2つの要求ごとに矛盾か否かを判定してもよい。また、ドキュメントから抽出した要求は、辞書などを用いて同義語をその代表語に統一し、冗長表現を簡略化しておいてもよい。たとえば、要求に「read only」、「読み込みのみ」、「読込みのみ」、「読込のみ」などと記述されているとき、これらの用語を同義語辞書を用いて「読込のみ」という用語に統一してから要求記憶部100に記憶してもよい。同義語辞書は、手動で作成してもよいし、共通的な同義語辞書としては、たとえば、WordNetなどがある。同義語辞書を用いた用語の統一は、手動で行ってもよいが、コンピュータなどを用いた自動変換としてもよい。
 矛盾ルール記憶部101は、矛盾を判定するルールである矛盾ルールを記憶する。矛盾ルールとは、複数の同時に成立しない状態を示す複数の矛盾表現から構成され、そのそれぞれの矛盾表現は、文字列、あるいは、1つ以上の文字列を1つの文字列で表現したもの(正規表現)である。矛盾ルールは、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。図4は、矛盾ルール記憶部101に記憶された矛盾ルールの例を示す説明図である。図で、1行目は列の見出し行であり、2行目からは1行ごとに1件の矛盾ルールを示す。1列目の番号は、矛盾ルールを示す番号である。2列目目の矛盾ルールの第一表現と3列目の矛盾ルールの第二表現とは、それぞれ、矛盾表現である。以降では、番号がkの矛盾ルールを矛盾ルールkと呼ぶことにする。矛盾ルールの第一表現と第二表現において、<サ変名詞>は、任意のサ変名詞を示す表現であり、”.*”は、任意の文字列を示す表現である。なお、ここでは、第二表現の<サ変名詞>にマッチする文字列は、第一表現の<サ変名詞>にマッチする文字列と同一と指定したとする。また、ここでは、矛盾ルール記憶部101に記憶された矛盾ルールが2つの矛盾表現を持つ場合を例として説明するが、3つ以上の矛盾表現があってもよい。
 計算部12は、関連性検出部102と、矛盾検出部103とを備える。
 関連性検出部102は、矛盾ルール記憶部101に記憶された矛盾ルールに基づいて、要求記憶部100に記憶された2つの要求のうちの一方のテキストを変換し、その変換後のテキストと残るもう一方の要求テキストとの間の類似度に基づいて、2つの要求の関連性を検出する。矛盾ルールに基づいて要求テキストを変換するとは、たとえば、その要求に含まれる、矛盾ルールの2つの矛盾表現のうちの一方の矛盾表現にマッチする文字列を、矛盾ルールのもう一方の矛盾表現にマッチする文字列に変換することである。矛盾表現にマッチする文字列とは、たとえば、図4の矛盾ルール1の第一表現である矛盾表現「<サ変名詞>」に対し、この第一表現にマッチする「登録」、「削除」などの文字列のことである。ここで、関連性検出部102は、変換後の文字列が「登録.*しない」のように任意の文字列を示す表現「.*」を含む場合は、その任意の文字列を示す表現「.*」を削除して(あるいは、任意の文字列が長さ0の文字列「」にマッチすると考えて)、「登録しない」を変換後の文字列とすることとする。たとえば、図2の要求1を図4の矛盾ルール1に基づいて変換する場合、関連性検出部102は、要求1のサ変名詞「登録」を「登録しない」に変換する。したがって、関連性検出部102は、要求1「データAを登録。」を、「データAを登録しない。」に変換する。なお、「登録」がサ変名詞であることは、たとえば、形態素解析エンジンを用いて検出することができる。形態素解析エンジンは、たとえば、MeCabやChaSenなどがある。テキストを入力すると、MeCabやChaSenは、テキストを単語ごとに区切り、単語がサ変名詞であれば「名詞,サ変接続」などと出力する。または、MeCabやChaSenなどの形態素エンジンを用いなくても、記憶部に、サ変名詞を示す単語を並べて記憶しておき、関連性検出部102が、記憶部を検索してサ変名詞があるかどうかを調べてもよい。関連性検出部102は、変換した要求iと変換していない要求jとの間の類似度を、たとえば、コルモゴロフ複雑性の概算に基づいて概算することができる。関連性検出部102は、2つの要求に矛盾があると仮定し、一方の要求のテキストを変換することでその矛盾を解消したときに、2つの要求が整合するとみなせるだけの類似度があるかを調べる。自然言語テキスト間に矛盾があるかは、たとえば、構文解析の技術を用いて主語、述語、目的語などが一致するかを調べて、一致するときに、肯定と否定表現であるかを調べることも考えられる。しかし、仕様書で、「ユーザが登録ボタンを押下する。」と「登録ボタンへの押下がユーザにより行われる。」とが同じ意味となることを機械的に解釈するためには、同じ意味を示すさまざまな構文情報を事前に準備しておく必要がある。また、仕様書は、「登録ボタンを押下する。」、「画面に表示する。」など主語を省略する文がある。その理由は、仕様書という限定された場合においては、「登録ボタンを押下する。」の主語は「ユーザ」、「画面に表示する。」の主語は「システム」だと人間にとっては容易に解釈できるためである。主語が同じであることを機械的に解釈するためには、「押下」の主語は「ユーザ」であるなどの知識を事前に準備しておく必要がある。しかし、仕様書は業界・業種・お客様特有の知識を用いるため、事前にすべてを準備することは現実的に不可能である。さらに、仕様書からの要求に、図などから抽出した文の切れ端も含まれる場合、文の切れ端の解釈は一意とは限らないため、すべての解釈を事前に準備することはほぼ不可能である。そのため、本発明では類似度を用いて整合性を判定する。
 矛盾検出部103は、関連性検出部102で関連性ありと検出された2つの要求に対し、関連性検出部102で計算された変換後の類似度と、要求記憶部100に記憶された要求間の類似度とに基づいて、矛盾を検出する。検出した結果は、すぐにディスプレイ装置や印刷装置などを介して出力してもよいし、記憶しておいてシステムのユーザからのリクエストなどに応じて出力してもよいし、それ以外の様態で出力してもよい。なお、関連性検出部102は、矛盾する文字列がある場合に矛盾があると仮定して矛盾を解消したときに整合するか否かを調べたが、矛盾する文字列はあっても矛盾ではない場合がある。矛盾検出部103は、矛盾を解消した方が矛盾を解消しない場合よりも整合するとみなせるかを類似度で調べている。なお、矛盾ルールに3つ以上の矛盾表現がある場合には、2つずつの矛盾表現の組合せと考えて、本発明を適用してもよい。あるいは、矛盾ルールが3つ以上の矛盾表現を持つ場合、一方の要求が矛盾ルールの矛盾表現のうち1つの矛盾表現のみとマッチし、もう一方の要求が、矛盾ルールの別の1つの矛盾表現のみとマッチする場合のみを対象とするような設定としてもよい。3つ以上の矛盾表現がある場合の適用方法をどうするかは、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。
 次に、図5のフローチャートを参照して、本実施の形態1の全体の動作について詳細に説明する。
 まず、関連性検出部102は、要求記憶部100に記憶された要求のうち、第一の要求の番号を示すiを1に、第二の要求の番号を示すjを2に初期化する(ステップA1)。
 次に、関連性検出部102は、矛盾ルール記憶部101に記憶された矛盾ルールの番号を示すkを1に初期化する(ステップA2)。
 次に、関連性検出部102は、kと矛盾ルール記憶部101に記憶された矛盾ルール数Kとを比較する(ステップA3)。kが矛盾ルール記憶部101に記憶された矛盾ルール数K以下ならば、関連性検出部102は、ステップA5に処理を移行する。kがKより大きいならば、関連性検出部102は、ステップA4に処理を移行する。
 関連性検出部102は、iと1とを比較する(ステップA4)。iと1とが等しければ、関連性検出部102は、ステップA14に処理を移行する。iが1と等しくなければ、関連性検出部102は、動作を終了する。ここで、iが1と等しくない場合には、関連性検出部102は、矛盾が検出されなかったことを出力してもよい。出力は、すぐにディスプレイ装置や印刷装置などを介して出力してもよいし、記憶しておいてシステムのユーザからのリクエストなどに応じて出力してもよいし、それ以外の様態で出力してもよい。
 関連性検出部102は、要求記憶部100に記憶された要求iが矛盾ルール記憶部101に記憶された矛盾ルールkの第一表現を含むかを調べる(ステップA5)。ここで、要求iが矛盾ルールkの第一表現のみを含むとは、要求iのテキストが矛盾ルールkの第一表現を含み、第二表現を含まないことである。要求iは矛盾ルールkの第一表現のみを含むならば、関連性検出部102は、次のステップA6に処理を移行する。そうでないならば、関連性検出部102は、ステップA12に処理を移行する。図2の2件の要求と図4の2件の矛盾ルールを例として説明する。i=1、j=2、k=1のとき、要求1「データAを登録。」は、矛盾ルール1の第一表現「<サ変名詞>」として「登録」を含み、かつ、矛盾ルール1の第二表現「<サ変名詞>.*しない」を含まないため、関連性検出部102は、次のステップA6に処理を移行する。次に、2件の要求が図2の代わりに図3の場合を例として説明する。i=1、j=2、k=1のときは、要求1「データBは編集可能。」は矛盾ルール1の第一表現「<サ変名詞>」として「編集」を含み、かつ、矛盾ルール1の第二表現「<サ変名詞>.*しない」を含まないため、関連性検出部102は、次のステップA6に処理を移行する。i=1、j=2、k=2のときは、要求1「データBは編集可能。」は矛盾ルール2の第一表現「読込のみ」を含まないため、関連性検出部102は、ステップA12に処理を移行する。i=2、j=1、k=1のときは、要求2「Bデータ。読込のみ。」は矛盾ルール1の第一表現「<サ変名詞>」として「読込」を含み、かつ、矛盾ルール1の第二表現「<サ変名詞>.*しない」を含まないため、関連性検出部102は、次のステップA6に処理を移行する。i=2、j=1、k=2のときは、要求2「Bデータ。読込のみ。」は矛盾ルール2の第一表現「読込のみ」を含み、かつ、矛盾ルール2の第二表現「編集可能」を含まないため、関連性検出部102は、次のステップA6に処理を移行する。
 次に、関連性検出部102は、矛盾ルール記憶部101に記憶された矛盾ルールkの第二表現のうちで、複数の文字列にマッチする表現を、前のステップでマッチした第一表現の文字列として、変換する(ステップA6)。なお、ここで、第二表現が1つの文字列の場合は、本ステップは何もしない。また、変換した場合でも、矛盾ルール記憶部101へは変換した矛盾ルールを記憶しない。図2の2件の要求と図4の2件の矛盾ルールを例として説明する。i=1、j=2、k=1のときに本ステップに到達し、関連性検出部102は、矛盾ルール1の第二表現「<サ変名詞>.*しない」に対し、「<サ変名詞>」を、前のステップで要求1が矛盾ルール1の第一表現「<サ変名詞>」として「登録」を含んでいたことから、「登録」に変換する。したがって、関連性検出部102は、矛盾ルール1の第二表現「<サ変名詞>.*しない」を「登録.*しない」に変換する。次に、2件の要求が図2の代わりに図3の場合を例として説明する。i=1、j=2、k=1のときに本ステップに到達し、関連性検出部102は、矛盾ルール1の第二表現「<サ変名詞>.*しない」を「編集.*しない」に変換する。i=2、j=1、k=1のときにも本ステップに到達し、関連性検出部102は、矛盾ルール1の第二表現「<サ変名詞>.*しない」を「読込.*しない」に変換する。i=2、j=1、k=2のときにも本ステップに到達し、関連性検出部102は、矛盾ルール2の第二表現「編集可能」を変換せずそのまま「編集可能」とする。
 次に、関連性検出部102は、要求記憶部100に記憶された要求jが矛盾ルールkの第二表現を含むかを調べる(ステップA7)。ここで、矛盾ルールkの第二表現が前のステップで変換された場合は、変換された第二表現を用いる。要求jが矛盾ルールkの第二表現を含むならば、関連性検出部102は、次のステップA8に処理を移行する。含まないならば、関連性検出部102は、ステップA12に処理を移行する。たとえば、図2の2件の要求と図4の2件の矛盾ルールの場合、i=1、j=2、k=1のときに本ステップに到達し、要求2「データAの登録は、これをしない。」は矛盾ルール1の第二表現「登録.*しない」を含むため、関連性検出部102は、次のステップA8に処理を移行する。次に2件の要求が図2の代わりに図3の場合を例として説明する。i=1、j=2、k=1のときに本ステップに到達し、要求2「Bデータ。読込のみ。」は矛盾ルール1の第二表現「編集.*しない」を含まないため、関連性検出部102は、ステップA12に処理を移行する。i=2、j=1、k=1のときに本ステップに到達し、要求1「データBは編集可能。」が矛盾ルール1の第二表現「読込.*しない」を含まないため、関連性検出部102は、ステップA12に処理を移行する。i=2、j=1、k=2のときに本ステップに到達し、要求1「データBは編集可能。」は矛盾ルール2の第二表現「編集可能」を含むため、関連性検出部102は、次のステップA8に処理を移行する。
 次に、関連性検出部102は、矛盾ルールkの第二表現を変換用に変換する(ステップA8)。ここで、関連性検出部102は、ステップA6で変換した矛盾ルールkの第二表現のうちで、複数の文字列にマッチする表現を、最も短い1つの文字列に変換する。たとえば、関連性検出部102は、「登録.*しない」を「登録しない」に変換し、「編集.*しない」を「編集しない」に変換し、「読込.*しない」を「読込しない」に変換する。なお、ここで、関連性検出部102は、矛盾ルール記憶部101の矛盾ルールkを書き換えない。
 次に、関連性検出部102は、要求記憶部100に記憶された要求iを前のステップA8で変換された矛盾ルールkを用いて変換する(ステップA9)。要求を変換するとは、要求iが含む矛盾ルールkの第一表現を、矛盾ルールkの第二表現に変換することである。なお、ここで、関連性検出部102は、要求記憶部100は書き換えないものとする。すなわち、要求iの変換結果は、要求記憶部100には記憶しないものとする。図2の2件の要求と図4の2件の矛盾ルールの場合、i=1、j=2、k=1のときに本ステップに到達し、関連性検出部102は、要求1「データAを登録。」を、「データAを登録しない。」に変換する。図2の代わりに図3の場合、i=2、j=1、k=2のときに本ステップに到達し、関連性検出部102は、要求1「Bデータ。読込のみ。」を「Bデータ。編集可能。」に変換する。
 次に、関連性検出部102は、変換後の類似度として、変換した要求iと変換していない要求jと間の類似度(変換後の類似度)を計算し、計算した類似度と、予め定めた閾値とを比較する(ステップA10)。類似度が閾値以上ならば、関連性検出部102は、矛盾検出部103のステップA11に処理を移行する。類似度が閾値未満ならば、関連性検出部102は、ステップA12に処理を移行する。また、類似度が閾値以上の場合は、関連性検出部102は、要求iと要求jを関連性ありと検出したこととする。類似度の計算は、たとえば、コルモゴロフ複雑性の概算法を用いて計算することができる。コルモゴロフ複雑性の概算は、たとえば、テキストを圧縮するアルゴリズムを予め定めると、テキストiとテキストjとの間の類似度s(i,j)は、テキストiを圧縮した場合のサイズをC(i)、テキストjを圧縮した場合のサイズをC(j)、テキストiとテキストjとを連結させた新たなテキストを圧縮した場合のサイズをC(ij)とすると、たとえば、d(i,j)=1−C(ij)/{C(i)+C(j)}あるいはd(i,j)=1−[C(ij)−min{C(i),C(j)}]/max{C(i),C(j)}に示す数式によって計算することができる。指定される圧縮アルゴリズムは、たとえば、gip、gzipなどである。圧縮アルゴリズムは、たとえば、文字列に対し、文字である記号あるいは以前の部分文字列との(一致長、一致位置)のペアで符号化する。符号化では、たとえば、文字列に出現する記号の個数を求め、個数の多い記号ほど短い符号を割り当てる。類似度の計算にコルモゴロフ複雑性の概算を用いる場合、類似度は、0から1までの値となる。その場合は、予め定めた閾値は、たとえば、0.5、0.45または0.4などの値を用いればよい。また、類似度の計算は、2つの要求に共通する単語数や単語の出現頻度などを用いて計算することもできる。類似度の計算方法として何を用いるかは、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。本ステップの処理について、図2の2件の要求と図4の2件の矛盾ルールを例として説明する。i=1、j=2、k=1の場合、前述したように、変換後の要求1は、「データAを登録しない。」となり、この変換後の要求1は、要求2「データAの登録は、これをしない。」と類似している。そのため、変換後の要求1と変換していない要求2との間の類似度は、予め定めた閾値以上となる。したがって、関連性検出部102は、関連性ありと検出し、矛盾検出部103のステップA11に処理を移行する。また、図2の代わりに図3で、i=2、j=1、k=2の場合には、変換後の要求2「Bデータ。編集可能。」と変換していない要求1「データBは編集可能。」は類似している。そのため、類似度は閾値以上となり、関連性検出部102は、関連性ありと検出し、矛盾検出部103のステップA11に処理を移行する。なお、ここでは、変換後の類似度と予め定めた閾値とを比較する方法について説明したが、要求記憶部100に多くの要求が記憶されている場合、関連性検出部102は、変換後の多くの類似度の分布などから、閾値を推定してもよい。または、変換後の多くの類似度の分布を見ながら、システムのユーザが閾値を決定してもよい。
 次に、矛盾検出部103は、要求記憶部100に記憶された要求iと要求jとの類似度(変換前の類似度)を計算し、関連性検出部102で計算した変換後の類似度と変換前の類似度とを比較する(ステップA11)。変換後の類似度が変換前の類似度以上ならば、矛盾検出部103は、ステップA13に処理を移行する。変換後の類似度が変換前の類似度未満ならば、矛盾検出部103は、関連性検出部102のステップA12に処理を移行する。たとえば、図2と図4で、i=1、j=2、k=1の場合、変換した要求1「データAを登録しない。」と変換していない要求2「データAの登録は、これをしない。」との間の類似度は高く、変換していない要求1「データAを登録。」と変換していない要求2「データAの登録は、これをしない。」との間の類似度は低いため、矛盾検出部103は、ステップA13に処理を移行する。図3と図4で、i=2、j=1、k=2の場合、変換した要求2「Bデータ。編集可能。」と変換していない要求1「データBは編集可能。」との類似度は、変換していない要求2「Bデータ。読込のみ。」と変換していない要求1との類似度以上になるため、矛盾検出部103は、ステップA13に処理を移行する。次に、関連性検出部102だけでなく矛盾検出部103が必要となる例を示す。図6は、要求記憶部100に記憶された矛盾していない要求の例を示す説明図である。図6の2件の要求と図4の2件の矛盾ルールとする。図6の2件の要求はi=1、j=2、k=1のときは、ステップA5で、要求1「データBは読込のみ。」が矛盾ルール1の第一表現「<サ変名詞>」として「読込」を含み、かつ、矛盾ルール1の第二表現「<サ変名詞>.*しない」を含まないため、関連性検出部102は、次のステップA6に処理を移行し、矛盾ルール1の第二表現を「読込.*しない」に変換する。そして、関連性検出部102は、ステップA7に処理を移行し、要求2「データAは編集可能でデータBは読込のみ。」は矛盾ルール1の第二表現「読込.*しない」を含まないため、本ステップに到達しない。i=1、j=2、k=2のときは、ステップA5で、要求1「データBは読込のみ。」が矛盾ルール2の第一表現「読込のみ」を含み、矛盾ルール2の第二表現「編集可能」を含まないため、関連性検出部102は、次のステップA6に処理を移行し、矛盾ルール2の第二表現を「編集可能」のままとする。そして、関連性検出部102は、次のステップA7に処理を移行し、要求2「データAは編集可能でデータBは読込のみ。」が矛盾ルール2の第二表現「編集可能」を含むため、次のステップA8に移行する。そして、関連性検出部102は、ステップA8では、矛盾ルール2に第二表現「編集可能」のままとし、次のステップA9に処理を移行する。そして、関連性検出部102は、ステップA9で、要求1「データBは読込のみ。」を「データBは編集可能。」に変換する。そして、関連性検出部102は、次のステップA10で、変換後の要求1「データBは編集可能。」と変換していない要求2「データAは編集可能でデータBは読込のみ。」との間の類似度を計算する。これらの変換後の要求1と変換していない要求2とは類似しているので、閾値以上となり、本ステップがないならば、矛盾として検出されてしまう。しかし、矛盾検出部103の本ステップに到達すると、変換前の要求1と変換していない要求2との類似度を計算する。ここで、変換後の要求1「データBは編集可能。」と変換していない要求2「データAは編集可能でデータBは読込のみ。」とは、「データ」、「は編集可能」、「データBは」、「。」が一致する。一方、変換前の要求1「データBは読込のみ。」と変換していない要求2「データAは編集可能でデータBは読込のみ。」とは、「データBは読込のみ。」、「データ」。「は」が一致する。コルモゴロフ複雑性の概算法を用いると、文字列が長く一致するほど類似度が高くなるため、より長い文字列「データBは読込のみ。」が一致する変換前の要求1と変換していない要求2との類似度が高くなる。したがって、本ステップで、変換後の類似度が変換前の類似度未満となるため、矛盾検出部103は、矛盾と検出せずに、処理を移行する。i=2、j=1、k=1のときは、ステップA5で、要求2「データAは編集可能でデータBは読込のみ。」が、矛盾ルール1の第一表現「<サ変名詞>」として「編集」または「読込」を含み、かつ、矛盾ルール1の第二表現「<サ変名詞>.*しない」を含まないため、関連性検出部102は、次のステップA6に移行する。ステップA6では、前のステップでのマッチが「編集」の場合は、関連性検出部102は、矛盾ルール1の第二表現「<サ変名詞>.*しない」を「編集.*しない」に変換し、前のステップでのマッチが「読込」の場合は、矛盾ルール1の第二表現「<サ変名詞>.*しない」を「読込.*しない」に変換する。そして、関連性検出部102は、次のステップA8に移行し、矛盾ルール1の第二表現を「編集しない」または「読込しない」に変換し、次のステップA7に処理を移行する。そして、ステップA7で、要求1が矛盾ルール1の第二表現である「編集.*しない」または「読込.*しない」を含まないため、本ステップに到達しない。i=2、j=1、k=2のときは、ステップA5で、要求2「データAは編集可能でデータBは読込のみ。」が、矛盾ルール2の第一表現「読込のみ」を含むが、矛盾ルール1の第二表現「編集可能」も含むため、本ステップに到達しない。このようにして、矛盾検出部103の本ステップは、図6の2件の要求を矛盾と検出しないことができる。
 次に、関連性検出部102は、kをインクリメントする(ステップA12)。そして、関連性検出部102は、ステップA3に処理を移行する。
 矛盾検出部103は、2つの要求を矛盾として検出する(ステップA13)。検出した結果は、すぐにディスプレイ装置や印刷装置などを介して出力してもよいし、記憶しておいてシステムのユーザからのリクエストなどに応じて出力してもよいし、それ以外の様態で出力してもよい。そして、矛盾検出部103は、処理を終了する。
 関連性検出部102は、iを2、jを1に変更する(ステップA14)。そして、ステップA2に移行する。すなわち、要求1と要求2とを取り替えた逆の処理を開始する。
 本実施形態によれば、システム・ソフトウェア開発の仕様書における要求の矛盾を、事前準備の労力をかけずに判定することができる。本発明で準備する矛盾ルールは、仕様書ごとでなくシステム・ソフトウェア開発全般に対して準備すればよいため、本発明では、仕様書ごとの事前準備の労力はかからない。なお、ここでは説明を簡単にするため、1つの要求にサ変名詞が1つ含まれる場合について説明したが、1つの要求に複数のサ変名詞が含まれる場合、それぞれのサ変名詞に対して矛盾となるかを関連性検出部と矛盾検出部とを繰り返し用いて同様に調べて、1つでも矛盾となるサ変名詞があるならば、矛盾と検出してもよい。
(第2の実施形態)
 次に、本発明の第2の実施形態による要求間矛盾判定システムについて図面を参照して詳細に説明する。なお、第1の実施形態と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。
 図7を参照すると、本実施形態に係る要求間矛盾判定システムは、情報を記憶する記憶部21と、プログラム制御により動作する計算部22とから構成されている。
 記憶部21は、要求記憶部100と、分割ルール記憶部200と、矛盾ルール記憶部101と、要求情報記憶部201と、事前変換ルール記憶部202とを備える。
 要求記憶部100は、実施形態1と同様である。
 分割ルール記憶部200は、要求を条件部と帰結部とに分割するための分割ルールを記憶する。分割ルールは、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。図8は、分割ルール記憶部200に記憶された分割ルールの例を示す説明図である。図で、1行目は列の見出し行であり、2行目からは1行ごとに1件の分割ルールを示す。1列目の番号は、分割ルールを示す番号を示す。2列目の分割パターンは、分割ルールのパターン表現を示す。以降、番号がiの分割ルールを分割ルールiと呼ぶことにする。図の分割パターンでは、「^」は先頭を示す表現、「$」は末尾を示す表現である。「<先頭不要語>」は、文の先頭として不要な語であり、たとえば、「、」、「には」などである。「<末尾不要語>」は、文の末尾として不要な語であり、たとえば、「の」などである。「()」は、囲まれた部分にマッチしたところを左から数えて、最初が「$1」、2番目が「$2」で参照できることを示す。図の3列目は、条件部としてどのマッチを参照するかを示す。4列目は、帰結部としてどのマッチを参照するかを示す。この例では、最初のマッチである「$1」を条件部、2番目のマッチである「$2」を帰結部として参照することを示す。
 矛盾ルール記憶部101は、実施形態1と同様である。
 要求情報記憶部201は、要求記憶部100に記憶された要求の情報である要求情報を記憶する。要求情報記憶部201は、図9は、要求記憶部100に記憶された矛盾した要求の例を示す説明図である。図10は、要求情報記憶部201に記憶された要求情報の例を示す説明図である。図9の要求に対し、図10の要求情報は、それぞれの要求の条件部と帰結部を記憶する。図10で、1行目は列の見出し行であり、2行目からは1行ごとに1件の要求情報を示す。1列目の番号は、要求情報を示す番号である。2列目の条件部は、要求の条件部、3列目の帰結部は、要求の帰結部を示す。4列目の変換後の条件部は、事前変換ルール記憶部202に記載された事前ルールに基づいて変換された後の条件部、5列目の変換後の帰結部は、事前変換ルール記憶部202に記載された事前ルールに基づいて変換された後の帰結部を示す。以降では、番号がiの要求情報を要求情報iと呼ぶことにする。また、要求記憶部100の要求iに対する要求情報は、要求情報記憶部201の要求情報iであるものとする。要求情報記憶部201は、処理の開始時点では空であり、本発明の処理にしたがって要求情報が記憶される。
 事前変換ルール記憶部202は、類似度を計算する前にテキストを変換するための事前変換ルールを記憶する。事前変換ルールは、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。図11は、事前変換ルール記憶部202に記憶された事前変換ルールの例を示す説明図である。図で、1行目は列の見出し行であり、2行目からは1行ごとに1件の事前変換ルールを示す。1列目の番号は事前変換ルールの番号を示す。2列目の矛盾ルールの番号は、その事前変換ルールを適用する前提となる矛盾ルールの番号を示す。事前変換ルールは、2つの表現から成っており、3列目の第一表現と4列目の第二表現は、それぞれ、事前変換ルールの変換前の表現と変換後の表現を示す。以降では、番号がmの事前変換ルールを事前変換ルールmと呼ぶことにする。図11で、事前変換ルール1の矛盾ルールの番号が「1」であることから、事前変換ルール1は、図4の矛盾ルール1を用いて変換する場合に適用する。矛盾ルール1は、<サ変名詞>とマッチさせており、「<マッチ外のサ変名詞>」とは、マッチしたサ変名詞とは異なる別のサ変名詞のことである。図11で、事前変換ルール2の矛盾ルールの番号が「2」であることから、事前変換ルールは、図4の矛盾ルール2を用いて変換する場合に適用する。なお、ここでは、事前変換ルールの第二表現が空(長さ0の文字列)である場合を例として説明しているが、事前変換ルールの第二表現は、空以外でよいものとする。
 計算部22は、要求分割部203と、関連性検出部204と、矛盾検出部205とを備える。
 要求分割部203は、分割ルール記憶部200に記憶された分割ルールに基づいて、要求記憶部100に記憶された要求を、条件部と帰結部とに分割し、分割した結果を要求情報記憶部201に記憶する。図8と図9とを例として説明する。要求分割部203は、図9の要求1「Aボタンを押下とき登録した」に対し、図8の分割ルール1の分割パターン「^(.*)<末尾不要語>場合(.*)$」はマッチせず、分割ルール2の分割パターン「^(.*)<末尾不要語>とき(.*)$」がマッチするため、分割ルール2にしたがって、「の」+「とき」+「、」、すなわち、「のとき、」の前までの「Aボタンを押下」を条件部、「のとき、」の後の「登録した」を帰結部と判定する。また、図9の要求2「データAを削除。場合にはボタンAを押した」に対し、図8の分割ルール1の分割パターンがマッチするため、分割ルール1にしたがって、「場合」+「には」、すなわち、「場合には」の前までの「データAを削除。」を条件部、「場合には」の後の「ボタンAを押した」を帰結部と判定する。そして、要求分割部203は、図10の要求情報1のように要求情報を要求情報記憶部201に記憶する。
 関連性検出部204は、矛盾ルール記憶部101に記憶された矛盾ルールに基づいて、要求情報記憶部201に記憶された要求の条件部と帰結部とを変換し、変換結果を要求情報記憶部201に記憶する。そして、要求情報記憶部201に記憶された要求情報に基づいて、2つの要求の関連性を検出する。ドキュメントから抽出した要求を、辞書などを用いて同義語をその代表語に統一し、冗長表現を簡略化することに関しては、実施形態1の要求記憶部100で説明した通りである。ここでの事前変換とは、適用する矛盾ルールごとに行う事前変換である。たとえば、矛盾ルール記憶部101に記憶された1つの矛盾ルールに対し、関連性検出部204は、要求情報に対し、事前変換ルールの第一表現にマッチする文字列を、事前変換ルールの第二表現にマッチする文字列に変換する。図11の事前変換ルールに基づいて、図10の要求情報を変換する場合を例として説明する。図10の要求情報1で図4の矛盾ルール1を用いて変換する場合、要求情報1の条件部「Aボタンを押下」は図11のどの事前変換ルールの第一表現にもマッチしないため、関連性検出部204は、条件部を変換せず、要求情報1の条件部「Aボタンを押下」のまま図10の変換後の条件部に記憶する。要求情報1の帰結部「登録したデータAを削除。」は、事前変換ルール2の第一表現にマッチするため、関連性検出部204は、「登録した」を削除し、図10にあるように、変換後の帰結部を「データAを削除。」として、図10の変換後の帰結部に記憶する。
 矛盾検出部205は、関連性検出部204で計算した類似度と、要求情報に記憶された要求情報の帰結部間の類似度とに基づいて、矛盾を検出する。ここでは、実施形態1における要求の代わりに、要求情報の帰結部を用いればよい。
 次に、図14のフローチャートを参照して、本実施の形態2の全体の動作について詳細に説明する。
 まず、要求分割部203は、分割ルール記憶部200に記憶された分割ルールに基づいて、要求記憶部100に記憶された2つの要求を、条件部と帰結部とに分割する(ステップA15)。そして、要求分割部203は、条件部のテキストと帰結部のテキストとを要求情報記憶部201に記憶する。本ステップの詳細な処理については後述する。
 次に、関連性検出部204は、矛盾ルール記憶部101に記憶された矛盾ルールの番号を示すkを1に初期化する(ステップA16)。
 次に、関連性検出部204は、kと矛盾ルール記憶部101に記憶された矛盾ルール数Kとを比較する(ステップA17)。kが矛盾ルール記憶部101に記憶された矛盾ルール数K以下ならば、関連性検出部204は、ステップA18に処理を移行する。kがKより大きいならば、関連性検出部204は、2つの要求は矛盾とはいえないと判定し、処理を終了する。ここで、kがKより大きいならば、関連性検出部204は、矛盾でなかったと出力してもよい。出力は、すぐにディスプレイ装置や印刷装置などを介して出力してもよいし、記憶しておいてシステムのユーザからのリクエストなどに応じて出力してもよいし、それ以外の様態で出力してもよい。
 次に、関連性検出部204は、矛盾ルールkと事前変換ルール記憶部202に記憶された事前変換ルールとに基づいて、2つの要求を変換する(ステップA18)。
 次に、関連性検出部204は、2つの要求の条件部の類似度を計算する(ステップA19)。ここで、2つの要求の条件部が両方とも空(長さ0の文字列)の場合は、2つの要求の条件部の類似度を次のステップの閾値より高い値とする。すなわち、2つの要求が両方とも条件部がない場合は、関連性検出部204は、次のステップで条件部が類似したと判定することとする。2つの要求の条件部のうち一方が空の場合は、コルモゴロフ複雑性の概算を用いると、類似度は、概ね0となる。すなわち、2つの要求の一方だけに条件部がある場合は、関連性検出部204は、次のステップで条件部が類似しないと判定することとする。
 次に、関連性検出部204は、計算した条件部の類似度と閾値を比較する(ステップA20)。閾値は、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。類似度が閾値以上ならば、関連性検出部204は、次のステップA21に処理を移行する。類似度が閾値未満ならば、関連性検出部204は、ステップA23に処理を移行する。すなわち、関連性検出部204は、条件部が類似している場合のみ、矛盾かどうかを調べる。
 次に、関連性検出部204は、矛盾ルールを用いて一方を変換した帰結部の類似度と閾値とを比較する(ステップA21)。閾値は、システムのユーザがキーボードなどを介して入力することで指定してもよいし、システムにデフォルトとして記憶しておいてもよいし、それ以外の様態で指定してもよい。なお、本ステップで閾値は、前のステップA20と同じ値を用いてもよいし、別の値を指定してもよい。矛盾ルールを用いた変換については、実施形態1と同様の処理である。ある1つの矛盾ルールに対し、一方を変換した帰結部の類似度が閾値以上ならば、関連性検出部204は、次のステップA22に処理を移行する。類似度が閾値未満ならば、関連性検出部204は、ステップA23に処理を移行する。実施形態1との違いを示すために、事前変換ルールを用いた変換の別の例を示す。図12は、要求記憶部100に記憶された別の要求の例を示す説明図である。図13は、要求情報記憶部201に記憶された別の要求情報の例を示す説明図である。図12の要求に対し、図13の要求情報は、それぞれの要求の条件部と帰結部を記憶する。図で示すように、2つの要求は、矛盾はしていない。2つの要求の条件部は類似しており、要求情報1の帰結部「登録したデータAを削除。」はサ変名詞である「削除」とマッチするが「削除.*しない」とはマッチせず、要求情報2の帰結部「データAを削除するが登録しない。」は「削除.*しない」とマッチする。要求情報の帰結部を要求とみなして実施形態1の処理を行うと、要求情報1の帰結部を図4の矛盾ルール1を用いて「登録したデータAを削除しない。」に変換する。そして、変換した要求情報1の帰結部と変換していない要求情報2の帰結部とが類似することから、関連性ありと検出してしまう。一方、本実施形態2を用いると、関連性検出部204は、図4の矛盾ルール1で<サ変名詞>として「削除」を用いる場合、図11の事前変換ルール1により、「登録」が「削除」以外のサ変名詞であることから、要求情報2の帰結部「データAを削除するが登録しない。」から「登録しない」を削除し、図13の要求情報1の変換後の帰結部にあるように、「データAを削除するが。」となる。そのため、図13にあるように、要求情報1の帰結部「データAを削除。」と要求情報2の帰結部「データAを削除するが.」とは、図4の矛盾ルールとはマッチせず、関連性検出部204はこれら2つの要求を関連性ありとは検出しなくなる。
 次に、矛盾検出部205は、要求情報記憶部201を参照して、事前変換ルールを用いて変換した後、矛盾ルールを用いて変換する前の帰結部間の類似度を計算し、関連性検出部204で計算した変換後の類似度と、矛盾検出部205で計算した矛盾ルールでの変換前の類似度とを比較する(ステップA22)。変換後の類似度が矛盾ルールでの変換前の類似度以上ならば、矛盾検出部205は、次のステップA24に処理を移行する。変換後の類似度が矛盾ルールでの変換前の類似度未満ならば、矛盾検出部205は、次のステップA23に処理を移行する。
 次に、関連性検出部204は、kをインクリメントする(ステップA23)。そして、関連性検出部204は、ステップA17に処理を移行する。
 矛盾検出部205は、2つの要求を矛盾として検出する(ステップA24)。検出結果は、すぐにディスプレイ装置や印刷装置などを介して出力してもよいし、記憶しておいてシステムのユーザからのリクエストなどに応じて出力してもよいし、それ以外の様態で出力してもよい。そして、矛盾検出部205は、処理を終了する。
 次に、図15のフローチャートを参照して、本実施の形態2の要求iに対する要求分割部203の動作について詳細に説明する。
 まず、要求分割部203は、分割ルールを示す番号mを1に初期化する(ステップA25)。
 次に、要求分割部203は、mと分割ルール数Mとを比較する(ステップA26)。mがM以下ならば、要求分割部203は、次のステップA27に処理を移行する。mがMより大きければ、要求分割部203は、ステップA30に処理を移行する。
 次に、要求分割部203は、要求iが分割ルールmの分割パターンとマッチするかを調べる(ステップA27)。マッチするならば、要求分割部203は、ステップA29に処理を移行する。マッチしないならば、要求分割部203は、次のステップA28に処理を移行する。
 次に、要求分割部203は、割ルールの番号を示すmをインクリメントする(ステップA28)。そして、要求分割部203は、ステップA26に処理を移行する。
 要求分割部203は、分割ルール1を用いて、要求を条件部、帰結部へと分割する(ステップA29)。そして、要求分割部203は、処理を終了する。たとえば、図9の要求1「Aボタンを押下したとき、登録した」は、図10の、条件部は、「Aボタンを押下した」、帰結部は、「登録した」となる。
 要求分割部203は、要求iの条件部を空のまま、帰結部を要求iそのものとする(ステップA30)。それから、要求分割部203は、処理を終了する。
 本実施形態によれば、要求分割部で要求を条件部と帰結部に分割し、関連性検出部で条件部が類似した要求間のみでの矛盾を検出するため、条件部が一致しない2つの要求を矛盾と誤検出しなくなり、矛盾と誤検出することが軽減される。また、関連性検出部において、要求を事前変換するため、矛盾と誤検出することが軽減される。
 なお、本発明に記載した方法は、コンピュータに実行させることのできるプログラムとして、フロッピー(登録商標)ディスク、ハードディスクなどの磁気ディスク、CD−ROM、DVDなどの光ディスク、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
 また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
 また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
 さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
 また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であってもよい。
 本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき各処理を実行するものであって、パソコンなどからなる装置、複数の装置がネットワーク接続されたシステムなどの何れの構成であってもよい。
 また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置を含み、プログラムによって本発明の機能を実現することが可能な機器、装置である。
 なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。また、構成要素を適宜組合せてもよい。
 この出願は、2012年12月18日に出願された日本国特許出願第2012−275745号からの優先権を基礎として、その利益を主張するものであり、その開示はここに全体として参考文献として取り込む。
 また、上記の実施形態の一部または全部は、以下のようにも記載されうる。なお、以下の付記は本発明をなんら限定するものではない。
(付記1)
 テキストで表現された2つの要求に対し、予め定めた矛盾ルールに基づいて一方のテキストを変換した要求ともう一方の変換していない要求との類似度とに基づいて、2つの要求間の関連性を検出する関連性検出部と、前記関連性検出部の検出結果と、前記関連性検出部で計算した類似度と、元の変換前の要求間の類似度とに基づいて、2つの要求が矛盾か否かを検出する矛盾検出部と、を備えることを特徴とする要求間矛盾判定システム。
(付記2)
 前記矛盾ルールは、複数の同時に成立しない状態を示す複数の矛盾表現から構成され、前記関連性検出部の要求の変換は、前記一方の要求において、矛盾ルールの1つの矛盾表現にマッチする文字列を、矛盾ルールの別の矛盾表現にマッチする文字列に変換することを特徴とする上記付記1に記載の要求間矛盾判定システム。
(付記3)
 前記関連性検出部は、前記関連性検出部で計算した類似度が予め定めた閾値以上であるならば、2つの要求が関連性ありと検出し、前記矛盾検出部は、前記関連性検出部で関連性ありと検出され、かつ、前記関連性検出部で計算した類似度が、元の変換前の要求間の類似度より高いならば、矛盾として検出することを特徴とする上記付記1又は上記付記2に記載の要求間矛盾判定システム。
(付記4)
 前記関連性検出部と前記矛盾検出部とは、コルモゴロフ複雑性の概算法に基づいて、2つのテキスト間の類似度を計算することを特徴とする上記付記1から上記付記3の何れか一項に記載の要求間矛盾判定システム。
(付記5)
 前記関連性検出部と前記矛盾検出部は、類似度を計算する前に、前記関連性検出部において変換に用いる1つの矛盾ルールと、予め定めた事前変換ルールとに基づいて、2つの要求を変換することを特徴とする上記付記1から上記付記4の何れか一項に記載の要求間矛盾判定システム。
(付記6)
 前記関連性検出部において変換する一方の要求が前記変換に用いた1つの矛盾ルールの1つの矛盾表現にマッチする文字列を変換文字列と呼ぶとき、前記事前変換ルールは、前記事前変換ルールにマッチする文字列のうちで、前記変換文字列を除く文字列を用いて、2つの要求を変換することを特徴とする上記付記5に記載の要求間矛盾判定システム。
(付記7)
 テキストで表現された要求を、予め定めた分割ルールに基づいて条件部と帰結部とに分割する要求分割部を備え、前記関連性検出部は、2つの要求の条件部のテキスト間の類似度と、2つの要求の帰結部のテキスト間の類似度とに基づいて、2つの要求の関連性を検出し、前記矛盾検出部は、前記関連性検出部の検出結果と、前記関連性検出部で計算した帰結部のテキスト間の類似度と、元の変換前の要求の帰結部のテキスト間の類似度とに基づいて、2つの要求が矛盾か否かを検出することを特徴とする上記付記1から上記付記6の何れか一項に記載の要求間矛盾判定システム。
(付記8)
 テキストで表現された2つの要求に対し、予め定めた矛盾ルールに基づいて一方のテキストを変換した要求ともう一方の変換していない要求との類似度とに基づいて、2つの要求間の関連性を検出する関連性検出ステップと、前記関連性検出部の検出結果と、前記関連性検出部で計算した類似度と、元の変換前の要求間の類似度とに基づいて、2つの要求が矛盾か否かを検出する矛盾検出ステップと、を備えることを特徴とする要求間矛盾判定方法。
(付記9)
 前記矛盾ルールは、複数の同時に成立しない状態を示す複数の矛盾表現から構成され、前記関連性検出部の要求の変換は、前記一方の要求において、矛盾ルールの1つの矛盾表現にマッチする文字列を、矛盾ルールの別の矛盾表現にマッチする文字列に変換することを特徴とする上記付記8に記載の要求間矛盾判定方法。
(付記10)
 前記関連性検出ステップは、前記関連性検出部で計算した類似度が予め定めた閾値以上であるならば、2つの要求が関連性ありと検出し、前記矛盾検出ステップは、前記関連性検出部で関連性ありと検出され、かつ、前記関連性検出部で計算した類似度が、元の変換前の要求間の類似度より高いならば、矛盾として検出することを特徴とする上記付記8又は上記付記9に記載の要求間矛盾判定方法。
(付記11)
 前記関連性検出ステップと前記矛盾検出ステップとは、コルモゴロフ複雑性の概算法に基づいて、2つのテキスト間の類似度を計算することを特徴とする上記付記8から上記付記10の何れか一項に記載の要求間矛盾判定方法。
(付記12)
 前記関連性検出ステップと前記矛盾検出ステップは、類似度を計算する前に、前記関連性検出部において変換に用いる1つの矛盾ルールと、予め定めた事前変換ルールとに基づいて、2つの要求を変換することを特徴とする上記付記8から上記付記11の何れか一項に記載の要求間矛盾判定方法。
(付記13)
 前記関連性検出部において変換する一方の要求が前記変換に用いた1つの矛盾ルールの1つの矛盾表現にマッチする文字列を変換文字列と呼ぶとき、前記事前変換ルールは、前記事前変換ルールにマッチする文字列のうちで、前記変換文字列を除く文字列を用いて、2つの要求を変換することを特徴とする上記付記12に記載の要求間矛盾判定方法。
(付記14)
 テキストで表現された要求を、予め定めた分割ルールに基づいて条件ステップと帰結ステップとに分割する要求分割部を備え、前記関連性検出ステップは、2つの要求の条件部のテキスト間の類似度と、2つの要求の帰結部のテキスト間の類似度とに基づいて、2つの要求の関連性を検出し、前記矛盾検出ステップは、前記関連性検出部の検出結果と、前記関連性検出部で計算した帰結部のテキスト間の類似度と、元の変換前の要求の帰結部のテキスト間の類似度とに基づいて、2つの要求が矛盾か否かを検出することを特徴とする上記付記8から上記付記13の何れか一項に記載の要求間矛盾判定方法。
(付記15)
 テキストで表現された2つの要求に対し、予め定めた矛盾ルールに基づいて一方のテキストを変換した要求ともう一方の変換していない要求との類似度とに基づいて、2つの要求間の関連性を検出する関連性検出処理と、前記関連性検出部の検出結果と、前記関連性検出部で計算した類似度と、元の変換前の要求間の類似度とに基づいて、2つの要求が矛盾か否かを検出する矛盾検出処理と、を備えることを特徴とする要求間矛盾判定プログラム。
(付記16)
 前記矛盾ルールは、複数の同時に成立しない状態を示す複数の矛盾表現から構成され、前記関連性検出部の要求の変換は、前記一方の要求において、矛盾ルールの1つの矛盾表現にマッチする文字列を、矛盾ルールの別の矛盾表現にマッチする文字列に変換することを特徴とする上記付記15に記載の要求間矛盾判定プログラム。
(付記17)
 前記関連性検出処理は、前記関連性検出部で計算した類似度が予め定めた閾値以上であるならば、2つの要求が関連性ありと検出し、前記矛盾検出処理は、前記関連性検出部で関連性ありと検出され、かつ、前記関連性検出部で計算した類似度が、元の変換前の要求間の類似度より高いならば、矛盾として検出することを特徴とする上記付記15又は上記付記16に記載の要求間矛盾判定プログラム。
(付記18)
 前記関連性検出処理と前記矛盾検出処理とは、コルモゴロフ複雑性の概算法に基づいて、2つのテキスト間の類似度を計算することを特徴とする上記付記15から上記付記17の何れか一項に記載の要求間矛盾判定プログラム。
(付記19)
 前記関連性検出処理と前記矛盾検出処理は、類似度を計算する前に、前記関連性検出部において変換に用いる1つの矛盾ルールと、予め定めた事前変換ルールとに基づいて、2つの要求を変換することを特徴とする上記付記15から上記付記18の何れか一項に記載の要求間矛盾判定プログラム。
(付記20)
 前記関連性検出部において変換する一方の要求が前記変換に用いた1つの矛盾ルールの1つの矛盾表現にマッチする文字列を変換文字列と呼ぶとき、前記事前変換ルールは、前記事前変換ルールにマッチする文字列のうちで、前記変換文字列を除く文字列を用いて、2つの要求を変換することを特徴とする上記付記19に記載の要求間矛盾判定プログラム。
(付記21)
 テキストで表現された要求を、予め定めた分割ルールに基づいて条件処理と帰結処理とに分割する要求分割部を備え、前記関連性検出処理は、2つの要求の条件部のテキスト間の類似度と、2つの要求の帰結部のテキスト間の類似度とに基づいて、2つの要求の関連性を検出し、前記矛盾検出処理は、前記関連性検出部の検出結果と、前記関連性検出部で計算した帰結部のテキスト間の類似度と、元の変換前の要求の帰結部のテキスト間の類似度とに基づいて、2つの要求が矛盾か否かを検出することを特徴とする上記付記15から上記付記20の何れか一項に記載の要求間矛盾判定プログラム。
11 記憶部
12 計算部
21 記憶部
22 計算部
100 要求記憶部
101 矛盾ルール記憶部
102 関連性検出部
103 矛盾検出部
200 分割ルール記憶部
201 要求情報記憶部
202 事前変換ルール記憶部
203 要求分割部
204 関連性検出部
205 矛盾検出部
 この出願は、2012年12月18日に出願された日本出願特願第2012−275745号を基礎とする優先権を主張し、その開示のすべてをここに取り込む。

Claims (9)

  1.  テキストで表現された2つの要求に対し、予め定めた矛盾ルールに基づいて一方のテキストを変換した要求ともう一方の変換していない要求との類似度とに基づいて、2つの要求間の関連性を検出する関連性検出部と、前記関連性検出部の検出結果と、前記関連性検出部で計算した類似度と、元の変換前の要求間の類似度とに基づいて、2つの要求が矛盾か否かを検出する矛盾検出部と、を備えることを特徴とする要求間矛盾判定システム。
  2.  前記矛盾ルールは、複数の同時に成立しない状態を示す複数の矛盾表現から構成され、前記関連性検出部の要求の変換は、前記一方の要求において、矛盾ルールの1つの矛盾表現にマッチする文字列を、矛盾ルールの別の矛盾表現にマッチする文字列に変換することを特徴とする請求項1に記載の要求間矛盾判定システム。
  3.  前記関連性検出部は、前記関連性検出部で計算した類似度が予め定めた閾値以上であるならば、2つの要求が関連性ありと検出し、前記矛盾検出部は、前記関連性検出部で関連性ありと検出され、かつ、前記関連性検出部で計算した類似度が、元の変換前の要求間の類似度より高いならば、矛盾として検出することを特徴とする請求項1又は請求項2に記載の要求間矛盾判定システム。
  4.  前記関連性検出部と前記矛盾検出部とは、コルモゴロフ複雑性の概算法に基づいて、2つのテキスト間の類似度を計算することを特徴とする請求項1から請求項3の何れか一項に記載の要求間矛盾判定システム。
  5.  前記関連性検出部と前記矛盾検出部は、類似度を計算する前に、前記関連性検出部において変換に用いる1つの矛盾ルールと、予め定めた事前変換ルールとに基づいて、2つの要求を変換することを特徴とする請求項1から請求項4の何れか一項に記載の要求間矛盾判定システム。
  6.  前記関連性検出部において変換する一方の要求が前記変換に用いた1つの矛盾ルールの1つの矛盾表現にマッチする文字列を変換文字列と呼ぶとき、前記事前変換ルールは、前記事前変換ルールにマッチする文字列のうちで、前記変換文字列を除く文字列を用いて、2つの要求を変換することを特徴とする請求項5に記載の要求間矛盾判定システム。
  7.  テキストで表現された要求を、予め定めた分割ルールに基づいて条件部と帰結部とに分割する要求分割部を備え、前記関連性検出部は、2つの要求の条件部のテキスト間の類似度と、2つの要求の帰結部のテキスト間の類似度とに基づいて、2つの要求の関連性を検出し、前記矛盾検出部は、前記関連性検出部の検出結果と、前記関連性検出部で計算した帰結部のテキスト間の類似度と、元の変換前の要求の帰結部のテキスト間の類似度とに基づいて、2つの要求が矛盾か否かを検出することを特徴とする請求項1から請求項6の何れか一項に記載の要求間矛盾判定システム。
  8.  テキストで表現された2つの要求に対し、予め定めた矛盾ルールに基づいて一方のテキストを変換した要求ともう一方の変換していない要求との類似度とに基づいて、2つの要求間の関連性を検出する関連性検出ステップと、前記関連性検出部の検出結果と、前記関連性検出部で計算した類似度と、元の変換前の要求間の類似度とに基づいて、2つの要求が矛盾か否かを検出する矛盾検出ステップと、を備えることを特徴とする要求間矛盾判定方法。
  9.  テキストで表現された2つの要求に対し、予め定めた矛盾ルールに基づいて一方のテキストを変換した要求ともう一方の変換していない要求との類似度とに基づいて、2つの要求間の関連性を検出する関連性検出処理と、前記関連性検出部の検出結果と、前記関連性検出部で計算した類似度と、元の変換前の要求間の類似度とに基づいて、2つの要求が矛盾か否かを検出する矛盾検出処理と、をコンピュータに実行させるための要求間矛盾判定プログラム。
PCT/JP2013/080966 2012-12-18 2013-11-11 要求間矛盾判定システム、要求間矛盾判定方法、および、要求間矛盾判定プログラム WO2014097790A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/652,592 US9483234B2 (en) 2012-12-18 2013-11-11 Requirements contradiction detection system, requirements contradiction detection method, and requirements contradiction detection program
JP2014553025A JP6260791B2 (ja) 2012-12-18 2013-11-11 要求間矛盾判定システム、要求間矛盾判定方法、および、要求間矛盾判定プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012275745 2012-12-18
JP2012-275745 2012-12-18

Publications (1)

Publication Number Publication Date
WO2014097790A1 true WO2014097790A1 (ja) 2014-06-26

Family

ID=50978134

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/080966 WO2014097790A1 (ja) 2012-12-18 2013-11-11 要求間矛盾判定システム、要求間矛盾判定方法、および、要求間矛盾判定プログラム

Country Status (3)

Country Link
US (1) US9483234B2 (ja)
JP (1) JP6260791B2 (ja)
WO (1) WO2014097790A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018147299A (ja) * 2017-03-07 2018-09-20 Kddi株式会社 情報管理装置、情報管理方法、及び、コンピュータプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180018738A1 (en) * 2016-07-14 2018-01-18 Digital Asset Holdings Digital asset platform
WO2018073264A1 (en) * 2016-10-17 2018-04-26 Koninklijke Philips N.V. Device, system, and method for updating problem lists
US11270038B2 (en) * 2019-09-09 2022-03-08 Shainin II LLC Redundancy detection with function models
US11924350B2 (en) 2021-07-29 2024-03-05 Digital Asset (Switzerland) GmbH Cryptographically enforced partial blinding for distributed system
US20230069285A1 (en) * 2021-08-19 2023-03-02 Bank Of America Corporation Cognitive scrum master assistance interface for developers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250760A (ja) * 2007-03-30 2008-10-16 Nec Corp 自然言語解析による要件定義支援システムシステム設計支援システム、要件定義支援装置、システム設計支援方法及びプログラム
JP2009116648A (ja) * 2007-11-07 2009-05-28 Hitachi Ltd ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047300A (en) * 1997-05-15 2000-04-04 Microsoft Corporation System and method for automatically correcting a misspelled word
JP2002041544A (ja) * 2000-07-25 2002-02-08 Toshiba Corp テキスト情報分析装置
JP4351186B2 (ja) 2005-05-19 2009-10-28 富士通株式会社 仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置
KR101254247B1 (ko) * 2007-01-18 2013-04-12 중앙대학교 산학협력단 메모리 액세스 로그 분석을 통한 프로그램 표절 검출 장치및 방법
US7925605B1 (en) * 2007-09-13 2011-04-12 The United States Of America As Represented By The Secretary Of The Navy Evolutionary expert systems and methods using meta-rules matching
US20090226872A1 (en) * 2008-01-16 2009-09-10 Nicholas Langdon Gunther Electronic grading system
US8583571B2 (en) * 2009-07-30 2013-11-12 Marchex, Inc. Facility for reconciliation of business records using genetic algorithms
WO2011139687A1 (en) * 2010-04-26 2011-11-10 The Trustees Of The Stevens Institute Of Technology Systems and methods for automatically detecting deception in human communications expressed in digital form
WO2012026197A1 (ja) * 2010-08-24 2012-03-01 日本電気株式会社 文書分析システム、文書分析方法、文書分析プログラムおよび記録媒体
WO2012147428A1 (ja) * 2011-04-27 2012-11-01 日本電気株式会社 テキストクラスタリング装置、テキストクラスタリング方法、およびコンピュータ読み取り可能な記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250760A (ja) * 2007-03-30 2008-10-16 Nec Corp 自然言語解析による要件定義支援システムシステム設計支援システム、要件定義支援装置、システム設計支援方法及びプログラム
JP2009116648A (ja) * 2007-11-07 2009-05-28 Hitachi Ltd ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018147299A (ja) * 2017-03-07 2018-09-20 Kddi株式会社 情報管理装置、情報管理方法、及び、コンピュータプログラム

Also Published As

Publication number Publication date
US20160188297A1 (en) 2016-06-30
JP6260791B2 (ja) 2018-01-17
US9483234B2 (en) 2016-11-01
JPWO2014097790A1 (ja) 2017-01-12

Similar Documents

Publication Publication Date Title
JP6260791B2 (ja) 要求間矛盾判定システム、要求間矛盾判定方法、および、要求間矛盾判定プログラム
US9858270B2 (en) Converting data into natural language form
US8484238B2 (en) Automatically generating regular expressions for relaxed matching of text patterns
US8224641B2 (en) Language identification for documents containing multiple languages
US9208140B2 (en) Rule based apparatus for modifying word annotations
JP5862893B2 (ja) 文書分析システム、文書分析方法及び文書分析プログラム
WO2005059771A1 (ja) 対訳判断装置、方法及びプログラム
US10042880B1 (en) Automated identification of start-of-reading location for ebooks
JP6955963B2 (ja) 検索装置、類似度算出方法、およびプログラム
JP2013105321A (ja) 文書処理装置、文書構成要素間の関係解析方法およびプログラム
JP2020190970A (ja) 文書処理装置およびその方法、プログラム
Nguyen et al. Vietnamese treebank construction and entropy-based error detection
JP5911931B2 (ja) 述語項構造抽出装置、方法、プログラム、及びコンピュータ読取り可能な記録媒体
JP2014067179A (ja) 文書処理装置及び文書処理プログラム
JP6327799B2 (ja) 自然言語推論システム、自然言語推論方法及びプログラム
WO2009113289A1 (ja) 新規事例生成装置、新規事例生成方法及び新規事例生成用プログラム
JP2004272352A (ja) 類似度計算方法、装置、プログラムおよび該プログラムを格納した記録媒体
JP7415495B2 (ja) 文書処理プログラム、文書処理装置、及び文書処理方法
JP2008077512A (ja) 文書解析装置、および文書解析方法、並びにコンピュータ・プログラム
WO2012124301A1 (ja) 関連仕様対応付けシステム、関連仕様対応付け方法およびプログラム
JP6172447B2 (ja) 関連性判定システム、方法、およびプログラム
JP4417967B2 (ja) 用例データベース及び用例検索システム
JP5915841B2 (ja) 整合性判定システム、方法およびプログラム
CN116541071A (zh) 一种基于提示学习的应用编程接口迁移方法
JP2023074259A (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: 13864867

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014553025

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14652592

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13864867

Country of ref document: EP

Kind code of ref document: A1