CSC/ECE 517 Summer 2008/wiki2 3 kb: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
 
(65 intermediate revisions by the same user not shown)
Line 1: Line 1:
==''Unified Modeling Language(UML)''==
=='''Unified Modeling Language(UML)'''==
===what is UML?===
The Unified Modelling Language (UML) is a diagramming language or notation to specify, visualise and document models of Object Orientated software systems. UML is not a development method, that means it does not tell you what to do first and what to do next or how to design your system, but it helps you to visualise your design and communicate with others. UML is controlled by the Object Management Group (OMG) and is the industry standard for graphically describing software.


UML is designed for Object Orientated software design and has limited use for other programming paradigms.  
===What is UML in Computer Science?===
*The '''Unified Modelling Language (UML)''' is a diagramming language to specify, visualise and document models of Object Oriented software systems.  


UML is composed of many model elements that represent the different parts of a software system. The UML elements are used to create diagrams, which represent a certain part, or a point of view of the system. The following types of diagrams are supported by Umbrello UML Modeller:
*UML is not a development method, that means it does not tell you what to do first and what to do next or how to design your system, but it helps you to visualise your design and communicate with others.


*Use Case Diagrams show actors (people or other users of the system), use cases (the scenarios when they use the system), and their relationships
*UML is managed by the Object Management Group (OMG) and is the industry standard for graphically describing software.UML is designed for ''' Object Orientated software design ''' and has limited use for other programming paradigms.


