WO2011108193A1 - プログラム作成支援装置、プログラム、および、情報システム - Google Patents

プログラム作成支援装置、プログラム、および、情報システム Download PDF

Info

Publication number
WO2011108193A1
WO2011108193A1 PCT/JP2011/000672 JP2011000672W WO2011108193A1 WO 2011108193 A1 WO2011108193 A1 WO 2011108193A1 JP 2011000672 W JP2011000672 W JP 2011000672W WO 2011108193 A1 WO2011108193 A1 WO 2011108193A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
user
management table
individual
basic
Prior art date
Application number
PCT/JP2011/000672
Other languages
English (en)
French (fr)
Inventor
義晴 前野
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2012502979A priority Critical patent/JP5626333B2/ja
Priority to US13/582,794 priority patent/US9116708B2/en
Publication of WO2011108193A1 publication Critical patent/WO2011108193A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/316Aspect-oriented programming techniques

Definitions

  • the present invention relates to a program creation support device, a program, and an information system, and in particular, a program creation support device, a program, and a program that support creation of a program that meets the needs of different users based on a basic application program, and , Information systems.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2008-117067.
  • Annotation refers to information that means individual elements of a program, and unlike comments, it is not deleted at compile time.
  • the system described in Patent Document 1 having such a configuration operates as follows. That is, the annotation detection unit identifies individual situations, the input interface conversion unit changes the input interface, the output interface conversion unit changes the output interface, and the new model generation unit generates a design model that calls the changed interface. The result is stored in the design model storage unit.
  • Patent Document 2 Japanese Patent Laid-Open No. 2007-213487.
  • the system described in Patent Document 2 includes a user interface management unit, a class information analysis unit, an advice analysis unit, and an aspect generation unit.
  • an aspect refers to processing that is independent of application functional requirements such as log output.
  • a process independent of the functional requirements of the application is implemented by incorporating the aspect into the application program when the program is deployed or executed.
  • the definition of specific processing of an aspect is called advice.
  • the position in the application program that incorporates the aspect is called a pointcut.
  • the description of the aspect includes advice and pointcuts.
  • the system described in Patent Document 2 having such a configuration operates as follows. That is, the class information analysis unit generates a class or method candidate defined in the aspect.
  • the advice analysis unit generates data structure candidates to be included in the advice.
  • the user interface management unit displays these candidates, and the user selects the candidates.
  • the aspect generation unit generates an aspect based on the selection result.
  • a customized program corresponding to individual user requirements can be created by using a multiple deployment program that branches to a different program sequence for each user by referring to a user identifier when the program is deployed or executed. it can.
  • a framework program that represents the logic of branching to a different program sequence for each user with reference to the user identifier is automatically inserted into the application program. Even if it is not specified in the application program, a different program sequence is executed for each user.
  • the above-described method for creating an aspect according to the aspect-oriented programming technique has a problem that it is difficult to grasp a custom program for each user (an effective program different for each user).
  • the reason for this is that many individual user requirements are implemented together in one aspect, or individual requirements for one user are implemented separately in multiple aspects. It is necessary to grasp and becomes complicated.
  • An object of the present invention is to provide a program creation support apparatus, a program, and an information system that solve the complexity of editing work at the time of program development, which is the problem described above.
  • the program creation support device of the present invention is a program creation support device that creates the application program that realizes the individual requirements for each user together with the basic program.
  • the program creation support apparatus includes: A basic program management table for managing a plurality of program sequences constituting a basic program common to users of application programs to be developed, and a program sequence for realizing individual requirements that can be defined for each user separately from the basic program A table storage device for storing an individual requirement management table and a user management table for managing the individual requirements in association with each user; A model storage device that stores a model for generating an aspect that realizes the individual requirements; Referencing the table storage device, presenting a program to be edited to a program developer, receiving an editing operation for inserting the individual requirements that can be defined for each user in the basic program, and according to the received editing operation, the program A program editing means for editing The individual requirements received by the program editing means are registered and managed in the user management table, the basic program management table, and the individual requirement management table in association with the target program sequence of the basic program for
  • the information system of the present invention is A basic program management table for managing a plurality of program sequences constituting a basic program common to users of application programs to be developed, and a program sequence for realizing individual requirements that can be defined for each user separately from the basic program
  • a table storage device for storing an individual requirement management table and a user management table for managing the individual requirements in association with each user
  • a program storage device for storing a plurality of the program sequences of the basic program of the application program and the program sequences for realizing the individual requirements
  • a model storage device that stores a model for generating an aspect that realizes the individual requirements
  • Program editing means for referring to the table storage device, presenting a program to be edited to a program developer, accepting an editing operation for inserting the individual requirements that can be defined for each user in the basic program, and editing the program
  • the individual requirements received by the program editing means are registered and managed in the user management table, the basic program management table, and the individual requirement management table in association with the target program sequence of the basic program for each target user.
  • Individual requirement management means Referring to the table storage device and the template storage device, and combining the aspect using the template according to the user management table, the basic program management table, and the individual requirement management table; Program execution means for executing the application program that incorporates the aspect synthesized by the synthesis means and implements the individual requirements for each user together with the basic program.
  • the program of the present invention A program for causing a computer to realize a program creation support device for creating an application program to be developed,
  • the program creation support device A basic program management table for managing a plurality of program sequences constituting a basic program common to users of the application program, and an individual requirement for managing a program sequence for realizing individual requirements that can be defined for each user separately from the basic program
  • a table storage device for storing a management table and a user management table for managing the individual requirements in association with each user
  • a model storage device that stores a model for generating an aspect that realizes the individual requirements
  • a display unit that displays and presents an operation screen to the program developer;
  • An operation unit that receives an operation of the program developer,
  • a plurality of components are formed as a single member, and a single component is formed of a plurality of members. It may be that a certain component is a part of another component, a part of a certain component overlaps with a part of another component, or the like.
  • the data processing method and the computer program of the present invention describe a plurality of procedures in order, the described order does not limit the order in which the plurality of procedures are executed. For this reason, when implementing the data processing method and computer program of this invention, the order of the several procedure can be changed in the range which does not interfere in content.
  • the data processing method and the plurality of procedures of the computer program of the present invention are not limited to being executed at different timings. For this reason, another procedure may occur during the execution of a certain procedure, or some or all of the execution timing of a certain procedure and the execution timing of another procedure may overlap.
  • a program creation support apparatus for generating a program, a program, and an information system that solve the complexity of editing work during program development.
  • the information system of this embodiment provides online services to many tenant companies by using developed application programs.
  • a user is, for example, a tenant company, and refers to a user of an information system that provides an online service using a developed application program.
  • Each user can make a contract for using the information system in advance, obtain a user account, log in to the system using a user ID and password, and use the service.
  • the information system of this embodiment creates and executes a custom program in which processing is added to an application program that is a basic program in order to satisfy each user (tenant company) unique requirements, for example, different data and processing requirements.
  • each user tenant company
  • unique requirements for example, different data and processing requirements.
  • processing independent of the functional requirements of the application is implemented by incorporating the aspect into the application program when the program is deployed or executed.
  • the definition of specific processing of an aspect is called advice.
  • a position in an application program that incorporates an aspect is called a point cut.
  • the description of the aspect includes advice and pointcuts.
  • FIG. 1 is a functional block diagram showing a configuration of a program creation support apparatus 100 according to an embodiment of the present invention.
  • the program creation support apparatus 100 of this embodiment is an application program that realizes individual requirements for each user together with a basic program so that a program developer can easily develop and maintain a custom program for each tenant corresponding to the individual tenant requirements. It helps to create.
  • the program developer and the user are different users, but the present invention is not limited to this.
  • the user can customize the program using the program creation support apparatus 100.
  • the program creation support apparatus 100 includes a basic program management table 112 that manages a plurality of program sequences that constitute a basic program common to users of application programs to be developed, and a user separately from the basic program.
  • An individual requirement management table 114 that manages a program sequence that realizes individual requirements that can be defined for each user, a table storage unit 110 that stores a user management table 116 that manages individual programs in association with each other, and an aspect that realizes individual requirements Editing that refers to a template storage unit 122 that stores a template for generating a file and a table storage unit 110, presents the program to be edited to the program developer, and inserts individual requirements that can be defined for each user into the basic program Accept the operation, to the accepted editing operation
  • the program creation support apparatus 100 includes, for example, a CPU (Central Processing Unit), a memory, a hard disk, and a communication device (not shown), and is connected to an input device such as a keyboard and a mouse and an output device such as a display and a printer. It can be realized by a server computer, a personal computer, or a device corresponding to them. Each function of each unit can be realized by the CPU reading the program stored in the hard disk into the memory and executing it.
  • the configuration of parts not related to the essence of the present invention is omitted and is not shown.
  • the application program customized for each user (tenant company) created by the program creation support device 100 of the present embodiment is executed by the information system 1 shown in FIG. 2, and a service is provided to the user terminal 20 of each user. .
  • Each component of the information system is composed mainly of a CPU, a memory, a program for realizing the components of this figure loaded in the memory, a storage unit such as a hard disk for storing the program, and a network connection interface. It is realized by any combination of hardware and software. It will be understood by those skilled in the art that there are various modifications to the implementation method and apparatus. Each figure described below shows functional unit blocks, not hardware unit configurations.
  • the information system 1 includes a provided program storage device 10, a program providing server 12, a program creation support device 100, and user terminals 20 (user terminals U1, U2,. , User terminals Un, (where n is a natural number), and these are connected via the network 3.
  • the provided program storage device 10 has a basic program management table 112 registered in the table storage unit 110 of the program creation support apparatus 100, an individual requirement management, and a program sequence that satisfies the basic program and individual requirements so that a custom program can be executed.
  • a table 114 and a user management table 116 are copied and stored.
  • the program providing server 12 executes the basic program by incorporating aspects into the basic program based on the information stored in the basic program management table 112, the individual requirement management table 114, and the user management table 116.
  • a service can be provided to the terminal 20.
  • a custom program customized according to a request for each user developed by the program creation support device 100 may be stored in the provided program storage device 10 and executed by the program providing server 12 in response to a user request.
  • the program providing server 12 may include a storage unit similar to the table storage unit 110 of the program creation support apparatus 100, or the table storage unit 110 may be configured to be shared from the program creation support apparatus 100 and the program provision server 12. . Further, the provided program storage device 10 and the development program storage unit 120 may be included in the same storage device.
  • the program creation support apparatus 100 does not necessarily need to be connected to the network 3 and may have a configuration independent of the network 3.
  • the customization program created by the program creation support device 100 may be stored in the provided program storage device 10 via a recording medium.
  • the program provision server 12 is set as the structure which provides the service using an application program online to the user terminal 20 of a tenant company, it is not limited to this.
  • the program providing server 12 creates a customized program according to each user's request based on the basic program, and provides it to the user terminal 20 of each tenant company offline or online.
  • the system may be executable.
  • the information system 1 stores the program creation support apparatus 100 of FIG. 1, a plurality of program sequences of the basic program of the application program, and a program sequence that realizes individual requirements.
  • the program execution unit (program providing server) that executes the application program that incorporates the aspect synthesized by the development program storage unit 120 and the aspect synthesis unit 140 of the program creation support apparatus 100 and realizes individual requirements for each user together with the basic program 12 or a program creation support apparatus 100).
  • the program creation support apparatus 100 includes a table storage unit 110, a table management unit 118, a development program storage unit 120, a model storage unit 122, an individual requirement management unit 128, and a program editing program.
  • Unit 130, operation unit 132, display unit 134, aspect composition unit 140, and aspect storage unit 142 are included in the program creation support apparatus 100.
  • the operation unit 132 includes an input device such as a keyboard and a mouse connected to a computer that implements the program creation support apparatus 100, and accepts an operation used by a program developer.
  • the display unit 134 displays various screens on a display or the like connected to a computer that implements the program creation support apparatus 100 so that the program developer can refer to various information by presenting the various information.
  • the development program storage unit 120 stores a basic program of an application program to be developed and a program including a program sequence that realizes individual requirements specific to each user.
  • the table storage unit 110 stores a basic program management table 112, an individual requirement management table 114, and a user management table 116.
  • the development program storage unit 120 is configured to be included in the program creation support apparatus 100, but is not necessarily included in the program creation support apparatus 100, and is not necessarily included in the program creation support apparatus 100. Any configuration can be used as long as the program stored in the program storage unit can be read from the unit.
  • the table management unit 118 manages the basic program management table 112, the individual requirement management table 114, and the user management table 116 stored in the table storage unit 110.
  • the management includes a mechanism for permanently holding these management tables in the table storage unit 110, and can access the table storage unit 110 and create, register, update, and reference each management table. It is.
  • Each management table can be presented to a program developer by displaying a browsing screen of each management table on the display unit 134.
  • the table management unit 118 determines whether or not the management information related to the application program to be developed in the program creation support apparatus 100 of the present embodiment exists in the table storage unit 110. In accordance with the application program, a necessary table is newly created and stored in the table storage unit 110 in association with the application program.
  • the basic program management table 112 stores basic program management information of the application program to be developed in the program creation support apparatus 100 of the present embodiment.
  • the basic program of this embodiment includes nine program sequences from program sequence A to program sequence I as shown in the basic program list 300 of FIG.
  • the basic program is a program in which a plurality of program sequences described in a programming language such as Java (registered trademark) or C ++ are arranged.
  • the table management unit 118 determines whether or not the basic program management table 112 of the application program to be developed exists in the table storage unit 110, and if not, based on the application program to be developed, A basic program management table 112 is newly created and stored in the table storage unit 110.
  • the basic program management table 112 corresponds to the row numbers of a plurality of program sequences included in the basic program of the development target application program stored in the development program storage unit 120. A program sequence is associated and stored.
  • the basic program management table 112 holds information on all program sequences of the basic program. In the present embodiment, it is assumed that the substance of the basic program, that is, the program code is stored in the development program storage unit 120.
  • a basic program management table 112 is created with a line number assigned so that it can be pointed.
  • the basic program management table 112 associates each program column with each row number, arranges them in order in one column, inserts a blank row between each program column, assigns a row number to each row, The number is managed using the position identifier of the program sequence. For example, the blank number between program column A and program column B is assigned row number # 2, the row number of program column A is # 1, and the row number of program column B is # 3.
  • line-by-line management using line numbers as position identifiers for specifying positions in the basic program is the most basic, but in another example, a program sequence over a plurality of lines is defined as one block. It is also possible to manage by a set of program sequences corresponding to block numbers in units of blocks. Also in this case, it is assumed that there is a blank block (empty block) between two consecutive blocks, and the table management unit 118 assigns a block number to indicate the position between the blocks, and the basic program management table. 112 can also be created.
  • the individual requirement management table 114 stores at least one pair of individual requirement identification information (individual requirement name) and a set of program sequences representing individual requirements. For example, it is stored as management information that the individual requirement 10 includes a program sequence A10 and a program sequence B10. In the present embodiment, it is assumed that the substance of each program sequence, that is, the program code is stored in the development program storage unit 120.
  • the program sequence of the basic program and the program sequence of the individual requirements also store the entity of the program sequence, that is, the program code itself in the basic program management table 112 and the individual requirement management table 114, respectively.
  • the development program storage unit 120 may be configured to be unnecessary.
  • the user management table 116 stores user-specific individual requirements in association with each user (tenant).
  • the user management table 116 includes identification information (user ID (TID)) of a user (tenant), a line number in a basic program that executes an individual requirement, and a user-specific individual that needs to be executed with that line number.
  • TID user ID
  • Multiple sets of requirement identification information are stored. For example, a user-specific individual requirement 10 and individual requirement 11 with user ID TID0001 are stored in association with row number # 6 and row number # 11, respectively.
  • the model storage unit 122 stores at least one model used when an aspect composition unit 140 (to be described later) composes an aspect. As shown in FIGS. 14 and 15, the model storage unit 122 of the program creation support apparatus 100 of this embodiment stores the first aspect model 400 and the second aspect model 420 as models. These templates are basically prepared in advance, but may be newly created, registered, deleted, updated, etc. as necessary by the program editing unit 130 described later.
  • the first aspect model 400 is used when an individual requirement is inserted at the position of the line number corresponding to the blank line of the basic program managed in the basic program management table 112.
  • the template is a kind of template.
  • the insertion part 402 of “Aspect ***” represents an aspect name (aspect ID) that is an identifier unique to an aspect, and may be an arbitrary character string as long as it does not overlap with other aspect names, for example, a serial number.
  • the “Before *****” insertion unit 404 describes a program sequence corresponding to the line number next to the line number corresponding to the blank line in the basic program in which the insertion of the individual requirement is specified.
  • program column D corresponding to row number # 7 of the next row is described in insertion portion 404.
  • the tenant including the line number # 6 in which the individual requirement is inserted has two user IDs “TID0001” and “TID0002”.
  • the user ID of TID0001 is described in the insertion unit 406, and the corresponding individual requirement name, “individual requirement 10” in this case, is described in the insertion unit 408 of the corresponding “do ***”.
  • the second aspect template 420 is used when an individual requirement is inserted at the position of a line number corresponding to a program column that is not a blank line of the basic program managed in the basic program management table 112.
  • a program string that is not a blank line is specified in the insertion part 424 of “Around *****”.
  • the other inserts are handled in the same manner as the model shown in FIG. For example, when an individual requirement is inserted into a program column F that is not a blank row, “program column F” corresponding to that row is described in the insertion unit 424.
  • the individual requirement management unit 128 manages a program sequence that realizes individual requirements specific to a user that can be defined for each user.
  • the program sequence itself can be edited by the program editing unit 130, which will be described later, and may be performed individually or at the time of user application program creation.
  • Individual requirements can be stored in the development program storage unit 120 with individual requirement identification information (individual requirement name, etc.).
  • a new individual requirement can be registered by the individual requirement management unit 128.
  • the individual requirement management unit 128 includes the basic program management table 112, the individual requirement management table 114, and the user management table. 116 is notified to the table management unit 118 to be updated.
  • the program editor 130 provides an editor function for developers to edit programs based on basic programs.
  • the function of the editor is general, and a program editor screen shown in FIGS. 10 to 13 (to be described later) is displayed on a display unit 134 such as a computer display that implements the program creation support apparatus 100 to be edited by the program developer.
  • the target program is presented, and the operation unit 132 accepts an operation using an input device such as a keyboard and a mouse by a program developer, and can create, modify, or delete a program sequence.
  • the program editing unit 130 notifies the table management unit 118 and the individual requirement management unit 128 to create and update the basic program management table 112, the individual requirement management table 114, and the user management table 116.
  • the program editing unit 130 can designate a development target user (tenant) and display the editing screen as a user screen dedicated to the target user.
  • the user information set for each user for example, by logging in to the system with the user ID and password, the authenticated user only It may be possible to use the user screen.
  • the aspect compositing unit 140 is based on the basic program management table 112, the individual requirement management table 114, and the user management table 116 managed by the table management unit 118 according to the model stored in the model storage unit 122. Synthesize aspects that implement individual requirements.
  • the aspect synthesized by the aspect synthesizing unit 140 is woven into the basic program and executed by the program providing server 12 of FIG. 2, and the service is provided to the user terminal 20 of the user via the network 3. It will be.
  • the aspect synthesized by the program creation support device 100 and the basic program are stored in the provided program storage device 10 of FIG. 2 as a custom program for each user, and in response to a user request, the program providing server 12 receives the user's request. It is also possible to provide a service to the user terminal 20 by executing a custom program every time.
  • the aspect synthesized by the aspect synthesis unit 140 can be stored in the aspect storage unit 142.
  • the aspect may be stored in the development program storage unit 120.
  • the program according to the present embodiment is a program for causing a computer to realize a program creation support apparatus that creates an application program to be developed. Refer to the table storage device for the computer for realizing the program creation support apparatus 100. Then, a procedure for displaying an editing screen (program editor screen 210 in FIG. 10) for editing the program to be edited to the program developer on the display unit 134 (FIG. 1) and an operation unit 132 ( 1), a procedure for accepting an editing operation for inserting an individual requirement that can be defined for each user into the basic program, a procedure for editing the program according to the accepted editing operation, and a basic program for each user who receives the accepted individual requirement.
  • an editing screen program editor screen 210 in FIG. 10
  • FIG. 1 an operation unit 132
  • the computer program of this embodiment may be recorded on a computer-readable storage medium.
  • the recording medium is not particularly limited, and various forms can be considered.
  • the program may be loaded from a recording medium into a computer memory, or downloaded to a computer through a network and loaded into the memory.
  • FIG. 6 is a flowchart showing an example of the operation of the program creation support apparatus 100 of this embodiment.
  • the data processing method is an editing screen (the program editor screen in FIG. 10) that allows the program creation support apparatus 100 (FIG. 1) to refer to the table storage unit 110 and edit the program to be edited by the program developer. 210) is displayed and presented on the display unit 134 (FIG. 1), accepts an editing operation for inserting individual requirements that can be defined for each user into the basic program using the operation unit 132 (FIG. 1) by the program developer, The program is edited according to the received editing operation, and the received individual requirements are associated with the target program sequence of the basic program for each target user, and the user management table 116 (FIG. 1) and the basic program management table 112 (FIG. 1). And the individual requirement management table 114 (FIG.
  • the program editing unit 130 starts from the development program storage unit 120 (FIG. 1).
  • a program is read (step S101).
  • a basic program management table 112 (FIG. 1), an individual requirement management table 114 (FIG. 1), and a user management table 116 (FIG. 1) corresponding to the basic program read by the program editing unit 130 are stored in the table storage unit 110 (FIG. 1).
  • the table management unit 118 refers to the table storage unit 110 to determine whether each table exists.
  • the table management unit 118 When the table is not registered (NO in step S103), the table management unit 118 newly adds the basic program management table 112, the individual requirement management table 114, and the user management table 116 for the read basic program. It is created and stored in the table storage unit 110 (step S121). Then, the process proceeds to step S105.
  • the program editing unit 130 refers to the table storage unit 110, and stores the basic program management table 112, the individual requirement management table 114, and the user management table 116. Read from the table storage unit 110 (step S105).
  • the program editor screen 210 of FIG. 10 is displayed by the program editing unit 130 on the display unit 134 (FIG. 1) of the program creation support apparatus 100.
  • the user designation screen 200 of FIG. 8 may be displayed on the display unit 134 of the program creation support apparatus 100 before step S101 or step S107.
  • the user designation screen 200 includes a user ID designation column 202 and an OK button 204.
  • the program developer uses the operation unit 132 to input the user of the program to be edited, that is, the tenant ID, in the user ID designation field 202 or to select it by a pull-down menu or the like.
  • the OK button 204 the user ID designated in the user ID designation column 202 is accepted.
  • An example of a screen for editing the user's custom program designated on the user designation screen 200 in FIG. 8 is a program editor screen 210 in FIG.
  • the program editor screen 210 displays the basic program list 300 of FIG. 9 as an editing target.
  • a row number 212 is assigned to each program column of the basic program. As shown in FIG. 10, it is considered that there is a blank line between consecutive program sequences, and a line number 212 is also assigned to the blank line.
  • the identification information of the user (tenant) to be edited designated on the user designation screen 200 of FIG. 8 described above, “TID0001” is displayed in FIG.
  • the position of the cursor 216 is highlighted.
  • the program developer can also use the operation unit 132 to move the pointer 218 and specify the editing position. In this way, the program developer can edit the character indicated by the cursor 216 and the position indicated by the mouse pointer 218 using a keyboard or the like. In this way, the program developer can edit and manage the individual requirements for each user.
  • the program editing unit 130 receives a program sequence describing individual requirements for each user created by the program developer using the operation unit 132 on the program editor screen 210 (step S107).
  • the program sequence received by the program editing unit 130 is registered in the development program storage unit 120 by the individual requirement management unit 128, and the table management unit 114 updates the individual requirement management table 114 and the user management table 116. 118 is notified.
  • the program editing unit 130 presents a presentation unit (program editor screen 210 in FIG. 10) that presents a plurality of program sequences of the basic program to the program developer, and a presentation unit as an insertion position for inserting the individual requirements of the target user.
  • the individual requirement management unit 128 associates the insertion position received by the program editing unit 130 with the individual requirements for each user, by accepting the program developer specifying the positions of a plurality of program sequences of the basic program presented in FIG. Then, 118 is notified to be registered and managed in the user management table 116 and the individual requirement management table 114.
  • the program developer can edit the program by inserting individual requirements for each user while referring to a plurality of program sequences of the presented basic program.
  • the table management unit 118 receives the notification from the individual requirement management unit 128 and updates the individual requirement management table 114 and the user management table 116 in the table storage unit 110 (step S109).
  • the aspect composition unit 140 refers to the model storage unit 122 and the table storage unit 110, and reads the template, the basic program management table 112, the individual requirement management table 114, and the user management table 116 (step S111). Then, the aspect synthesis unit 140 synthesizes the description of the corresponding aspect for each point cut based on these pieces of information (step S113). The synthesized aspect is stored in the development program storage unit 120. Details of the aspect compositing process will be described later.
  • the program providing server 12 (FIG. 2) as a program execution unit reads the aspect synthesized with the basic program, and executes the program while incorporating the aspect into the basic program according to the aspect-oriented programming technique (step S115). Accordingly, a service using an application program that satisfies different individual requirements for each user can be provided to the user terminal 20 of each user.
  • FIG. 10 For example, as shown in FIG. 10, on the program editor screen 210, the program developer uses the operation unit 132 (FIG. 1) at the position of the sixth blank line between the program sequence C and the program sequence D of the basic program. The pointer 218 is moved and selected. Then, as shown in FIG. 11, the individual requirement editing column 220 is expanded, and the program string describing the individual requirements of the user of TID0001 can be edited. In the example of FIG. 11, the individual requirement editing column 220 is configured to be expanded on the program editor screen 210, but the present invention is not limited to this, and another window can be opened for editing. Also good.
  • the program developer describes a program sequence corresponding to the individual requirement 10 of the user of TID0001 in the individual requirement editing column 220 using the operation unit 132.
  • “individual requirement 10” is described.
  • the individual requirement 10 is a plurality of program strings, for example, A10, B10,. . . It can be made the content.
  • the program developer further sets the pointer 218 at the position of the program string F corresponding to the eleventh line by using the operation unit 132. Move and select.
  • the individual requirement edit column 220 is expanded at the position of the eleventh row, and a program sequence corresponding to the individual requirement 11 of the user with TID0001 can be further described there.
  • the individual requirement management table 114 in FIG. 4 the individual requirement 11 includes a plurality of program strings, for example, A11, B11,. . . It can be made the content.
  • the individually edited individual requirement 10 is inserted into line number # 6 and presented on the program editor screen 210 as an edited individual requirement column 222.
  • the program editing unit 130 reads the basic program from the development program storage unit 120, and a program editor screen 210 for the user of TID0002 is displayed on the display unit 134 as shown in FIG.
  • the program can be edited in the same way as the user of TID0001.
  • the program developer moves the pointer 218 to the position of the sixth blank line between the program sequence C and the program sequence D of the basic program using the operation unit 132, select.
  • the individual requirement editing column 220 is expanded, and a program string describing the individual requirements of the user of TID0002 can be edited.
  • the program developer describes the program sequence corresponding to the individual requirement 20 of the user of TID0002 in the individual requirement editing column 220 using the operation unit 132.
  • the individual requirement 20 includes a plurality of program strings, for example, A20, B20,. . . It can be made the content.
  • the program editing unit 130 accepts the editing contents of these programs.
  • the individual requirement management unit 128 stores a program sequence describing each received individual requirement in the development program storage unit 120, and stores the individual requirement management table 114 of the table storage unit 110 in the table management unit 118 and the individual requirement management unit 128.
  • the user management table 116 is notified to be updated. Note that the timing at which the program editing unit 130 instructs the table management unit 118 and the individual requirement management unit 128 to update each table is not limited to this. For example, an instruction from the program developer may be received and updated in the middle, or it may be updated periodically, or the definition for each user may be completed.
  • the individual requirement management table 114 in the table storage unit 110 is updated as shown in FIG. 4, and the user management table 116 in the table storage unit 110 is updated as shown in FIG.
  • the present invention is not limited to this.
  • the individual requirement management of the table storage unit 110 has already been performed on the program editor screen 210. It is also possible to read out the individual requirements registered in the table 114, present them to the program developer, and insert the selected individual requirements at the designated line position of the basic program.
  • the program sequence describing the already registered individual requirements can be changed on the individual requirement editing column 220 of the program editor screen 210.
  • the aspect composition unit 140 reads the basic program management table 112, the individual requirement management table 114, and the user management table 116 from the table storage unit 110, and reads the template from the model storage unit 122. .
  • the above-described two types of templates shown in FIGS. 14 and 15 are prepared in advance, and these are read out.
  • FIG. 1 The process shown in this flowchart is the detailed process of step S113 in FIG.
  • the aspect composition unit 140 (FIG. 1) performs the following processing. Referring to the user management table 116 in FIG. 5, it is detected from the user management table 116 that there are individual requirements to be inserted in the sixth and eleventh lines (step S201). Therefore, first, the aspect to be woven into the sixth line is synthesized. Thereafter, step S205 to step S225 are repeated for each row detected in step S201 (step S203). Note that when the process is completed for all the rows (step S227), the present process is terminated.
  • step S205 it is determined whether or not the line in which the individual requirement is inserted is a blank line.
  • the sixth line is a blank line (YES in step S205)
  • the first aspect template 400 of FIG. 14 corresponding to the blank line is selected and used (step S207).
  • the insertion part 402 of “Aspect ***” describes an aspect name (aspect ID), for example, “XXX” (step S211).
  • the program sequence corresponding to the line number next to the line number corresponding to the blank line in the basic program in which the insertion of the individual requirement is designated,
  • the “program column D” corresponding to the row number # 7 of the row next to # 6 of the blank row is acquired and described in the insertion section 404 of “Before ***” (step S215).
  • a set of a user ID (TID) and individual requirements in which the individual requirements are described in the corresponding line, here, line number # 6 is acquired (step S219).
  • TID0001 and individual requirement 10 two sets of TID0001 and individual requirement 10, and TID0002 and individual requirement 20 are acquired.
  • step S223 is repeated for each user ID (step S221).
  • the process is repeated until all the user IDs acquired in step S219 are completed (step S225).
  • step S225 When all the user IDs are completed, the process proceeds to step S227.
  • a program string (contents such as A10, B10,...) Representing the individual requirement 10 corresponding to the sixth line of the user ID TID0001 is described.
  • step S201 the process is repeated for the line number # 11 that has not been processed among the lines detected in step S201. That is, returning to step S205, the aspect to be woven into the 11th row of the user management table 116 is synthesized.
  • the line in which the individual requirement is inserted is a blank line. Since the 11th line is not a blank line (NO in step S205), the second aspect template 420 in FIG. Select and use (step S209).
  • the insertion part 402 of “Aspect ***” describes an aspect name (aspect ID), for example, “YYY” (step S211).
  • aspect ID aspect name
  • the program sequence in the basic program in which the insertion of the individual requirement is designated in this case, “program sequence F” is acquired, and “Around * ** ”is described in the insertion portion 424 (step S217).
  • a set of the user ID (TID) and the individual requirement in which the individual requirement is described in the corresponding line, here, the line number # 11 is acquired (step S219).
  • one set of TID0001 and individual requirement 11 is acquired.
  • the insertion part 408 of “do ***” a program sequence (contents such as A11, B11,...) Representing the individual requirement 11 corresponding to the 11th line of the user ID TID0001 is described (steps). S223).
  • FIG. 17 shows the aspect 460 obtained as a result.
  • this processing is terminated. In this way, the aspects to be woven into each user's program are combined and stored in the aspect storage unit 142.
  • the program developed by the program creation support device 100 is copied and stored in the provided program storage device 10 from the development program storage unit 120 and the aspect storage unit 142.
  • the program providing server 12 accesses the provided program storage device 10, reads the two aspects synthesized by the basic program and the program creation support apparatus 100, and executes the program while incorporating the aspects into the basic program according to the aspect-oriented programming technique.
  • FIG. 18 shows an example of an effective program 310 that the program providing server 12 executes for the user of TID0001.
  • the program providing server 12 executes the individual requirement 10 (reference numeral 312) in front of the program sequence D, and executes the individual requirement 11 (reference numeral 314) instead of the program sequence F.
  • An example of an effective program 330 that the program providing server 12 executes for the user of TID0002 is shown in FIG. As described above, the program providing server 12 executes the individual requirement 20 (reference numeral 332) in front of the program sequence D.
  • the program creation support apparatus 100 of the present embodiment it is possible to automatically synthesize the corresponding aspect simply by inserting the individual requirements into the basic program on the editing screen provided for each user.
  • Program developers can edit data in units of users (tenants) without being aware of aspects.
  • the program developer can easily develop and maintain a custom program for each user (tenant) corresponding to the user's individual requirements, improving work efficiency and the burden on the program developer when dealing with the user's individual requirements. be able to.
  • program management can be performed in units of users (tenants) when program developers perform program development and bug analysis in program management in units of program implementation and execution. Therefore, it is possible to support the creation of a program suitable for editing and analysis from the viewpoint of the developer.
  • the program creation support apparatus of the present invention is a basic program management table for managing a plurality of program sequences constituting a basic program common to users of an application program to be developed, separately from the basic program, for each user.
  • a table storage device that stores an individual requirement management table that manages a program string that realizes individual requirements that can be defined, and a user management table that manages the individual requirements in association with each user;
  • a model storage device that stores a model for generating an aspect that realizes the individual requirements; Referencing the table storage device, presenting a program to be edited to a program developer, receiving an editing operation for inserting the individual requirements that can be defined for each user in the basic program, and according to the received editing operation, the program A program editing means for editing The individual requirements received by the program editing means are registered and managed in the user management table, the basic program management table, and the individual requirement management table in association with the target program sequence of the basic program for each target user.
  • the user comprising: a combining unit that refers to the table storage device and the template storage device, and combines the aspect using the template according to the user management table, the basic program management table, and the individual requirement management table Creating the application program for realizing the individual requirements for each together with the basic program;
  • the basic program management table stores a location identifier indicating the location of the plurality of program sequences in the basic program and a corresponding program sequence in association with each other, further,
  • the program creation support apparatus wherein the position identifier is a line number assigned to each program row of the basic program.
  • the program creation support apparatus wherein the location identifier is a block number representing a plurality of program sequences of the basic program.
  • the location identifier is a block number representing a plurality of program sequences of the basic program.
  • the program sequence an empty block sequence is defined between two consecutive program sequences, and the block number is a number including the empty block sequence.
  • the data processing method of the program creation support device of the present invention is: A data processing method of a program creation support device for creating an application program to be developed,
  • the program creation support device A basic program management table for managing a plurality of program sequences constituting a basic program common to users of the application program, and an individual requirement for managing a program sequence for realizing individual requirements that can be defined for each user separately from the basic program
  • a table storage device for storing a management table and a user management table for managing the individual requirements in association with each user;
  • a model storage device that stores a model for generating an aspect that realizes the individual requirements;
  • a display unit that displays and presents an operation screen to the program developer;
  • An operation unit that receives an operation of the program developer,
  • the program creation support device Referencing the table storage device, presenting an edit screen for editing the program to be edited to the program developer on the display unit, Using the operation unit by the program developer, accepting an editing operation for inserting the individual requirements that can be defined for each user into the basic program, Edit the

