You are previewing Learning UML.
O'Reilly logo
Learning UML

Book Description

Since the dawn of computing, software designers and developers have searched for ways to describe the systems they worked so hard to create. Flowcharts enabled the concise documentation of program-flow and algorithms. Entity-relationship diagrams enabled database designers to convey the structure underlying the collection of tables and columns that made up a schema. From the beginning, technologists recognized the descriptive power inherent in visual representations of a system, yet it wasn't until 1997 that the first attempt to create a visual language that could be used across all aspects of a system development project came to fruition. Unified Modeling Language (UML) was born. UML has taken the software development industry by storm. Widely supported by development and documentation tools, UML can be used on the one hand by programmers to record such things as the detailed design of classes in an object-oriented system and on the other hand by business analysts to give the broad-brush picture of how a system interacts with users and other systems. UML has become the lingua franca of software development, and no one in the software industry can afford to be without knowledge of this powerfully expressive visual language. Learning UML introduces UML and places it in perspective, then leads you through an orderly progress towards mastery of the language. You'll begin by learning how UML is used to model the structure of a system. Many key UML concepts, especially that of the general (classes) versus the specific (objects), are illustrated in the chapter on class and object diagrams. Next, you'll learn how to use use-case diagrams to model the functionality of a system. Finally, you'll see how component and deployment diagrams are used to model the way in which a system is deployed in a physical environment. Structural modeling answers the "who" and "what" questions of systems development. Behavioral modeling addresses the questions of "when," "how," and "why." You'll learn how to use sequence and collaboration, to model the interaction over time between system components, how to use state diagrams to describe the life cycle of system components, and how to use activity diagrams to document control-flow and responsibility. Throughout this book, author Sinan Si Alhir maintains a clear focus on UML the language and avoids getting caught up in the cobwebs of methodology. His presentation is direct and to-the-point. Each chapter ends with a set of exercises that you can use to test your growing knowledge of UML and its concepts. As you work your way through the book, you'll find yourself warming up to the simple yet expressive language that is UML, and using it to communicate effectively and professionally about all aspects of system design.

Table of Contents

  1. Learning UML
    1. Preface
      1. Audience
      2. Using This Book
      3. Organization and Content
      4. Conventions Used in This Book
      5. Comments and Questions
      6. Acknowledgments
    2. I. Fundamentals
      1. 1. Introduction
        1. What Is the UML?
          1. The Three Aspects of UML
            1. Language
            2. Model
            3. Unified
          2. Goals and Scope
          3. History
            1. The fragmentation period
            2. The unification period
            3. The standardization period
            4. The revision period
            5. The industrialization period
        2. The UML and Process
          1. Applying a Waterfall Approach
          2. Applying an Iterative Approach
            1. Use cases
            2. Architecture
            3. Risk
        3. Learning the UML
      2. 2. Object-Oriented Modeling
        1. Project Management System Requirements
        2. Alphabets, Words, and Sentences
          1. Alphabet
          2. Words
          3. Sentences
        3. The Object-Oriented Paradigm
          1. Concepts
            1. Classes, associations, objects, and links
            2. Attributes
            3. Operations and methods
            4. Messages and stimuli
          2. Principles
            1. Abstractions
            2. Encapsulation
            3. Generalization
            4. Polymorphism
        4. Paragraphs
          1. Structural Modeling
            1. Class diagrams
            2. Object diagrams
            3. Use-case diagrams
            4. Component diagrams
            5. Deployment diagrams
          2. Behavioral Modeling
            1. Sequence diagrams
            2. Collaboration diagrams
            3. State diagrams
            4. Activity diagrams
          3. Other Elements
            1. Notes
            2. Stereotypes
            3. Properties
        5. Sections
        6. Documents
    3. II. Structural Modeling
      1. 3. Class and Object Diagrams
        1. Classes and Objects
          1. Classes
            1. Attributes
            2. Attribute syntax
            3. Operations
            4. Operation syntax
          2. Objects
            1. Attribute values
            2. Operations
        2. Associations and Links
          1. Associations
            1. Binary associations
            2. N-ary associations
          2. Association Classes
          3. Association Ends
            1. Rolenames
            2. Navigation
            3. Multiplicity
            4. Aggregation
            5. Composition
            6. Qualifiers
          4. Links
            1. Binary links
            2. N-ary links
          5. Link Objects
          6. Link Ends
            1. Rolenames
            2. Navigation
            3. Multiplicity
            4. Aggregation
            5. Composition
            6. Qualifiers
        3. Types, Implementation Classes, and Interfaces
          1. Types
          2. Implementation Classes
          3. Interfaces
        4. Generalizations, Realizations, and Dependencies
          1. Generalizations
            1. Types
            2. Undifferentiated classes
            3. Implementation classes
            4. Interfaces
          2. Realizations
            1. Undifferentiated classes
            2. Implementation classes
          3. Dependencies
        5. Packages and Subsystems
          1. Packages
          2. Subsystems
        6. Exercises
      2. 4. Use-Case Diagrams
        1. Actors
        2. Use Cases
        3. Communicate Associations
        4. Dependencies
          1. Include Dependencies
          2. Extend Dependencies
        5. Generalizations
          1. Actor Generalizations
          2. Use-Case Generalizations
        6. Exercises
      3. 5. Component and Deployment Diagrams
        1. Components
        2. Nodes
        3. Dependencies
          1. Reside Dependencies
          2. Use Dependencies
          3. Deploy Dependencies
        4. Communication Associations
        5. Exercises
    4. III. Behavioral Modeling
      1. 6. Sequence and Collaboration Diagrams
        1. Roles
          1. Classes and Objects
          2. Associations and Links
        2. Messages and Stimuli
        3. Interactions and Collaborations
        4. Sequence Diagrams
          1. Elements
            1. Class roles
            2. Specific objects
            3. Lifelines
            4. Activations
          2. Communication
            1. Reflexive communication
            2. Element creation and destruction
          3. Repetition
          4. Conditionality
        5. Collaboration Diagrams
          1. Elements
            1. Class and association roles
            2. Specific objects and links
          2. Communication
            1. Reflexive communication
            2. Element creation and destruction
          3. Repetition
          4. Conditionality
        6. Exercises
      2. 7. State Diagrams
        1. States
          1. Simple States
          2. Initial and Final States
        2. Transitions
          1. Events
          2. Actions
        3. Advanced State Diagrams
        4. Exercises
      3. 8. Activity Diagrams
        1. Action States
          1. Simple Action States
          2. Initial and Final Action States
        2. Flow Transitions
          1. Control-Flow Transitions
          2. Object-Flow Transitions
        3. Swimlanes
        4. Decisions
        5. Concurrency
        6. Exercises
    5. IV. Beyond the Unified Modeling Language
      1. 9. Extension Mechanisms
        1. Language Architecture
        2. Stereotypes
          1. Defining Stereotypes
          2. Applying Stereotypes
        3. Properties
          1. Tags
            1. Defining tags
            2. Applying tags
          2. Constraints
        4. Profiles
        5. Exercises
      2. 10. The Object Constraint Language
        1. Expressions
        2. Simple Constraints
          1. Attributes
          2. Operations
          3. Link Ends
            1. Link ends with a multiplicity of 1
            2. Link ends with a multiplicity of more than 1
          4. Link Objects
            1. Referring to link objects
            2. Referring to linked object
        3. Complex Constraints
        4. Exercises
    6. V. Appendixes
      1. A. References
        1. World Wide Web
        2. Books
      2. B. Exercise Solutions
        1. Structural Modeling
          1. Chapter 3
          2. Chapter 4
          3. Chapter 5
        2. Behavioral Modeling
          1. Chapter 6
          2. Chapter 7
          3. Chapter 8
        3. Extension Mechanisms and the Object Constraint Language
          1. Chapter 9
          2. Chapter 10
    7. Index
    8. Colophon