UNIT-I INTRODUCTION TO UML Contents: 1. 2. 3. 4. 5. 6. Importance of Modeling Principles of Modeling Object Oriented Modeling Conceptual Model of the UML Architecture Software Development Life Cycle 1. Importance of Modeling: Why do we model? A model is a simplification at some level of abstraction We build models to better understand the systems we are developing. To help us visualize To specify structure or behavior To provide template for building system To document decisions we have made 2. Principles of Modeling: The models we choose have a profound influence on the solution we provide Every model may be expressed at different levels of abstraction The best models are connected to reality No single model is sufficient, a set of models is needed to solve any nontrivial system UML is a visual modeling language “A picture is worth a thousand words.” - old saying Unified Modeling Language: “A language provides a vocabulary and the rules for combining words [...] for the purpose of communication.
A modeling language is a language whose vocabulary and rules focus on the conceptual and physical representation of a system. A modeling language such as the UML is thus a standard language for software blueprints.” Usages of UML: UML is used in the course to i. document designs design patterns / frameworks ii. represent different views/aspects of design – visualize and construct designs static / dynamic / deployment / modular aspects iii. provide a next-to-precise,common, language –specify visually for the benefit of analysis, discussion, comprehension... abstraction takes precedence over precision! 20/80 rule aim is overview and comprehension; not execution Object Oriented Modeling: Traditionally two approaches to modeling a software system Algorithmically – becomes hard to focus on as the requirements change Object-oriented – models more closely real world entities
Conceptual Model of the UML: Conceptual Model of UML Building Blocks Rules Things Relationships Diagrams Common Mechanisms 1) Specifications 2) Adornments 3) Common Divisions 4) Extensibility Mechanisms 1. Class Diagram. 1) Association 2. Object Diagram. 2) Dependency 3. Use Case Diagram. 3) Generalization 4. Sequence Diagram. *Stereotypes 4) Realization 5. Collaboration Diagram. *Tagged Values 6. State Chart Diagram. 1) Names *Constraints 7. Activity Diagram. 2) Scope 9. Deployment Diagram. 3) Visibility 4) Integrity 5) Execution Structural Things Behavioral Things Grouping Things Annotational Things *Classes *Interfaces *Collaborations *Use Case *Component *Node *Interaction *State machines *States *Packages *notes
To understand the UML, you need to form a conceptual model of the language, and this requires learning three major elements: the UML's basic building blocks, the rules that dictate how those building blocks may be put together, and some common mechanisms that apply throughout the UML. Once you have grasped these ideas, you will be able to read UML models and create some basic ones. As you gain more experience in applying the UML, you can build on this conceptual model, using more advanced features of the language. Building Blocks of the UML The vocabulary of the UML encompasses three kinds of building blocks: 1. Things 2. Relationships 3. Diagrams Things are the abstractions that are first-class citizens in a model; relationships tie these things together; diagrams group interesting collections of things. Things in the UML There are four kinds of things in the UML: 1. 2. 3. 4. Structural things Behavioral things Grouping things Annotational things These things are the basic object-oriented building blocks of the UML. You use them to write well-formed models. Structural Things Structural things are the nouns of UML models. These are the mostly static parts of a model, representing elements that are either conceptual or physical. Collectively, the structural things are called classifiers. A class is a description of a set of objects that share the same attributes, operations, relationships, and semantics. A class implements one or more interfaces. Graphically, a class is rendered as a rectangle, usually including its name, attributes, and operations, as in Figure 2-1. Figure 2-1. Classes