Abstract

 プログラム作成支援装置(100)は、基本プログラムを管理する基本プログラム管理テーブル(112)、ユーザ個別要件を管理する個別要件管理テーブル(114)、およびユーザ毎に個別要件を関連付けて管理するユーザ管理テーブル(116)を記憶するテーブル記憶部(110)と、アスペクトのひな型を記憶するひな型記憶部(122)と、プログラム開発者に編集対象プログラムを提示し、ユーザ毎の個別要件を挿入する編集操作を受け付け、プログラムを編集するプログラム編集部(130)と、受け付けた個別要件を対象のユーザ毎に、基本プログラムの対象のプログラム列に関連付けて、各管理テーブルに登録する個別要件管理部(128)と、各管理テーブルに従って、ひな型を用いてアスペクトを合成するアスペクト合成部(140)と、を備える。

Description

プログラム作成支援装置、プログラム、および、情報システム
 本発明は、プログラム作成支援装置、プログラム、および、情報システムに関し、特に、基本となるアプリケーションプログラムを元に異なるユーザのそれぞれのニーズに合ったプログラムの作成を支援するプログラム作成支援装置、プログラム、および、情報システムに関する。
 既存のアプリケーションを変更する作業を支援するシステムの一例が、特許文献1(特開2008-117067号公報)に記載されている。アノテーションとはプログラムの個々の要素を意味付ける情報を指し、コメントとは異なりコンパイル時に消去されることはない。このような構成を有する特許文献1に記載のシステムはつぎのように動作する。すなわち、アノテーション検出部が個別の状況を識別し、入力インタフェース変換部が入力インタフェースを変更し、出力インタフェース変換部が出力インタフェースを変更し、新規モデル生成部が変更したインタフェースを呼び出す設計モデルを生成し、その結果を設計モデル記憶部に格納する。
 さらに、既存のアプリケーションを変更する作業を支援するシステムの他の例が、特許文献2(特開2007-213487号公報)に記載されている。特許文献2に記載のシステムは、利用者インタフェース管理部、クラス情報解析部、アドバイス解析部、アスペクト生成部から構成されている。アスペクト指向プログラミングにおいて、アスペクトとは、ログ出力のようなアプリケーションの機能要件とは独立な処理を指す。プログラムの配備または実行時に、アスペクトをアプリケーションプログラムに織り込むことで、アプリケーションの機能要件とは独立な処理を実装する。アスペクトの具体的な処理の定義をアドバイスと呼ぶ。アスペクトを織り込むアプリケーションプログラムの中の位置をポイントカットと呼ぶ。アスペクトの記述には、アドバイスとポイントカットが含まれる。
 このような構成を有する特許文献2に記載のシステムはつぎのように動作する。すなわち、クラス情報解析部が、アスペクトに定義するクラスやメソッドの候補を生成する。アドバイス解析部が、アドバイスに含めるデータ構造の候補を生成する。利用者インタフェース管理部がこれらの候補を表示し、利用者が候補を選択する。選択の結果をもとに、アスペクト生成部がアスペクトを生成する。
 アスペクト指向プログラミングの技術で、プログラムの配備または実行時に、ユーザ識別子を参照して、ユーザごとに異なるプログラム列へ分岐する多重配備プログラムを用いて、ユーザ個別要件に対応したカスタマイズプログラムを作成することができる。多重配備を行うと、ユーザ識別子を参照してユーザごとに異なるプログラム列へ分岐する論理を表すフレームワークプログラムがアプリケーションプログラムに自動的に挿入される。アプリケーションプログラムの中で明示しなくても、ユーザごとに異なるプログラム列が実行される。
