WO2016151865A1 - Software selection system and method therefor - Google Patents

Software selection system and method therefor Download PDF

Info

Publication number
WO2016151865A1
WO2016151865A1 PCT/JP2015/059513 JP2015059513W WO2016151865A1 WO 2016151865 A1 WO2016151865 A1 WO 2016151865A1 JP 2015059513 W JP2015059513 W JP 2015059513W WO 2016151865 A1 WO2016151865 A1 WO 2016151865A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
functional requirement
information
functional
extracted
Prior art date
Application number
PCT/JP2015/059513
Other languages
French (fr)
Japanese (ja)
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 PCT/JP2015/059513 priority Critical patent/WO2016151865A1/en
Publication of WO2016151865A1 publication Critical patent/WO2016151865A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Definitions

  • the present invention relates to software design and estimation.
  • the present invention relates to a software selection system and method suitable for performing selection of software configuration relating to data collection and analysis, and rough estimation.
  • M2M Machine2Machine
  • technologies related to big data analysis that extract new knowledge and methods for improving work by collecting and statistically analyzing a large amount of sensor data collected and collected are also progressing.
  • Patent Document 1 a plurality of services prepared in advance are prepared particularly when software used for realizing a service of a leasing business is prepared in advance.
  • means for detecting which service item of the service needs to be modified, and storing according to the detected information Means for obtaining software modification scale information by referring to the means and estimating the modification man-hour based on the information is disclosed.
  • Patent Document 1 is intended for modification of individual service functions in a series of software package products that have already been developed, and not for combinations of different software packages. For this reason, there is a problem that the number of man-hours for modification cannot be estimated in consideration of the development amount of the interface part such as the communication method between the plurality of software packages and the sharing of data.
  • Patent Document 1 holds information on which service executes a business function for business functions executed by a plurality of services prepared in advance, and is executed by the service requested by the user and the service.
  • the function to be diverted is selected based on the correspondence relationship of the business functions, and there is a problem that the software cannot be selected due to non-functional requirements such as performance and reliability when there are multiple softwares that realize the same function.
  • the present invention has been made in consideration of the above points, and selects a software component with a low development cost when constructing a software system.
  • the present invention provides a software including a functional requirement in which one or more functions of a software component are defined and a non-functional requirement in which a plurality of items that are attributes of functions belonging to the functional requirement are defined.
  • Functions required for a software component used in a software system that is part information in which software part information indicating the usage record of a plurality of software parts is recorded in association with each software part
  • a function that belongs to the software component information by searching the software component information in the database based on the request information input to the estimate support terminal and the estimate support terminal that inputs request information including requirements and non-functional requirements
  • At least some of the functions in the requirements conform to the functional requirements belonging to the requirement information, and
  • An estimate for extracting a combination of software components that have been used in the past, and at least some of the non-functional requirements belonging to the software component information are software components that conform to the non-functional requirements belonging to the request information.
  • a support server is responsible for extracting a combination of software components that have been used in the past, and at least some
  • the front system engineer may be, for example, a person in charge of negotiation with a customer in a system integration company, or a person in charge of system operation and development in a company.
  • the system engineer asks the customer about the need for new development (new project) of the software system, creates a conceptual design such as software configuration based on it, and estimates the development cost of the new development. At that time, the system engineer determines whether or not the software component including the existing software package and the past software asset (source code) that can be diverted can be used, and determines the software configuration suitable for the software system according to the determination result. .
  • the support tool software component groups that can be used in advance are registered in the database, and the results of hearing non-functional requirements from customers are input from the system engineer's operation terminal to support software components that match the hearing results. Extract on the server.
  • the communication function, data collection / conversion function, and storage function there are many general-purpose software components specialized for each function, and a software system is often built by combining multiple software components. . In this case, it is assumed that the presence / absence of the combination of the software parts has a great influence on the development cost because it relates to the development know-how of the interface between the software parts and the presence / absence of divertable source code.
  • software that matches non-functional requirements by associating and storing a system architecture such as a system hardware configuration or network configuration (hereinafter sometimes referred to as a system configuration) and a software component pattern. It is possible to extract components that take into account differences due to hardware and network configurations.
  • FIG. 1 is a block diagram showing the overall configuration of a software selection system according to the present invention.
  • the software selection system includes an estimate support server 1001 that executes a software selection method, and information on software packages that can be selected by the estimate support server 1001 and source code (hereinafter referred to as software components) that can be used.
  • a terminal that operates, manages, and maintains a component registration terminal 1004 that registers new software components, and a terminal that operates the estimate support server 1001.
  • a front system engineer receives a request from a customer (user) Enter multiple information (request information) such as non-functional requirements by hearing It consists of an estimate support terminal 1005.
  • the estimation support server 1001 functions as a design / estimation support server that performs software design and estimation. Each estimate support terminal 1005 is connected to the estimate support server 1001 via the wide area network 1006.
  • the estimation support server 1001, the component information storage DB 1002, the performance management DB 1003, and the component registration terminal 1004 are connected to each other via the local area network 1007 and function as a support tool. Note that a wide area network may be used instead of the local area network 1007.
  • FIG. 2 is a configuration diagram showing a hardware configuration and a software configuration of each unit constituting the software selection system.
  • the estimation support server 1001 includes a CPU (Central Processing Unit) 2002, a memory 2003, a communication unit 2007, and an input / output device 2001 that are connected to each other via an internal bus.
  • the CPU 2002 functions as a processor that executes various processes in accordance with a program (hereinafter also referred to as PG) stored in the memory 2003 and performs overall control of each part of the server.
  • PG program
  • a display PG2004 for generating a screen (input screen) for inputting requirements in each estimation support terminal 1005 and a screen (output screen) for displaying a component selection result
  • Stored are a component analysis PG2005 for analyzing the requirements for handling software components, and a component extraction PG2006 for selecting software components based on the requirements (request information) input from each estimation support terminal 1005.
  • the communication unit 2007 functions as a communication interface that communicates with each estimation support terminal 1005 via the wide area network 1006, and via the local network 1007, the parts information accumulation DB 1002, the results management DB 1003, and the parts registration terminal 1004 Functions as a communication interface for communication.
  • the input / output device 2001 includes an input device such as a mouse and a keyboard and an output device such as a printer and a liquid crystal display device.
  • the component information storage DB 1002 includes a CPU 2002, a memory 2003, a communication unit 2007, a component DB 2009, and an input / output device 2001 connected to each other via an internal bus.
  • the CPU 2002 functions as a processor that executes various processes in accordance with the PG stored in the memory 2003 and controls the DB units.
  • the memory 2003 stores an accumulation PG 2008 for accumulating software component information input from the component registration terminal 1002 in the component DB 2009 as a PG executed by the CPU 2002.
  • the performance management DB 1003 includes a CPU 2002, a memory 2003, a communication unit 2007, a requirement DB 2011, a combination performance DB 2012, and an input / output device 2001 connected to each other via an internal bus.
  • the CPU 2002 functions as a processor that executes various processes in accordance with the PG stored in the memory 2003 and controls the DB units.
  • the memory 2003 as a PG executed by the CPU 2002, in response to an operation from each estimation support terminal 1005 and the estimation support server 1001, software component usage record information is stored in the requirement DB 2011 and the combination record DB 2012.
  • the stored PG 2008 is stored.
  • the component registration terminal 1004 includes a CPU 2002, a memory 2003, a communication unit 2007, and an input / output device 2001 that are connected to each other via an internal bus.
  • the CPU 2002 functions as a processor that executes various processes in accordance with the PG stored in the memory 2003, and controls each part of the terminal.
  • the memory 2003 stores a component registration PG 2013 for registering component information in the component DB 2009 in cooperation with the storage PG 2008 as a PG executed by the CPU 2002.
  • Each estimation support terminal 1005 includes a CPU 2002, a memory 2003, a communication unit 2007, and an input / output device 2001 that are connected to each other via an internal bus.
  • the CPU 2002 functions as a processor that executes various processes in accordance with the PG stored in the memory 2003, and controls each part of the terminal.
  • the memory 2003 displays a requirement input screen (input screen) and a component selection result screen (output screen) on the input / output device 2001 in cooperation with the display PG2004 and the component extraction PG2006 as PG executed by the CPU 2002.
  • the estimate acquisition PG2014 is stored.
  • FIG. 3 is a configuration diagram of a management table for managing software component information.
  • a management table 300 is software component information including a functional requirement in which one or more functions of the software component are defined and a non-functional requirement in which a plurality of items that are attributes of functions belonging to the functional requirement are defined. It is a table for managing software component information that defines the specifications of software components.
  • the management table 300 includes a key 301, a name 302, and a value 303, and is stored in the component DB 2009.
  • identifier information (component ID) for uniquely identifying each software component is recorded.
  • the component ID is an ID for identifying the software component, and a unique number is assigned to each unit of the software component selected in the software selection method of this embodiment when the software component is registered.
  • Name 302 is composed of name, function classification, function item, corresponding requirement / timeliness, corresponding requirement / reliability, ..., procurement price.
  • “SQL, File-Storage” is recorded as the value of the function item.
  • a software component has timeliness as a non-functional requirement corresponding to a function and can be processed in “offline, online”
  • a value corresponding to the requirement / timeliness as “Value” "Offline, Online” is recorded.
  • each software component is registered with a name indicating each component, a function category and a function item indicating a functional requirement that can be supported, and a non-functional requirement item that can be supported as a specification of the software component.
  • the applicable range is registered.
  • the name is “AAA ESB”, and it has the functions of “communication” and “collection”.
  • “semi-real-time” non-functional requirement items can be handled for non-functional requirement items, and for “non-functional requirement items of“ reliability ”,“ It is possible to cope with the reliability (presence or absence of stoppage) of either “non-stop” or “periodic maintenance”.
  • the level of the non-functional requirement is indicated in a discrete category such as “semi-real time”, “offline”, “online”, but the communication speed etc.
  • the method may be a continuous or quantitative expression, or any description method as long as it can compare the corresponding levels of non-functional requirements.
  • FIG. 4 is a configuration diagram of a management table for managing the usage history information of software components.
  • a management table 400 is a table for managing the usage history information of software components, and is composed of a key 401, a name 402, and a value 403. Accumulated in DB1003 requirement DB2011 and combination DB2012.
  • identifier information for uniquely identifying each software component is recorded in the key 401.
  • the name 402 is composed of a name, corresponding requirement / timeliness, corresponding requirement / reliability, and simultaneous use parts.
  • Information similar to the value (Value) 303 is recorded in the value (Value) 403 corresponding to the name, the corresponding requirement / timeliness, and the corresponding requirement / reliability.
  • the simultaneous use component is information for specifying another software component when each software component can be executed simultaneously with the other software component.
  • FIG. 5 is a configuration diagram of the evaluation table.
  • an evaluation table 500 is a table for selecting requirement input items by the display PG 2004 of the estimation support server 1001, and includes items 501, values 502, and frequencies 503.
  • Item 501 is a non-functional requirement item, and information on “timeliness” and “reliability” is recorded in item 501.
  • the value 502 is a non-functional requirement value, and information of “offline”, “online”, “semi-real time”, “real time”, “hard real time”, and “entropy” is recorded in the value 502. In the frequency 503, numerical information corresponding to the value 502 is recorded.
  • each non-functional requirement value of each non-functional requirement item the number of corresponding products or the number of products that have been supported in past projects is counted, and the count value is accumulated in the evaluation table 500.
  • the entropy can be calculated from the count result, and the non-functional requirements that can deal with a wide range of values can be extracted.
  • FIG. 6 is a configuration diagram of an input screen in the estimation support terminal.
  • an input screen 600 is a display screen of the input / output device 2001 of the estimation support terminal 1005, and is a screen that accepts input from a front engineer.
  • the input screen 600 is used as a screen for a front engineer operating the estimate support terminal 1005 to input information (request information) of a new case or request extraction of software parts.
  • a system configuration 601, a functional requirement 602, a non-functional requirement 603, a search condition 604, and the like are displayed.
  • system configuration 601 area information for selecting and specifying the server configuration, communication path, and device is displayed. At this time, if the system configuration such as the server and communication path configuration is determined in advance, the front engineer inputs these pieces of information.
  • non-functional requirement 603 area information for selecting and specifying timeliness and reliability is displayed.
  • the front engineer inputs a non-functional requirement value (“offline”, “online”) to be dealt with in the case for each non-functional requirement item.
  • information indicating question items is displayed in the non-functional requirement 603 area.
  • search condition 604 information for setting a priority condition when extracting software parts (“result priority”, “adaptation priority”, “procurement priority”) is displayed, and an OK button 605 is displayed. , NG button 606 is displayed.
  • FIG. 7 is a configuration diagram of an output screen in the estimation support terminal.
  • an output screen 700 is a display screen of the input / output device 2001 of the estimation support terminal 1005, and recommends a combination of software components based on information (request information) of a new case input from the input screen 600. This is the output screen.
  • an extracted product list 701, an application record 702, and a new development item 703 required are displayed.
  • a list of software components extracted by the software component selection method executed in the component extraction PG2006 (for example, a combination of software components that have been used at the same time in the past) is displayed. .
  • each candidate is also displayed. In this case, by operating any of the selection buttons 704, 705, and 706, combinations of candidates 1 to 3 are displayed.
  • Supplementary information on the combination of the software parts is displayed in the area of the application record 702 and the new development item 703 required.
  • information indicating the usage record of the software combination is displayed in the application record 702 area
  • information indicating functional items and non-functional requirements that are not supported in the new project is displayed in the area of the new development item 703 required. Is displayed.
  • FIG. 8 is a flowchart for explaining an outline of a method for selecting software components. This process is mainly executed by the component extraction PG2006 and the component analysis PG2005.
  • the component registration PG2013 displays the input software component information, Transfer to the component information storage DB 1002 via the communication unit 2007.
  • the storage PG 2008 of the component information storage DB 1002 registers the software component information transferred from the component registration terminal 1004 in the component DB 2009 (S11).
  • the component DB 2009 information on newly added software components is registered as information on software components to be extracted together with information on various software components used in the past. In other words, software component information of past and new software components that have been used in the past is registered and managed in the management table 300.
  • one of the estimate support terminals 1005 activates the estimate acquisition PG2014, and through customer interviews, request information required for a new case (a software system to be newly constructed) (functional requirements indicating functions in the new case) And input of request information including non-functional requirements such as reliability (S12).
  • the estimate support terminal 1005 displays the input screen of the requirement input generated by the display PG 2004 of the estimate support server 1001 on the display screen of the input / output device 2001, and uses the function requirements of the new matter as information by the operation of the system engineer. Or request information including non-functional requirements.
  • the request information can also include information such as a contracted communication path, cloud, and virtualization as the system configuration of the new case.
  • the estimate support server 1001 searches the software component information (software component information) registered in the component DB 2009 based on the request information input to the estimate support terminal 1005, and the software component registered in the component DB 2009. At least some of the functional requirements input to the estimate support terminal 1005 are compatible and at least some of the non-functional requirements are compatible from (software components registered in the management table 300) The extracted software parts are extracted and output (S13). At this time, the component extraction PG2006 is at least a part of the functional requirements input to the estimation support terminal 1005 from the software components (software components registered in the management table 400) registered in the combination DB2012 of the performance management DB1003.
  • the estimate support server 1001 registers the information of the software parts actually used for selection and development as a usage history in the combination DB 2012 of the results management DB 1003 (S14).
  • the estimate support server 1001 receives from the estimate support terminal 1005 the information of the software parts actually selected and used for development as the use history, and the combination information of the use of the software parts in the received use history, Registered in the combination DB 2012 of the performance management DB 1003, manages the registered information in the management table 400, and registers the requirement information corresponding to the new case in the requirements DB 2011 of the performance management DB 1003.
  • the component analysis PG2005 of the estimate support server 1001 generates requirements and system configuration patterns corresponding to the new project. The processing in the component analysis PG2005 will be described in detail with reference to FIG.
  • FIG. 9 is a flowchart for explaining an input item generation / change process for acquiring requirements. This process is the specific content of step S12 of FIG. 8, and is mainly executed by the display PG 2004 and the estimate acquisition PG 2014.
  • the estimate acquisition PG 2014 of the estimate support terminal 1005 is information on non-functional requirements that can be handled by all software components, and is stored in the component DB 2009 of the component information storage DB 1002 and the requirement DB 2011 of the results management DB 1003.
  • a list of non-functional requirements that can be handled by the software component is acquired (S21).
  • the non-functional requirement information acquired here is a set of items indicating the type of non-functional requirements such as “timeliness” and values indicating the level of non-functional requirements such as “real time” and “offline”. .
  • a plurality of items may be registered for the value indicating the level of non-functional requirements.
  • the level of non-functional requirements may be registered in the parts DB 2009 at the time of new registration as a part specification, or may be accumulated in the requirements DB 2011 as a requirement with a corresponding track record during past development. .
  • estimate acquisition PG2014 for each non-functional requirement item (items such as “timeliness”), the size of the range that can be supported by all software components (value that can be supported by all software components (non-functional)
  • the size of requirement level is evaluated (S22).
  • This evaluation method may be any method as long as it can compare the diversity of requirements that can be handled by all registered software components. For example, the appearance probability of a value indicating the level of the non-functional requirement is calculated for each item of the non-functional requirement, and the information entropy is calculated for each item of the non-functional requirement by the following equation (1).
  • the estimate acquisition PG 2014 refers to the management table 500 indicating the analysis result, and extracts one or more items having a large applicable range (the level of non-functional requirements is large) (S23).
  • a non-functional requirement item (“timeliness”) having a high information entropy among each non-functional requirement item may be extracted in a predetermined number, or each non-functional requirement item may be extracted. Of these items, only non-functional requirement items whose information entropy is higher than a prescribed value may be extracted.
  • the estimate acquisition PG 2014 generates a question item for the customer based on the item of the non-functional requirement extracted in step S23, for example, “timeliness” of the non-functional requirement (S24).
  • the display PG 2004 generates a screen for displaying the items of the non-functional requirements extracted by the estimate acquisition PG 2014 on the display screen of the input / output device 2001 and for hearing from the customer.
  • This screen may be in any format as long as the customer can input an answer regarding the items of non-functional requirements extracted by the estimate acquisition PG 2014.
  • a non-functional requirement item extracted by the estimate acquisition PG 2014 may be displayed in a list and a non-functional requirement value corresponding to the non-functional requirement item may be selected.
  • the estimate acquisition PG 2014 refers to the software component information of the component DB 2009 and receives each software stored in the component DB 2009 when receiving request information including the functional requirement and non-functional requirement of the new matter as a question item from the user.
  • For each non-functional requirement item included in the requirement information evaluate the size of the range that can be handled, and extract and extract the non-functional requirement item with a large range that can be handled from this evaluation result.
  • Part of the question items can be changed according to the non-functional requirement items. For this reason, it is possible to narrow down to question items effective for selecting software components.
  • FIG. 10 is a flowchart for explaining the process of extracting the optimum software component. This process is the specific content of step S13 in FIG. 8, and is mainly executed by the component extraction PG2006 of the estimation support server 1001.
  • the parts extraction PG2006 of the estimate support server 1001 acquires the requirements (request information) of the new case by the processing shown in step S12 and step S12 in FIG. 8 and step S21 in FIG. 9 (S31). At this time, in addition to the above-described non-functional requirements, if there are functional requirements to be dealt with, they are additionally acquired. In addition, when there is a restriction on the system configuration, such as when there is an existing system or when the basic hardware configuration has already been determined, it is additionally acquired.
  • the component extraction PG2006 searches the compatible component list (management table 300) based on the functional requirements of the new project, and creates a new one from the software component information registered in the component DB2009 (management table 300). Only one or more software components that conform to the description of the functional requirements of the case are acquired (S32). For example, when the functional requirement of the new case is “communication”, the software component in which “communication” is recorded in the functional requirement of the software component information is acquired.
  • This acquisition method may search for items whose function classifications and function items described as part specifications match the description of the functional requirements of the new project, or define missing values and similarity of terms, Either a fuzzy search for evaluating the degree of coincidence or either method may be used.
  • the component extraction PG2006 narrows down only the extracted software components that can meet the non-functional requirements (S33). For example, if “Reliability” is recorded as a non-functional requirement item for a new project, only the software components for which “Reliability” is defined as a non-functional requirement among the extracted software components And
  • the component extraction PG 2006 determines whether the priority extraction condition is “result priority” or “function priority” for the combination of software components narrowed down in step S33 (S34). If it is determined in step S34 that "result priority", that is, if the preset component extraction condition is result priority, the component extraction PG 2006 searches the management table 400 and the software narrowed down in step S33. A combination of software parts that have been used in the past is extracted from the parts (S35). At this time, the component extraction PG2006 is a combination of software components that have been used in the past among the narrowed-down software components (the component whose value 403 is recorded as a simultaneously used component in the management table 400) (A combination of software parts specified by ID) is extracted.
  • the component extraction PG2006 extracts (selects) a combination that matches the system configuration assumed by the new case from among the combinations of software components that have been used in the past (S36). Exit.
  • the system configuration assumed for a new project includes the presence and type of IT processing hardware such as already installed or contracted communication paths, cloud, and virtualization.
  • IT processing hardware such as already installed or contracted communication paths, cloud, and virtualization.
  • a combination of software parts having a record matching the system configuration is selected.
  • the system configuration includes software component information used by an existing system, a combination of software components that have been used with the existing software component is selected.
  • step S34 determines whether “function priority” or “function priority”. If it is determined in step S34 that “function priority”, the component extraction PG 2006 selects a software component with few duplicated or insufficient function items from among the functional requirements of the new item from the software components narrowed down in step S34. A combination is extracted (S37), and the processing in this routine is terminated.
  • step S35 a step for determining whether or not the system configuration has been determined is added, and when a positive determination result is obtained in this step, that is, when the system configuration is determined in advance by the customer (When there is information related to the system configuration in the new case in the request information), the parts extraction PG 2006 selects the system configuration determined in advance, and then executes the process of step S36, and the system configuration is determined. If it is determined that the processing has not been completed, the processing in this routine can be terminated. Further, after step S32 or after step S35, a step of determining whether the procurement price of the software component is within the set price range is added, and the procurement price of the software component is within the set price range. On the condition, the part extraction PG2006 can also execute the process of step S33 or step S35.
  • FIG. 11 is a flowchart for explaining a generation method of a requirement pattern / part pattern. This process is the specific content of step S14 of FIG. 8, and is executed by the component analysis PG2005 of the estimation support server 1001.
  • the component analysis PG2005 of the estimation support server 1001 corresponds to a non-functionality corresponding to a case implemented in the system development using the software components (for example, software components with high information entropy) extracted in steps S11 to S13 in FIG.
  • the requirement items (“reliability”, “timeliness”) and the values of the non-functional requirements (“offline”, “online”) are input from the estimation support terminal 1005 (S41).
  • the parts analysis PG 2005 inputs the system configuration in the case from the estimate support terminal 1005 (S42).
  • the system configuration includes the presence and type of IT processing hardware such as already installed or contracted communication paths, cloud, and virtualization.
  • the identifier of the software component used in the existing system may be included.
  • the component analysis PG 2005 inputs the identifier of the software component used in the case (S43).
  • the parts analysis PG2005 uses the information (software parts information and system configuration information) of the relevant matter (the matter implemented in the system development) entered in steps S41 to S43, and the past information that has already been entered. From the case information (software component information and system configuration information), a combination of software components is patterned, the pattern is analyzed (S44), and the processing in this routine is terminated. Details of step S44 will be described in detail with reference to FIG.
  • FIG. 12 is a flowchart for explaining processing for patterning combinations of software components. This process is the specific content of step S44 in FIG. 11, and is executed by the component analysis PG2005 of the estimation support server 1001.
  • the parts analysis PG2005 of the estimation support server 1001 classifies the system configuration in the past results into representative patterns, and calculates representative points from the classified patterns (S51).
  • this classification method for example, the system configuration in each case, and information (items) of the system configuration applied to the software components used in each case, for example, “cloud”, “wireless LAN”, etc.
  • the presence / absence of the correspondence (implementation) is expressed side by side and expressed as a vector. If each item matches, the value is set to “0”, otherwise, the value is set to “1”, and the Hamming distance is evaluated.
  • a predetermined number of system configuration patterns are obtained by the hierarchical clustering method.
  • the mode value of the system configuration classified into the same pattern (the one with the highest performance among the patterned system configurations) may be used as the representative point.
  • the distance may be calculated, and the system configuration of the case with the smallest total value of the calculated distances may be used as the representative point.
  • the parts analysis PG 2005 classifies the non-functional requirements in each case with past results into representative patterns, and calculates representative points from the classified patterns (S52).
  • this classification method for example, as in step S51, values of non-functional requirements (“real time”, “online”) are arranged and expressed as vectors, and a specified number of representative values are obtained by hierarchical clustering using the Hamming distance and the Ward method. Get a non-functional requirement pattern.
  • the parts analysis PG2005 calculates which system configuration pattern and non-functional requirement pattern match each past case, and for the calculated system configuration pattern / non-functional requirement pattern pair,
  • the combination of software components used at the same time (the combination of software components with a track record that has been used in the past) is registered in the combination DB 2012 of the track record management DB 1003 (S53), and the processing in this routine is terminated.
  • the calculation method to calculate which system configuration pattern and non-functional requirement pattern match each past case is that the case and the representative point of each pattern, if the pattern creation method is hierarchical clustering by the Ward method And the pattern with the closest calculated Hamming distance is set as the pattern to which the matter belongs.
  • the estimation support server 1001 classifies the system configuration applied to each software component recorded in the component DB 2009 for each item, patterns the classified system configuration items according to the presence or absence of correspondence, The representative points of the system configuration are extracted from the system configuration, and the non-functional requirements belonging to each software component recorded in the parts DB 2009 are classified according to the value of the item of the non-functional requirements.
  • Each software component recorded in the component DB 2009 is created by patterning the value of the functional requirement item according to the presence or absence of correspondence, extracting the representative points of the non-functional requirement from the patterned non-functional requirement item values Of these, a combination of software components whose system configuration item matches the representative point of the system configuration and whose non-functional requirement item value matches the representative point of the non-functional requirement Will be recorded in the combination DB 2012 as a combination of software components.
  • FIG. 13 is a flowchart for explaining a method of extracting software parts using a pattern. This process is different from the process of FIG. 10 and is a software component extraction method using the pattern calculated in step S53 of FIG. 12, and is executed by the component extraction PG2006 of the estimation support server 1001.
  • the component extraction PG 2006 of the estimate support server 1001 acquires the requirement (request information) of the new case from the estimate support terminal 1005 as in step S31 of FIG. 10 (S61).
  • step S32 the component extraction PG2006 searches the compatible component list (management table 300) based on the functional requirements of the new case, and newly selects the software component registered in the component DB 2009. Only software components that conform to the description of the functional requirements of the case are acquired (S62).
  • the component extraction PG 2006 extracts a representative point of the non-functional requirement closest to the non-functional requirement of the new case as a non-functional requirement pattern based on the software component acquired in step S62 (S63).
  • the part extraction PG2006 determines whether or not the system configuration has been determined (S64).
  • a positive determination result is obtained in step S64, that is, when the system configuration is determined in advance by the customer, the part extraction PG2006 selects a pattern closest to the representative point in the system configuration pattern determined in advance. Select (S65). If the pattern creation method is hierarchical clustering by the Ward method, the representative point is calculated by calculating the Hamming distance between the case and the representative point of each pattern, and the pattern with the closest Hamming distance The pattern to which the configuration belongs.
  • the component extraction PG2006 searches the combination DB2012 of the performance management DB1003 based on the pattern selected in step S65 and the non-functional requirement pattern extracted in step S63, and the system configuration pattern / non-functional requirement in the combination DB2012.
  • a combination of software components registered in the pattern (a combination of software components that have been used in the past at the same time) is extracted (S66), and the processing in this routine is terminated.
  • step S66 the pattern not including the software component searched in step S62 is deleted.
  • step S64 if a negative determination result is obtained in step S64, that is, if the system configuration has not been determined in advance by the customer, the component extraction PG2006 uses the combination of software components registered in the non-functional requirement pattern as the system. A configuration example is extracted (S67), and the processing in this routine is terminated. At this time, if the extracted combination of software parts is information of a system configuration corresponding to the past, the information is output.
  • step S63 it is assumed that the representative point of the extracted non-functional requirement does not completely correspond to the non-functional requirement desired by the customer. It is required to develop non-functional requirements that are not supported by developing UP based on the extracted software components.
  • the estimate support server 1001 inputs the request information from the estimate support terminal 1005
  • the non-functional requirements belonging to the request information are classified according to the value of the non-functional requirement item, and the classified non-function Requirement item values are patterned according to whether they are supported, non-functional requirement representative points are extracted from the patterned non-functional requirement item values, and the system configuration of the new matter is included in the request information
  • the system configuration of the new project is classified for each item, the classified system configuration items are patterned according to whether they are supported, and the representative points of the system configuration from the patterned system configuration
  • the combination DB2012 is searched based on the extracted representative points of the extracted non-functional requirements and the extracted representative points of the system configuration.
  • Representative points of the system configuration and the extracted representative points requirement is to extract a combination of software components that match, respectively.
  • FIG. 14 is a flowchart for explaining a method of selecting a software component when there is a defect in non-functional requirements.
  • the extracted software components have a gap between the corresponding non-functional requirements and the non-functional requirements required for the new project, and when a newly developed part due to UP occurs,
  • This is a process for selection, and is executed by the component analysis PG2005 of the estimation support server 1001.
  • the parts analysis PG2005 of the estimate support server 1001 searches the performance management DB 1003 and acquires the development amount when there is a flawed requirement and has been handled by UP development in the past (S71). At this time, if there are similar cases multiple times in the past, the average value of the development amount is calculated.
  • the parts analysis PG2005 acquires the development amount of the extracted software parts in the past UP development (S72).
  • the component analysis PG2005 estimates the development amount of the software component in the requirement as the predicted development man-hour from the past average development amount for each requirement and the past average development amount of the software component (S73). The process in is terminated.
  • the estimated amount of development man-hours can be any method that reflects the amount of development for each requirement and the difficulty of UP development for each software component, and can be compared for multiple software components.
  • the development amount may be estimated based on the weighted average shown in Expression (2) and FIG.
  • FIG. 15 is a configuration diagram of a management table for managing the estimation results of the software component development amount.
  • a management table 1500 is a table for managing the estimation results of the development amounts of a plurality of software components estimated in step S73 of FIG. 14, and includes a product name 1501, UP development step number 1502, non-function It consists of requirement 1503 and UP development step number 1504.
  • the product name 1501 for example, information on part A, part B, and part C is recorded as names of a plurality of software parts.
  • the non-functional requirement 1503 records information on timeliness, reliability, security, and capacity.
  • each part is recorded with a numerical value indicating the man-hour in development in the past.
  • numerical information indicating the average man-hour of each part is recorded in the UP development step number 1502 corresponding to each requirement of the non-functional requirement 1503, and the UP development step number 1504 is recorded in the average man-hour of each part. Is recorded as numerical information.
  • component A requires 1750 steps (average) in the past development.
  • man-hours in the past development of the requirement “timeliness” require an average of 1000 steps.
  • the component information storage DB 1002 and the performance management DB 1003 can be configured as a single DB, or the component DB 2009, the combination DB 2012, and the requirement DB 2011 can be arranged in the estimation support server 1001, respectively.
  • the estimate support terminal 1005 can be arranged on the estimate support server 1001 and integrated.
  • each of the above-described configurations, functions, etc. may be realized by hardware by designing a part or all of them, for example, by an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files that realize each function is stored in memory, a hard disk, a recording device such as an SSD (Solid State Drive), an IC (Integrated Circuit) card, an SD (Secure Digital) memory card, a DVD ( It can be recorded on a recording medium such as Digital Versatile Disc).
  • 1001 Estimate support server 1002 Parts information storage DB, 1003 Results management DB, 1004 Parts registration terminal, 1005 Estimate support terminal, 1006 Wide area network, 1007 Local area network, 2001 Input / output device, 2002 CPU, 2003 memory, 2004 Display PG, 2005 parts analysis PG, 2006 parts extraction PG, 2007 communication department, 2008 storage PG, 2009 parts DB, 2010 storage PG, 2011 requirements DB, 2012 combination DB, 2013 parts registration PG, 2014 estimate acquisition PG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A software selection system has: a database in which software component information that indicates a use record of a plurality of software components is recorded, the software component information including a functional requirement in which one or more functions of a software component are prescribed and a non-functional requirement in which a plurality of items as attributes of the function belonging to the functional requirement are prescribed; an estimation assistance terminal for inputting request information including the functional requirement and the non-functional requirement requested in a software component to be used for a new project; and an estimation assistance server for searching the database on the basis of the request information. The assistance server extracts, from the database, a combination of such software components that at least partial function in the functional requirement belonging to the software component information of the database conforms to the functional requirement belonging to the request information, and at least a part of the items in the non-functional requirement belonging to the software component information conforms to the non-functional requirement belonging to the request information, the software components having a record of being used at the same time in the past.

Description

ソフトウェア選択システム及びその方法Software selection system and method
 本発明は、ソフトウェアの設計、及び、見積もりに係り、例えば、データ収集、分析に係るソフトウェアの構成の選択、概算見積もりを行うに好適なソフトウェア選択システム及びその方法に関する。 The present invention relates to software design and estimation. For example, the present invention relates to a software selection system and method suitable for performing selection of software configuration relating to data collection and analysis, and rough estimation.
 従来、顧客特化、もしくは、分野特化のソフトウェアシステムの開発においては、顧客からの要望やヒアリングから顧客要件を把握し、営業やフロントシステムエンジニアの過去の経験から大まかなシステム規模と開発にかかるコストを算定し、顧客に対する見積価格を含む提案を実施する。 Conventionally, in the development of customer-specific or field-specific software systems, the customer requirements are ascertained from customer requests and interviews, and the system scale and development are roughly determined from past experience of sales and front system engineers. Calculate costs and implement proposals that include estimated prices for customers.
 このようなソフトウェアシステムの開発においては、汎用ソフトウェアパッケージを活用したOff the Shelf Component型のソフトウェア組合せの選択による開発や過去の開発をベースに改修を行う流用開発により、ソフトウェア開発コストを削減することが可能である。この場合においても、前述と同様に営業やフロントシステムエンジニアの過去の経験から、例えば活用経験のあるソフトウェアパッケージを選定したり、過去の流用開発の経験から改造規模を見積もることで、開発にかかるコストを見積もる。 In the development of such software systems, software development costs can be reduced through development by selecting off-the-shelf Component type software combinations utilizing general-purpose software packages, or by diversion development based on past development. Is possible. Even in this case, as described above, from the past experience of sales and front system engineers, for example, select a software package with experience of use, or estimate the scale of modification from past experience of diversion development, the cost of development Estimate.
 例えば近年においては、センサ技術の高度化と普及によりフィールドの情報を計測収集する、M2M(Machine2Machine)システムが進展している。また、計測収集した大量のセンサデータを集積し統計的に分析することで新たな知識や業務の改善方法を抽出するビッグデータ分析に関する技術も進展している。 For example, in recent years, an M2M (Machine2Machine) system that measures and collects field information has advanced with the advancement and spread of sensor technology. In addition, technologies related to big data analysis that extract new knowledge and methods for improving work by collecting and statistically analyzing a large amount of sensor data collected and collected are also progressing.
 こうしたM2M、ビッグデータに関するシステムにおいては、センサデバイスの開発、配置、及び、データ収集後の分析方法は顧客の要望に応じたカスタマイズが必要であるのに対して、データを収集蓄積するネットワークやDBMS(Data Base Management System)、分析方法のベースとなる統計処理アルゴリズムについては、汎用的なソフトウェアパッケージや過去開発したソフトウェア資産が存在し、その組み合わせによりソフトウェアシステムの構築が可能である。 In such systems related to M2M and big data, sensor device development, placement, and analysis methods after data collection must be customized according to customer requirements, while data collection and storage networks and DBMSs There are general-purpose software packages and software assets developed in the past for the statistical processing algorithm that is the base of the analysis method (Data Base Management System), and a software system can be constructed by combining them.
 このような既存ソフトウェアの組合せ、もしくは、流用によるソフトウェアの開発として、例えば特許文献1には、特にリース業のサービスの実現に用いられるソフトウェアが予め用意される場合に、予め用意される複数のサービスで実行される業務機能について、入力した情報に基づいて、ユーザの要求するサービスを実現するために、そのサービスのどのサービス項目を改造する必要があるのかを検出する手段と、検出した情報に従って記憶手段を参照することでソフトウェア改造規模の情報を取得して、それに基づいて改造工数を見積もる手段と、を備えるように構成する装置が開示されている。 As a development of such a combination of existing software or software by diversion, for example, in Patent Document 1, a plurality of services prepared in advance are prepared particularly when software used for realizing a service of a leasing business is prepared in advance. In order to realize the service requested by the user based on the input information, means for detecting which service item of the service needs to be modified, and storing according to the detected information Means for obtaining software modification scale information by referring to the means and estimating the modification man-hour based on the information is disclosed.
特許第4987357号Patent No. 4987357
 ところが、前記特許文献1は、既に開発済みの一連のソフトウェアパッケージ製品における個別サービス機能の改造を対象としており、異なるソフトウェアパッケージの組み合わせを対象としていない。そのため、複数のソフトウェアパッケージ間の通信方式やデータの共通化などのインターフェース部分の開発量を考慮して改造工数を見積もることが出来ないという課題が有った。 However, Patent Document 1 is intended for modification of individual service functions in a series of software package products that have already been developed, and not for combinations of different software packages. For this reason, there is a problem that the number of man-hours for modification cannot be estimated in consideration of the development amount of the interface part such as the communication method between the plurality of software packages and the sharing of data.
 また、前記特許文献1は、予め用意される複数のサービスで実行される業務機能についてどのサービスがその業務機能を実行するのかという情報を保持し、ユーザの要求するサービスと当該サービスで実行される業務機能の対応関係から流用する機能を選定することとしており、同一機能を実現するソフトウェアが複数あった場合に性能や信頼性などの非機能要件からソフトウェアを選定できないという課題が有った。 Patent Document 1 holds information on which service executes a business function for business functions executed by a plurality of services prepared in advance, and is executed by the service requested by the user and the service. The function to be diverted is selected based on the correspondence relationship of the business functions, and there is a problem that the software cannot be selected due to non-functional requirements such as performance and reliability when there are multiple softwares that realize the same function.
 さらにまた、前記特許文献1は、各機能ごとの改造規模を事前に見積っておいて記憶することとしており、改造内容による改造規模の違いを考慮することが出来ないという課題が有った。また、各機能ごとの改造規模が記録されているので、各機能間のインターフェースの開発規模や新規追加される機能の規模を考慮にいれることが出来ないという課題が有った。 Furthermore, in Patent Document 1, the scale of modification for each function is estimated and stored in advance, and there is a problem that the difference in scale of modification depending on the contents of modification cannot be considered. In addition, since the scale of modification for each function is recorded, there is a problem that it is impossible to take into consideration the development scale of the interface between the functions and the scale of newly added functions.
 本発明は、以上の点を考慮してなされたもので、ソフトウェアシステムを構築する際に、開発コストの少ないソフトウェア部品を選択するものである。 The present invention has been made in consideration of the above points, and selects a software component with a low development cost when constructing a software system.
 係る課題を解決するために、本発明は、ソフトウェア部品の1以上の機能が規定された機能要件と当該機能要件に属する機能の属性となる複数の項目が規定された非機能要件とを含むソフトウェア部品情報であって、複数のソフトウェア部品の利用実績を示すソフトウェア部品情報が前記各ソフトウェア部品に対応づけて記録されたデータベースと、新規案件となるソフトウェアシステムに利用されるソフトウェア部品に要求される機能要件と非機能要件を含む要求情報を入力する見積もり支援端末と、前記見積もり支援端末に入力された要求情報を基に前記データベースの中のソフトウェア部品情報を検索して、前記ソフトウェア部品情報に属する機能要件の中の少なくとも一部の機能が前記要求情報に属する機能要件に適合し、且つ前記ソフトウェア部品情報に属する非機能要件の中の少なくとも一部の項目が前記要求情報に属する非機能要件に適合するソフトウェア部品であって、過去に利用された実績のあるソフトウェア部品の組合せを抽出する見積もり支援サーバと、を有することを特徴とする。 In order to solve such a problem, the present invention provides a software including a functional requirement in which one or more functions of a software component are defined and a non-functional requirement in which a plurality of items that are attributes of functions belonging to the functional requirement are defined. Functions required for a software component used in a software system that is part information, in which software part information indicating the usage record of a plurality of software parts is recorded in association with each software part A function that belongs to the software component information by searching the software component information in the database based on the request information input to the estimate support terminal and the estimate support terminal that inputs request information including requirements and non-functional requirements At least some of the functions in the requirements conform to the functional requirements belonging to the requirement information, and An estimate for extracting a combination of software components that have been used in the past, and at least some of the non-functional requirements belonging to the software component information are software components that conform to the non-functional requirements belonging to the request information. And a support server.
 本発明によれば、開発コストの少ないソフトウェア部品を選択することができる。 According to the present invention, it is possible to select a software component with a low development cost.
本発明に係るソフトウェア選択システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of the software selection system which concerns on this invention. ソフトウェア選択システムを構成する各部のハードウェア構成とソフトウェア構成を示す構成図である。It is a block diagram which shows the hardware constitutions and software constitution of each part which comprise a software selection system. ソフトウェア部品情報を管理するための管理テーブルの構成図である。It is a block diagram of the management table for managing software component information. ソフトウェア部品の利用実績情報を管理する管理テーブルの構成図である。It is a block diagram of the management table which manages the utilization performance information of a software component. 評価テーブルの構成図である。It is a block diagram of an evaluation table. 見積もり支援端末における入力画面の構成図である。It is a block diagram of the input screen in an estimation assistance terminal. 見積もり支援端末における出力画面の構成図である。It is a block diagram of the output screen in an estimation assistance terminal. ソフトウェア部品の選択方法の概要を説明するためのフローチャートである。It is a flowchart for demonstrating the outline | summary of the selection method of a software component. 要件獲得のための入力項目の生成・変更処理を説明するためのフローチャートである。It is a flowchart for demonstrating the production | generation / change process of the input item for requirement acquisition. 最適なソフトウェア部品を抽出する処理を説明するためのフローチャートである。It is a flowchart for demonstrating the process which extracts the optimal software component. 要件パターン・部品パターンの生成方法を説明するためのフローチャートである。It is a flowchart for demonstrating the production | generation method of a requirement pattern and a component pattern. ソフトウェア部品の組合せをパターン化する処理を説明するためのフローチャートである。It is a flowchart for demonstrating the process which patterns the combination of software components. パターンを用いてソフトウェア部品を抽出する方法を説明するためのフローチャートである。It is a flowchart for demonstrating the method to extract a software component using a pattern. 非機能要件に齟齬がある場合にソフトウェア部品を選択する方法を説明するためのフローチャートである。It is a flowchart for demonstrating the method to select a software component when there exists a defect in a non-functional requirement. ソフトウェア部品の開発量の推定結果を管理するための管理テーブルの構成図である。It is a block diagram of the management table for managing the estimation result of the development amount of a software component.
 (実施例の概略)
 本実施例は、ソフトウェア開発工程の最初期における、要件獲得、及び、システム提案時に、顧客ヒアリングを通してシステムの概念設計、概算見積もりを作成するフロントシステムエンジニアの支援ツールでの実施を想定する。フロントシステムエンジニアは、例えば、システムインテグレーション事業者において顧客との折衝担当者でも良いし、企業内でのシステム運用、開発担当者でも良い。
(Outline of Examples)
In the present embodiment, it is assumed that the system is designed with a support tool of a front system engineer who creates a conceptual design of the system and a rough estimate through customer interviews at the initial stage of the software development process at the time of requirement acquisition and system proposal. The front system engineer may be, for example, a person in charge of negotiation with a customer in a system integration company, or a person in charge of system operation and development in a company.
 システムエンジニアは、顧客からソフトウェアシステムの新規開発(新規案件)に関するニーズを聞き出し、それに基づいてソフトウェアの構成などの概念設計を作成し、新規開発の開発コストなどを見積もる。その際に、システムエンジニアは、既存のソフトウェアパッケージや流用可能な過去のソフトウェア資産(ソースコード)を含むソフトウェア部品の利用の可否を判断し、判断結果に従ってソフトウェアシステムに適合するソフトウェアの構成を決定する。この際、汎用品が多く、また、機能の共通性の高い通信機能、データ収集・変換機能、蓄積機能については、リアルタイム性などの非機能要件と開発コストから適したソフトウェア部品を選択する。 The system engineer asks the customer about the need for new development (new project) of the software system, creates a conceptual design such as software configuration based on it, and estimates the development cost of the new development. At that time, the system engineer determines whether or not the software component including the existing software package and the past software asset (source code) that can be diverted can be used, and determines the software configuration suitable for the software system according to the determination result. . At this time, there are many general-purpose products, and for communication functions, data collection / conversion functions, and storage functions having high common functions, software components suitable for non-functional requirements such as real-time characteristics and development costs are selected.
 支援ツールにおいては、事前に利用可能なソフトウェア部品群をデータベースに登録しておき、顧客からの非機能要件のヒアリング結果を、システムエンジニアの操作端末から入力し、ヒアリング結果に合致するソフトウェア部品を支援サーバで抽出する。特に、通信機能、データ収集・変換機能、蓄積機能については、各機能に特化した汎用ソフトウェア部品が多く存在し、複数のソフトウェア部品を組合せて実現することで、ソフトウェアシステムを構築することが多い。その場合、当該ソフトウェア部品の組合せ経験の有無が、ソフトウェア部品間のインターフェースの開発ノウハウや流用可能なソースコードの有無に関係し、開発コストに大きく影響することが想定される。 In the support tool, software component groups that can be used in advance are registered in the database, and the results of hearing non-functional requirements from customers are input from the system engineer's operation terminal to support software components that match the hearing results. Extract on the server. Especially for the communication function, data collection / conversion function, and storage function, there are many general-purpose software components specialized for each function, and a software system is often built by combining multiple software components. . In this case, it is assumed that the presence / absence of the combination of the software parts has a great influence on the development cost because it relates to the development know-how of the interface between the software parts and the presence / absence of divertable source code.
 そのために、支援ツールとしては、過去のソフトウェア部品の同時利用の実績を蓄積し、顧客からのヒアリング結果である非機能要件に合致するソフトウェア部品の中から、過去に同時に利用された実績があるソフトウェア部品の組合せを抽出する機能が必要となる。また、顧客からの要望の多い端的な非機能要件のパターンに対して、利用実績の多いソフトウェア部品の組合せをソフトウェア部品パターンとして事前に抽出して、蓄積し、蓄積したソフトウェア部品パターンを優先的に顧客に提案することで、開発ノウハウや流用コードの蓄積を促進することができる。さらに、システムのハードウェア構成やネットワーク構成などのシステムアーキテクチャ(以下、システム構成と称することがある。)とソフトウェ部品パターンとを紐付けて記憶しておくことで、非機能要件に合致するソフトウェア部品として、ハードウェアやネットワークの構成による差異を考慮したものを抽出することができる。 Therefore, as a support tool, software that has been used at the same time in the past from among the software parts that meet the non-functional requirements as a result of interviews with customers is accumulated as a result of simultaneous use of software parts in the past. A function for extracting a combination of parts is required. In addition, for combinations of simple non-functional requirements that are frequently requested by customers, combinations of software components that are frequently used are extracted and stored in advance as software component patterns, and the accumulated software component patterns are given priority. By making proposals to customers, it is possible to promote the accumulation of development know-how and diversion codes. In addition, software that matches non-functional requirements by associating and storing a system architecture such as a system hardware configuration or network configuration (hereinafter sometimes referred to as a system configuration) and a software component pattern. It is possible to extract components that take into account differences due to hardware and network configurations.
 (実施例)
 以下、図面を用いて本発明の一実施例を詳述する。
(Example)
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
 図1は、本発明に係るソフトウェア選択システムの全体構成を示すブロック図である。図1において、ソフトウェア選択システムは、ソフトウェア選択方法を実行する見積もり支援サーバ1001と、見積もり支援サーバ1001が選択対象とするソフトウェアパッケージや流用可能なソースコード(以下、ソフトウェア部品と称する。)の情報(ソフトウェア部品情報)を格納する部品情報蓄積データベース(以下、DBと称することがある。)1002と、過去の開発案件におけるソフトウェア部品の利用の実績を記録する実績管理DB1003と、主に部品情報蓄積DB1002を操作、管理、保守する端末であって、新規ソフトウェア部品の登録を実施する部品登録端末1004と、見積もり支援サーバ1001を操作するための端末であって、フロントシステムエンジニアが、顧客(ユーザ)からのヒアリングによる非機能要件等の情報(要求情報)を入力する複数の見積もり支援端末1005から構成される。 FIG. 1 is a block diagram showing the overall configuration of a software selection system according to the present invention. In FIG. 1, the software selection system includes an estimate support server 1001 that executes a software selection method, and information on software packages that can be selected by the estimate support server 1001 and source code (hereinafter referred to as software components) that can be used. A component information storage database (hereinafter sometimes referred to as DB) 1002 for storing software component information), a results management DB 1003 for recording the use results of software components in past development projects, and a component information storage DB 1002 A terminal that operates, manages, and maintains a component registration terminal 1004 that registers new software components, and a terminal that operates the estimate support server 1001. A front system engineer receives a request from a customer (user) Enter multiple information (request information) such as non-functional requirements by hearing It consists of an estimate support terminal 1005.
 見積もり支援サーバ1001は、ソフトウェアの設計、及び見積もりを行う設計・見積もり支援サーバとして機能する。各見積もり支援端末1005は、広域ネットワーク1006を介して見積もり支援サーバ1001に接続される。見積もり支援サーバ1001と、部品情報蓄積DB1002と、実績管理DB1003、及び部品登録端末1004は、ローカルエリアネットワーク1007を介して互いに接続され、支援ツールとして機能する。なお、ローカルエリアネットワーク1007の代わりに、広域ネットワークを用いることもできる。 The estimation support server 1001 functions as a design / estimation support server that performs software design and estimation. Each estimate support terminal 1005 is connected to the estimate support server 1001 via the wide area network 1006. The estimation support server 1001, the component information storage DB 1002, the performance management DB 1003, and the component registration terminal 1004 are connected to each other via the local area network 1007 and function as a support tool. Note that a wide area network may be used instead of the local area network 1007.
 図2は、ソフトウェア選択システムを構成する各部のハードウェア構成とソフトウェア構成を示す構成図である。図2において、見積もり支援サーバ1001は、内部バスを介して相互に接続されたCPU(Central Processing Unit)2002、メモリ2003、通信部2007、及び、入出力装置2001を備えて構成される。CPU2002は、メモリ2003に格納されたプログラム(以下、PGと称することがある。)に従って各種の処理を実行し、サーバ各部を統括制御するプロセッサとして機能する。メモリ2003には、CPU2002により実行されるPGとして、各見積もり支援端末1005で要件入力を行うための画面(入力画面)と部品選択結果を表示するための画面(出力画面)を生成する表示PG2004、ソフトウェア部品の対応可能要件を分析する部品分析PG2005と、各見積もり支援端末1005から入力された要件(要求情報)に基づいてソフトウェア部品の選択を行う部品抽出PG2006が格納される。通信部2007は、広域ネットワーク1006を介して各見積もり支援端末1005と通信を行う通信インターフェースとして機能すると共に、ローカルネットワーク1007を介して、部品情報蓄積DB1002と、実績管理DB1003、及び部品登録端末1004と通信を行う通信インターフェースとして機能する。入出力装置2001は、マウスやキーボードなどの入力装置と、プリンタや液晶表示装置などの出力装置で構成される。 FIG. 2 is a configuration diagram showing a hardware configuration and a software configuration of each unit constituting the software selection system. In FIG. 2, the estimation support server 1001 includes a CPU (Central Processing Unit) 2002, a memory 2003, a communication unit 2007, and an input / output device 2001 that are connected to each other via an internal bus. The CPU 2002 functions as a processor that executes various processes in accordance with a program (hereinafter also referred to as PG) stored in the memory 2003 and performs overall control of each part of the server. In the memory 2003, as a PG executed by the CPU 2002, a display PG2004 for generating a screen (input screen) for inputting requirements in each estimation support terminal 1005 and a screen (output screen) for displaying a component selection result, Stored are a component analysis PG2005 for analyzing the requirements for handling software components, and a component extraction PG2006 for selecting software components based on the requirements (request information) input from each estimation support terminal 1005. The communication unit 2007 functions as a communication interface that communicates with each estimation support terminal 1005 via the wide area network 1006, and via the local network 1007, the parts information accumulation DB 1002, the results management DB 1003, and the parts registration terminal 1004 Functions as a communication interface for communication. The input / output device 2001 includes an input device such as a mouse and a keyboard and an output device such as a printer and a liquid crystal display device.
 部品情報蓄積DB1002は、内部バスを介して相互に接続されたCPU2002、メモリ2003、通信部2007、部品DB2009、及び、入出力装置2001を備えて構成される。CPU2002は、メモリ2003に格納されたPGに従って各種の処理を実行し、DB各部を統括制御するプロセッサとして機能する。メモリ2003には、CPU2002により実行されるPGとして、部品登録端末1002から入力されたソフトウェア部品の情報を部品DB2009へ蓄積する蓄積PG2008が格納される。 The component information storage DB 1002 includes a CPU 2002, a memory 2003, a communication unit 2007, a component DB 2009, and an input / output device 2001 connected to each other via an internal bus. The CPU 2002 functions as a processor that executes various processes in accordance with the PG stored in the memory 2003 and controls the DB units. The memory 2003 stores an accumulation PG 2008 for accumulating software component information input from the component registration terminal 1002 in the component DB 2009 as a PG executed by the CPU 2002.
 実績管理DB1003は、内部バスを介して相互に接続されたCPU2002、メモリ2003、通信部2007、要件DB2011、組み合わせ実績DB2012、及び、入出力装置2001を備えて構成される。CPU2002は、メモリ2003に格納されたPGに従って各種の処理を実行し、DB各部を統括制御するプロセッサとして機能する。メモリ2003には、CPU2002により実行されるPGとして、各見積もり支援端末1005、及び、見積もり支援サーバ1001からの操作に応答して、ソフトウェア部品の利用実績情報を要件DB2011、及び、組み合わせ実績DB2012へ蓄積する蓄積PG2008が格納される。 The performance management DB 1003 includes a CPU 2002, a memory 2003, a communication unit 2007, a requirement DB 2011, a combination performance DB 2012, and an input / output device 2001 connected to each other via an internal bus. The CPU 2002 functions as a processor that executes various processes in accordance with the PG stored in the memory 2003 and controls the DB units. In the memory 2003, as a PG executed by the CPU 2002, in response to an operation from each estimation support terminal 1005 and the estimation support server 1001, software component usage record information is stored in the requirement DB 2011 and the combination record DB 2012. The stored PG 2008 is stored.
 部品登録端末1004は、内部バスを介して相互に接続されたCPU2002、メモリ2003、通信部2007、及び、入出力装置2001を備えて構成される。CPU2002は、メモリ2003に格納されたPGに従って各種の処理を実行し、端末各部を統括制御するプロセッサとして機能する。メモリ2003には、CPU2002により実行されるPGとして、蓄積PG2008と連携して部品情報を部品DB2009に登録する部品登録PG2013が格納される。 The component registration terminal 1004 includes a CPU 2002, a memory 2003, a communication unit 2007, and an input / output device 2001 that are connected to each other via an internal bus. The CPU 2002 functions as a processor that executes various processes in accordance with the PG stored in the memory 2003, and controls each part of the terminal. The memory 2003 stores a component registration PG 2013 for registering component information in the component DB 2009 in cooperation with the storage PG 2008 as a PG executed by the CPU 2002.
 各見積もり支援端末1005は、内部バスを介して相互に接続されたCPU2002、メモリ2003、通信部2007、及び、入出力装置2001を備えて構成される。CPU2002は、メモリ2003に格納されたPGに従って各種の処理を実行し、端末各部を統括制御するプロセッサとして機能する。メモリ2003には、CPU2002により実行されるPGとして、表示PG2004、部品抽出PG2006と連携して、要件入力の画面(入力画面)と部品選択結果の画面(出力画面)を入出力装置2001に表示する見積もり取得PG2014が格納される。 Each estimation support terminal 1005 includes a CPU 2002, a memory 2003, a communication unit 2007, and an input / output device 2001 that are connected to each other via an internal bus. The CPU 2002 functions as a processor that executes various processes in accordance with the PG stored in the memory 2003, and controls each part of the terminal. The memory 2003 displays a requirement input screen (input screen) and a component selection result screen (output screen) on the input / output device 2001 in cooperation with the display PG2004 and the component extraction PG2006 as PG executed by the CPU 2002. The estimate acquisition PG2014 is stored.
 図3は、ソフトウェア部品情報を管理するための管理テーブルの構成図である。図3において、管理テーブル300は、ソフトウェア部品の1以上の機能が規定された機能要件と当該機能要件に属する機能の属性となる複数の項目が規定された非機能要件とを含むソフトウェア部品情報であって、ソフトウェア部品のスペックを規定したソフトウェア部品情報を管理するためのテーブルである。この管理テーブル300は、キー(Key)301と、名前(Name)302と、値(Value)303から構成され、部品DB2009に蓄積される。キー(Key)301には、各ソフトウェア部品を一意に識別するための識別子の情報(部品ID)が記録される。部品IDは、ソフトウェア部品を識別するIDであって、本実施例のソフトウェア選択方法において選択されるソフトウェア部品の単位ごとに固有の番号が、当該ソフトウェア部品登録時に付与される。 FIG. 3 is a configuration diagram of a management table for managing software component information. In FIG. 3, a management table 300 is software component information including a functional requirement in which one or more functions of the software component are defined and a non-functional requirement in which a plurality of items that are attributes of functions belonging to the functional requirement are defined. It is a table for managing software component information that defines the specifications of software components. The management table 300 includes a key 301, a name 302, and a value 303, and is stored in the component DB 2009. In the key 301, identifier information (component ID) for uniquely identifying each software component is recorded. The component ID is an ID for identifying the software component, and a unique number is assigned to each unit of the software component selected in the software selection method of this embodiment when the software component is registered.
 名前(Name)302は、名称、機能分類、機能項目、対応要件・適時性、対応要件・信頼性、・・・、調達価格から構成される。名称は、各ソフトウェア部品固有の名称である。名称に対応する値には、部品ID=1の名称の値として、例えば「AAA ESB」が記録される。機能分類は、ソフトウェア部品が実行可能な機能である。この機能分類に対応する値(Value)303には、部品ID=1の機能分類の値として、例えば、ソフトウェア部品が通信機能とデータ収集機能を備えている場合、「通信、収集」が記録される。機能項目は、ソフトウェア部品が実行可能な機能の項目である。この機能項目に対応する値(Value)303には、例えば、部品ID=1の機能項目の値として、例えば、ソフトウェア部品が各種の通信方法を備えている場合、「pub-sub、request-response、ネーミングサービス」が記録される。 Name 302 is composed of name, function classification, function item, corresponding requirement / timeliness, corresponding requirement / reliability, ..., procurement price. The name is a name unique to each software component. In the value corresponding to the name, for example, “AAA ESB” is recorded as the value of the name of the component ID = 1. The function classification is a function that can be executed by the software component. In the value (Value) 303 corresponding to the function classification, “communication, collection” is recorded as the value of the function classification of the component ID = 1, for example, when the software component has the communication function and the data collection function. The The function item is an item of a function that can be executed by the software component. In the value 303 corresponding to this function item, for example, as the value of the function item of component ID = 1, for example, when the software component has various communication methods, “pub-sub, request-response” , "Naming service" is recorded.
 対応要件・適時性は、ソフトウェア部品が、機能に対応する非機能要件として、適時性を有することを意味する。対応要件・適時性に対応する値(Value)303には、部品ID=1の対応要件・適時性の値として、例えば、「セミリアルタイム」が記録される。対応要件・信頼性は、ソフトウェア部品が、機能に対応する非機能要件として、信頼性を有することを意味する。対応要件・信頼性に対応する値(Value)303には、部品ID=1の対応要件・信頼性の値として、例えば、「無停止、定期保守」が記録される。調達価格は、各ソフトウェア部品として調達可能な価格である。調達価格に対応する値(Value)には、部品ID=1の調達価格の値として、例えば、「10000000」が記録される。 Requirement requirement / timeliness means that software components have timeliness as non-functional requirements corresponding to functions. For example, “semi-real time” is recorded in the value 303 corresponding to the correspondence requirement / timeliness as the value of the correspondence requirement / timeliness of the component ID = 1. Corresponding requirement / reliability means that a software component has reliability as a non-functional requirement corresponding to a function. In the value 303 corresponding to the requirement / reliability, for example, “Non-stop, periodic maintenance” is recorded as the value of the requirement / reliability for the component ID = 1. The procurement price is a price that can be procured as each software component. In the value (Value) corresponding to the procurement price, for example, “10000000” is recorded as the value of the procurement price with the component ID = 1.
 なお、ソフトウェア部品が、蓄積や通信機能を有し、DBやファイルを管理する機能項目を有する場合、機能項目の値として、「SQL、File-Storage」が記録される。また、ソフトウェア部品が、機能に対応する非機能要件として、適時性を有し、「オフライン、オンライン」での処理が可能である場合、対応要件・適時性に対応する値(Value)として、「オフライン、オンライン」が記録される。 If the software component has a storage or communication function and a function item for managing a DB or file, “SQL, File-Storage” is recorded as the value of the function item. In addition, when a software component has timeliness as a non-functional requirement corresponding to a function and can be processed in “offline, online”, a value corresponding to the requirement / timeliness as “Value” "Offline, Online" is recorded.
 上述したように、各ソフトウェア部品には、各部品を示す名称と、対応可能な機能要件を示す機能分類と機能項目が登録され、また、当該ソフトウェア部品の仕様として対応可能な非機能要件項目の対応可能範囲が登録される。 As described above, each software component is registered with a name indicating each component, a function category and a function item indicating a functional requirement that can be supported, and a non-functional requirement item that can be supported as a specification of the software component. The applicable range is registered.
 この際、例えば、部品ID=1のソフトウェア部品においては、名称が「AAA ESB」であり、「通信」「収集」の機能を持つことになる。また、部品ID=1のソフトウェア部品の機能詳細としては、「pub-sub」「request-response」通信と「ネーミングサービス」の機能を持つことになる。非機能要件として、「適時性」の非機能要件項目に対しては、「セミリアルタイム」の適時性(スピード)に対応可能であり、「信頼性」の非機能要件項目に対しては、「無停止」「定期保守」のいずれかの信頼性(停止の有無)に対応可能である。 In this case, for example, in the software component with component ID = 1, the name is “AAA ESB”, and it has the functions of “communication” and “collection”. The function details of the software component with component ID = 1 include “pub-sub” “request-response” communication and “naming service” functions. As non-functional requirements, “semi-real-time” non-functional requirement items can be handled for non-functional requirement items, and for “non-functional requirement items of“ reliability ”,“ It is possible to cope with the reliability (presence or absence of stoppage) of either “non-stop” or “periodic maintenance”.
 本実施例におけるソフトウェア部品の非機能要件の対応要件としては、「セミリアルタイム」、「オフライン」、「オンライン」などの離散的なカテゴリで非機能要件のレベルを示すこととしているが、通信速度などの連続的、定量的な表現でも良いし、非機能要件の対応レベルを比較可能な記述方法であれば、いずれの方法でも良い。これらの情報を部品登録端末1004から入力し、部品DB2009に蓄積しておくことで、ソフトウェア選択の対象となる。 As the correspondence requirement of the non-functional requirement of the software component in this embodiment, the level of the non-functional requirement is indicated in a discrete category such as “semi-real time”, “offline”, “online”, but the communication speed etc. The method may be a continuous or quantitative expression, or any description method as long as it can compare the corresponding levels of non-functional requirements. By inputting these pieces of information from the component registration terminal 1004 and accumulating them in the component DB 2009, the software can be selected.
 図4は、ソフトウェア部品の利用実績情報を管理する管理テーブルの構成図である。図4において、管理テーブル400は、ソフトウェア部品の利用実績情報を管理するためのテーブルであって、キー(Key)401と、名前(Name)402と、値(Value)403から構成され、実績管理DB1003の要件DB2011と組合せDB2012に蓄積される。 FIG. 4 is a configuration diagram of a management table for managing the usage history information of software components. In FIG. 4, a management table 400 is a table for managing the usage history information of software components, and is composed of a key 401, a name 402, and a value 403. Accumulated in DB1003 requirement DB2011 and combination DB2012.
 キー(Key)401には、キー(Key)301と同様に、各ソフトウェア部品を一意に識別するための識別子の情報(部品ID)が記録される。名前(Name)402は、名称、対応要件・適時性、対応要件・信頼性、同時利用部品から構成される。名称、対応要件・適時性、対応要件・信頼性に対応する値(Value)403には、値(Value)303と同様の情報が記録される。同時利用部品は、各ソフトウェア部品が、他のソフトウェア部品と同時に実行可能である場合、他のソフトウェア部品を特定するための情報である。同時利用部品に対応する値(Value)403には、例えば、ID=1のソフトウェア部品と同時に実行可能なソフトウェア部品として、3個のソフトウェア部品(ID=3、ID=4、ID=9)が存在する場合、部品ID=1の同時利用部品の値として、「ID=3、ID=4、ID=9」が記録される。 As with the key 301, identifier information (component ID) for uniquely identifying each software component is recorded in the key 401. The name 402 is composed of a name, corresponding requirement / timeliness, corresponding requirement / reliability, and simultaneous use parts. Information similar to the value (Value) 303 is recorded in the value (Value) 403 corresponding to the name, the corresponding requirement / timeliness, and the corresponding requirement / reliability. The simultaneous use component is information for specifying another software component when each software component can be executed simultaneously with the other software component. In the value 403 corresponding to the simultaneous use component, for example, three software components (ID = 3, ID = 4, ID = 9) are executed as software components that can be executed simultaneously with the software component with ID = 1. If present, “ID = 3, ID = 4, ID = 9” is recorded as the value of the simultaneously used component with the component ID = 1.
 ソフトウェア部品の利用実績情報には、対応要件として、過去に実際に対応した非機能要件の内容が記録され、また、同時に利用した実績のある部品の情報が記録される。 In the usage history information of software parts, the contents of non-functional requirements that have actually been supported in the past are recorded as corresponding requirements, and information on parts that have been used at the same time is recorded.
 ソフトウェア部品の利用実績情報から、例えば、部品ID=1の「AAA ESB」は、過去に適時性(スピード)が「セミリアルタイム」に該当する案件で利用され、また、信頼性が「無停止」と「定期保守」である案件で利用されたことが分かる。また、部品ID=1の「AAA ESB」は、ソフトウェア部品ID=3,4,9のソフトウェア部品と同時に利用されたことが分かる。これらの情報を見積もり支援端末1005で入力された実績の情報より作成して登録しておくことで、ソフトウェア選択時に優先的に実績のある要件や組合せを選択することが可能となる。 From the usage information of software parts, for example, “AAA ESB” with part ID = 1 is used in projects where the timeliness (speed) is “semi-real-time” in the past, and the reliability is “non-stop”. It can be seen that it was used in the case of “periodic maintenance”. It can also be seen that “AAA ESB” with component ID = 1 was used at the same time as the software component with software component ID = 3,4,9. By creating and registering these pieces of information based on the results information input at the estimate support terminal 1005, it becomes possible to select requirements and combinations with results with priority when selecting software.
 図5は、評価テーブルの構成図である。図5において、評価テーブル500は、見積もり支援サーバ1001の表示PG2004による要件入力項目の選定のためのテーブルであって、項目501、値502、頻度503から構成される。 FIG. 5 is a configuration diagram of the evaluation table. In FIG. 5, an evaluation table 500 is a table for selecting requirement input items by the display PG 2004 of the estimation support server 1001, and includes items 501, values 502, and frequencies 503.
 項目501は、非機能要件の項目であり、項目501には、「適時性」、「信頼性」の情報が記録される。値502は、非機能要件値であり、値502には、「オフライン」、「オンライン」、「セミリアルタイム」、「リアルタイム」、「ハードリアルタイム」、「エントロピー」の情報が記録される。頻度503には、値502に対応した数値の情報が記録される。 Item 501 is a non-functional requirement item, and information on “timeliness” and “reliability” is recorded in item 501. The value 502 is a non-functional requirement value, and information of “offline”, “online”, “semi-real time”, “real time”, “hard real time”, and “entropy” is recorded in the value 502. In the frequency 503, numerical information corresponding to the value 502 is recorded.
 各非機能要件項目の非機能要件値ごとに、対応する製品数、もしくは、過去の案件で対応した実績のある製品数がカウントされ、カウント値が評価テーブル500に蓄積される。この際、カウント結果より、例えば、エントロピーを算出して、幅広い値に対応可能な非機能要件を抽出することができる。 ∙ For each non-functional requirement value of each non-functional requirement item, the number of corresponding products or the number of products that have been supported in past projects is counted, and the count value is accumulated in the evaluation table 500. At this time, for example, the entropy can be calculated from the count result, and the non-functional requirements that can deal with a wide range of values can be extracted.
 例えば、適時性のエントロピーが、「0.404」であり、信頼性のエントロピーが、「0.278」である場合、信頼性よりも適時性の非機能要件の方が幅広い要件値に対応可能なソフトウェア部品が登録されていることが分かる。幅広い要件値に対応可能な非機能要件項目を優先的に顧客への質問項目とすることで、ソフトウェア部品の選択に有効な質問項目へ絞り込むことができる。 For example, if the entropy of timeliness is “0.404” and the entropy of reliability is “0.278”, there is a software component that can support a wider range of requirement values for non-functional requirements for timeliness than reliability. You can see that it is registered. By making non-functional requirement items that can support a wide range of requirement values preferentially question items for customers, it is possible to narrow down to question items that are effective for selecting software components.
 図6は、見積もり支援端末における入力画面の構成図である。図6において、入力画面600は、見積もり支援端末1005の入出力装置2001の表示画面であって、フロントエンジニアからの入力を受け付ける画面である。 FIG. 6 is a configuration diagram of an input screen in the estimation support terminal. In FIG. 6, an input screen 600 is a display screen of the input / output device 2001 of the estimation support terminal 1005, and is a screen that accepts input from a front engineer.
 入力画面600は、見積もり支援端末1005を操作するフロントエンジニアが、新規案件の情報(要求情報)を入力したり、ソフトウェア部品の抽出を要求したりする画面として利用される。入力画面600の表示領域には、システム構成601、機能要件602、非機能要件603、検索条件604等が表示される。 The input screen 600 is used as a screen for a front engineer operating the estimate support terminal 1005 to input information (request information) of a new case or request extraction of software parts. In the display area of the input screen 600, a system configuration 601, a functional requirement 602, a non-functional requirement 603, a search condition 604, and the like are displayed.
 システム構成601の領域には、サーバ構成、通信路、デバイスをそれぞれ選択・特定するための情報が表示される。この際、サーバや通信路の構成などのシステム構成が事前に決まっている場合に、フロントエンジニアは、これらの情報を入力する。 In the system configuration 601 area, information for selecting and specifying the server configuration, communication path, and device is displayed. At this time, if the system configuration such as the server and communication path configuration is determined in advance, the front engineer inputs these pieces of information.
 機能要件602の領域には、分析機能、蓄積機能、収集機能をそれぞれ選択・特定するための情報が表示される。この際、フロントエンジニアは、当該案件において求められる機能要件を入力する。 In the functional requirement 602 area, information for selecting and specifying the analysis function, the storage function, and the collection function is displayed. At this time, the front engineer inputs the functional requirements required in the case.
 非機能要件603の領域には、適時性、信頼性をそれぞれ選択・特定するための情報が表示される。この際、フロントエンジニアは、各非機能要件項目ごとに当該案件において対応すべき非機能要件値(「オフライン」、「オンライン」)を入力する。また、非機能要件603の領域には、質問項目を示す情報が表示される。 In the non-functional requirement 603 area, information for selecting and specifying timeliness and reliability is displayed. At this time, the front engineer inputs a non-functional requirement value (“offline”, “online”) to be dealt with in the case for each non-functional requirement item. Also, information indicating question items is displayed in the non-functional requirement 603 area.
 検索条件604の領域には、ソフトウェア部品を抽出する際に優先する条件を設定するための情報(「実績優先」、「適合優先」、「調達価格優先」)が表示されると共に、OKボタン605、NGボタン606が表示される。 In the area of the search condition 604, information for setting a priority condition when extracting software parts (“result priority”, “adaptation priority”, “procurement priority”) is displayed, and an OK button 605 is displayed. , NG button 606 is displayed.
 図7は、見積もり支援端末における出力画面の構成図である。図7において、出力画面700は、見積もり支援端末1005の入出力装置2001の表示画面であって、入力画面600から入力された新規案件の情報(要求情報)を基にソフトウェア部品の組合せを推薦する出力画面である。 FIG. 7 is a configuration diagram of an output screen in the estimation support terminal. In FIG. 7, an output screen 700 is a display screen of the input / output device 2001 of the estimation support terminal 1005, and recommends a combination of software components based on information (request information) of a new case input from the input screen 600. This is the output screen.
 出力画面700の表示領域には、抽出製品一覧701、適用実績702、要新規開発事項703が表示される。抽出製品一覧701の領域には、部品抽出PG2006で実行されるソフトウェア部品の選択方法で抽出されたソフトウェア部品の一覧(例えば、過去に同時に利用された実績のあるソフトウェア部品の組合せ)が表示される。この際、複数の組合せ候補があれば、それぞれの候補も表示される。この場合、選択ボタン704、705、706のいずれかを操作することで、候補1から候補3の組合せの候補が表示される。 In the display area of the output screen 700, an extracted product list 701, an application record 702, and a new development item 703 required are displayed. In the area of the extracted product list 701, a list of software components extracted by the software component selection method executed in the component extraction PG2006 (for example, a combination of software components that have been used at the same time in the past) is displayed. . At this time, if there are a plurality of combination candidates, each candidate is also displayed. In this case, by operating any of the selection buttons 704, 705, and 706, combinations of candidates 1 to 3 are displayed.
 適用実績702と要新規開発事項703の領域には、当該ソフトウェア部品の組合せにおける補足情報が表示される。例えば、適用実績702の領域には、当該ソフトウェア組合せの利用実績を示す情報が表示され、要新規開発事項703の領域には、新規案件において対応していない機能項目や非機能要件を示す情報が表示される。 Supplementary information on the combination of the software parts is displayed in the area of the application record 702 and the new development item 703 required. For example, information indicating the usage record of the software combination is displayed in the application record 702 area, and information indicating functional items and non-functional requirements that are not supported in the new project is displayed in the area of the new development item 703 required. Is displayed.
 図8は、ソフトウェア部品の選択方法の概要を説明するためのフローチャートである。この処理は、主に部品抽出PG2006、及び、部品分析PG2005にて実行される。 FIG. 8 is a flowchart for explaining an outline of a method for selecting software components. This process is mainly executed by the component extraction PG2006 and the component analysis PG2005.
 部品登録端末1004の入出力装置2001から、新規に追加されたソフトウェア部品の情報(ソフトウェア部品情報)が部品登録端末1004に入力されると、部品登録PG2013は、入力されたソフトウェア部品の情報を、通信部2007を介して部品情報蓄積DB1002に転送する。この後、部品情報蓄積DB1002の蓄積PG2008は、部品登録端末1004から転送されたソフトウェア部品の情報を部品DB2009に登録する(S11)。この際、部品DB2009には、過去に利用された各種ソフトウェア部品の情報と共に、新規に追加されたソフトウェア部品の情報が、抽出対象となるソフトウェア部品の情報として登録される。即ち、過去に利用された実績のあるソフトウェア部品と新規のソフトウェア部品のソフトウェア部品情報は、管理テーブル300に登録されて管理される。 When the newly added software component information (software component information) is input to the component registration terminal 1004 from the input / output device 2001 of the component registration terminal 1004, the component registration PG2013 displays the input software component information, Transfer to the component information storage DB 1002 via the communication unit 2007. Thereafter, the storage PG 2008 of the component information storage DB 1002 registers the software component information transferred from the component registration terminal 1004 in the component DB 2009 (S11). At this time, in the component DB 2009, information on newly added software components is registered as information on software components to be extracted together with information on various software components used in the past. In other words, software component information of past and new software components that have been used in the past is registered and managed in the management table 300.
 次に、いずれかの見積もり支援端末1005は、見積もり取得PG2014を起動し、顧客ヒアリングなどを通して、新規案件(新規に構築すべきソフトウェアシステム)に要求される要求情報(新規案件における機能を示す機能要件及び信頼性などの非機能要件を含む要求情報)の入力を受け付ける(S12)。この際、見積もり支援端末1005は、見積もり支援サーバ1001の表示PG2004が生成した要件入力の入力画面を入出力装置2001の表示画面上に表示し、システムエンジニアの操作による情報として、新規案件の機能要件や非機能要件を含む要求情報を入力する。なお、要求情報には、新規案件のシステム構成として、契約済みの通信路や、クラウド、仮想化などの情報を含めることもできる。また、本ステップにける表示PG2004、及び、見積もり取得PG2014の処理は、図9のフローにて詳述する。 Next, one of the estimate support terminals 1005 activates the estimate acquisition PG2014, and through customer interviews, request information required for a new case (a software system to be newly constructed) (functional requirements indicating functions in the new case) And input of request information including non-functional requirements such as reliability (S12). At this time, the estimate support terminal 1005 displays the input screen of the requirement input generated by the display PG 2004 of the estimate support server 1001 on the display screen of the input / output device 2001, and uses the function requirements of the new matter as information by the operation of the system engineer. Or request information including non-functional requirements. The request information can also include information such as a contracted communication path, cloud, and virtualization as the system configuration of the new case. The processing of the display PG 2004 and the estimate acquisition PG 2014 in this step will be described in detail with reference to the flow of FIG.
 次に、見積もり支援サーバ1001は、見積もり支援端末1005に入力された要求情報を基に部品DB2009に登録されたソフトウェア部品の情報(ソフトウェア部品情報)を検索して、部品DB2009に登録されたソフトウェア部品(管理テーブル300に登録されたソフトウェア部品)の中から、見積もり支援端末1005に入力された機能要件のうち少なくとも一部の機能が適合し、且つ非機能要件の中の少なくとも一部の項目が適合したソフトウェア部品を抽出して出力する(S13)。この際、部品抽出PG2006は、実績管理DB1003の組合せDB2012に登録されたソフトウェア部品(管理テーブル400に登録されたソフトウェア部品)の中から、見積もり支援端末1005に入力された機能要件のうち少なくとも一部の機能が適合し、且つ非機能要件の中の少なくとも一部の項目が適合したソフトウェア部品であって、過去に同時に利用された実績のある1つ以上のソフトウェア部品を抽出し、抽出したソフトウェア部品の情報(ソフトウェア部品情報)を、表示PG2004の生成による画面上に表示することもできる。なお、本ステップにおける。部品抽出PG2006の処理は、図10、及び、図13にて詳述する。 Next, the estimate support server 1001 searches the software component information (software component information) registered in the component DB 2009 based on the request information input to the estimate support terminal 1005, and the software component registered in the component DB 2009. At least some of the functional requirements input to the estimate support terminal 1005 are compatible and at least some of the non-functional requirements are compatible from (software components registered in the management table 300) The extracted software parts are extracted and output (S13). At this time, the component extraction PG2006 is at least a part of the functional requirements input to the estimation support terminal 1005 from the software components (software components registered in the management table 400) registered in the combination DB2012 of the performance management DB1003. One or more software components that have been used at the same time in the past, and that have been used at the same time, and at least some of the non-functional requirements are compatible. (Software component information) can also be displayed on the screen by generating the display PG2004. In this step. The process of parts extraction PG2006 will be described in detail with reference to FIGS.
 最後に、見積もり支援サーバ1001は、実際に選択、開発に利用されたソフトウェア部品の情報を利用履歴として、実績管理DB1003の組合せDB2012に登録する(S14)。この際、見積もり支援サーバ1001は、見積もり支援端末1005より、実際に選択、開発に利用されたソフトウェア部品の情報を利用履歴として受付、受け付けた利用履歴のうちソフトウェア部品の利用の組み合わせの情報を、実績管理DB1003の組合せDB2012に登録し、登録した情報を管理テーブル400で管理し、新規案件において対応した要件の情報を、実績管理DB1003の要件DB2011に登録する。また、見積もり支援サーバ1001の部品分析PG2005にて、新規案件において対応した要件やシステム構成のパターンを生成する。なお、部品分析PG2005における処理は図11にて詳述する。 Finally, the estimate support server 1001 registers the information of the software parts actually used for selection and development as a usage history in the combination DB 2012 of the results management DB 1003 (S14). At this time, the estimate support server 1001 receives from the estimate support terminal 1005 the information of the software parts actually selected and used for development as the use history, and the combination information of the use of the software parts in the received use history, Registered in the combination DB 2012 of the performance management DB 1003, manages the registered information in the management table 400, and registers the requirement information corresponding to the new case in the requirements DB 2011 of the performance management DB 1003. In addition, the component analysis PG2005 of the estimate support server 1001 generates requirements and system configuration patterns corresponding to the new project. The processing in the component analysis PG2005 will be described in detail with reference to FIG.
 図9は、要件獲得のための入力項目の生成・変更処理を説明するためのフローチャートである。この処理は、図8のステップS12の具体的内容であって、主に表示PG2004、及び、見積もり取得PG2014によって実行される。 FIG. 9 is a flowchart for explaining an input item generation / change process for acquiring requirements. This process is the specific content of step S12 of FIG. 8, and is mainly executed by the display PG 2004 and the estimate acquisition PG 2014.
 まず、見積もり支援端末1005の見積もり取得PG2014は、全てのソフトウェア部品が対応可能な非機能要件の情報であって、部品情報蓄積DB1002の部品DB2009及び実績管理DB1003の要件DB2011に蓄積されている、各ソフトウェア部品が対応可能な非機能要件の一覧(非機能要件の範囲)を取得する(S21)。ここで取得される非機能要件の情報とは、「適時性」などの非機能要件の種別を示す項目と、「リアルタイム」、「オフライン」などの非機能要件のレベルを示す値の組である。非機能要件のレベルを示す値については、複数の項目が登録されていても良い。また、非機能要件のレベルは、部品の仕様として新規登録時に、部品DB2009に登録されていてもよいし、過去の開発時に、対応した実績のある要件として、要件DB2011に蓄積されていてもよい。 First, the estimate acquisition PG 2014 of the estimate support terminal 1005 is information on non-functional requirements that can be handled by all software components, and is stored in the component DB 2009 of the component information storage DB 1002 and the requirement DB 2011 of the results management DB 1003. A list of non-functional requirements that can be handled by the software component (range of non-functional requirements) is acquired (S21). The non-functional requirement information acquired here is a set of items indicating the type of non-functional requirements such as “timeliness” and values indicating the level of non-functional requirements such as “real time” and “offline”. . A plurality of items may be registered for the value indicating the level of non-functional requirements. In addition, the level of non-functional requirements may be registered in the parts DB 2009 at the time of new registration as a part specification, or may be accumulated in the requirements DB 2011 as a requirement with a corresponding track record during past development. .
 次に、見積もり取得PG2014は、各非機能要件の項目(「適時性」などの項目)ごとに、全てのソフトウェア部品で対応可能範囲の大きさ(全てのソフトウェア部品で対応可能な値(非機能要件のレベル)の大きさ)を評価する(S22)。この評価方法は、登録されている全てのソフトウェア部品全体で対応可能な要件の多様性を比較可能な方法であればいずれの方法でもよい。例えば、各非機能要件の項目ごとに、非機能要件のレベルを示す値の出現確率を算出し、以下に示す数1式により、各非機能要件の項目ごとに、情報エントロピーを算出する。
