Appendix... B. The Object Constraint

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 (

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 = self.students@pre + 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML

Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML Use-Case Analysis Use-Case Analysis! What is it?! An informal, user-friendly, technique useful for functional requirements analysis and specification! From where did it come?! Ivar Jacobson, a Swedish

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

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

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

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

Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions

Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Kathrin Lehmann, Florian Matthes Chair for Software Engineering for Business Information Systems Technische

More information

How To Write A Test Engine For A Microsoft Microsoft Web Browser (Php) For A Web Browser For A Non-Procedural Reason)

How To Write A Test Engine For A Microsoft Microsoft Web Browser (Php) For A Web Browser For A Non-Procedural Reason) 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

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

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

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

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

Programming and Software Development CTAG Alignments

Programming and Software Development CTAG Alignments Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical

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

3 Data Properties and Validation Rules

3 Data Properties and Validation Rules 3 Data Properties and Validation Rules 3.1 INTRODUCTION Once a database table has been created and the fields named and the type of data which is to be stored in the field chosen, you can make further

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

Using UML Part One Structural Modeling Diagrams

Using UML Part One Structural Modeling Diagrams UML Tutorials Using UML Part One Structural 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

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

5 Process Modeling using UML

5 Process Modeling using UML 5 Process Modeling using UML G. ENGELS and A. FÖRSTER and R. HECKEL and S. THÖNE University of Paderborn, Germany 5. INTRODUCTION The Unified Modeling Language (UML) is a visual, object-oriented, and multi-purpose

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

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

Etudes de cas en OCL avec l outil USE 2

Etudes de cas en OCL avec l outil USE 2 Etudes de cas en OCL avec l outil USE 2 1 2 UML-based Specification Environment 3 1ère étude de cas : invariants Classes en notation textuelle model Company 4 class Employee attributes name : String salary

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

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

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

Statements and Control Flow

Statements and Control Flow Contents 1. Introduction 2. Types and Variables 3. Statements and Control Flow 4. Reading Input 5. Classes and Objects 6. Arrays 7. Methods 8. Scope and Lifetime 9. Utility classes 10. Introduction to

More information

UML TUTORIALS THE COMPONENT MODEL

UML TUTORIALS THE COMPONENT MODEL UML TUTORIALS THE COMPONENT MODEL www.sparxsystems.com.au Sparx Systems 2004 Page 1/5 The component model illustrates the software components that will be used to build the system. These may be built up

More information

The Expressive Power of UML-based Web Engineering 1

The Expressive Power of UML-based Web Engineering 1 The Expressive Power of UML-based Web Engineering 1 NORA KOCH AND ANDREAS KRAUS Ludwig-Maximilians-Universität München. Germany UML-based Web Engineering (UWE) is a development process for Web applications

More information

How To Program In Scheme (Prolog)

How To Program In Scheme (Prolog) 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

OpenOffice.org 3.2 BASIC Guide

OpenOffice.org 3.2 BASIC Guide OpenOffice.org 3.2 BASIC Guide Copyright The contents of this document are subject to the Public Documentation License. You may only use this document if you comply with the terms of the license. See:

More information

Visual Basic Programming. An Introduction

Visual Basic Programming. An Introduction Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides

More information

Aspect Oriented Strategy to model the Examination Management Systems

Aspect Oriented Strategy to model the Examination Management Systems Aspect Oriented Strategy to model the Examination Management Systems P.Durga 1, S.Jeevitha 2, A.Poomalai 3, Prof.M.Sowmiya 4 and Prof.S.Balamurugan 5 Department of IT, Kalaignar Karunanidhi Institute of

More information

PL/SQL Overview. Basic Structure and Syntax of PL/SQL

PL/SQL Overview. Basic Structure and Syntax of PL/SQL PL/SQL Overview PL/SQL is Procedural Language extension to SQL. It is loosely based on Ada (a variant of Pascal developed for the US Dept of Defense). PL/SQL was first released in ١٩٩٢ as an optional extension

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

The previous chapter provided a definition of the semantics of a programming

The previous chapter provided a definition of the semantics of a programming Chapter 7 TRANSLATIONAL SEMANTICS The previous chapter provided a definition of the semantics of a programming language in terms of the programming language itself. The primary example was based on a Lisp