*Class Diagrams show classes and the relationships between them
*[http://www.slideshare.net/ddebowczyk/uml-modeling-step-by-step?src=related_normal&rel=16709 link to UML getting started]
**This link explains us the concepts of UML in detail.


*Sequence Diagrams show objects and a sequence of method calls they make to other objects.
===Review of MVC sites on the Web that are best for learning MVC(Model-View-Controller)Architechture===


*Collaboration Diagrams show objects and their relationship, putting emphasis on the objects that participate in the message exchange
*[http://ootips.org/mvc-pattern.html link1]
This link gives an introduction to learn the concepts and the relationship between Model,View and the Controller.


*State Diagrams show states, state changes and events in an object or a part of the system
*[http://en.wikipedia.org/wiki/Model-view-controller link2]
Next,This link gives an basic overview of the MVC architecture and then talks about the implementation of MVC in various languages along with a wide variety of examples.


*Activity Diagrams show activities and the changes from one activity to another with the events occurring in some part of the system
*[http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html link3]
This link describes in detail the MVC framework as it existed in Smalltalk-80 v2.0 and also explains clearly the components of the MVC pattern.


*Component Diagrams show the high level programming components (such as KParts or Java Beans).
*[http://www.enode.com/x/markup/tutorial/mvc.html link4]
This Tutorial describes the mvc pattern and gives an detailed example on how to use MVC pattern for Web Services using Java as an interface.
*[http://martinfowler.com/eaaDev/uiArchs.html link5]
This website provides an in-depth MVC description with examples to clearly understand the concept.


*Deployment Diagrams show the instances of the components and their relationships.
*[http://www.codeproject.com/KB/architecture/ModelViewController.aspx link6]
This article will explain the usage of Robustness Analysis in conjunction with Model View Controller, using UML with application in ASP.NET. This article is a sequel to my articles on Architecture and Design with ASP.NET


==Web extensions to UML: Using the MVC Triad==
===Review of MVC sites on the Web that are best applicable for JAVA===
Current Web Modelling Languages (WMLs) fall short of the
*[http://java.sun.com/blueprints/patterns/MVC-detailed.html link1]
requirements for the modelling of web system development. In particular,
In this link an application of MVC in java is Illustrated.
those WMLs with a hypermedia basis are more closely focussed on
the information architecture whereas software system WMLs are more
focussed on the functional architecture. Generally, modelling languages
have failed to bridge the gap between these two areas. They also do not
handle well the connection between different levels of abstraction and are
largely unable to connect well with business models. Based on an analysis
of existing modelling approaches, we propose a conceptual extension
to modelling approaches that attempts to address these limitations. We
show how it can implemented using UML modelling along with the addition
of concepts taken from Web information modelling approaches,
WebML in particular. The extensions are structured around the Model-
View-Controller concept, which we argue provides an appropriate integrating
modelling framework.
==Java the UML Way==


The Case
*[http://www.ibm.com/developerworks/web/library/j-struts/ link2]
*To renovate an apartment:
This link introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control change in your Web project and promote specialization. Even if you never implement a system with Struts, you may get some ideas for your future servlets and JSP page implementation.
*How much paint, or wallpaper, will you need for a wall? Or how much flooring?
*Here: A little program calculating the area of a surface, e.g. afloor or a wall.
*We'll work with this case throughout the book. At last we'll have a useful program with graphical user interface (Fig. 15.8)
*Basic questions when solving a programming problem:
*utput data: What do we expect to get? What will the program display to theuser?
*Input data: What has the user to input for the program to produce the given output?
In this case:
*Output data: the area in square meters
*Input data: length and width


Example Run:
*[http://rollerjm.free.fr/pro/Struts11.html link3]
Length: 5.8 m
The website illustrates the Struts 1.1 Controller with UML diagrams. This article is an introduction to the Struts framework in order to help beginners programmers to understand the MVC model 2.
Height: 2.4 m
The area of the wall is 13.92 square meters.


Unfortunately, it is rather difficult to read data in to a program in Java.
===Review of MVC sites on the Web that are best applicable for RUBY===


==Ruby the UML Way==
*[http://wiki.rubyonrails.org/rails/pages/mvc link1]
ruby-uml tries to trace different aspects of an existing application, which is intended to provide support for refactorisations by generating UML-graphs.  
This link gives a clear understanding of MVC and also the application of MVC Ruby on Rails.


ruby-uml is able to generate textual representations of the gathered informations.  
*[http://www.slideshare.net/codeinmotion/mvc-demystified-essence-of-ruby-on-rails?src=related_normal&rel=192456 link2]
These slides give a brief review of the use of MVC Architecture with a few examples in Ruby on Rails.


These representations include pic- or dot-code that can be converted to images by their corresponding applications.  
*ruby-uml tries to trace different aspects of an existing application, which is intended to provide support for refactorisations by generating UML-graphs.  


At this time ruby-uml is able to generate sequence- and class-diagrams.  
*ruby-uml is able to generate textual representations of the gathered informations.  


*These representations include a picture or dot-code that can be converted to images by their corresponding applications.
*ruby-uml is able to generate sequences and class diagrams.


=== ''References'' ===
=== ''References'' ===
*http://www2.tisip.no/JavaTheUmlWay/
#http://www.slideshare.net/ddebowczyk/practical-uml
#http://ootips.org/mvc-pattern.html
#http://en.wikipedia.org/wiki/Model-view-controller
#http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html
#http://www.enode.com/x/markup/tutorial/mvc.html
#http://martinfowler.com/eaaDev/uiArchs.html
#http://www.codeproject.com/KB/architecture/ModelViewController.aspx
#http://www.ibm.com/developerworks/web/library/j-struts/
#http://rollerjm.free.fr/pro/Struts11.html
#http://wiki.rubyonrails.org/rails/pages/mvc
#http://www.slideshare.net/codeinmotion/mvc-demystified-essence-of-ruby-on-rails?src=related_normal&rel=192456
#http://ruby-uml.rubyforge.org/

Latest revision as of 03:49, 8 July 2008

Unified Modeling Language(UML)

What is UML in Computer Science?

  • The Unified Modelling Language (UML) is a diagramming language to specify, visualise and document models of Object Oriented software systems.
  • UML is not a development method, that means it does not tell you what to do first and what to do next or how to design your system, but it helps you to visualise your design and communicate with others.
  • UML is managed by the Object Management Group (OMG) and is the industry standard for graphically describing software.UML is designed for Object Orientated software design and has limited use for other programming paradigms.

Review of MVC sites on the Web that are best for learning MVC(Model-View-Controller)Architechture

This link gives an introduction to learn the concepts and the relationship between Model,View and the Controller.

Next,This link gives an basic overview of the MVC architecture and then talks about the implementation of MVC in various languages along with a wide variety of examples.

This link describes in detail the MVC framework as it existed in Smalltalk-80 v2.0 and also explains clearly the components of the MVC pattern.

This Tutorial describes the mvc pattern and gives an detailed example on how to use MVC pattern for Web Services using Java as an interface.

This website provides an in-depth MVC description with examples to clearly understand the concept.

This article will explain the usage of Robustness Analysis in conjunction with Model View Controller, using UML with application in ASP.NET. This article is a sequel to my articles on Architecture and Design with ASP.NET

Review of MVC sites on the Web that are best applicable for JAVA

In this link an application of MVC in java is Illustrated.

This link introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control change in your Web project and promote specialization. Even if you never implement a system with Struts, you may get some ideas for your future servlets and JSP page implementation.

The website illustrates the Struts 1.1 Controller with UML diagrams. This article is an introduction to the Struts framework in order to help beginners programmers to understand the MVC model 2.

Review of MVC sites on the Web that are best applicable for RUBY

This link gives a clear understanding of MVC and also the application of MVC Ruby on Rails.

These slides give a brief review of the use of MVC Architecture with a few examples in Ruby on Rails.

  • ruby-uml tries to trace different aspects of an existing application, which is intended to provide support for refactorisations by generating UML-graphs.
  • ruby-uml is able to generate textual representations of the gathered informations.
  • These representations include a picture or dot-code that can be converted to images by their corresponding applications.
  • ruby-uml is able to generate sequences and class diagrams.

References

  1. http://www.slideshare.net/ddebowczyk/practical-uml
  2. http://ootips.org/mvc-pattern.html
  3. http://en.wikipedia.org/wiki/Model-view-controller
  4. http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html
  5. http://www.enode.com/x/markup/tutorial/mvc.html
  6. http://martinfowler.com/eaaDev/uiArchs.html
  7. http://www.codeproject.com/KB/architecture/ModelViewController.aspx
  8. http://www.ibm.com/developerworks/web/library/j-struts/
  9. http://rollerjm.free.fr/pro/Struts11.html
  10. http://wiki.rubyonrails.org/rails/pages/mvc
  11. http://www.slideshare.net/codeinmotion/mvc-demystified-essence-of-ruby-on-rails?src=related_normal&rel=192456
  12. http://ruby-uml.rubyforge.org/