SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Presented By: Anand C                     Date: 08/26/2008




CONTENTS                                  Pages

      Introduction Magicdraw          -   2
             Why we need Magicdraw?   -   2

      MagicDraw and UML               -   3

      Working with Diagram            -   3

      Working with Project            -   3

      Conclusion                      -   4




                                                             1
Presented By: Anand C                                               Date: 08/26/2008


                             Magicdraw UML modeling

        As my understanding MagicDraw is a visual UML modeling tool which is
designed for developers. So they can deliver source code from their UML model
instantly. This tool will allow the developer or business professional to draw, design, and
view UML diagrams of Object Oriented systems. MagicDraw is a code engineering tool
which has best code engineering mechanism - full round-trip support for Java, C++ and
other programming languages, We may construct UML models, generate source code
from it, code more by hand or use our favorite IDE, then reverse the code again, make
some changes in MagicDraw, and merge that model with code again - no details are lost,
no matter which way backward or forward we are going.

Why we need Magicdraw?

       The key features of Magicdraw is “Fastest way to create Application
Architecture”, other main features are,

       (a)     MagicDraw's reverse engineering is the fastest way to get UML models
               from Java and XML Schema source code. Automatic generation of
               sequence diagrams from Java source code adds a more detailed view of
               the system.
       (b)     Automatic generation of static structure.
       (c)     Package dependency.
       (d)     Automatically generating our hierarchy diagram allows multiple views
               of the same model.
       (e)     MagicDraw's Teamwork Server, multiple developers can work
               simultaneously on the same model. This accelerates our team's
               collaboration while providing simple configuration management,
               controlled access to all our artifacts, and remote access to our model. It's
               the optimal way to manage our model and avoid version conflicts.
       (f)     Support most popular IDEs Eclipse, IBM WSAD and RAD, Borland
               JBuilder, IntelliJ IDEA, NetBeans, Sun Java Studio eliminate the need for
               a native MagicDraw IDE.
       (g)     Round-trip engineering to keep model and code synchronized.
       (h)     Easy GUI access
       (i)     Delivers source code from our UML model instantly
       (j)     Automatic report generation
       (k)     The report engine allows we to generate up-to-date reports based on our
               own templates with lowest and formatting specified.
       (l)     We can quickly create custom diagrams that fit our software development
               process. Define our own custom toolbar for stereotyped element creation -
               - we'll instantly accelerate our modeling effort.


       (m)     MagicDraw UML allows model transformations both ways: from Platform
               Independent Model (PIM) to Platform Specific Model (PSM) and from


                                                                                          2
Presented By: Anand C                                                Date: 08/26/2008


               PSM to PIM. With model transformations, we can produce many specific
               models, such as XML Schema, DDL, or our customized specific model
               from a generic one.
       (n)     Seedy navigation through our models
       (o)     MagicDraw runs on a wide variety of operating systems, such as Windows
               98/ME/NT/2000/XP/Vista, Solaris, OS/2, Linux, HP-UX, AIX, MacOS
               (X) and everywhere else where Java 5 or 6 is supported.

MagicDraw and UML

       UML provides standardized pictures of our software applications and allows
development team to quickly grasp the functionality contained within the application.
UML is a language and a process with neutral notation. This means that we can use it to
design our entire OO System in any programming language and any software
development process.

                Visual modeling means that first design our system by drawing
diagrams and then employ tools to convert those diagrams into code. The transition from
the design to the implementation phase is smoother and more straightforward. Moreover,
using the features of reverse engineering and code generation, the developer can move
back and forth between the code and the design that is being expressed in the
Diagrams.

               Visual modeling tools provide many features that replace some of the
more tedious tasks for the developer. Some of the leading tools provide so-called round-
trip code engineering capabilities – the structure of reverse engineered code is changed in
the modeling tool and is generated back without the implementation of specific
information lost.

Working with Diagram
       When working with diagrams it is helpful to keep in mind the following concepts:

               • A shape refers to a notation of a model element, such as a package, class,
               state, use case, object, or others.

               • A path refers to the notation for the various kinds of relationships such as
               associations, aggregations, dependency, message, and links.

               • Both paths and shapes are defined as symbols.

Diagram Basics
To create a new diagram
       From the toolbar:
              Click the desired diagram button on the toolbar. The Create Diagram
              dialog box opens. Enter the name of the diagram and select or create a
              package where we wish to create our diagram.



                                                                                           3
Presented By: Anand C                                              Date: 08/26/2008


       From the Diagrams menu:
             From the Diagrams menu, select the desired diagram. The corresponding
             Diagrams dialog box opens. Click Add. The Create Diagram dialog box
             opens. Enter the name of the diagram and select or create a package where
             we wish to create our diagram.
       From the Browser:
             Right-click the desired model element in which we would like to create a
             diagram and, from the shortcut menu, select New Diagram. Type the name
             for diagram directly in the Browser.
       From the model element Specification dialog box:
             Open the Package, Profile, Model Specification or other elements Inner
             Elements tab. Click Create. The corresponding Diagram Specification
             dialog box opens. In this dialog       box, we can define the diagram
       From the Browser:
             Select Open from the diagram item shortcut menu or double-click the
             diagram item.
       From the Diagrams menu:
             From the Diagrams menu, select the desired diagram. The corresponding
             Diagrams dialog box opens. Click the Open button.
       From the Content Diagram (available only in the Enterprise edition),
             If a diagram is added to the table of contents or a symbol of a diagram is
             drawn on the Diagram Pane.If the diagram is assigned to a particular
             model element, double click this model element.

Working with Projects
       The newly created project consists of the following packages:

       1. Data package is empty and holds all model elements

       2. File View package contains components that are created during code
engineering and Represent source files. Adding a resident element to a particular
component causes that Element to be generated within the source file.

        3. UML Standard Profile contains stereotypes that are necessary for working with
MagicDraw, primitive data types and constraints (which are UML standard), and UML 2
metamodel elements. The following data types are specified in MagicDraw: boolean,
byte, char, date, double, float, int, Integer, long, short, void, and string. We can also
create our own packages for holding the model elements. By default, packages cannot be
deleted or renamed in a project (except for the File View package).

Conclusion

       MagicDraw is a serious contender among UML design tools. While providing
       extensive UML 2.0 support.



                                                                                        4
Presented By: Anand C                       Date: 08/26/2008




             AndroMDA
              A     New Paradigm in software development




CONTENTS                                    Pages

      Introduction AndroMDA         -       6

      Why AndroMDA?                 -       6

      MDA and code generation       -       6

      AndroMDA Features                     7

      Working with AndroMDA                 7

      How AndroMDA generates code           7

      Conclusion                            7




                                                               5
Presented By: Anand C                                              Date: 08/26/2008




                         AndroMDA - Code Generation


Introduction

        AndroMDA is one of the most poourful Open Source MDA Generators. It is used
all over the world for everything from simple applications to complex enterprise
applications. AndroMDA comes with an array of ready-made cartridges for common
architectures like Spring, EJB, .NET, Hibernate and Struts.

Why AndroMDA?
               AndroMDA can setup a new J2EE project from scratch, in which code is
generated from a UML model. We can choose to generate code for Hibernate, EJB,
Spring, Web Services, and Struts. The generated code is automatically integrated into the
build process.

   1. No need to write redundant code.
   2. Our project models will reflect our code.
   3. Projects are diagrammed in a standard platform independent way making it much
      faster to adapt to ever rapidly changing technologies.
   4. We will have our models that allow much easier communication with the business
      logic.

MDA and code generation

               MDA is a set of related standards specified by the Object Management
Group (OMG). MDA generators which use some or all of these standards to turn UML
models into working Java. Ideally MDA generators build full applications, constructed
from a set of components, from one or more input models.




                MDA is the idea of multiple levels of models. This starts at the highest
level with the platform independent model (PIM). The PIM specifies and maps entities in
the most abstract form possible which still captures all of the requirements. The next
level down is the platform specific model (PSM). This model is an augmented version of
the PIM which adds all of the structures required to implement the PIM, but still modeled
in a UML form. Generators use the PSM to create the output code.

AndroMDA Main Features

                                                                                        6
Presented By: Anand C                                              Date: 08/26/2008



1. AndroMDA is pluggable and can be exchanged.

2. AndroMDA will support for major UML tools like MagicDraw

3. Model transformations help to raise abstraction level. We can write our own
transformations in any transformation language.

4. Templates are based on well-known template engines. Right now, Velocity and
FreeMarker are supported

5. Cartridges for common enterprise architectures (EJB, Spring, Hibernate, Struts, JSF,
Axis, jBPM)

Working with AndroMDA
AndroMDA is an automatic tool. AndroMDA preconditions are modeling conventions.
This means that a UML model for use with AndroMDA cannot be structured arbitrarily
but has to certain structure that can be interpreted by AndroMDA.

Modeling standards/requirements will ultimately be dependantant on the implementation
of the cartridge. Each cartridge has required properties and modeling conventions that
must be followed. In general, there are rules to follow when we start design model and
we want AndroMDA to generate our components smoothly.

How AndroMDA generates code?

The following describes the process of AndroMDA engine to generate code.

   1. Cartridges that the project requires are loaded by the engine.
   2. The engine will parses the UML model's XMI file, creating an object tree of the
      model for use by the engine and the cartridge templates.
   3. Then engine will traverses the object tree, looking for classes tagged with
      stereotypes it recognizes
   4. For each class located, the appropriate cartridge template are identified and
      dispatched to generate code. Multiple source code files may be generated for
      each tagged class in the model: more than one template in a given cartridge may
      generate code for any given class; more than one cartridge may generate code for
      any given class. The default templates for a cartridge may be used, or a
      customized version may be used, depending on our configuration.
   5. The same process will repeated for every class in the model.

Conclusion

                             MODEL – Do not Code!!!



                                                                                          7
Presented By: Anand C                        Date: 08/26/2008




                              Ajax

CONTENTS                                     Pages

      Introduction …………………………………………………9

      Ajax Framework…………………………………………….9

      Advantages of Ajax…………………………………………9

      Frameworks and languages               10

             Server-driven Ajax frameworks   10

             JavaScript                      10

             Java                            10

      Ajax roundtrip                         11
             Dispatching an XMLHttpRequest   11

             Servlet request handling        11

      Conclusion                             12




                                                                8
Presented By: Anand C                                              Date: 08/26/2008




                                Ajax Framework


Introduction
                AJAX is a framework for quickly creating efficient and interactive Web
applications that work across all popular browsers. With Ajax, web applications can
retrieve data from the server asynchronously. Data is retrieved using the
HMLHttpRequest object or through the use of Remote Scripting in browsers that do not
support it.

Ajax Framework
               It’s a framework that helps to develop web applications using Ajax. Data
is read from the server by JavaScript requests. However, some processing at the server
side may be required to handle requests, such as finding and storing the data. This is
accomplished more easily with the use of a framework dedicated to process Ajax
requests.

Advantages of Ajax
       * Using Ajax, a web application can request only the content that needs to be
         updated, which drastically reducing bandwidth usage.

       * Asynchronous requests allows the client's Web browser UI to be more
       interactive and to respond quickly to inputs, and sections of pages can also
       be reloaded individually. Users may perceive the application to be faster or more
       responsive, even if the application has not changed on the server side.

       *The use of Ajax can reduce connections to the server, since scripts and style
       sheets only have to be requested once.




                                                                                           9
Presented By: Anand C                                               Date: 08/26/2008


Frameworks and languages

Server-driven Ajax frameworks
Components are created and manipulated on the server using a server-side programming
language. Pages are then rendered by a combination of server-side and client-side HTML
generation and manipulation. User actions are communicated to the server via Ajax
techniques, server-side code manipulates a server-side component model, and changes to
the server component model are reflected on the client automatically.

Ajax frameworks that handle presentation completely within the browser offer greater
responsiveness because they handle many more user interactions without server
involvement. For example an input field that is dynamically enabled or disabled based on
server-side code may cause many network requests. Furthermore, server-dependent Ajax
frameworks will never be able to offer support. Still, this approach is popular, especially
in situations where the benefits of a full Ajax architecture can't be captured anyway.

JavaScript

JavaScript utilities run browser-side and are very commonly used in Ajax development.
Prototype is a JavaScript extension that provides utilities to compensate for the
shortcomings of JavaScript.

Java

Some Frameworks use Java for server-side AJAX operations. The Google Web Toolkit, a
widget library with Java to JavaScript compiler, is widely used by webmasters.



Ajax roundtrip

        Ajax interaction begins with a JavaScript object called XMLHttpRequest. As the
name suggests, it allows a client-side script to perform HTTP requests, and it will parse
an XML server response. The first step in this Ajax roundtrip is to create an
XMLHttpRequest instance. The HTTP method to use for the request (GET or POST) and
the destination URL are then set on the XMLHttpRequest object.

        When we send that HTTP request, we don't want the browser to hang around
waiting for the server to respond. Instead, we want it to continue reacting to the user's
interaction with the page and deal with the server's response when it eventually arrives.
To accomplish this, we can register a callback function with the XMLHttpRequest and
then dispatch the XMLHttpRequest asynchronously. Control then returns to the browser,
but the callback function will be called when the server's response arrives.




                                                                                         10
Presented By: Anand C                                                Date: 08/26/2008


       On the Java Web server, the request arrives just like any other
HttpServletRequest. After parsing the request parameters, the servlet invokes the
necessary application logic, serializes its response into XML, and writes it to the
HttpServletResponse.

        Back on the client side, the callback function registered on the XMLHttpRequest
is now invoked to process the XML document returned by the server. Finally, the user
interface is updated in response to the data from the server;

Dispatching an XMLHttpRequest

Creating and dispatching an XMLHttpRequest from the browser. The method to create an
XMLHttpRequest differs from browser to browser. The JavaScript function in Listing 2
smoothes out these browser-dependent wrinkles, detecting the correct approach for the
current browser and returning an XMLHttpRequest ready to use. It's best to think of this
as boilerplate code: simply copy it into our JavaScript library and use it when we need an
XMLHttpRequest.

Servlet request handling

Handling an XMLHttpRequest with a servlet is largely the same as handling a regular
HTTP request from a browser. The form-encoded data sent in the POST request's body
can be obtained with HttpServletRequest.getParameter() calls. Ajax requests take
part in the same HttpSession as regular Web requests from the application

It's important to set the response's content type to application/xml, otherwise the
XMLHttpRequest      will not parse the response content into an XML DOM

Response handling with JavaScript

The readyState property of XMLHttpRequest is a numeric value that gives the status of
the request's lifecycle. It changes from 0 for "uninitialized" through to 4 for "complete."
Each time the readyState changes, the readystatechange event fires and the handler
function attached via the onreadystatechange property is called.

The function getReadyStateHandler() was called to create a handler function. This
handler function was then assigned to the onreadystatechange property.
getReadyStateHandler() exploits the fact that functions are first-class objects in
JavaScript. This means that functions can be parameters to other functions and can also
create and return other functions. It is the job of getReadyStateHandler() to return a
function that checks whether the XMLHttpRequest has completed and passes the XML
response onto the handler function specified by the caller. Listing 6 is the code for
getReadyStateHandler()




                                                                                          11
Presented By: Anand C                                                            Date: 08/26/2008




Conclusion
        Ajax minimizes the number of page. The Ajax application stays on the screen
continuously while the Ajax engine handles data exchange with the server. Instead of
page refreshes, the application updates only those parts of the screen affected by newly
arrived data.



--------------------------------------------------------------------------------------------------------




                                                                                                           12

Más contenido relacionado

La actualidad más candente

Object-Oriented Application Frameworks
Object-Oriented Application FrameworksObject-Oriented Application Frameworks
Object-Oriented Application Frameworkskim.mens
 
Cocoa encyclopedia
Cocoa encyclopediaCocoa encyclopedia
Cocoa encyclopediaAlex Ali
 
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)mikaelbarbero
 
Uml Diagrams for Web Developers
Uml Diagrams for Web DevelopersUml Diagrams for Web Developers
Uml Diagrams for Web DevelopersDave Kelleher
 

La actualidad más candente (6)

Object-Oriented Application Frameworks
Object-Oriented Application FrameworksObject-Oriented Application Frameworks
Object-Oriented Application Frameworks
 
Staruml
StarumlStaruml
Staruml
 
Cocoa encyclopedia
Cocoa encyclopediaCocoa encyclopedia
Cocoa encyclopedia
 
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
 
Uml Diagrams for Web Developers
Uml Diagrams for Web DevelopersUml Diagrams for Web Developers
Uml Diagrams for Web Developers
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 

Similar a MDA Architecture - UML modeling Presentation

MODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptxMODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptxpawan745387
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
Dynamo visual programming for design
Dynamo visual programming for designDynamo visual programming for design
Dynamo visual programming for designĐan Nguyễn
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)swethadln
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010MD DAY
 
Mech auto cad-report.ppt
Mech auto cad-report.pptMech auto cad-report.ppt
Mech auto cad-report.pptRanjithMR5
 
Applying sys ml_with_magicdraw
Applying sys ml_with_magicdrawApplying sys ml_with_magicdraw
Applying sys ml_with_magicdrawelheshk
 
Dynamo with robot structural
Dynamo with robot structuralDynamo with robot structural
Dynamo with robot structuralTPHCM
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWareMichael Vorburger
 
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...IRJET Journal
 
