UML Tool

The Unified Modeling Language (UML) is a standard language for

  • Specifying
  • Visualizing
  • Constructing
  • Documenting
  • Business Modeling
  • Communications.

Using UML, programmers and application architects can make a blueprint of a project, which, in turn, makes the actual software development process easier.

UML is used for,

1)      Business process modeling with use cases

2)      Class and object modeling

3)      Component modeling

4)      Distribution and deployment modeling

 

What is a UML Tool

  • A UML tool or UML modeling tool is a software application that supports some or all of the notation and semantics associated with the Unified Modeling Language (UML), which is the industry standard general purpose modeling language for software engineering.
  • Software applications simplify the task of drawing diagrams of software designs.
  • Because the design is in an electronic format, archiving the design for future use, collaborating on the design becomes much easier.
  • Routine tasks can be automated by using a UML tool. Hence, using a UML tool is by far the most preferred way for designing software applications.

 

Features of UML tools

  • UML diagram support – support all the nine diagrams
  • Forward engineering – generating the source code
  • Reverse engineering – Opposite of forward engineering
  • Round-trip engineering -synchronize the model with the changes in the application code
  • Documentation – document design decisions in the diagrams by using simple things such as annotations or comments

UML tools

  • Rational Rose – a visual modeling tool for UML

–        Tool from Rational Software Corporation

–        Rose stands for “Rational Object-oriented Software Engineering”

–        Provides support for all the standard features

Types of  UML Tools

  • Together (from Borland) is a lot like Rational Rose
  • ArgoUML looks interesting (and is open source)
  • Poseidon from Gentleware has its roots in the ArgoUML open source project

–        comes in different flavors suited to different requirements

  • Eclipse open source
  • UModel® 2010
  • BlueJ,- displays simple UML diagrams
  • Drawing programs with UML support

–        Visio is a Microsoft tool

–        Dia is a freeware clone of Visio

Tool links

  • Rational Rose

–        http://www-3.ibm.com/software/awdtools/developer/rosexde/

  • Together

–        http://www.borland.com/together/

  • ArgoUML

–        http://argouml.tigris.org

  • Visio

–        Hard to find info on Microsoft’s site!

–        http://msdn.microsoft.com/office/understanding/visio/

Companies working on UML

 

Reaping the Benefits of Good User Requirements with the Unified Modeling Language (UML)

 

      • Requirements gathering – A critical part of any software development project
      • Good user requirements lead to

–        better estimates

–        improved customer satisfaction

–         reduced cost

–         shorter duration

Few questions that need to be asked before the start of any software development project are

 

      • Why are we building the system?
      • What benefits are we expecting to get from it?
      • What do we actually need it to do?

A failure to gather business requirements or assuming we know what is required can lead to

–        a poor outcome

–         requirement for extra resources

–         increased cost

–         longer duration.

When creating a requirements document

 

      • It is important to get everybody involved including the customer, project manager, customer account manager, developers, testers and anyone else with a stake in the project.
      • Requirements gathering is a joint activity not solely the domain of business analysts and project managers.
      • A good set of requirements enables the project manager to plan and estimate the project effectively.

 

      • Running Requirements Meetings

–        Rules for writing requirements documents:

      • Requirements are written in the language of the user
      • Avoid technical jargon
      • Confirm what the system will not do, as well as what it will do
      • Keep it clear, concise and thorough
      • Include a section for non-functional requirements

 

Prototyping

      • When the customer finds it difficult to articulate their requirements, prototyping provides a low cost way to help them visualize a potential solution. Often customers are not entirely sure what they want (particularly in software development projects) and a prototype can help tease out their requirements.

 

System design

      • Once you have established and agreed a clear set of requirements, the next step is to model a software solution. Using a recognized notation can be useful at this stage and help the team create a clear and unambiguous software design document.
      • Before building the solution, check the software design against the requirements to ensure that what you build meets the customers’ needs. Revisit the requirements document regularly to ensure you are staying on-track.
      • Modeling is the designing of software applications before coding

Critical Success Factors

      • To be successful at requirements gathering and to give your software development projects an increased likelihood of success:

–        Don’t assume you know what the customer wants, ask

–        Involve the users from the start

–        Define and agree the scope of the project

–        Ensure requirements are specific, realistic and measurable

      • Create a clear, concise and thorough requirements document and share it with the customer
      • Confirm your understanding of the requirements with the customer (play them back)
      • Avoid talking technology or solutions until the requirements are fully understood
      • Get the requirements agreed with the stakeholders before the project starts
      • Create a prototype if necessary to confirm or refine the customers’ requirements
      • Use a recognized notation, such as UML, for modeling the software
      • Cross check the software design against the requirements and review regularly