US20110088011A1 - Automated Enterprise Software Development - Google Patents

Automated Enterprise Software Development Download PDF

Info

Publication number
US20110088011A1
US20110088011A1 US12/839,243 US83924310A US2011088011A1 US 20110088011 A1 US20110088011 A1 US 20110088011A1 US 83924310 A US83924310 A US 83924310A US 2011088011 A1 US2011088011 A1 US 2011088011A1
Authority
US
United States
Prior art keywords
class
file
application
palmyra
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/839,243
Other languages
English (en)
Inventor
Badreddine Ouali
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VERMEG SERVICES SARL
Vermeg Sarl
Original Assignee
Vermeg Sarl
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 Vermeg Sarl filed Critical Vermeg Sarl
Priority to US12/839,243 priority Critical patent/US20110088011A1/en
Assigned to VERMEG SERVICES SARL reassignment VERMEG SERVICES SARL ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OUALI, BADREDDINE
Publication of US20110088011A1 publication Critical patent/US20110088011A1/en
Priority to US13/955,362 priority patent/US9823900B2/en
Priority to US15/675,238 priority patent/US10324690B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Definitions

  • This invention relates generally to methods and systems for automated enterprise software development. Specifically, it relates to methods and systems for automating computer software development process in connection with graphical modeling approaches.
  • Model-Based Development (MBD) methodologies have emerged that shift the focus of the software development process. Modeling happens in the software application process before coding.
  • a model serves as blueprints in software development.
  • a carefully constructed model can help those responsible for a software development project's success to assure that business functionality is complete and correct, end-user needs are met, and program design supports requirements for scalability, robustness, security, extendibility, and other characteristics, before implementation in code.
  • Implementation in code after the fact of design usually renders making changes difficult and expensive.
  • MBD allows verification of the software specification at the model level and reduces the amount of manual coding. Modeling tools also make it possible to visualize a design and compare it against the design requirement.
  • the Unified Modeling Language is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system.
  • the UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components. TABLE I presents a list of standard UML elements.
  • ACG Automatic code generation
  • ACG has also become available to the enterprise software development process.
  • ACG gives an engineer the opportunity to focus on the high-level design issues and on better understanding of the business process.
  • ACG can bring enterprise software to market faster, but cannot pull the entire application together with all its necessary parts such as the interface and data components with the processing components.
  • the ACG process usually comprises an automated code generator that reads meta-data for a specific set of designed patterns and generates software code in a specified programming language.
  • An automatic code generator may also be used to capture knowledge and business rules for enterprise software applications and generate the millions of lines of codes in a short amount of time in any desired computer language and for any platform.
  • the process of ACG makes a software development project more agile.
  • a change in implementation can be treated as a different rendering of the same meta-data.
  • SOA Service Oriented Architecture
  • Services are intrinsically unassociated units of functionality, which have no call to another service embedded within them.
  • These software services typically implement functionalities a human would recognize as a service, such as filling out an online application for an account or viewing an online bank statement.
  • SOA defines protocols which describe how one or more services can communicate with each other.
  • a flexible, standardized architecture is required to better support the connection of various applications and the sharing of data. SOA unifies business processes by structuring large applications as an ad hoc collection of smaller modules called services.
  • the present invention presents a method for generating a software application which comprises the steps of: modeling a business process in a graphical design tool; creating at least one UML model to formalize the described processes by using one or more state diagrams to represent the modeled business processes, and one or more class diagrams to represent data models and to represent predetermined business rules that are applied to the described business processes; validating at least one UML model by detecting syntax errors using a predetermined syntax, in order to validate either at least one state diagram or class diagram, or combination thereof; and transforming at least one validated UML model into metadata that is used to generate functional and non-functional aspects of the software application.
  • the transforming step includes generating the software application.
  • the generated software application is combined with pre-existing libraries.
  • the generated software application is combined with manually written code.
  • the metadata includes one or more application code, or constraint models, or automate files, or documentation, or some combination thereof.
  • the generated application includes a predefined set of functional requirements.
  • the generated application includes a predefined set of non-functional requirements.
  • the predefined set of non functional requirements includes security management, or load balancing, or transaction management, or user interfaces, or a skeleton to build the algorithms on, or some combination thereof.
  • the generating step includes adding manually written code to the generated application.
  • the method further includes the step of deploying the target application by means of a deployment tool 490 .
  • FIG. 1 is a schematic diagram of an exemplary computing environment
  • FIG. 2 is a schematic diagram of an exemplary network environment
  • FIG. 3 is a schematic diagram of multi-tiered client-server environment
  • FIG. 4 is a flow chart of the general process of developing a enterprise software using the preferred embodiment
  • FIG. 5 is an exemplary Palmyra UML Designer File menu
  • FIG. 6 is an exemplary Palmyra UML Designer provides additional menu options
  • FIG. 7A is an example of an Enumeration class
  • FIG. 7B is an example of a TypeName class
  • FIG. 7C is an example of a DynamicTypeName class
  • FIG. 7D is an example of an Attribute class
  • FIG. 7E is an example of a Controller class
  • FIG. 7F is an example of ActionEnumerationClass
  • FIG. 8 is an example of a Constrainable class
  • FIG. 9A is an example of an Entity class
  • FIG. 9B is an example of a Composite class
  • FIG. 9C is an example of a Macro class
  • FIG. 9D is an example of a Controller class
  • FIG. 10 is an interface class containing Value Interface, Abstract Value Interface, Storage Interface, Historicized Interface, and the hierarchy of these interfaces;
  • FIG. 11 shows the action handler “AgencyCommandSearch” that is registered in the use case “UCAgency;”
  • FIG. 12A is an exemplary Palmyra class diagram that deamonstrates the use case diagram wizard
  • FIG. 12B is an exemplary Palmyra use case diagram wizard with three steps
  • FIG. 13A illustrates creating new application using Palmyra generation tool
  • FIG. 13B illustrates generation options using Palmyra generation tool
  • FIG. 13C illustrates screen Services, which is used to add, edit or remove services, the button “Build Services” applies the modifications in the selected Ear file;
  • FIG. 13D illustrates configurations options using Palmyra generation tool
  • FIG. 14 illustrates the main steps of the automatic generation process
  • FIG. 15A illustrates an example of Relation One to One
  • FIG. 15B illustrates an example of Relation One to N
  • FIG. 16 illustrates an example of relation with interface
  • FIG. 17 illustrates an example of an instance of inheritance
  • FIG. 18 illustrates an example of the user interface of the Menu Editor Tool
  • FIG. 19 illustrates an exemplary screen of Palmyra login screen
  • FIG. 20 illustrates an example of the entity authorization process
  • FIG. 21 illustrates an example of the service authorization process
  • FIG. 22A illustrates an exemplary SecurityItem UML Model
  • FIG. 22B illustrates an exemplary Policies UML Model
  • FIG. 22C illustrates an exemplary SecurityItem's Roles UML Model
  • FIG. 23 illustrates an example of UML model of the View Format Service
  • FIG. 24 illustrates an example of how an application according to the preferred embodiment integrates and communicates with different platforms
  • FIG. 25 illustrates the architecture of the system in abstract and where the Input and Output Devices fit into this system
  • FIG. 25 illustrates an overview of the Mapping process
  • FIG. 26 illustrates an example of configuration of Mapping
  • FIG. 27 illustrates in detail the process of Mapping converters
  • FIG. 28 illustrates an example of the workflow engine and how it manages the states in the system
  • FIG. 29 illustrates the general architecture of the Report Writer
  • FIG. 30 illustrates the main methods defined in the Value Interface of Package com.palmyra.arch.basicStruct.data;
  • FIG. 31 illustrates the Collection class implemented in com.palmyra.arch.basicStruct.data package
  • FIG. 32 illustrates the composition of Classe
  • FIG. 33 illustrates the exceptions provided by com.palmyra.arch.basicStruct.exception;
  • FIG. 34A illustrates the subclasses of the CompositeValue class
  • FIG. 34B illustrates the subclasses of the StringValue class
  • FIG. 35 illustrates an example of creating and defining CompositeValue class fields
  • FIG. 36 illustrates an example of the class diagram of SimpleValue type and its subclasses
  • FIG. 37A is a UML diagram illustration of a queried class in a find operation is X, and that the queried fields are: +, i 1 .+, i 1 .i 2 .+, i 3 .+;
  • FIG. 37B is a reduced UML diagram illustration of queried class in a find operation is X, and that the queried fields are: +, i 1 .+, i 1 .i 2 .+, i 3 .+;
  • FIG. 38 is a UML diagram illustration of a search query
  • FIG. 39 is a UML diagram illustration of another search query
  • FIG. 40 is a UML class diagram illustration of expanded key structure
  • FIG. 41A is a UML class diagram illustration of a PQL query
  • FIG. 41B is a UML class diagram illustration of a reduced PQL query
  • FIG. 41C is a UML class diagram illustration of a one to n relation
  • FIG. 42 is a UML diagram illustration of the Design Model of the ProcessExecuter.
  • FIG. 43 is a UML diagram illustration of the Design Model of the Traverser.
  • FIG. 44 is an exemplary UML diagram illustration of the design model of the Mapper.
  • FIG. 45 is an exemplary UML diagram illustration of the design model of the DBDS vendor specific subclasses
  • FIG. 46 is an exemplary UML diagram illustration of how to use the interface historicized
  • FIG. 47A is an exemplary UML diagram illustration of how to use the scheduler module in the design of an application
  • FIG. 47B is an exemplary screen of a job message configuration
  • FIG. 47C is an exemplary screen of how to configure a job to be repeated daily
  • FIG. 47D is an exemplary screen of how to configure a time of day in a job daily repeat
  • FIG. 47E is an exemplary screen of how to assign an annual holiday to a calendar
  • FIG. 47F is an exemplary screen of how to assign an exceptional holiday to a calendar
  • FIG. 47G is an exemplary screen of how to assign a weekly holiday to a calendar
  • FIG. 47H is an exemplary screen of how to define the dependency between a job and a calendar
  • FIG. 47I is an exemplary screen of how to configure a job to be tracked
  • FIG. 47J is an exemplary screen of the result of track execution of job scheduler
  • FIG. 48 illustrates a design of a presentation controller that allows it support many technologies
  • FIG. 49 illustrates an exemplary process of responding to client request via presentation controller and associated components
  • FIG. 50 illustrates retrieving an action based on a context
  • FIG. 51 illustrates a UML representation of a Scheduler
  • FIG. 52 illustrates an example of a Palmyra Schedule Trace.
  • FIG. 1 and the following discussion are intended to provide a brief general description of a suitable computing environment in which an example embodiment of the invention may be implemented. It should be understood, however, that handheld, portable, and other computing devices of all kinds are contemplated for use in connection with the preferred embodiment. While a general purpose computer is described below, this is but one example. The preferred embodiment also may be operable on a thin client having network server interoperability and interaction. Thus, an example embodiment of the invention may be implemented in an environment of networked hosted services in which very little or minimal client resources are implicated, e.g., a networked environment in which the client device serves merely as a browser or interface to the World Wide Web.
  • the invention can be implemented via an application programming interface (API), for use by a developer or tester, and/or included within the network browsing software which will be described in the general context of computer-executable instructions, such as program modules, being executed by one or more computers (e.g., client workstations, servers, or other devices).
  • program modules include routines, programs, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types.
  • the functionality of the program modules may be combined or distributed as desired in various embodiments.
  • those skilled in the art will appreciate that the invention may be practiced with other computer system configurations.
  • PCs personal computers
  • server computers hand-held or laptop devices
  • multi-processor systems microprocessor-based systems
  • programmable consumer electronics network PCs, minicomputers, mainframe computers, and the like.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • FIG. 1 thus illustrates an example of a suitable computing system environment 100 in which the invention may be implemented, although as made clear above, the computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or a combination of components illustrated in the exemplary operating environment 100 .
  • an example system for implementing the invention includes a general purpose computing device in the form of a computer 110 .
  • Components of the computer 110 may include, but are not limited to, a processing unit 120 , a system memory 130 , and a system bus 121 that couples various system components including the system memory to the processing unit 120 .
  • the system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, Peripheral Component Interconnect (PCI) bus (also known as Mezzanine bus), and PCI-Express bus.
  • ISA Industry Standard Architecture
  • MCA Micro Channel Architecture
  • EISA Enhanced ISA
  • VESA Video Electronics Standards Association
  • PCI Peripheral Component Interconnect
  • Mezzanine bus also known as Mezzanine bus
  • PCI-Express bus PCI-Express
  • the computer 110 typically includes a variety of computer readable media.
  • Computer readable media can be any available media that can be accessed by the computer 110 and include both volatile and nonvolatile, removable and non-removable media.
  • Computer readable media may comprise computer storage media and communication media.
  • Computer storage media include both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media include, but are not limited to, random access memory (RAM), read-only memory (ROM), Electrically-Erasable Programmable Read-Only Memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CDROM), digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 110 .
  • Communication media typically contain computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
  • wired media such as a wired network or direct-wired connection
  • wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
  • RF radio frequency
  • the system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as ROM 131 and RAM 132 .
  • BIOS basic input/output system
  • RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by the processing unit 120 .
  • FIG. 1 illustrates operating system 134 , application programs 135 , other program modules 136 , and program data 137 .
  • RAM 132 may contain other data and/or program modules.
  • the computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media.
  • FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152 , and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 , such as a CD ROM or other optical medium.
  • removable/non-removable, volatile/nonvolatile computer storage media that can be used in the example operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
  • the hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140
  • magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150 .
  • the drives and their associated computer storage media discussed above and illustrated in FIG. 1 provide storage of computer readable instructions, data structures, program modules and other data for the computer 110 .
  • the hard disk drive 141 is illustrated as the storing operating system 144 , application programs 145 , other program modules 146 , and program data 147 . Note that these components can either be the same as or different from the operating system 134 , application programs 135 , other program modules 136 , and program data 137 .
  • Operating system 144 , application programs 145 , other program modules 146 , and program data 147 are given different numbers here to illustrate that, at a minimum, they are different.
  • a user may enter commands and information into the computer 110 through input devices such as a keyboard 162 and pointing device 161 , commonly referred to as a mouse, trackball or touch pad.
  • Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
  • a user input interface 160 that is coupled to the system bus 121 , but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB).
  • USB universal serial bus
  • a monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190 .
  • computers may also include other peripheral output devices such as speakers and a printer (not shown), which may be connected through an output peripheral interface 195 .
  • the computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180 .
  • the remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110 , although only a memory storage device 181 has been illustrated in FIG. 1 .
  • the logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173 , but may also include other networks.
  • LAN local area network
  • WAN wide area network
  • Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
  • the computer 110 When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170 . When used in a WAN networking environment, the computer 110 typically includes means for establishing communications over the WAN 173 , such as the Internet. In a networked environment, program modules depicted relative to the computer 110 , or portions thereof, may be stored in the remote memory storage device.
  • FIG. 1 illustrates remote application programs 185 as residing on a memory device 181 .
  • Remote application programs 185 include, but are not limited to web server applications such as Microsoft® Internet Information Services (IIS)® and Apache HTTP Server which provides content which resides on the remote storage device 181 or other accessible storage device to the World Wide Web. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
  • IIS Internet Information Services
  • Apache HTTP Server which provides content which resides on the remote storage device 181 or other accessible storage device to the World Wide Web.
  • a computer 110 or other client devices can be deployed as part of a computer network.
  • the preferred embodiment pertains to any computer system having any number of memory or storage units, and any number of applications and processes occurring across any number of storage units or volumes.
  • An embodiment of the may apply to an environment with server computers and client computers deployed in a network environment, having remote or local storage.
  • the preferred embodiment may also apply to a standalone computing device, having programming language functionality, interpretation, and execution capabilities.
  • FIG. 2 illustrates an embodiment of a network environment in which an embodiment of the present invention can be implemented.
  • the network environment 200 contains a number of local server systems 210 , which may include a number of file servers 211 , web servers 212 , and application servers 213 that are owned and managed by the owner of the local network. These servers are in communication with local user systems 220 which may include a large variety of systems such as workstations 221 , desktop computers 222 , laptop computers 223 , and thin clients or terminals 224 .
  • the local user systems 220 may contain their own persistent storage devices such as in the case of workstations 221 , desktop computers 222 , and laptop computers 223 . They can also have access to the persistent storage, such as a database, provide by the local servers 210 .
  • network storage may be the only available persistent storage.
  • the users within the local network usually get access to the wider area network such as the Internet 280 though the local server systems 210 and typically some network security measures such as a firewall 270 .
  • the remote computer systems can be a variety of remote terminals 291 , remote laptops 292 , remote desktops 293 , and remote web servers 294 .
  • FIG. 2 illustrates an exemplary network environment.
  • FIG. 2 illustrates an exemplary network environment.
  • teachings of the present invention can be used with any number of network environments and network configurations.
  • the client-server software architecture model is a versatile, message-based and modular infrastructure that is intended to improve usability, flexibility, interoperability, and scalability as compared to centralized, mainframe, time sharing computing.
  • Client-server describes the relationship between two computer programs in which one program, the client is defined as a requester of services, which makes a service request from another program, the server is defined as the provider of services, which fulfills the request.
  • a client-server application is a distributed system comprised of both client and server software.
  • a client software process may initiate a communication session, while the server waits for requests from any client.
  • the client-server model provides a convenient way to efficiently interconnect programs that are distributed across different locations. Transactions among computers using the client-server model are very common. Most Internet applications, such as email, web access and database access, are based on the client-server model.
  • a web browser is a client program at a user computer that may be used to access information at any web server in the world.
  • a client program which may run within a web browser, forwards a request to a web server program at the bank.
  • the web server program may in turn forward the request to a database client program that sends a request to a database server at another bank computer to retrieve the requested account balance information.
  • the balance information is returned back to the bank database client, which in turn serves it back to the web browser client in the customer's computer, which displays the information to the customer.
  • FIG. 3 illustrates an example of multi-tier client server architecture.
  • Multi-tier client-server architecture allocates different tasks and services to different tiers.
  • the first tier 310 is one or more clients 311 , 312
  • the second tier is an application server 321
  • the third tier 330 is a data server 331 332 .
  • the clients 311 , 312 provide the application's User interface and also act as presentation servers.
  • the application's graphical user interface is generally a custom-generated web page to be displayed by a web browser on the client computer.
  • the main body of an application is run on a shared host 321 .
  • the application server 321 does not drive the graphical user interface, rather it shares business logic, computations, and a data retrieval engine.
  • the presentation of data retrieved is handled by the presentation server at the client tier.
  • Application scalability, support costs, and installation costs are all more favorable when the software is concentrated on a single server than when the software is distributed amongst a number of desktop clients.
  • component technology in the application server tier such as CORBA (Common Object Request Broker Architecture), EJB (Enterprise Java Beans) and DCOM (Distributed Component Object Model).
  • the system implements Enterprise JavaBeans (EJB) technology in its architecture.
  • EJB is a Java Application Programming Interface (API), which allows developers to focus on the actual business architecture of the model, rather than having to worry about endless amounts of programming and coding needed to connect all the working parts. The developer can design (or purchase) the needed EJB components and arrange them on the server as needed.
  • EJB is a component architecture for developing and deployment of component-based distributed applications. Applications written using EJB are scalable, transactional, and multi-user secure. These applications may be written once, and then deployed on any server platform that supports the EJB specification.
  • the client provides the user interface logic, the business rules are separated to the middle tier, and the database is the information repository.
  • the client does not access the database directly. Instead, the client makes a call to the EJB Server on the middle tier, which then accesses the database.
  • EJB Server provides a framework for deploying the middle-tier logic of distributed component-based applications.
  • EJB Server's high-performance transaction server provides efficient management of client sessions, threads, database connections, and transaction flow.
  • the Web browser connects to EJB Server or a Web server via HTTP to download an HTML page containing a Java applet that performs presentation functionality.
  • the applet communicates with EJB Server, calling middle-tier components that perform business logic.
  • Data servers and storage servers stores, processes, and protects the corporate data.
  • EJB Server manages a pool of connections to the database, coordinating the transaction processing to those servers.
  • This form of preferred embodiment teaches methods and systems for automated development of a software application.
  • the method includes various processes for defining the application, modeling the specific business process or function to be performed by the software application, creating uniquely specialized UML models to further define the process or function, and validating the models against a set of predefined unique syntax rules.
  • the validated models are then uniquely transformed into a unique metadata form that comprises generated application code and XML files used by the target application.
  • FIG. 4 provides a general schematic of the major steps of the software engineering process of according to the preferred embodiment method.
  • the software engineering process using the preferred embodiment comprises the steps of first designing and modeling a business process using the UML graphical design tool 410 .
  • the business process is modeled using an enhanced version of UML provided by the invention with metadata.
  • the UML model and metadata are validated 420 and serve as input for the automated code generation engine 430 .
  • the automated code generation engine parses the UML model and metadata and generates deployable source code for the target application 480 utilizing an enterprise application development framework, referred to as the Palmyra Framework.
  • Some manual coding 450 is sometimes needed to supplement the automatically generated code, but the amount of manual coding is dramatically less than pror methods and usually directed to specific or specialized features of the application.
  • the preferred embodiment can also include configuration tool(s) 460 and a test and benchmark tool 470 . Once configured and tested, the target application is ready for deployment 490 .
  • This form of a preferred embodiment provides an easy-to-use graphical software engineering tool.
  • the automatic code generation process starts with a standard modeling approach using UML design tools such as MagicDraw or Rational Rose. These tools are applied to create UML diagrams to represent the desired business process and the desired data model.
  • UML design tools such as MagicDraw or Rational Rose. These tools are applied to create UML diagrams to represent the desired business process and the desired data model.
  • the graphical modeling and design tool can be used by both users and consultants.
  • the preferred embodiment facilitates the reuse of existing components, which include both business and technical components.
  • the graphical modeling and design tool is based on a commercial UML visual modeling tool such as MagicDraw.
  • MagicDraw alone is not sufficient to function as the graphical modeling and design tool of the preferred embodiment.
  • MagicDraw functions as a visual diagramming tool, it does not check for design errors, control Stereotypes and Tagged Values, reject wrong data, or provide warnings.
  • the invention create the Designer tool as a plug-in for MagicDraw to enhances its function. The enhanced UML.
  • Palmyra UML Designer constitutes an additional layer that sits on top of MagicDraw in order to overcome the limitation of creating UML models that do not conform to the pre-defined rules and to avoid errors during and after the design process.
  • the Palmyra UML Designer tool employs several steps to achieve this. First, the Palmyra UML Designer tool checks whether the designed models conform to pre-defined Palmyra rules by validating initial values, multiplicities, types, etc. Second, the Palmyra UML Designer tool makes diagrams ready for the generation process without human error. Third, the Palmyra UML Designer tool enables the addition and change of relations and simple fields uniformly throughout the application with precision.
  • Palmyra UML Designer tool checks for Palmyra elements, and adds or corrects new eligibility between their Stereotypes in order to avoid conflict and design errors. Finally, the Palmyra UML Designer tool makes use of value references for Tagged Values instead of String Values.
  • the preferred embodiment is not limited to MagicDraw, or any other particular UML design tool. Accordingly, one can implement this validation functionality through the use of other design tools, such as a stand-alone application, or an add-on for another UML visual design tool.
  • the UML Designer also provides usability features that help a user to create a UML model.
  • the UML Designer provides user friendly interfaces for panels, classes and Tagged Value input. It automatically loads models conforming to the preferred embodiment within projects.
  • the UML Designer simplifies the use of the Palmyra classes by grouping them into four main categories, which are Entities, Interfaces, Controllers, and Simple Values.
  • the UML Designer adds needed Stereotypes to the classes depending on the type selected.
  • the UML Designer also displays available parent types at runtime.
  • Palmyra UML Designer can also provide a set of new actions to the selected design tool.
  • FIG. 5 represents a UML Designer File menu 500 having example new actions.
  • New Palmyra Project 510 This sub-menu is used to create a new Palmyra project.
  • a Palmyra project contains the Palmyra UML model and removes all conflicting Stereotypes.
  • Palmyra Save 520 saves the active project.
  • Palmyra Project 530 This sub-menu is used to validate the Palmyra Rules of the project
  • Open Palmyra Code Generation 540 This sub-menu is used to open the Code Generation Tool and passes to it the full path of the related UML model (in Palmyra XML format). This sub-menu is used when the project is validated. The path of the Code Generation Tool is specified with the installation of the plug in.
  • Generate Log Files 560 This sub-menu is used to generate log files.
  • a first log file contains the list of entities without code in the current model. Its name is the concatenation of the name the model and “_EntitiesWithoutCode.log”.
  • a second log file contains the list of fields which do not have the Tagged Value ‘currpath’ and do not have a simple value (the field must have at least one ‘.’). Its name is the concatenation of the current model name and “_FieldsWithCurrPath.log”. This sub-menu comes available when the project is validated.
  • Palmyra UML Designer provides additional menu options to MagicDraw's Diagram menu 600 ( FIG. 6 ).
  • the class diagram is uniquely created using class diagram modeling techniques where specific predefined types of classes and decorations are applied to provide unique functionality allowing the system to interpret the diagram and to generate the data structure at generation time.
  • the specific predefined types of classes are uniquely created in a standard UML model that is provided by the framework of the invention.
  • the classes are organized into types of classes such as Entities, Controllers, Simple Types, and Interfaces.
  • the classes in the model are a part of the framework libraries. Palmyra UML Designer provides direct access to graphical tools for creating UML class diagram through the Palmyra Class Diagrams submenu 610 .
  • the specific predefined decorations are uniquely created in the same standard UML model that is provided by the framework.
  • the decorations are also organized into types such as Tagged Values and Stereotypes that are designed to facilitate the creation of the target software application.
  • Palmyra consists of four class types, Simple, Entity, Controller, and Interface.
  • Simple class types are primitive structures that contain one single data element like a number or a date or list of characters.
  • the simple types can be predefined by the standard model provided by the framework, and they can also be defined in a specific model of a target application.
  • Simple types are used as fields for more sophisticated classes like entity class-types or as parameters for the methods contained in the controller class-types. These simple class types can also be constrained in a way to provide limits and definitions of the data elements such as rounding for numeric elements and formatting for text elements and preset values.
  • a StringValue simple type is a text structure that may be constrained by a maximum number of characters.
  • Another example of a predefined simple type is BooleanValue, where the data element can have a value of true or false.
  • AgeValue An example of a defined simple type is AgeValue.
  • a simple type is created using the name AgeValue that is defined to inherit attributes from another predefined or a newly defined Simple type.
  • AgeValue is set to inherit from IntegerValue, which is a predefined simple type that contains an integer between the range ⁇ 2,147,483,648 to 2,147,483,647.
  • IntegerValue is a predefined simple type that contains an integer between the range ⁇ 2,147,483,648 to 2,147,483,647.
  • a constraint can also be added to the newly defined AgeValue Simple type so that the range might be 0 to 150. Accordingly, the newly defined AgeValue inherits the attribute of an ability to provide a range of values and it can be further defined with specific values established by the needs of the target application.
  • Simple class types also have an Enumeration class.
  • An enumeration class describes an enumeration type. Possible values of this type are defined within the class attributes.
  • the Enumeration class can be represented in a Combo Box in the generated application.
  • a Type Name Class is an enumeration filled at run-time that contains all sub class names of a specific class.
  • FIG. 7B illustrates an example of a TypeName class. For example, if a type name extends “ConstraintsTypeName” and the Tagged Value “classname” has as value a class “X”, at runtime the system will show in a combination box all sub classes' names of the class “X” having the Stereotype “constraints”.
  • a Dynamic Type Name Class is an enumeration filled at run-time that contains all sub classes of a given class with two additional properties.
  • FIG. 7C illustrates an example of a DynamicTypeName class.
  • the system will show all sub classes of “X” extending “AbstractValue” and that do not have the Stereotype constrainable'.
  • the description of all possible types is detailed in Palmyra Stereotypes & Rules (infra).
  • FIG. 7D illustrates an example of an Attribute class.
  • the Attribute class defines a set of properties for a specific object. In the example shown in FIG. 7D , four properties are defined for a specific attribute attr1.
  • the user can define a new attribute having as type Amount Value, give to this attribute the precision and the defaultformat Tagged Values, and after that define all attributes, parameters, and returned values of operations in the application.
  • a controller name is like a type name, except that the baseclassname is a controller.
  • FIG. 7E illustrates an example of a Controller class. For example, if a controller name has the Tagged Value “baseclassname” as value a controller “C”, at runtime the system will show in a combo box all sub classes' names of the controller “C”.
  • An Action Enumeration Class is a dynamic enumeration that is filled at runtime by the execution result of a method in a controller.
  • FIG. 7F illustrates an example of Action Enumeration Class.
  • a market Transaction Type from file (Property file in an Enterprise Application Archive (EAR)
  • the user creates a controller, defines a method that returns a Collection Value, and then creates an Action Enumeration Class with Tagged Value “controllername” equal to the name of the new controller and “actionname” equal to the name of the method that will fill at runtime the values of Market Operation Type.
  • EAR Enterprise Application Archive
  • Entity class types are heterogeneous structures that contain fields having one or more Simple class types, and Entity class types can have relations with other Entity class types. Like Simple types, the Entity types can be predefined by the standard model provided by the framework or they can be defined in a specific model of a target application. Entity types are data elements that compose the data structure of the target application that also can be used as parameters for the methods contained in the Controller class-types. These Entity class types can also be constrained, enhanced, and modified in a way to provide more precise data elements in accordance with the needs established by the target application.
  • Entity class types can have multiplicity of definitions for the fields and relations.
  • the integrity of the instances of Entity classes, referred to as objects, is checked at runtime for the correctness of those objects in accordance with the predefined multiplicities.
  • Entity classes types are categorized into four groups referred to as generalization, aggregation, composition, and association.
  • the inheriting class is considered an extension of the existing class that can add more fields or relations and/or can modify some features such as multiplicities of existing fields and relations.
  • Aggregation relations are used to make it possible for a data structure defined by one Entity class to point to other data structures defined by other Entity classes.
  • Composition relations are used to indicate that a data structure defined by one Entity class is composed of other data structures defined by other Entity classes.
  • Association relations are used to associate the data structure defined by an Entity class with other data structures defined by other Entity classes according to conditions related to the contents of the related classes.
  • Relation dependencies are categorized into six groups known as In, Contains, SameAs, Or, Xor, and Exclusive. Relation dependencies are applied to a pair of relations, the two relations are called the source and the target. The relations eligible for such dependencies are Aggregation or Composition relation types.
  • dependency is used to indicate that the element belonging to the source relation is simultaneously a member of the target relation-collection.
  • Contains relation dependency is used to indicate that the collection of elements belonging to the source relation includes the collection of elements that belong to the target relation.
  • SameAs relation dependency is used to indicate that the element(s) belonging to the source relation is the same element that belongs to the target relation.
  • Or relation dependency is used to indicate that at least one of the two relations, source or target, should be assigned at runtime.
  • Xor relation dependency is used to indicate that one and only one of the two relations, source or target, should be assigned at runtime.
  • Exclusive relation dependency is used to indicate that at most one of the two relations, source or target, should be assigned at runtime.
  • An Entity class is a persistent class in the database (realizes the “Abstract Value” interface), having attributes (inherits from “Composite Value”) and relations with other classes.
  • FIG. 9A illustrates an example of entity class.
  • Entities can have Stereotypes such as (constrainable, cached), Tagged Values such as (expandable, non expandable, and Business Tagged Value), and Attributes.
  • a Constrainable class is a persistent class in the database on which we can define constraints. It is an “entity” that has the Stereotype “constrainable”.
  • FIG. 8 illustrates an example of a Constrainable class 810 .
  • constraints class The “constraints” class should inherit from the constrained class (which should have the Stereotype “Constrainable” or “constraints” also).
  • FIG. 8 illustrates the use of Constraints/Constrainable classes.
  • the classes Equity 820 , Right 830 , and Warrant 840 are securities that have specific properties (fixed value, multiplicity).
  • Warrant 840 In this class the attributes: assetNature is frozen, read only, and has fixed value “Warrant.”
  • a Composite class is not persisted in the database, which does not realize the “AbstractValue” interface), and it has attributes and relations. It inherits from “Composite Value”. It also can have Stereotypes and Tagged Values.
  • FIG. 9B provides an example of a Composite class.
  • the Macro class is used to optimize the repetition of some attributes in the class diagram.
  • some attributes from different classes
  • the definition of a macro can be very useful.
  • a macro expresses a semantic grouping of some attributes within the same class in order to be used by other classes.
  • FIG. 9C provides an example of a Macro class.
  • Controller class types are algorithm definition structures; they contain one or more written algorithms that are called Methods. Like Simple types and Entity types, Controller class types can be predefined by the standard model provided by the framework or they can be defined in a specific model of a target application.
  • a Method may have one or more input data elements referred to as input parameters and may return at most one output element called the return value. Both input parameters and return value represent instances of the Simple class types, Entity class types or interfaces.
  • a controller may have a short name known by an alias; this alias is used by the application code or by the expressions used as calculation formulas to refer to a specified Controller.
  • FIG. 9D provides an example of a Controller class.
  • Interfaces are heterogeneous structures that serve as templates containing fields having one or more Simple class types and can have relations with other Entity class types or interfaces. Like Simple types and Entity types, interfaces can be predefined by the standard model provided by the framework or they can be defined in a specific model of a target application.
  • the Interface category contains the following interfaces, which are illustrated in FIG. 10 :
  • Value 1010 this interface is the super interface of all elements in the framework. All implementing classes are not persistent by default. The user can define its own ‘value’ interface that extends Value or one of it sub-interfaces. The new interface is used to define attributes and make relations with other interfaces or classes. All implementing classes are not persistent (having the ‘composite’ stereotype for example)
  • “Abstract Value” 1020 This interface is the super interface of all persistent entities in the database. It defines the technical fields (pk, creationDate, creatorUserId, updateDate, updatorUserId, accessPoint, type). All sub-interfaces of AbstractValue must have the stereotype ‘abstractvalue’ and all sub-classes must have the stereotype ‘entity’. If the user defines an ‘abstractvalue’ interface, it can define attributes (but not operations) and make relations with other classes or interfaces.
  • Storage An interface with the stereotype ‘storage’ specifies storage of implementing entities.
  • a storage Interface must inherit from AbstractValue interface.
  • the user must add the related Tagged Value “datasource”. All classes that implement the created interface will be stored in the specified data source. The mapping between the value of the tagged value ‘datasource’ and the real database will be performed when deploying the application.
  • “Historicized” 1030 indicates that the implementing entity will be historicized.
  • the system defines two interfaces: Historicized and HistoricizedOnDelete.
  • a Historicized entity is a class that inherits from one of the two mentioned interfaces.
  • the system will maintain the history of all modifications made on instances of this entity.
  • the user can define its own ‘historicized’ interface that defines the tagged value ‘historydatasource’. All classes that implement the created interface will be historicized in the specified history data source. The mapping between the value of the tagged value ‘historydatasource’ and the real database will be performed when deploying the application.
  • the specific predefined decorations are uniquely created Tagged Values and Stereotypes designed to facilitate the creation of the target software application.
  • Decorations for class diagrams provide additional information for elements like interfaces, classes, relations, and fields.
  • the decorations are categorized into Tagged Values and Stereotypes.
  • Tagged Values are used to add information to an element by means of a desired value such as a number or character.
  • Stereotypes are added to classify these elements into groups such as Entities and Constraints, or to add information like the Stereotype Constrainable, however no values are assigned to Stereotypes.
  • the list of available Tagged Values and Stereotypes differs in accordance to the type of element.
  • Stereotypes are defined exclusively in the standard UML model provided by the framework.
  • some of the Tagged Values are defined in the standard UML model and others may be defined by a specific model of a target application.
  • TABLE 2 lists Palmyra Stereotypes and Tagged Values:
  • Palmyra elements can have properties that are called Tagged Values.
  • Tagged Values are properties given to elements like interfaces, classes, relations, and fields. Tagged Values can be mandatory or optional. All specific Tagged Values (defined in a specific model of a target application) are optional. Once a Tagged Value is added to an element, a value should be assigned to that Tagged Value.
  • An example of a Tagged Value is the Calculation Formula. When a Calculation Formula is added to a field, an expression is assigned as a value to that Calculation formula.
  • Stereotypes are also properties given to elements. Unlike the Tagged Values, no values are assigned to Stereotypes when they are used. The target Stereotype merely expresses that a value is desired. For example, the Constrainable Stereotype, when added or assigned to an Entity class type, informs the system that constraints could be added to that Entity class type later at runtime.
  • Palmyra Stereotypes and Tagged Values can be classified according to the level of applicability. They can be defined at attribute level, class level, a relation level, or a dependency relation level. TABLE 2 lists Palmyra Stereotypes and Tagged Values.
  • Entity a class with the Entity Stereotype is persistent.
  • composite a class with the Composite Stereotype is not persistent.
  • “macro” a class with the Macro Stereotype has a group of attributes that could be repeated in more than one class. These attributes will be part of the attributes of each class having an additional attribute having as type this Macro class. Every attribute having as type Macro class will be replaced by all the attributes of this Macro class in the generation step.
  • controller a class with the Controller Stereotype can have only operations (actions).
  • typename a class with the Typename stereotype is used to list all the subclasses of one class. This information is set in the Tagged Value classname. If the user adds a typename class having the classname Tagged Value as ‘StringValue’ for example, every field having this typename class as type will have as values all subclasses of ‘StringValue’.
  • Dynamictypename a class with the Dynamictypename Stereotype is a variation of a Typename class.
  • the user can specify the included and excluded types. There are 9 types that the user can specify: type_AbstractValue, type_Interface, type_CompositeValue, type_Constraintable, type_Constraints, type_CollectionValue, type_SimpleValue, type_BusinessEntity, type_ExcludeAll, and type_IncludeAll.
  • Attr a class with the Attr stereotype can have an added restriction to an element of a Palmyra Simple type.
  • the user can specify a customized simple type with all required properties, such as default format, mask, max, min, precision, and rounding.
  • Enum a class with the Enum Stereotype represents an enumeration. Its attributes present all possible values for a field having as type “enum.” Every Enum class element should inherent from a Palmyra StringValue type or one of its subclasses.
  • controllername a class with the Controllername Stereotype can list all the subclasses of a controller. This information is set in the Tagged Value baseclassname.
  • Actionenum a class with the Actionenum Stereotype has values dynamically assigned at run time.
  • An Actionenum has two Tagged Values: controllername and actionname.
  • the possible values for an Actionenum class are the result of the execution of the action specified in the Tagged Value actionname related to the controller specified in the Tagged Value controllername.
  • Value A ‘value’ interface is a non persistent interface.
  • abtractvalue an interface with the ‘abstractvaluea’ stereotype is a persistent interface All it sub-classes can be saved to any storage service.
  • Storage an interface with the stereotype starge is used to identify a ‘datasource’ (database), which is used by all implementing entities.
  • “historicized” an interface with the stereotype ‘historicized’ is used to identify an ‘historydatasource’ (database), which is used to store the history tables of all implementing entities.
  • Invisible an attribute with the Invisible Tagged Value can be used to make an associated object not viewable in all service paths. If the user wants the object to be visible for a certain path, the user must add it using the view format.
  • style an attribute with the Style Tagged Value can be used to have an object be viewed using the specified layout.
  • the value of the style is one of the supported layouts in Palmyra.
  • the value may also contain criteria determining the condition that must be verified in order to apply the specified layout.
  • Order an attribute with the Order Tagged Value contains an integer value giving the position within the view order in which of the specified object will be viewed within the viewed class. The user must be careful to not use the same order for two different objects.
  • Label an attribute with the Label Tagged Value will be viewed using the specified value in the label.
  • readonly an attribute with the Readonly Tagged Value may not be modified.
  • this interface Tagged Value specifies the database to use for all entities (and their subclasses) that realize this interface.
  • the values specified in the UML will be mapped to real database when running Palmyra Setup tool.
  • historydatasource this is a Tagged Value used in interfaces that extends the “Historicized” interface. It is used to specify the data source to be used for the history.
  • code A code is a string that uniquely represents an object. It comprises of one or a concatenation of a set of its attributes and relations. The default entity code is its database primary key. When an attribute or a relation has code as a Stereotype, this indicates that this attribute or relation is part of the object code. If the code is composed, the Stereotyped attributes must be ordered using the ‘orderincode’ Tagged Value. “code” also verifies the “mandatory” property and the “index” and “unique” Stereotypes.
  • asp this is a stereotype used in attributes to manage the sharing of global entities between different users. The user is allowed to access only a subset of the associated entities. An administrator must set the user properties to transparently map it to the asp attribute, which determines the allowed subset to access.
  • indexgroup this Tagged Value is used to indicate that the associated group of attributes must be indexed in the database to accelerate search performance.
  • transient indicates that this attribute or relation is transient and will not be mapped to the database.
  • This Stereotype indicates a class has a constraint on its super class.
  • the constrained class can change some of its super properties at run time such as Attribute ranges and relation cardinality.
  • originalname this Tagged Value is associated with a relation of a constrained class to indicate the original name of the overridden relation (or role).
  • the Stereotyped class is a constraint on its super class.
  • Stereotype this Stereotype is associated with an attribute that will be dynamically assigned a unique sequenced value.
  • set A set is the default Stereotype applied to 1 to n composition and aggregation relations.
  • list A list is a Stereotype that applies to 1 to n composition and aggregation relations. It indexes the owned elements according to a user-defined order. These elements are displayed in order and can be re-ordered using either the up and down arrows or the “order list” action.
  • map A map is a Stereotype that applies to 1 to n composition and aggregation relations. It indexes the owned elements according to a user-defined role (key).
  • indexname this Tagged Value indicates the name of the index applied to an attribute.
  • indexisunique this is a Tagged Value that defines a uniqueness condition that groups both the index field and the symmetric role of the owner in a “map” relation. When such a unique condition is applied only one collection item is returned for each possible value of the indexed field. When no unique constraint is applied, more than one item can match each possible value of the indexed field. In such case the relation will be invisible and it is impossible to create or update the collection via Palmyra default presentation interface.
  • root indicates the basic class to which the dependent relations belong.
  • target indicates the role of the target relation.
  • Stereotypes define the type of the required dependency relation:
  • Palmyra This Tagged Value contains the name of the Class that inherits from the Palmyra interface SLAInterface.
  • Interface This Stereotype is applicable only on classes having the stereotype ‘controller’. For a method which belongs to an ‘interface’ controller, all the parameters and the return value cannot be an Interface or the CompositeValue, CollectionValue, ListValue and MapValue. This restriction is not applicable for any sub class of the methods. Interface indicates that the methods of this controller can be used by a non-Palmyra application.
  • orderincode This Tagged Value is an integervalue giving the order of the specified code within the group of attributes composing the code. This stereotype is related to the stereotype “code”.
  • alias This Tagged Value is used for the controller to specify a unique alias to it. It can be useful to call a controller by its alias instead of its full name. A controller can have more than one alias.
  • controllername This Tagged Value is used with the Stereotype “actiondynamicenum”. It indicates the controller class name, which contains the method that returns a list of values (enum).
  • Actionname This Tagged Value is related to “actiondynamicenum” stereotype. It indicates the method that returns the list of values.
  • rounding this tagged value is applicable on attributes having as type DoubleValue. It's used to specify a rounding type which will be applied to the value of the attribute.
  • wordsize This Tagged Value indicates a number value giving the max length of a word shown in presentation side. It is useful in the search result of a very long string.
  • calculationformula Calculation formulas are used to indicate that a field or a relation is assigned automatically according to a calculation expression. The formula can depend on other fields or relations that are defined in the Entity class. An expression is a list of arithmetical or logical operators, applied on field or relation values, or on results of calling methods defined in Controller class types. If a field or a relation has a calculation formula this means that the value of the field or relation cannot be assigned manually at runtime.
  • domainmanager This Tagged Value contains the full path of the java class that implements the interface DomainManager.
  • active The Tagged Value active is set as true when a field is in focus. It will be refreshed each time this field loses focus.
  • ownerclassname This Tagged Value must be specified when the type of the field is KeyNameValue, CriterionValue or ExpressionValue. It will contain a reference of the owner class for the key.
  • ownerclasspath This Tagged Value must be specified when the type of the field is KeyNameValue, CriterionValue or ExpressionValue. It will contain the full path of the owner class for the key.
  • Storename This is a Tagged Value in which the user can specify a logical store name. This one is used to store the value of an attribute having as type FileName or one of its subclasses.
  • the user can associate a specific storage to every storename using the Setup tool.
  • the storage can be a folder or a remote storage service, such as ftp.
  • fieldconfig This Tagged Value is used to specify the configuration related to a class that realize the interface HasIncompleteState. The user can select a list of fields related to the selected entity.
  • “descriptionkeys” This Tagged Value allows the user to specify the list of keys that describe the entity. In the presentation side, the list of keys specified in this Tagged Value will be used to present the entity.
  • ortarget The user can use this Tagged Value to define an ‘or’ dependency between the current field and another field in the same entity or in another one with a relation.
  • xortarget The user can use this Tagged Value to define an ‘xor’ dependency between the current field and another field in the same entity or in another one with a relation.
  • exclusivetarget The user can use this Tagged Value to define an ‘exclusive’ dependency between the current field and another field in the same entity or in another one with a relation.
  • Palmyra Simple Types have the capability to personalize tuning according to business needs. The user can define his own type, inherited from a simple type, and add the attribute (with Stereotype “attr”) with the appropriate value of his required tuning. TABLE 3 lists Palmyra Simple Types.
  • Palmyra default value is “###0.######;###0.######” DateValue and its subclasses max Date The maximum date allowed min Date The minimum date allowed precision String The precision allowed is one of the following: DAY, MONTH, YEAR, HOUR, MINUTE, SECOND, MILLSECOND. When using this precision in the UML the related data will be saved with the defined precision in the database.
  • defaultFormat String It is the format used to input and output the value of the Date object. The format must be the supported pattern in Palmyra (java standard patterns). There is no relation between the precision and the format but it is recommended that you use the format compatible with the chosen precision. Palmyra default format is MILLSECOND.
  • Palmyra Specialized types are provided by Palmyra in order to allow the implementation of specific functions. These types include entity types and interfaces. TABLE 4 lists Palmyra Special Types.
  • CompositeValue A type used to define a non persistent object Value An interface used to define a non persistent object. Historicized An interface allowing enabling historization of the entity implementing it
  • the process diagram is uniquely created using state diagram modeling techniques where specific predefined decorations are applied to provide unique functionality allowing the system to interpret the diagram and to run the process later at runtime.
  • the specific predefined decorations are uniquely created Tagged-Values and Stereotypes designed to facilitate the creation of the target software application.
  • a process diagram represents a Process Definition.
  • a Process Definition lists what happens between the start and end points. It includes all the activities performed by the system and the users.
  • a process comprises a number of steps. Using the state diagram modeling technique, the steps are expressed by states, and their interconnectivity is expressed by transitions. Two predefined states are used to define the start and the end of a process. The transitions between states can be triggered by events and guarded by conditions. One event may trigger multiple transitions defined in a specific order. When a first condition is satisfied, the process moves to the next step defined by the transition having that satisfied condition.
  • the persistent steps are checkpoints in which the process may stop waiting for an external event, and non persistent steps represent activities carried on by the system.
  • Decorations for process diagrams provide additional information for elements like states and transitions.
  • the decorations are categorized into Tagged Values and Stereotypes.
  • Tagged Values are properties given to elements like interfaces, classes, relations, and fields. Tagged Values can be mandatory or optional. All specific Tagged Values (defined in a specific model of a target application) are optional. Once a Tagged Value is added to an element, a value should be assigned to that Tagged Value.
  • An example of a Tagged Value is the Calculation Formula. When a Calculation Formula is added to a field, an expression is assigned as a value to that Calculation Formula.
  • Tagged Values in process decorations are properties given to elements like states and transitions. Tagged Values can be mandatory or optional. No specific Tagged Values can be defined in a specific model of a target application. Once a Tagged Value is added to an element, a value should be assigned to that Tagged Value.
  • An example of a Tagged Value is the Order applied to the transitions. A number like 1, 2, 3, etc., is assigned to this Tagged Value in order to express the order.
  • Stereotypes are also properties given to elements. Unlike the Tagged Values, no values are assigned to Stereotypes when they are used. The target Stereotype merely expresses that a value is desired. For example the Constrainable Stereotype, when added or assigned to an Entity class type, informs the system that constraints could be added to that Entity class type later at runtime.
  • Stereotypes are properties given to elements such as states and transitions. No values are assigned to Stereotypes when they are used.
  • the target Stereotype merely expresses that a value is desired.
  • the Persistent Stereotype when added or assigned to a state, informs the system to stop the process in that step and causes it to wait for an event.
  • the use-case transition diagram is uniquely created using state diagram modeling techniques where specific predefined decorations are applied to provide unique functionality allowing the system to interpret the diagram and to create use-case actions to be used at run time.
  • the specific predefined decorations are uniquely created Tagged-Values designed to facilitate the creation of the target software application.
  • a use-case transition diagram represents an interaction scenario between the system and a user through the user interface.
  • the interaction scenario consists of a group of use-cases represented by states in the state diagram, and the interconnectivity between them is expressed by transitions.
  • the use-cases are represented by the user screens and the transitions are represented by actions like buttons displayed on the screen. By clicking on those buttons the system displays another screen determined by the transition represented by the button.
  • Decorations for use-case transition diagrams provide additional information for elements like states and transitions.
  • the decorations for use-case transition diagrams are limited to Tagged Values only.
  • An example of a Tagged Value is the Action name, which when added to a transition gives a label to the button to be displayed later on the screen.
  • Palmyra UML Designer tool used the state diagram modeling techniques in order to create the UML Use Case Diagram. It allows the definition of use cases, navigation between use cases and definitions of actions to be allowed by use case at design time.
  • the generation tool will use this design to generate the registration code relative to all of the defined use cases and actions.
  • the designer can define all actions by a simple drawing of use cases and the different action that is allowed for each use case.
  • a new submenu, “Palmyra UCs Diagrams” 620 is added to the UML Designer named Diagram menu 600 ( FIG. 6 ).
  • This diagram allows the designer to draw his own use cases and to define the different actions allowed for it.
  • the user can create this diagram by simple click to the menu in the item “Palmyra UCs Diagram.” ( FIG. 6 ).
  • the user can add manually the Stereotype “usecase” to it. After that the designer can add his specific use cases and actions.
  • the generation tool gives a default name to the use case, for example “USECASE1.” This name can be modified, in this case, to “UCAgency” 1110 . ( FIG. 11 ). The user can consult and modify its properties.
  • Use Case Contains the name of the use case.
  • Class Name Contains the class on which the use case will be registered, it can be empty, in that case the use case will be registered for any classes.
  • Super Use Case Contains the super use case name. It can be the default Palmyra (e.g., edit, searchInput, view, etc.) or the user-defined use cases.
  • Button Input Configuration Allows the user to define the information used to prepare the use case.
  • the user can also fill in some expert information using an expert button provided by the Palmyra UML Designer interface.
  • Use Case Result It is a set of parameters that can be returned by this use case.
  • FIG. 11 shows the action handler “AgencyCommandSearch” 1130 that is registered in the use case “UCAgency” 1110 .
  • Name Contains the name of the action handler.
  • Action Name By default this contains the identifier of the action, it depend on the action type.
  • View Order Contains the order of the action.
  • Position Contains the position of the action in the screen, possible values are top, bottom or both.
  • Navigation Type Indicates the type of the navigation between the source use case and the target use case.
  • Button Show Expert Shows the action handler advanced information.
  • Action Type represent the type of the action:
  • RowOperation The actions of this type are represented for each row in a collection
  • Action Name This field contains the identifier of the action when the action type is submission. It contains the name of role.
  • Class Name This field contains the name of the class that this action will register.
  • a separate screen shows the target information, which is related to the target use case:
  • this property indicates whether the application will stay or move forward to the new page.
  • On Return Action The name of the action that will be executed when returning from the target use case.
  • On Return Action Type The type of the action that will be executed when returning from the target use case.
  • Action Type represent the type of the action:
  • RowOperation The actions of this type are represented for each row in a collection
  • Action Name This field contains the identifier of the action.
  • Class Name This field contains the name of the class of the target use case.
  • This field contains the name of the target use case.
  • This field indicates whether or not the destination use case is for collection.
  • the user can modify the appearances of the action by modifying parameters, such as:
  • Label Key The key of the label within the labels resource file.
  • Label Provider The full path of the provider to get the labels resource file.
  • Image Src the name of the image.
  • Confirmation Message Key The key of the confirmation message within the confirmation message resource file.
  • Confirmation Message Provider The full path of the provider to get the confirmation message resource file.
  • Access Key Key board short cut.
  • Access Key Provider The full path of the provider to get the access key resource file
  • the preferred embodiment provides another method to generate the use case diagrams by using the WIZARD method.
  • the UML Designer the designer can define a wizard by a simple drawing of use cases and the different action that is allowed for each use case.
  • FIG. 12A illustrates an exemplary Palmyra class diagram that deamonstrates how the wizard works.
  • Palmyra Wizard Diagram 630 ( FIG. 6 )
  • this diagram allows the designer to draw his own wizard and the different step of the wizard.
  • the user can create this diagram by simple click to the menu in the item “Palmyra Wizard Diagram” 630 ( FIG. 6 ).
  • the UML Designer tool After creating the new diagram, the UML Designer tool automatically adds the Stereotypes “usecase” and “wizard”. The user gives a name to the new diagram, and this name will be at the run time the name of the menu item under the menu “Wizard.” Next, the designer can add his specific steps ( FIG. 12B ).
  • the first step allows the user to create a client, “CreateClientStep;” 1240
  • the second step allows the user to create a security account “CreateSecurityAccountStep” 1250 ; and the last step allows the user to create a cash account 1260 .
  • the tool After creating a use case by clicking on the related button in the tool bar, the user can put this use case in his preferred position by drag and drop.
  • the tool gives a name to the use case for example “USECASE1.” This name can be modified, for example the use case can be called “CreateClientStep” 1240 .
  • Use Case Contains the name of the use case.
  • Class Name Contains the class on which the use case will be registered. The field cannot be empty.
  • Input Parameters A set of parameters that are used by this use case for filling fields. The user can add more than one parameter in the related grid. This grid contains two columns, as follows:
  • Output Parameters A set of parameters that represent the result of the current step. The user can add more than one parameter in the related grid. The evaluations of the output parameters are done before the input parameters. This grid contains two columns, as follows:
  • Palmyra Generation tool the user loads the generated UML and generates the java classes related to his model.
  • FIG. 12B shows the action handler “CreateSecurityAccount” 1250 .
  • the user can consult and modify the properties of the action handler by double clicking.
  • This field contains the name of the action handler.
  • Action Name This field can have four different values:
  • Position This field contains the position of the action in the screen.
  • the value stored at this field indicates whether the programmer is allowed to override some methods of the action handler.
  • Input Parameters The user can add more than one parameter in the related grid.
  • This grid contains two columns, as follows:
  • Output Parameters The user can add more than one parameter in the related grid.
  • the evaluations of the output parameters are done before the input parameters.
  • This grid contains two columns, as follows:
  • Palmyra Generation tool the user loads the generated UML and generates the java classes related to his model.
  • Validation is accomplished by automatic creation and validation, or validation as you go, much like spell checking in word processing documents. In addition, manual project level validation can be implemented. Warning and error notifications are provided for guidance and correction as required.
  • the user can validate the entire project, or some portion, with a single step, or through an interface, provided by the system such as “Validate Palmyra Project”.
  • the generated UML is saved in a single step, or through an interface, provided by the system such as “Save Generated UML”.
  • the user loads the generated UML and generates the java classes related to the model.
  • the Palmyra code generation tool is an application that generates an Enterprise Application Archive (Ear) file from a UML model.
  • the generated Ear file is ready to be deployed in an application server.
  • the code generation will include by default in the generated Ear all Palmyra jar files required to deploy an application.
  • the new Ear also includes all the default configurations related to the folder XML of Palmyra.
  • Palmyra generation tool can generate the java classes related to the UML model of the application and the interfaces related to the controllers.
  • the system can also show a list of Generation Steps in the Logs part of the user graphical interface.
  • the first step of the code generation is to create a new Enterprise Application Archive (Ear) file or select an existing Ear file.
  • Ear Enterprise Application Archive
  • This option allows the creation of a new Ear in a folder specified by the user.
  • This new application contains the default services and configurations ( FIG. 13A ).
  • the code generation will include by default in the new Ear all Palmyra jar files required to deploy an application.
  • the new Ear includes also all the default configurations related to the folder XML of Palmyra.
  • FIG. 13A illustrates creating new application using Palmyra generation tool.
  • earPath The full path of the Ear file.
  • sharedPack A string holding the list of shared packages separated by commas. For example: com.palmyra.arch.broker, com.palmyra.arch.devices.input, com.palmyra.arch.devices.output, com.palmyra.arch.mapping,
  • isCreation Indicates whether the file is a creation of new Ear or an update of an existing one.
  • prefix The name of the prefix if one exists, else it is set to an empty string.
  • classPath The list of Palmyra jars used to compile the generated java classes.
  • listJarWar List of added jars and wars.
  • generationPack The selected packages to be generated.
  • umlFilePath The full path of the XML file to be generated.
  • businessServicesPath The path of the business services directory that will be added automatically in the ear file.
  • sequenceStore If true, the user can specify her own sequence data store in the Setup side.
  • the user can set generation options on the generation screen.
  • Two sub-screens compose the generation screen, one is called UML Source and the other is called Generation Options.
  • the user can select the UML file to be generated (mandatory), select the business services path (optional), exclude or include some packages of the application to be generated, and add or remove shared packages. By default, all packages will be generated, and there are no shared packages.
  • the user can add or remove some jar files that will be used to compile the generated java classes, and it can check the related options:
  • Configurable Sequence store This option allows the user to configure the sequence data store in the Setup side.
  • FIG. 13B illustrates generation options using Palmyra generation tool.
  • the update screen provides the user the functionality of updating an existing Ear file. Two sub-screens compose this screen, one is called Services and the other is called Configurations.
  • the screen Services is used to add, edit or remove services, the button “Build Services” will apply the modifications in the selected Ear file (see FIG. 13C ).
  • the screen Configurations is used to add, remove, or restore configurations files. It also permits the building of configurations.
  • the user can add or remove the configuration of the view format, application server configuration, labels configurations, life cycle configuration, reports configuration, and transactions configuration (see FIG. 13D ).
  • the button remove will remove a selected file from the Ear and the button restore is used to cancel a modification made by the user.
  • FIG. 13D illustrates configurations options using Palmyra generation tool.
  • the generation process After the generation process succeeds, it generates several files: the ear file; the generate source and lib jars named respectively GeneratedCodeSrc.jar and GeneratedCode.jar; the folder classes contain the unzipped file GeneratedCode.jar; the folder src contains the unzipped file GeneratedCodeSrc.jar; and the folder MucSrc contains the controllers declared in the UML to be implemented by the programmers.
  • the Automatic Generation is a way to generate an Ear, generate java classes from an XML file, update the Ear with a list of jars and wars and update the Ear with a list of configuration files without using the Code Generation tool.
  • FIG. 14 illustrates the main steps of the automatic generation process, which comprises: 1) converting the UML model into an XML file 1410 , 2) using the XML file to generate Java source code (known as generated source code) 1420 , and 3) compiling the generated java source code using JSDK compiler and creating a library Java Archive or JAR 1430 .
  • the converting of UML model into an XML file can be achieved through the use of the Palmyra UML Designer.
  • Automatic Generation There are two ways to use the Automatic Generation: a simple call to a static method or using a property file.
  • the developer has the possibility to generate an ear, generate java classes from an XML file, update the ear with a list of jars and wars and update the ear with a list of configuration files.
  • This document describes the steps performed for every option. The generation is performed using the Automatic Generation. The same scenario is reproduced if the code generation tool is used.
  • the first way to use the Automatic Generation is to call the static method generate( ) in the class AutomaticGeneration.
  • This method has 19 parameters. The relevant parameters are listed in TABLE 5.
  • Palmyra Auto Generation Parameters File earFile the ear file that will be created or updated.
  • String codeGenreationPath the path of the code generation containing all jars of Palmyra. It must contain four directories which are: ‘ext’, ‘extLib’, ‘xml’ and ‘lib’. These directories are used in the generation of a new ear.
  • boolean isCreation if it is true, a new ear will be created. The new one will contains all jars in the ‘ext’ and ‘extLib’ folders. Also, all xml files in the folder ‘xml’ will be set to Configs_config.jar and PalmyraRessources.jar.
  • String sharedPackages this string holds the list of shared packages (separated by a comma). This string will be set to the file ‘sharedPackages.properties’ in the ‘GeneratedCode.jar’.
  • String prefix string presents the prefix name of the sheared packages.
  • String version the version of the ear file.
  • boolean generatedCodeOnly if it's true, only the generation of java classes will be done.
  • String classPath the classPath required in the compilation of the generated java classes. If it's null, the class path will be calculated automatically: it will contains all existing jars in the code generation directory.
  • boolean generatedJavaDoc if it's true, the java doc of the generated java classes will be created. A new jar will be generated: ‘GeneratedCodeLib.jar’.
  • String businessServicesPath the path of business services jars that will be added automatically to the ear. Only the jars corresponding to the used modules in the UML will be added. If a there is some missing jars in the specified path, a warning will be written in a log file called ‘GenerationWarnings.log’ that will be found in the path of the ear. Collection updatedServices: a collection of Files that contains the list of jars and wars added or updated in the ear.
  • Collection updatedConfigurationFiles a collection of Files that contains the list of configuration files that will be added to the ear. Every file will be added to ‘Configs_config.jar’ or ‘PalmyraRessources.jar’ switch its name.
  • String logFilePath the path of the log file. If it's null, it will take the value ‘AutomaticGeneration.log’.
  • String compilerPath the path of the compiler that will be used (when the usr wants to use a specific java compiler like the compile with a java 1.5 compiler).
  • String compilerVersion the version of the compiler that will be used (when the user wants to use a specific java compiler like the compile with a java 1.5 compiler).
  • AutomaticGeneration.generate new File(earFilePath), codeGenreationPath, isCreation, umlFilePath, sequenceStore, verifyOnly, generationPack, sharedPack, prefix, version, GeneratedCodeOnly, classPath, generateJavaDoc, businessServicesPath, updatedServices, updatedConfigurationFiles, logFilePath, compilerPath, compilerVersion);
  • the parameter codeGenerationPath is null or an empty string, it will be set to the parent of the project directory.
  • the codeGeneration directory usually contains the following folders:
  • the ext directory contains all the Palmyra Jars required to install, to deploy and to use a generated application within the framework Palmyra.
  • the picture below shows the content of the ext directory.
  • the extLib folder includes only non Palmyra Components. Such components are used by the framework for certain goals (For example, to parse an XML document or to manage templates).
  • the following picture shows the content of the folder extLib.
  • the xml folder contains the xml configuration files used by some of the framework components. The most commons are used to configure the presentation labels and view formats.
  • the object of this part of the document is to show how to create an ear without generating a GeneratedCode.jar or updating the ear because all parameters umlFilePath, updatedServices and updatedConfigurationFiles are null.
  • AutomaticGeneration.generate new File (earFilePath), codeGenreationPath, isCreation, umlFilePath, sequenceStore, verifyOnly, generationPack, sharedPack, prefix, version,
  • the parameter applicationName provides the name of the earfile without the extension “.ear”.
  • applicationName “Essai”
  • TMP under the codeGenreation folder.
  • TMP will be placed under: “D: ⁇ Projects ⁇ PALMYRA11.0 ⁇ FRAMEWORK ⁇ build ⁇ out ⁇ codeGeneration”.
  • this new directory we copy all the contents of the directories ext and extLib folders (those under the codeGenreation directory).
  • the “application.xml” file is a deployment description for the J2EE application. This file must be located in the top level META-INF directory.
  • Step 4 Handling the External Folders
  • Step 5 Updating the Unzipped service.jar
  • Step 6 CREATION of the Jar File service.jar
  • Step 7 Handling the Configuration Files
  • Every file under workingFolder/config will be copied, switch its name to a correspondent directory: (a file which name starts by a property name (in the property file: config.properties) will be copied to the created directory having as name the value of this property).
  • the xml file: appServersConfig.xml will be copied to the Directory: workingFolder/handleConfig/Configs_config/AppSer.
  • This file will be used as manifest for the following jars that will be created:
  • Palmyra Version Info For every selected file, a new attribute under Palmyra Version Info will be created.
  • the new attribute will have as name the name of the selected jar file (without “. jar”) and as value the last modification date of the selected jar.
  • This option creates an Ear without generating a GeneratedCode.jar or updating the ear because all parameters ‘umlFilePath’, ‘updatedServices’ and ‘updatedConfigurationFiles’ are null.
  • the parameters ‘sequenceStore’, ‘verifyOnly’, ‘generationPack’, ‘sharedPack’, ‘prefix, ‘version, ‘classPath’, ‘generateJavaDoc’, ‘businessServicesPath’, ‘compilerPath’ and ‘compilerVersion’ are a set of switches for the case of generation.
  • the GeneratedCode.jar will be created in the root of the earFilePath (if there are no compilation errors).
  • the list of parameters shown in TABLE 7 represents an example of this option.
  • AutomaticGeneration.generate new File(earFilePath), codeGenreationPath, isCreation, umlFilePath, sequenceStore, verifyOnly, generationPack, sharedPack, prefix, version, GeneratedCodeOnly, classPath, generateJavaDoc, businessServicesPath, updatedServices, updatedConfigurationFiles, logFilePath, compilerPath, compilerVersion);
  • AutomaticGeneration.generate new File(earFilePath), codeGenreationPath, isCreation, umlFilePath, sequenceStore, verifyOnly, generationPack, sharedPack, prefix, version, GeneratedCodeOnly, classPath, generateJavaDoc, businessServicesPath, updatedServices, updatedConfigurationFiles, logFilePath, compilerPath, compilerVersion);
  • the class path will be calculated automatically: it will contain all existing jars in the code generation directory and all existing jars in the Business Service path if it is mentioned.
  • Step 3 Compiling the Generated Code
  • a default compiler is used having as path the value of the system class path variable. Before performing the compilation task, redirect the compiler's error output to a stream other than the standard error stream so that the compiler's error output can be read into the errors array list.
  • Step 4 Create the Generated Code and Source Jars.
  • the parameter ‘updatedServices’ must contain a collection of ‘java.io.File’ representing the list of jars and wars to add. If the Ear file does not exist, an exception will be thrown.
  • the list of parameters shown in TABLE 8 represents an example of this option:
  • This step is processed the same way as in case of creating a new ear (See the paragraph: create an ear from scratch).
  • Step 3 Copying the Ear File to a Temporary Directory
  • This step consists on copying the ear file to be updated, to the directory AppTemp under CodeGenerationPath.
  • Step 4 Handling the External Folders
  • the content of the copied ear file will be extracted to the directory unEar ⁇ basedir.
  • the content of the war file included in this ear will be naturally extracted under unWar/basedir. (See the paragraph: create an ear from scratch).
  • the content of the TEMP directory (in this example, it only contains the jar file Agenda.jar) to be added to the ear file) under the directory unEar ⁇ basedir.
  • the directory service will be created under unEar/basedir in which extract the content of this added file, and then recompress this content to make a new jar file service.jar.
  • Step 5 Creating the War File
  • Step 6 Creating the Ear File
  • the parameter ‘updatedConfigurationFiles’ must contain a collection of ‘java.io.File’ representing the list of files to add. If the Ear file does not exist, an exception will be thrown. Every configuration file will be set in the ‘Configs_config.jar’ or ‘PalmyraRessources’ switch its name.
  • the second way to use the automatic generation is to fill a property file with all needed information.
  • the list of parameters shown in TABLE 9 represents an example of this option. It will be passed as the first and only parameter to the main method in the class AutomaticGeneration (the only class in the jar ExternalBuilder.jar).
  • AutomaticGeneration.generate new File(earFilePath), codeGenreationPath, isCreation, umlFilePath, sequenceStore, verifyOnly, generationPack, sharedPack, prefix, version, GeneratedCodeOnly, classPath, generateJavaDoc, businessServicesPath, updatedServices, updatedConfigurationFiles, logFilePath, compilerPath, compilerVersion);
  • TABLE 10 represents an example property file.
  • Palmyra provides a wizard-like setup tool that aims to automate the process of deploying the generated applications into various application servers like BEA Weblogic, or IBM Websphere, or others It is done to hide the complicated nature of the application servers.
  • This set-up tool also manages the communication with different database providers like Oracle, Microsoft SQL server, or IBM DB2.
  • the configuration established by the user can be stored in a file for a future use.
  • the Palmyra Setup Tool supports a number of operating systems, application servers, and databases, for example:
  • the Palmyra Setup Tool provides wizard-like steps to complete the setup operation.
  • the first step is the welcome screen.
  • the user can find the Options button. Clicking on the Options button brings up the options panel which contains four options: Security data source has different properties, Sequence data source has different properties, Load setup parameter, and Update setup parameter.
  • the second step is to specify Operating Systems and Application Servers. At this step, the operation system and the application servers can be selected.
  • Weblogic 9.1 and Weblogic 9.2 the username and password of an administration account of Weblogic must be passed.
  • Websphere 5.1 the server name and node name must be passed.
  • Websphere 6.x the server name and node name and profile name must be passed and the type of the application server (Network deployment or Normal) must be selected.
  • the third step is to specify Application server home directory and JMS Provider.
  • the home directory for the application server and the domain which will be used and the server name must be passed beside to the JMS provider (MQSeries or Default JMS).
  • the JMS provider MQSeries or Default JMS.
  • JBoss only the domain directory must be passed.
  • the server home directory and the JMS Provider must be passed.
  • the fourth step is to specify the Ear path.
  • the path of the Ear to be installed is specified at this step.
  • the fifth step is to setup User Login Parameters.
  • the username and password of the default account to login into the installed application is entered at this step.
  • Test Connection button The user can test the communication with the specified database by clicking on Test Connection button.
  • Additional options can be specified based on type of application server selected.
  • the user can reuse the generated text file by clicking the button Load Setup Parameters in the option panel, or can update them by clicking the button update Setup Parameters.
  • the database structure is composed of tables having columns, indices and constraints. This structure is created automatically by the system using the metadata created following the design phase according to the classes defined in the UML class diagrams.
  • the persistence module generates table names from UML classes following this rule:
  • the generated name is d_MyClass_NB: If generated name exceeds 30 characters, it will be truncated from the beginning the fit the max length (30, constant underscore is included).
  • FIG. 15A illustrates an example of Relation One to One.
  • table X will contain y$code — and y$pk_. Indexes on y$code — and y$pk — are created (only in case of compositions, for aggregation relations, the UML must indicate so).
  • FIG. 15B illustrates an example of Relation One to N.
  • table Y — will contain x$code — and x$pk_. Indexes on x$code — and x$pk — are created (only in case of compositions, for aggregation relations, the system must indicate so).
  • FIG. 16 illustrates an example of relation with interface.
  • Table related to Class X we add a field superinterface$type_. This field will contain the full name of the class Y 1 or Y 2 .
  • generated name exceeds 30 characters, it will be truncated from the beginning to fit the max length (30, constant underscore is included)
  • FIG. 17 illustrates an example of Inheritance.
  • the mother_table is created normally (no special treatment).
  • the child_table will contain only pk_field with fields declared on class Child (a 2 ). Every insertion in the table child — will be accompanied with an insertion in the table mother_.
  • the target software application is developed using an iterative process. Through this process, each iteration produces a new version of the software application having more functionalities than the previous versions. Whenever modifications are made on the UML models for each iteration, the database structure should be updated in accordance to the metadata represented by the model. Through this process, the system allows for an automatic update of the database structure without losing previously entered data.
  • the design of the application often changes, and this, in turn, may affect the design of the database. These changes include adding/removing classes to/from the application, or adding/removing field to/from each class.
  • the “Update Tables” operation is provided in the persistence service to allow modifying the underlying storage while reducing data loss risks to bare minimum.
  • the database table-constraints are created in accordance with the integrity rules defined in the UML models using field and relation multiplicities. Whenever modifications are made to the integrity rules the table constraints must be updated.
  • the system provides for an automatic update of database constraints when possible. When constraints cannot be updated automatically because the previously existing data does not comply with the new constraints, the system generates a report that facilitates manual intervention. The system provides information such as the failed constraints.
  • the generated SQL code to be executed differs from one DBMS to another.
  • the target application menus contain all the pathways to the screens provided by the application. Each of these menus can contain sub-menus and additional pathways in a tree-like structure.
  • the Palmyra framework provides a tool called Menu Editor Tool, which is used to define the structure of the application menus.
  • the Menu Editor Tool allows for menu configuration capability.
  • the menu editor as an offline tool requires information from the server; that information includes the current menu, the users defined in the system, the class paths of the model, the action type, the use cases, free parameter and additional parameters.
  • This tool allows for loading of pre-built menu configuration files and then reflecting these configuration files in the system.
  • This tool also allows for loading of an Import/export configuration file that allows the system to import or export the current configuration or get a configuration from another file through importing it.
  • this tool allows for manipulation, in which the current configuration file can be manipulated and changes would be applied to the current system.
  • the tool also provides different configurations for different user groups and multilingual labeling in which labels are configured so they support certain language.
  • the tool also allows for adding new menu items.
  • FIG. 18 represents the user interface of the Menu Editor Tool.
  • the configuration menu items must be registered by defining an initializer and call the method AdvancedMenuGenerator.register( ).
  • TABLE 11 illustrates an example of adding new menu items.
  • SimpleContextImpl simpleCtx new SimpleContextImpl(UseCaseConstants.EDIT, Boolean.FALSE, Menu.class.getName( ), ActionTypeConstants.TECHNICAL, ActionConstants.CREATE); AdvancedMenuGenerator.register( AdvancedMenuGenerator.PUBLIC, “Configuration>Menu”, “Menu Manager”, simpleCtx, null, false, MenuProvider.class.getName( ));
  • the structure includes the following information:
  • the system When finishing the creation of the menu structure, the system generates a file that contains the menu structure to be uploaded into the target application.
  • the Palmyra framework automatically generates screen pages used to create, edit and search the objects of the Entity class types that are defined in the UML model of the target application.
  • the contents of the screens are generated in accordance with the fields and relations of the entity classes by using an algorithm to generate a default layout of the screens.
  • the usage of the visual elements that represent the fields and relations (text boxes, combos, lists, links) and their distribution on the screens might be manually modified later using the View-format configuration tool. View-format can also remove unnecessary fields from the screens and can create groups of fields.
  • Palmyra The view format of a Palmyra screen is represented by an instance of the class com.palmyra.arch.presentation.model.viewformat.ViewFormat This class contains:
  • FIG. 23 shows the UML Class Diagram of the view format service.
  • the Palmyra Framework generates default actions for every screen.
  • the user can modify some properties of these actions using the Action Configuration service. He can hide or show the action, change its icon, change the position (Top or Bottom), change the arrangement of actions.
  • the Translator is a configuration module of the Palmyra framework that manages internationalization of many presentation elements like labels, enumerations, screen title . . . .
  • the automatically generated screen pages have screen elements (text boxes, combos, lists, links, etc.) with descriptive labels.
  • the labels are generated using the field-names or relation-names as defined in the UML class diagrams.
  • the labels can be modified later using the Translator module.
  • the labels are chosen according to the language defined in the user profile.
  • Enumerations are Simple class types that represent a text with a predefined set of available values defined in the UML class diagram.
  • fields having enumeration class types are displayed as combo boxes with the set of available values.
  • the available values can be modified using the Translator module.
  • the available values are chose according to the language defined in the user profile.
  • the default values configuration service allows the definition of default values for a specific field and a specific user. This allows defining a different default value for each user.
  • Authentication is the mechanism by which callers prove that they are acting on behalf of specific users or systems. Authentication answers the question, “Who are you?” using credentials such as user/password combinations.
  • ASP i.e., Application Service Provider
  • Authentication module i.e., Application Service Provider
  • the latter considers a user as a pair of User Name and ASP Value. This allows defining more than one user with the same name provided that they have different asp values.
  • ASP is the Segregation of data and processes between different entities sharing the same database.
  • An entity can be a bank, a branch, a department or any repartition required by the client. For example: A user with an ASP Value equal to X, will only see data relative to X.
  • FIG. 19 shows an exemplary Palmyra login page.
  • Palmyra Authentication is done by two methods:
  • Palmyra uses Filters to check each request sent from user. If it is sent from an authenticated session it will be forwarded to the required resource. Otherwise, it will be forwarded to the login page. Palmyra uses Form-Based authentication to send the username and password to the Filter, which verify the username and password. In the case of ExternalAuthentication, users and passwords are stored in a custom registry such as LDAP. So the first step is to assure that the application server used for deployment support the integration with a custom registry.
  • the application server connects to the user registry to collect user-related information when creating credentials, which are then used to represent the user during authorization (for example, when logging into an application to check passwords).
  • Websphere Application Server security supports the implementation of most major LDAP directory servers (like ActiveDirectory of windows).
  • Jboss also supports the implementation of Active Directory.
  • the security kernel offers an interface for authentication called AuthenticationDriver.
  • the implementation of this interface depends on the authentication technique required by the client.
  • the AuthenticationDriver interface contains 6 methods:
  • boolean init( ) initialisation of the security authentication driver (exp: Load of setup user).
  • failLogin (ServletRequest request, ServletResponse response): In case of authentication fail the implementation of the failLogin method is to tell where forward the request.
  • the last connection date is stored for each Security User.
  • account management is implemented through account lockout and password policy. Both are configurable in a property file called passwordConfiguration.
  • the containing properties are:
  • minLength is an integer that defines the minimum length required for a UserCredentials password. Its default value is 0.
  • upAndLow is a boolean that defines whether both upper and lower case characters are required for a UserCredentials password. Its default value is false
  • warnBefore is an integer that defines the number of days before which the system should start warning a user that he needs to change his credentials. It must be used along with password Validity. By default, this property is empty.
  • lockOutNbr is an integer that defines the number of failed password trials that causes the user to be inactive (The SecurityUser's IsActive property is set to false) and thus can no more access the application, unless the administrator activate it again (set IsActive to true) or if he tries after 8 hours. By default, this property is empty.
  • Palmyra also supports Single Sign on (SSO) authentication mechanism.
  • SSO Single Sign on
  • Single sign-on is the ability to require a user to sign on to an application only once and gain access to many different application components, even though these components may have their own authentication schemes. This feature allows end users to log on once per session rather than logging on to each resource or application separately.
  • Authorization is the process whereby the interaction between users and application resources is controlled, based on user identity or other information. In other words, authorization answers the question “What can you access?”
  • the definition of the authorization process method used by the application is done by the implementation of an interface AuthorizationDriver.
  • Palmyra authorization system is implemented on different layers:
  • System users can be grouped so that they are managed easily.
  • the security configuration tool allows creating groups and corresponding users. Groups may also be grouped in other groups in order to create a hierarchy.
  • VermegAdmin is part of the group Administrators.
  • Roles are user-profiles used to pre-establish a set of configurations to be applied to the later created users. The roles are created using the security configuration tools. Roles are assigned later to previously created users using the same security configuration tool.
  • a role “admin” is created be default when starting the application for the first time. This role gives all rights to the application resources.
  • the privileges and restrictions of users are expressed in terms of what Entity-class types they can access and what process parts they can run. Rights are configured using the security configuration tool. The rights are later assigned to the previously created users, groups and roles also using the security configuration tool.
  • Palmyra In Palmyra the authorization process is done in two levels:
  • Roles in Palmyra are defined by their names (RoleId). They enclose Entity Policies and Service Policies. The latter will define the privileges that the role offers to a user or a group of users.
  • the entity policy is associated to the Role. Those associations are based on a create condition, update condition, delete condition and find condition. If these conditions are verified, the user which role is granted can access to the entity.
  • Entity policy is identified by: Application Name: ALL or the name of the application and Entity Name.
  • the “create condition”, “update condition”, “delete condition” or “find condition” fields are a Boolean expression that can be:
  • the entity com.Palmyra.arch.basicStruct.data.BusinessEntity is the super entity of business entities.
  • the entity com.Palmyra.arch.basicStruct.data.AbstractValue is the super entity (business entities plus Palmyra entities).
  • the service policy is associated to the Role. Those associations are based on a condition. If this condition is verified, the user which role is granted can access to the application name/service/action.
  • Service policy is identified by Application Name, Service name and Action name.
  • Date is evaluated as the current date, a BusinessDate instance.
  • Time is evaluated as the current time, a TimeValue instance.
  • UserProperties is to be used before a security property name with the following syntax: userProperties.propertyName. The latter is evaluated as the current user's security property value.
  • Parameters is to be used with the following syntax: parameters.paramName, where paramName is a parameter of the action defined as an actionName in the ServicePolicy.
  • paramName is a parameter of the action defined as an actionName in the ServicePolicy.
  • the service com.Palmyra.arch.service.BusinessDelegate is the super service.
  • FIGS. 22A , 22 B, and 22 C illustrate the main part of the exemplary Authorization UML model. Specifically, FIG. 22A illustrates an exemplary SecurityItem UML Model, FIG. 22B illustrates an exemplary Policies UML Model, and FIG. 22C illustrates an exemplary SecurityItem's Roles UML Model.
  • User A has one role X and a role Y inherited from the Group B, which he is a member of.
  • Role X has an EntityPolicy instance P 1 on Entity E with a find condition set to empty. Taking into account the latter information, the user A will see all instances of E.
  • the reseason is simply because a criterion has been formed with the two conditions of role X and Y as a union and sent as a query to the database.
  • the generated target application contains pre-existing libraries that manage the communications with other systems and applications using different communication and messaging protocols.
  • FTP, File, Queue, WebDav, Mail via SMTP are examples of protocols supported by the preferred embodiment.
  • an Input and an Output device is integrated in the target application.
  • the Output Device implementation defines two actors:
  • the output device configuration is an entity class with a code field deviceID. It has several fields according to the device type (For example, the mail server in the output device mail configuration or the hostname in the output device FTP configuration).
  • Output Device The output device manages the writing of values to a device. So it's associated with an output device configuration. All output devices should extend the abstract class OutputDevice. Palmyra defines five types of Output Devices: Output Device Queue, Output Device File, Output Device FTP, Output Device Palmyra Service and Output Device Mail. Each extended Output Device inherits a ByteArrayOutputStream Attribute and implements the method flush. The inherited field can be obtained by calling the method getOutputStream ( ). This method returns an OutputStream. The method flush ( ) writes the content of the inherited field to the device defined by the associated output device configuration.
  • New I/O devices and protocols can be added by adding new modules and new libraries for these I/O devices and protocols. Modification of the I/O devices is usually not performed during runtime. The application is taken off line and re-deployed with the new modules and libraries
  • Mapping is a tool which provides the ability of converting objects (e.g. copying field values from source object to target object(s) based on a configuration).
  • FIG. 25 illustrates an overview of the Mapping process.
  • the Mapping mechanism is used for:
  • Palmyra data is represented by a special object (the interface “Value” and its implementers). External data coming from outer devices is parsed using general purpose drivers, so the output is generally in a driver-specific format. Driver specific objects should be converted into application data objects on which the process is defined.
  • Applications also use business services that may require creating specific objects in order to integrate their processes.
  • the input of the accounting business service is an accounting message (a data object). If the user wants to integrate the accounting in an application, he should create accounting messages having other data objects as sources such as client payments.
  • mapping is configurable and customizable at runtime: the whole mapping configuration could be changed at any moment and the configuration effects take place immediately. This gives a large level of flexibility to the users of the system.
  • the configuration of mapping is created at runtime of the application using the presentation tier. Different mapping configurations can be assigned to different processes. For example, in the router, for each incoming message type, a parser (driver) is configured and then a mapping could be specified.
  • FIG. 26 illustrates an example of configuration of Mapping.
  • the mapping mechanism creates the destination class in order to map the objects.
  • the creation of a destination-class using mapping comprises a number of key-mappings or elementary mappings.
  • Key Mapping is an elementary mapping configuration of a field in the target. Every field may have one or more key mappings to define how the value should be extracted from the source.
  • the Source Formula is an expression based on fields from the source to construct the value which will be mapped or will be assigned to the target. For example, a source formula may read: grossAmount+commission. Target field: netAmount.
  • a Condition is an expression that defines a condition. If the result is true, then the mapping is executed. For example, a condition may read: operationType “buy”. Target key: balanceType source formula: “debit”.
  • Mapping saves time as the conversion process is a very frequent requirement in Palmyra applications. Having a module that performs the process saves development time.
  • FIG. 27 illustrates in detail the process of Mapping converters.
  • mapping is used to maps an object (source) to another object (target). There are two types of mapping:
  • a process diagram represents a process definition. Process diagrams are created using the state diagram modeling technique, where a state diagram is called a lifecycle or automata. Later, a workflow engine, which is a finite state automaton that manages the business processes, manages the lives of these states. The workflow is related to entities and represented in UML by a state diagram and the lifecycle is configurable by the user.
  • FIG. 28 illustrates an example of the workflow engine and how it manages the states in the system.
  • a lifecycle or automata file is an XML file describing in XML language the graphical state diagram defined in UML.
  • Palmrya After creating the graphical state diagram in UML, Palmrya reinterprets the graphical state diagram into XML language so it can be easily understood during and after the building process of the application.
  • the process diagrams are transformed into XML files.
  • Those XML files are loaded in the application using a specific configuration tool that allows afterwards performing a syntax check on the loaded process-definition and binding the process definition with a previously defined Entity class.
  • Binding is the process of assigning entity classes to a process. Modifications on the lifecycle or the process definition can be made at anytime after deploying the application.
  • the resulting XML file produced in the generation step is then loaded into the system and the modifications are taken into consideration. The modification is generally performed through the UML Designer interface to take advantage of the built-in validation capability.
  • the generator can be configured to export XML files only.
  • Constraint models are class diagrams that define specific Entity class types known as constraint classes.
  • Constrainable They add constraints on pre-existing class types defined as Constrainable.
  • the constraints are additional integrity rules defined in the UML models based on existing entity classes; they are next converted into XML files during the generation step.
  • the generated application provides for a tool to load XML files that represent constraint models into the application. Modification into constraints or adding new constraints can be done anytime after deploying the application.
  • the resulting XML file is then loaded into the system and the modifications are taken into consideration.
  • the generated application provides the functionality of writing a trace in specific files created on the server machine.
  • the trace is used when necessary to analyze the tasks done by the application and to log for bugs or technical problems.
  • Trace Configuration can also record business logs and module specific logs.
  • the application provides for a configuration tool to determine the location, size, and names of files to be generated to store the trace. It also enables selecting from a list of predefined levels of details in the generated trace.
  • Reporting tools are vital to enterprise applications that deal with data. They give the user the possibility to generate dynamically reports on the data they work on given certain criteria.
  • the Report module is the Palmyra tool that defines and generates generic reports. It provides easy-to-use user interface to build Reports (“templates”) that can be used later to generate Reports in different formats.
  • the generated application provides the functionally of creating Reports using the data entered into the application.
  • the Report Writer is part of the presentation service.
  • the definition of Reports is based on Metadata, which indicates the entity class types to be used as data containers and the parameters to be entered when generated the Reports in order to select the appropriate objects.
  • Metadata is the definition of data loaded in the memory of the application. It is derived from XML files (e.g., process and constraints), generated code, written code, and preexisting libraries.
  • Reports are generated in multiple formats like PDF or HTML or RTF based on the data and form definitions.
  • the Report designer can define some parameters to be used in the criteria. The values of these parameters are supplied just before the Report generation. These parameters are a set of optional conditions to be applied when collecting the data to generate the Report. For example, if the user just wants the personal information of the Employees who are older than 25, then he can define search criteria to customize the Report gathered data.
  • the Report can also define an entity which is the name of the main type (class) representing the entity to be displayed. For example if the user wants to build a Report which includes the Employees' personal information, the main Entity will be Employee.
  • the Report can define the names of the attributes (fields) of the main Entity to be viewed in the Report, for example employee first name. Further, these fields can be grouped, ordered, and represented in many different ways such as charts.
  • the Palmyra system also provides for the capability to generate reports programmatically by providing various methods for generating and modifying the interfaces for programmers to work with. TABLE 12 illustrates an example of the methods that the Palmyra Reporting Tool exposes programmatically to work with the reporting tool. Report comprises an essential part of any application. However the design of the Report may take a lot of time and effort. Moreover, any simple modification on the Report design may cause the application to stop running and require restarting.
  • Palmyra has the XSL Editor Tool which facilitates designing process of the Report by the designers. This tool allows for various design functionalities, such as modifying the layout of the report, adding dynamic data, modifying the labels, adding expressions, and adding images to the design. Finally, the Report writer tool also provides means to represent data in a diagram format.
  • the Palmyra system contains a chart library. This library is a Java-based charting that enables the user to add charts to his java applications and web pages. The library contains AWT based chart components, applets, and a chart servlet. FIG. 29 illustrates the report generation steps.
  • Palmyra based-on applications can contain a testing tool used to ensure the non-regression in the application when adding new functionalities through the iterative approach.
  • regressions are bugs in pre-constructed functionality, which surface after the introduction of new code.
  • the tool is called Autotest, and it is used to record testing scripts, to create testing steps, scripts and suites manually, to run it later, and to compare the results.
  • the tool ensures non-regression in the generated application by making sure that functions created in previous version of the application can still work after the additions.
  • the tool helps to discover precisely and easily anomalies or differences in process-results between the version on which the test is launched and the version in which the recording is done.
  • Step Test It is the core item in the AutoTest, and presents the service that you want to test.
  • ScriptTest It presents the test scenario of a given use case.
  • a script is composed of a set of ordered steps.
  • the ScriptTest may have its own InitialState.
  • the Suite If you have many scenarios to be tested, then you can compose them by order in one Suite.
  • the Suite may have its own InitialState.
  • InitialeState It is an image of a database state saved in xml files; it is created by the user.
  • Test Message It is a configuration used by the AutoTest tool to create the suitable Palmyra message that presents the service to be tested. It consists of a service name, action name, and parameters.
  • StepExpression It is a palmyra expression used to evaluate the result.
  • TestSearchResult It enables you to find the Result in the database and display it.
  • TestCollectionSearchResult If the Result is a collection of values, and the test success depends of the number of these values, put the expected number here.
  • TestFailure Every time one of the previous tests (StepExpression, TestSearchResult, TestCollectionSearchResult) fails, and if the run of the TestStep or TestScript fails, a new TestFailure is created to inform you about the failure.
  • test scenario can be organized as test suites which comprises test script, which is further comprises of test steps.
  • the first step of manual test scenario creation is to create a test step.
  • AutoTest provides a dropdown menu for Step Creation. To search for an old Step or creates a new one, click the Step link in the AutoTest menu, then the new button to create a new Step. Fill in the Step name; this name is unique for the all steps.
  • Test Message this field is mandatory and presents the service that you want to test it. So you have to select the service name, action name and the user name for this message. If the message needs parameter(s), you can create them by clicking the Parameters tab and select one of the available parameters types.
  • the parameter value is not a simple one, then select the Composite Parameter from the combo box. This will enable you select any composite value and use it as a value for this parameter.
  • a user can choose between two options to get this value.
  • the Step Expression is used to ensure that the result is correct.
  • Test Search Result (which is unique), the Class Type and the criteria; the Test Search Result will search for values from the Class Type
  • Test Collection Search Result is use to check the number of the results, set the class type, the criteria used in search and the expected values' number.
  • AutoTest also provides a dropdown menu for Test Script creation. To search for an old Script or creates a new one, click the Script link in the AutoTest menu, then the new button to create a new Script. Fill the Script Name, and select the Script State from the combo box (optional), the Script may or may not have its own State.
  • AutoTest provides a dropdown menu for Test Suite creation. To search for an old Suite or creates a new one, click the Suite link in the AutoTest menu, then the new button to create a new Suite. Fill the Suite Name, and select the Suite State from the combo box (optional), the Suite may or may not have it own State
  • To Change Scripts order within the Suite is important, because the execution flows from the first Script to the last one considering this order. You can easily change this order whenever you want, by using the arc links.
  • Autotest enables running a pre-recorded or created testScript, TestStep and TestSuite; this is done by simulating automatically the user inputs into the application and comparing the generated results with the recorded equivalents.
  • a specially designed user interface is provided for the execution of TestSteps, TestScripts and TestSuites.
  • Autotest generates a report that contains all the differences (if they exist) between the obtained and recorded results. The report is then used to analyze the potential anomalies. After analyzing the results and making the necessary corrections, the application developers may decide to update the test script when the differences of results is because of enhanced features of the new version. Autotest provides the possibility to automatically update the recorded scripts by simulating the user-inputs and re-recording the results.
  • Running a test step, script, or suite is as simple as running a step, just enjoy the three phases game:
  • the AutoTest Recorder provides an easy and fast way to create Script Tests.
  • the Auto Test Recorder records all services that are different from Palmyra services. But in some cases you may even need to record Palmyra Services; you can simply do that by adding the Palmyra Services name to a configuration file.
  • the Record Result presents an entity used during the scenario, in this case the recorder hash each entity that should be synchronized into a string, then on running the same Script Test again, the AutoTest compares these stored hashes with the ones calculated during the running. You can exclude some fields from the hashed entity by assigning a Record Config to the recorder. (Have a look to the next section to know how to create Record Configs)
  • Create Record Config In the AutoTest menu, select Create Record Config. Input a unique name. Select the entity to exclude some of its keys. Then, select the keys that you want them to be excluded from the hash of the selected entity.
  • the main purpose for the Script Delete is to rollback the database to a previous state, to understand why you may need this feature in some scenarios.
  • a script delete can be generated according to a Delete Configuration that contains the list of classes to be deleted and a list of sequences to be deleted.
  • Run Script Delete To run any Script Delete, go the same link in the AutoTest menu (Search Delete Config), search, select and run.
  • the AutoTest provides you the functionality of attaching a Script Delete to a Script Test. This can be easily done by editing your script and assign the required Script Delete to it.
  • the list of the keys used to create the string representation of the value are simple and technical keys excluding the sequence and pk code fields, the foreign pk fields, the sequence fields and the excluded hash keys specified by the tester in the Record Result Config.
  • the AutoTest generates a report for each running scenario, it contains both the success messages for the succeed processes, and the error messages detected by the AutoTest during the execution of the wrong processes.
  • the log files can be found in the working directory of the application, and under this path:
  • the failure message means that an out of sight error is discovered, and going to be solved, which is the main goal of the AutoTest tool, locating the errors in the tested application.
  • This section shows how to turn on/off the AutoTest debug mode, then how to read the resulted debug log.
  • Debug mode On/Off All what you need to turn-on the debug-mode in the AutoTest is to add a file (debug.mode) under this path:
  • Debug mode usage This usage order should be followed to get the advantages of the debug-mode:
  • step1 ../AutoTest/debug/step1_record_uniqueNum.log step1_run_uniqueNum.log step2_record_uniqueNum.log step2_run_uniqueNum.log
  • Debug mode logs The extra results of the debug mode (in additions to the recorded scripts) are the debug-logs files. Most of the recorded steps will has two debug-logs, one at recording time and the other at running time; you can distinguish between them by name:
  • the thin-client architecture was selected.
  • the software system is split to at least 3 tiers. This is a brief description for each of these tiers:
  • a thin client is the tier that is in direct interaction with the end-user. It is said to be thin because it has no business logic at all. It only provides the means to communicate with the user, and it may be installed on every machine used by the users. As a product, it can be part of the complete software solution, or a third-party product such as a web browser.
  • a presentation tier This tier runs on the server-side. It communicates with the thin-client through some network protocol. It knows how to delegate requests to the proper business services, and how to display results by sending responses back to the thin client. It also enables the user to go from one use case to another.
  • a business logic tier It is in this tier only that the business logic of the application is performed. It can be thought of as a number of services that call each other, that are called by the presentation tier, and that know how to connect to the database when it needs to process stored data.
  • the first two tiers are all that interests the presentation module, and we will be focusing on these two tiers later in this document.
  • the Model provides a set of services to access the database (or the state of the application) and to run business processes.
  • the View A set of components that know how to construct the user interface for each possible use case.
  • the Controller The component that receives requests from the client and sends responses back to it. It knows how to turn these requests into internal requests and how to delegate them to the proper services in the model. It also knows how to choose the proper view component that will construct the user interface.
  • the controller component is solely responsible for communicating with the thin client, and so, it should understand the network protocol that connects it to the thin client, and it should also understand the language of the thin client so that it can interpret its requests, and synthesize responses back to it. So, we expect that much of the code that implements the controller component is client-dependent.
  • the controller is also responsible for delegating requests to the proper service in the model, and for choosing the view component that will decide the content of the response. This functionality has nothing to do with the type of the thin client.
  • controller component can be thought of as the union of the following two units:
  • the Presentation Port It is the only unit at which the client can connect to the presentation tier of the application. It knows all the technical details related to the communication with the thin client.
  • the Presentation Controller It is the unit that receives client-independent requests from the presentation port, delegates processing to the proper service, selects the proper view component, and sends a client-independent response back to the presentation port.
  • FIG. 48 shows how the presentation tier can support many technologies thanks to its design.
  • the interaction between the user and the presentation module starts by sending a request, using some thin-client, to a presentation port that is “listening” to the client.
  • This request is client-dependent, and the presentation port has to convert it to a client-independent request. Once it does that, it forwards this request to the presentation controller, which will perform the necessary action to process this request.
  • the presentation controller can now respond to it.
  • the response must come in the form of a new graphical user interface, or an update to an already-displayed interface.
  • the controller should know the graphical components to be rendered or updated and the values to be bound to them.
  • the presentation controller does not know how to communicate with the thin-client, it should do that through the presentation port itself, which must provide the means for the presentation controller to render the user interface.
  • the presentation port invokes the presentation controller to build the user interface, it should pass an object (a Renderer) that the presentation controller will use to render components on the user interface.
  • the components displayed on the user interface are usually graphical representations to the values in the current session.
  • the presentation port receives a request due to an interaction between the user and a displayed interface, the port knows the graphical components that were updated, but it does not know how to update the values they represent. So, the Renderer is also a way for the presentation controller to pass objects (Value Bindings) to the presentation port to help it update the values in the session when the port receives a request from the built user interface.
  • each user interface (or page) must have its own memory space in the session. We will refer to these separated spaces as the Page Data.
  • the presentation controller is the component that knows how to create, initialize and update a Page Data object, but it is the presentation port that knows how to keep the Page Data object returned by the presentation controller in the session, and how to associate it with the rendered page (or user interface).
  • the presentation controller should not itself process the requests received from the presentation port, nor should it build the page, even though this is what it seems to do from the point of view of the presentation port. Instead, the presentation controller should locate the appropriate service that would handle the received request or action. From now on, we will refer to this service as the Action Handler. Similarly, when viewing or rendering a page, the presentation controller must locate the appropriate view component, or a View Builder, that knows how to render a page, and invokes it passing to it the Renderer object.
  • FIG. 49 is an illustration of the above example.
  • the Request contains any data sent by the client. This data includes the targeted page or the use case to begin, and any additional parameters that affect the execution of the business logic.
  • the interface of this object must be declared in the presentation controller, and each presentation port should provide its own implementation of that interface. The implementation will most likely wrap the client-dependent request.
  • the Page Data This object represents the session space reserved for each displayed page. Thus it should be stored in the session. It should be identified using a unique identifier so that it can be referenced in later requests/responses.
  • the Session In much the same way the request wraps a client-specific request, the session also wraps a client-specific session.
  • the interface of this object which must be declared in the presentation controller, contains only the necessary methods to add Page Data objects to the session and to remove them from it.
  • the Renderer The interface of this object (must also be declared in the presentation controller) defines the set of components that any presentation port should know how to build. Each presentation port must provide its own implementation of this interface. It actually must wrap the client-specific response.
  • the Value Binding When the View Builder invokes the Renderer to build the user interface, it should pass to it instances of this class to specify how each visual component maps to the values in the Page Data. These Value Binding objects can be used later by the presentation port to update the values in the Page Data (i.e. when a new request is received).
  • the controller reads the parameters in the request, and then, it runs through a chain of if-else statements (and nested if-else statements) that would eventually lead to the right action to be performed.
  • the code of the controller is hard to maintain, because if a new action (which handles a special request) must be added, then the chain of if-else statements must be modified, and this might introduce bugs.
  • a better approach is to use the registry/factory design pattern.
  • the actions register themselves at a factory.
  • the controller receives a request, it looks up the action that is interested in this request from the factory.
  • the registration and look-up operations are done using a key object. This key may be built from data in the request and related data in the session.
  • the View Builders must be located the same way.
  • the presentation controller will look up the handler registered for this action and invokes it. This is the simplest possible case, and from it, we conclude that the key used in the look-up operation is the action name associated with the pressed button. However, this is insufficient, since the action handler registered for the “Save” action will handle all “Save” actions regardless of the page in which the source button exists. This means that the presentation controller needs to know the precise context, in which the event happened.
  • Any user interface is actually a visual representation of one of the entities of the system, and each entity in the system is an instance of some type.
  • the actions the user performs may be handled differently according to the entity type. This means that the type of the entity the page displays is part of the context.
  • Search Input In this use-case the user specifies search criteria with which he/she will search for entities.
  • Search This is the use-case in which the user displays the found entities that meet the criteria specified in the search input use-case.
  • the “Save” action is a business action performed on the displayed entity.
  • actions used to navigate the displayed entity. Using such actions, the user can view the entities related to the displayed one.
  • actions that can originate from a user interface.
  • the actions that refresh the page, or the content of its components, when one component is modified, are examples on such actions.
  • a context can be defined using the following attributes:
  • the above-mentioned context is a simple one that may not be sufficient in some cases. In general, we need to know the precise context in which an action was performed.
  • the precise context is defined in terms of the simple context of the current page, and the precise context of the caller page.
  • the caller page is the one from which the user accessed the current page.
  • FIG. 50 illustrates how the action will be retrieved from the factory from a given context.
  • the presentation module will register basic actions and view builders for the most general and known use cases. For instance, for the following context:
  • Entity type Any (i.e. Composite Value).
  • Action type Action.
  • Entity type Currency (a sub-class of Composite Value).
  • Action type Action.
  • ActionHandler ⁇ TargetInformation executeAction(Request request, PageData pageData, SuperActionHandler superAction); BindingsMap getPossibleBindings(PageData pageData, String key, SuperActionHandler superAction); ModifiedKeysInfo getModifiedKeysInfo(PageData pageData, SuperActionHandler superAction); String getActionPositionToUpdate(PageData pageData, SuperActionHandler superAction); ⁇
  • This interface has 4 methods, the more important one is executeAction, and its role is to execute the business logic related to this action. It has three parameters:
  • Target Information object must contain the following attributes:
  • the On-Return Action The name of the action to be executed upon returning from a called page.
  • the On-Return Action Type The type of the action to be executed upon returning from a called page.
  • the View Builder must have the following method:
  • the Presentation Controller will nest calls to the View Builder of a page within the calls to the View Builder of the caller page. To follow is the input of any view builder:
  • the Page Data The page data must contain the data to be presented visually by the view builder.
  • the Renderer The object provided by the Presentation Port to aid the Presentation Controller in rendering the visual user interface.
  • the Request Sometimes the presentation controller may decide that some pages must be updated only, without rendering them entirely. For this reason, it is useful that the View Builder contains the following method that is used in this case:
  • updateKeys The updateKeys method must return a list of the components to be updated.
  • ViewBuilder ⁇ Container buildView(Renderer renderer, Request request, PageData pageData, SuperViewBuilder superViewBuilder); /** * Returns a Set of components to be updated. */ Set updateKeys(Renderer renderer, Request request, PageData pageData, SuperViewBuilder superViewBuilder, Set modifiedKeysInfos, Form form); ⁇
  • the Page Data is the session space reserved for each displayed page or user interface.
  • Page Data objects have identifiers used to access the page data in the session. These identifiers are also used to bind rendered forms to their corresponding Page Data objects.
  • the context of the page must be restored so that the Presentation Controller can locate the appropriate Action Handler that will operate on the found Page Data object. The best way to restore the context is by keeping it in the Page Data object itself.
  • the Page Data object need not keep its whole context. Instead, it only needs to keep a simple context (i.e. use case name, class name, action type and the parameter). The rest of the context information can be found in the caller Page Data object. In fact, if we derive an interface from the Context object, the Page Data object can be thought of as an implementation to this interface.
  • this request either will initiate a new use case, or it will be part of an already initiated one.
  • the request In the former case, the request must contain the simple context of the use case to be initiated. In the latter, the request must provide a reference to the targeted Page Data object and information about the action to be performed.
  • the Presentation Controller When initiating a new use case, the Presentation Controller must create a Page Data object and initialize it by copying the context information to it. For already initiated use cases, the Presentation Controller must only copy the information about the action to be performed from the request to the Page Data object. This will actually modify the context of the Page Data object.
  • the Presentation Controller must locate the proper Action Handler object and invoke it.
  • the Action Handler object will return an Target Information object that determines what the Presentation Controller should do next.
  • the Action Handler may decide to call a new use case, and thus a new Page Data object must be constructed and linked to the Page Data object of the calling use case, and a new Action Handler must be invoked. This means that the Presentation Controller will go into a loop that breaks when the last called Action Handler decides that no further actions should be performed.
  • the generated application automatically provides a web-based user interface.
  • the automated UI generation process takes the metadata (which includes class and process) as input and output visual elements which can be implemented as HTML page or native screen libraries.
  • the generated pages are basic use cases to create new objects, to search for already created objects, and to edit or delete objects.
  • the Palmyra framework automatically generates screen pages used to create, edit, and search the objects of the Entity class types that are defined in the UML model of the target application.
  • the contents of the screens are generated in accordance with the fields and relations of the entity classes by using an algorithm to generate a default layout of the screens.
  • the algorithm generates the layouts based on the structure of the classes and then the view format tool can later be used to re-allocate the visual element if needed.
  • the usage of the visual elements that represent the fields and relations (text boxes, combos, lists, links) and their distribution on the screens might be manually modified later using the View format configuration tool.
  • the modification of the user interface using the View format configuration tool can be
  • the automatically generated screen-pages contain a set of predefined buttons that launch actions like save or delete or search.
  • Process-related actions are also automatically generated in the target application.
  • the action-related treatment is written manually and integrated in the application using the UML generation tool.
  • the manually written code is necessary when the required treatment is not predefined or needed to be enhanced in accordance with a specific need.
  • the Palmyra application provides the users with the Dashboard tool.
  • a dashboard is a tool that helps each application user to know his “To Do” list, and it also provides an indication about the volume of his tasks.
  • the dashboard lists the tasks that a user has to perform. Each user has his own list of tasks depending on his properties.
  • the service provides configuration interface to allow a super user to assign properties and conditions to users. It also guarantees that all tasks are assigned.
  • a dashboard is a set of nodes, each node contains sub nodes. Each node deals with an entity. Entities are displayed according to conditions defined by the administrator of the dashboard. A list of tasks corresponds to each entity. A task is a link to the product use case allowing the achievement of this task.
  • the configuration of the Dashboard is performed at run time.
  • the Input and Output devices are the gateways of machine based communication with other systems.
  • the framework defines the templates that input and output devices should follow. It also defines some input and output devices that support common protocols like FTP, HTTP, Queues, Emails via SMTP, printers and faxes (as output devices).
  • the communications are made using message exchanges.
  • the input devices accept messages generated from other systems to be read by the target application and the output devices send messages generated by the target application.
  • messages arriving to the system should be parsed in order to transfer the message into data represented in a suitable manner for the target application. This is done through two separate modules, the drivers and the mapping.
  • the messages generated by the system depend also on the mapping and drivers in order to transform data from internal representation into an intermediate form and eventually into a message.
  • the Mapping module is a configuration-based format transformer.
  • the configuration defines the source and target type (two entity class types defined in the metadata of the target application) and defines how to transform field-values of the source type into the field values of the target type.
  • the transformation formulas are written using the expressions language defined by the framework.
  • the expressions provide the possibility to make arithmetical operations or to invoke predefined methods on the field-values of the source element.
  • the configuration also provides the possibility to add conditions on the mapping instructions, so that only the instructions with satisfied conditions are executed.
  • mapping configuration is done after the deployment of the application, and the configurations are stored in specific database tables.
  • the mapping module is principally used in Input and Output operations wherein data is converted from internal system representation into intermediate representations used by the drivers and vice-versa.
  • Drivers are used to read from or write into specific formats.
  • In Input devices messages arrive from external systems having a predefined format like XML or XLS or SWIFT. These messages are parsed and converted into intermediate structures defined by the driver.
  • In Output devices messages are generated in order to communicate with other systems. The generated messages also have predefined formats.
  • driver For each format or type of format a driver can be created.
  • the framework defines the template of drivers. It also defines a set of drivers for some formats like XML, fixed text, and swift messages.
  • Some drivers require configurations, especially when the format is flexible.
  • XML is a format but it is also a language so the structure of the tags and elements are defined in a schema at runtime and the configurations are stores in a specific database table.
  • the template that defines the metadata in the framework is called the basic structure. It is considered the core of the Palmyra framework because it is used by all the framework services. All the metadata definitions, whether by means of generated code or by dynamic definition using constraint models or by means of written code, is based on the template defined by the basic structure. By using the predefined template, all the implementing types inherit the functionalities of integrity checking, serialization and de-serialization, and the possibilities of having automatically calculated fields.
  • Basic Structure defines the syntax and basic behavior for all entities in the framework. It is a set of interfaces and classes that adds new features to the basic classes in Java. It is composed of classes that are used in the development of applications. These classes are wrappers for the Java primitives and Java Collection framework.
  • the main package com.palmyra.arch.basicStruct contains several sub-packages. The most important are:
  • This sub-package contains descriptor or meta-data classes, the list of deamons, integrity checkers and domain managers.
  • this sub-package contains the framework customized exceptions.
  • FIG. 33 illustrates the exceptions provided by this package.
  • this sub-package contains the main class GeneralInitializer.java responsible of loading all Palmyra classes when staring the server.
  • this sub-package contains the definition of the interfaces to the different modules in the framework such as: configuration, security, sequence, trace, persistence, translator, lifecycle and file manager; this sub-package also contains a default implementation for each interface.
  • this sub-package defines a list of interfaces allowing the definition, the configuration and the registration of drivers.
  • This package contains the basic constructs in the framework.
  • Classes in this package are the main data blocks used in building applications under the Palmyra framework.
  • These classes implement the interface Value that is the highest abstraction level in the framework. This interface defines the common behavior between all framework objects.
  • the Value interface states that all implementing classes will be Cloneable, Comparable, and Serializable.
  • implementing classes can be constructed from properly formatted human-readable strings and XML documents, and implementing classes can be saved to similar strings and XMLs. Every value is associated with a metadata descriptor class of type Classe that can be used to inspect the definition and nature of this value.
  • Table 13 illustrates the main methods defined in the Value: Interface of Package com.palmyra.arch.basicStruct.data:
  • Each Value object has a Classe instance associated with its Class type, this instance is the description of this value and is provided through the getClasse method.
  • FIG. 32 illustrates the composition of Classe.
  • Each Value object has a default constructor, a string parameter constructor, and a method setValue. This method takes a string and constructs the content of the object from this string.
  • Each Value can provide its content in a readable string format.
  • changing the constraint of a Value is achieved by sub-classing the Value class and creating a new Classe instance and associating it with the new class of the Value.
  • the main methods defined in the Value interface are: methods for content checking, checkIntegrity, and checkRules; methods for getting meta-data information about the object, getClasse, and getField; methods for reading and saving the object in different formats, read, write, setValue, and toString; and naming methods.
  • FIG. 30 illustrates the main methods defined in the Value Interface of Package com.palmyra.arch.basicStruct.data.
  • the Value Interface has three varieties of implementing classes.
  • the SimpleValue classes are a counterpart of Java primitives or wrapper classes, or it can simply be an atomic or simple value.
  • the Collection Value class is a counterpart of the Java collections API, or it can be simply a collection of homogeneous items.
  • the CompositeValue class is the counterpart of a Java class, or it can be simply a container that has items of different types.
  • the SimpleValue class is the abstraction of a single or atomic value in the architecture. That means any instance of this class contains, logically, one value. Subclasses of this class are wrappers of the Java simple data types.
  • FIG. 36 represents the class diagram of SimpleValue type and its subclasses.
  • This subclass is a wrapper Java boolean primitive.
  • the BooleanValue has no special constraints or rules.
  • TABLE 14 illustrates an example listing of Boolean Value. In TABLE 14, two BooleanValue instances are created. The second one is created and has its content set from the string parameter;
  • BooleanValue bv1 new BooleanValue( );
  • BooleanValue bv2 new BooleanValue(“true”); bv1.setValue(true); System.out.println(bv1.getValue( )); System.out.println(bv2); System.out.println(bv2.getClasse( ));
  • This subclass is a wrapper of Java String class.
  • FIG. 34B illustrates an example of StringValue class.
  • the StringValue adds to the Java String object three constraints: the max length of the content string, the mask that the content must apply to, and a list of possible valid values. These constraints are saved in the StringCls metadata instance associated with the StringValue object, and the default StringCls instance has no value for these constraints. To change one or more of these constraints, the programmers must subclass the StringValue and change these constraints in the StringCls instance associated with the new class as shown in TABLE 15:
  • This code defines a new StringValue that has a maximum length of 4.
  • the DateValue class is a wrapper for the Java Date class, the DateValue has two constraints: min and max dates.
  • TABLE 16 illustrates an example of how to create a DateValue object from a data or a string parameter:
  • NumberValue is the super-class of all numeric classes in the framework.
  • the metadata class for this value is NumberCls class. This class defines two constraints on the contents of NumberValue: the minimum and maximum value.
  • this class provides helper methods for conversion between the various numeric classes.
  • Subclasses of NumberValue are IntegerValue, LongValue, FloatValue and DoubleValue. TABLE 17 illustrates an example of how to create different types of NumberValue class from a Double, Integer, or String parameter:
  • DynamicStringValue is a StringValue that can change its StringCls descriptor class at runtime. Instances of DynamicStringValue class can have their StringCls instance set in the constructor or in any part of its lifecycle. TABLE 18 illustrates an example of DynamicStringValueClass:
  • FIG. 31 illustrates the Collection class implemented in com.palmyra.arch.basicStruct.data package.
  • Subclasses of CollectionValue are either a concrete implementation or a filter class that adds a specific feature to an existing concrete implementation.
  • Subclasses of CollectionValue include: ListValue, a collection implementation based on Java List; MapValue (Table 19), a collection implementation based on Java Map (Table 20); ConditionalCollection, a collection that filters the content of a concrete implementation based on a specific condition; and PageByPageCollection, a collection that adds the paging behavior on other implementations (Table 21).
  • the CollectionValue class is the framework counterpart of the Collection concept in Java.
  • a CollectionValue is a wrapper of a collection that has items of type Value.
  • CollectionCls class An instance of the CollectionCls class is associated with every CollectionValue class.
  • the only constraint the CollectionCls imposes on the CollectionValue is the type of its items.
  • Table 22 illustrates an example of ReferencingClass.
US12/839,243 2009-10-14 2010-07-19 Automated Enterprise Software Development Abandoned US20110088011A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/839,243 US20110088011A1 (en) 2009-10-14 2010-07-19 Automated Enterprise Software Development
US13/955,362 US9823900B2 (en) 2009-10-14 2013-07-31 Automated enterprise software development
US15/675,238 US10324690B2 (en) 2009-10-14 2017-08-11 Automated enterprise software development

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25142009P 2009-10-14 2009-10-14
US12/839,243 US20110088011A1 (en) 2009-10-14 2010-07-19 Automated Enterprise Software Development

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/955,362 Continuation US9823900B2 (en) 2009-10-14 2013-07-31 Automated enterprise software development

Publications (1)

Publication Number Publication Date
US20110088011A1 true US20110088011A1 (en) 2011-04-14

Family

ID=43034446

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/839,243 Abandoned US20110088011A1 (en) 2009-10-14 2010-07-19 Automated Enterprise Software Development
US13/955,362 Active 2031-03-12 US9823900B2 (en) 2009-10-14 2013-07-31 Automated enterprise software development
US15/675,238 Active 2030-08-22 US10324690B2 (en) 2009-10-14 2017-08-11 Automated enterprise software development

Family Applications After (2)

Application Number Title Priority Date Filing Date
US13/955,362 Active 2031-03-12 US9823900B2 (en) 2009-10-14 2013-07-31 Automated enterprise software development
US15/675,238 Active 2030-08-22 US10324690B2 (en) 2009-10-14 2017-08-11 Automated enterprise software development

Country Status (12)

Country Link
US (3) US20110088011A1 (pt)
EP (1) EP2488941A1 (pt)
CN (2) CN102656557B (pt)
AU (1) AU2010308132B2 (pt)
BR (1) BR112012008763A2 (pt)
CA (1) CA2777443C (pt)
IL (1) IL219211A (pt)
MA (1) MA33799B1 (pt)
SG (1) SG10201500690RA (pt)
TN (1) TN2012000172A1 (pt)
WO (1) WO2011045634A1 (pt)
ZA (1) ZA201202757B (pt)

Cited By (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100251187A1 (en) * 2009-03-26 2010-09-30 Microsoft Corporation Localized information-preserving levels in model visualization
US20110055719A1 (en) * 2009-08-31 2011-03-03 Kyocera Mita Corporation Operating device and image forming apparatus
US20110131546A1 (en) * 2009-12-01 2011-06-02 International Business Machines Corporation Method and apparatus of specifying the concrete syntax of graphical modeling languages
US20110208700A1 (en) * 2010-02-19 2011-08-25 Jason Laurence Noble Method for carrying out database version control
US20120030120A1 (en) * 2010-07-30 2012-02-02 Nelson Souto Rosa Enforcement of security requirements for a business model
US20120030612A1 (en) * 2010-07-30 2012-02-02 Sap Ag Dynamic property attributes
US20120041990A1 (en) * 2010-08-10 2012-02-16 Sap Ag System and Method for Generating Dashboard Display in Software Applications
US20120047487A1 (en) * 2010-08-23 2012-02-23 Micro Focus (Us), Inc. State driven testing
US20120062574A1 (en) * 2010-09-13 2012-03-15 International Business Machines Corporation Automated recognition of process modeling semantics in flow diagrams
US20120166597A1 (en) * 2010-12-23 2012-06-28 Microsoft Corporation Satisfying application dependencies
US20120174058A1 (en) * 2010-12-29 2012-07-05 Microsoft Corporation Platform for distributed applications
US20120173492A1 (en) * 2010-12-30 2012-07-05 International Business Machines Corporation Automatically detecting the ability to execute processing logic after a parser or validation error
CN102663103A (zh) * 2012-04-13 2012-09-12 北京工业大学 可配置的自动化生成数据库和数据访问的方法
US8356282B1 (en) * 2011-09-13 2013-01-15 Advanced Testing Technologies, Inc. Integrated development environment for the development of electronic signal testing strategies
US20130080887A1 (en) * 2011-09-26 2013-03-28 Zhaorong Hou Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same
US8418072B1 (en) * 2007-12-24 2013-04-09 Emc Corporation UI data model abstraction
US20130097687A1 (en) * 2011-10-14 2013-04-18 Open Text S.A. System and method for secure content sharing and synchronization
US20130203481A1 (en) * 2012-02-08 2013-08-08 Wms Gaming, Inc. Dynamic configuration of wagering games
US8539440B1 (en) * 2012-03-19 2013-09-17 National Instruments Corporation Interactively designing a hardware implementation of a graphical program
US8543981B2 (en) 2010-08-23 2013-09-24 Micro Focus (Us), Inc. State driven test editor
US20130298061A1 (en) * 2012-04-10 2013-11-07 Torrential Data System and method for content management
WO2013148651A3 (en) * 2012-03-28 2014-01-03 Bmc Software, Inc. Automated blueprint assembly for assembling an application
US20140025714A1 (en) * 2012-01-08 2014-01-23 Nick Alex Lieven Reyntjens Method and Apparatus for Realizing a Dynamically Typed File or Object System Enabling the User to Perform Calculations Over the Properties Associated with the Files or Objects in the System
WO2014014879A3 (en) * 2012-07-17 2014-03-13 Good Technology Corporation Systems and methods for facilitating service provision between applications
US20140101634A1 (en) * 2011-10-10 2014-04-10 Telefonaktiebolaget L M Ericsson (Publ) Ontology-based user requirement decomposition for component selection for service provision
US20140109037A1 (en) * 2009-10-14 2014-04-17 Vermeg Sarl Automated Enterprise Software Development
US20140115559A1 (en) * 2012-10-23 2014-04-24 International Business Machines Corporation Maintaining integrity of output of code generators
US20140156603A1 (en) * 2012-12-03 2014-06-05 State Grid Corporation Of China Method and an apparatus for splitting and recovering data in a power system
US20140173554A1 (en) * 2014-02-24 2014-06-19 Arunav Gupta Platform and a method for development of a software application
US20140173574A1 (en) * 2012-12-19 2014-06-19 International Business Machines Corporation Compilation dependency resolution from a diverse group of candidate resources
US20140181783A1 (en) * 2012-12-21 2014-06-26 Christel Rueger Component integration by distribution of schema definition on heterogenous platforms
US20140278818A1 (en) * 2013-03-15 2014-09-18 Bmc Software, Inc. Business development configuration
US20140325472A1 (en) * 2013-04-29 2014-10-30 Peter Fige Providing Code, Code Generator and Software Development Environment
US20140359792A1 (en) * 2013-06-04 2014-12-04 Sap Ag Public Exposed Objects
US20140358272A1 (en) * 2011-12-02 2014-12-04 Aesynt Topco B.V. Method For Powdered Drug Reconstitution
US8949824B2 (en) 2012-09-28 2015-02-03 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US20150074648A1 (en) * 2012-04-23 2015-03-12 Dekel Tal Software defect verification
US20150089334A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Workbook composer
US20150113020A1 (en) * 2011-09-23 2015-04-23 The Mathworks, Inc. Requirements framework
US9021420B2 (en) * 2012-03-02 2015-04-28 Xerox Corporation Deployment of business processes in service-oriented architecture environments
US9027001B2 (en) 2012-07-10 2015-05-05 Honeywell International Inc. Systems and methods for verifying expression folding
WO2015092519A1 (en) * 2013-12-16 2015-06-25 Kronosis Hyper Technologies Private Limited Systems and methods for developing application programs
US20150227347A1 (en) * 2014-02-10 2015-08-13 Fujitsu Limited Method for supporting product design and product design support apparatus
US20150227588A1 (en) * 2014-02-07 2015-08-13 Quixey, Inc. Rules-Based Generation of Search Results
US20150261416A1 (en) * 2014-03-17 2015-09-17 Sharp Laboratories Of America, Inc. Rules Based User Interface Architecture
US9152385B2 (en) * 2012-02-22 2015-10-06 GM Global Technology Operations LLC Systems and methods for generating high-quality formal executable software feature requirements
US9164746B2 (en) * 2012-10-31 2015-10-20 Wal-Mart Stores, Inc. Automatic topology extraction and plotting with correlation to real time analytic data
US9235491B2 (en) 2012-09-28 2016-01-12 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US20160055126A1 (en) * 2014-08-19 2016-02-25 Bank Of America Corporation User interfaces generated by a workflow engine
US20160065473A1 (en) * 2014-09-02 2016-03-03 Brocade Communications Systems, Inc. Persistent storage in a switch
US20160092425A1 (en) * 2014-09-25 2016-03-31 Oracle International Corporation User interface component autowiring
US20160092178A1 (en) * 2014-09-25 2016-03-31 International Business Machines Corporation Method and system for model driven development
CN105468244A (zh) * 2015-12-11 2016-04-06 俺朋堂(北京)网络科技有限公司 一种多人聊天页面实现方法
US9317269B2 (en) 2012-09-28 2016-04-19 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9361209B2 (en) 2012-05-25 2016-06-07 International Business Machines Corporation Capturing domain validations and domain element initializations
US9424115B2 (en) 2013-06-07 2016-08-23 Successfactors, Inc. Analysis engine for automatically analyzing and linking error logs
US20160246835A1 (en) * 2015-02-23 2016-08-25 Red Hat, Inc. Creating federated data source connectors
US20160246705A1 (en) * 2015-02-23 2016-08-25 International Business Machines Corporation Data fabrication based on test requirements
US9477581B2 (en) 2006-03-15 2016-10-25 Jpmorgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications
WO2016181368A1 (es) * 2015-05-13 2016-11-17 Huebra Nadia Analía Método implementado por computador que expone aplicaciones tipo software a partir de especificaciones de diseño
US9519879B1 (en) * 2012-08-24 2016-12-13 Tibco Software Inc. Just in time compilation (JIT) for business process execution
US20160378437A1 (en) * 2015-06-23 2016-12-29 Open Text S.A. Compositional entity modeling systems and methods
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
US9569274B2 (en) 2012-10-16 2017-02-14 Microsoft Technology Licensing, Llc Distributed application optimization using service groups
US9608833B2 (en) 2010-06-08 2017-03-28 Brocade Communications Systems, Inc. Supporting multiple multicast trees in trill networks
US20170090889A1 (en) * 2015-09-30 2017-03-30 Semmle Limited Hierarchical dependency analysis of source code
US9628293B2 (en) 2010-06-08 2017-04-18 Brocade Communications Systems, Inc. Network layer multicasting in trill networks
US9628407B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
US9628336B2 (en) 2010-05-03 2017-04-18 Brocade Communications Systems, Inc. Virtual cluster switching
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9699117B2 (en) 2011-11-08 2017-07-04 Brocade Communications Systems, Inc. Integrated fibre channel support in an ethernet fabric switch
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
US9703532B1 (en) * 2014-09-30 2017-07-11 The Mathworks, Inc. Dynamically updating class instances based on class definition changes
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
CN107015842A (zh) * 2017-03-31 2017-08-04 武汉票据交易中心有限公司 一种服务器端程序编译和发布的管理方法及系统
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US9774543B2 (en) 2013-01-11 2017-09-26 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US9807017B2 (en) 2013-01-11 2017-10-31 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US9806906B2 (en) 2010-06-08 2017-10-31 Brocade Communications Systems, Inc. Flooding packets on a per-virtual-network basis
US9848040B2 (en) 2010-06-07 2017-12-19 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US9871676B2 (en) 2013-03-15 2018-01-16 Brocade Communications Systems LLC Scalable gateways for a fabric switch
US9887916B2 (en) 2012-03-22 2018-02-06 Brocade Communications Systems LLC Overlay tunnel in a fabric switch
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
US20180088914A1 (en) * 2016-09-28 2018-03-29 Honda Motor Co., Ltd. Method for supporting program creation and apparatus for supporting program creation
US20180089602A1 (en) * 2016-09-29 2018-03-29 Sap Se Transformation of process model specification between formats
US20180096301A1 (en) * 2016-09-30 2018-04-05 Mastercard International Incorporated Systems and methods for generating customized reports based on operational stage rules
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
WO2018075548A1 (en) * 2016-10-17 2018-04-26 Sd Squared Limited Systems and method for creating software from library and custom components
CN107977315A (zh) * 2017-12-07 2018-05-01 中国航发控制系统研究所 一种基于Bootloader方式的嵌入式软件目标码单元测试方法
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
US20180189082A1 (en) * 2015-07-06 2018-07-05 Zhaoqi Zhang Application program management method for multiple hardware platforms
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US10043153B2 (en) 2014-07-24 2018-08-07 International Business Machines Corporation Pattern-based product identification with feedback
US10048946B2 (en) * 2016-03-24 2018-08-14 Microsoft Technology Licensing, Llc Converting visual diagrams into code
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US10075394B2 (en) 2012-11-16 2018-09-11 Brocade Communications Systems LLC Virtual link aggregations across multiple fabric switches
US10078818B2 (en) * 2016-12-20 2018-09-18 Sap Se Work routine management for collaborative platforms
US10133953B2 (en) * 2017-01-26 2018-11-20 Nice Ltd. System and method for enabling graphic-based interoperability with a run-time application
US20180336503A1 (en) * 2017-05-18 2018-11-22 International Business Machines Corporation Model-driven and automated system for shared resource solution design
US10164883B2 (en) 2011-11-10 2018-12-25 Avago Technologies International Sales Pte. Limited System and method for flow management in software-defined networks
US10169004B2 (en) 2016-05-04 2019-01-01 Open Text Sa Ulc Application development and extensibility/customization using entity modeling systems and methods
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US10248300B2 (en) 2016-05-16 2019-04-02 Sap Se Polymorph rendering for collaborative platforms
US10261763B2 (en) * 2016-12-13 2019-04-16 Palantir Technologies Inc. Extensible data transformation authoring and validation system
WO2019072110A1 (zh) * 2017-10-11 2019-04-18 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
US10277464B2 (en) 2012-05-22 2019-04-30 Arris Enterprises Llc Client auto-configuration in a multi-switch link aggregation
US10282171B2 (en) 2015-03-30 2019-05-07 Hewlett Packard Enterprise Development Lp Application analyzer for cloud computing
US10289630B2 (en) * 2016-02-05 2019-05-14 Accenture Global Solutions Limited Integrated developer workflow for data visualization development
US10289734B2 (en) * 2015-09-18 2019-05-14 Samsung Electronics Co., Ltd. Entity-type search system
US10296307B2 (en) * 2017-05-16 2019-05-21 International Business Machines Corporation Method and system for template extraction based on source code similarity
US10296618B1 (en) * 2013-05-20 2019-05-21 EMC IP Holding Company LLC Storage system query mechanism and techniques
CN110083466A (zh) * 2019-04-28 2019-08-02 百度在线网络技术(北京)有限公司 一种小程序的数据传输方法和装置
US10372427B2 (en) * 2017-11-21 2019-08-06 Hydata Open platform for providing ability to end users
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US10521223B1 (en) * 2017-08-22 2019-12-31 Wells Fargo Bank, N.A. Systems and methods of a metadata orchestrator augmenting application development
US20200019387A1 (en) * 2018-07-11 2020-01-16 Accenture Global Solutions Limited Managing software components for software application development
US10540167B2 (en) 2017-01-26 2020-01-21 Nice Ltd. Image based method and system for building object model and application states comparison and graphic-based interoperability with an application
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
CN110941559A (zh) * 2019-11-27 2020-03-31 北京搜狐新媒体信息技术有限公司 自动测试方法及系统
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
CN110991156A (zh) * 2019-11-20 2020-04-10 哈尔滨工程大学 一种基于船舶数值虚拟试验的报告自动生成方法
US10642720B2 (en) * 2016-09-15 2020-05-05 Talend, Inc. Test case generator built into data-integration workflow editor
CN111191795A (zh) * 2019-12-31 2020-05-22 第四范式(北京)技术有限公司 一种训练机器学习模型的方法、装置及系统
EP3668007A1 (en) * 2018-12-14 2020-06-17 Juniper Networks, Inc. System for identifying and assisting in the creation and implementation of a network service configuration using hidden markov models (hmms)
CN111352627A (zh) * 2020-02-27 2020-06-30 政采云有限公司 一种页面骨架屏生成方法、装置、设备及可读存储介质
US10698803B1 (en) * 2019-01-09 2020-06-30 Bank Of America Corporation Computer code test script generating tool using visual inputs
US10705800B2 (en) * 2017-11-30 2020-07-07 The Mathworks, Inc. Systems and methods for evaluating compliance of implementation code with a software architecture specification
US10726036B2 (en) 2016-05-16 2020-07-28 Sap Se Source service mapping for collaborative platforms
CN111522734A (zh) * 2020-03-17 2020-08-11 上海云励科技有限公司 软件功能测试方法、装置、电子设备及存储介质
US10740123B2 (en) 2017-01-26 2020-08-11 Nice Ltd. Method and system for accessing table content in a digital image of the table
CN111522728A (zh) * 2019-12-31 2020-08-11 支付宝实验室(新加坡)有限公司 自动化测试用例的生成方法、电子设备及可读存储介质
JP2020126501A (ja) * 2019-02-06 2020-08-20 キヤノンマーケティングジャパン株式会社 プログラム、情報処理装置及び処理方法
CN111831365A (zh) * 2020-07-29 2020-10-27 中国平安财产保险股份有限公司 接口路由转发方法、系统、计算机设备及可读存储介质
US10901705B2 (en) * 2012-03-19 2021-01-26 Enterpriseweb Llc System for self modification
US10915422B2 (en) 2017-12-13 2021-02-09 The Mathworks, Inc. Automatic setting of multitasking configurations for a code-checking system
CN112463147A (zh) * 2020-11-26 2021-03-09 杭州览众数据科技有限公司 一种针对通用化模型客制化需求开发框架
US10963272B1 (en) * 2020-07-09 2021-03-30 Coupang Corp. Systems and methods for deploying low-application-impact user interfaces
US10983988B2 (en) 2018-12-27 2021-04-20 Palantir Technologies Inc. Data pipeline creation system and method
US10990898B2 (en) 2017-05-18 2021-04-27 International Business Machines Corporation Automatic rule learning in shared resource solution design
CN112764743A (zh) * 2021-01-21 2021-05-07 潘胜怀 一种基于数据模型驱动自动生成软件的方法
US11003441B2 (en) * 2018-01-09 2021-05-11 Justdo, Inc. Scripting language computer program modification methodology, system and software
US11048979B1 (en) 2018-11-23 2021-06-29 Amazon Technologies, Inc. Active learning loop-based data labeling service
US11087340B1 (en) * 2013-12-17 2021-08-10 EMC IP Holding Company LLC Systems and methods for configuring converged infrastructure components
CN113282283A (zh) * 2021-06-11 2021-08-20 北京拓课网络科技有限公司 一种操作数据库表的方法、装置及电子设备
CN113448572A (zh) * 2021-02-26 2021-09-28 北京新氧科技有限公司 软件项目开发方法及装置、计算机存储介质、计算机设备
CN113535570A (zh) * 2021-07-23 2021-10-22 北京奇艺世纪科技有限公司 一种测试用例的处理方法、装置及电子设备
CN113655996A (zh) * 2021-08-04 2021-11-16 北京航空航天大学 一种基于需求模型的企业级系统生成方法
US11196728B1 (en) * 2021-03-29 2021-12-07 Fmr Llc Caching login sessions to access a software testing environment
US11200069B1 (en) * 2020-08-21 2021-12-14 Honeywell International Inc. Systems and methods for generating a software application
US20220019428A1 (en) * 2020-05-22 2022-01-20 Paypal, Inc. Modification of application functionality using object-oriented configuration data
US11256182B2 (en) 2017-04-26 2022-02-22 Carl Zeiss Smt Gmbh Process for cleaning optical elements for the ultraviolet wavelength range
US11281638B2 (en) 2020-04-22 2022-03-22 Capital One Services, Llc Consolidating multiple databases into a single or a smaller number of databases
US11295273B2 (en) 2016-05-16 2022-04-05 Sap Se Normalized object exposure for collaborative platforms
US11314489B1 (en) 2021-04-16 2022-04-26 27 Software U.S. Inc. Automated authoring of software solutions by first analyzing and resolving anomalies in a data model
US20220156393A1 (en) * 2020-11-19 2022-05-19 Tetrate.io Repeatable NGAC Policy Class Structure
US20220156049A1 (en) * 2019-09-24 2022-05-19 Elemental Reasoning, LLC System and method for source code generation
CN114553978A (zh) * 2022-04-24 2022-05-27 深圳市城市交通规划设计研究中心股份有限公司 一种传感器报文数据处理方法、电子设备及存储介质
CN114661015A (zh) * 2022-05-17 2022-06-24 江苏邑文微电子科技有限公司 半导体工艺机台的自由控制方法与装置
US11409505B1 (en) 2021-04-16 2022-08-09 27 Software U.S. Inc. Automated authoring of software solutions from a data model with related patterns
US11468524B2 (en) 2019-04-12 2022-10-11 Noodle Analytics, Inc. Reducing the cost of electrical energy in a manufacturing plant
CN115237386A (zh) * 2022-09-19 2022-10-25 杭州实在智能科技有限公司 用于大型复杂Windows原生桌面开发的方法及系统
US11487595B2 (en) * 2018-08-02 2022-11-01 Nippon Telegraph And Telephone Corporation API adapter creation device, API adapter creation method, and API adapter creation program
US20230177751A1 (en) * 2021-12-03 2023-06-08 Adaptam Inc. Method and system for improved visualization of charts in spreadsheets
US11693652B2 (en) 2021-04-16 2023-07-04 27 Software U.S. Inc. Automated authoring of software solutions from a data model
US11720330B2 (en) 2016-10-17 2023-08-08 Engineer.ai Corp. Application development involving instant protoyping
US11790110B2 (en) 2021-02-09 2023-10-17 Nice Ltd. System and method for preventing sensitive information from being recorded
CN116974558A (zh) * 2023-06-13 2023-10-31 天翼爱音乐文化科技有限公司 一种营销计费活动h5页面开发平台及开发方法

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030577A1 (en) * 2010-07-30 2012-02-02 International Business Machines Corporation System and method for data-driven web page navigation control
US8893075B2 (en) * 2011-01-26 2014-11-18 International Business Machines Corporation Screen use diagram-based representation, development and testing system and method
US8935664B2 (en) * 2011-10-05 2015-01-13 International Business Machines Corporation Method and apparatus to determine rules implementation decision
CN103365646B (zh) * 2012-04-11 2017-02-08 怡丰联合(北京)科技有限责任公司 基于脚本引擎的表单自定义、逻辑定义及处理方法
AU2013249154B2 (en) 2012-04-18 2015-12-10 Nicira, Inc. Exchange of network state information between forwarding elements
US9703679B2 (en) 2013-03-14 2017-07-11 International Business Machines Corporation Probationary software tests
US9738403B1 (en) * 2013-12-30 2017-08-22 Terra Bella Technologies Inc. Parallel calculation of satellite access windows and native program implementation framework
WO2016144546A2 (en) * 2015-03-06 2016-09-15 Saggezza Inc. Systems and methods for generating data visualization applications
US9672010B2 (en) * 2015-07-29 2017-06-06 The Boeing Company Unified modeling language (UML) analysis system and method
US10282273B1 (en) * 2015-08-06 2019-05-07 Mesosphere, Inc. Application monitoring using workload metadata
EP3136242A1 (en) 2015-08-27 2017-03-01 Google, Inc. Systems and methods for device compatibility testing and reporting
US10204122B2 (en) * 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US10534633B2 (en) * 2015-10-12 2020-01-14 Computational Systems, Inc. Extensible asset classes in a monitoring system having a common platform
CA3003395C (en) * 2015-10-30 2020-08-04 Intuit Inc. Managing synchronization issues between profile stores and sources of truth
US9891890B2 (en) * 2015-11-09 2018-02-13 Microsoft Technology Licensing, Llc Generation of an application from template
CN105320776B (zh) * 2015-11-12 2019-02-05 广州优识科技资讯股份有限公司 一种基于WebApp的数据处理方法和系统
CN105512304B (zh) * 2015-12-11 2019-03-26 西安道同信息科技有限公司 在线生成互联网应用方法和系统集成方法及支撑平台
US20190138282A1 (en) * 2016-03-25 2019-05-09 Pablo Daniel Palma Keller System and methods for development of visual business applications
US10685007B2 (en) * 2016-03-29 2020-06-16 Sap Se Table content transport and delivery
US10162614B2 (en) * 2016-04-23 2018-12-25 International Business Machines Corporation Warning data management with respect to a compilation phase
US10169191B2 (en) * 2016-04-23 2019-01-01 International Business Machines Corporation Warning data management with respect to a development phase
US10977017B2 (en) 2016-04-23 2021-04-13 International Business Machines Corporation Warning data management for distributed application development
US10831637B2 (en) 2016-04-23 2020-11-10 International Business Machines Corporation Warning data management with respect to an execution phase
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
US10114616B2 (en) * 2016-08-04 2018-10-30 International Business Machines Corporation Discovery for pattern utilization for application transformation and migration into the cloud pattern
US10565095B2 (en) * 2016-12-15 2020-02-18 Syntel, Inc. Hybrid testing automation engine
US10209985B2 (en) * 2017-05-25 2019-02-19 Sap Se Descriptor-transformer framework in an integration platform
US11137988B2 (en) * 2017-06-02 2021-10-05 Mitsubishi Electric Corporation Program code generation device and computer readable medium
CN108984170B (zh) * 2017-06-02 2021-10-22 创新先进技术有限公司 H5页面多语言渲染方法及装置
US10606586B2 (en) 2017-08-01 2020-03-31 Accenture Global Solutions Limited Application architecture generation
US10360025B2 (en) * 2017-09-08 2019-07-23 Accenture Global Solutions Limited Infrastructure instantiation, collaboration, and validation architecture for serverless execution frameworks
US10732966B2 (en) * 2017-09-08 2020-08-04 Devfactory Innovations Fz-Llc Library model addition
CN107729019A (zh) * 2017-10-09 2018-02-23 平安普惠企业管理有限公司 版本部署的方法、装置、设备和计算机存储介质
CN108287874B (zh) * 2017-12-19 2020-07-31 中国科学院声学研究所 一种db2数据库管理方法及装置
CN110083339A (zh) * 2018-01-26 2019-08-02 拜椰特(上海)软件技术有限公司 一种新型计算机编程语言
US10402320B1 (en) * 2018-02-27 2019-09-03 Oracle International Corporation Verifying the validity of a transition from a current tail template to a new tail template for a fused object
CN108718364A (zh) * 2018-05-16 2018-10-30 北京小米移动软件有限公司 一种显示方法、显示装置和计算机可读存储介质
EP3582125B1 (en) * 2018-06-11 2022-08-03 ABB Schweiz AG System and methods with reduced complexity in the integration of exposed information models with applications
US10726052B2 (en) 2018-07-03 2020-07-28 Sap Se Path generation and selection tool for database objects
US10671802B2 (en) * 2018-07-24 2020-06-02 Red Hat, Inc. Tiered variables for a graphical user interface
CN109240735B (zh) * 2018-07-27 2021-09-24 平安科技(深圳)有限公司 需求回滚方案填写方法、装置、终端及可读存储介质
CN109614091A (zh) * 2018-10-09 2019-04-12 中国平安人寿保险股份有限公司 代码自动生成方法、装置、电子设备及存储介质
CN109409032A (zh) * 2018-10-24 2019-03-01 山东超越数控电子股份有限公司 一种安全关键系统的系统内核安全判断方法
CN111176640B (zh) * 2018-11-13 2022-05-13 武汉斗鱼网络科技有限公司 Android工程中布局层级展现方法、存储介质、设备及系统
US11144549B2 (en) 2018-12-14 2021-10-12 Sap Se Dynamic generation of join statements for database operations
US10901987B2 (en) * 2018-12-14 2021-01-26 Sap Se Dynamic automatic generation of database views
CN110046004B (zh) * 2019-03-29 2022-09-02 北京奇艺世纪科技有限公司 一种适配自动引用计数arc特性的方法、装置及电子设备
US10936309B2 (en) * 2019-04-03 2021-03-02 Accenture Global Solutions Limited Development project blueprint and package generation
US11681504B1 (en) 2019-04-26 2023-06-20 Opturo, Inc. Automated application builder using configuration files
US10628133B1 (en) * 2019-05-09 2020-04-21 Rulai, Inc. Console and method for developing a virtual agent
CN110209380B (zh) * 2019-05-30 2020-11-03 上海直真君智科技有限公司 一种面向大数据异构模型的统一动态元数据处理方法
US10853062B1 (en) 2019-07-02 2020-12-01 Holtworks, LLC Hyperpiler
US10942709B2 (en) 2019-07-02 2021-03-09 Holtworks, LLC Hyperpiler
CN110442331B (zh) * 2019-08-11 2023-12-26 西藏宁算科技集团有限公司 一种自动化搭建代码框架的方法及系统
EP3786800B1 (en) * 2019-08-28 2023-04-26 Tata Consultancy Services Limited Method and system for generating model driven applications using artificial intelligence
DE102020124080A1 (de) * 2019-09-17 2021-03-18 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur inkrementellen Codegenerierung
US11188311B2 (en) 2019-09-30 2021-11-30 Microsoft Technology Licensing, Llc Automated software generation through mutation and artificial selection
US11640282B2 (en) * 2019-10-24 2023-05-02 Here Global B.V. Method, apparatus, and system for providing a broker for data modeling and code generation
US11526791B2 (en) 2019-11-11 2022-12-13 International Business Machines Corporation Methods and systems for diverse instance generation in artificial intelligence planning
CN113032004A (zh) * 2019-12-09 2021-06-25 伊姆西Ip控股有限责任公司 在开发环境中管理开发作业的方法、设备和程序产品
US11100009B2 (en) 2020-01-03 2021-08-24 Bank Of America Corporation Intelligent detection and ejection of unused application components
CN111427567B (zh) * 2020-03-20 2023-08-18 杭州涂鸦信息技术有限公司 一种智能产品快速生成方法及其系统和设备
US11782685B2 (en) 2020-06-17 2023-10-10 Bank Of America Corporation Software code vectorization converter
US11573775B2 (en) 2020-06-17 2023-02-07 Bank Of America Corporation Software code converter for resolving redundancy during code development
US11347500B2 (en) 2020-06-17 2022-05-31 Bank Of America Corporation Software code converter for resolving conflicts during code development
CN111767091B (zh) * 2020-07-01 2023-12-05 百度在线网络技术(北京)有限公司 小程序获取用户信息的方法、装置、电子设备和存储介质
US20220050703A1 (en) * 2020-08-13 2022-02-17 Peter B. Woodhull Autonomous computer system deployment to a virtualized environment
US11609772B2 (en) * 2020-09-18 2023-03-21 Red Hat, Inc. Dynamically generating guided tours for software
WO2022098253A1 (ru) 2020-11-09 2022-05-12 Общество С Ограниченной Ответственностью "Крафт Системз" Система и способ создания и исполнения высоко масштабируемых облачных приложений
WO2022115030A1 (en) * 2020-11-24 2022-06-02 Gney Software Pte Ltd Dynamic enterprise application platform
CN112596721B (zh) * 2020-12-14 2023-10-03 中国航发控制系统研究所 一种安全关键软件建模语言安全子集的管理方法
CN113204329A (zh) * 2021-03-19 2021-08-03 浙江华云信息科技有限公司 统一数据模型驱动业务应用的控制方法及其应用系统
US11567738B2 (en) 2021-04-15 2023-01-31 Red Hat, Inc. Code generator for creating a unified data model for multiple language specifications
TWI801902B (zh) * 2021-06-16 2023-05-11 德制國際有限公司 使用圖形化介面編輯自動化設備作業流程之方法
US11782682B2 (en) * 2021-07-13 2023-10-10 The Math Works, Inc. Providing metric data for patterns usable in a modeling environment
CN113723063B (zh) * 2021-09-02 2023-06-13 四川启睿克科技有限公司 一种rtf转html并在pdf文件实现效果的方法
US11947931B2 (en) * 2021-10-12 2024-04-02 Sap Se Generic factory class
CN114048722B (zh) * 2021-11-23 2022-05-24 北京三维天地科技股份有限公司 一种电子报表模板设计及动态渲染的方法及系统
US20230185544A1 (en) * 2021-12-14 2023-06-15 Google Llc User-defined Secure Remote Code Execution from No-code Platforms
CN114971437B (zh) * 2022-08-02 2022-10-21 中招国际招标有限公司 一种建筑工程项目风险评估系统和方法
CN115391289B (zh) * 2022-08-15 2023-08-11 广州市玄武无线科技股份有限公司 一种包含文件信息的目录结构生成方法及装置
CN117251143B (zh) * 2023-11-14 2024-02-06 武汉万云网络科技有限公司 一种应用系统、构建方法及其可视化开发工具的实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018627A (en) * 1997-09-22 2000-01-25 Unisys Corp. Tool-independent system for application building in an object oriented development environment with data stored in repository in OMG compliant UML representation
US20020010909A1 (en) * 1999-10-05 2002-01-24 Dietrich Charisius Methods and systems for finding and displaying linked objects
US20020103869A1 (en) * 2000-07-07 2002-08-01 Philip Goatly Standards development package method and system
US6557100B1 (en) * 1999-10-21 2003-04-29 International Business Machines Corporation Fastpath redeployment of EJBs
US20080295068A1 (en) * 2002-02-12 2008-11-27 Sandpiper Software, Inc. Method and apparatus for frame-based knowledge representation in the unified modeling language (uml)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010017632A1 (en) * 1999-08-05 2001-08-30 Dina Goren-Bar Method for computer operation by an intelligent, user adaptive interface
US7085928B1 (en) * 2000-03-31 2006-08-01 Cigital System and method for defending against malicious software
US6934933B2 (en) * 2000-08-14 2005-08-23 Twin Communications Of America, Inc. Portable operating environment for information devices
US7000219B2 (en) * 2000-11-03 2006-02-14 Wilde Technologies Limited Software development process
US20030233631A1 (en) * 2002-06-13 2003-12-18 Ambrose Curry Web services development method
US7506302B2 (en) * 2002-10-22 2009-03-17 The Boeing Company System and methods for business process modeling
US20050071805A1 (en) * 2003-09-30 2005-03-31 Johannes Lauterbach Developing applications using a metamodel
WO2005043418A1 (ja) * 2003-10-31 2005-05-12 Fujitsu Limited 設計支援装置、設計支援方法、設計支援プログラムおよび記録媒体
JP4100630B2 (ja) * 2004-05-14 2008-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション Uml設計方法
US8209657B1 (en) * 2006-04-03 2012-06-26 Bae Systems Information And Electronic Systems Integration Inc. System design combining functional decomposition and object-oriented programming
CN1928816A (zh) * 2006-09-26 2007-03-14 武汉大学 嵌入式系统软件的模型驱动与构件化开发方法
US8533660B2 (en) * 2007-11-21 2013-09-10 Sap Ag Annotation of models for model-driven engineering
KR100995592B1 (ko) * 2008-12-02 2010-11-22 김우열 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법
CN101477461A (zh) * 2009-02-10 2009-07-08 腾讯科技(深圳)有限公司 应用程序界面动态生成装置及方法
US20110088011A1 (en) * 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
US8752003B2 (en) * 2010-05-03 2014-06-10 Telefonaktiebolaget L M Ericsson (Publ) Model driven approach for availability management framework (AMF) configuration generation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018627A (en) * 1997-09-22 2000-01-25 Unisys Corp. Tool-independent system for application building in an object oriented development environment with data stored in repository in OMG compliant UML representation
US20020010909A1 (en) * 1999-10-05 2002-01-24 Dietrich Charisius Methods and systems for finding and displaying linked objects
US6557100B1 (en) * 1999-10-21 2003-04-29 International Business Machines Corporation Fastpath redeployment of EJBs
US20020103869A1 (en) * 2000-07-07 2002-08-01 Philip Goatly Standards development package method and system
US20080295068A1 (en) * 2002-02-12 2008-11-27 Sandpiper Software, Inc. Method and apparatus for frame-based knowledge representation in the unified modeling language (uml)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dupuy-Chessa et al ("Validation of UML models thanks to Z and Lustre"), 3/16/2001 *

Cited By (285)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477581B2 (en) 2006-03-15 2016-10-25 Jpmorgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications
US8418072B1 (en) * 2007-12-24 2013-04-09 Emc Corporation UI data model abstraction
US8578326B2 (en) * 2009-03-26 2013-11-05 Microsoft Corporation Localized information-preserving levels in model visualization
US20100251187A1 (en) * 2009-03-26 2010-09-30 Microsoft Corporation Localized information-preserving levels in model visualization
US20110055719A1 (en) * 2009-08-31 2011-03-03 Kyocera Mita Corporation Operating device and image forming apparatus
US9285987B2 (en) * 2009-08-31 2016-03-15 Kyocera Mita Corporation Operating device and image forming apparatus with display format receiver for receiving instructions from a user for selecting a display format
US9823900B2 (en) * 2009-10-14 2017-11-21 Vermeg Services Sarl Automated enterprise software development
US20140109037A1 (en) * 2009-10-14 2014-04-17 Vermeg Sarl Automated Enterprise Software Development
US10324690B2 (en) 2009-10-14 2019-06-18 Vermeg Services Sarl Automated enterprise software development
US20110131546A1 (en) * 2009-12-01 2011-06-02 International Business Machines Corporation Method and apparatus of specifying the concrete syntax of graphical modeling languages
US8966437B2 (en) * 2009-12-01 2015-02-24 International Business Machines Corporation Method and apparatus of specifying the concrete syntax of graphical modeling languages
US8527460B2 (en) * 2010-02-19 2013-09-03 Jason Laurence Noble Method for carrying out database version control
US20110208700A1 (en) * 2010-02-19 2011-08-25 Jason Laurence Noble Method for carrying out database version control
US10673703B2 (en) 2010-05-03 2020-06-02 Avago Technologies International Sales Pte. Limited Fabric switching
US9628336B2 (en) 2010-05-03 2017-04-18 Brocade Communications Systems, Inc. Virtual cluster switching
US9942173B2 (en) 2010-05-28 2018-04-10 Brocade Communications System Llc Distributed configuration management for virtual cluster switching
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US11438219B2 (en) 2010-06-07 2022-09-06 Avago Technologies International Sales Pte. Limited Advanced link tracking for virtual cluster switching
US11757705B2 (en) 2010-06-07 2023-09-12 Avago Technologies International Sales Pte. Limited Advanced link tracking for virtual cluster switching
US10419276B2 (en) 2010-06-07 2019-09-17 Avago Technologies International Sales Pte. Limited Advanced link tracking for virtual cluster switching
US9848040B2 (en) 2010-06-07 2017-12-19 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US10924333B2 (en) 2010-06-07 2021-02-16 Avago Technologies International Sales Pte. Limited Advanced link tracking for virtual cluster switching
US9608833B2 (en) 2010-06-08 2017-03-28 Brocade Communications Systems, Inc. Supporting multiple multicast trees in trill networks
US9628293B2 (en) 2010-06-08 2017-04-18 Brocade Communications Systems, Inc. Network layer multicasting in trill networks
US9806906B2 (en) 2010-06-08 2017-10-31 Brocade Communications Systems, Inc. Flooding packets on a per-virtual-network basis
US10348643B2 (en) 2010-07-16 2019-07-09 Avago Technologies International Sales Pte. Limited System and method for network configuration
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US20120030612A1 (en) * 2010-07-30 2012-02-02 Sap Ag Dynamic property attributes
US20120030120A1 (en) * 2010-07-30 2012-02-02 Nelson Souto Rosa Enforcement of security requirements for a business model
US8732094B2 (en) * 2010-07-30 2014-05-20 Hewlett-Packard Development Company, L.P. Enforcement of security requirements for a business model
US20120041990A1 (en) * 2010-08-10 2012-02-16 Sap Ag System and Method for Generating Dashboard Display in Software Applications
US8543981B2 (en) 2010-08-23 2013-09-24 Micro Focus (Us), Inc. State driven test editor
US8543980B2 (en) * 2010-08-23 2013-09-24 Micro Focus (Us), Inc. State driven testing
US8543984B2 (en) 2010-08-23 2013-09-24 Micro Focus (Us), Inc. Architecture for state driven testing
US20120047487A1 (en) * 2010-08-23 2012-02-23 Micro Focus (Us), Inc. State driven testing
US9087236B2 (en) * 2010-09-13 2015-07-21 International Business Machines Corporation Automated recognition of process modeling semantics in flow diagrams
US20120062574A1 (en) * 2010-09-13 2012-03-15 International Business Machines Corporation Automated recognition of process modeling semantics in flow diagrams
US9977665B2 (en) 2010-12-23 2018-05-22 Microsoft Technology Licensing, Llc Satisfying application dependencies
US9354852B2 (en) * 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US20120166597A1 (en) * 2010-12-23 2012-06-28 Microsoft Corporation Satisfying application dependencies
US9286037B2 (en) * 2010-12-29 2016-03-15 Microsoft Technology Licensing, Llc Platform for distributed applications
US20120174058A1 (en) * 2010-12-29 2012-07-05 Microsoft Corporation Platform for distributed applications
US9880981B2 (en) * 2010-12-30 2018-01-30 International Business Machines Corporation Automatically detecting the ability to execute processing logic after a parser or validation error
US20120173492A1 (en) * 2010-12-30 2012-07-05 International Business Machines Corporation Automatically detecting the ability to execute processing logic after a parser or validation error
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US8356282B1 (en) * 2011-09-13 2013-01-15 Advanced Testing Technologies, Inc. Integrated development environment for the development of electronic signal testing strategies
US9348889B2 (en) * 2011-09-23 2016-05-24 The Mathworks, Inc. Requirements framework
US20150113020A1 (en) * 2011-09-23 2015-04-23 The Mathworks, Inc. Requirements framework
US8819624B2 (en) * 2011-09-26 2014-08-26 Intel Corporation Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same
US20130080887A1 (en) * 2011-09-26 2013-03-28 Zhaorong Hou Simulation of web applications and secondary devices in a web browser, web application development tools, and methods using the same
US20140101634A1 (en) * 2011-10-10 2014-04-10 Telefonaktiebolaget L M Ericsson (Publ) Ontology-based user requirement decomposition for component selection for service provision
US9164734B2 (en) * 2011-10-10 2015-10-20 Telefonaktiebolaget L M Ericsson (Publ) Ontology-based user requirement decomposition for component selection for service provision
US9992200B2 (en) * 2011-10-14 2018-06-05 Open Text Sa Ulc System and method for secure content sharing and synchronization
US9338158B2 (en) * 2011-10-14 2016-05-10 Open Text S.A. System and method for secure content sharing and synchronization
US9749327B2 (en) 2011-10-14 2017-08-29 Open Text Sa Ulc System and method for secure content sharing and synchronization
US20160234189A1 (en) * 2011-10-14 2016-08-11 Open Text S.A. System and method for secure content sharing and synchronization
US20130097687A1 (en) * 2011-10-14 2013-04-18 Open Text S.A. System and method for secure content sharing and synchronization
US9578013B2 (en) * 2011-10-14 2017-02-21 Open Text Sa Ulc System and method for secure content sharing and synchronization
US9699117B2 (en) 2011-11-08 2017-07-04 Brocade Communications Systems, Inc. Integrated fibre channel support in an ethernet fabric switch
US10164883B2 (en) 2011-11-10 2018-12-25 Avago Technologies International Sales Pte. Limited System and method for flow management in software-defined networks
US20140358272A1 (en) * 2011-12-02 2014-12-04 Aesynt Topco B.V. Method For Powdered Drug Reconstitution
US9804586B2 (en) * 2011-12-02 2017-10-31 Aesynt Topco B.V. Method for powdered drug reconstitution
US20140025714A1 (en) * 2012-01-08 2014-01-23 Nick Alex Lieven Reyntjens Method and Apparatus for Realizing a Dynamically Typed File or Object System Enabling the User to Perform Calculations Over the Properties Associated with the Files or Objects in the System
US8777731B2 (en) * 2012-02-08 2014-07-15 Wms Gaming, Inc. Dynamic configuration of wagering games
US20130203481A1 (en) * 2012-02-08 2013-08-08 Wms Gaming, Inc. Dynamic configuration of wagering games
US9152385B2 (en) * 2012-02-22 2015-10-06 GM Global Technology Operations LLC Systems and methods for generating high-quality formal executable software feature requirements
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US9021420B2 (en) * 2012-03-02 2015-04-28 Xerox Corporation Deployment of business processes in service-oriented architecture environments
US10901705B2 (en) * 2012-03-19 2021-01-26 Enterpriseweb Llc System for self modification
US8539440B1 (en) * 2012-03-19 2013-09-17 National Instruments Corporation Interactively designing a hardware implementation of a graphical program
US9887916B2 (en) 2012-03-22 2018-02-06 Brocade Communications Systems LLC Overlay tunnel in a fabric switch
US8914768B2 (en) 2012-03-28 2014-12-16 Bmc Software, Inc. Automated blueprint assembly for assembling an application
WO2013148651A3 (en) * 2012-03-28 2014-01-03 Bmc Software, Inc. Automated blueprint assembly for assembling an application
US9557969B2 (en) 2012-03-28 2017-01-31 Bmc Software, Inc. Automated blueprint assembly for assembling an application
US9727315B2 (en) 2012-03-28 2017-08-08 Bmc Software, Inc. Automated blueprint assembly for assembling an application
US9046993B2 (en) * 2012-04-10 2015-06-02 Torrential Data Solutions, Inc. System and method for content management
US11556228B2 (en) * 2012-04-10 2023-01-17 Torrential Data Solutions, Inc. System and method for content management
US20130298061A1 (en) * 2012-04-10 2013-11-07 Torrential Data System and method for content management
US20150378540A1 (en) * 2012-04-10 2015-12-31 Torrential Data Solutions, Inc. System and Method for Content Management
CN102663103A (zh) * 2012-04-13 2012-09-12 北京工业大学 可配置的自动化生成数据库和数据访问的方法
US20150074648A1 (en) * 2012-04-23 2015-03-12 Dekel Tal Software defect verification
US10277464B2 (en) 2012-05-22 2019-04-30 Arris Enterprises Llc Client auto-configuration in a multi-switch link aggregation
US9361209B2 (en) 2012-05-25 2016-06-07 International Business Machines Corporation Capturing domain validations and domain element initializations
US9361210B2 (en) 2012-05-25 2016-06-07 International Business Machines Corporation Capturing domain validations and domain element initializations
US9027001B2 (en) 2012-07-10 2015-05-05 Honeywell International Inc. Systems and methods for verifying expression folding
US20150127708A1 (en) * 2012-07-17 2015-05-07 Good Technology Corporation Systems and methods for facilitating service provision between applications
CN104520836A (zh) * 2012-07-17 2015-04-15 良好科技公司 用于促进应用之间的服务提供的系统和方法
US10555147B2 (en) 2012-07-17 2020-02-04 Blackberry Limited Systems and methods for facilitating service provision between applications
US9667707B2 (en) * 2012-07-17 2017-05-30 Good Technology Holdings Limited Systems and methods for facilitating service provision between applications
WO2014014879A3 (en) * 2012-07-17 2014-03-13 Good Technology Corporation Systems and methods for facilitating service provision between applications
US9519879B1 (en) * 2012-08-24 2016-12-13 Tibco Software Inc. Just in time compilation (JIT) for business process execution
US10311392B2 (en) * 2012-08-24 2019-06-04 Tibco Software Inc. Just in time compilation (JIT) for business process execution
US10657476B2 (en) 2012-08-24 2020-05-19 Tibco Software Inc. Just in time compilation (JIT) for business process execution
US9235491B2 (en) 2012-09-28 2016-01-12 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9317269B2 (en) 2012-09-28 2016-04-19 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US8949824B2 (en) 2012-09-28 2015-02-03 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9569274B2 (en) 2012-10-16 2017-02-14 Microsoft Technology Licensing, Llc Distributed application optimization using service groups
US9354870B2 (en) * 2012-10-23 2016-05-31 International Business Machines Corporation Maintaining integrity of output of code generators
US20140115559A1 (en) * 2012-10-23 2014-04-24 International Business Machines Corporation Maintaining integrity of output of code generators
US9164746B2 (en) * 2012-10-31 2015-10-20 Wal-Mart Stores, Inc. Automatic topology extraction and plotting with correlation to real time analytic data
US10075394B2 (en) 2012-11-16 2018-09-11 Brocade Communications Systems LLC Virtual link aggregations across multiple fabric switches
US20140156603A1 (en) * 2012-12-03 2014-06-05 State Grid Corporation Of China Method and an apparatus for splitting and recovering data in a power system
US9069568B2 (en) * 2012-12-19 2015-06-30 International Business Machines Corporation Compilation dependency resolution from a diverse group of candidate resources
US20140173574A1 (en) * 2012-12-19 2014-06-19 International Business Machines Corporation Compilation dependency resolution from a diverse group of candidate resources
US9513878B2 (en) * 2012-12-21 2016-12-06 Sap Se Component integration by distribution of schema definition on heterogenous platforms
US20140181783A1 (en) * 2012-12-21 2014-06-26 Christel Rueger Component integration by distribution of schema definition on heterogenous platforms
US9774543B2 (en) 2013-01-11 2017-09-26 Brocade Communications Systems, Inc. MAC address synchronization in a fabric switch
US9807017B2 (en) 2013-01-11 2017-10-31 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
US10462049B2 (en) 2013-03-01 2019-10-29 Avago Technologies International Sales Pte. Limited Spanning tree in fabric switches
US9871676B2 (en) 2013-03-15 2018-01-16 Brocade Communications Systems LLC Scalable gateways for a fabric switch
US9508051B2 (en) * 2013-03-15 2016-11-29 Bmc Software, Inc. Business development configuration
US20140278818A1 (en) * 2013-03-15 2014-09-18 Bmc Software, Inc. Business development configuration
US20140325472A1 (en) * 2013-04-29 2014-10-30 Peter Fige Providing Code, Code Generator and Software Development Environment
US9619212B2 (en) * 2013-04-29 2017-04-11 Siemens Aktiengesellschaft Providing code, code generator and software development environment
US10296618B1 (en) * 2013-05-20 2019-05-21 EMC IP Holding Company LLC Storage system query mechanism and techniques
US11222017B2 (en) 2013-05-20 2022-01-11 EMC IP Holding Company LLC Storage system query mechanism and techniques
US11144551B2 (en) 2013-05-20 2021-10-12 EMC IP Holding Company LLC Storage system query mechanism and techniques
US9256751B2 (en) * 2013-06-04 2016-02-09 Sap Se Public exposed objects
US20140359792A1 (en) * 2013-06-04 2014-12-04 Sap Ag Public Exposed Objects
US9424115B2 (en) 2013-06-07 2016-08-23 Successfactors, Inc. Analysis engine for automatically analyzing and linking error logs
US20150089475A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Runtime customization infrastructure
US20150089334A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Workbook composer
US9916157B2 (en) * 2013-09-20 2018-03-13 Oracle International Corporation Workbook composer for application development framework
US9851967B2 (en) * 2013-09-20 2017-12-26 Oracle International Corporation Runtime customization infrastructure
JP2016533547A (ja) * 2013-09-20 2016-10-27 オラクル・インターナショナル・コーポレイション ランタイムカスタマイゼーションインフラストラクチャ
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
WO2015092519A1 (en) * 2013-12-16 2015-06-25 Kronosis Hyper Technologies Private Limited Systems and methods for developing application programs
US11087340B1 (en) * 2013-12-17 2021-08-10 EMC IP Holding Company LLC Systems and methods for configuring converged infrastructure components
US20150227588A1 (en) * 2014-02-07 2015-08-13 Quixey, Inc. Rules-Based Generation of Search Results
US9495444B2 (en) * 2014-02-07 2016-11-15 Quixey, Inc. Rules-based generation of search results
US10311118B2 (en) 2014-02-07 2019-06-04 Samsung Electronics Co., Ltd. Systems and methods for generating search results using application-specific rule sets
US9916387B2 (en) 2014-02-07 2018-03-13 Samsung Electronics Co., Ltd. Systems and methods for generating search results using application-specific rule sets
US9411713B2 (en) * 2014-02-10 2016-08-09 Fujitsu Limited Method for supporting product design and product design support apparatus
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US20150227347A1 (en) * 2014-02-10 2015-08-13 Fujitsu Limited Method for supporting product design and product design support apparatus
US10355879B2 (en) 2014-02-10 2019-07-16 Avago Technologies International Sales Pte. Limited Virtual extensible LAN tunnel keepalives
US20140173554A1 (en) * 2014-02-24 2014-06-19 Arunav Gupta Platform and a method for development of a software application
US9378029B2 (en) * 2014-03-17 2016-06-28 Sharp Laboratories Of America, Inc. Rules based user interface architecture
US20150261416A1 (en) * 2014-03-17 2015-09-17 Sharp Laboratories Of America, Inc. Rules Based User Interface Architecture
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US10044568B2 (en) 2014-05-13 2018-08-07 Brocade Communications Systems LLC Network extension groups of global VLANs in a fabric switch
US10043153B2 (en) 2014-07-24 2018-08-07 International Business Machines Corporation Pattern-based product identification with feedback
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US10284469B2 (en) 2014-08-11 2019-05-07 Avago Technologies International Sales Pte. Limited Progressive MAC address learning
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US20160055126A1 (en) * 2014-08-19 2016-02-25 Bank Of America Corporation User interfaces generated by a workflow engine
US9826027B2 (en) * 2014-08-19 2017-11-21 Bank Of America Corporation User interfaces generated by a workflow engine
US20160065473A1 (en) * 2014-09-02 2016-03-03 Brocade Communications Systems, Inc. Persistent storage in a switch
US9639333B2 (en) * 2014-09-25 2017-05-02 International Business Machines Corporation Method and system for model driven development
US9645799B2 (en) * 2014-09-25 2017-05-09 International Business Machines Corporation Method and system for model driven development
US20160092177A1 (en) * 2014-09-25 2016-03-31 International Business Machines Corporation Method and system for model driven development
US11036933B2 (en) * 2014-09-25 2021-06-15 Oracle International Corporation User interface component autowiring
US20160092425A1 (en) * 2014-09-25 2016-03-31 Oracle International Corporation User interface component autowiring
US20160092178A1 (en) * 2014-09-25 2016-03-31 International Business Machines Corporation Method and system for model driven development
US9703532B1 (en) * 2014-09-30 2017-07-11 The Mathworks, Inc. Dynamically updating class instances based on class definition changes
US9699029B2 (en) 2014-10-10 2017-07-04 Brocade Communications Systems, Inc. Distributed configuration management in a switch group
US9626255B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Online restoration of a switch snapshot
US9628407B2 (en) 2014-12-31 2017-04-18 Brocade Communications Systems, Inc. Multiple software versions in a switch group
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
US20160246705A1 (en) * 2015-02-23 2016-08-25 International Business Machines Corporation Data fabrication based on test requirements
US10339151B2 (en) * 2015-02-23 2019-07-02 Red Hat, Inc. Creating federated data source connectors
US20160246835A1 (en) * 2015-02-23 2016-08-25 Red Hat, Inc. Creating federated data source connectors
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US9807005B2 (en) 2015-03-17 2017-10-31 Brocade Communications Systems, Inc. Multi-fabric manager
US10282171B2 (en) 2015-03-30 2019-05-07 Hewlett Packard Enterprise Development Lp Application analyzer for cloud computing
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
WO2016181368A1 (es) * 2015-05-13 2016-11-17 Huebra Nadia Analía Método implementado por computador que expone aplicaciones tipo software a partir de especificaciones de diseño
US10379817B2 (en) 2015-05-13 2019-08-13 Nadia Analia Huebra Computer-applied method for displaying software-type applications based on design specifications
US10740069B2 (en) * 2015-06-23 2020-08-11 Open Text Sa Ulc Compositional entity modeling systems and methods
US10019238B2 (en) * 2015-06-23 2018-07-10 Open Text Sa Ulc Compositional entity modeling systems and methods
US20160378437A1 (en) * 2015-06-23 2016-12-29 Open Text S.A. Compositional entity modeling systems and methods
US11593072B2 (en) 2015-06-23 2023-02-28 Open Text Sa Ulc Compositional entity modeling systems and methods
US20180321915A1 (en) * 2015-06-23 2018-11-08 Open Text Sa Ulc Compositional entity modeling systems and methods
US10824441B2 (en) * 2015-07-06 2020-11-03 Zhaoqi Zhang Application program management method for multiple hardware platforms
US20180189082A1 (en) * 2015-07-06 2018-07-05 Zhaoqi Zhang Application program management method for multiple hardware platforms
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US10289734B2 (en) * 2015-09-18 2019-05-14 Samsung Electronics Co., Ltd. Entity-type search system
US20170090889A1 (en) * 2015-09-30 2017-03-30 Semmle Limited Hierarchical dependency analysis of source code
US9658839B2 (en) * 2015-09-30 2017-05-23 Semmle Limited Hierarchical dependency analysis of source code
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
CN105468244A (zh) * 2015-12-11 2016-04-06 俺朋堂(北京)网络科技有限公司 一种多人聊天页面实现方法
US10289630B2 (en) * 2016-02-05 2019-05-14 Accenture Global Solutions Limited Integrated developer workflow for data visualization development
US10048946B2 (en) * 2016-03-24 2018-08-14 Microsoft Technology Licensing, Llc Converting visual diagrams into code
US11294646B2 (en) 2016-05-04 2022-04-05 Open Text Sa Ulc Application development and extensibility/customization using entity modeling systems and methods
US10169004B2 (en) 2016-05-04 2019-01-01 Open Text Sa Ulc Application development and extensibility/customization using entity modeling systems and methods
US10732939B2 (en) 2016-05-04 2020-08-04 Open Text Sa Ulc Application development and extensibility/customization using entity modeling systems and methods
US10726036B2 (en) 2016-05-16 2020-07-28 Sap Se Source service mapping for collaborative platforms
US11295273B2 (en) 2016-05-16 2022-04-05 Sap Se Normalized object exposure for collaborative platforms
US10248300B2 (en) 2016-05-16 2019-04-02 Sap Se Polymorph rendering for collaborative platforms
US10642720B2 (en) * 2016-09-15 2020-05-05 Talend, Inc. Test case generator built into data-integration workflow editor
US20180088914A1 (en) * 2016-09-28 2018-03-29 Honda Motor Co., Ltd. Method for supporting program creation and apparatus for supporting program creation
CN107885493A (zh) * 2016-09-28 2018-04-06 本田技研工业株式会社 程序制作支持方法及程序制作支持装置
US20180089602A1 (en) * 2016-09-29 2018-03-29 Sap Se Transformation of process model specification between formats
US20180096301A1 (en) * 2016-09-30 2018-04-05 Mastercard International Incorporated Systems and methods for generating customized reports based on operational stage rules
US11720330B2 (en) 2016-10-17 2023-08-08 Engineer.ai Corp. Application development involving instant protoyping
US11922139B2 (en) 2016-10-17 2024-03-05 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US11886840B2 (en) 2016-10-17 2024-01-30 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US11816454B2 (en) 2016-10-17 2023-11-14 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US11086599B2 (en) 2016-10-17 2021-08-10 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
US10649741B2 (en) 2016-10-17 2020-05-12 Engineer.Ai Global Limited Systems and methods for creating software from library and custom components
WO2018075548A1 (en) * 2016-10-17 2018-04-26 Sd Squared Limited Systems and method for creating software from library and custom components
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US10261763B2 (en) * 2016-12-13 2019-04-16 Palantir Technologies Inc. Extensible data transformation authoring and validation system
US10078818B2 (en) * 2016-12-20 2018-09-18 Sap Se Work routine management for collaborative platforms
US10540167B2 (en) 2017-01-26 2020-01-21 Nice Ltd. Image based method and system for building object model and application states comparison and graphic-based interoperability with an application
US10133953B2 (en) * 2017-01-26 2018-11-20 Nice Ltd. System and method for enabling graphic-based interoperability with a run-time application
US11966758B2 (en) 2017-01-26 2024-04-23 Nice Ltd. Method and system for accessing table content in a digital image of the table
US11307875B2 (en) 2017-01-26 2022-04-19 Nice Ltd. Method and system for accessing table content in a digital image of the table
US10740123B2 (en) 2017-01-26 2020-08-11 Nice Ltd. Method and system for accessing table content in a digital image of the table
US11755347B2 (en) 2017-01-26 2023-09-12 Nice Ltd. Method and system for accessing table content in a digital image of the table
US11061661B2 (en) 2017-01-26 2021-07-13 Nice Ltd. Image based method and system for building object model and application states comparison and graphic-based interoperability with an application
CN107015842A (zh) * 2017-03-31 2017-08-04 武汉票据交易中心有限公司 一种服务器端程序编译和发布的管理方法及系统
US11256182B2 (en) 2017-04-26 2022-02-22 Carl Zeiss Smt Gmbh Process for cleaning optical elements for the ultraviolet wavelength range
US10296307B2 (en) * 2017-05-16 2019-05-21 International Business Machines Corporation Method and system for template extraction based on source code similarity
US11645583B2 (en) 2017-05-18 2023-05-09 International Business Machines Corporation Automatic rule learning in shared resource solution design
US11195137B2 (en) * 2017-05-18 2021-12-07 International Business Machines Corporation Model-driven and automated system for shared resource solution design
US10990898B2 (en) 2017-05-18 2021-04-27 International Business Machines Corporation Automatic rule learning in shared resource solution design
US20180336503A1 (en) * 2017-05-18 2018-11-22 International Business Machines Corporation Model-driven and automated system for shared resource solution design
US11720350B1 (en) 2017-08-22 2023-08-08 Wells Fargo Bank, N.A. Systems and methods of a metadata orchestrator augmenting application development
US10521223B1 (en) * 2017-08-22 2019-12-31 Wells Fargo Bank, N.A. Systems and methods of a metadata orchestrator augmenting application development
WO2019072110A1 (zh) * 2017-10-11 2019-04-18 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
US10372427B2 (en) * 2017-11-21 2019-08-06 Hydata Open platform for providing ability to end users
US10705800B2 (en) * 2017-11-30 2020-07-07 The Mathworks, Inc. Systems and methods for evaluating compliance of implementation code with a software architecture specification
CN107977315A (zh) * 2017-12-07 2018-05-01 中国航发控制系统研究所 一种基于Bootloader方式的嵌入式软件目标码单元测试方法
US10915422B2 (en) 2017-12-13 2021-02-09 The Mathworks, Inc. Automatic setting of multitasking configurations for a code-checking system
US11461092B2 (en) * 2018-01-09 2022-10-04 Justdo, Inc. Scripting language computer program modification methodology, system and software
US11003441B2 (en) * 2018-01-09 2021-05-11 Justdo, Inc. Scripting language computer program modification methodology, system and software
US11704116B2 (en) * 2018-01-09 2023-07-18 Justdo, Inc. Scripting language computer program modification methodology, system and software
US20200019387A1 (en) * 2018-07-11 2020-01-16 Accenture Global Solutions Limited Managing software components for software application development
US10768911B2 (en) * 2018-07-11 2020-09-08 Accenture Global Solutions Limited Managing software components for software application development
US11487595B2 (en) * 2018-08-02 2022-11-01 Nippon Telegraph And Telephone Corporation API adapter creation device, API adapter creation method, and API adapter creation program
US11481906B1 (en) 2018-11-23 2022-10-25 Amazon Technologies, Inc. Custom labeling workflows in an active learning-based data labeling service
US11048979B1 (en) 2018-11-23 2021-06-29 Amazon Technologies, Inc. Active learning loop-based data labeling service
US11443232B1 (en) * 2018-11-23 2022-09-13 Amazon Technologies, Inc. Active learning-based data labeling service using an augmented manifest
US11252046B2 (en) 2018-12-14 2022-02-15 Juniper Networks, Inc. System for identifying and assisting in the creation and implementation of a network service configuration using Hidden Markov Models (HMMs)
EP3668007A1 (en) * 2018-12-14 2020-06-17 Juniper Networks, Inc. System for identifying and assisting in the creation and implementation of a network service configuration using hidden markov models (hmms)
CN111327451A (zh) * 2018-12-14 2020-06-23 瞻博网络公司 用于使用隐马尔可夫模型(hmm)标识和协助网络服务配置的创建和实现的系统
US10983988B2 (en) 2018-12-27 2021-04-20 Palantir Technologies Inc. Data pipeline creation system and method
US10824545B2 (en) 2019-01-09 2020-11-03 Bank Of America Corporation Computer code test script generating tool using visual inputs
US10698803B1 (en) * 2019-01-09 2020-06-30 Bank Of America Corporation Computer code test script generating tool using visual inputs
JP7319516B2 (ja) 2019-02-06 2023-08-02 キヤノンマーケティングジャパン株式会社 プログラム、情報処理装置及びその制御方法
JP2020126501A (ja) * 2019-02-06 2020-08-20 キヤノンマーケティングジャパン株式会社 プログラム、情報処理装置及び処理方法
US11468524B2 (en) 2019-04-12 2022-10-11 Noodle Analytics, Inc. Reducing the cost of electrical energy in a manufacturing plant
CN110083466B (zh) * 2019-04-28 2021-07-06 百度在线网络技术(北京)有限公司 一种小程序的数据传输方法和装置
CN110083466A (zh) * 2019-04-28 2019-08-02 百度在线网络技术(北京)有限公司 一种小程序的数据传输方法和装置
US20220156049A1 (en) * 2019-09-24 2022-05-19 Elemental Reasoning, LLC System and method for source code generation
US11748067B2 (en) * 2019-09-24 2023-09-05 Elemental Reasoning, LLC System and method for source code generation
CN110991156A (zh) * 2019-11-20 2020-04-10 哈尔滨工程大学 一种基于船舶数值虚拟试验的报告自动生成方法
CN110941559A (zh) * 2019-11-27 2020-03-31 北京搜狐新媒体信息技术有限公司 自动测试方法及系统
CN111522728A (zh) * 2019-12-31 2020-08-11 支付宝实验室(新加坡)有限公司 自动化测试用例的生成方法、电子设备及可读存储介质
CN111191795A (zh) * 2019-12-31 2020-05-22 第四范式(北京)技术有限公司 一种训练机器学习模型的方法、装置及系统
CN111352627A (zh) * 2020-02-27 2020-06-30 政采云有限公司 一种页面骨架屏生成方法、装置、设备及可读存储介质
CN111522734A (zh) * 2020-03-17 2020-08-11 上海云励科技有限公司 软件功能测试方法、装置、电子设备及存储介质
US11775489B2 (en) 2020-04-22 2023-10-03 Capital One Services, Llc Consolidating multiple databases into a single or a smaller number of databases
US11281638B2 (en) 2020-04-22 2022-03-22 Capital One Services, Llc Consolidating multiple databases into a single or a smaller number of databases
US20220019428A1 (en) * 2020-05-22 2022-01-20 Paypal, Inc. Modification of application functionality using object-oriented configuration data
US11593101B2 (en) * 2020-05-22 2023-02-28 Paypal, Inc. Modification of application functionality using object-oriented configuration data
US10963272B1 (en) * 2020-07-09 2021-03-30 Coupang Corp. Systems and methods for deploying low-application-impact user interfaces
US11494205B2 (en) 2020-07-09 2022-11-08 Coupang Corp. Systems and methods for deploying low-application-impact user interfaces
CN111831365A (zh) * 2020-07-29 2020-10-27 中国平安财产保险股份有限公司 接口路由转发方法、系统、计算机设备及可读存储介质
US11200069B1 (en) * 2020-08-21 2021-12-14 Honeywell International Inc. Systems and methods for generating a software application
US20220156393A1 (en) * 2020-11-19 2022-05-19 Tetrate.io Repeatable NGAC Policy Class Structure
CN112463147A (zh) * 2020-11-26 2021-03-09 杭州览众数据科技有限公司 一种针对通用化模型客制化需求开发框架
CN112764743A (zh) * 2021-01-21 2021-05-07 潘胜怀 一种基于数据模型驱动自动生成软件的方法
US11790110B2 (en) 2021-02-09 2023-10-17 Nice Ltd. System and method for preventing sensitive information from being recorded
CN113448572A (zh) * 2021-02-26 2021-09-28 北京新氧科技有限公司 软件项目开发方法及装置、计算机存储介质、计算机设备
US11196728B1 (en) * 2021-03-29 2021-12-07 Fmr Llc Caching login sessions to access a software testing environment
US11314489B1 (en) 2021-04-16 2022-04-26 27 Software U.S. Inc. Automated authoring of software solutions by first analyzing and resolving anomalies in a data model
US11693652B2 (en) 2021-04-16 2023-07-04 27 Software U.S. Inc. Automated authoring of software solutions from a data model
US11409505B1 (en) 2021-04-16 2022-08-09 27 Software U.S. Inc. Automated authoring of software solutions from a data model with related patterns
CN113282283A (zh) * 2021-06-11 2021-08-20 北京拓课网络科技有限公司 一种操作数据库表的方法、装置及电子设备
CN113535570A (zh) * 2021-07-23 2021-10-22 北京奇艺世纪科技有限公司 一种测试用例的处理方法、装置及电子设备
CN113655996A (zh) * 2021-08-04 2021-11-16 北京航空航天大学 一种基于需求模型的企业级系统生成方法
US20230177751A1 (en) * 2021-12-03 2023-06-08 Adaptam Inc. Method and system for improved visualization of charts in spreadsheets
CN114553978A (zh) * 2022-04-24 2022-05-27 深圳市城市交通规划设计研究中心股份有限公司 一种传感器报文数据处理方法、电子设备及存储介质
CN114661015A (zh) * 2022-05-17 2022-06-24 江苏邑文微电子科技有限公司 半导体工艺机台的自由控制方法与装置
CN115237386A (zh) * 2022-09-19 2022-10-25 杭州实在智能科技有限公司 用于大型复杂Windows原生桌面开发的方法及系统
CN116974558A (zh) * 2023-06-13 2023-10-31 天翼爱音乐文化科技有限公司 一种营销计费活动h5页面开发平台及开发方法

Also Published As

Publication number Publication date
CN102656557B (zh) 2017-11-21
MA33799B1 (fr) 2012-12-03
CN106445494A (zh) 2017-02-22
CA2777443A1 (en) 2011-04-21
US20180024814A1 (en) 2018-01-25
SG10201500690RA (en) 2015-04-29
IL219211A (en) 2017-06-29
ZA201202757B (en) 2013-06-26
TN2012000172A1 (en) 2013-12-12
US9823900B2 (en) 2017-11-21
CA2777443C (en) 2020-07-14
AU2010308132B2 (en) 2014-02-27
IL219211A0 (en) 2012-06-28
CN102656557A (zh) 2012-09-05
US10324690B2 (en) 2019-06-18
BR112012008763A2 (pt) 2016-12-06
WO2011045634A1 (en) 2011-04-21
EP2488941A1 (en) 2012-08-22
AU2010308132A1 (en) 2012-05-10
US20140109037A1 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
US10324690B2 (en) Automated enterprise software development
US7580946B2 (en) Smart integration engine and metadata-oriented architecture for automatic EII and business integration
US9535663B2 (en) Pattern-based construction and extension of enterprise applications in a cloud computing environment
Goncalves Beginning Java EE 6 Platform with GlassFish 3: from novice to professional
US20190243665A1 (en) Application runtime configuration using design time artifacts
US20050160104A1 (en) System and method for generating and deploying a software application
US20020144256A1 (en) Method of deployment for concurrent execution of multiple versions of an integration model on an integration server
Gregory et al. Java persistence with hibernate
JP2004280821A (ja) ソフトウェアビジネスプロセスモデル
JP2004280820A (ja) ビジネスソフトウェアアプリケーションをサポートするフレームワーク
US20030140126A1 (en) Method of deployment for concurrent execution of multiple versions of an integration model
Mane et al. The spring framework: An open source java platform for developing robust java applications
Li Introduction to windows azure
Varanasi et al. Spring Rest
US20050114692A1 (en) Systems, methods and software to configure and support a telecommunications system
US11080102B2 (en) System and method for developing modularized application
Srinivasmurthy et al. Web2exchange: A model-based service transformation and integration environment
Soni et al. Spring: Developing Java Applications for the Enterprise
Wetherbee et al. Beginning EJB 3: Java EE 7 Edition
Artiges BEA Weblogic Server 8.1 Unleashed
Bialy Dynamic process fragment injection in a service orchestration engine
Lloyd et al. Expresso developer’s guide
Feng Generative aspect-oriented component adaptation
Parr et al. Patterns for real-world-aware and real-time solutions
Neema Toward enhancing reusability of component middleware DSMLS using generalization and step-wise refinement

Legal Events

Date Code Title Description
AS Assignment

Owner name: VERMEG SERVICES SARL, TUNISIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OUALI, BADREDDINE;REEL/FRAME:025100/0001

Effective date: 20101005

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION