MDSD in developing JEE Applications
Model Driven Software Development (MDSD) is a style of software development that considers itself as an alternative to the traditional style of programming. The approach centers itself on building models of a software system. These models are typically made manifest through diagrammatic design notations - the UML is one option. The idea is that you use these diagrams, to specify your system to a modeling tool and then you generate code in a conventional programming language.
Work will contain researching in next areas:
Overview of MDSD and how it relates to industry standards such as MDA and Software Factories.
Meta modeling, DSL construction, model-to-model and model-to-code transformations, and software architecture.
Insight into the software development process, plus engineering issues such as versioning, testing and product line engineering.
Essential management knowledge covering economic and organizational topics, from a global perspective.
Through all aspect of software development of Amateur Sport Alliance, an information system, MDSD will be researched.
Environment
Java Development Kit (JDK)
JavaServer Faces – Web Application Framework is a request-driven MVC web framework for constructing user interfaces using components
Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database.
The Spring Framework is an open source application framework and Inversion of Control container for the Java platform.
Spring Web Flow (SWF) is the sub-project of the Spring Framework that focuses on providing the infrastructure for building and running rich web applications.
JPA - The Java Persistence API, is a Java programming language framework managing relational data in applications.
Apache Maven - tool for building and deploying applications. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting, and documentation from a central piece of information. Maven is very similar except with Ant, that it contains additional functionality:
A hierarchical build environment, where properties configured in a POM file (pom.xml) flow down to POM files of all child projects.
Standardized build tasks (clean, build, install, deploy, etc.)
Dependency specifications for build and deploy tasks - for all internal and external libraries; tied to a specific released versions of dependent libraries
A repository containing all versioned dependencies. This repository is used during the build and deploy processes for all referencing projects.
Jboss an open-source Java EE-based application server.
Jetty - Java-based HTTP server and Java Servlet container.
MySql relational database management system (RDBMS).
HSQLDB (Hyper Structured Query Language Database) is a relational database management system which offers both in-memory and disk-based tables. Embedded and server modes are available.
Eclipse - Integrated development environment
JUnit is a unit testing framework for the Java programming language.
Sculptor - open source productivity tool that applies the concepts from Domain-Driven Design and Domain Specific Languages (DSL).
AndroMDA - an open source code generation framework that follows the Model Driven Architecture (MDA) paradigm.
Acceleo - a code generator implementing of the OMG's Model-to-text specification.
Xtext - a framework for development of programming languages and domain specific languages
Xtend - statically-typed programming language which is tightly integrated with and runs on the Java Virtual Machine.
Xtend2 - the successor for Xtend and Xpand and implemented on top of Xbase.
Xpand - a language specialized on code generation based on EMF models.
MWE -Modeling Workflow Engine is a declarative, externally configurable generator engine