1. A method for generating a software application using a computer system, comprising the steps of: (a) modeling business processes in a graphical design tool implemented in said computer system, said graphical design tool capable of generating models to serve as blueprints in development of the software application; (b) creating, in said computer system via Unified Modeling Language (UML), at least one UML model to formalize the business processes modeled in step (a) 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 modeled business processes, wherein one or more stereotypes are added to a class of said one or more class diagrams, wherein a tagged value is used in the data models to define an exclusive dependency between a current field and another field in the same entity type of the data models or in another entity type of the data models with a relation; (c) validating, in said computer system, the at least one UML model by detecting syntax errors using a predetermined syntax, to validate either said one or more state diagrams or said one or more class diagrams, or a combination of said one or more state diagrams and said one or more class diagrams; (d) transforming, in said computer system, said at least one UML model validated in step (c) into metadata that are used to generate functional and non-functional aspects of the software application, the software application being a layer that sits on top of a UML visual modeling tool as a plug-in; (e) generating, via the at least one UML model a new Enterprise Application Archive (Ear) file and/or selecting an existing Ear file, the new Ear file and/or the selected existing Ear file comprising a plurality of Java Archive (JAR) files required for deployment of the software, wherein at least one JAR file is added and/or removed; (f) generating a project that contains said at least one validated UML model, wherein generating said project comprises removing all conflicting stereotypes; and (g) generating code automatically by: converting the UML model into an XML file; using the XML file to generate Java source code; and compiling the generated Java source code using a compiler and creating the at least one JAR.