Figure JPOXMLDOC01-appb-M000001
Next, estimate acquisition PG2014, for each non-functional requirement item (items such as “timeliness”), the size of the range that can be supported by all software components (value that can be supported by all software components (non-functional) The size of requirement level) is evaluated (S22). This evaluation method may be any method as long as it can compare the diversity of requirements that can be handled by all registered software components. For example, the appearance probability of a value indicating the level of the non-functional requirement is calculated for each item of the non-functional requirement, and the information entropy is calculated for each item of the non-functional requirement by the following equation (1).
Figure JPOXMLDOC01-appb-M000001
 次に、見積もり取得PG2014は、分析結果を示す管理テーブル500を参照し、対応可能範囲の大きい(非機能要件のレベルが大きい)項目を1つ以上抽出する(S23)。この際、例えば、各非機能要件の項目のうち、情報エントロピーが高い、非機能要件の項目(「適時性」)を、事前に規定された個数だけ抽出しても良いし、各非機能要件の項目のうち情報エントロピーが規定の値よりも高い、非機能要件項目のみ抽出してもよい。 Next, the estimate acquisition PG 2014 refers to the management table 500 indicating the analysis result, and extracts one or more items having a large applicable range (the level of non-functional requirements is large) (S23). At this time, for example, a non-functional requirement item (“timeliness”) having a high information entropy among each non-functional requirement item may be extracted in a predetermined number, or each non-functional requirement item may be extracted. Of these items, only non-functional requirement items whose information entropy is higher than a prescribed value may be extracted.
 最後に、見積もり取得PG2014は、ステップS23で抽出した非機能要件の項目、例えば、非機能要件の「適時性」を元に顧客への質問項目を生成する(S24)。この際、表示PG2004は、見積もり取得PG2014が抽出した非機能要件の項目を、入出力装置2001の表示画面上に表示するための画面であって、顧客からヒアリングするための画面を生成する。この画面は、見積もり取得PG2014が抽出した非機能要件の項目について、顧客が回答を入力可能であればいずれの形式でも良い。例えば、見積もり取得PG2014が抽出した非機能要件の項目を一覧で表示し、この非機能要件の項目と対応する非機能要件の値を選択する形式とすることできる。 Finally, the estimate acquisition PG 2014 generates a question item for the customer based on the item of the non-functional requirement extracted in step S23, for example, “timeliness” of the non-functional requirement (S24). At this time, the display PG 2004 generates a screen for displaying the items of the non-functional requirements extracted by the estimate acquisition PG 2014 on the display screen of the input / output device 2001 and for hearing from the customer. This screen may be in any format as long as the customer can input an answer regarding the items of non-functional requirements extracted by the estimate acquisition PG 2014. For example, a non-functional requirement item extracted by the estimate acquisition PG 2014 may be displayed in a list and a non-functional requirement value corresponding to the non-functional requirement item may be selected.
 この際、見積もり取得PG2014は、ユーザから、新規案件の機能要件と非機能要件を含む要求情報を質問項目として受け付ける際に、部品DB2009のソフトウェア部品情報を参照し、部品DB2009に蓄積された各ソフトウェア部品に対して、要求情報に含まれる非機能要件の項目ごとに、対応可能な範囲の大きさを評価し、この評価結果から対応可能な範囲の大きい非機能要件の項目を抽出し、抽出した非機能要件の項目に従って質問項目の一部を変更することができる。このため、ソフトウェア部品の選択に有効な質問項目へ絞り込むことができる。 At this time, the estimate acquisition PG 2014 refers to the software component information of the component DB 2009 and receives each software stored in the component DB 2009 when receiving request information including the functional requirement and non-functional requirement of the new matter as a question item from the user. For each non-functional requirement item included in the requirement information, evaluate the size of the range that can be handled, and extract and extract the non-functional requirement item with a large range that can be handled from this evaluation result. Part of the question items can be changed according to the non-functional requirement items. For this reason, it is possible to narrow down to question items effective for selecting software components.
 図10は、最適なソフトウェア部品を抽出する処理を説明するためのフローチャートである。この処理は、図8のステップS13の具体的内容であって、主に見積もり支援サーバ1001の部品抽出PG2006によって実行される。 FIG. 10 is a flowchart for explaining the process of extracting the optimum software component. This process is the specific content of step S13 in FIG. 8, and is mainly executed by the component extraction PG2006 of the estimation support server 1001.
 まず、見積もり支援サーバ1001の部品抽出PG2006は、図8のステップS12及びステップS12及び図9のステップS21で示した処理により、新規案件の要件(要求情報)を取得する(S31)。この際、前述した非機能要件に加えて、対応すべき機能要件が有る場合は加えて取得する。また、既設のシステムがある場合や既に基本となるハードウェア構成が決定している場合など、システム構成に制約がある場合は加えて取得する。 First, the parts extraction PG2006 of the estimate support server 1001 acquires the requirements (request information) of the new case by the processing shown in step S12 and step S12 in FIG. 8 and step S21 in FIG. 9 (S31). At this time, in addition to the above-described non-functional requirements, if there are functional requirements to be dealt with, they are additionally acquired. In addition, when there is a restriction on the system configuration, such as when there is an existing system or when the basic hardware configuration has already been determined, it is additionally acquired.
 次に、部品抽出PG2006は、新規案件の機能要件を基に対応可能な部品リスト(管理テーブル300)を検索して、部品DB2009(管理テーブル300)に登録されたソフトウェア部品情報の中から、新規案件の機能要件の記述に適合するソフトウェア部品のみを1以上取得する(S32)。例えば、新規案件の機能要件が、「通信」である場合、ソフトウェア部品情報の機能要件の中に「通信」が記録されているソフトウェア部品を取得する。この取得方法は、部品の仕様として記載された機能分類や機能項目と新規案件の機能要件の記述が一致するものを検索してもよいし、欠損値や用語の類似度を定義して、その一致度を評価するあいまい検索により抽出しても、いずれの方法でも良い。 Next, the component extraction PG2006 searches the compatible component list (management table 300) based on the functional requirements of the new project, and creates a new one from the software component information registered in the component DB2009 (management table 300). Only one or more software components that conform to the description of the functional requirements of the case are acquired (S32). For example, when the functional requirement of the new case is “communication”, the software component in which “communication” is recorded in the functional requirement of the software component information is acquired. This acquisition method may search for items whose function classifications and function items described as part specifications match the description of the functional requirements of the new project, or define missing values and similarity of terms, Either a fuzzy search for evaluating the degree of coincidence or either method may be used.
 次に、部品抽出PG2006は、抽出したソフトウェア部品の中で非機能要件に対応可能なもののみへ絞り込む(S33)。例えば、新規案件の非機能要件の項目として、「信頼性」が記録されている場合、抽出したソフトウェア部品の中で非機能要件として「信頼性」が規定されているソフトウェア部品のみを絞り込みの対象とする。 Next, the component extraction PG2006 narrows down only the extracted software components that can meet the non-functional requirements (S33). For example, if “Reliability” is recorded as a non-functional requirement item for a new project, only the software components for which “Reliability” is defined as a non-functional requirement among the extracted software components And
 この後、部品抽出PG2006は、ステップS33で絞り込まれたソフトウェア部品の組合せについて、優先する抽出条件は、「実績優先」あるいは「機能優先」であるか否かを判定する(S34)。ステップS34で、「実績優先」と判定した場合、即ち、事前に設定された部品の抽出条件が実績優先の場合、部品抽出PG2006は、管理テーブル400を検索して、ステップS33で絞り込まれたソフトウェア部品の中から、過去に利用実績のあるソフトウェア部品の組合せを抽出する(S35)。この際、部品抽出PG2006は、絞り込まれたソフトウェア部品の中から、過去に同時に利用した実績が有る、ソフトウェア部品の組合せ(管理テーブル400のうち同時利用部品として、その値403が記録されている部品IDで特定されるソフトウェア部品の組合せ)を抽出する。 Thereafter, the component extraction PG 2006 determines whether the priority extraction condition is “result priority” or “function priority” for the combination of software components narrowed down in step S33 (S34). If it is determined in step S34 that "result priority", that is, if the preset component extraction condition is result priority, the component extraction PG 2006 searches the management table 400 and the software narrowed down in step S33. A combination of software parts that have been used in the past is extracted from the parts (S35). At this time, the component extraction PG2006 is a combination of software components that have been used in the past among the narrowed-down software components (the component whose value 403 is recorded as a simultaneously used component in the management table 400) (A combination of software parts specified by ID) is extracted.
 この後、部品抽出PG2006は、過去に同時に利用した実績が有る、ソフトウェア部品の組合せのうち、新規案件が想定するシステム構成に合致する組み合わせを抽出(選定)し(S36)、このルーチンでの処理を終了する。 After that, the component extraction PG2006 extracts (selects) a combination that matches the system configuration assumed by the new case from among the combinations of software components that have been used in the past (S36). Exit.
 ここで、新規案件が想定するシステム構成とは、既に敷設、もしくは、契約済みの通信路や、クラウド、仮想化などのIT処理ハードの構成の有無とその種別を含む。前記抽出したソフトウェア部品の組合せの実績において、システム構成に一致している実績の有るソフトウェア部品の組合せを選定する。また、システム構成として、既設のシステムが利用しているソフトウェア部品の情報を含む場合には、既設で利用しているソフトウェア部品との同時利用実績のあるソフトウェア部品の組合せを選定する。 Here, the system configuration assumed for a new project includes the presence and type of IT processing hardware such as already installed or contracted communication paths, cloud, and virtualization. In the extracted combination of software parts, a combination of software parts having a record matching the system configuration is selected. When the system configuration includes software component information used by an existing system, a combination of software components that have been used with the existing software component is selected.
 一方、ステップS34で、「機能優先」と判定した場合、部品抽出PG2006は、ステップS34で絞り込まれたソフトウェア部品の中から、新規案件の機能要件のうち機能項目の重複又は不足の少ないソフトウェワ部品の組合せを抽出し(S37)、このルーチンでの処理を終了する。 On the other hand, if it is determined in step S34 that “function priority”, the component extraction PG 2006 selects a software component with few duplicated or insufficient function items from among the functional requirements of the new item from the software components narrowed down in step S34. A combination is extracted (S37), and the processing in this routine is terminated.
 なお、ステップS35の後に、システム構成は、決定済みか否かを判定するステップを追加し、このステップで肯定の判定結果を得た場合、即ち、事前に顧客においてシステム構成が決定されている場合(要求情報の中に新規案件におけるシステム構成に関する情報が存在する場合)、部品抽出PG2006が、事前に決定されたシステム構成を選定し、その後、ステップS36の処理を実行し、システム構成は、決定済みでないと判定した場合、このルーチンでの処理を終了することもできる。また、ステップS32の後、又はステップS35の後に、ソフトウェア部品の調達価格は、設定価格の範囲内か否かを判定するステップを追加し、ソフトウェア部品の調達価格が、設定価格の範囲内であることを条件に、部品抽出PG2006が、ステップS33又はステップS35の処理を実行することもできる。 In addition, after step S35, a step for determining whether or not the system configuration has been determined is added, and when a positive determination result is obtained in this step, that is, when the system configuration is determined in advance by the customer (When there is information related to the system configuration in the new case in the request information), the parts extraction PG 2006 selects the system configuration determined in advance, and then executes the process of step S36, and the system configuration is determined. If it is determined that the processing has not been completed, the processing in this routine can be terminated. Further, after step S32 or after step S35, a step of determining whether the procurement price of the software component is within the set price range is added, and the procurement price of the software component is within the set price range. On the condition, the part extraction PG2006 can also execute the process of step S33 or step S35.
 図11は、要件パターン・部品パターンの生成方法を説明するためのフローチャートである。この処理は、図8のステップS14の具体的内容であって、見積もり支援サーバ1001の部品分析PG2005によって実行される。 FIG. 11 is a flowchart for explaining a generation method of a requirement pattern / part pattern. This process is the specific content of step S14 of FIG. 8, and is executed by the component analysis PG2005 of the estimation support server 1001.
 まず、見積もり支援サーバ1001の部品分析PG2005は、図8のステップS11~S13で抽出されたソフトウェア部品(例えば、情報エントロピーの高いソフトウェア部品)を利用したシステム開発で実施した案件について、対応した非機能要件項目(「信頼性」、「適時性」)とその非機能要件の値(「オフライン」、「オンライン」)を見積もり支援端末1005から入力する(S41)。 First, the component analysis PG2005 of the estimation support server 1001 corresponds to a non-functionality corresponding to a case implemented in the system development using the software components (for example, software components with high information entropy) extracted in steps S11 to S13 in FIG. The requirement items (“reliability”, “timeliness”) and the values of the non-functional requirements (“offline”, “online”) are input from the estimation support terminal 1005 (S41).
 次に、部品分析PG2005は、当該案件におけるシステム構成を見積もり支援端末1005から入力する(S42)。ここで、システム構成とは、既に敷設、もしくは、契約済みの通信路や、クラウド、仮想化などのIT処理ハードの構成の有無とその種別を含む。また、既設システムにおいて利用されていたソフトウェア部品の識別子を含んでも良い。 Next, the parts analysis PG 2005 inputs the system configuration in the case from the estimate support terminal 1005 (S42). Here, the system configuration includes the presence and type of IT processing hardware such as already installed or contracted communication paths, cloud, and virtualization. Moreover, the identifier of the software component used in the existing system may be included.
 次に、部品分析PG2005は、当該案件において利用されたソフトウェア部品の識別子を入力する(S43)。 Next, the component analysis PG 2005 inputs the identifier of the software component used in the case (S43).
 最後に、部品分析PG2005は、ステップS41~S43までで入力された当該案件(システム開発で実施した案件)の情報(ソフトウェア部品情報とシステム構成の情報)と、同様に既に入力されている過去の案件の情報(ソフトウェア部品情報とシステム構成の情報)から、ソフトウェア部品の組合せをパターン化して、そのパターンを分析し(S44)、このルーチンでの処理を終了する。ステップS44の詳細は図12にて詳述する。 Finally, the parts analysis PG2005 uses the information (software parts information and system configuration information) of the relevant matter (the matter implemented in the system development) entered in steps S41 to S43, and the past information that has already been entered. From the case information (software component information and system configuration information), a combination of software components is patterned, the pattern is analyzed (S44), and the processing in this routine is terminated. Details of step S44 will be described in detail with reference to FIG.
 図12は、ソフトウェア部品の組合せをパターン化する処理を説明するためのフローチャートである。この処理は、図11のステップS44の具体的内容であって、見積もり支援サーバ1001の部品分析PG2005によって実行される。 FIG. 12 is a flowchart for explaining processing for patterning combinations of software components. This process is the specific content of step S44 in FIG. 11, and is executed by the component analysis PG2005 of the estimation support server 1001.
 まず、見積もり支援サーバ1001の部品分析PG2005は、過去の実績におけるシステム構成を代表的なパターンへ分類し、分類されたパターンから代表点を算出する(S51)。この分類方法としては、例えば、各案件におけるシステム構成であって、各案件で利用されたソフトウェア部品に適用されたシステム構成の情報(項目)、例えば、「クラウド」、「無線LAN」などについて、その対応(実施)の有無を並べてベクトルで表現し、各項目ごとに一致していれば「0」とし、異なれば「1」として、そのハミング距離を評価し、その距離に応じてWard法などの階層クラスタリング法により、規定の数のシステム構成のパターンを得る。また、代表点の算出方法としては、例えば、同一のパターンへ分類されたシステム構成の最頻値(パターン化されたシステム構成のうち実績の高いもの)を代表点としても良いし、システム構成の情報内の全ての2つの組合せにおいて、距離を算出し、算出した距離の合計値が最も小さい案件のシステム構成を代表点としても良い。 First, the parts analysis PG2005 of the estimation support server 1001 classifies the system configuration in the past results into representative patterns, and calculates representative points from the classified patterns (S51). As this classification method, for example, the system configuration in each case, and information (items) of the system configuration applied to the software components used in each case, for example, “cloud”, “wireless LAN”, etc. The presence / absence of the correspondence (implementation) is expressed side by side and expressed as a vector. If each item matches, the value is set to “0”, otherwise, the value is set to “1”, and the Hamming distance is evaluated. A predetermined number of system configuration patterns are obtained by the hierarchical clustering method. In addition, as a representative point calculation method, for example, the mode value of the system configuration classified into the same pattern (the one with the highest performance among the patterned system configurations) may be used as the representative point. For all two combinations in the information, the distance may be calculated, and the system configuration of the case with the smallest total value of the calculated distances may be used as the representative point.
 次に、部品分析PG2005は、過去の実績のある各案件における非機能要件を代表的なパターンへ分類し、分類されたパターンから代表点を算出する(S52)。この分類方法は、例えば、ステップS51と同様に、非機能要件の値(「リアルタイム」、「オンライン」)を並べてベクトルで表現し、ハミング距離とWard法による階層クラスタリングにより規定の数の代表的な非機能要件パターンを得る。 Next, the parts analysis PG 2005 classifies the non-functional requirements in each case with past results into representative patterns, and calculates representative points from the classified patterns (S52). In this classification method, for example, as in step S51, values of non-functional requirements (“real time”, “online”) are arranged and expressed as vectors, and a specified number of representative values are obtained by hierarchical clustering using the Hamming distance and the Ward method. Get a non-functional requirement pattern.
 最後に、部品分析PG2005は、過去の各案件が、どのシステム構成パターンと非機能要件パターンに一致するかを算出し、算出されたシステム構成パターン・非機能要件パターン対に対して、当該案件において同時に利用したソフトウェア部品の組合せ(過去に同時に利用された実績のあるソフトウェア部品の組合せ)を実績管理DB1003の組合せDB2012に登録し(S53)、このルーチンでの処理を終了する。過去の各案件が、どのシステム構成パターンと非機能要件パターンに一致するかを算出する算出方法は、パターンの作成方法が、Ward法による階層クラスタリングであれば、当該案件と各パターンの代表点とのハミング距離を算出し、算出したハミング距離が最も近いパターンを当該案件が所属するパターンとする。 Finally, the parts analysis PG2005 calculates which system configuration pattern and non-functional requirement pattern match each past case, and for the calculated system configuration pattern / non-functional requirement pattern pair, The combination of software components used at the same time (the combination of software components with a track record that has been used in the past) is registered in the combination DB 2012 of the track record management DB 1003 (S53), and the processing in this routine is terminated. The calculation method to calculate which system configuration pattern and non-functional requirement pattern match each past case is that the case and the representative point of each pattern, if the pattern creation method is hierarchical clustering by the Ward method And the pattern with the closest calculated Hamming distance is set as the pattern to which the matter belongs.
 上記処理で、見積もり支援サーバ1001は、部品DB2009に記録された各ソフトウェワ部品に適用されたシステム構成を項目ごとに分類し、分類されたシステム構成の項目を対応の有無に応じてパターン化し、パターン化されたシステム構成の中からシステム構成の代表点を抽出し、部品DB2009に記録された各ソフトウェワ部品に属する非機能要件を、当該非機能要件の項目の値ごとに分類し、分類された非機能要件の項目の値を対応の有無に応じてパターン化し、パターン化された非機能要件の項目の値の中から、非機能要件の代表点を抽出し、部品DB2009に記録された各ソフトウェワ部品のうち、システム構成の項目がシステム構成の代表点に一致し、且つ非機能要件の項目の値が非機能要件の代表点に一致するソフトウェア部品の組合せを、実績のあるソフトウェア部品の組合せとして組合せDB2012に記録することになる。 In the above processing, the estimation support server 1001 classifies the system configuration applied to each software component recorded in the component DB 2009 for each item, patterns the classified system configuration items according to the presence or absence of correspondence, The representative points of the system configuration are extracted from the system configuration, and the non-functional requirements belonging to each software component recorded in the parts DB 2009 are classified according to the value of the item of the non-functional requirements. Each software component recorded in the component DB 2009 is created by patterning the value of the functional requirement item according to the presence or absence of correspondence, extracting the representative points of the non-functional requirement from the patterned non-functional requirement item values Of these, a combination of software components whose system configuration item matches the representative point of the system configuration and whose non-functional requirement item value matches the representative point of the non-functional requirement Will be recorded in the combination DB 2012 as a combination of software components.
 図13は、パターンを用いてソフトウェア部品を抽出する方法を説明するためのフローチャートである。この処理は、図10の処理とは異なる処理で、図12のステップS53で算出したパターンを使ったソフトウェア部品の抽出方法であり、見積もり支援サーバ1001の部品抽出PG2006によって実行される。 FIG. 13 is a flowchart for explaining a method of extracting software parts using a pattern. This process is different from the process of FIG. 10 and is a software component extraction method using the pattern calculated in step S53 of FIG. 12, and is executed by the component extraction PG2006 of the estimation support server 1001.
 まず、見積もり支援サーバ1001の部品抽出PG2006は、図10のステップS31と同様に、新規案件の要件(要求情報)を見積もり支援端末1005から取得する(S61)。 First, the component extraction PG 2006 of the estimate support server 1001 acquires the requirement (request information) of the new case from the estimate support terminal 1005 as in step S31 of FIG. 10 (S61).
 次に、部品抽出PG2006は、ステップS32と同様に、新規案件の機能要件を基に対応可能な部品リスト(管理テーブル300)を検索して、部品DB2009に登録されたソフトウェア部品の中から、新規案件の機能要件の記述に適合するソフトウェア部品のみを取得する(S62)。 Next, as in step S32, the component extraction PG2006 searches the compatible component list (management table 300) based on the functional requirements of the new case, and newly selects the software component registered in the component DB 2009. Only software components that conform to the description of the functional requirements of the case are acquired (S62).
 次に、部品抽出PG2006は、ステップS62で取得したソフトウェア部品を基に、新規案件の非機能要件に最も近い非機能要件の代表点を非機能要件パターンとして抽出する(S63)。 Next, the component extraction PG 2006 extracts a representative point of the non-functional requirement closest to the non-functional requirement of the new case as a non-functional requirement pattern based on the software component acquired in step S62 (S63).
 次に、部品抽出PG2006は、システム構成は、決定済みか否かを判定する(S64)。ステップS64で肯定の判定結果を得た場合、即ち、事前に顧客においてシステム構成が決定されている場合、部品抽出PG2006は、事前に決定されたシステム構成パターン内で、代表点に最も近いパターンを選定する(S65)。この代表点の算出方法としては、パターンの作成方法がWard法による階層クラスタリングであれば、当該案件と各パターンの代表点とのハミング距離を算出し、ハミング距離が最も近いパターンを当該案件のシステム構成が所属するパターンとする。 Next, the part extraction PG2006 determines whether or not the system configuration has been determined (S64). When a positive determination result is obtained in step S64, that is, when the system configuration is determined in advance by the customer, the part extraction PG2006 selects a pattern closest to the representative point in the system configuration pattern determined in advance. Select (S65). If the pattern creation method is hierarchical clustering by the Ward method, the representative point is calculated by calculating the Hamming distance between the case and the representative point of each pattern, and the pattern with the closest Hamming distance The pattern to which the configuration belongs.
 最後に、部品抽出PG2006は、ステップS65で選定したパターン及びステップS63で抽出した非機能要件パターンを基に実績管理DB1003の組合せDB2012を検索して、組合せDB2012の中のシステム構成パターン・非機能要件パターンに登録されているソフトウェア部品の組合せ(過去に同時に利用された実績のあるソフトウェア部品の組合せ)を抽出し(S66)、このルーチンでの処理を終了する。なお、ステップS66では、ステップS62で検索したソフトウェア部品を含まないパターンは削除する。 Finally, the component extraction PG2006 searches the combination DB2012 of the performance management DB1003 based on the pattern selected in step S65 and the non-functional requirement pattern extracted in step S63, and the system configuration pattern / non-functional requirement in the combination DB2012. A combination of software components registered in the pattern (a combination of software components that have been used in the past at the same time) is extracted (S66), and the processing in this routine is terminated. In step S66, the pattern not including the software component searched in step S62 is deleted.
 一方、ステップS64で、否定の判定結果を得た場合、即ち、事前に顧客においてシステム構成が決定していない場合、部品抽出PG2006は、非機能要件パターンに登録されているソフトウェア部品の組合せをシステム構成例として抽出し(S67)、このルーチンでの処理を終了する。この際、抽出されたソフトウェア部品の組合せが、過去に対応したシステム構成の情報である場合、その情報を出力する。 On the other hand, if a negative determination result is obtained in step S64, that is, if the system configuration has not been determined in advance by the customer, the component extraction PG2006 uses the combination of software components registered in the non-functional requirement pattern as the system. A configuration example is extracted (S67), and the processing in this routine is terminated. At this time, if the extracted combination of software parts is information of a system configuration corresponding to the past, the information is output.
 なお、ステップS63において、抽出された非機能要件の代表点は、顧客が望む非機能要件には完全に対応していない場合が想定される。その際に抽出されたソフトウェア部品をベースにUPを開発することで、対応していない非機能要件に適合させることが求められる。 In step S63, it is assumed that the representative point of the extracted non-functional requirement does not completely correspond to the non-functional requirement desired by the customer. It is required to develop non-functional requirements that are not supported by developing UP based on the extracted software components.
 上記処理で、見積もり支援サーバ1001は、見積もり支援端末1005から要求情報を入力した際に、要求情報に属する非機能要件を、当該非機能要件の項目の値ごとに分類し、分類された非機能要件の項目の値を対応の有無に応じてパターン化し、パターン化された非機能要件の項目の値の中から、非機能要件の代表点を抽出し、要求情報の中に新規案件のシステム構成に関する情報が存在する場合、新規案件のシステム構成を項目ごとに分類し、分類されたシステム構成の項目を対応の有無に応じてパターン化し、パターン化されたシステム構成の中からシステム構成の代表点を抽出し、抽出した非機能要件の代表点と抽出したシステム構成の代表点を基に組合せDB2012を検索して、実績のあるソフトウェア部品の組合せの中から、抽出した非機能要件の代表点と抽出したシステム構成の代表点がそれぞれ一致するソフトウェア部品の組合せを抽出することになる。 In the above processing, when the estimate support server 1001 inputs the request information from the estimate support terminal 1005, the non-functional requirements belonging to the request information are classified according to the value of the non-functional requirement item, and the classified non-function Requirement item values are patterned according to whether they are supported, non-functional requirement representative points are extracted from the patterned non-functional requirement item values, and the system configuration of the new matter is included in the request information If there is information on the system configuration, the system configuration of the new project is classified for each item, the classified system configuration items are patterned according to whether they are supported, and the representative points of the system configuration from the patterned system configuration The combination DB2012 is searched based on the extracted representative points of the extracted non-functional requirements and the extracted representative points of the system configuration. Representative points of the system configuration and the extracted representative points requirement is to extract a combination of software components that match, respectively.
 図14は、非機能要件に齟齬がある場合にソフトウェア部品を選択する方法を説明するためのフローチャートである。この処理は、抽出されたソフトウェア部品が、対応する非機能要件と新規案件で求められる非機能要件との間に齟齬が有り、UPによる新規開発部分が生じる場合に、開発工数が少ないソフトウェア部品を選定するための処理であり、見積もり支援サーバ1001の部品分析PG2005によって実行される。 FIG. 14 is a flowchart for explaining a method of selecting a software component when there is a defect in non-functional requirements. In this process, the extracted software components have a gap between the corresponding non-functional requirements and the non-functional requirements required for the new project, and when a newly developed part due to UP occurs, This is a process for selection, and is executed by the component analysis PG2005 of the estimation support server 1001.
 まず、見積もり支援サーバ1001の部品分析PG2005は、実績管理DB1003を検索して、齟齬のある要件であって、過去にUP開発により対応した際の開発量を取得する(S71)。この際、過去に複数回同様の事例が有る場合には、開発量の平均値を算出する。 First, the parts analysis PG2005 of the estimate support server 1001 searches the performance management DB 1003 and acquires the development amount when there is a flawed requirement and has been handled by UP development in the past (S71). At this time, if there are similar cases multiple times in the past, the average value of the development amount is calculated.
 次に、部品分析PG2005は、抽出されたソフトウェア部品の過去のUP開発における開発量を取得する(S72)。 Next, the parts analysis PG2005 acquires the development amount of the extracted software parts in the past UP development (S72).
 最後に、部品分析PG2005は、要件ごとの過去の平均開発量と、ソフトウェア部品の過去の平均開発量から、当該ソフトウェア部品の当該要件における開発量を予測開発工数として推定(S73)し、このルーチンでの処理を終了する。予測開発工数の推定量は、各要件ごとの開発量の多少と、各ソフトウェア部品ごとのUP開発の難易度を反映し、かつ、複数のソフトウェア部品ごとに比較可能な指標であればいずれの方法でもよく、例えば、式(2)と図15で示す重み付き平均により開発量を推定しても良い。 Finally, the component analysis PG2005 estimates the development amount of the software component in the requirement as the predicted development man-hour from the past average development amount for each requirement and the past average development amount of the software component (S73). The process in is terminated. The estimated amount of development man-hours can be any method that reflects the amount of development for each requirement and the difficulty of UP development for each software component, and can be compared for multiple software components. For example, the development amount may be estimated based on the weighted average shown in Expression (2) and FIG.
 C(ソフトウェア部品i、要件j)=要件jの平均開発量×(ソフトウェア部品iの平均開発量/全ソフトウェア部品の平均開発量の合計)・・・式(2) C (software part i, requirement j) = average development amount of requirement j × (average development amount of software part i / total development amount of all software components) ... Formula (2)
 図15は、ソフトウェア部品の開発量の推定結果を管理するための管理テーブルの構成図である。図15において、管理テーブル1500は、図14のステップS73で推定された複数のソフトウェア部品の開発量の推定結果を管理するためのテーブルであって、製品名1501、UP開発ステップ数1502、非機能要件1503、UP開発ステップ数1504から構成される。 FIG. 15 is a configuration diagram of a management table for managing the estimation results of the software component development amount. In FIG. 15, a management table 1500 is a table for managing the estimation results of the development amounts of a plurality of software components estimated in step S73 of FIG. 14, and includes a product name 1501, UP development step number 1502, non-function It consists of requirement 1503 and UP development step number 1504.
 製品名1501には、例えば、複数のソフトウェア部品の名称として、部品A、部品B、部品Cの情報が記録される。非機能要件1503には、適時性、信頼性、セキュリティ、キャパシティの情報が記録される。非機能要件1503の各要件に対応して、各部品には、過去に開発における工数を示す数値が記録される。この際、UP開発ステップ数1502には、非機能要件1503の各要件に対応して、各部品の平均工数を示す数値の情報が記録され、UP開発ステップ数1504には、各部品の平均工数を示す数値の情報が記録される。 In the product name 1501, for example, information on part A, part B, and part C is recorded as names of a plurality of software parts. The non-functional requirement 1503 records information on timeliness, reliability, security, and capacity. Corresponding to each requirement of the non-functional requirement 1503, each part is recorded with a numerical value indicating the man-hour in development in the past. At this time, numerical information indicating the average man-hour of each part is recorded in the UP development step number 1502 corresponding to each requirement of the non-functional requirement 1503, and the UP development step number 1504 is recorded in the average man-hour of each part. Is recorded as numerical information.
 例えば、部品Aは、過去の開発において1750ステップの(平均)工数を要している。一方で、要件「適時性」の過去の開発における工数は、平均して1000ステップ要している。部品Aに対して適時性に関する開発が必要な場合、式(2)により平均開発量を推定すると、1842.1ステップの改造が必要と推定される。 For example, component A requires 1750 steps (average) in the past development. On the other hand, man-hours in the past development of the requirement “timeliness” require an average of 1000 steps. When development related to timeliness is required for part A, if the average development amount is estimated by equation (2), it is estimated that 1842.1 steps of modification are necessary.
 本実施例によれば、ソフトウェアシステムを構築する際に、開発コストの少ないソフトウェア部品を選択することができる。即ち、実績管理DB1003の組合せDB2012から、過去に同時に利用された実績のあるソフトウェア部品の組合せを抽出しているので、開発コストの少ないソフトウェア部品を選択することができる。 According to this embodiment, when building a software system, it is possible to select a software component with a low development cost. That is, since a combination of proven software parts that have been used at the same time in the past is extracted from the combination DB 2012 of the result management DB 1003, it is possible to select a software part with a low development cost.
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、部品情報蓄積DB1002と実績管理DB1003を一台のDBで構成したり、部品DB2009、組合せDB2012、要件DB2011をそれぞれ見積もり支援サーバ1001に配置したりすることもできる。また、見積もり支援端末1005を見積もり支援サーバ1001に配置して、一体化することもできる。上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 In addition, this invention is not limited to the above-mentioned Example, Various modifications are included. For example, the component information storage DB 1002 and the performance management DB 1003 can be configured as a single DB, or the component DB 2009, the combination DB 2012, and the requirement DB 2011 can be arranged in the estimation support server 1001, respectively. Further, the estimate support terminal 1005 can be arranged on the estimate support server 1001 and integrated. The above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
 また、上記の各構成、機能等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)メモリカード、DVD(Digital Versatile Disc)等の記録媒体に記録して置くことができる。 Also, each of the above-described configurations, functions, etc. may be realized by hardware by designing a part or all of them, for example, by an integrated circuit. Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor. Information such as programs, tables, and files that realize each function is stored in memory, a hard disk, a recording device such as an SSD (Solid State Drive), an IC (Integrated Circuit) card, an SD (Secure Digital) memory card, a DVD ( It can be recorded on a recording medium such as Digital Versatile Disc).
 1001 見積もり支援サーバ、1002 部品情報蓄積DB、1003 実績管理DB、1004 部品登録端末、1005 見積もり支援端末、1006 広域ネットワーク、1007 ローカルエリアネットワーク、2001 入出力装置、2002 CPU、2003 メモリ、2004 表示PG、2005 部品分析PG、2006 部品抽出PG、2007 通信部、2008 蓄積PG、2009 部品DB、2010 蓄積PG、2011 要件DB、2012 組合せDB、2013 部品登録PG、2014 見積取得PG。 1001 Estimate support server, 1002 Parts information storage DB, 1003 Results management DB, 1004 Parts registration terminal, 1005 Estimate support terminal, 1006 Wide area network, 1007 Local area network, 2001 Input / output device, 2002 CPU, 2003 memory, 2004 Display PG, 2005 parts analysis PG, 2006 parts extraction PG, 2007 communication department, 2008 storage PG, 2009 parts DB, 2010 storage PG, 2011 requirements DB, 2012 combination DB, 2013 parts registration PG, 2014 estimate acquisition PG.

Claims (15)

  1.  ソフトウェア部品の1以上の機能が規定された機能要件と当該機能要件に属する機能の属性となる複数の項目が規定された非機能要件とを含むソフトウェア部品情報であって、複数のソフトウェア部品の利用実績を示すソフトウェア部品情報が前記各ソフトウェア部品に対応づけて記録されたデータベースと、
     新規案件となるソフトウェアシステムに利用されるソフトウェア部品に要求される機能要件と非機能要件を含む要求情報を入力する見積もり支援端末と、
     前記見積もり支援端末に入力された要求情報を基に前記データベースの中のソフトウェア部品情報を検索して、前記ソフトウェア部品情報に属する機能要件の中の少なくとも一部の機能が前記要求情報に属する機能要件に適合し、且つ前記ソフトウェア部品情報に属する非機能要件の中の少なくとも一部の項目が前記要求情報に属する非機能要件に適合するソフトウェア部品であって、過去に利用された実績のあるソフトウェア部品の組合せを抽出する見積もり支援サーバと、を有することを特徴とするソフトウェア選択システム。
    Software component information including a functional requirement in which one or more functions of the software component are defined and a non-functional requirement in which a plurality of items that are attributes of functions belonging to the functional requirement are defined, and the use of the plurality of software components A database in which software component information indicating the results is recorded in association with each software component;
    An estimate support terminal for inputting request information including functional requirements and non-functional requirements required for software components used in a software system to be a new matter;
    The software component information in the database is searched based on the request information input to the estimation support terminal, and at least a part of the functional requirements belonging to the software component information belongs to the request information. And a software component that has been used in the past, and is a software component that conforms to the non-functional requirement belonging to the requirement information, at least a part of the non-functional requirement belonging to the software component information. A software selection system comprising: an estimation support server that extracts a combination of
  2.  請求項1に記載のソフトウェア選択システムであって、
     前記見積もり支援サーバは、
     前記過去に利用された実績のあるソフトウェア部品の組合せを抽出する場合、過去に同時に利用された実績のあるソフトウェア部品の組合せを抽出することを特徴とするソフトウェア選択システム。
    The software selection system according to claim 1,
    The estimate support server includes:
    A software selection system characterized by extracting a combination of software parts with a track record that has been used in the past when extracting a combination of software parts with a track record that has been used in the past.
  3.  請求項1に記載のソフトウェア選択システムであって、
     前記見積もり支援サーバは、
     前記機能よりも実績を優先することを条件に、前記過去に利用された実績のあるソフトウェア部品の組合せを抽出し、前記要求情報の中に前記新規案件のシステム構成に関する情報が存在する場合、前記抽出したソフトウェア部品の組合せの中から、前記新規案件のシステム構成に合致するソフトウェア部品の組合せを抽出することを特徴とするソフトウェア選択システム。
    The software selection system according to claim 1,
    The estimate support server includes:
    Extracting a combination of software parts with a track record used in the past on the condition that the track record has priority over the function, and when there is information about the system configuration of the new case in the request information, A software selection system that extracts a combination of software parts that matches the system configuration of the new item from the extracted combination of software parts.
  4.  請求項1に記載のソフトウェア選択システムであって、
     前記見積もり支援サーバは、
     前記過去に利用された実績のあるソフトウェア部品の組合せを抽出する条件を、前記ソフトウェア部品の調達価格が、設定価格の範囲内であることに設定することを特徴とするソフトウェア選択システム。
    The software selection system according to claim 1,
    The estimate support server includes:
    A software selection system characterized in that a condition for extracting a combination of software parts with a track record used in the past is set such that a procurement price of the software parts is within a set price range.
  5.  請求項1に記載のソフトウェア選択システムであって、
     前記見積もり支援サーバは、
     前記データベースに記録された各ソフトウェワ部品に適用されたシステム構成を項目ごとに分類し、前記分類されたシステム構成の項目を対応の有無に応じてパターン化し、パターン化されたシステム構成の中からシステム構成の代表点を抽出し、前記データベースに記録された各ソフトウェワ部品に属する非機能要件を、当該非機能要件の項目の値ごとに分類し、前記分類された非機能要件の項目の値を対応の有無に応じてパターン化し、パターン化された非機能要件の項目の値の中から、非機能要件の代表点を抽出し、前記データベースに記録された各ソフトウェワ部品のうち、システム構成の項目が前記システム構成の代表点に一致し、且つ非機能要件の項目の値が前記非機能要件の代表点に一致するソフトウェア部品の組合せを、実績のあるソフトウェア部品の組合せとして前記データベースに記録することを特徴とするソフトウェア選択システム。
    The software selection system according to claim 1,
    The estimate support server includes:
    The system configuration applied to each software component recorded in the database is classified for each item, the classified system configuration items are patterned according to the presence or absence of correspondence, and a system is selected from the patterned system configurations. The representative points of the configuration are extracted, the non-functional requirements belonging to each software component recorded in the database are classified for each non-functional requirement item value, and the classified non-functional requirement item values are supported. It is patterned according to the presence or absence of, the representative points of the non-functional requirements are extracted from the patterned non-functional requirement item values, and among the software components recorded in the database, the system configuration item is A combination of software components that matches the representative point of the system configuration and whose non-functional requirement item value matches the representative point of the non-functional requirement is executed. Software selection system, characterized in that recorded in the database as a combination of software components with.
  6.  請求項5に記載のソフトウェア選択システムであって、
     前記見積もり支援サーバは、
     前記要求情報を入力した際に、前記要求情報に属する非機能要件を、当該非機能要件の項目の値ごとに分類し、前記分類された非機能要件の項目の値を対応の有無に応じてパターン化し、パターン化された非機能要件の項目の値の中から、非機能要件の代表点を抽出し、前記要求情報の中に前記新規案件のシステム構成に関する情報が存在する場合、前記新規案件のシステム構成を項目ごとに分類し、前記分類されたシステム構成の項目を対応の有無に応じてパターン化し、パターン化されたシステム構成の中からシステム構成の代表点を抽出し、前記抽出した非機能要件の代表点と前記抽出したシステム構成の代表点を基に前記データベースを検索して、前記実績のあるソフトウェア部品の組合せの中から、前記抽出した非機能要件の代表点と前記抽出したシステム構成の代表点がそれぞれ一致するソフトウェア部品の組合せを抽出することを特徴とするソフトウェア選択システム。
    The software selection system according to claim 5,
    The estimate support server includes:
    When the request information is input, the non-functional requirements belonging to the request information are classified according to the value of the non-functional requirement item, and the value of the classified non-functional requirement item is determined according to the presence or absence of correspondence. When a representative point of the non-functional requirement is extracted from the patterned non-functional requirement item value and information related to the system configuration of the new case exists in the request information, the new case The system configuration is classified for each item, the classified system configuration items are patterned according to the presence or absence of correspondence, a representative point of the system configuration is extracted from the patterned system configuration, and the extracted non-configuration The database is searched based on the representative points of the functional requirements and the representative points of the extracted system configuration, and the representative of the extracted non-functional requirements from among the combinations of the proven software parts. Software selection system, wherein the representative point of the extracted system configuration to extract a combination of software components that match respectively.
  7.  請求項1に記載のソフトウェア選択システムであって、
     前記見積もり支援端末は、
     前記要求情報を質問項目として入力する際に、前記データベースのソフトウェア部品情報を参照し、前記データベースに蓄積された各ソフトウェア部品に対して、前記要求情報に含まれる非機能要件の項目ごとに、対応可能な範囲の大きさを評価し、この評価結果から対応可能な範囲の大きい非機能要件の項目を抽出し、抽出した非機能要件の項目に従って前記質問項目の一部を変更することを特徴とするソフトウェア選択システム。
    The software selection system according to claim 1,
    The estimate support terminal is
    When inputting the request information as a question item, the software component information in the database is referred to, and for each software component stored in the database, a response is made for each item of non-functional requirements included in the request information. It is characterized by evaluating the size of a possible range, extracting a non-functional requirement item having a large applicable range from the evaluation result, and changing a part of the question item according to the extracted non-functional requirement item. Software selection system to do.
  8.  請求項1に記載のソフトウェア選択システムであって、
     前記見積もり支援端末は、
     前記要求情報を入力するための入力画面と前記見積もり支援サーバからの情報を表示するための出力画面を有し、前記入力画面の表示領域に、前記新規案件のシステム構成、機能要件および非機能要件に関する情報を表示し、前記出力画面の表示領域に、前記見積もり支援サーバで抽出されたソフトウェア部品の組合せを表示することを特徴とするソフトウェア選択システム。
    The software selection system according to claim 1,
    The estimate support terminal is
    An input screen for inputting the request information and an output screen for displaying information from the estimate support server, and a system configuration, functional requirements and non-functional requirements for the new matter in the display area of the input screen A software selection system characterized by displaying information relating to and displaying a combination of software components extracted by the estimation support server in a display area of the output screen.
  9.  請求項1に記載のソフトウェア選択システムであって、
     前記データベースは、
     部品登録端末からの情報を記録するデータベースであって、前記ソフトウェア部品の1以上の機能が規定された機能要件と当該機能要件に属する機能の属性となる複数の項目が規定された非機能要件とを含むソフトウェア部品情報が複数のソフトウェア部品に対応づけて記録された部品情報蓄積データベースと、
     前記複数のソフトウェア部品の利用実績を示すソフトウェア部品情報が前記各ソフトウェア部品に対応づけて記録された実績管理データベースとから構成され、
     前記部品情報蓄積データベースと前記実績管理データベースは、
     それぞれ前記見積もり支援サーバに接続され、
     前記見積もり支援サーバは、
     ネットワークを介して前記見積もり支援端末に接続されていることを特徴とするソフトウェア選択システム。
    The software selection system according to claim 1,
    The database is
    A database for recording information from a component registration terminal, wherein a functional requirement in which one or more functions of the software component are defined and a non-functional requirement in which a plurality of items that are attributes of functions belonging to the functional requirement are defined; A component information accumulation database in which software component information including
    Software component information indicating the usage results of the plurality of software components is configured from a performance management database recorded in association with each software component,
    The parts information accumulation database and the results management database are:
    Each is connected to the estimate support server,
    The estimate support server includes:
    A software selection system connected to the estimate support terminal via a network.
  10.  ソフトウェア部品の1以上の機能が規定された機能要件と当該機能要件に属する機能の属性となる複数の項目が規定された非機能要件とを含むソフトウェア部品情報であって、複数のソフトウェア部品の利用実績を示すソフトウェア部品情報が前記各ソフトウェア部品に対応づけて記録されたデータベースと、
     新規案件となるソフトウェアシステムに利用されるソフトウェア部品に要求される機能要件と非機能要件を含む要求情報を入力する見積もり支援端末と、
     前記見積もり支援端末に入力された要求情報を基に前記データベースの中のソフトウェア部品情報を検索する見積もり支援サーバと、を有するシステムにおけるソフトウェア選択方法であって、
     前記支援サーバが、前記検索により、前記ソフトウェア部品情報に属する機能要件の中の少なくとも一部の機能が前記要求情報に属する機能要件に適合し、且つ前記ソフトウェア部品情報に属する非機能要件の中の少なくとも一部の項目が前記要求情報に属する非機能要件に適合するソフトウェア部品であって、過去に利用された実績のあるソフトウェア部品の組合せを抽出するステップを有することを特徴とするソフトウェア選択方法。
    Software component information including a functional requirement in which one or more functions of the software component are defined and a non-functional requirement in which a plurality of items that are attributes of functions belonging to the functional requirement are defined, and the use of the plurality of software components A database in which software component information indicating the results is recorded in association with each software component;
    An estimate support terminal for inputting request information including functional requirements and non-functional requirements required for software components used in a software system to be a new matter;
    A software selection method in a system comprising: an estimate support server that searches software component information in the database based on request information input to the estimate support terminal,
    The support server, as a result of the search, has at least a part of the functional requirements belonging to the software component information conform to the functional requirements belonging to the request information, and among the non-functional requirements belonging to the software component information. A software selection method comprising a step of extracting a combination of software parts that have been used in the past and that have at least some items that are software parts that conform to non-functional requirements belonging to the request information.
  11.  請求項10に記載のソフトウェア選択方法であって、
     前記見積もり支援サーバは、
     前記ステップで、前記過去に利用された実績のあるソフトウェア部品の組合せを抽出する場合、過去に同時に利用された実績のあるソフトウェア部品の組合せを抽出することを特徴とするソフトウェア選択方法。
    A software selection method according to claim 10, comprising:
    The estimate support server includes:
    In the step, when a combination of software parts with a track record that has been used in the past is extracted, a combination of software components with a track record that has been used at the same time in the past is extracted.
  12.  請求項10に記載のソフトウェア選択方法であって、
     前記見積もり支援サーバは、
     前記ステップで、前記機能よりも実績を優先することを条件に、前記過去に利用された実績のあるソフトウェア部品の組合せを抽出し、前記要求情報の中に前記新規案件のシステム構成に関する情報が存在する場合、前記抽出したソフトウェア部品の組合せの中から、前記新規案件のシステム構成に合致するソフトウェア部品の組合せを抽出することを特徴とするソフトウェア選択方法。
    A software selection method according to claim 10, comprising:
    The estimate support server includes:
    In the step, on the condition that the performance is prioritized over the function, a combination of software components with a track record that has been used in the past is extracted, and information regarding the system configuration of the new matter exists in the request information In this case, a software selection method characterized by extracting a combination of software components that matches the system configuration of the new item from the extracted combination of software components.
  13.  請求項10に記載のソフトウェア選択方法であって、
     前記見積もり支援サーバは、
     前記ステップで、前記過去に利用された実績のあるソフトウェア部品の組合せを抽出する条件を、前記ソフトウェア部品の調達価格が、設定価格の範囲内であることに設定することを特徴とするソフトウェア選択方法。
    A software selection method according to claim 10, comprising:
    The estimate support server includes:
    In the step, a condition for extracting a combination of proven software parts used in the past is set such that a procurement price of the software parts is within a set price range. .
  14.  請求項10に記載のソフトウェア選択方法であって、
     前記見積もり支援サーバは、
     前記ステップで、前記データベースに記録された各ソフトウェワ部品に適用されたシステム構成を項目ごとに分類し、前記分類されたシステム構成の項目を対応の有無に応じてパターン化し、パターン化されたシステム構成の中からシステム構成の代表点を抽出し、前記データベースに記録された各ソフトウェワ部品に属する非機能要件を、当該非機能要件の項目の値ごとに分類し、前記分類された非機能要件の項目の値を対応の有無に応じてパターン化し、パターン化された非機能要件の項目の値の中から、非機能要件の代表点を抽出し、前記データベースに記録された各ソフトウェワ部品のうち、システム構成の項目が前記システム構成の代表点に一致し、且つ非機能要件の項目の値が前記非機能要件の代表点に一致するソフトウェア部品の組合せを、実績のあるソフトウェア部品の組合せとして前記データベースに記録することを特徴とするソフトウェア選択方法。
    A software selection method according to claim 10, comprising:
    The estimate support server includes:
    In the step, the system configuration applied to each software component recorded in the database is classified for each item, the classified system configuration items are patterned according to the presence or absence of correspondence, and the patterned system configuration The representative points of the system configuration are extracted from the above, the non-functional requirements belonging to each software component recorded in the database are classified for each value of the non-functional requirement item, and the classified non-functional requirement item The value of the function is patterned according to the presence or absence of correspondence, the representative point of the non-functional requirement is extracted from the patterned value of the non-functional requirement item, and among the software parts recorded in the database, the system The software part in which the configuration item matches the representative point of the system configuration and the value of the non-functional requirement item matches the representative point of the non-functional requirement Software selection method characterized by the combination, as a combination of software components that are proven record in the database.
  15.  請求項14に記載のソフトウェア選択方法であって、
     前記見積もり支援サーバは、
     前記要求情報を入力した際に、前記要求情報に属する非機能要件を、当該非機能要件の項目の値ごとに分類し、前記分類された非機能要件の項目の値を対応の有無に応じてパターン化し、パターン化された非機能要件の項目の値の中から、非機能要件の代表点を抽出し、前記要求情報の中に前記新規案件のシステム構成に関する情報が存在する場合、前記新規案件のシステム構成を項目ごとに分類し、前記分類されたシステム構成の項目を対応の有無に応じてパターン化し、パターン化されたシステム構成の中からシステム構成の代表点を抽出し、前記抽出した非機能要件の代表点と前記抽出したシステム構成の代表点を基に前記データベースを検索して、前記実績のあるソフトウェア部品の組合せの中から、前記抽出した非機能要件の代表点と前記抽出したシステム構成の代表点がそれぞれ一致するソフトウェア部品の組合せを抽出することを特徴とするソフトウェア選択方法。
    The software selection method according to claim 14, comprising:
    The estimate support server includes:
    When the request information is input, the non-functional requirements belonging to the request information are classified according to the value of the non-functional requirement item, and the value of the classified non-functional requirement item is determined according to the presence or absence of correspondence. When a representative point of the non-functional requirement is extracted from the patterned non-functional requirement item value and information related to the system configuration of the new case exists in the request information, the new case The system configuration is classified for each item, the classified system configuration items are patterned according to the presence or absence of correspondence, a representative point of the system configuration is extracted from the patterned system configuration, and the extracted non-configuration The database is searched based on the representative points of the functional requirements and the representative points of the extracted system configuration, and the representative of the extracted non-functional requirements from among the combinations of the proven software parts. Software selection method characterized in that the representative point of the extracted system configured to extract a combination of software components that match, respectively.
PCT/JP2015/059513 2015-03-26 2015-03-26 Software selection system and method therefor WO2016151865A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/059513 WO2016151865A1 (en) 2015-03-26 2015-03-26 Software selection system and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/059513 WO2016151865A1 (en) 2015-03-26 2015-03-26 Software selection system and method therefor

Publications (1)

Publication Number Publication Date
WO2016151865A1 true WO2016151865A1 (en) 2016-09-29

Family

ID=56977319

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/059513 WO2016151865A1 (en) 2015-03-26 2015-03-26 Software selection system and method therefor

Country Status (1)

Country Link
WO (1) WO2016151865A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6410991B1 (en) * 2017-03-01 2018-10-24 三菱電機株式会社 System construction support device and system construction support method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127078A (en) * 2004-10-28 2006-05-18 Hitachi Software Eng Co Ltd Software configuration estimate support system
JP2007286864A (en) * 2006-04-17 2007-11-01 Ricoh Co Ltd Image processor, image processing method, program, and recording medium
JP2008027340A (en) * 2006-07-25 2008-02-07 Hitachi Ltd Web service design method and device
JP2010113449A (en) * 2008-11-05 2010-05-20 Hitachi Ltd Software analyzer
US20110099532A1 (en) * 2009-10-23 2011-04-28 International Business Machines Corporation Automation of Software Application Engineering Using Machine Learning and Reasoning
JP2012123675A (en) * 2010-12-09 2012-06-28 Hitachi Ltd Method and system for extracting system component

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127078A (en) * 2004-10-28 2006-05-18 Hitachi Software Eng Co Ltd Software configuration estimate support system
JP2007286864A (en) * 2006-04-17 2007-11-01 Ricoh Co Ltd Image processor, image processing method, program, and recording medium
JP2008027340A (en) * 2006-07-25 2008-02-07 Hitachi Ltd Web service design method and device
JP2010113449A (en) * 2008-11-05 2010-05-20 Hitachi Ltd Software analyzer
US20110099532A1 (en) * 2009-10-23 2011-04-28 International Business Machines Corporation Automation of Software Application Engineering Using Machine Learning and Reasoning
JP2012123675A (en) * 2010-12-09 2012-06-28 Hitachi Ltd Method and system for extracting system component

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TOMOKO MATSUMURA ET AL.: "Effective Use of Software Development Data from Software Users' View Points", IPSJ SIG NOTES, vol. 2008, no. 29, 17 March 2008 (2008-03-17), pages 219 - 226, ISSN: 0919-6072 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6410991B1 (en) * 2017-03-01 2018-10-24 三菱電機株式会社 System construction support device and system construction support method