Towards Interactive 3D Graphics in Chemistry Publications
Towards Interactive 3D Graphics in Chemistry PublicationsTowards Interactive 3D Graphics in Chemistry Publications
Towards Interactive 3D Graphics in Chemistry PublicationsVladislav Vasilyev (Vassiliev)
 
Towards Interactive 3D Graphics in Chemistry Publications
Towards Interactive 3D Graphics in Chemistry PublicationsTowards Interactive 3D Graphics in Chemistry Publications
Towards Interactive 3D Graphics in Chemistry PublicationsVladislav Vasilyev (Vassiliev)
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusWillert
 
Reuse Strategy for MBSE Data - GPDIS 2022
Reuse Strategy for MBSE Data - GPDIS 2022Reuse Strategy for MBSE Data - GPDIS 2022
Reuse Strategy for MBSE Data - GPDIS 2022SodiusWillert
 
Cameo Workbench
Cameo WorkbenchCameo Workbench
Cameo Workbenchsodius7789
 

Similar a MDA Architecture - UML modeling Presentation (20)

MODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptxMODEL DRIVEN DEVELOPMENT (1).pptx
MODEL DRIVEN DEVELOPMENT (1).pptx
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Dynamo visual programming for design
Dynamo visual programming for designDynamo visual programming for design
Dynamo visual programming for design
 
Solidworks software
Solidworks softwareSolidworks software
Solidworks software
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010
 
Mech auto cad-report.ppt
Mech auto cad-report.pptMech auto cad-report.ppt
Mech auto cad-report.ppt
 
Profile Rajkumar
Profile RajkumarProfile Rajkumar
Profile Rajkumar
 
Applying sys ml_with_magicdraw
Applying sys ml_with_magicdrawApplying sys ml_with_magicdraw
Applying sys ml_with_magicdraw
 
Dynamo with robot structural
Dynamo with robot structuralDynamo with robot structural
Dynamo with robot structural
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
CAD/CAE
CAD/CAECAD/CAE
CAD/CAE
 
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
IRJET- Generation of HTML Code using Machine Learning Techniques from Mock-Up...
 
Computer graphics
Computer graphicsComputer graphics
Computer graphics
 
Towards Interactive 3D Graphics in Chemistry Publications
Towards Interactive 3D Graphics in Chemistry PublicationsTowards Interactive 3D Graphics in Chemistry Publications
Towards Interactive 3D Graphics in Chemistry Publications
 
Towards Interactive 3D Graphics in Chemistry Publications
Towards Interactive 3D Graphics in Chemistry PublicationsTowards Interactive 3D Graphics in Chemistry Publications
Towards Interactive 3D Graphics in Chemistry Publications
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
 
Reuse Strategy for MBSE Data - GPDIS 2022
Reuse Strategy for MBSE Data - GPDIS 2022Reuse Strategy for MBSE Data - GPDIS 2022
Reuse Strategy for MBSE Data - GPDIS 2022
 
Pro Model
Pro ModelPro Model
Pro Model
 
Cameo Workbench
Cameo WorkbenchCameo Workbench
Cameo Workbench
 

