Appendix... B. The Object Constraint

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Appendix... B. The Object Constraint"

Transcription

1 UML 2.0 in a Nutshell Appendix B. The Object Constraint Pub Date: June 2005 Language The Object Constraint Language 2.0 (OCL) is an addition to the UML 2.0 specification that provides you with a way to express constraints and logic on your models. For example, you Table can use of Contents OCL to Index convey that a person's age must always be greater than 0 or that a branch office must always have one secretary for every 10 employees. OCL System isn't developers new to UML have 2.0; used it was modeling first introduced languages in UML for decades 1.4. However, to specify, as of visualize, UML 2.0, it was formalized construct, using and document the Meta-Object systems. Facility The Unified and UML Modeling 2.0. From Language a user's (UML) perspective is one of the those languages. has UML been makes updated it possible and refined for team but the members fundamentals to collaborate remain by the providing same. This a common appendix introduces language that the basic applies concepts to a multitude of OCL. of For different more detailed systems. information, Essentially, consult it enables the OCL you to specification communicate available solutions from in a the consistent, Object Management tool-supported Group's language. web site (http://www.omg.org/).

2 UML 2.0 in a Nutshell B.1. OCL Basics Pub Date: June 2005 The Object Constraint Language is just that: a language. It obeys a syntax and has keywords. However, unlike Pages: other 234 languages, it can't be used to express program logic or flow control. By design, OCL is a query-only language; it can't modify the model (or executing system) in any way. It can be used to express preconditions, postconditions, invariants (things that must Table always of Contents be TRue), Index guard conditions, and results of method calls. OCL can be used virtually anywhere in UML and is typically associated with a classifier using a note. System When developers an OCL expression have used modeling is evaluated, languages it is considered for decades to be to instantaneous, specify, visualize, meaning the associated construct, classifier and document can't change systems. state The during Unified the Modeling evaluation Language of expression. (UML) is one of those languages. UML makes it possible for team members to collaborate by providing a common language that applies to a multitude of different systems. Essentially, it enables you to communicate solutions in a consistent, tool-supported language. B.1.1. Basic Types OCL has several built-in types that can be used in OCL expressions: Boolean you who Must must be either read, true create, or false. and understand Supports system the logical artifacts operators expressed and, or, using xor, not, UML. implies, Furthermore, and if-then-else. it's been fully revised to cover version 2.0 of the language. Integer Any integer value (e.g., 100, , , etc.). Supports the operators *, +, -,/, Topics and include: abs( ). Real The Any object-oriented decimal value (e.g., paradigm , and its , relation etc.). to the Supports UML the operators *, +, -,/, and floor( ). String A series of letters, numbers, or symbols interpreted as a string (e.g., "All writing and no Extension play make Mechanisms Dan..."). Supports the operators concat( ), size( ), and substring( ). In addition The Object to the Constraint built-in types, Language any classifier (OCL) used in your UML model is recognized as a type by OCL. Because OCL is a strongly typed language, you can't compare values of one type directly with values of another type. B.1.2. Casting OCL does support casting objects from one type to another as long as they are related through a generalization relationship. To cast from one type to another use the operation

3 oldtype. oclastype(newtype). For example, to cast a Java List to an ArrayList to call the size( ) operation, use the expression: UML 2.0 in a Nutshell List.oclAsType(ArrayList).size( ) If the actual object Pub Date: isn't an June instance 2005 of the new type, the expression is considered undefined. construct, and document systems. The Unified Modeling Language (UML) is one of those languages. UML makes it possible for team members to collaborate by providing a common language that applies to a multitude of different systems. Essentially, it enables you to communicate solutions in a consistent, tool-supported language.

4 UML 2.0 in a Nutshell B.2. OCL Syntax The remainder of Pub this Date: chapter June 2005 uses examples from the class diagram shown in Figure B-1. B.2.1. Constraints on Classifiers Each OCL expression must have some sense of context that an expression relates to. Often the System context developers can be determined have used modeling by where languages the expression for decades is written. to specify, For example, visualize, you can link a construct, constraint and to an document element systems. using a note. The Unified You can Modeling refer to Language an instance (UML) of the is context one of those classifier using languages. the keyword UML makes self. it For possible example, for if team you members had a constraint to collaborate on Student by providing that their a GPA common must always language be that higher applies than 2.0, to a you multitude can attach of different an OCL systems. expression Essentially, to Student it enables using a note you to and refer communicate to the GPA solutions as follows: in a consistent, tool-supported language. Today, self.gpa UML has > become 2.0 the standard method for modeling software systems, which means Figure B-1. Example class diagram used in this chapter It's important to realize that this OCL expression is an invariant, meaning the system would be in an invalid state if a student's GPA dropped to less than 2.0. If you want to allow a GPA of less than 2.0 and send out a letter to the student's parents in the event such a low GPA is achieved, If you're new you would to UML, model a tutorial such with behavior realistic using examples a UML diagram has even such been as included an activity to help or you interaction quickly familiarize diagram. yourself with the system. You can follow associations between classifiers using the association end names as though they were attributes of the originating classifier. The following invariant on Course ensures that the instructor is being paid:

5 self.instructor.salary > 0.00 If an association UML has 2.0 a in multiplicity a Nutshell of 0..1, you can treat the association end as a Set and check to see if the By Dan value Pilone, is Neil set Pitman by using the built-in notempty( ) operation. To call the notempty( ) operation on a set you must use an arrow (->) rather than a dot (.). See "Collections" for Publisher: more information O'Reilly on sets. The following invariant on Course enforces that a course has an instructor: Pub Date: June 2005 self.instructor->notempty( ) If an association role name isn't specified, you can use the classifier name. The following invariant on School checks that each course has a room assignment: construct, self.course->forall(roomassignment and document systems. The Unified <> Modeling 'No room!') Language (UML) is one of those languages. UML makes it possible for team members to collaborate by providing a common language that applies to a multitude of different systems. Essentially, it enables you to Comments communicate can solutions be inserted a into consistent, an expression tool-supported by prefixing language. each comment with two dashes (), like this: even -- though make you sure may this not student write UML could diagrams graduate yourself, you'll still need to interpret diagrams self.gpa written > 2.0 by others. If you you who can't must determine read, create, the context and understand of expression system by artifacts looking expressed at the UML using model, UML. or if you want Furthermore, to be explicit it's been with fully the context, revised to use cover the OCL version keyword 2.0 of context, the language. followed by the classifier name. If you use this notation, you should say what the expression represents. In the following This comprehensive case, we're new showing edition an invariant, not only provides so we use a quick-reference the keyword inv. to Other all UML types 2.0 diagram of expressions types, it also are explains explained key in concepts later sections. in a way that appeals to readers already familiar with context Student Topics inv: include: self.gpa > 2.0 Instead of using the keyword self, you can assign a name to a classifier that you can use in the expression. The object-oriented Write the name paradigm you and want its to relation use, followed to the by UML a colon (:) and then the classifier name. For example, you can name the instance of Student as s: context s : Student inv: s.gpa > 2.0 Finally, you can name an expression by placing a label after the expression type but before the colon The (:). Object The Constraint label is purely Language decorative; (OCL) it serves no OCL function. context s : Student inv minimumgparule: s.gpa > 2.0 B.2.2. Constraints on Operations Beyond basic classifiers, OCL expressions can be associated with operations to capture

6 preconditions and postconditions. Place the signature of the target operation (classifier, operation name, parameters, etc.) after the context keyword. Instead of the invariant keyword, use either pre or post for preconditions and postconditions, respectively. UML 2.0 in a Nutshell The following expression By Dan Pilone, ensures Neil Pitman that any student who will be registered for a course has paid their tuition: Pub Date: June 2005 context Course::registerStudent(s : Student) : boolean pre: s.tuitionpaid = true Table When of Contents writing postconditions, Index you can use the keyword result to refer to the value returned by an operation. The following expressions verify that a student's tuition was paid before registering for a course and that the operation registerstudent returned true: construct, context and Course::registerStudent(s document systems. The Unified : Student) Modeling Language : boolean (UML) is one of those languages. pre: s.tuitionpaid UML makes possible = true for team members to collaborate by providing a common language post: that result applies = true to a multitude of different systems. Essentially, it enables you to communicate solutions in a consistent, tool-supported language. As Today, you can UML with has invariants, become the you standard can name method preconditions for modeling and software postconditions systems, by placing which means a label after you're the probably pre or post confronting keywords: this rich and expressive language more than ever before. And context Course::registerStudent(s : Student) : boolean pre haspaidtuition: s.tuitionpaid = true post studentwasregistered: result = true Postconditions This comprehensive can use new the keyword not only to provides refer to a the quick-reference value of some to element all UML before 2.0 diagram an operation types, it also executes. explains The key following concepts expression in a way ensures that appeals that a to student readers was already registered familiar and with that the UML number or object-oriented of students in programming the course has concepts. increased by 1. This expression uses the self keyword to reference the object that owns the registerstudent operation. context Course::registerStudent(s : Student) : boolean pre: s.tuitionpaid = true post: The role result and value = true of UML AND in self.students projects = + 1 You may An specify integrated the approach results of to a query UML diagrams operation using the keyword body. Because OCL doesn't have syntax for program flow, you are limited to relatively simple expressions. The following Class expression and Object, indicates Use Case, that Sequence, honors students Collaboration, are students Statechart, with GPAs Activity, higher Component, than 3.5. The collection and Deployment syntax used Diagrams in this example is described in the "Collections" section. context Course::getHonorsStudents( ) : Student body: self.students->select(gpa > 3.5) B.2.3. Constraints on Attributes OCL expressions can specify the initial and subsequent values for attributes of classifiers. When using OCL expressions with attributes, you state the context of an expression using the classifier name, two colons (::), the attribute name, another colon (:), and then the type of the attribute. You specify the initial value of an attribute using the keyword init:

7 context School::tuition : float init: UML 2.0 in a Nutshell You can specify the value of attributes after their initial value using the derive keyword. The following example Publisher: increases O'Reilly the tuition value by 10% every time you query it: Pub Date: June 2005 context: School::tuition : float derive: tution * 10% construct, and document systems. The Unified Modeling Language (UML) is one of those languages. UML makes it possible for team members to collaborate by providing a common language that applies to a multitude of different systems. Essentially, it enables you to communicate solutions in a consistent, tool-supported language.

8 UML 2.0 in a Nutshell B.3. Advanced OCL Modeling Like any other language, Pub Date: June OCL 2005 has an order of precedence for operators, variable declarations, and logical constructs ISBN: (only for evaluating your expressions, not for program flow). The following sections describe Pages: constructs 234 that you can use in any OCL expression. B.3.1. Conditionals OCL System supports developers basic boolean have used expression modeling evaluation languages using for decades the if-then-else-endif to specify, visualize, keywords. The conditions construct, are and used document only to systems. determine The which Unified expression Modeling is Language evaluated; (UML) they is can't one be of used thoseto influence languages. the UML underlying makes it system possible or for to affect team program members flow. to collaborate The following by providing invariant a enforces commonthat a student's language year that of applies graduation to a multitude is valid only of different she has systems. paid her Essentially, tuition: it enables you to communicate solutions in a consistent, tool-supported language. context Student inv: Today, if UML tuitionpaid has become = true the standard then method for modeling software systems, which means you're yearofgraduation probably confronting = this 2005rich and expressive language more than ever before. And even else though you may not write UML diagrams yourself, you'll still need to interpret diagrams yearofgraduation written by others. = 0000 endif OCL's Furthermore, logic rules it's are been slightly fully revised different to from cover typical version programming 2.0 of the language. logic rules. The boolean evaluation rules are: 1. True OR-ed with anything is true. 2. False AND-ed with anything is false. 3. False The role IMPLIES and anything value of is UML TRue. in projects The implies The object-oriented keyword evaluate paradigm the first and half its of relation an expression, to the UML and, if that first half is true, the result is taken from the second half. For example, the following expression enforces that if a student's GPA is An less integrated than 1.0, approach their year to of UML graduation diagrams is set to 0. If the GPA is higher than 1.0, Rule #3 applies, and the entire expression is evaluated as true (meaning the invariant is valid). context Student inv: self.gpa Extension < Mechanisms 1.0 IMPLIES self.yearofgraduation = 0000 OCL's boolean expressions are valid regardless of the order of the arguments. Specifically, if the first argument of an AND operator is undefined, but the second operator is false, the entire expression is false. Likewise, even if one of the arguments to an OR operator is undefined, if the other If you're is true, new the to UML, expression a tutorial is true. with If-then-else-endif realistic examples has constructs even been are included evaluated to similarly; help you if the chosen quickly branch familiarize can be yourself evaluated with to the TRue system. or false, the nonchosen branch is completely disregarded (even if it would be undefined). B.3.2. Variable Declaration

9 OCL supports several complex constructs you can use to make your constraints more expressive and easier to write. You can break complex expressions into reusable pieces (within the same UML 2.0 in a Nutshell expression) by using the let and in keywords to declare a variable. You declare a variable by giving it a name, By followed Dan Pilone, Neil by a Pitman colon (:), its type, an expression for its value, and the in keyword. The following example declares an expression that ensures a teacher of a high-level course has an appropriate salary: Pub Date: June 2005 context Course inv: let salary : float = self.instructor.salary in if self.courselevel > 4000 then Table of Contents salary Index > else salary < System endif developers have used modeling languages for decades to specify, visualize, construct, and document systems. The Unified Modeling Language (UML) is one of those languages. UML makes it possible for team members to collaborate by providing a common You language can define that applies variables to that a multitude can be used of different in multiple systems. expressions Essentially, on a it classifier-by-classifier enables you to basis using communicate the def keyword. solutions For in a example, consistent, instead tool-supported of declaring language. salary as a variable using the let keyword, you can define it using the def keyword for the Course context. Once you define a variable Today, UML using has the become def keyword, the standard you may method use that for variable modeling in software any expression systems, that which is in means the same context. you're probably The syntax confronting for the def this keyword rich and is expressive the same as language that for more the let than keyword: ever before. And diagrams context written Course by others. def: salary : float = self.instructor.salary So, now you can write the previous invariant as: types, context it also explains Course inv: key concepts in a way that appeals to readers already familiar with UML if or self.courselevel object-oriented programming > 4000 then concepts. salary > Topics gethonorsstudentselse include: salary < endif B.3.3. Operator Precedence OCL operators have the following order of precedence (from highest to dot The (.) Object and arrow Constraint (->) operations Language (OCL) not and unary minus (-) If you're * and new / to UML, a tutorial with realistic examples has even been included to help you + and - if-then-else-endif <, >, <=, and >=

10 = and <> and, or, and xor UML 2.0 in a Nutshell implies You can use parentheses to group expressions, which will be evaluated from the innermost set of parentheses to the Pub Date: outermost. June 2005 B.3.4. Built-in Object Properties OCL provides a set of properties on all objects in a system. You can invoke these properties in your expressions as you do any other properties. The built-in properties are: construct, and document systems. The Unified Modeling Language (UML) is one of those oclistypeof languages. UML (t : makes Type) : it Boolean possible for team members to collaborate by providing a common language that applies to a multitude of different systems. Essentially, it enables you to communicate Returns true solutions if the in tested a consistent, object tool-supported exactly the same language. type as t. ocliskindof( you're probably t : confronting Type) : Boolean this rich and expressive language more than ever before. And diagrams Returns written TRue by if others. tested object is the same type or a subtype of t. oclinstate(s you who must : read, State create, ): Boolean and understand system artifacts expressed using UML. Returns TRue if the tested object is in state s. The states you can test must be part of a state This comprehensive machine attached new to edition the classifier not only being provides tested. a quick-reference to all UML 2.0 diagram oclisnew( ) : Boolean Topics Designed include: to be used in a postcondition for an operation, it returns true if the object being tested was created as a result of executing the operation. oclastype (t : Type) : Type Returns the owning object casted to Type. If the object isn't a descendant of t, the operation is undefined. Here are and some Deployment examples Diagrams of the built-in properties: -- Extension test that Mechanisms the instructor is an instance of Teacher context Course inv: The Object self.instructor.oclistypeof(teacher) Constraint Language (OCL) -- cast a Date class to a java.sql.date to verify the minutes -- (it's very unlikely the foundationdate would be a java.sql.date If you're -- so new this to UML, invariant a tutorial would with realistic be undefined, examples but has this even is been an included exampleto help you quickly -- familiarize of using yourself oclastype( with the )) system. context School inv: self.foundationdate.oclastype(java.sql.date).getminutes( ) = 0

11 B.3.5. Collections UML 2.0 in a Nutshell OCL defines several types of collections that represent several instances of a classifier. The basic type is Collection, which is the base class for the other OCL collection classes. Quite a few operations are defined for Collection; see the OCL specification for the complete list. Pub Date: June 2005 All collections support a way to select or reject elements using the operations select( ) and reject( ), respectively. To invoke an operation on a collection, you use an arrow (->) rather than a dot (.) (a dot accesses a property). The result of select or reject is another collection containing the appropriate elements. Remember that since OCL can't modify a system in any way, the original collection is unchanged. The notation for a select is: collection->select(boolean expression) construct, and document systems. The Unified Modeling Language (UML) is one of those So, languages. to select UML students makes with possible GPAs higher for team than members 3.0, you can to collaborate use the expression: by providing a common language that applies to a multitude of different systems. Essentially, it enables you to communicate solutions in a consistent, tool-supported language. context Course::getHonorsStudents( ) : Student body: self.students->select(gpa > 3.0) Or, diagrams to eliminate written honor by others. students that haven't paid their tuition: UML context 2.0 in a Nutshell Course::getHonorsStudents( from O'Reilly feels your pain. ) : It's Student been crafted for professionals like you body: who must self.students->select(gpa read, create, and understand > 3.0)->reject(tuitionPaid system artifacts expressed using = false) UML. In This the comprehensive previous examples, new edition the context not only for the provides select a and quick-reference reject statements to all UML was 2.0 implied. diagram You can explicitly types, it name also explains the element key concepts you want in to a use way in that the appeals boolean to expression readers already by prefixing familiar the with expression with UML a or label object-oriented and a pipe symbol programming ( ). So, concepts. a rewrite of the GPA example using a label to identify each student looks like this: context Course::getHonorsStudents( ) : Student body: The role self.students->select(curstudent and value of UML in projects curstudent.gpa > 3.0) Finally, you can specify the type of the element you want to evaluate. You indicate the type by placing An a integrated colon (:) and approach the classifier to UML type diagrams after the label. Each element of the collection you are evaluating must be of the specified type, or else the expression is undefined. You can rewrite the GPA example Class and to Object, be even Use more Case, specific Sequence, and require Collaboration, that it evaluate Statechart, only Students: Activity, Component, context Extension Course::getHonorsStudents( Mechanisms ) : Student body: self.students->select(curstudent : Student curstudent.gpa > 3.0) Often you will need to express a constraint across an entire collection of objects, so OCL provides the forall operation that returns true if a given Boolean expression evaluates to true for all of the elements in a collection. The syntax for forall is the same as that for select and reject. So, you can write a constraint that enforces that all students in a Course have paid their tuition: context Course inv: self.students->forall(tuitionpaid = true)

12 As you can with select, you can name and type the variable used in the expression: context Course UML 2.0 in a Nutshell inv: self.students->forall(curstudent : Student curstudent.tuitionpaid = true) If you need to check Pub Date: to see June if 2005 there is at least one element in a collection that satisfies a boolean expression, you ISBN: can use the operation exists. The syntax is the same as that for select. The following expression Pages: ensures 234 that at least one of the students has paid their tuition: context Course inv: self.students->exists(tuitionpaid = true) Like construct, select, and you document can name systems. and type The the variables Unified Modeling used in Language the expression: (UML) is one of those languages. UML makes it possible for team members to collaborate by providing a common language context that Course applies to a multitude of different systems. Essentially, it enables you to communicate inv: self.students->exists(curstudent solutions in a consistent, tool-supported : Student language. curstudent.tuitionpaid = true) You you're can probably check to confronting see if a collection this rich is and empty expressive using the language operations more isempty than or ever notempty. before. And The following even though expression you may ensures not write that UML the diagrams school has yourself, at least you'll one course still need offering: to interpret UML context 2.0 in a Nutshell School from O'Reilly feels your pain. It's been crafted for professionals like you inv: who must self.course->notempty( read, create, and understand ) system artifacts expressed using UML.

Home Assignment 4 OCL

Home Assignment 4 OCL Home Assignment 4 OCL This home assignment is about writing formal specifications using the Object Constraint Language. You will exercise formulating conditions/invariants on domain models that go beyond

More information

UML TUTORIALS THE USE CASE MODEL

UML TUTORIALS THE USE CASE MODEL UML TUTORIALS THE USE CASE MODEL www.sparxsystems.com.au Sparx Systems 2004 Page 1/5 describes the proposed functionality of the new system. A Use Case represents a discrete unit of interaction between

More information

Execution of A Requirement Model in Software Development

Execution of A Requirement Model in Software Development Execution of A Requirement Model in Software Development Wuwei Shen, Mohsen Guizani and Zijiang Yang Dept of Computer Science, Western Michigan University {wwshen,mguizani,zijiang}@cs.wmich.edu Kevin Compton

More information

Introduction to Python

Introduction to Python Caltech/LEAD Summer 2012 Computer Science Lecture 2: July 10, 2012 Introduction to Python The Python shell Outline Python as a calculator Arithmetic expressions Operator precedence Variables and assignment

More information

Model Driven Security: Foundations, Tools, and Practice

Model Driven Security: Foundations, Tools, and Practice Model Driven Security: Foundations, Tools, and Practice David Basin, Manuel Clavel, and ETH Zurich, IMDEA Software Institute Thursday 1st, 2011 Outline I 1 Models Analysis. Types. 2 The Object Constraint

More information

Using UML Part Two Behavioral Modeling Diagrams

Using UML Part Two Behavioral Modeling Diagrams UML Tutorials Using UML Part Two Behavioral Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,

More information

Formally speaking: How to apply OCL

Formally speaking: How to apply OCL Page 1 of 6 Copyright IBM Corporation 2004 http://www-106.ibm.com/developerworks/rational/library/5390.html Search for: within All of dw Use + - ( ) " " Search help IBM home Products & services Support

More information

Chapter 2: Problem Solving Using C++

Chapter 2: Problem Solving Using C++ Chapter 2: Problem Solving Using C++ 1 Objectives In this chapter, you will learn about: Modular programs Programming style Data types Arithmetic operations Variables and declaration statements Common

More information

C# COMPILER EXTENSION TO SUPPORT THE OBJECT CONSTRAINT LANGUAGE VERSION 2.0

C# COMPILER EXTENSION TO SUPPORT THE OBJECT CONSTRAINT LANGUAGE VERSION 2.0 C# COMPILER EXTENSION TO SUPPORT THE OBJECT CONSTRAINT LANGUAGE VERSION 2.0 by David Arnold A thesis submitted to the Faculty of Graduate Studies and Research in partial fulfillment of the requirements

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

School of Informatics, University of Edinburgh

School of Informatics, University of Edinburgh CS1Ah Lecture Note 5 Java Expressions Many Java statements can contain expressions, which are program phrases that tell how to compute a data value. Expressions can involve arithmetic calculation and method

More information

Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

More information

Object Oriented Programming. Risk Management

Object Oriented Programming. Risk Management Section V: Object Oriented Programming Risk Management In theory, there is no difference between theory and practice. But, in practice, there is. - Jan van de Snepscheut 427 Chapter 21: Unified Modeling

More information

Unified Modeling Language (UML) for Database Systems and Computer Applications

Unified Modeling Language (UML) for Database Systems and Computer Applications Unified Modeling Language (UML) for Database Systems and Computer Applications Sunguk Lee * Research Institute of Industrial Science and Technology Pohang, Korea sunguk@rist.re.kr *Correspondent Author:

More information

Communication Diagrams

Communication Diagrams Communication Diagrams Massimo Felici Realizing Use cases in the Design Model 1 Slide 1: Realizing Use cases in the Design Model Use-case driven design is a key theme in a variety of software processes

More information

Concepts and terminology in the Simula Programming Language

Concepts and terminology in the Simula Programming Language Concepts and terminology in the Simula Programming Language An introduction for new readers of Simula literature Stein Krogdahl Department of Informatics University of Oslo, Norway April 2010 Introduction

More information

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011 Sequence Diagrams Massimo Felici What are Sequence Diagrams? Sequence Diagrams are interaction diagrams that detail how operations are carried out Interaction diagrams model important runtime interactions

More information

A First Book of C++ Chapter 2 Data Types, Declarations, and Displays

A First Book of C++ Chapter 2 Data Types, Declarations, and Displays A First Book of C++ Chapter 2 Data Types, Declarations, and Displays Objectives In this chapter, you will learn about: Data Types Arithmetic Operators Variables and Declarations Common Programming Errors

More information

strsep exercises Introduction C strings Arrays of char

strsep exercises Introduction C strings Arrays of char strsep exercises Introduction The standard library function strsep enables a C programmer to parse or decompose a string into substrings, each terminated by a specified character. The goals of this document

More information

CHAPTER THREE. 3.1 Binary Addition. Binary Math and Signed Representations

CHAPTER THREE. 3.1 Binary Addition. Binary Math and Signed Representations CHAPTER THREE Binary Math and Signed Representations Representing numbers with bits is one thing. Doing something with them is an entirely different matter. This chapter discusses some of the basic mathematical

More information

UML basics: An introduction to the Unified Modeling Language

UML basics: An introduction to the Unified Modeling Language Copyright Rational Software 2003 http://www.therationaledge.com/content/jun_03/f_umlintro_db.jsp UML basics: An introduction to the Unified Modeling Language by Donald Bell IBM Global Services Way back

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

Menouer Boubekeur, Gregory Provan

Menouer Boubekeur, Gregory Provan Software Requirements Menouer Boubekeur, Gregory Provan Lectures Introduction to UML Introduction to Requirements Analysis Advanced techniques for Requirement Analysis M. Boubekeur, CSL, University College

More information

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm

More information

Software Component Specification Using Design by Contract

Software Component Specification Using Design by Contract Software Component Specification Using Design by Contract Yi Liu and H. Conrad Cunningham Department of Computer and Information Science University of Mississippi 237 Kinard Hall University, MS 38677 USA

More information

A Framework for the Semantics of Behavioral Contracts

A Framework for the Semantics of Behavioral Contracts A Framework for the Semantics of Behavioral Contracts Ashley McNeile Metamaxim Ltd, 48 Brunswick Gardens, London W8 4AN, UK ashley.mcneile@metamaxim.com Abstract. Contracts have proved a powerful concept

More information

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language.

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language. UML 1 Introduction UML = Unified Modeling Language It is a standardized visual modeling language. Primarily intended for modeling software systems. Also used for business modeling. UML evolved from earlier

More information

The «include» and «extend» Relationships in Use Case Models

The «include» and «extend» Relationships in Use Case Models The «include» and «extend» Relationships in Use Case Models Introduction UML defines three stereotypes of association between Use Cases, «include», «extend» and generalisation. For the most part, the popular

More information

Primitive Data Types Summer 2010 Margaret Reid-Miller

Primitive Data Types Summer 2010 Margaret Reid-Miller Primitive Data Types 15-110 Summer 2010 Margaret Reid-Miller Data Types Data stored in memory is a string of bits (0 or 1). What does 1000010 mean? 66? 'B'? 9.2E-44? How the computer interprets the string

More information

Design by Contract beyond class modelling

Design by Contract beyond class modelling Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

More information

Java How to Program, 9/e

Java How to Program, 9/e Java How to Program, 9/e Education, Inc. All Rights Reserved. 1 Any computing problem can be solved by executing a series of actions in a specific order. An algorithm is a procedure for solving a problem

More information

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program. Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical

More information

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share. LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.

More information

A Meeting Room Scheduling Problem

A Meeting Room Scheduling Problem A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 ooinfo@oeng.com http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved.

Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved. 1 2 Introduction to Java Applications 2.2 First Program in Java: Printing a Line of Text 2 Application Executes when you use the java command to launch the Java Virtual Machine (JVM) Sample program Displays

More information

UML-based Test Generation and Execution

UML-based Test Generation and Execution UML-based Test Generation and Execution Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder Siemens Corporate Research, Inc. 755 College Road East Princeton NJ 08540, USA jeanhartmann@siemens.com ABSTRACT

More information

Computer Programming I

Computer Programming I Computer Programming I COP 2210 Syllabus Spring Semester 2012 Instructor: Greg Shaw Office: ECS 313 (Engineering and Computer Science Bldg) Office Hours: Tuesday: 2:50 4:50, 7:45 8:30 Thursday: 2:50 4:50,

More information

C programming. Intro to syntax & basic operations

C programming. Intro to syntax & basic operations C programming Intro to syntax & basic operations Example 1: simple calculation with I/O Program, line by line Line 1: preprocessor directive; used to incorporate code from existing library not actually

More information

On translating UML models into graph transformation systems $

On translating UML models into graph transformation systems $ ARTICLE IN PRESS Journal of Visual Languages and Computing 17 (2006) 78 105 Journal of Visual Languages & Computing www.elsevier.com/locate/jvlc On translating UML models into graph transformation systems

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2010 G. Lipari (Scuola Superiore Sant Anna) Introduction

More information

CS 106 Introduction to Computer Science I

CS 106 Introduction to Computer Science I CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper

More information

CSI 333 Lecture 2 Introduction to C: Part I 2 1 / 16

CSI 333 Lecture 2 Introduction to C: Part I 2 1 / 16 CSI 333 Lecture 2 Introduction to C: Part I 2 1 / 16 Basics of C Remark: Skim Chapters 1 through 6 of Deitel & Deitel. You will notice the following: C is (more or less) a subset of Java. (So, you are

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,

More information

USERV Auto Insurance Rule Model in Corticon

USERV Auto Insurance Rule Model in Corticon USERV Auto Insurance Rule Model in Corticon Mike Parish Progress Software Contents Introduction... 3 Vocabulary... 4 Database Connectivity... 4 Overall Structure of the Decision... 6 Preferred Clients...

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

Eventia Log Parsing Editor 1.0 Administration Guide

Eventia Log Parsing Editor 1.0 Administration Guide Eventia Log Parsing Editor 1.0 Administration Guide Revised: November 28, 2007 In This Document Overview page 2 Installation and Supported Platforms page 4 Menus and Main Window page 5 Creating Parsing

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 14, 2011 G. Lipari (Scuola Superiore Sant Anna) Introduction

More information

IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2

IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2 Designing the SRT control software: Notes to the UML schemes Andrea Orlati 1 Simona Righini 2 1 - I.N.A.F. Istituto di Radioastronomia. 2 Dip. Astronomia - Università degli Studi di Bologna. Dicembre 2008

More information

The IC Language Specification. Spring 2006 Cornell University

The IC Language Specification. Spring 2006 Cornell University The IC Language Specification Spring 2006 Cornell University The IC language is a simple object-oriented language that we will use in the CS413 project. The goal is to build a complete optimizing compiler

More information

Part 1 Foundations of object orientation

Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed

More information

Checking Access to Protected Members in the Java Virtual Machine

Checking Access to Protected Members in the Java Virtual Machine Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/

More information

Microsoft Excel Tips & Tricks

Microsoft Excel Tips & Tricks Microsoft Excel Tips & Tricks Collaborative Programs Research & Evaluation TABLE OF CONTENTS Introduction page 2 Useful Functions page 2 Getting Started with Formulas page 2 Nested Formulas page 3 Copying

More information

Adjusted/Modified by Nicole Tobias. Chapter 2: Basic Elements of C++

Adjusted/Modified by Nicole Tobias. Chapter 2: Basic Elements of C++ Adjusted/Modified by Nicole Tobias Chapter 2: Basic Elements of C++ Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types

More information

Positional Numbering System

Positional Numbering System APPENDIX B Positional Numbering System A positional numbering system uses a set of symbols. The value that each symbol represents, however, depends on its face value and its place value, the value associated

More information

1. A(n) structure is a logical design that controls the order in which a set of statements execute. a. function b. control c. sequence d.

1. A(n) structure is a logical design that controls the order in which a set of statements execute. a. function b. control c. sequence d. Chapter Four MULTIPLE CHOICE 1. A(n) structure is a logical design that controls the order in which a set of statements execute. a. function b. control c. sequence d. iteration 2. The decision structure

More information

TI-83 Plus Graphing Calculator Keystroke Guide

TI-83 Plus Graphing Calculator Keystroke Guide TI-83 Plus Graphing Calculator Keystroke Guide In your textbook you will notice that on some pages a key-shaped icon appears next to a brief description of a feature on your graphing calculator. In this

More information

Formal Engineering for Industrial Software Development

Formal Engineering for Industrial Software Development Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3

More information

Access Tutorial 12: An Introduction to Visual Basic

Access Tutorial 12: An Introduction to Visual Basic Access Tutorial 12: An Introduction to Visual Basic 12.1 Introduction: Learning the basics of programming Programming can be an enormously complex and difficult activity. Or it can be quite straightforward.

More information

NIIT. Table of Contents. Introduction. Lesson 1 Introduction to Object-Oriented Approach. Lesson 2 Creating Objects

NIIT. Table of Contents. Introduction. Lesson 1 Introduction to Object-Oriented Approach. Lesson 2 Creating Objects Introduction Table of Contents About This Course...i Who Should Attend this Course...i How to Use this Book... ii Conventions Used in this Book... ii Lesson 1 Introduction to Object-Oriented Approach Object-Oriented

More information

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 2: Basic Elements of C++

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 2: Basic Elements of C++ C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 2: Basic Elements of C++ Objectives In this chapter, you will: Become familiar with the basic components of a C++ program,

More information

CS 1133, LAB 2: FUNCTIONS AND TESTING http://www.cs.cornell.edu/courses/cs1133/2015fa/labs/lab02.pdf

CS 1133, LAB 2: FUNCTIONS AND TESTING http://www.cs.cornell.edu/courses/cs1133/2015fa/labs/lab02.pdf CS 1133, LAB 2: FUNCTIONS AND TESTING http://www.cs.cornell.edu/courses/cs1133/2015fa/labs/lab02.pdf First Name: Last Name: NetID: The purpose of this lab is to help you to better understand functions:

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

Lecture 5: Specifying Java Programs

Lecture 5: Specifying Java Programs Lecture 5: Specifying Java Programs This lecture aims to:! Introduce the basic ingredients of a program specification.! Show how to map Object-Z specifications into program specifications! Define reasoning

More information

Java Interview Questions and Answers

Java Interview Questions and Answers 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java

More information

Exercise 4 Learning Python language fundamentals

Exercise 4 Learning Python language fundamentals Exercise 4 Learning Python language fundamentals Work with numbers Python can be used as a powerful calculator. Practicing math calculations in Python will help you not only perform these tasks, but also

More information

6.170 Tutorial 3 - Ruby Basics

6.170 Tutorial 3 - Ruby Basics 6.170 Tutorial 3 - Ruby Basics Prerequisites 1. Have Ruby installed on your computer a. If you use Mac/Linux, Ruby should already be preinstalled on your machine. b. If you have a Windows Machine, you

More information

TI-86 Graphing Calculator Keystroke Guide

TI-86 Graphing Calculator Keystroke Guide TI-86 Graphing Calculator Keystroke Guide In your textbook you will notice that on some pages a key-shaped icon appears next to a brief description of a feature on your graphing calculator. In this guide

More information

The current topic: Scheme. Announcements. Numeric operators. Review: car, cdr, and cons

The current topic: Scheme. Announcements. Numeric operators. Review: car, cdr, and cons The current topic: Scheme! Introduction! Object-oriented programming: Python Functional programming: Scheme! Introduction Next up: Numeric operators, REPL, quotes, functions, conditionals Types and values

More information

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement

More information

Inf1A: Deterministic Finite State Machines

Inf1A: Deterministic Finite State Machines Lecture 2 InfA: Deterministic Finite State Machines 2. Introduction In this lecture we will focus a little more on deterministic Finite State Machines. Also, we will be mostly concerned with Finite State

More information

Going from Python to C

Going from Python to C Going from Python to C Darin Brezeale December 8, 2011 Python is a high-level, interpreted language. C has many of the same types of programming constructs as in Python: arrays, loops, conditionals, functions,

More information

Chapter II Binary Data Representation

Chapter II Binary Data Representation Chapter II Binary Data Representation The atomic unit of data in computer systems is the bit, which is actually an acronym that stands for BInary digit. It can hold only 2 values or states: 0 or 1, true

More information

Informatica e Sistemi in Tempo Reale

Informatica e Sistemi in Tempo Reale Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)

More information

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha Algorithm & Flowchart & Pseudo code Staff Incharge: S.Sasirekha Computer Programming and Languages Computers work on a set of instructions called computer program, which clearly specify the ways to carry

More information

Praspel: A Specification Language for Contract-Driven Testing in PHP

Praspel: A Specification Language for Contract-Driven Testing in PHP Praspel: A Specification Language for Contract-Driven Testing in PHP Ivan Enderlin Frédéric Dadeau Alain Giorgetti Abdallah Ben Othman October 27th, 2011 Meetings: LTP MTVV Ivan Enderlin, Frédéric Dadeau,

More information

Review questions for Chapter 9

Review questions for Chapter 9 Answer first, then check at the end. Review questions for Chapter 9 True/False 1. A compiler translates a high-level language program into the corresponding program in machine code. 2. An interpreter is

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University (revised October 8, 2004) 1 Introduction The PCAT language (Pascal Clone

More information

Object-Oriented Programming in C# (VS2015)

Object-Oriented Programming in C# (VS2015) Object-Oriented Programming in C# (VS2015) This thorough and comprehensive 5-day course is a practical introduction to programming in C#, utilizing the services provided by.net. This course emphasizes

More information

Semantic Analysis: Types and Type Checking

Semantic Analysis: Types and Type Checking Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors

More information

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Introduction to Programming using Java wertyuiopasdfghjklzxcvbnmqwertyui

More information

Appendix: Tutorial Introduction to MATLAB

Appendix: Tutorial Introduction to MATLAB Resampling Stats in MATLAB 1 This document is an excerpt from Resampling Stats in MATLAB Daniel T. Kaplan Copyright (c) 1999 by Daniel T. Kaplan, All Rights Reserved This document differs from the published

More information

Today s topics. Java programs. Java Virtual Machine (JVM) Bytecodes. HelloWorld.java javac HelloWorld.class

Today s topics. Java programs. Java Virtual Machine (JVM) Bytecodes. HelloWorld.java javac HelloWorld.class Today s topics Java programs Parsing Java Programming Notes from Tammy Bailey Reading Great Ideas, Chapter 3 & 4 Java programs are created as text files using a text editor (like emacs) Save to disk with.java

More information

Computers. An Introduction to Programming with Python. Programming Languages. Programs and Programming. CCHSG Visit June 2014. Dr.-Ing.

Computers. An Introduction to Programming with Python. Programming Languages. Programs and Programming. CCHSG Visit June 2014. Dr.-Ing. Computers An Introduction to Programming with Python CCHSG Visit June 2014 Dr.-Ing. Norbert Völker Many computing devices are embedded Can you think of computers/ computing devices you may have in your

More information

Role-based Authorization Constraints Specification Using Object Constraint Language

Role-based Authorization Constraints Specification Using Object Constraint Language Role-based Authorization Constraints Specification Using Object Constraint Language Gail-Joon Ahn Department of Computer Science University of North Carolina at Charlotte gahn@uncc.edu Michael. E. Shin

More information

A Comparison of the Basic Syntax of Python and Java

A Comparison of the Basic Syntax of Python and Java Python Python supports many (but not all) aspects of object-oriented programming; but it is possible to write a Python program without making any use of OO concepts. Python is designed to be used interpretively.

More information

Punctuation in C. Identifiers and Expressions. Identifiers. Variables. Keywords. Identifier Examples

Punctuation in C. Identifiers and Expressions. Identifiers. Variables. Keywords. Identifier Examples Identifiers and Expressions CSE 130: Introduction to C Programming Spring 2005 Punctuation in C Statements are terminated with a ; Groups of statements are enclosed by curly braces: { and } Commas separate

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

Effectively Using JML

Effectively Using JML Effectively Using JML Software Engineering Processes incorporating Formal Specification Joseph Kiniry University College Dublin Software Engineering Processes old-school processes CRC and state-chart based

More information

Outline TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA. What is DrJava? Dr Java

Outline TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA. What is DrJava? Dr Java 1 Outline TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA Notes adapted from Introduction to Computing and Programming with Java: A Multimedia Approach by M. Guzdial and B. Ericson, and instructor materials prepared

More information

Incorporating Aspects into the UML

Incorporating Aspects into the UML Incorporating Aspects into the UML Mark Basch University of North Florida Department of Computer and Information Sciences Jacksonville, FL 32224-2645 (904) 620-2985 basm0001@unf.edu Arturo Sanchez University

More information

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement? 1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members

More information

Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups:

Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups: JAVA OPERATORS GENERAL Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups: Arithmetic Operators Relational Operators Bitwise Operators

More information

[Refer Slide Time: 05:10]

[Refer Slide Time: 05:10] Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture

More information

Towards a Common Metamodel for the Development of Web Applications

Towards a Common Metamodel for the Development of Web Applications Towards a Common Metamodel for the Development of Web Applications Nora Koch and Andreas Kraus Ludwig-Maximilians-Universität Munich, Germany Motivation Overwhelming diversity of Web methodologies Goal:

More information

Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff

Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff D80198GC10 Oracle Database 12c SQL and Fundamentals Summary Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff Level Professional Delivery Method Instructor-led

More information

Assignment # 2: Design Patterns and GUIs

Assignment # 2: Design Patterns and GUIs CSUS COLLEGE OF ENGINEERING AND COMPUTER SCIENCE Department of Computer Science CSc 133 Object-Oriented Computer Graphics Programming Spring 2014 John Clevenger Assignment # 2: Design Patterns and GUIs

More information

6.096 Lab 1. Due: 7 January 12:30:00. September 20, 2011

6.096 Lab 1. Due: 7 January 12:30:00. September 20, 2011 6.096 Lab 1 Due: 7 January 1:30:00 September 0, 011 1 Additional Material 1.1 Constants A constant is an expressions with a fixed value. Kinds of constants: Literals: used to express particular values

More information