Introduction to UML

Introduction of Microsoft Visio.
          
Microsoft Visio is a part of the Microsoft Office Suite of products which consists of Microsoft Word, Microsoft Excel, Microsoft Visio, Microsoft Access and Microsoft Project. Microsoft Visio is a diagramming tool that can be used to visually communicate technical as well as non-technical representations of ideas, processes, concepts, structures, layouts, software models, blueprints, etc. Microsoft Visio eliminates the laborious process of creating diagrams by providing the tools to create complex diagrams in a user friendly manner. Whether you want to create an office layout, a basic flowchart or an organizational structure, you can do it with minimal effort using Microsoft Visio.

What can it do?

Visio is a user friendly tool to create diagrams; hence it can be used by everyone. You do not need to know software programming in order to use Visio. If you know how to use the computer, you can use Visio. Visio can be used in all walks of life. Using Visio, an electrician can create Electrical Diagrams, a student can create a flowchart to understand the process flow, Sales persons can create charts and graphs, Engineers can create Mechanical Engineering diagrams, Managers can create organizational charts and Software programmers can create UML Diagrams and User Interface prototypes. No matter what kind of diagram you need, you can use Visio to create a professional, impressive diagram with minimal effort. Visio can be used by a technical as well as non-technical user to easily create many different kinds of diagrams for documenting and communicating ideas, concepts, blueprints, etc. Some of the different kinds of diagrams that you can create using Visio are:
Flowcharts 
  • Block Diagrams
  • Business Process Diagrams
  • Charts and Graphs
  • Database Models
  • Data Flow Diagrams
  • Electrical Diagrams
  • Mechanical Engineering Diagrams
  • Systems and Network Architecture Diagrams
  • Organizational Charts
  • Gantt Charts
  • User Interface Prototypes
  • Sitemaps for Websites
  • UML Diagrams, etc.
Visio diagrams are compatible with all of the MS Office applications and can be used with word and html documents through the copy paste feature. They can also be used with email programs like Microsoft Outlook and Outlook Express.

2.) What is UML?
UML, or Unified Modeling Language, is a specification language that is used in the software engineering field. It can be defined as a general purpose language that uses a graphical designation which can create an abstract model. This abstract model can then be used in a system. This system is called the UML model. The Object Management group is responsible for defining UML, and they do this via the UML Meta model. XMI can be used to serialize the UML model.

The Unified Modeling Language is commonly used to visualize and construct systems which are software intensive. Because software has become much more complex in recent years, developers are finding it more challenging to build complex applications within short time periods. Even when they do, these software applications are often filled with bugs, and it can take programmers weeks to find and fix them. This is time that has been wasted, since an approach could have been used which would have reduced the number of bugs before the application was completed.

However, it should be emphasized that UML is not limited simply modeling software. It can also be used to build models for system engineering, business processes, and organization structures. A special language called Systems Modeling Language was designed to handle systems which were defined within UML 2.0. The Unified Modeling Language is important for a number of reasons. First, it has been used as a catalyst for the advancement of technologies which are model driven, and some of these include Model Driven Development and Model Driven Architecture.


Unified Modeling Language Characteristics
It must be emphasized that UML is an extensible language. It has two elements that are used for customization, and these are stereotypes and profiles. Much of the semantics for this language were greatly improved with the UML 2.0 update. In 1996, a group of developers came together to create the UML Partners.

It was this collaboration which allowed them to create the Unified Modeling Language. When it was first created, the developers offered it as the response to OMG RFP. While the semantic integration was weak when the language was first introduced it, these problems were fixed with the release of UML 2.0.

Another characteristic of UML is that is borrows many concepts from the object oriented approach. When UML was created, one of the goals of the developers was to create a language that could support every object oriented approach. Some of the features which UML supports includes time analysis, data analysis, object oriented structure design, and state charts. With all these features, UML became the program of choice for professionals who needed to solve various engineering challenges.

Engineers commonly use it for single processes and systems which are distributed. However, UML is not limited to the engineering field. It is useful in any situation where developers need to map out complex systems or processes that can be understood by others.

3.) What is an Object?
            An object is a component of a program that knows how to perform certain actions and to interact with other pieces of the program. Functions have previously been described as "black boxes" that take an input and spit out an output. Objects can be thought of as "smart" black boxes. That is, objects can know how to do more than one specific task, and they can store their own set of data. Designing a program with objects allows a programmer to model the program after the real world. A program can be broken down into specific parts, and each of these parts can perform fairly simple tasks. When all of these simple pieces are meshed together into a program, it can produce a very complicated and useful application.


4.) What is a class?
            A class is an organization of data and functions which operate on them. Data structures are called data members and the functions are called member functions. The combination of data members and member functions constitute a data object or simply an object. Imagine a company that manufactures shoe boxes hires you to write a program that would help design and identify those shoe boxes. A shoe box is recognized for its dimensions (length, width, and height), color, and shoe size that a particular box can contain, etc.

5.) What are models?
When you talk about UML, it is very important to differentiate between the system diagrams and the UML model. A system diagram is a portion of a graphical symbol, and it is used to denote the system's model. The model will have what is called a semantic backplane, and this is a document that is used to deal with the diagrams and elements of a model. There are three areas of the system model that you will want to become familiar with. These are the object model, the functional model, and the dynamic model. Each model has specific roles that it must play for the proper function of the system.

6.) Define OMT.
OMT was developed as an approach to software development. A fundamental assumption of OMT is that object-oriented thinking represents a more natural and intuitive way for people to reason about reality.
The purposes of modeling are,
·       Testing physical entities before building them (simulation),
·       Communication with customers,
·       Visualization (alternative presentation of information), and
·       Reduction of complexity.
OMT proposes three main types of models:

• Object model
The object model represents the static and most stable phenomena in the modeled domain (Rum Baugh et al., 1991:21). Main concepts are classes and associations, with attributes and operations. Aggregation and generalization (with multiple inheritances) are predefined relationships.



•Dynamic model
The dynamic model represents a state/transition view on the model. Main concepts are states, transitions between states, and events to trigger transitions. Actions can be modeled as occurring within states. Generalization and aggregation (concur-rency) are predefined relationships.

•Functional model
The functional model handles the process perspective of the model, corresponding roughly to data flow diagrams. Main concepts are process, data store, data flow, and actors.

The entire OMT software development process has four phases: Analysis, system design, object design, and implementation of the software. Most of the modeling is performed in the analysis phase.


7.) Define Object Model.

            The Object model will be responsible for demonstrating the system structure and substructure, and it will do this by using relationships, attributes, and operations. Class diagrams are closely related to this model.

8.) Define Functional Model.

The functional model will demonstrate the system functionality from the view of the user. It will be directly connected to the use case diagrams. Corresponding roughly to data flow diagrams. Main concepts are process, data store, data flow, and actors.

9.) Define Dynamic Model.

The dynamic model will be responsible for demonstrating inner behavior of a system. It is directly connected to state machine diagrams, sequence diagrams, and activity diagrams.