More information

Understanding class definitions

Understanding class definitions OFWJ_C02.QXD 2/3/06 2:28 pm Page 17 CHAPTER 2 Understanding class definitions Main concepts discussed in this chapter: fields methods (accessor, mutator) constructors assignment and conditional statement

More information

DTD Tutorial. About the tutorial. Tutorial

DTD Tutorial. About the tutorial. Tutorial About the tutorial Tutorial Simply Easy Learning 2 About the tutorial DTD Tutorial XML Document Type Declaration commonly known as DTD is a way to describe precisely the XML language. DTDs check the validity

More information

ios Dev Crib Sheet In the Shadow of C

ios Dev Crib Sheet In the Shadow of C ios Dev Crib Sheet As you dive into the deep end of the ios development pool, the first thing to remember is that the mother ship holds the authoritative documentation for this endeavor http://developer.apple.com/ios

More information

Analysis of the Specifics for a Business Rules Engine Based Projects

Analysis of the Specifics for a Business Rules Engine Based Projects Analysis of the Specifics for a Business Rules Engine Based Projects By Dmitri Ilkaev and Dan Meenan Introduction In recent years business rules engines (BRE) have become a key component in almost every

More information

Creating A Grade Sheet With Microsoft Excel

Creating A Grade Sheet With Microsoft Excel Creating A Grade Sheet With Microsoft Excel Microsoft Excel serves as an excellent tool for tracking grades in your course. But its power is not limited to its ability to organize information in rows and

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

Introduction to ERD modelling using UML Class diagrams with Magicdraw (ver 17)

Introduction to ERD modelling using UML Class diagrams with Magicdraw (ver 17) Introduction to ERD modelling using UML Class diagrams with Magicdraw (ver 17) Robin Beaumont robin@organplayers.co.uk Tuesday, 04 October 2011 Contents: 1. Introduction... 2 1.1. Acknowledgement... 2

More information

Software Design. Software Design. Software design is the process that adds implementation details to the requirements.

Software Design. Software Design. Software design is the process that adds implementation details to the requirements. Software Design Software Design Software design is the process that adds implementation details to the requirements. It produces a design specification that can be mapped onto a program. It may take several

More information

Scenario-based Requirements Engineering and User-Interface Design

Scenario-based Requirements Engineering and User-Interface Design Scenario-based Requirements Engineering and User-Interface Institut für Computertechnik ICT Institute of Computer Technology Hermann Kaindl Vienna University of Technology, ICT Austria kaindl@ict.tuwien.ac.at

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

Chapter 5. Selection 5-1

Chapter 5. Selection 5-1 Chapter 5 Selection 5-1 Selection (Decision) The second control logic structure is selection: Selection Choosing between two or more alternative actions. Selection statements alter the sequential flow

More information

Once the schema has been designed, it can be implemented in the RDBMS.

Once the schema has been designed, it can be implemented in the RDBMS. 2. Creating a database Designing the database schema... 1 Representing Classes, Attributes and Objects... 2 Data types... 5 Additional constraints... 6 Choosing the right fields... 7 Implementing a table

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented

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

Solutions of Linear Equations in One Variable

Solutions of Linear Equations in One Variable 2. Solutions of Linear Equations in One Variable 2. OBJECTIVES. Identify a linear equation 2. Combine like terms to solve an equation We begin this chapter by considering one of the most important tools

More information

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

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

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

WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math

WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Textbook Correlation WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Following Directions Unit FIRST QUARTER AND SECOND QUARTER Logic Unit

More information

Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2

Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, 2008. 1 Introduction 1. 2 Invoking Shell Scripts 2 Unix Shell Scripts Norman Matloff July 30, 2008 Contents 1 Introduction 1 2 Invoking Shell Scripts 2 2.1 Direct Interpretation....................................... 2 2.2 Indirect Interpretation......................................

More information

BPMN Business Process Modeling Notation

BPMN Business Process Modeling Notation BPMN (BPMN) is a graphical notation that describes the logic of steps in a business process. This notation has been especially designed to coordinate the sequence of processes and messages that flow between

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information