特開2008-117067号公報 特開2007-213487号公報
 上述した、アスペクト指向プログラミングの技術に従って開発者がアスペクトを作成する方法には、ユーザごとのカスタムプログラム(ユーザごとに異なる実効的なプログラム)を把握しにくいという問題点があった。その理由として、ひとつのアスペクトに多数のユーザ個別要件がまとめて実装されたり、ひとつのユーザの個別要件が複数のアスペクトに分かれて実装されたりするため、開発者がアスペクトとユーザという2つの観点を把握しなければならず煩雑になることが挙げられる。
 本発明の目的は、上述した課題であるプログラム開発時の編集作業の煩雑さを解決するプログラム作成支援装置、プログラム、および、情報システムを提供することにある。
 本発明のプログラム作成支援装置は、前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを作成するプログラム作成支援装置である。
  本発明のプログラム作成支援装置は、
 開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
 前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
 前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、受け付けた前記編集操作に従って前記プログラムを編集するプログラム編集手段と、
 前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
 前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、を備える。
 本発明の情報システムは、
 開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
 アプリケーションプログラムの前記基本プログラムの複数の前記プログラム列および前記個別要件を実現する前記プログラム列を記憶するプログラム記憶装置と、
 前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
 前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、前記プログラムを編集するプログラム編集手段と、
 前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
 前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、
 前記合成手段で合成された前記アスペクトを織り込んで、前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行するプログラム実行手段と、を備える。
 本発明のプログラムは、
 コンピュータに、開発対象のアプリケーションプログラムを作成するプログラム作成支援装置を実現させるためのプログラムであって、
 前記プログラム作成支援装置が、
 前記アプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
 前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
 プログラム開発者に操作画面を表示して提示する表示部と、
 前記プログラム開発者の操作を受け付ける操作部と、を備え、
 前記コンピュータに、
 前記テーブル記憶装置を参照し、前記プログラム開発者に編集対象のプログラムを編集するための編集画面を前記表示部に表示して提示する手順、
 前記プログラム開発者による前記操作部を利用した、前記ユーザ毎に定義できる前記個別要件を前記基本プログラムに挿入する編集操作を受け付ける手順、
 受け付けた前記編集操作に従って前記プログラムを編集する手順、
 受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する手順、
 前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する手順、
 前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行する手順を実行させるためのものである。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
 また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
 また、本発明のデータ処理方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明のデータ処理方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
 さらに、本発明のデータ処理方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
 本発明によれば、プログラム開発時の編集作業の煩雑さを解決するプログラム作成支援装置、プログラム、および、情報システムが提供される。
 上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の実施の形態に係るプログラム作成支援装置の構成を示す機能ブロック図である。 本発明の実施の形態に係る情報システムの構成を示すブロック図である。 本発明の実施の形態に係るプログラム作成支援装置の基本プログラム管理テーブルの一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置の個別要件管理テーブルの一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置のユーザ管理テーブルの一例を示す図である。 本発明の実施の形態に係る情報システムのプログラム作成支援装置の動作の一例を示すフローチャートである。 本発明の実施の形態に係るプログラム作成支援装置におけるアスペクト合成処理の手順の一例を示すフローチャートである。 本発明の実施の形態に係るプログラム作成支援装置のユーザ指定画面の一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置の基本プログラムリストの一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置のプログラムエディタ画面の一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置のプログラムエディタ画面における個別要件編集時の一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置のプログラムエディタ画面における個別要件編集時の他の例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置のプログラムエディタ画面における個別要件編集時の他の例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置のひな型の一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置のひな型の他の例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置で作成されたアスペクトの一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置で作成されたアスペクトの他の例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置で合成されたユーザ個別のプログラムリストの一例を示す図である。 本発明の実施の形態に係るプログラム作成支援装置で合成されたユーザ個別のプログラムリストの他の例を示す図である。
 以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
 本実施形態の情報システムは、開発済みのアプリケーションプログラムを利用して、たくさんのテナント企業にオンラインサービスを提供するものである。本実施形態において、ユーザとは、たとえば、テナント企業などであり、開発済みのアプリケーションプログラムを利用して、オンラインサービスを提供する情報システムのユーザを指すものとする。各ユーザは、予め本情報システムの利用について契約を結び、たとえば、ユーザアカウントを取得し、ユーザIDとパスワードを用いて本システムにログインして、サービスを利用することができる。
 本実施形態の情報システムは、各ユーザ(テナント企業)に独自の個別要件、たとえば、異なるデータや処理の要件を満たすため、基本プログラムであるアプリケーションプログラムに処理を追加したカスタムプログラムを作成し、実行して、ユーザにサービスを提供するものである。
 本実施形態の情報システムにおいて、プログラムの配備または実行時に、アスペクトをアプリケーションプログラムに織り込むことで、アプリケーションの機能要件とは独立な処理を実装する。アスペクトの具体的な処理の定義をアドバイスと呼ぶ。また、アスペクトを織り込むアプリケーションプログラムの中の位置をポイントカットと呼ぶ。アスペクトの記述には、アドバイスとポイントカットが含まれる。
 図1は、本発明の実施の形態に係るプログラム作成支援装置100の構成を示す機能ブロック図である。本実施形態のプログラム作成支援装置100は、プログラム開発者がテナント個別要件に対応したテナントごとのカスタムプログラムを容易に開発し、保守できるよう、ユーザ毎の個別要件を基本プログラムとともに実現するアプリケーションプログラムの作成を支援するものである。なお、本実施形態では、プログラム開発者とユーザは別の利用者となっているが、これに限定されない。ユーザ自身がプログラム作成支援装置100を用いて、プログラムをカスタマイズすることもできる。
 本発明の実施の形態に係るプログラム作成支援装置100は、開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル112、基本プログラムとは別に、ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル114、およびユーザ毎に個別要件を関連付けて管理するユーザ管理テーブル116を記憶するテーブル記憶部110と、個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶部122と、テーブル記憶部110を参照し、プログラム開発者に編集対象のプログラムを提示し、基本プログラムに、ユーザ毎に定義できる個別要件を挿入する編集操作を受け付け、受け付けた編集操作に従ってプログラムを編集するプログラム編集部130と、プログラム編集部130が受け付けた個別要件を対象のユーザ毎に、基本プログラムの対象のプログラム列に関連付けて、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録し管理する個別要件管理部128と、テーブル記憶部110およびひな型記憶部122を参照し、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録された定義に従って、ひな型を用いてアスペクトを合成するアスペクト合成部140と、を備える。
 本実施形態において、プログラム作成支援装置100は、たとえば、図示しないCPU(Central Processing Unit)やメモリ、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置と接続されるサーバコンピュータやパーソナルコンピュータ、またはそれらに相当する装置により実現することができる。そして、CPUが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。
 なお、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
 本実施形態のプログラム作成支援装置100によって作成されたユーザ(テナント企業)ごとにカスタマイズされたアプリケーションプログラムは、図2に示す情報システム1によって実行され、各ユーザのユーザ端末20にサービスが提供される。
 情報システムの各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
 本実施形態において、情報システム1は、提供プログラム記憶装置10と、プログラム提供サーバ12と、プログラム作成支援装置100と、複数のテナント企業のユーザ端末20(ユーザ端末U1、ユーザ端末U2、...、ユーザ端末Un、(nは自然数))と、を備え、これらはネットワーク3を介して接続されている。
 提供プログラム記憶装置10は、カスタムプログラムを実行できるように、基本プログラムおよび個別要件を条件するプログラム列、およびプログラム作成支援装置100のテーブル記憶部110に登録された基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116がコピーされて記憶されている。そして、プログラム提供サーバ12が、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116に記憶されている情報に基づいて、基本プログラムにアスペクトを織り込んで実行し、各テナント企業のユーザ端末20にサービスを提供することができる。または、プログラム作成支援装置100によって開発されたユーザごとの要求に沿ってカスタマイズされたカスタムプログラムを提供プログラム記憶装置10に記憶し、ユーザの要求に応じてプログラム提供サーバ12が実行してもよい。
 プログラム提供サーバ12に、プログラム作成支援装置100のテーブル記憶部110と同様な記憶部を備えてもよいし、テーブル記憶部110をプログラム作成支援装置100およびプログラム提供サーバ12から共有できる構成としてもよい。また、提供プログラム記憶装置10と開発プログラム記憶部120は、同じ記憶装置に含まれてもよい。
 また、プログラム作成支援装置100は、必ずしもネットワーク3に接続される必要はなく、ネットワーク3から独立した構成でもよい。その場合、プログラム作成支援装置100で作成されたカスタマイズプログラムは、記録媒体を介して、提供プログラム記憶装置10に格納すればよい。また、本実施形態では、プログラム提供サーバ12は、テナント企業のユーザ端末20にオンラインでアプリケーションプログラムを利用したサービスを提供する構成としているが、これに限定されない。プログラム提供サーバ12は、基本プログラムを元に、各ユーザの要求に沿ってカスタマイズされたプログラムを作成し、各テナント企業のユーザ端末20にオフラインまたはオンラインで提供した後、各ユーザ端末20が、オフラインでも実行可能とするシステムであってもよい。
 図2に示すように、本発明の実施の形態に係る情報システム1は、図1のプログラム作成支援装置100と、アプリケーションプログラムの基本プログラムの複数のプログラム列および個別要件を実現するプログラム列を記憶する開発プログラム記憶部120と、プログラム作成支援装置100のアスペクト合成部140で合成されたアスペクトを織り込んで、ユーザ毎の個別要件を基本プログラムとともに実現するアプリケーションプログラムを実行するプログラム実行部(プログラム提供サーバ12またはプログラム作成支援装置100)と、を備える。
 図1に戻り、本実施形態のプログラム作成支援装置100は、テーブル記憶部110と、テーブル管理部118と、開発プログラム記憶部120と、ひな型記憶部122と、個別要件管理部128と、プログラム編集部130と、操作部132と、表示部134と、アスペクト合成部140と、アスペクト記憶部142と、を備える。
 操作部132は、プログラム作成支援装置100を実現するコンピュータに接続されたキーボードやマウス等の入力装置を含み、プログラム開発者が利用した操作を受け付ける。表示部134は、各種情報を提示してプログラム開発者が参照できるように、プログラム作成支援装置100を実現するコンピュータに接続されたディスプレイ等に各種画面を表示する。
 開発プログラム記憶部120は、開発対象のアプリケーションプログラムの基本プログラム、および各ユーザ固有の個別要件を実現するプログラム列を含むプログラムなどが記憶される。
 テーブル記憶部110は、基本プログラム管理テーブル112と、個別要件管理テーブル114と、ユーザ管理テーブル116と、を記憶する。なお、本実施形態において、開発プログラム記憶部120は、プログラム作成支援装置100に含まれる構成としているが、必ずしもプログラム作成支援装置100に含まれる必要はなく、プログラム作成支援装置100の外部のプログラム記憶部から、プログラム記憶部に記憶されているプログラムを読み込める構成であればよい。
 テーブル管理部118は、テーブル記憶部110に記憶される基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116を管理する。ここで、管理とは、これらの管理テーブルをテーブル記憶部110に永続的に保持するための機構を備え、テーブル記憶部110にアクセスと、各管理テーブルの作成、登録、更新、および参照ができることである。なお、各管理テーブルは、表示部134に各管理テーブルの閲覧画面を表示させて、プログラム開発者に提示することができる。
 また、テーブル管理部118は、本実施形態のプログラム作成支援装置100における開発対象のアプリケーションプログラムに係る管理情報が、テーブル記憶部110に存在するか否かを判別し、存在しない場合は、開発対象のアプリケーションプログラムにしたがって、必要なテーブルを新規に作成し、テーブル記憶部110にアプリケーションプログラムに対応付けて記憶する。
 基本プログラム管理テーブル112は、本実施形態のプログラム作成支援装置100における開発対象のアプリケーションプログラムの基本プログラムの管理情報を記憶している。本実施形態の基本プログラムは、図9の基本プログラムリスト300に示されるように、プログラム列Aからプログラム列Iの9つのプログラム列を含む。ここで、基本プログラムは、Java(登録商標)やC++といったプログラミング言語で記述されたプログラム列が複数並んだものである。
 上述したように、テーブル管理部118は、開発対象のアプリケーションプログラムの基本プログラム管理テーブル112がテーブル記憶部110に存在するか否かを判別し、存在しない場合、開発対象のアプリケーションプログラムに基づいて、基本プログラム管理テーブル112を新規に作成し、テーブル記憶部110に記憶する。
 本実施形態の基本プログラム管理テーブル112は、図3に示すように、開発プログラム記憶部120に記憶されている開発対象のアプリケーションプログラムの基本プログラムに含まれる複数のプログラム列の行番号と、対応するプログラム列を関連付けて記憶する。基本プログラム管理テーブル112には、基本プログラムのすべてのプログラム列に関する情報がそれぞれ保持される。なお、本実施形態では、基本プログラムの実体、すなわち、プログラムコードは、開発プログラム記憶部120に記憶されているものとする。
 また、本実施形態の基本プログラムにおいて、連続する2つのプログラム列の間には、空白の行(空行)があるとみなし、テーブル管理部118は、プログラム列の間の空白の行の位置も指し示せるよう行番号を付けて基本プログラム管理テーブル112を作成する。本実施形態では、基本プログラム管理テーブル112は、各プログラム列を各行番号に対応付けて、1列に順に並べ、各プログラム列の間に空白の行を挿入し、各行に行番号を振り、行番号をプログラム列の位置識別子として用いて管理する。
 たとえば、プログラム列Aとプログラム列Bの間の空白の行には、行番号♯2が振られ、プログラム列Aの行番号は♯1、プログラム列Bの行番号は♯3となる。
 図3のように、基本プログラムの中の位置を指定する位置識別子として行番号を用いる行単位の管理がもっともベーシックであるが、他の例では、複数行にわたるプログラム列をひとつのブロックと定義し、ブロック単位で、ブロック番号と対応するプログラム列の組で管理することもできる。この場合も、連続する2つのブロックの間には、空白のブロック(空ブロック)があるとみなし、テーブル管理部118は、ブロックの間の位置も指し示せるようブロック番号を付けて基本プログラム管理テーブル112を作成することもできる。
 個別要件管理テーブル114は、図4に示すように、個別要件の識別情報(個別要件名)と、個別要件を表すプログラム列の組を関連付けて少なくとも一つ保存する。たとえば、個別要件10はプログラム列A10とプログラム列B10などを含むことが、管理情報として記憶されている。なお、本実施形態では、各プログラム列の実体、すなわち、プログラムコードは、開発プログラム記憶部120に記憶されているものとする。
 なお、他の実施形態において、基本プログラムのプログラム列および個別要件のプログラム列は、基本プログラム管理テーブル112および個別要件管理テーブル114にそれぞれプログラム列の実体、すなわち、プログラムコード自体も格納してしまい、開発プログラム記憶部120は不要とする構成とすることもできる。
 ユーザ管理テーブル116は、図5に示すように、ユーザ(テナント)ごとに、ユーザ固有の個別要件を関連付けて記憶する。たとえば、ユーザ管理テーブル116は、ユーザ(テナント)の識別情報(ユーザID(TID))と、個別要件を実行する基本プログラム中の行番号と、その行番号で実行する必要があるユーザ固有の個別要件の識別情報(個別要件名)の組を複数保存する。たとえば、ユーザIDがTID0001のユーザ固有の個別要件10と個別要件11は、それぞれ行番号♯6と行番号♯11に関連付けて記憶されている。
 ひな型記憶部122は、後述するアスペクト合成部140がアスペクトを合成する際に使用するひな型を少なくとも一つ格納する。図14および図15に示すように、本実施形態のプログラム作成支援装置100のひな型記憶部122は、第1アスペクトひな型400と、第2アスペクトひな型420と、をそれぞれひな型として記憶する。なお、これらのひな型は、基本的には予め準備されたものを用いるが、後述するプログラム編集部130で、必要に応じて、新規作成、登録、削除および更新などができてもよい。
 図14において、第1アスペクトひな型400は、基本プログラム管理テーブル112で管理されている基本プログラムの空行に対応する行番号の位置に、個別要件を挿入した場合に用いられる。ひな型は一種のテンプレートで、図中、「***」で示された挿入部に具体的な値や文字列のプログラムコードを挿入することで、後述するアスペクト合成部140によりアスペクトを合成することができるようになっている。
 「Aspect ***」の挿入部402は、アスペクト固有の識別子であるアスペクト名(アスペクトID)を表し、他のアスペクト名と重複しなければ任意の文字列でよく、たとえば、通し番号などでよい。「Before ***」の挿入部404は、個別要件の挿入が指定された基本プログラム中の空行に対応する行番号の次の行番号に対応するプログラム列が記載される。ここでは、たとえば、空白の行の♯6に個別要件が挿入された場合、挿入部404には、その次の行の行番号♯7に対応する「プログラム列D」が記載されることとなる。
 その後に続く、アドバイスには、ユーザID(ユーザ固有の識別子)の取得を表すプログラム列と、その取得したユーザIDごとに実行すべき異なる個別要件を表すプログラム列が記載される。
 すなわち、ユーザIDごとに実行すべき異なる個別要件を実行するために、条件分岐の「if(TID==***)」の挿入部406は、ユーザID(TID)を表し、ユーザ管理テーブル116に記載されているユーザIDのなかで、「Before ***」の挿入部404のところで述べた空行に対応する行番号と同一の行番号が関連付けて記憶されているものを記載する。
 そして、ユーザID(ユーザ固有の識別子)ごとに実行すべき異なる個別要件を表すプログラム列である「do ***」の挿入部408には、「if(TID==***)」の挿入部406のところで述べた行番号に対応する個別要件を表すプログラム列を記載する。
 ひな型の中で記述されるプログラム列は、ユーザIDの取得のプログラム列とユーザIDごとにどの個別要件を実行すべきか振り分ける分岐のプログラム列である。
 たとえば、図5のユーザ管理テーブル116では、個別要件が挿入された行番号♯6を含むテナントは、ユーザIDが「TID0001」と「TID0002」の2つある。TID0001のユーザIDを挿入部406に記載し、対応する個別要件名、ここでは「個別要件10」を、対応する「do ***」の挿入部408に記載する。さらに、TID0002のユーザIDを「else if(TID==***)」の挿入部410に記載し、対応する個別要件名、ここでは、「個別要件20」を、対応する「do ***」の挿入部412に記載することとなる。
 図15において、第2アスペクトひな型420は、基本プログラム管理テーブル112で管理されている基本プログラムの空行ではないプログラム列に対応する行番号の位置に、個別要件を挿入した場合に用いられる。「Around ***」の挿入部424には、空行ではないプログラム列を指定する。他の挿入部の扱いは、図14のひな型と同じである。たとえば、空行ではないプログラム列Fに個別要件が挿入された場合、挿入部424には、その行に対応する「プログラム列F」が記載されることとなる。
 図1に戻り、個別要件管理部128は、ユーザごとに定義できるユーザ固有の個別要件を実現するプログラム列を管理する。プログラム列自体は、後述するプログラム編集部130により編集でき、個別要件単独で行ってもよいし、ユーザのアプリケーションプログラム作成時に行ってもよい。個別要件は、開発プログラム記憶部120に個別要件の識別情報(個別要件名など)を付して記憶することができる。個別要件管理部128によって新たな個別要件を登録することができ、新たな個別要件が登録された時、個別要件管理部128は、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116を更新するようテーブル管理部118に通知する。
 プログラム編集部130は、基本プログラムをもとに開発者がプログラムを編集するエディタの機能を提供する。エディタの機能は一般的なものであり、プログラム作成支援装置100を実現するコンピュータのディスプレイなどの表示部134に後述する図10~図13に示すプログラムエディタ画面を表示させて、プログラム開発者に編集対象のプログラムを提示し、プログラム開発者によるキーボードとマウスなどの入力装置を用いた操作を操作部132が受け付けて、プログラム列の作成、修正、または削除などを行うことができる。
 プログラム編集部130は、編集の作業と並行して、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116の作成および更新を行うようテーブル管理部118や個別要件管理部128に通知する。本実施形態において、プログラム編集部130は、たとえば、開発対象のユーザ(テナント)を指定し、その対象のユーザ専用の利用者画面として編集画面を表示させることができる。または、ユーザを指定する代わりに、プログラム作成支援装置100を利用するために、ユーザ毎に設定されたユーザ情報、たとえば、ユーザIDとパスワードにより、システムにログインすることで、認証されたユーザ専用の利用者画面を利用することを可能としてもよい。
 アスペクト合成部140は、テーブル管理部118が管理する基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116をもとに、ひな型記憶部122に記憶されているひな型に従って、ユーザごとの個別要件を実装したアスペクトを合成する。本実施形態では、アスペクト合成部140によって合成されたアスペクトは、図2のプログラム提供サーバ12によって、基本プログラムに織り込まれ、実行され、ネットワーク3を介してユーザのユーザ端末20にサービスが提供されることとなる。あるいは、プログラム作成支援装置100によって合成されたアスペクトと、基本プログラムは、ユーザごとにカスタムプログラムとして図2の提供プログラム記憶装置10に格納され、ユーザの要求に応じて、プログラム提供サーバ12が、ユーザごとにカスタムプログラムを実行して、ユーザ端末20にサービスを提供することもできる。
 アスペクト合成部140で合成されたアスペクトは、アスペクト記憶部142に記憶することができる。または、アスペクトは、開発プログラム記憶部120に記憶されてもよい。
 本実施形態のプログラムは、コンピュータに、開発対象のアプリケーションプログラムを作成するプログラム作成支援装置を実現させるためのプログラムであって、プログラム作成支援装置100を実現させるためのコンピュータに、テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを編集するための編集画面(図10のプログラムエディタ画面210)を表示部134(図1)に表示して提示する手順、プログラム開発者による操作部132(図1)を利用した、ユーザ毎に定義できる個別要件を基本プログラムに挿入する編集操作を受け付ける手順、受け付けた編集操作に従ってプログラムを編集する手順、受け付けた個別要件を対象のユーザ毎に、基本プログラムの対象のプログラム列に関連付けて、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録し管理する手順、テーブル記憶部110およびひな型記憶部122を参照し、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録された定義に従って、ひな型を用いてアスペクトを合成する手順、ユーザ毎の個別要件を基本プログラムとともに実現するアプリケーションプログラムを実行する手順、を実行させるように記述されている。
 本実施形態のコンピュータプログラムは、コンピュータで読み取り可能な記憶媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
 上述のような構成において、本実施の形態のデータ処理装置100によるデータ処理方法を以下に説明する。図6は、本実施形態のプログラム作成支援装置100の動作の一例を示すフローチャートである。
 本実施形態のデータ処理方法は、プログラム作成支援装置100(図1)が、テーブル記憶部110を参照し、プログラム開発者に編集対象のプログラムを編集するための編集画面(図10のプログラムエディタ画面210)を表示部134(図1)に表示して提示し、プログラム開発者による操作部132(図1)を利用した、ユーザ毎に定義できる個別要件を基本プログラムに挿入する編集操作を受け付け、受け付けた編集操作に従ってプログラムを編集し、受け付けた個別要件を対象のユーザ毎に、基本プログラムの対象のプログラム列に関連付けて、ユーザ管理テーブル116(図1)、基本プログラム管理テーブル112(図1)、および個別要件管理テーブル114(図1)に登録し、テーブル記憶部110(図1)およびひな型記憶部122(図1)を参照し、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録された定義に従って、ひな型を用いてアスペクトを合成し、ユーザ毎の個別要件を基本プログラムとともに実現するアプリケーションプログラムを実行する。
 以下、本実施形態のプログラム作成支援装置100の動作について、図1乃至図6を用いて説明する。
 具体的には、図6に示すように、本実施形態のプログラム作成支援装置100(図1)において、まず、プログラム編集部130(図1)が、開発プログラム記憶部120(図1)から基本プログラムを読み込む(ステップS101)。プログラム編集部130が、読み込んだ基本プログラムに該当する基本プログラム管理テーブル112(図1)、個別要件管理テーブル114(図1)、およびユーザ管理テーブル116(図1)がテーブル記憶部110(図1)にそれぞれ登録されているかどうか、テーブル管理部118(図1)に問い合わせる。テーブル管理部118は、テーブル記憶部110を参照し、各テーブルが存在するか否かを判別する。
 テーブルが登録されていない場合には(ステップS103のNO)、テーブル管理部118は、読み込んだ基本プログラムのための基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116をそれぞれ新規に作成し、テーブル記憶部110に格納する(ステップS121)。そして、ステップS105に進む。一方、テーブルが登録されている場合には(ステップS103のYES)、プログラム編集部130が、テーブル記憶部110を参照し、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116をテーブル記憶部110から読み出す(ステップS105)。
 次に、プログラム作成支援装置100の表示部134(図1)には、プログラム編集部130により、図10のプログラムエディタ画面210が表示される。なお、本実施形態において、ステップS101またはステップS107の前に、図8のユーザ指定画面200がプログラム作成支援装置100の表示部134に表示されてもよい。図8に示すように、ユーザ指定画面200は、ユーザID指定欄202と、OKボタン204と、を含む。プログラム開発者に操作部132を利用して、編集対象のプログラムのユーザ、すなわち、テナントのIDをユーザID指定欄202に入力または、プルダウンメニューなどで選択させる。OKボタン204の操作に呼応して、ユーザID指定欄202で指定されたユーザIDを受け付ける。
 この図8のユーザ指定画面200で指定されたユーザのカスタムプログラムを編集するための画面の一例が、図10のプログラムエディタ画面210である。プログラムエディタ画面210は、図9の基本プログラムリスト300が編集対象として表示される。基本プログラムの各プログラム列には、行番号212が振られている。図10に示すように、連続するプログラム列の間には、それぞれ空白の行があるとみなし、空白行にも行番号212が振られている。
 プログラムエディタ画面210のユーザID表示欄214には、上述した図8のユーザ指定画面200で指定された編集対象のユーザ(テナント)の識別情報、図10では、「TID0001」が表示されている。プログラムエディタ画面210には、カーソル216位置が反転表示されている。また、プログラム開発者は、操作部132を利用して、ポインタ218を移動させて編集位置を指定することもできる。このようにして、プログラム開発者は、キーボード等を用いてカーソル216で示された文字やマウスポインタ218で示された位置を編集することができる。このように、プログラム開発者は、ユーザ毎に個別要件を編集および管理できる。
 図6に戻り、プログラム編集部130が、プログラム開発者がプログラムエディタ画面210で操作部132を利用して作成したユーザごとの個別要件を記述するプログラム列を受け付ける(ステップS107)。そして、プログラム編集部130によって受け付けられたプログラム列は、個別要件管理部128により、開発プログラム記憶部120に登録されるとともに、個別要件管理テーブル114およびユーザ管理テーブル116を更新するようにテーブル管理部118に通知される。
 すなわち、プログラム編集部130は、基本プログラムの複数のプログラム列をプログラム開発者に提示する提示部(図10のプログラムエディタ画面210)と、対象のユーザの個別要件を挿入する挿入位置として、提示部に提示された基本プログラムの複数のプログラム列の位置をプログラム開発者に指定させて受け付け、個別要件管理部128は、ユーザ毎に、プログラム編集部130が受け付けた挿入位置と個別要件とを関連付けて、ユーザ管理テーブル116および個別要件管理テーブル114に登録し管理するよう118に通知する。
 この構成により、プログラム開発者は、提示された基本プログラムの複数のプログラム列を参照しながらユーザ毎の個別要件を挿入してプログラムを編集できることとなる。
 そして、テーブル管理部118が、個別要件管理部128からの通知を受けて、テーブル記憶部110の個別要件管理テーブル114およびユーザ管理テーブル116を更新する(ステップS109)。
 そして、アスペクト合成部140が、ひな型記憶部122とテーブル記憶部110を参照し、ひな型と、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116を読み出す(ステップS111)。そして、アスペクト合成部140が、これらの情報をもとに、ポイントカットごとに該当するアスペクトの記述を合成する(ステップS113)。合成されたアスペクトは、開発プログラム記憶部120に格納される。アスペクト合成処理の詳細については、後述する。
 そして、プログラム実行部であるプログラム提供サーバ12(図2)が、基本プログラムと合成したアスペクトを読み込み、アスペクト指向プログラミングの手法に従ってアスペクトを基本プログラムに織り込みながらプログラムを実行する(ステップS115)。これにより、ユーザごとに異なる個別要件を満たすアプリケーションプログラムを利用したサービスを、各ユーザのユーザ端末20に提供できることとなる。
 以下、プログラム作成支援装置100におけるユーザ毎の個別要件の編集処理について、プログラム開発者の編集操作に沿って、具体例を示しながら説明する。以下、図1、図5、図10~図13を用いて説明する。
 たとえば、図10に示すように、プログラムエディタ画面210において、基本プログラムのプログラム列Cとプログラム列Dの間の6行目の空白行の位置にプログラム開発者は操作部132(図1)を利用してポインタ218を移動し、選択する。すると、図11に示すように、個別要件編集欄220が展開され、TID0001のユーザの個別要件を記述するプログラム列を編集することができるようになる。なお、図11の例では、プログラムエディタ画面210に個別要件編集欄220が展開されるように構成されているが、これに限定されるものではなく、別のウインドウを開いて編集できるようにしてもよい。
 そして、プログラム開発者は、操作部132を利用して個別要件編集欄220に、TID0001のユーザの個別要件10に対応するプログラム列を記述していく。図11では、「個別要件10」と記載されているが、この個別要件10は、図4の個別要件管理テーブル114に示されるように、複数のプログラム列、たとえば、A10、B10、...といった内容とすることができる。
 図11に戻り、さらに、6行目の個別要件10の編集を終了した後、プログラム開発者は、さらに、11行目に相当するプログラム列Fの位置に操作部132を利用してポインタ218を移動し、選択する。すると、図12に示すように、11行目の位置に個別要件編集欄220が展開され、そこに、TID0001のユーザの個別要件11に対応するプログラム列をさらに記述していくことができる。この個別要件11は、図4の個別要件管理テーブル114に示すように、複数のプログラム列、たとえば、A11、B11、...といった内容とすることができる。図12では、先に編集した個別要件10が行番号♯6に挿入され、編集済み個別要件欄222としてプログラムエディタ画面210上に提示されている。
 次に、プログラム開発者は、TID0001のユーザのプログラムの編集を終了し、TID0002のユーザのプログラムの編集を行うとする。プログラム編集部130は、開発プログラム記憶部120から基本プログラムを読み込み、図13に示すように、TID0002のユーザ用のプログラムエディタ画面210が表示部134に表示される。TID0001のユーザのときと同様に、プログラムを編集することができる。
 ここでは、たとえば、プログラムエディタ画面210において、基本プログラムのプログラム列Cとプログラム列Dの間の6行目の空白行の位置にプログラム開発者は操作部132を利用してポインタ218を移動し、選択する。すると、個別要件編集欄220が展開され、TID0002のユーザの個別要件を記述するプログラム列を編集することができるようになる。そして、プログラム開発者は、操作部132を利用して個別要件編集欄220に、TID0002のユーザの個別要件20に対応するプログラム列を記述していく。この個別要件20は、図4の個別要件管理テーブル114に示されるように、複数のプログラム列、たとえば、A20、B20、...といった内容とすることができる。
 プログラム開発者によるTID0002のユーザのプログラムの編集も終了したとき、プログラム編集部130は、これらのプログラムの編集内容を受け付ける。個別要件管理部128は、受け付けた各個別要件を記述するプログラム列を開発プログラム記憶部120に記憶するとともに、テーブル管理部118および個別要件管理部128に、テーブル記憶部110の個別要件管理テーブル114およびユーザ管理テーブル116を更新するよう通知する。なお、プログラム編集部130がテーブル管理部118および個別要件管理部128に各テーブルの更新を指示するタイミングは、これに限定されない。たとえば、途中でプログラム開発者の指示を受け付け更新してもよいし、定期的に更新してもよいし、ユーザ毎の定義が終了したときでもよい。
 テーブル記憶部110の個別要件管理テーブル114は、図4に示すように更新され、テーブル記憶部110のユーザ管理テーブル116は、図5に示すように更新される。
 なお、本実施形態では、個別要件をプログラムエディタ画面210上で、新規に入力する例について説明したが、これに限定されず、たとえば、プログラムエディタ画面210で、既にテーブル記憶部110の個別要件管理テーブル114に登録されている個別要件を読み出し、プログラム開発者に提示し、基本プログラムの指定した行の位置に、選択した個別要件を挿入することもできる。また、既に登録されている個別要件を記述するプログラム列をプログラムエディタ画面210の個別要件編集欄220上で、変更することもできる。
 そして、プログラムの編集が終了した後、アスペクト合成部140が、テーブル記憶部110から基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116を読み出すとともに、ひな型記憶部122からひな型を読み出す。本実施形態では、上述した図14および図15の2種類のひな型が予め準備されており、これらが読み出される。
 以下、図7を用いて、アスペクト合成処理の詳細について、具体例を示しながら説明する。以下、図1、図3~図5、図7、図14~図17を用いて説明する。このフローチャートに示す処理は、図6のステップS113の詳細処理である。
 アスペクト合成部140(図1)が、以下の処理を行う。図5のユーザ管理テーブル116を参照し、ユーザ管理テーブル116から、6行目と11行目に挿入すべき個別要件があることを検出する(ステップS201)。そこで、まず、6行目に織り込むアスペクトを合成する。以下、ステップS201で検出された各行について、ステップS205~ステップS225を繰り返す(ステップS203)。なお、すべての行について処理が終了したら(ステップS227)、本処理を終了する。
 そして、図3の基本プログラム管理テーブル112を参照し、個別要件が挿入されている行が空白行か否かを判別する(ステップS205)。ここで、6行目は空白行であるため(ステップS205のYES)、空行に対応した図14の第1アスペクトひな型400を選択して用いる(ステップS207)。
 第1アスペクトひな型400において、「Aspect ***」の挿入部402は、アスペクト名(アスペクトID)、たとえば、「XXX」が記載される(ステップS211)。ここで、第1アスペクトひな型400を用いているので(ステップS213のYES)、個別要件の挿入が指定された基本プログラム中の空行に対応する行番号の次の行番号に対応するプログラム列、ここでは、空白の行の♯6の次の行の行番号♯7に対応する「プログラム列D」が取得され、「Before ***」の挿入部404に記載される(ステップS215)。
 そして、ユーザ管理テーブル116を参照し、該当行、ここでは行番号♯6に個別要件が記載されているユーザID(TID)と個別要件の組を取得する(ステップS219)。この例では、TID0001と個別要件10、TID0002と個別要件20の2つの組が取得される。
 そして、各ユーザIDごとに、以下のステップS223の処理を繰り返す(ステップS221)。ステップS219で取得したすべてのユーザIDについて処理が終了するまで繰り返し(ステップS225)、すべてのユーザIDについて終了したら、ステップS227に進む。
 ステップS223では、条件分岐の「if(TID==***)」の挿入部406に、ステップS219で取得したユーザIDであるTIDの0001が記載される。そして、「do ***」の挿入部408には、ユーザIDがTID0001の6行目に対応する個別要件10を表すプログラム列(A10、B10、...といった内容)が記載される。
 次に、次のユーザIDについて、ステップS223の処理を繰り返す。すなわち、条件分岐の「else if(TID==***)」の挿入部410に、ステップS219で取得したユーザIDであるTIDの0002が記載される。そして、「do ***」の挿入部412には、ユーザIDがTID0002の6行目に対応する個別要件20を表すプログラム列(A20、B20、...といった内容)が記載される。ここまでの処理で、第1アスペクトひな型400を用いたアスペクトの合成が終了する。この結果得られたアスペクト440を図16に示す。
 次に、ステップS201で検出された行のうち、まだ処理が済んでいない行番号♯11について、処理を繰り返す。すなわち、ステップS205に戻り、ユーザ管理テーブル116の11行目に織り込むアスペクトを合成する。基本プログラム管理テーブル112を参照し、個別要件が挿入されている行が空白行か否かを判別し、11行目は空白行でないため(ステップS205のNO)、図15の第2アスペクトひな型420を選択して用いる(ステップS209)。
 第2アスペクトひな型420において、「Aspect ***」の挿入部402は、アスペクト名(アスペクトID)、たとえば、「YYY」が記載される(ステップS211)。ここで、第2アスペクトひな型420を用いているので(ステップS213のNO)、個別要件の挿入が指定された基本プログラム中のプログラム列、ここでは、「プログラム列F」が取得され、「Around ***」の挿入部424に記載される(ステップS217)。
 そして、ユーザ管理テーブル116を参照し、該当行、ここでは行番号♯11に個別要件が記載されているユーザID(TID)と個別要件の組を取得する(ステップS219)。この例では、TID0001と個別要件11の1組が取得される。そして、条件分岐の「if(TID==***)」の挿入部406に、ステップS219で取得したユーザIDであるTIDの0001が記載される。そして、「do ***」の挿入部408には、ユーザIDがTID0001の11行目に対応する個別要件11を表すプログラム列(A11、B11、...といった内容)が記載される(ステップS223)。
 ここでは、ユーザIDはTID0001のみなので、ステップS227に進み、ここまでの処理で、第2アスペクトひな型420を用いたアスペクトの合成が終了する。この結果得られたアスペクト460を図17に示す。ここで、ステップS201で検出されたすべての行について処理が終了したので、本処理を終了する。
 このようにして各ユーザのプログラムに織り込む各アスペクトが合成され、アスペクト記憶部142に記憶される。
 次に、これらのプログラムを利用したサービスを各ユーザに提供する場合について、説明する。図1および図2に示すように、プログラム作成支援装置100で開発されたプログラムは、開発プログラム記憶部120およびアスペクト記憶部142から提供プログラム記憶装置10にコピーされ、格納される。プログラム提供サーバ12が提供プログラム記憶装置10にアクセスし、基本プログラムとプログラム作成支援装置100によって合成された2つのアスペクトを読み込み、アスペクト指向プログラミングの手法に従ってアスペクトを基本プログラムに織り込みながらプログラムを実行する。
 プログラム提供サーバ12が、TID0001のユーザ向けに実行する実効的なプログラム310の例を図18に示す。このように、プログラム提供サーバ12は、プログラム列Dの前で個別要件10(符号312)を実行し、プログラム列Fの代わりに個別要件11(符号314)を実行することとなる。また、プログラム提供サーバ12が、TID0002のユーザ向けに実行する実効的なプログラム330の例を図19に示す。このように、プログラム提供サーバ12は、プログラム列Dの前で個別要件20(符号332)を実行することとなる。
 以上説明したように、本実施形態のプログラム作成支援装置100によれば、ユーザ毎に設けられた編集画面で基本プログラムに個別要件を挿入するだけで、自動的に対応するアスペクトを合成できるので、プログラム開発者がアスペクトを意識することなく、ユーザ(テナント)を単位として編集作業ができるようになる。そのため、プログラム開発者がユーザ個別要件に対応したユーザ(テナント)ごとのカスタムプログラムを容易に開発し保守できるようになり、ユーザ個別要件に対応する際の作業効率やプログラム開発者の負担を改善することができる。
 これにより、プログラムの実装、実行の際のアスペクトを単位としたプログラムの管理において、プログラム開発者がプログラムの開発やバグ解析を行う際にはユーザ(テナント)を単位として編集作業が行えるようになり、開発者の視点での編集、解析に適したプログラムの作成を支援することができることとなる。
 すなわち、ひとつのアスペクトに多数のテナント個別要件がまとめて実装されたり、ひとつのテナントの個別要件が複数のアスペクトに分かれて実装されたりすると、プログラム開発者がアスペクトとユーザ(テナント)という2つの観点を把握しなければならず煩雑になり、プログラム開発者が、ユーザ(テナント)ごとに実行される実効的なプログラムを把握しにくいとう問題点を解決できる。
 以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
 以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 以上、本発明の構成について説明したが、本発明は、これに限られず様々な態様を含む。以下はその例示である。
