CIT 499 Applied System & Software Architectures Model Driven Architecture (MDD) © 2010 by Jeffrey L. Whitten. All rights reserved. This file may not be copied, duplicated, or retransmitted without the author?s written permission. Modern Topic What is Model Driven Architecture? (MDA) Derives from a recurring theme in the history of software engineering to develop and use increasingly ?abstract? formal languages to code software Ultimate manifestation is ?programming by drawing pictures? Pictures = models >>> Model Driven Architecture Idea here is to generate code by ?compiling? pictures Uniform Modeling Language (UML) Business Process Modeling Language (BPMN) Caveat: ?Garbage In, Garbage Out? Early ?Failures? Computer Aided Software Engineering (CASE) Encouraged developers to draw data flow diagrams and structure charts with underlying metadata (= data about data) Models would be compiled into code Skeleton code Full Code Examples Index Technology?s Excelerator + Sage?s APS KnowledgeWare?s Information Engineering Workbench Bachman Software Engineering Workbench Problem was that modeling techniques (of that time) lacked precision of traditional programming languages Later Successes Logic Works ERwin (later acquired by Computer Associates ) Database modeling based on standard (IDEF1X) ? a very precise version of entity-relationship diagrams Could forward engineer data models into SQL code for wide variety of database management systems and version Could even reverse engineer existing database SQL code into the equivalent data models Still popular and used by database technologists Business Process Management (BPM) vendors (many) Market just now emerging Business process models based on formal standard called the Business Process Modeling Notation ? very precise! Generates XML code that can be executed at run-time by a variety of work flow and business process engines What is MDA? According to the Object Management Group (OMG): ?An approach to IT system specification that separates the specification of functionality from the specification of implementation? In other words, separates: ?What? ? Functionality or functional requirements ?How? ? Architecture or non-functional requirements MDA Provides for 3 Levels of Description Sometimes called the ?domain model?. It focuses on the business environment and the requirements of the system. Contains computational information for the application, but no information specific to any platform technology. Contains detailed descriptions and elements that are specific to the choice of specific technologies (meaning ?architectures?) Platforms are vendor specific AN APPLICATION Computation Independent Model (CIM) Platform Independent Model (PIM) Platform Specific Model (PSM) 1:1 1:M MDA is Standards Based Object Management Group (OMG) UML: Unified Modeling Language 2.0 Standards for modeling and describing a system of interest CWM: Common Warehouse Metamodel Standards for modeling and describing databases MOF: Meta-Object Facility Standards for interpreting other modeling tools XMI: XML Metadata Interchange Standards for exchanging metadata between differing types of models M-O-U-S-E ? just kidding; Mickey Mousing around Also includes guidelines and evolving standards for model transformation Forward engineering Reverse engineering MDD Supports Portability One CIM and one PIM can be transformed into multiple PSMs Allows easier development of multiple clients Allows easier development of multiple databases Allows easier development of multiple servers Achieved by separating the models from the transformation engines Also achieved by making the actual models portable across development tool environments MOF and XMI allow our UML diagrams to be transformed into XML and imported into other tools that are aware of the format MDD Promotes Reusability MDA encourages model reuse, and hence ? ? encourages architectural pattern reuse A key to improving productivity and quality Useful for building product ?families? Software Firmware ? as opposed to achieving portability through the class approach of ?porting? Build the application with the preferred technologies and architecture, and then ? ? port the application (sub-optimally) to other platforms State of the Art in MDD MDA is mostly impractical without the use of highly integrated automated tools Without them, you can?t achieve quality models (that follow standards) Without them, productivity would fall because of all the models you must draw Examples (all in the J2EE space) AndroMDA (open source; supports only J2EE) ArcStyler (commercial; supports J2EE and .NET) Eclipse Modeling Framework (EMF) Open but standards based Forces consistent management between model and generated code in any compliant Integrated Development Environment (IDE)
STUDYBLUE makes things that make you better at school.
Things like
online flashcards with photos and audio.
Things like personalized quizzes and friendly reminders about when (and what) to study next.
Think of it as a digital backpack™: access to all of your study materials online and on your phone.
STUDYBLUE exists to make studying efficient and effective for every student, for free.
Join us.
“Simply amazing. The flash cards are smooth, there are many different types of studying tools, and there is a great search engine. I praise you on the awesomeness.”
Dennis