Modeling is the key to software design, from large information systems to embedded software. Without well-considered software models, the developed implementation becomes inconsistent or distant from the original requirement. A model is created using a modeling language. UML is a standardized general-purpose modeling language widely used in enterprise systems design. Because it is very large language, UML is not always appropriate for designing small software. Designers also often want to describe models differently based on the immediate need preferring simple, application-specific but flexible notation rather than the rigidity of UML. We propose a metamodeling language, called sMML, to define custom-made modeling language that enables designers to define a suitable modeling language on demand, then write actual models using it. sMML is a metamodeling language small enough to define a variety of modeling languages, self-closed and independent of other modeling languages, and aligned with UML. After completely defining sMML, we present experimental results applying sMML, taking a simple modeling language and UML as examples, which demonstrates that sMML is useful for flexible modeling and capable of defining a wide range of modeling languages
展开▼