UML(Unified Modeling Language) - Object-oriented design process



It's the most widly used graphical representation scheme for modeling Object Oriented Systems.One of the most attraction is its flexibility. UML modelers are free to develop systems using various process, but all developers can now express those systems with one standard set of notation.

The UML provides the use case diagram to facilitate the process of requirements gathering. The use case diagram is represented as a rectangle and in it are considered all the use cases for the system. For example an automatic teller machine has different USES CASE:
"Deposit", "WithDraw", and "Transfer Funds".
Graphically: Inside this Rectangle (which is the "Use Case") as Oval is represented each use case.
Why this is important?
In larger systems, use case diagrams are indispensable tools that help systems designers remain focused on satisfying the user' needs. The goal of the use case diagram is to show the kinds of interaction users have with the system without providing the details of those interactions.

Another important step in our design is to consider the ENTITIES which are involved in our system and that will be filtered to determine the CLASSES. The UML at this point is handy again because enables us to model the classes and their relationships via the class diagram.
In a class DIAGRAM, each class is modeled as a RECTANGLE. This rectangle can be divided into three parts: The TOP part contains the classes NAME. The MIDDLE part contains the class's ATTRIBUTES. The BOTTOM contains the class's OPERATIONS.
In this class diagram, a SOLID LINE that connect classes represent an ASSOCIATION.
An associtaion is a relationship between classes. The numbers near the lines express multiplicity values. Multipilicity values indicate how many objects of a class partecipate in the association (ex one-to-one, one-to-many, etc.). The UML also define OBJECT DIAGRAMS(are similar to class DIAGRAMS) except that they model objects and links (where links are relationship between objects), with this model the structure od the system give information about whihc objects are partecipating in the system at the specific point of time.
I would like to point out that also at this point the UML is standardize because: Object Names are written in the form ObjectName:ClassName (note the first word in the Object name is not capitalized). All Object names are underlined.
To describe the condition of an object at a given time UML uses STATE CHART DIAGRAMS.
State chart diagrams give us a way to express how, and under what conditions, the object in a system change state. Each state is represented as a ROUNDED RECTANGLE with the name of the state place inside. A SOLID CIRCLE with an attached arrowhead points to the initial state. The SOLID LINES with arrowheads indicate transitions between states. An object can transit from one state to another in repobse to an event.
A variation of the previous diagram is the ACTIVITY DIAGRAM. It focues on the activity that an object performs, so this diagram models what an object does during its lifetime. As matter the representation: the ACTIVITIES are represented as OVAL, and the name of the activity is placed inside the oval.


Now let's see the phases of the Analysis in the UML:

 

1. In the analysis phase, meet with the clients (the people who want you to build their system) and gather as much information as possible about the system. With this information, create the use cases that describe the ways in which users interact with the system.  We note again that real-world systems often have many use cases.

2. Begin locating the classes in the system by listing the nouns in the problem statement. Filter the list by eliminating nouns that clearly represent attributes of classes and other nouns that are clearly not part of the software system being modeled. Create a class diagram that models the classes in the system and their relationships (associations).

3. Extract the attributes of each class from the problem statement by listing words and phrases that describe each class in the system.

4. Learn more about the dynamic nature of the system. Create statechart diagrams to learn how the classes in the system change over time.

5. Examine verbs and verb phrases associated with each class. Use these phrases to extract the operations of the classes in our system. Activity diagrams can help model the details of these operations.

6. Examine the collaborations between various objects. Use sequence and collaboration diagrams to model these interactions. Add attributes and operations to the classes as the design process reveals the need for them.

 

 

 UML Resources on the Internet and World Wide Web

           The following is a collection of Internet and World Wide Web resources for the UML. These resources include the UML 1.3 specifications and other reference materials, general resources, tutorials, FAQs, articles, whitepapers and software.

 

 

 

 References

 www.omg.org

 Omg.org is the homesite for the Object Management Group (OMG). The OMG is the group responsible for overseeing maintenance and future revisions of the UML. Their Web site contains information about the UML and other object-oriented technologies.

 www.rational.com

 Rational Software Corporation initially developed the UML. Their Web site contains information about the UML and the creators of the UML--Grady Booch, James Rumbaugh and Ivar Jacobson.

 www.omg.org/cgi-bin/doc?ad/99-06-09

 This location contains PDF and ZIP versions of the official UML 1.3 specifications.

 www.omg.org/techprocess/meetings/schedule/UML_1.4_RTF.html

 The OMG maintains at this site information concerning the UML 1.4 specifications, expected to be available beginning in August 2000.

 www.rational.com/uml/resources/quick/index.jtmpl

 Rational Software Corporation’s UML quick-reference guide.

 www.holub.com/class/oo_design/uml.html

 This site provides a detailed UML quick-reference card with additional commentary.

 Resources

 www.omg.org/uml/

 The OMG UML resource page.

 www.rational.com/uml/index.jtmpl

 Rational Software Corporation’s UML resource page

 www.platinum.com/corp/uml/uml.htm

 UML Partners member Platinum Technology maintains a UML resource page at this location.

 www.cetus-links.org/oo_uml.html

 This site contains hundreds of links to UML sites, including information, tutorials and software.

 www.uml-zone.com

 This site contains a wealth of UML information, including articles and links to news groups and to other sites.

 www.methods-tools.com/cgi-bin/DiscussionUML.cgi

 This site contains the front page to a UML discussion group.

 www.pols.co.uk/usecasezone/index.htm

 This site provides resources and articles about applying use cases.

 www.ics.uci.edu/pub/arch/uml/uml_books_and_tools.html

 This site contains links to information about other books on the UML, as well as a list of tools that support UML notation.

 

 

 Software

 www.rational.com/products/rose/index.jtmpl

 This site is the home page for Rational Software Corporation’s UML visual modeling tool Rational Rose.™ You can download a trial version from this location and use it free of charge for a limited time period.

 www.rosearchitect.com/

 Rosearchitect.com is an online magazine, published by Rational Software Corporation, that covers UML modeling using Rational Rose.

 www.advancedsw.com/

 Advanced Software Technologies is the author of GDPro, a UML visual modeling tool. You can download a trial version from their Web site and use it free for a limited time period.

 www.visualobject.com/

 Visual Object Modelers has created a visual UML modeling tool. You can download a limited demonstration version from their Web site and use it free for a limited time period.

 www.microgold.com/version2/stage/product.html

 Microgold Software, Inc. has created WithClass, a software design application that supports the UML notation.

 www.lysator.liu.se/~alla/dia/dia.html

 Dia is a gtk+ diagramming tool that can draw UML class diagrams. Dia runs under UNIX, but the Web site also includes a link to a Windows version.

 www.methods-tools.com/tools/modeling.html

 This site contains a listing of many object modeling tools, including those that support the UML.

 

 

 Articles and Whitepapers

 www.omg.org/news/pr99/UML_2001_CACM_Oct99_p29-Kobryn.pdf

 This article, written by Cris Kobryn, explores the past, present and future of the UML.

 www.sdmagazine.com/uml/focus.rosenberg.htm

 Here you will find an article with tips on how to incorporate the UML into your projects.

 www.db.informatik.uni-bremen.de/umlbib/

 The UML Bibliography provides names and authors of many UML-related articles.You can search articles by author or title.

 www.ratio.co.uk/white.html

 You can read a whitepaper that outlines a process for OOAD using the UML at this site. The paper also includes some implementation in C++.

 www.tucs.fi/publications/techreports/TR234.pdf

 This file contains an OOAD case study of a digital sound recorder using the UML.

 www.conallen.com/whitepapers/webapps/ModelingWebApplications.htm

 This site contains a case study that models web applications using the UML.

 www.sdmagazine.com/

 The Software Development Magazine Online site has a repository of many articles on the UML. You can search by subject or browse article titles.

 

 

 Tutorials

 www.qoses.com/education/

 This site contains a bank of tutorials created by UML author Kendall Scott and maintained by Qoses.

 www.qoses.com/education/tests/test02.html

 You can take an on-line UML quiz at this location. The results are e-mailed to you.

 www.rational.com/products/rose/tryit/tutorial/index.jtmpl

 Rational Software Corporation provides a tutorial file for Rational Rose at this site.

 

 

 FAQs

 www.rational.com/uml/gstart/faq.jtmpl

 This is the location of Rational Software Corporation’s UML FAQ.

 www.jguru.com/jguru/faq/

 Enter UML in the search box to access a this site’s UML FAQ.

 www.uml-zone.com/umlfaq.asp

 This site contains a small UML FAQ maintained by uml-zone.com.

 

 Bibliography

 (Al98) Alhir, S. UML in a Nutshell. Cambridge: O’Reily & Associates, Inc., 1998.

 (Bo99) Booch, G, Rumbaugh, J. and Jacobson, I. The Unified Modeling Language User Guide. Reading, MA: Addison-Wesley, 1999.

 (Fi98) Firesmith, D.G. and B. Henderson-Sellers. “Clarifying Specialized Forms of Association in UML and OML.” Journal of Object-oriented Programming May 1998: 47-50.

 (Fo97) Fowler M. and Scott, K. UML Distilled: Applying the Standard Object Modeling Language. Reading, MA: Addison-Wesley, 1997.

 (Jo00) Johnson, L.J. “Model Behavior.” Enterprise Development May 2000: 20-28.

 (Mc98) McLaughlin, M. and A. Moore. “Real-Time Extensions to the UML.” Dr. Dobb’s Journal December 1998: 82-93.

 (Me98) Melewski, D. “UML Gains Ground.” Application Development Trends October 1998: 34-44.

 (Me97) Melewski, D. “UML: Ready for Prime Time?” Application Development Trends November 1997: 30-44.

 (Me99) Melewski, D. “Wherefore and what now, UML?” Application Development Trends December 1999: 61-68.

 (Mu97) Muller, P. Instant UML. Birmingham, UK: Wrox Press Ltd, 1997.

 (Pe99) Perry, P. “UML Steps to the Plate.” Application Development Trends May 1999: 33-36.

 (Ru99) Rumbaugh, J, Jacobson, I. and Booch, G. The Unified Modeling Language Reference Manual. Reading, MA: Addison-Wesley, 1999.

 (Sc99) Schmuller, J. Sam’s Teach Yourself UML in 24 Hours. Indianapolis: Macmillan Computer Publishing, 1999.

 (UML99) The Unified Modeling Language Specification: Version 1.3. Framingham, MA: Object Management Goup (OMG), 1999.