Friday, 28 June 2013

UMLLAB INTRODUCTION

UNIFIED MODELLING LANGUAGE (UML)
Introduction
Unified Modeling Language (UML) is a standardized general purpose modeling language in the field of software engineering.UML includes a set of graphical notation techniques to create visual models of software intensive systems. The unified modeling language is used to specify, visualize, modify, construct and document the artifacts of object oriented software intensive system under development.
UML offers a standard way to visualize a system’s architectural blueprints, including elements such as actors, business processes, logical components, activities, programming language statements, database schemas and reusable software components.
Object oriented languages (modeling) appeared sometime between the mid 1970s and the late 1980s as methodologists, faced with a new genre of object oriented programming languages and increasingly complex applications, began to experiment with alternative approaches to analysis and design.
The team James Rumbaugh (OMT - Object Modeling Techniques) which was better for object oriented analysis and Grady Booch’s (Booch method) which was better for object oriented design. Together Rumbaugh and Booch attempted to reconcile their two approaches and stated work on a unified method. They are soon assisted in their efforts by Ivar Jacobson, the creator of the object oriented software engineering (OOSE) method.
Under the technical leadership of the three amigos, an international consortium called UML partners was organized in1996 to complete the Unified Modeling Language (UML) specification. Those partners contributing to the UML 1.0 definition including digital equipment corporation, HP, Ilogix, intellicorp, IBM, Microsoft, Oracle, rational, Texaus Instruments, and Unisys. This collaboration resulted in the UML 1.0, a modeling language that was well defined, expressive, powerful and applicable to a wide spectrum of problem domain.UML 1.0 was offered for standardization to the object management group (OMG) in January 1997, standardized in November 1997 by OMG.
UML is an international standard language.UML has matured significantly since UML 1.1 several minor revisions (UML 1.3, 1.4, 1.5) fixed short comings and bugs with the first version of UML, followed by the UML 2.0 major revision that was adopted by the OMG in August 2005. The current versions of these standards follow: UML super structure version 2.2, UML infrastructure version 2.2, and UML diagram interchange version 1.0. The UML is appropriate for modeling systems ranging from enterprise information systems to distributed web based applications and even to hard real time embedded systems. The UML is a language for visualization, specifying, constructing, and documenting the artifacts of a software intensive system.
The UML is intended primarily for software intensive systems. It has been used effectively for such domains as
·         Enterprise Information system
·         Banking and financial services
·         Retail
·         Telecommunications
·         Transportation
·         Defense/aerospace
·         Medical electronics
·         Scientific
·         Distributed web -based services
We create models for the different type of intensive systems by using UML. Depending on the nature of the system, some models may be more important than others. They are data intensive systems, GUI intensive systems, hard real time systems and distributed system (web based applications).

RATIONAL ROSE SOFTWARE
Rational rose is a powerful tool to aid in the analysis and design of object oriented software systems. Rational rose provides support for two essentials elements of two modern software component based development and controlled iterative development. These concepts are conceptually independent. Their usage is combination in both natural and beneficial. Rational rose model diagram architecture facilitates use of unified modeling language, component object based modeling techniques (COM), and object modeling techniques (OMT).Using semantic information ensures correctness by construction and maintaining consistency.
Visual Modeling
Visual modeling is the mapping of real world process of a system to a graphical representation. Models are useful for understanding problems communicating with everyone involved with project customers, domain system experts, analysts, designers etc, modeling complex systems, preparing documentation, and designing programs and data bases. Modeling promotes better understanding of requirements clear designs and more maintainable systems. As software systems becomes more complex we cannot understand them in their entirely to effectively build a complex system. The developer begins by looking at the big picture without getting caught up in the details.
Visual modeling also defines architecture by providing capabilities to capture the logical software architecture independent of the software language. This method provides flexibility to our system design since the logical architecture can always be mapped to a different software language.
Finally with visual modeling we can reuse parts of a system or an application by creating components of our design. These components can then be shared and reused by different members of a team allowing changes to be easily incorporated into already existing development software.
Rational rose is the visual modeling software solution that lets us create, analyze, design, view, modify and manipulate components. We can graphically depict an overview of the behavior of our system with the use case diagram. It shows object interactions organized around objects and their links to one another. The state chart diagrams provide additional analysis techniques for classes with significant dynamic behavior. A state chart causes a transition from one state to another and actions the result from a state change. Activity diagrams provide a way to model a class operation or the work floe of business process. Rational rose provides the notation needed to specify and document the system architecture.
The logical architecture is captured in the class diagrams that contain the classes and relationships that represent the key abstractions of the system under development. The component architecture in component diagrams that focus on the actual software module organization within the development environment. The development architecture is captured in the deployment diagrams that maps software to process nodes showing the configuration of runtime processing elements and then the software process.
Rational rose software Application
Rational rose is a powerful tool to aid the analysis and design of object oriented software system. Rose is a tool meant to be used by the entire project team. It is a responsibility of scope and design environment information and each team member can be used to get the information they need.Rose will help developers by generating Skelton code. Rose can be reverse engineer the code and creates a model based on an existing based system. When a change occurs to the model rose can modify the code to incorporate the change.
Different versions
Rose Modeler   It allows us to create a model for a system but will not support code generation or reverse engineering.
Rose Professional It allows us to generate code in c++, java, visual basic and oracle.
 Views of Rational Rose Model
Ø  Use case view
The use case view includes all of the use cases, actors, and usage diagrams in the system. The use case view also includes Use case documentation, which explains the flow through the use case, including error handling. Interaction diagrams which display the objects or classes involved in one flow through a use case. Packages which are groups or use case or actors. A package is a UML mechanism that helps us to group similar items together.
Ø  Logical view
Logical view provides detailed picture of the pieces of the system and describes how the pieces interrelated. The logical view also includes Classes which contains the information of a system attributes. Class diagrams, which are used to view the classes in the system. Interaction diagram, which are used to display the classes that participate which shows dynamic behavior of an object.State transition diagrams which shows dynamic behavior of an object. Packages which are groups of related classes. The flow of logical view is on the logical structure of the system. In this view   we can identify the process of the system, examine the information and behavior of the system and examine relationship between pieces.
Ø Component View
A component view contains information about the code libraries, executable files, run time libraries, and other components in the model. In rational rose components and component diagrams displayed in the component view. The component view of the system allows us to see the relationships between models of the code. Component diagrams show the components and their relationships to each other. Packages which are groups of related components.
Ø Deployment view
Deployment view concerned with the physical view in concern with physical deployment of the system, which may differs from the local architecture of the system. The deployment may be two tired. The interface may be placed on one machine while the business or database logic are located on another machine. Other issues such as network band width, fault tolerance, response time and disaster recovery are handled using deployment view.

CONCEPTUAL MODEL OF UML

The conceptual model of language UML requires three major elements to understand.
1.      The UML basic building blocks.
2.      The rules that dictate how these building blocks put together.
3.      Some common mechanisms.
Building Blocks of UML
1.      Things
2.      Relationships
3.      Diagrams
Things in UML
1.      Structural things
1.1 Classes
1.2 Interfaces
1.3 Collaborations
1.4 Use Cases
1.5 Active Classes
1.6 Components
1.7 Nodes
2.      Behavioral things
2.1 Interactions
2.2 State machines
3.      Grouping things
3.1 Packages
4.      Annotational things
4.1 Notes


Relationships in UML
1.      Dependency
2.      Association
3.      Generalization
4.      Realization
Diagrams in UML
1.      Class Diagram
2.      Object Diagram
3.      Use case Diagram
4.      Sequence Diagram
5.      Collaboration Diagram
6.      State chart Diagram
7.      Activity Diagram
8.      Component Diagram
9.      Deployment Diagram
Things in UML
Structural  Things
Structural things are nouns of the UML models. These are mostly static parts of a model representing elements that are either conceptual or physical.
There are 7 kinds of structural things.
Class
A class is a set of description of set of objects that share the same attributes, operations, relationships, and semantics. A class implements one or more interfaces.  Graphically a class is rendered as a rectangle usually including its name, attributes and    operations.    
Interface
An interface is a collection of operations that specifies a service of a class or a component. An interface describes the externally visible behavior of that element. An interface might represent the complete behavior of a class or components or only a part of that behavior.
An interface defines a set of operations implementations.  Graphically an interface is rendered as a circle together with its name. An interface rarely stand alone, rather it is typically attached to a class or components.
Interface
Collaboration
Collaboration defines an interaction with roles and other elements to provide some behavior. Collaborations will have structural and behavioral aspects. Collaboration will be represented by an ellipse with dashed lines, usually including its name.
Collaboration
Use Case
A use case is a description of set of sequence of actions that a system performs. A use case is used to structure the behavioral things on a model .A use case is realized by a collaboration. Graphically a use case is rendered as an ellipse with solid lines, usually including its name.
Active Class
An active class is a class whose objects own one or more processes or threads. An active class is just represented like a class with heavy lines with its name, attributes, and operations.
ActiveClass
Component
A component is a physical and replaceable part of a system. Components are artifacts of the development process. A component typically represents the physical packaging of logical elements such as classes, interfaces, and collaborations, graphically rendered as a rectangle with tabs usually including only its name.
Node
A node is a physical element that exists at runtime and represents a computational resource. A set of components may reside on abode and migrate from one node to another. Graphically a node is rendered as a cube usually including only its name.

Behavioral Things    
Behavioral things are dynamic parts of UML models. These are the verbs of a model, representing behavior overtime and space. There are two primary kinds of behavioral things.
Interaction
An interaction is a behavior that comprises a set of messages among a set of objects with in a particular context to accomplish to specific purpose. An interaction includes messages, action sequences and links. Graphically a message is rendered as a direct line, including its name and operations.         
Message
State Machine
A state machine is a behavior that specifies sequence of states of an object or an interaction goes through during its life time in response to events together with its response to those events. The behavioral of a individual class or a collaboration of classes may be specified with a state machine. A state machine involves a number of other elements including states, transitions, and events, activities. Graphically it is rendered as a rounded rectangle usually including its name and its sub states.
StateMachine

Grouping things:
Grouping things are the organizational parts of the UML model into which a model can be decomposed. There is one primary key of grouping things namely packages.
Packages
A package is a general purpose mechanism for organizing elements into groups. Structural things, behavioral things, or even other grouping things may be placed in a package. Graphically it is rendered as a tabbed folder, usually including its name and its content.

Annotational Things:
Annotational things are the explanatory parts of UML models. These are the comments use to describe, illuminate about any element in a mode.
Note
A note is a notational thing which is simply a symbol for rendering constraints, and comments attached to the element or a collection of elements. Graphically a note is rendered as a rectangle with a dog eared corner, together with textual or graphical comments.
Relationships
There are four kinds of relationships in the UML.
·         Dependency
·         Association
·         Generalization
·         Realization
Association
Association is a structural relationship that specifies that objects of one class or thing are connected to objects to the other thing or class association is a structural relationship between two classes and is modelled by a line connecting the two classes. There are four adornments that apply to Association relationship. They are
·         Name
·         Role
·         Direction of Name
·         Multiplicity
Name
An Association can have a name and use that name to describe the nature of the relationship. We can also give the direction to the name by providing a direction triangle those points in the direction we intend to read the name.
Role
When a class participates in an association, it has a specific role that it plays in that relationship. A role is just the face the class at the end of the association presents to the class at the other end of the association
Multiplicity
Multiplicity shows the how many objects or roles participating in an Association It can be written as an expression that evaluates to a range of values or an explicit value as in below.
·         Zero to One         0....1
·         Zero to Many      0....*
·         Zero to Many      0....*
·         Specific Number  n
For example An Association with these adornments can be show in below fig.      
classdiagram-association
Aggregation
A plain association between two classes represents a structural relationship between peers, meaning the both classes are conceptually at the same level no more important than the other. This kind of relationship is called aggregation which represents a “has-a “ relationship meaning that an object of the whole has objects of the part. It is a special kind of association and specified by adorning a plain association with open diamond at the whole end. Aggregations indicate whole part-of relationship.
It is rendered as                                         classdiagram-aggregation
Composition
Composition is a strong type of association relationship. This type of relationship can be placed between the whole and part classes if we delete one class the other class also get destroyed.
Composition relationship means the class is a member of another class. It can be rendered as association
 



Generalization
Generalization is relationship between the general thing (super or parent class) and more specific kind of that thing (Subclass or Child class). Sometimes it is called as “ is-a-kind-of” relationship. A child inherits the properties of its parent class especially attributes and operations. Graphically, Generalization can be rendered as a solid directed line with large open arrowhead as shown in below