Similar Documents

Publication Publication Date Title
Meisel et al. Synergies of operations research and data mining
JP5919825B2 (en) Data processing method, distributed processing system, and program
US20170109657A1 (en) Machine Learning-Based Model for Identifying Executions of a Business Process
US20170109676A1 (en) Generation of Candidate Sequences Using Links Between Nonconsecutively Performed Steps of a Business Process
US20170109668A1 (en) Model for Linking Between Nonconsecutively Performed Steps in a Business Process
US20170109667A1 (en) Automaton-Based Identification of Executions of a Business Process
US11921737B2 (en) ETL workflow recommendation device, ETL workflow recommendation method and ETL workflow recommendation system
KR102162765B1 (en) System and method for automated management of customer churn based on artificial intelligence and computer program for the same
JP2011034457A (en) Data mining system, data mining method and data mining program
US20170330206A1 (en) Motion line processing system and motion line processing method
JP6242540B1 (en) Data conversion system and data conversion method
JP5466622B2 (en) Operation monitoring device, operation monitoring method, and operation monitoring program
US11308102B2 (en) Data catalog automatic generation system and data catalog automatic generation method
US20170109640A1 (en) Generation of Candidate Sequences Using Crowd-Based Seeds of Commonly-Performed Steps of a Business Process
CN112631889B (en) Portrayal method, device, equipment and readable storage medium for application system
JP7278100B2 (en) Post evaluation system and method
JP6267398B2 (en) Service design support system and service design support method
WO2016151865A1 (en) Software selection system and method therefor
CN111091416A (en) Method and device for predicting probability of hotel purchase robot
KR102432126B1 (en) Data preparation method and data utilization system for data use
JP2017146633A (en) Proposal assistance method, proposal assistance system, and program
JP6403864B2 (en) Service design support system and service design support method
JP6695847B2 (en) Software parts management system, computer
JP2020166443A (en) Data processing method recommendation system, data processing method recommendation method, and data processing method recommendation program
JP2019185582A5 (en)

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: 15886417

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: 15886417

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP