UNIT-II Introduction to UML

Similar documents
UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

A Conceptual Model of the UML

Introduction to UML Dr. Rajivkumar S. Mente

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

LABORATORY 1 REVISION

INTRODUCING THE UML. Chapter 2

Allenhouse Institute of Technology (UPTU Code : 505) OOT Notes By Hammad Lari for B.Tech CSE V th Sem

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Introduction to UML. (Unified Modeling Language)

Interactions A link message

Introduction to UML. Danang Wahyu utomo

CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M)

Vidyalankar. T.Y. Diploma : Sem. VI [IF/CM] Object Oriented Modeling and Design Prelim Question Paper Solution

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Basic Structural Modeling. Copyright Joey Paquet,

Unified Modeling Language

UNIT-IV BASIC BEHAVIORAL MODELING-I

UNIT 5 - UML STATE DIAGRAMS AND MODELING

COSC 3351 Software Design. An Introduction to UML (I)

Introduction to Software Engineering. 5. Modeling Objects and Classes

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester

Software Design Methodologies and Testing. (Subject Code: ) (Class: BE Computer Engineering) 2012 Pattern

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

OO Analysis and Design with UML 2 and UP

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Software Engineering from a

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

Composite Structures

UML Tutorial. Unified Modeling Language UML Tutorial

user.book Page 45 Friday, April 8, :05 AM Part 2 BASIC STRUCTURAL MODELING

UNIT-4 Behavioral Diagrams

Software Service Engineering

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Advanced Software Engineering

Experiment no 4 Study of Class Diagram in Rational Rose

Unit-II Programming and Problem Solving (BE1/4 CSE-2)

Object-Oriented Systems Analysis and Design Using UML

Topics. Overview- The UML Functional Model. Structural Model. Behavioral Models. Use Case Diagram (essential and system)

Index. business modeling syntax 181 business process modeling 57 business rule 40

Rubby Casallas Grupo de Construcción de Software Uniandes

UML REFERENCE SHEETS. 2013, 2014 Michael Marking; all rights reserved, including moral rights. Web site:

Unified Modeling Language (UML)

OMG Modeling Glossary B

UML 2.0 UML 2.0. Scott Uk-Jin Lee. Division of Computer Science, College of Computing Hanyang University ERICA Campus

Design of Embedded Systems

Architectural Models and Styles Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 12 The Object Constraint Language (Part A)

Enterprise Architect. User Guide Series. UML Models. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) MODEL ANSWER

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

UML- a Brief Look UML and the Process

IS 0020 Program Design and Software Tools

What is OCL? OCL/Context

Introducing the UML Eng. Mohammed T. Abo Alroos


UNIT-II I. BASIC STRUCTURAL MODELING

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

3. UML Class Diagrams Page 1 of 15

Chapter 1: Principles of Programming and Software Engineering

Chapter 5: Structural Modeling

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic

Introduction to UML CHAPTER 1. Visualizing. Specifying LEARNING OBJECTIVES

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

UNIT V *********************************************************************************************

Software Engineering

OBJECT ORIENTED SIMULATION LANGUAGE. OOSimL Reference Manual - Part 1

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science

SE 1: Software Requirements Specification and Analysis

Object-Oriented and Classical Software Engineering

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

Pattern for Structuring UML-Compatible Software Project Repositories

UML Unified Modeling Language

Agenda. More on the Unified Modeling Language. UML diagram types. Packages

CHAPTER 5 ARCHITECTURAL DESIGN SE211 SOFTWARE DESIGN

Unified Modeling Language 2

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches

Formal Methods in Software Engineering 1

OCL Support in MOF Repositories

Unit II. Advanced Structural Modeling

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis.

12 Tutorial on UML. TIMe TIMe Electronic Textbook

Architecture and the UML

What is a Class Diagram? A diagram that shows a set of classes, interfaces, and collaborations and their relationships

What is a Class Diagram? Class Diagram. Why do we need Class Diagram? Class - Notation. Class - Semantic 04/11/51

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal

Research Paper on Implementation of OCL Constraints in JAVA

Practical UML - A Hands-On Introduction for Developers

The PCAT Programming Language Reference Manual

SPARK-PL: Introduction

OO Techniques & UML Class Diagrams

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017

Darshan Institute of Engineering & Technology for Diploma Studies

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to UML What is UML? Motivations for UML Types of UML diagrams UML syntax Descriptions of the various diagram types Rational Rose (IBM.. M

CS211 Lecture: Modeling Dynamic Behaviors of Systems; Interaction Diagrams and Statecharts Diagrams in UML

UML 2.0 Profile for ArchWare ADL: Coping with UML 2.0

History of object-oriented approaches

Transcription:

UNIT-II Introduction to UML - P. P. Mahale

UML OVERVIEW OF UML :- We need a Modeling Language! We will use the Unified Modeling Language, UML), Provides a standard for artifacts produced during development (semantic models, syntactic notation, and diagrams: the things that must understood, controlled, and exchanged. The Unified Modeling Language (UML) is a language for Specifying Visualizing Constructing Documenting The UML Provides Standardized Diagrams

SCOPE OF UML UML is a language for Specifying Visualizing Constructing Documenting UML is a language:- - Language provide vocabulary & rule for combining words for communication. - Modeling language is a lang. which focus on conceptual & physical representation of a system - Standard language for s/w blueprint - Tell how to create real well formed models.

UML is a language for Visualizing - Each symbol in UML is a well-defined semantics

UML is a language for Specifying - Building model that are precise, unambiguous, & complete - It address specification of all important analysis, design & implementation

UML is a language for constructing - it s model can directly connected to a variety of programming language such as java,c,c++ etc - Mapping permit forward engg: generation of code from a UML model into a programming language. Reverse also possible

UML is a language for documenting - Artifact include:- - Requirement - source code - prototypes - Architecture - project plans - release - Design - tests - It express requirements, activities,planning & release management

Where Can the UML Be Used? Enterprise information systems Banking and financial services Telecommunications Transportation Defense/aerospace Retail Medical electronics Scientific Distributed Web-based services

U M L ~ Unified: Unification of earlier object-oriented analysis and design methods. Same concepts and notation for different application domains and different development processes. Same concepts and notation through the ~ whole development lifecycle. Modeling: Making a semantically* complete abstraction of a system. (* The formal specification of the meaning and behavior of something) ~ Language: A graphical language

Deployment Diagrams Use-Case Diagrams Use-Case Diagrams Use-Case Diagrams Scenario Diagrams Scenario Diagrams Sequence Diagrams State Diagrams State Diagrams State Diagrams Component Diagrams Component Diagrams Component Diagrams Models State Diagrams State Diagrams Object Diagrams Scenario Diagrams Scenario Diagrams Collaboration Diagrams Use-Case Diagrams Use-Case Diagrams Activity Diagrams State Diagrams State Diagrams Class Diagrams

UML 2.0 New Features Goal:- - provide user with ready-to-use expressive visual modeling language - Support higher level development concept, such as collaboration, framework, pattern, component New diagram include:- - Structure diagram - Composite diagram - Communication diagram - Timing diagram - Interaction overview diagram

Significant changes in 2.0 Activity diagrams completely overhauled OMG realized they were being used for business modeling instead of class modeling. Diagrams were made more similar to flowcharts. Package Diagrams added for high level overview of code structure. Collaboration diagrams renamed as communication diagrams but specification remains the same. Timing diagrams added for real-time applications.

DIAGRAM STRUCTURE

DIAGRAM STRUCTURE DIAGRAM STRUCTURAL BEHAVIORAL STRUCTURAL DIAGRAM PACKAGE DIAGRAM OBJECT DIAGRAM CLASS DIAGRAM DEPLOYMENT DIAGRAM COMPONEN T DIAGRAM COMPOSITE DIAGRAM

Behavioral diagram Behavioral DIAGRAM ACTIVITY DIAGRAM INTERACTION DIAGRAM USE-CASE DIAGRAM STATE MACHINE DIAGRAM INTERACTION OVERVIEW DIAGRAM TIMING DIAGRAM COMMUNICATION DIAGRAM SEQUENCE DIAGRAM

CONCEPTUAL MODEL OF UML 3 major element 1. UML s basic building block 2. Rule that dictate how those building block may be put together 3. Common mechanism apply through UML 1. UML s basic building block 3 kind of building block 1. Things 2. Relationship 3. Diagrams

Things: 4 kind 1. Structural 2. Behavioral 3. Grouping 4. Annotational

1. Structural things :- These are the mostly static parts of a model, representing elements that are either conceptual or physical Class: class is a description of a set of objects that share the same attributes, operations, relationships, and semantics. - class implements one or more interfaces. - Graphically, a class is rendered as a rectangle, usually including its name, attributes, and operations

Interface :- - it is a collection of operations that specify a service of a class or component. - An interface therefore describes the externally visible behavior of that element. - defines a set of operation specifications but never a set of operation implementations - Graphically, an interface is rendered as a circle together with its name. - it is typically attached to the class or component that realizes the interface

Collaboration : - defines an interaction and is a society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of all the elements. - have structural, as well as behavioral, dimensions - represent the implementation of patterns that make up a system.

Use case : - It is a description of set of sequence of actions that a system performs that yields an observable result of value to a particular actor. - A use case is used to structure the behavioral things in a model.

Active class : - It is a class whose objects own one or more processes or threads and therefore can initiate control activity - Graphically, an active class is rendered just like a class, but with heavy lines, usually including its name, attributes, and operations

Component - It is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces. - A component typically represents the physical packaging of otherwise logical elements, such as classes, interfaces, and collaborations. - Graphically, a component is rendered as a rectangle with tabs, usually including only its name

Node - It is a physical element that exists at run time and represents a computational resource, generally having at least some memory and, often, processing capability. - a node is rendered as a cube, usually including only its name

2. Behavioral Things - Behavioral things are the dynamic parts of UML models. - representing behavior over time and space Interaction is a behavior that comprises a set of messages exchanged among a set of objects within a particular context to accomplish a specific purpose State machine is a behavior that specifies the sequences of states an object or an interaction goes through during its lifetime in response to events, together with its responses to those events.

3. Grouping Things Grouping things are the organizational parts of UML models. These are the boxes into which a model can be decomposed Package is a general-purpose mechanism for organizing elements into groups. Structural things, behavioral things, and even other grouping things may be placed in a package - Graphically, a package is rendered as a tabbed folder, usually including only its name and, sometimes, its contents

4. Annotational Things Annotational things are the explanatory parts of UML models. These are the comments you may apply to describe, illuminate, and remark about any element in a model Note: - note is simply a symbol for rendering constraints and comments attached to an element or a collection of elements

Relationships in the UML Four kinds of relationships in the UML: 1. Dependency 2. Association 3. Generalization 4. Realization

1. Dependency is a semantic relationship between two things in which a change to one thing(the independent thing) may affect the semantics of the other thing (the dependent thing). - Graphically, a dependency is rendered as a dashed line, possibly directed, and occasionally including a label

2. Association is a structural relationship that describes a set of links, a link being a connection among objects. - Aggregation is a special kind of association

3. Generalization - is a specialization/generalization relationship in which objects of the specialized element (the child) are substitutable for objects of the generalized element (the parent). - rendered as a solid line with a hollow arrowhead pointing to the parent

4. Realization - is a semantic relationship between classifiers, wherein one classifier specifies a contract that another classifier guarantees to carry out. - Graphically, a realization relationship is rendered as a cross between a generalization and a dependency relationship

Aggregation A special form of association that specifies a whole-part relationship between the aggregate (whole) and a component part. Composition A form of aggregation with strong ownership and coincident lifetime as part of the whole.

Diagrams in the UML 1.Class diagram 8. Component diagram 2. Object diagram 9. Deployment diagram 3. Use case diagram 4. Sequence diagram 5. Collaboration diagram 6. State chart diagram 7. Activity diagram

A class diagram shows a set of classes, interfaces, and collaborations and their relationships. An object diagram shows a set of objects and their relationships. A use case diagram shows a set of use cases and actors (a special kind of class) and their relationships. Both sequence diagrams and collaboration diagrams are kinds of interaction diagrams. An shows an interaction, consisting of a set of objects and their relationships, including the messages that may be dispatched among them.

A state chart diagram shows a state machine, consisting of states, transitions, events, and activities. An activity diagram is a special kind of a state chart diagram that shows the flow from activity to activity within a system. A component diagram shows the organizations and dependencies among a set of components. A deployment diagram shows the configuration of run-time processing nodes and the components that live on them.

Rules of UML UML has a number of rules so that the models are semantically selfconsistent and related to other models in the system harmoniously. UML has semantic rules for the following: 1. Names 2. Scope 3. Visibility 4. Integrity 5. Execution

Common Mechanisms in the UML 1. Specifications 2. Adornments 3. Common divisions 4. Extensibility mechanisms

1. Specifications UML is more than just a graphical language. Rather, behind every part of its graphical notation. There is a specification that provides a textual statement of the syntax and semantics of that building block. For example, behind a class icon is a specification that provides the full set of attributes, operations (including their full signatures), and behaviors UML's specifications provide a semantic backplane that contains all the parts of all the models of a system, each part related to one another in a consistent fashion. The UML's diagrams are simply visual projections into that backplane, each diagram revealing a specific interesting aspect of the system.

2. Adornments Most elements in the UML have a unique and direct graphical notation that provides a visual representation of the most important aspects of the element. - For example, the notation for a class is intentionally designed to be easy to draw exposes the most important aspects of a class, namely its name, attributes, and operations. Every element in the UML's notation starts with a basic symbol, to which can be added a variety of adornments specific to that symbol.

3. Common Divisions There is the division of class and object. A class is an abstraction; an object is one concrete manifestation of that abstraction. In the UML you can model classes as well as objects.

4. Extensibility Mechanisms UML provides a standard language for writing software blueprints, but it is not possible for one closed language. Allows you to extend the language by adding new building blocks, creating new properties and specifying new semantics. For this reason, the UML is opened-ended, making it possible for you to extend the language in controlled ways. Extensibility mechanisms include 1. Stereotypes 2. Tagged values 3. Constraints

1. Stereotypes - Stereotype extends the vocabulary of the UML allowing you to create new kinds of building blocks that are derived from existing ones but that are specific to your problem. You can make exceptions in your models like basic building blocks by marking them with an appropriate stereotype, as for the class Overflow.

2. Tagged values Tagged value extends the properties of a UML building block, allowing you to create new information in that element's specification. For example, if you are working on a product that undergoes many releases over time, you often want to track the version and author of certain critical abstractions. Version and author are not primitive UML concepts. They can be added to any building block, such as a class, by introducing new tagged values to that building block. class EventQueue is extended by marking its version and author explicitly.

3. Constraints Constraint extends the semantics of a UML building block, allowing you to add new rules or modify existing ones. For example, you might want to constrain the EventQueue class so that all additions are done in order. As Figure above shows, you can add a constraint that explicitly marks these for the operation add.

MAJOR COMPONENT IN UML 2.0 New concept for describing internal architecture & collaboration by mean of port, connector & part Introduction of inheritance of behavior in state machine & encapsulation of sub machine through use of entry & exit point Improve encapsulation of component through complex parts with protocol state machine that control interaction with environment Improvement of specification, realization & wiring aspect of component Interaction of action & activities & use of flow semantics instead of state machine Interaction improved by composition, reference, exception, loop etc

Composite state Difficult to specify composite state that can be reused in other state machine UML 2.0 introduces exit & entry point that control access to a composite state

ARCHITECTURAL CONCEPTS IN UML Core concept of describing internal structure are part, connector, port 1. PARTS:- - Describe internal structure of a class - Part lives & dies as part of lifetime of an object of containing class 2. PORTS:- - Port describe interaction point for a class, it is addressable i.e. signal can be send to it - Port has interfaces that specifies operation & signal offered by class - Class can send & receive signal via port

CONNECTOR:- - It specifies a link that enables communication between two or more parts - It specify link between parts only - It may attached to port on directly to part - Fig. shows engine e:engine in a class car is connected by axle connector to instances in rear: wheel

STATE MACHINE IN UML 2.0 Major changes in UML 2.0 - Composite state with entry/exit points - State machine generalization that enables inheritance & specification of behavior - State machine diagram is a behavior diagram which shows discrete behavior of a part of designed system through finite state transitions

OVERVIEW OF ALL UML 2.0 DIAGRAMS 3 classification of all UML 2.0 diagrams 1. Behavioral diagram:- - Include activity, state, use-case, interaction diagram 2. Interaction diagram:- - communication, Interaction overview, sequence & timing diagram 3. Structure diagram:- - Class, object,composite,component,deployment, package diagram Activity Diagram - Illustrate the dynamic view of a system. - Activity diagrams are especially important in modeling the function of a system. - Emphasize the flow of control among objects.

Class diagram - shows a set of classes, interfaces, and collaborations and their relationships. - static design view of a system. Communication Diagram - Show instance of classes,their relationship & message flow between them - Focus on structural organization, send & receive message - Known as collaboration diagram

Component diagram - Component,their relationship & interfaces are depicted Composite diagram - Depict internal structural of classifier such as class, component including interaction point -

Deployment diagram - Shows execution architecture of system, include node, h/w or s/w execution environment Interaction Overview Diagram - Variant of activity diagram which overview the control flow within system Use case diagram - Show use cases, actor & relationships

Object diagram Package diagram - Show how model element are organized into packages as well as dependencies between packages

Sequence diagram - Model sequential logic, ordering of message between classifiers

State diagram - Describe state within object Timing diagram - Depict change in state / condition

OBJECT CONSTRAINT LANGUAGE (OCL) OCL is a sub-language of UML that allow for capturing rules & attaching them to model elements which satisfy constraint for model to describe correct or well formed It is a declarative language for describing rules that apply to UML model The Object Constraint Language (OCL) is an expression language that describes constraints on object-oriented languages and other modeling artifacts. A constraint can be seen as a restriction on a model or a system. OCL is part of Unified Modeling Language (UML) and it plays an important role in the analysis phase of the software lifecycle.

Object Constraint Language (OCL), is a formal language to express side effect-free constraints. Users of the Unified Modeling Language and other languages can use OCL to specify constraints and other expressions attached to their models. OCL is the expression language for the Unified Modeling Language (UML). To understand OCL, the component parts of this statement should be examined. Thus, OCL has the characteristics of an expression language, a modeling language and a formal language. A UML diagram (e.g., a class diagram) does not provide all relevant aspects of a specification

It is necessary to describe additional constraints about the objects in the model Constraints specify invariant conditions that must hold for the system being modeled Constraints are often described in natural language and this always result in ambiguities Traditional formal languages allow to write unambiguous constraints, but they are difficult for the average system modeler OCL: Formal language used to express constraints, that remains easy to read and write It s a precise text lang. that provide constraints & object query expression

Object Constraint Language (OCL) Pure expression language: expressions do not have side effect when an OCL expression is evaluated, it returns a value its evaluation cannot alter the state of the corresponding executing system an OCL expression can be used to specify a state change (e.g., in a post condition) Not a programming language it is not possible to write program logic or flow of control in OCL cannot be used to invoke processes or activate non-query operations

Typed language: each expression has a type well-formed expressions must obey the type conformance rules of OCL each classifier defined in a UML model represents a distinct OCL type OCL includes a set of supplementary predefined types The evaluation of an OCL expression is instantaneous the state of objects in a model cannot change during evaluation

Basic Types Boolean True or False Integer Any integer value Real Any decimal value String A series of letters, numbers, symbols Casting OCL does supports casting objects from one type to another as long as they are related through a generalization relationship. oldtype.oclastype(newtype)

Basic Values and Types Several built-in types and operations Type Values Operations Boolean false, true or, and, xor, not, =, <>, implies Integer Real String -10, 0, 10, -1.5, 3.14, Carmen =, <>, <, >, <=, >=, +, -, *, /, mod(), div(), abs(), max(), min(), round(), floor() =, <>, concat(), size(), tolower(), toupper(), substring() 75

OCL Syntax Constraints on Classifiers Context Keyword: Self self.gpa>2.0 Follow associations between classifiers self.instructor.salary>0.00 If the association has multiplicity you can treat the association end as a set and check to see if the value is set by built in notempty() Self.instructor->notEmpty() If an association role name is not specified you can use the classifier name. self.course->forall(roomassignment<> No Room Comments -- make sure this student could graduate self.gpa>2.0

If you can t determine the context or if you want explicit context Keyword: inv context Student Inv: self.gpa>2.0 Instead of using keyword self, you can assign a name to a classifier that you can use in the expression context s : Student Inv: s.gpa>2.0 Finally you can name the expression by placing a label after the expression type but before the colon Context s : Student Inv minimumgparule: s.gpa>2.0

OCL Syntax Constraints on Operations Beyond basic classifiers, OCL expressions can be associated with operations to preconditions and postconditions. Keyword: pre post context Course::registerStudent(s : Student) : boolean pre : s.tuitionpaid=true when writing postconditions you can use keyword result to refer to the value return by operation. context Course::registerStudent(s : Student) : boolean pre : s.tuitionpaid=true post: result=true

As you can with invariants, you can name preconditions and post conditions by placing label after pre or post keyword context Course::registerStudent(s : Student) : boolean pre haspaidtuition:s.tuitionpaid=true post: sudentwasregistar:result=true You may specify the results of query operation using keyword body. Because OCL doesn t have syntax for program flow, you are limited to relatively simple expression. context Course::getHonorsStudents() : Student body : self. Student->select(GPA>3.5)

OCL Syntax Constraints on Attributes OCL expression can specify the initial and subsequent values for attributes of classifiers. context School::tuition: float init:2500.00

Conditional Advanced OCL Modeling OCL supports basic boolean expression evaluation using the ifthen-else-end if keywords For eg. context student Inv: If tuitionpaid=true then yearofgraduation=2016 else yearofgraduation=0000 endif

The boolean evaluation rules are: 1. True OR-ed with anything is true 2. False AND-ed with anything is false 3. False IMPLIES anything is true Context [some context here] if (... some conditions... ) then ( result = 1 post: self.iscomplete() -- for example ) endif

Advanced OCL Modeling For eg. Context student Inv: Self.GPA<1.0 IMPLIES self.yearofgraduation=0000 Variable Declaration OCL support several complex construct you can use to make your constraints more expressive and easier to write. You can break the complex expression into reusable pieces by using the let and in keyword.

For eg. Advanced OCL Modeling context Course inv: let salary : float= self.insructor.salary in if self.courselevel>4000 then salary>8000 else salary<8000 endif You can define variable that can be used in multiple expression on a classifier-by classifier basis using the def keyword context Course Def salary: float = self.insructor.salary

OCL Precedence Advanced OCL Modeling 1. @pre 2. Dot (.) and arrow (->) operation 3. Not and unary minus (-) 4. * And / 5. + and 6. if-then-else-endif 7. <, >, <= and >= 8. = and <> 9. AND, OR and XOR 10. IMPLIES

OCL Collection C -> size () C -> includes (o) C -> excludes (o) C -> count (o) C -> includesall (c2) C -> excludesall (c2) C -> isempty () C -> notempty () C -> sum () C -> exists (p) C -> forall (p) C -> isunique (e) C -> sortedby (e) C -> iterate (e)