umlclass-diagramsequence-diagramdiagrams

UMLet Diagrams like Use Case, Class, Activity, etc


Can you please help me find a detailed tutorial on this topics:

  1. UML
  2. Behavior Diagrams
    1. Use Case Diagrams
    2. Activity Diagrams
  3. Structure Diagrams
    1. Class Diagram
  4. Interaction Diagrams
    1. Sequence Diagram
    2. Communication Diagram

I'm really a newbie and I want know what are the ideas in using UML diagrams, there differences, and the tools (like UMLet) that are ideal for novices like me.


Solution

  • First and for most let me discuss UML and Use Cases.

    UML is just a graphical way of describing software systems. There are two types of UML namely:

    1. UML Sketching - here you only want to communicate an idea and go through different alternative approaches. It's not specific but it only gives the basic ideas.
    2. UML Blueprint - This is a very detailed type of modeling in which everything is well laid out and there is a definite time of completion.

    Next up is the UML Development Process.

    1. Waterfall Model - The development process must follow the Analysis, Design, Coding, and Testing Process strictly. Meaning you can't do the coding without the design, and so on. You must start with the Analysis, Design, Coding and Testing (ADCT) Process. Overlapping within this processes is not allowed.
    2. Iterative (Most Common) - The iterative way is kinda different from the waterfall model in a sense that it is more flexible. You can divide the system into pieces and run the ADCT Process on each piece. Meaning you will not do Analysis just once, which will make your system flexible to changes. No wonder this is a more common type of approach.

    Then there's the UML Planning Process

    1. Predictive Planning - outcome is known for the whole duration of the project and everything should run smoothly with all the stakeholders involve, 'on the same page'. If you can easily list all requirements and you are pretty sure that it will not change, Use predictive Planning.

    2. Adaptive Planning (Agile Development) - here the developer continually works with the user for possible changes. They act as 'adaptor' -- to changes. It's flexibility makes it a better option from the predictive planning.

    Finally Use Case Diagrams. Use Case Diagrams define how your program will solve problems or provide some functionality.

    Here's an example: Use Case Diagram

    Use Case Diagrams usually deals with the interaction of Actors which could be a Human, or an External system. The Use cases are represented by the Elipses like "Insert Card".

    The line from the actor towards the Use Cases are called communication lines.

    The 'include' part means that two or more use case will try to access a single use case. whereas the 'extend' part is when a use case will try to access an optional use case.

    The 'Select Amount' Use case is a general use case while under it are two specific use cases.

    After this is the Use Case Description. Basically just a description of your use case. like " The user enters their card and inputs the pin. The system security will then check if the card is active or not stolen and/or if the inputted Pin is correct", etc. It will be wrapped up by saying that the system (security) will provide the funds and the receipt.

    Another thing to note is the

    1. Triggers (Machine receives the card/User enters Pin)

    2. Actors

    3. Preconditions (e.g., bank has sufficient funds)
    4. Goals (e.g., Successful conclusions like being able to provide the user funds).
    5. List failed conclusion (ex: invalid card)
    6. Extensions (ex: If pin is invalid after three 3 tries)
    7. Steps of Execution (ex: From customer Inserts card up to the ejection of the card)

    Activity Diagrams

    Activity Diagrams basically just describes what actions occurred to achieve an ultimate goal. If you are familiar with flow charts, then it will be easier to understand the concepts behind Activity Diagrams.

    Activity Diagram 1 Activity Diagram 2 Activity Diagram 3 Activity Diagram 4

    Initial Nodes is the starting point of the Activity Diagram which is symbolize by a shaded circle.The purple colored notes simply describes the different components of an activity diagram.

    Class Diagrams

    Classes describes types of objects your program will use while Class Diagrams describe those classes and how they relate.

    I will just upload some slide shows to make the tutorial faster:

    Class Diagram Basics Basic Method Diagram UML Class Item Visibility Multiplicity Class Dependence: Dependency Class Dependence: Association Class Dependence: Aggregation and Composition Class Dependence: Inheritance Constraints Pre & Post Condition Constraints Object Constraint Language Abstract Class Diagrams Interface Class Diagrams

    Sequence Diagrams

    Sequence diagrams model interactions in your program and provide you with a logical way to layout your system. They are about showing the order of interactions between the parts of your program.

    In making sequence diagrams, you describe which interactions are triggered and when. They focus in on the order of events in all interactions.

    Again, here are the sequence diagrams of the tutorial:

    Sequence Diagram 1 Sequence Diagram 2 Sequence Diagram 3

    Communication Diagrams

    Communication diagrams are used to show links between participants. They focus in on which interactions are triggered and when. They also describe the order of events in all interactions.

    Communication Diagram 1 Communication Diagram 2 Communication Diagram 3 Communication Diagram 4 Communication Diagram 5 Communication Diagram 6

    These ideas is from the video tutorials of Derek Banas

    Here is a list of UML Tools. Some are free. :)