MDA Architecture - UML modeling Presentation

  • 1. Presented By: Anand C Date: 08/26/2008 CONTENTS Pages Introduction Magicdraw - 2 Why we need Magicdraw? - 2 MagicDraw and UML - 3 Working with Diagram - 3 Working with Project - 3 Conclusion - 4 1
  • 2. Presented By: Anand C Date: 08/26/2008 Magicdraw UML modeling As my understanding MagicDraw is a visual UML modeling tool which is designed for developers. So they can deliver source code from their UML model instantly. This tool will allow the developer or business professional to draw, design, and view UML diagrams of Object Oriented systems. MagicDraw is a code engineering tool which has best code engineering mechanism - full round-trip support for Java, C++ and other programming languages, We may construct UML models, generate source code from it, code more by hand or use our favorite IDE, then reverse the code again, make some changes in MagicDraw, and merge that model with code again - no details are lost, no matter which way backward or forward we are going. Why we need Magicdraw? The key features of Magicdraw is “Fastest way to create Application Architecture”, other main features are, (a) MagicDraw's reverse engineering is the fastest way to get UML models from Java and XML Schema source code. Automatic generation of sequence diagrams from Java source code adds a more detailed view of the system. (b) Automatic generation of static structure. (c) Package dependency. (d) Automatically generating our hierarchy diagram allows multiple views of the same model. (e) MagicDraw's Teamwork Server, multiple developers can work simultaneously on the same model. This accelerates our team's collaboration while providing simple configuration management, controlled access to all our artifacts, and remote access to our model. It's the optimal way to manage our model and avoid version conflicts. (f) Support most popular IDEs Eclipse, IBM WSAD and RAD, Borland JBuilder, IntelliJ IDEA, NetBeans, Sun Java Studio eliminate the need for a native MagicDraw IDE. (g) Round-trip engineering to keep model and code synchronized. (h) Easy GUI access (i) Delivers source code from our UML model instantly (j) Automatic report generation (k) The report engine allows we to generate up-to-date reports based on our own templates with lowest and formatting specified. (l) We can quickly create custom diagrams that fit our software development process. Define our own custom toolbar for stereotyped element creation - - we'll instantly accelerate our modeling effort. (m) MagicDraw UML allows model transformations both ways: from Platform Independent Model (PIM) to Platform Specific Model (PSM) and from 2
  • 3. Presented By: Anand C Date: 08/26/2008 PSM to PIM. With model transformations, we can produce many specific models, such as XML Schema, DDL, or our customized specific model from a generic one. (n) Seedy navigation through our models (o) MagicDraw runs on a wide variety of operating systems, such as Windows 98/ME/NT/2000/XP/Vista, Solaris, OS/2, Linux, HP-UX, AIX, MacOS (X) and everywhere else where Java 5 or 6 is supported. MagicDraw and UML UML provides standardized pictures of our software applications and allows development team to quickly grasp the functionality contained within the application. UML is a language and a process with neutral notation. This means that we can use it to design our entire OO System in any programming language and any software development process. Visual modeling means that first design our system by drawing diagrams and then employ tools to convert those diagrams into code. The transition from the design to the implementation phase is smoother and more straightforward. Moreover, using the features of reverse engineering and code generation, the developer can move back and forth between the code and the design that is being expressed in the Diagrams. Visual modeling tools provide many features that replace some of the more tedious tasks for the developer. Some of the leading tools provide so-called round- trip code engineering capabilities – the structure of reverse engineered code is changed in the modeling tool and is generated back without the implementation of specific information lost. Working with Diagram When working with diagrams it is helpful to keep in mind the following concepts: • A shape refers to a notation of a model element, such as a package, class, state, use case, object, or others. • A path refers to the notation for the various kinds of relationships such as associations, aggregations, dependency, message, and links. • Both paths and shapes are defined as symbols. Diagram Basics To create a new diagram From the toolbar: Click the desired diagram button on the toolbar. The Create Diagram dialog box opens. Enter the name of the diagram and select or create a package where we wish to create our diagram. 3
  • 4. Presented By: Anand C Date: 08/26/2008 From the Diagrams menu: From the Diagrams menu, select the desired diagram. The corresponding Diagrams dialog box opens. Click Add. The Create Diagram dialog box opens. Enter the name of the diagram and select or create a package where we wish to create our diagram. From the Browser: Right-click the desired model element in which we would like to create a diagram and, from the shortcut menu, select New Diagram. Type the name for diagram directly in the Browser. From the model element Specification dialog box: Open the Package, Profile, Model Specification or other elements Inner Elements tab. Click Create. The corresponding Diagram Specification dialog box opens. In this dialog box, we can define the diagram From the Browser: Select Open from the diagram item shortcut menu or double-click the diagram item. From the Diagrams menu: From the Diagrams menu, select the desired diagram. The corresponding Diagrams dialog box opens. Click the Open button. From the Content Diagram (available only in the Enterprise edition), If a diagram is added to the table of contents or a symbol of a diagram is drawn on the Diagram Pane.If the diagram is assigned to a particular model element, double click this model element. Working with Projects The newly created project consists of the following packages: 1. Data package is empty and holds all model elements 2. File View package contains components that are created during code engineering and Represent source files. Adding a resident element to a particular component causes that Element to be generated within the source file. 3. UML Standard Profile contains stereotypes that are necessary for working with MagicDraw, primitive data types and constraints (which are UML standard), and UML 2 metamodel elements. The following data types are specified in MagicDraw: boolean, byte, char, date, double, float, int, Integer, long, short, void, and string. We can also create our own packages for holding the model elements. By default, packages cannot be deleted or renamed in a project (except for the File View package). Conclusion MagicDraw is a serious contender among UML design tools. While providing extensive UML 2.0 support. 4
  • 5. Presented By: Anand C Date: 08/26/2008 AndroMDA A New Paradigm in software development CONTENTS Pages Introduction AndroMDA - 6 Why AndroMDA? - 6 MDA and code generation - 6 AndroMDA Features 7 Working with AndroMDA 7 How AndroMDA generates code 7 Conclusion 7 5
  • 6. Presented By: Anand C Date: 08/26/2008 AndroMDA - Code Generation Introduction AndroMDA is one of the most poourful Open Source MDA Generators. It is used all over the world for everything from simple applications to complex enterprise applications. AndroMDA comes with an array of ready-made cartridges for common architectures like Spring, EJB, .NET, Hibernate and Struts. Why AndroMDA? AndroMDA can setup a new J2EE project from scratch, in which code is generated from a UML model. We can choose to generate code for Hibernate, EJB, Spring, Web Services, and Struts. The generated code is automatically integrated into the build process. 1. No need to write redundant code. 2. Our project models will reflect our code. 3. Projects are diagrammed in a standard platform independent way making it much faster to adapt to ever rapidly changing technologies. 4. We will have our models that allow much easier communication with the business logic. MDA and code generation MDA is a set of related standards specified by the Object Management Group (OMG). MDA generators which use some or all of these standards to turn UML models into working Java. Ideally MDA generators build full applications, constructed from a set of components, from one or more input models. MDA is the idea of multiple levels of models. This starts at the highest level with the platform independent model (PIM). The PIM specifies and maps entities in the most abstract form possible which still captures all of the requirements. The next level down is the platform specific model (PSM). This model is an augmented version of the PIM which adds all of the structures required to implement the PIM, but still modeled in a UML form. Generators use the PSM to create the output code. AndroMDA Main Features 6
  • 7. Presented By: Anand C Date: 08/26/2008 1. AndroMDA is pluggable and can be exchanged. 2. AndroMDA will support for major UML tools like MagicDraw 3. Model transformations help to raise abstraction level. We can write our own transformations in any transformation language. 4. Templates are based on well-known template engines. Right now, Velocity and FreeMarker are supported 5. Cartridges for common enterprise architectures (EJB, Spring, Hibernate, Struts, JSF, Axis, jBPM) Working with AndroMDA AndroMDA is an automatic tool. AndroMDA preconditions are modeling conventions. This means that a UML model for use with AndroMDA cannot be structured arbitrarily but has to certain structure that can be interpreted by AndroMDA. Modeling standards/requirements will ultimately be dependantant on the implementation of the cartridge. Each cartridge has required properties and modeling conventions that must be followed. In general, there are rules to follow when we start design model and we want AndroMDA to generate our components smoothly. How AndroMDA generates code? The following describes the process of AndroMDA engine to generate code. 1. Cartridges that the project requires are loaded by the engine. 2. The engine will parses the UML model's XMI file, creating an object tree of the model for use by the engine and the cartridge templates. 3. Then engine will traverses the object tree, looking for classes tagged with stereotypes it recognizes 4. For each class located, the appropriate cartridge template are identified and dispatched to generate code. Multiple source code files may be generated for each tagged class in the model: more than one template in a given cartridge may generate code for any given class; more than one cartridge may generate code for any given class. The default templates for a cartridge may be used, or a customized version may be used, depending on our configuration. 5. The same process will repeated for every class in the model. Conclusion MODEL – Do not Code!!! 7
  • 8. Presented By: Anand C Date: 08/26/2008 Ajax CONTENTS Pages Introduction …………………………………………………9 Ajax Framework…………………………………………….9 Advantages of Ajax…………………………………………9 Frameworks and languages 10 Server-driven Ajax frameworks 10 JavaScript 10 Java 10 Ajax roundtrip 11 Dispatching an XMLHttpRequest 11 Servlet request handling 11 Conclusion 12 8
  • 9. Presented By: Anand C Date: 08/26/2008 Ajax Framework Introduction AJAX is a framework for quickly creating efficient and interactive Web applications that work across all popular browsers. With Ajax, web applications can retrieve data from the server asynchronously. Data is retrieved using the HMLHttpRequest object or through the use of Remote Scripting in browsers that do not support it. Ajax Framework It’s a framework that helps to develop web applications using Ajax. Data is read from the server by JavaScript requests. However, some processing at the server side may be required to handle requests, such as finding and storing the data. This is accomplished more easily with the use of a framework dedicated to process Ajax requests. Advantages of Ajax * Using Ajax, a web application can request only the content that needs to be updated, which drastically reducing bandwidth usage. * Asynchronous requests allows the client's Web browser UI to be more interactive and to respond quickly to inputs, and sections of pages can also be reloaded individually. Users may perceive the application to be faster or more responsive, even if the application has not changed on the server side. *The use of Ajax can reduce connections to the server, since scripts and style sheets only have to be requested once. 9
  • 10. Presented By: Anand C Date: 08/26/2008 Frameworks and languages Server-driven Ajax frameworks Components are created and manipulated on the server using a server-side programming language. Pages are then rendered by a combination of server-side and client-side HTML generation and manipulation. User actions are communicated to the server via Ajax techniques, server-side code manipulates a server-side component model, and changes to the server component model are reflected on the client automatically. Ajax frameworks that handle presentation completely within the browser offer greater responsiveness because they handle many more user interactions without server involvement. For example an input field that is dynamically enabled or disabled based on server-side code may cause many network requests. Furthermore, server-dependent Ajax frameworks will never be able to offer support. Still, this approach is popular, especially in situations where the benefits of a full Ajax architecture can't be captured anyway. JavaScript JavaScript utilities run browser-side and are very commonly used in Ajax development. Prototype is a JavaScript extension that provides utilities to compensate for the shortcomings of JavaScript. Java Some Frameworks use Java for server-side AJAX operations. The Google Web Toolkit, a widget library with Java to JavaScript compiler, is widely used by webmasters. Ajax roundtrip Ajax interaction begins with a JavaScript object called XMLHttpRequest. As the name suggests, it allows a client-side script to perform HTTP requests, and it will parse an XML server response. The first step in this Ajax roundtrip is to create an XMLHttpRequest instance. The HTTP method to use for the request (GET or POST) and the destination URL are then set on the XMLHttpRequest object. When we send that HTTP request, we don't want the browser to hang around waiting for the server to respond. Instead, we want it to continue reacting to the user's interaction with the page and deal with the server's response when it eventually arrives. To accomplish this, we can register a callback function with the XMLHttpRequest and then dispatch the XMLHttpRequest asynchronously. Control then returns to the browser, but the callback function will be called when the server's response arrives. 10
  • 11. Presented By: Anand C Date: 08/26/2008 On the Java Web server, the request arrives just like any other HttpServletRequest. After parsing the request parameters, the servlet invokes the necessary application logic, serializes its response into XML, and writes it to the HttpServletResponse. Back on the client side, the callback function registered on the XMLHttpRequest is now invoked to process the XML document returned by the server. Finally, the user interface is updated in response to the data from the server; Dispatching an XMLHttpRequest Creating and dispatching an XMLHttpRequest from the browser. The method to create an XMLHttpRequest differs from browser to browser. The JavaScript function in Listing 2 smoothes out these browser-dependent wrinkles, detecting the correct approach for the current browser and returning an XMLHttpRequest ready to use. It's best to think of this as boilerplate code: simply copy it into our JavaScript library and use it when we need an XMLHttpRequest. Servlet request handling Handling an XMLHttpRequest with a servlet is largely the same as handling a regular HTTP request from a browser. The form-encoded data sent in the POST request's body can be obtained with HttpServletRequest.getParameter() calls. Ajax requests take part in the same HttpSession as regular Web requests from the application It's important to set the response's content type to application/xml, otherwise the XMLHttpRequest will not parse the response content into an XML DOM Response handling with JavaScript The readyState property of XMLHttpRequest is a numeric value that gives the status of the request's lifecycle. It changes from 0 for "uninitialized" through to 4 for "complete." Each time the readyState changes, the readystatechange event fires and the handler function attached via the onreadystatechange property is called. The function getReadyStateHandler() was called to create a handler function. This handler function was then assigned to the onreadystatechange property. getReadyStateHandler() exploits the fact that functions are first-class objects in JavaScript. This means that functions can be parameters to other functions and can also create and return other functions. It is the job of getReadyStateHandler() to return a function that checks whether the XMLHttpRequest has completed and passes the XML response onto the handler function specified by the caller. Listing 6 is the code for getReadyStateHandler() 11
  • 12. Presented By: Anand C Date: 08/26/2008 Conclusion Ajax minimizes the number of page. The Ajax application stays on the screen continuously while the Ajax engine handles data exchange with the server. Instead of page refreshes, the application updates only those parts of the screen affected by newly arrived data. -------------------------------------------------------------------------------------------------------- 12