(i) 本発明のプログラム作成支援装置は、開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
 前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
 前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、受け付けた前記編集操作に従って前記プログラムを編集するプログラム編集手段と、
 前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
 前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、を備える前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを作成し、
 前記基本プログラム管理テーブルは、前記基本プログラム中の複数の前記プログラム列の位置を示す位置識別子と、対応するプログラム列をそれぞれ関連付けて記憶し、
 さらに、
 前記位置識別子は、前記基本プログラムの各プログラム列に振られた行番号であるプログラム作成支援装置。
(ii) 上記(i)に記載のプログラム作成支援装置において、
 前記位置識別子は、前記基本プログラムの複数のプログラム列を表すブロックの番号であるプログラム作成支援装置。
(iii) 上記(ii)に記載のプログラム作成支援装置において、
 前記プログラム列は、連続する2つのプログラム列の間に空ブロック列が定義され、前記ブロックの番号は、前記空ブロック列を含めた番号であるプログラム作成支援装置。
(iv) 本発明のプログラム作成支援装置のデータ処理方法は、
 開発対象のアプリケーションプログラムを作成するプログラム作成支援装置のデータ処理方法であって、
 前記プログラム作成支援装置が、
 前記アプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
 前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
 プログラム開発者に操作画面を表示して提示する表示部と、
 前記プログラム開発者の操作を受け付ける操作部と、を備え、
 前記プログラム作成支援装置が、
 前記テーブル記憶装置を参照し、前記プログラム開発者に編集対象のプログラムを編集するための編集画面を前記表示部に表示して提示し、
 前記プログラム開発者による前記操作部を利用した、前記ユーザ毎に定義できる前記個別要件を前記基本プログラムに挿入する編集操作を受け付け、
 受け付けた前記編集操作に従って前記プログラムを編集し、
 受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し、
 前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成し、
 前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行するプログラム作成支援装置のデータ処理方法である。
 この出願は、2010年3月5日に出願された日本出願特願2010-049333号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1.  開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
     前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
     前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、受け付けた前記編集操作に従って前記プログラムを編集するプログラム編集手段と、
     前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
     前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、を備える前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを作成するプログラム作成支援装置。
  2.  請求項1に記載のプログラム作成支援装置において、
     前記プログラム編集手段は、
     前記基本プログラムの複数の前記プログラム列を前記プログラム開発者に提示する提示部と、
     対象の前記ユーザの前記個別要件を挿入する挿入位置として、前記提示部に提示された前記基本プログラムの複数の前記プログラム列の位置を前記プログラム開発者に指定させて受け付け、
     前記個別要件管理手段は、前記ユーザ毎に、前記プログラム編集手段が受け付けた前記挿入位置と前記個別要件とを関連付けて、前記ユーザ管理テーブルおよび前記個別要件管理テーブルに登録し管理するプログラム作成支援装置。
  3.  請求項1または2に記載のプログラム作成支援装置において、
     前記個別要件管理テーブルは、前記個別要件の識別情報と、前記個別要件を実現する少なくとも1つの前記プログラム列を関連付けて記憶するプログラム作成支援装置。
  4.  請求項1乃至3いずれかに記載のプログラム作成支援装置において、
     前記ユーザ管理テーブルは、前記ユーザごとに、前記個別要件の識別情報と、前記個別要件を挿入する前記基本プログラム中の位置識別子の組を関連付けて記憶するプログラム作成支援装置。
  5.  請求項1乃至4いずれかに記載のプログラム作成支援装置において、
     前記基本プログラム管理テーブルは、前記基本プログラム中の複数の前記プログラム列の位置を示す位置識別子と、対応するプログラム列をそれぞれ関連付けて記憶するプログラム作成支援装置。
  6.  請求項5に記載のプログラム作成支援装置において、
     前記基本プログラム管理テーブルは、前記基本プログラムにおいて、連続する2つの前記プログラム列の間に空白があるとみなし、前記空白の位置を含む前記位置識別子と、対応する前記プログラム列をそれぞれ関連付けて記憶するプログラム作成支援装置。
  7.  請求項6に記載のプログラム作成支援装置において、
     前記ひな型記憶装置は、前記個別要件を挿入する挿入位置に対応する前記位置識別子が指す空白の位置の次のプログラム列の前に挿入するアスペクトを合成するための第1のひな型を記憶し、
     前記合成手段は、前記基本プログラム管理テーブルを参照し、前記個別要件を挿入する前記挿入位置が、前記基本プログラム中の空白の位置か否かを判別し、前記空白の位置が指定された場合には、前記第1のひな型を用いて前記挿入位置に対応する前記位置識別子が指す前記空白の位置の次の前記プログラム列の前に挿入するアスペクトを合成するプログラム作成支援装置。
  8.  請求項6または7に記載のプログラム作成支援装置において、
     前記ひな型記憶装置は、前記個別要件を挿入する挿入位置に対応する前記位置識別子が指す位置のプログラム列を上書きして挿入するアスペクトを合成するための第2のひな型を記憶し、
     前記合成手段は、前記基本プログラム管理テーブルを参照し、前記個別要件を挿入する前記挿入位置が、前記基本プログラム中の空白の位置か否かを判別し、前記空白の位置を指さない場合には、前記第2のひな型を用いて前記挿入位置に対応する前記位置識別子が指す位置の前記プログラム列を上書きして挿入するアスペクトを合成するプログラム作成支援装置。
  9.  開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
     アプリケーションプログラムの前記基本プログラムの複数の前記プログラム列および前記個別要件を実現する前記プログラム列を記憶するプログラム記憶装置と、
     前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
     前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、前記プログラムを編集するプログラム編集手段と、
     前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
     前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、
     前記合成手段で合成された前記アスペクトを織り込んで、前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行するプログラム実行手段と、を備える情報システム。
  10.  コンピュータに、開発対象のアプリケーションプログラムを作成するプログラム作成支援装置を実現させるためのプログラムであって、
     前記プログラム作成支援装置が、
     前記アプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
     前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
     プログラム開発者に操作画面を表示して提示する表示部と、
     前記プログラム開発者の操作を受け付ける操作部と、を備え、
     前記コンピュータに、
     前記テーブル記憶装置を参照し、前記プログラム開発者に編集対象のプログラムを編集するための編集画面を前記表示部に表示して提示する手順、
     前記プログラム開発者による前記操作部を利用した、前記ユーザ毎に定義できる前記個別要件を前記基本プログラムに挿入する編集操作を受け付ける手順、
     受け付けた前記編集操作に従って前記プログラムを編集する手順、
     受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する手順、
     前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する手順、
     前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行する手順を実行させるためのプログラム。
PCT/JP2011/000672 2010-03-05 2011-02-07 プログラム作成支援装置、プログラム、および、情報システム WO2011108193A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012502979A JP5626333B2 (ja) 2010-03-05 2011-02-07 プログラム作成支援装置、プログラム、および、情報システム
US13/582,794 US9116708B2 (en) 2010-03-05 2011-02-07 Program creation support apparatus, program, and information system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-049333 2010-03-05
JP2010049333 2010-03-05

Publications (1)

Publication Number Publication Date
WO2011108193A1 true WO2011108193A1 (ja) 2011-09-09

Family

ID=44541864

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/000672 WO2011108193A1 (ja) 2010-03-05 2011-02-07 プログラム作成支援装置、プログラム、および、情報システム

Country Status (3)

Country Link
US (1) US9116708B2 (ja)
JP (1) JP5626333B2 (ja)
WO (1) WO2011108193A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225598A (ja) * 2014-05-29 2015-12-14 富士通株式会社 処理プログラム、情報処理装置及び情報処理方法
DE112020006373T5 (de) 2019-12-27 2022-10-27 Omron Corporation Programmausführungsvorrichtung, Programmausführungsverfahren und Programm

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6186498B2 (ja) * 2014-03-25 2017-08-23 富士フイルム株式会社 撮像装置及び合焦制御方法
KR20160075085A (ko) * 2014-12-19 2016-06-29 삼성전기주식회사 렌즈 조립체 및 이를 포함하는 카메라 모듈
JP6602109B2 (ja) * 2015-08-28 2019-11-06 キヤノン株式会社 制御装置、撮像装置、制御方法、プログラム、および、記憶媒体
KR101866826B1 (ko) * 2015-12-16 2018-07-23 유환수 게임 서버의 운용 에스펙트 호출 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002157117A (ja) * 2000-11-21 2002-05-31 Mitsubishi Electric Corp フレームワーク開発支援装置及びフレームワーク開発支援方法
JP2002202885A (ja) * 2000-01-25 2002-07-19 Fujitsu Ltd データ構造解決ユニットを用いたプログラム自動生成方式
JP2004362442A (ja) * 2003-06-06 2004-12-24 Nippon Steel Corp プログラム自動生成装置、プログラム自動生成方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体
JP2009512014A (ja) * 2005-10-06 2009-03-19 マイクロソフト コーポレーション オブジェクト合成に対する拡張可能メカニズム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038395A (en) * 1994-12-16 2000-03-14 International Business Machines Corporation System and method for implementing proxy objects in a visual application builder framework
US6134552A (en) * 1997-10-07 2000-10-17 Sap Aktiengesellschaft Knowledge provider with logical hyperlinks
AU5273100A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
CN1591411A (zh) * 2001-11-09 2005-03-09 无锡永中科技有限公司 数据处理系统
US20030172368A1 (en) * 2001-12-26 2003-09-11 Elizabeth Alumbaugh System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology
US8136094B2 (en) * 2004-01-07 2012-03-13 International Business Machines Corporation Relationship management for data modeling in an integrated development environment
US20070106982A1 (en) * 2005-11-04 2007-05-10 International Business Machines Corporation Method, apparatus, and computer program product for model based traceability
JP2007213487A (ja) 2006-02-13 2007-08-23 Hitachi Software Eng Co Ltd アスペクト生成方法及び装置
EP2013713A2 (en) * 2006-04-27 2009-01-14 International Business Machines Corporation A method and system for generating application data editors
JP4629646B2 (ja) 2006-11-01 2011-02-09 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションプログラムを生成するための装置、方法、及びプログラム
JP2009282777A (ja) * 2008-05-22 2009-12-03 Hitachi Information Systems Ltd アプリケーションプログラムの提供システム及びアプリケーションプログラム
US8327351B2 (en) * 2009-04-30 2012-12-04 Sap Ag Application modification framework
US9164738B2 (en) * 2009-07-01 2015-10-20 International Business Machines Corporation Database mapping of models for reporting tools in model driven development
US8671124B2 (en) * 2009-07-24 2014-03-11 Ensequence, Inc. Method for application authoring employing a pre-certified master application template

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002202885A (ja) * 2000-01-25 2002-07-19 Fujitsu Ltd データ構造解決ユニットを用いたプログラム自動生成方式
JP2002157117A (ja) * 2000-11-21 2002-05-31 Mitsubishi Electric Corp フレームワーク開発支援装置及びフレームワーク開発支援方法
JP2004362442A (ja) * 2003-06-06 2004-12-24 Nippon Steel Corp プログラム自動生成装置、プログラム自動生成方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体
JP2009512014A (ja) * 2005-10-06 2009-03-19 マイクロソフト コーポレーション オブジェクト合成に対する拡張可能メカニズム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HAYATO KANAI ET AL.: "Aspect-Oriended Method to Change Mechanisms for Model Checking", IPSJ SIG NOTES, vol. 2008, no. 93, 19 September 2008 (2008-09-19), pages 49 - 56 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225598A (ja) * 2014-05-29 2015-12-14 富士通株式会社 処理プログラム、情報処理装置及び情報処理方法
DE112020006373T5 (de) 2019-12-27 2022-10-27 Omron Corporation Programmausführungsvorrichtung, Programmausführungsverfahren und Programm

Also Published As

Publication number Publication date
JP5626333B2 (ja) 2014-11-19
US20130007697A1 (en) 2013-01-03
JPWO2011108193A1 (ja) 2013-06-20
US9116708B2 (en) 2015-08-25

Similar Documents

Publication Publication Date Title
Freeman Pro Asp. net core MVC
JP5626333B2 (ja) プログラム作成支援装置、プログラム、および、情報システム
Ganesh et al. Openerp/odoo-an open source concept to erp solution
US8910113B2 (en) Methods and systems for visual code refactoring
CN109542556B (zh) 一种基于Activiti的流程与表单交互方法及系统
JP4058118B2 (ja) プログラム生成システム及び方法
US20070245321A1 (en) Computer games localisation
US20080126925A1 (en) Using a backend simulator to test and develop xforms templates before linking the xforms templates to backend data processing systems
US9524279B2 (en) Help document animated visualization
US20160170719A1 (en) Software database system and process of building and operating the same
CN106775744B (zh) 一种生成静态库的方法和装置
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
JP2009020705A (ja) Guiアプリケーション開発支援装置及び開発支援方法
Rimple et al. Spring Roo in action
Vasic Mastering Android Development with Kotlin: Deep dive into the world of Android to create robust applications with Kotlin
Hindrikes et al. Xamarin. Forms Projects: Build multiplatform mobile apps and a game from scratch using C# and Visual Studio 2019
Yuen Mastering Windows Presentation Foundation: Build responsive UIs for desktop applications with WPF
JP2006338399A (ja) プログラム開発装置、プログラム開発ソフトウェア及び記憶媒体
Sun Practical Application Development with AppRun
Yuen Mastering Windows Presentation Foundation
CN116974558B (zh) 一种营销计费活动h5页面开发平台及开发方法
Mitchell et al. Dart: Scalable Application Development
Freeman Applied ASP. NET 4 in context
KR100348762B1 (ko) 네트워크 메시지 서비스를 위한 서비스 생성 방법
JP2008015879A (ja) 自然文を含む仕様の記述支援方法、プログラムおよびシステム

Legal Events

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

Ref document number: 11750307

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012502979

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13582794

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11750307

Country of ref document: EP

Kind code of ref document: A1