Formally speaking: How to apply OCL

Size: px
Start display at page:

Download "Formally speaking: How to apply OCL"

Transcription

1 Page 1 of 6 Copyright IBM Corporation Search for: within All of dw Use + - ( ) " " Search help IBM home Products & services Support & downloads My account developerworks > Rational Formally speaking: How to apply OCL Gary Pollice Worcester Polytechnic Institute 14 Jul 2004 from The Rational Edge: This article discusses various uses of OCL (Object Constraint Language) for both developers and testers. IT also enumerates the many advantages of the language, which is part of the UML specification. If you were a computer science or software engineering major in college, you probably had to take a course in the foundations of computer science or formal methods. And if you did, you probably thought, What will I ever use this for? Since I have devoted a significant part of my career to working with language tools, formal methods are important to me. But they also have a lot of value for software practitioners, especially when they are embedded in a specification language, such as OCL (Object Constraint Language). In this article, I will share with you why I value OCL and how I apply it. Contents: What are formal methods? UML and OCL OCL as a specification language Testers like it, too Conclusion References Notes About the author Rate this article Subscriptions: dw newsletters dw Subscription (CDs and downloads) What are formal methods? Formal methods are the mathematical foundations for many technologies and practices that software engineers use. Joseph Goguen says that formal methods are syntactic in essence but semantic in purpose. 1 What he means is that formal methods are concerned with form with the syntax of statements, predicates, and so on. They are also concerned with content. Formal specification languages represent one area of formal methods. Among the best known are Larch, VDM, and Z. Most of these languages are based on first-order logic with set theory. Many have supporting tools basically theorem provers that accept a specification written in the formal language and evaluate it for consistency, completeness, and accuracy. These languages describe what a program should do rather than how it should do it. Often they are syntactically simple and semantically rich they use the symbols of mathematical logic (e.g., ). Unfortunately, understanding simple expressions in these languages such as can be difficult, even for people with a solid math education. 2 But just because these languages are difficult to understand doesn't mean they are useless. Some kinds of software must be developed and quality tested more rigorously than other kinds. For example, compilers must work correctly all the time, so they are excellent candidates for formal specifications. Of course, we should always strive for bug-free software, but if a compiler generates incorrect code, the consequences will be more dire than if a grocery list program fails. UML and OCL In addition to compilers, another component in many software developers toolkits today has a strong formal background: Unified Modeling Language (UML). This language fits Goguen s description of a formal method. It is syntactic in essence, offering a well-defined way to construct a model. It is also semantic in purpose that is, it is designed to convey meaning. Much information can be encoded in a UML model. But it is not always easy to construct syntactically correct and semantically rich models of software using just UML diagrams. The rules for which type of arrowhead and which type of connector to use for which purpose can be just as confusing as the syntax for a programming language such as Java. And then, even if you can construct a correct UML diagram, there is much information that it will not convey. The Rational Edge--July 2004

2 Page 2 of 6 However, OCL, a formal specification language that is part of the UML specification, enables you to annotate models with expressions that clarify meaning. In UML 1.1, the main purpose of OCL was to identify the constraints on model elements. For example, it could help you indicate that, to be assigned a room, a specific course must have at least six students enrolled. With OCL you could annotate the association between the Course and Classroom classes to represent the constraint, as shown in Figure 1. As an alternative to the note shown in this figure, you could use a constraint connector between the Course and Classroom classes. Figure 1: Using OCL to indicate a constraint on assigning a classroom to a course UML 2.0 has expanded the role of OCL to include queries, business rule specification, and other types of expressions. If Model Driven Architecture (MDA) succeeds in taking hold, it will be in part because of OCL. It allows us to annotate models and convey specifications that generate accurate code. I also use OCL to help clarify my focus on critical testing areas. As many developers do not know how to apply OCL in these ways, I will devote the rest of this article to showing readers how I do it. OCL as a specification language Since my undergraduate days as a mathematics major, I ve enjoyed using some form of logical notation to express program design. One of my professors at Rutgers University designed a programming language based on the predicate calculus 3 that allowed me to write a specification using the language of logic, encode it to a file, and compile it to a program that satisfied the specification. The effective semantic richness was incredible. Once, I experimented to see how using this predicate-calculus language (PCL) compared to using an Algol-like language. I wrote a program to copy and transform a disk file to another form, applying certain filtering and transformation rules. First, I wrote it in PCL, using six lines (expressions) of code; it was accepted and ran the first time. Writing the very same program in the Algol-like language required more than 600 lines of code. So the savings PCL afforded, in terms of what I had to write, was two orders of magnitude. 4 Plus, I discovered an unexpected value in writing the PCL program first: I could use it to specify my second implementation in the Algol-like language, which also compiled and executed correctly the first time! After that, I began to write specifications in PCL whenever possible, and an amazing number of my programs compiled and ran correctly the first time. So I found that logic was indeed useful outside of the classroom. The biggest problem with PCL, though, was its bizarre syntax. If you have ever written an APL program, you can understand what I m talking about. Although APL programmers love(d) their language, it is mostly unintelligible to mere mortals who have to program in COBOL, C, or some other more common language. PCL suffered from the same problems. However, now we have OCL, whose authors realized that ease-of-use and understandability were pretty important if they wanted to see the language adopted by a wide audience. If you spend a little time studying the OCL specification and look at some examples, you can

3 Page 3 of 6 7/16/2004 jump right into using it to specify programs. Just as with UML, you can spend a lot of time and effort getting an OCL specification to obey all the syntax rules and requirements. But you can expend much less effort and still write something that is useful and understandable. Let s refer to this as using semiformal methods. You can do this when you get stuck; instead of attempting to follow every rule in OCL, use only the parts of it that are familiar to you, or that your audience will find easy to understand. A simple example In last month s column we looked at a triangle tester program that accepted three numbers and determined what type of triangle, if any, has sides with corresponding lengths. Let s specify this in OCL. Our method, kindoftriangle, returned the object TriangleType, which enabled us to determine the type of triangle. The specification for this method is shown in Code sample 1. Code sample 1: Triangle tester kindoftriangle specification At first glance the code sample looks rather long. It also looks like some sort of pseudo code; which it is in a way. But let s look a little closer. First of all, the specification is long because I ve formatted it that way. I could probably shorten it by ten lines if I wanted to. But it still takes up less space than would the same specification written out in English prose. After presenting the next couple of features of this specification I ll explain some of the OCL syntax and semantics. The second thing to notice is that the specification is just that a specification that says what the effect of executing the method kindoftriangle will be. It says nothing about how to implement the method. This is a key attribute of specifications: They must be free of implementation details, which may be difficult if we are using natural language. Often we have preconceived notions about

4 Page 4 of 6 implementation details, such as what the data storage mechanism should be. If we remove implementation details, we get to the heart of the problem and create a clearer specification. The third feature of an OCL specification is that it is declarative, specifying only the what and not the how. There is no description of any change in state or assignment to variables. OCL expressions are said to be side-effect free. In short, what you see is what you get. Now let s go back and analyze Code sample 1. The first line tells us what the specification applies to its context. It is for the kindoftriangle operation in the TriangleTester class, and the operation returns a value of type TriangleType. Other kinds of context declarations are defined in OCL for UML classifiers, attributes, and operations. The second line describes the preconditions for this operation things that must be true for the operation to work properly. If you are practicing design by contract, 5 and the client must guarantee that contract conditions are met before invoking an operation, the client s part of the contract is specified by the preconditions. The rest of the specification consists of the post-conditions. This is the service side of the contract. If the preconditions are met, the implementer agrees to produce the results specified by the post-conditions. If you have programmed in almost any modern programming language, you should be able to read and understand the post-condition specification. There is more to OCL than just context, preconditions, and post-conditions. It has syntax for describing invariants in a context, initial values, queries, and so on. Also, OCL does not employ a lot of mathematical notation. Most of its notation is readily accessible to software developers. Jotting down specifications in OCL, whether you are planning to include them in a formal document, make them into comments in your code, or throw them away, is a useful exercise. It helps you, as a software developer, to clarify what your real task is. But it s not the only use for OCL. Testers like it, too Test cases should be derived from specifications, but this may be difficult to do, especially if the specifications are written in prose in a long document. Use cases are useful for giving testers enough information to perform system-level and black-box tests to ensure that the system delivers value to the client. Analysis and design activities decompose a system into classes and subsystems that need to be tested. OCL can be helpful here. Let s start looking at the use-case level of a system specification. If you are familiar with use cases, you know that they already have precondition and post-condition attributes. With a little training, you could probably instruct everyone on how to read enough OCL to understand pre-conditions and post-conditions written in it. 6 This can help requirements specifiers focus on clarity and ensure that the use case is consistent, coherent, and of real value to the actor. If you describe the pre- and post-conditions of your use case with OCL, you can then make them the specification of your specification and review the use-case flows of events to determine if they accurately reflect the OCL. You can also ensure that the flows of events address all the constraints and visible results. Testers can use the pre- and post-conditions to write their system-level test cases. For example, in the specification in Code sample 1, we can quickly identify some test cases and construct a table to ensure that we have at least tested all possible result combinations. Our test case table might look like Table 1. Table 1: Triangle tester test cases

5 Page 5 of 6 The tests described in Table 1 clearly are not complete. However they provide at least a basic test of the post-conditions defined in the Code sample 1 specification. Depending upon the priority and criticality of the feature and the risks of not completely testing all possible combinations, we can either stop here or add as many test cases as necessary. I have found that creating test cases from OCL specifications is a straightforward task. Programmers and testers who use OCL can become very good at ensuring that the specifications are correct and the tests really address them. In fact, you could use OCL in combination with the TFP technique I described in last month s column to design tests from a well-formed, independent specification. When I teach software testing classes at WPI, I have students write OCL specifications for methods that lack other specifications. This helps them do a better job of testing because they are able to isolate the method s real requirements or those the implementer perceives and write appropriate tests for them. Sometimes, implementers find that perceived requirements do not match actual ones. OCL can help by creating a concise, readable, and analyzable specification. Conclusion OCL is not the only formal language that can be used for specification, nor is it the most rigorous or complete one. But it does have some important things going for it: It does not have overly complicated mathematical symbols and rules. It is easy to learn and begin applying. It is part of a standard adopted by many organizations. It will be supported by many new tools under development. You do not even need to use OCL with the rest of UML to realize its benefits. Like any new technique, you have to learn it, begin to use it, refine your skills, and keep in mind the end goal: producing reliable software. In general, it is useful to study and embrace formal methods as a way of thinking. The software professionals I know who have done so are, in my opinion, some of the best analysts, designers, and programmers that I have ever had the privilege of working with. There is something about thinking formally that is well-suited to developing computer software. If you have a chance to take a course in formal methods, I urge you to do so and then note how it makes you better at what you do. References Information about OCL and the OCL specification can be found at Jos Warmer and Anne Kleppe, The Object Constraint Language, 2e. Addison-Wesley, 2003 (ISBN: )

6 Page 6 of 6 Joseph A. Goguen s Web page contains his publications on software engineering, architecture, formal methods, and methodology: Peter Ryan and Chris Sennett, eds., Formal Methods in Systems Engineering. Springer-Verlag, (ISBN: ) Notes 1 Joseph A. Goguen in the Introduction to Formal Methods in Systems Engineering, Ryan and Sennett, ed., Springer-Verlag, This particular expression declares succinctly that an ordered collection, x, of n+1 integers, or some other comparable type, is sorted in ascending order. 3 The predicate calculus is a logic consisting of predicate expressions that evaluate whether something is true or false. It has the typical logical operations, such as AND and OR, and relational operators such as =, <, and so on. 4 An order of magnitude is a factor of ten. Two orders of magnitude sounds much more impressive than 100 times, don t you think? 5 Design by contract is associated mainly with Dr. Bertrand Meyer and his Eiffel programming language. See for more information. 6 In their book, The Object Constraint Language, Second Edition, Warmer and Kleppe provide an alternate OCL syntax that is easier for business modelers to use and understand. OCL can be quite flexible in the syntax area. About the author Gary Pollice is a Professor of Practice at Worcester Polytechnic Institute, in Worcester, MA. He teaches software engineering, design, testing, and other computer science courses, and also directs student projects. Before entering the academic world, he spent more than thirty-five years developing various kinds of software, from business applications to compilers and tools. His last industry job was with IBM Rational Software, where he was known as "the RUP Curmudgeon" and was also a member of the original Rational Suite team. He is the primary author of Software Development for Small Teams: A RUP-Centric Approach, published by Addison-Wesley in He holds a B.A. in mathematics and M.S. in computer science. What do you think of this document? Killer! (5) Good stuff (4) So-so; not bad (3) Needs work (2) Lame! (1) Comments? Submit feedback developerworks > Rational About IBM Privacy Terms of use Contact

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

Software Specification and Testing

Software Specification and Testing Software Specification and Testing Using UML and OCL Jonathan Milley Faculty of Engineering and Applied Science MUN St. John s, Newfoundland Email: jmilley@engr.mun.ca Dr. Dennis K. Peters Faculty of Engineering

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

Tips for writing good use cases.

Tips for writing good use cases. Transforming software and systems delivery White paper May 2008 Tips for writing good use cases. James Heumann, Requirements Evangelist, IBM Rational Software Page 2 Contents 2 Introduction 2 Understanding

More information

Appendix... B. The Object Constraint

Appendix... B. The Object Constraint 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

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

RUP iteration planning

RUP iteration planning Page 1 of 13 Copyright IBM Corporation 2004. http://www-106.ibm.com/developerworks/rational/library/5335.html Search for: within All of dw Use + - ( ) " " Search help IBM home Products & services Support

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

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

How to Study Mathematics Written by Paul Dawkins

How to Study Mathematics Written by Paul Dawkins How to Study Mathematics Written by Paul Dawkins Before I get into the tips for how to study math let me first say that everyone studies differently and there is no one right way to study for a math class.

More information

Analysis of Software Architectures

Analysis of Software Architectures Analysis of Software Architectures Software Architecture Lecture 13 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Learning Objectives Define architectural analysis

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

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

Agile Techniques for Object Databases

Agile Techniques for Object Databases db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and

More information

Mathematical Reasoning in Software Engineering Education. Peter B. Henderson Butler University

Mathematical Reasoning in Software Engineering Education. Peter B. Henderson Butler University Mathematical Reasoning in Software Engineering Education Peter B. Henderson Butler University Introduction Engineering is a bridge between science and mathematics, and the technological needs of mankind.

More information

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology? In this Lecture you will Learn: Systems Development Methodologies What a systems development methodology is Why methodologies are used The need for different methodologies The main features of one methodology

More information

Quotes from Object-Oriented Software Construction

Quotes from Object-Oriented Software Construction Quotes from Object-Oriented Software Construction Bertrand Meyer Prentice-Hall, 1988 Preface, p. xiv We study the object-oriented approach as a set of principles, methods and tools which can be instrumental

More information

Software Requirements Specification of A University Class Scheduler

Software Requirements Specification of A University Class Scheduler Software Requirements Specification of A University Class Scheduler Deanna M. Needell Jeff A. Stuart Tamara C. Thiel Sergiu M. Dascalu Frederick C. Harris, Jr. Department of Computer Science University

More information

Construct by Contract: Construct by Contract: An Approach for Developing Reliable Software

Construct by Contract: Construct by Contract: An Approach for Developing Reliable Software Construct by Contract: Construct by Contract: An Approach for Developing Reliable Software Juan Jose Mendoza Santana Dissertation 2013 Erasmus Mundus MSc in Dependable Software Systems Department of Computer

More information

Introducing Formal Methods. Software Engineering and Formal Methods

Introducing Formal Methods. Software Engineering and Formal Methods Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended

More information

On the Relation between Design Contracts and Errors: A Software Development Strategy

On the Relation between Design Contracts and Errors: A Software Development Strategy On the Relation between Design Contracts and Errors: A Software Development Strategy Eivind J. Nordby, Martin Blom, Anna Brunstrom Computer Science, Karlstad University SE-651 88 Karlstad, Sweden {Eivind.Nordby,

More information

Risk Based Software Development Reducing Risk and Increasing the Probability of Project Success

Risk Based Software Development Reducing Risk and Increasing the Probability of Project Success Risk Based Software Development Reducing Risk and Increasing the Probability of Project Success IT Software Development Just Isn t Working! IT systems are at the heart of modern business and the development

More information

The value of modeling

The value of modeling The value of modeling Level: Introductory Gary Cernosek, Marketing Manager, IBM Rational Eric Naiburg, Group Market Manager Desktop Products, IBM Rational 15 Nov 2004 from The Rational Edge: This article

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

Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers

Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers TIMOTHY S. GEGG-HARRISON Winona State University Although computer scientists understand the importance of discrete

More information

Book 3 Cost Estimating in an Agile Development Environment. (early release)

Book 3 Cost Estimating in an Agile Development Environment. (early release) Book 3 Cost Estimating in an Agile Development Environment (early release) Book 3: Cost Estimating in an Agile Development Environment In this third book I ll use the slides I gave at a speech several

More information

Supporting Tools for Designing-By-Contract in Component based Applications

Supporting Tools for Designing-By-Contract in Component based Applications Supporting Tools for Designing-By-Contract in Component based Applications Antonio Coronato 1, Antonio d Acierno 2, Diego D Ambrosio 3, and Giuseppe De Pietro 3 1 DRR-CNR, Via Castellino 111, 80131 Napoli,

More information

Five High Order Thinking Skills

Five High Order Thinking Skills Five High Order Introduction The high technology like computers and calculators has profoundly changed the world of mathematics education. It is not only what aspects of mathematics are essential for learning,

More information

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information

Cutting to the chase What do you need to get accepted to an economics PhD program?

Cutting to the chase What do you need to get accepted to an economics PhD program? A Guide for UCSB Undergraduates Considering a PhD in Economics Dick Startz An economics PhD can be the portal to a satisfying and rewarding career. In this Guide we tell you a little bit about getting

More information

Model Simulation in Rational Software Architect: Business Process Simulation

Model Simulation in Rational Software Architect: Business Process Simulation Model Simulation in Rational Software Architect: Business Process Simulation Mattias Mohlin Senior Software Architect IBM The BPMN (Business Process Model and Notation) is the industry standard notation

More information

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief Digital Industries Trailblazer Apprenticeship Software Developer - Occupational Brief Table of Contents Contents 1 Software Developer Trailblazer Apprenticeship Introduction... 1 2 Software Developer Trailblazer

More information

A Standards-Based Approach to Extracting Business Rules

A Standards-Based Approach to Extracting Business Rules A Standards-Based Approach to Extracting Business Rules Ira Baxter Semantic Designs, Inc. Stan Hendryx Hendryx & Associates 1 Who are the presenters? Semantic Designs Automated Analysis and Enhancement

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 7: Finding Analysis Classes 1 Analysis Workflow: Analyze a Use Case The analysis workflow consists of the following activities: Architectural analysis

More information

Writing in the Computer Science Major

Writing in the Computer Science Major Writing in the Computer Science Major Table of Contents Introduction... 2 Statement of Purpose... 2 Revision History... 2 Writing Tasks in Computer Science... 3 Documentation... 3 Planning to Program:

More information

Software Development in the Large!

Software Development in the Large! Software Development in the Large! Peter Eeles Executive IT Architect, IBM peter.eeles@uk.ibm.com IBM Rational Software Development Conference 2007 2007 IBM Corporation Agenda IBM Rational Software Development

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

DISCLAIMER OVERVIEW WHY DO WE MODEL WHAT IS QUALITY? Jeff Jacobs, jmjacobs@jeffreyjacobs.com

DISCLAIMER OVERVIEW WHY DO WE MODEL WHAT IS QUALITY? Jeff Jacobs, jmjacobs@jeffreyjacobs.com DEVELOPING HIGH CLASS UML CLASS MODELS Jeff Jacobs, jmjacobs@jeffreyjacobs.com DISCLAIMER The views presented here are those of the presenter and do not represent those of any other person, organization,

More information

Using Karel with Eclipse

Using Karel with Eclipse Mehran Sahami Handout #6 CS 106A September 23, 2015 Using Karel with Eclipse Based on a handout by Eric Roberts Once you have downloaded a copy of Eclipse as described in Handout #5, your next task is

More information

Generating Aspect Code from UML Models

Generating Aspect Code from UML Models Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

Advanced Software Engineering ( -Formal specification, verification, transformation, and application-

Advanced Software Engineering ( -Formal specification, verification, transformation, and application- Advanced Software Engineering ( -Formal specification, verification, transformation, and application- Shaoying Liu Faculty of Computer and Information Sciences Hosei Univeresity, Tokyo, Japan Email: sliu@k.hosei.ac.jp

More information

DEFINING CONTRACTS WITH DIFFERENT TOOLS IN SOFTWARE DEVELOPMENT

DEFINING CONTRACTS WITH DIFFERENT TOOLS IN SOFTWARE DEVELOPMENT Annales Univ. Sci. Budapest., Sect. Comp. 36 (2012) 323 339 DEFINING CONTRACTS WITH DIFFERENT TOOLS IN SOFTWARE DEVELOPMENT György Orbán and László Kozma (Budapest, Hungary) Communicated by Zoltán Horváth

More information

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0 VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 UX Software - 2009 TABLE OF CONTENTS INTRODUCTION... ii What is this book about?... iii How to use this book... iii Time to start...

More information

Project VIDE Challenges of Executable Modelling of Business Applications

Project VIDE Challenges of Executable Modelling of Business Applications Project VIDE Challenges of Executable Modelling of Business Applications Radoslaw Adamus *, Grzegorz Falda *, Piotr Habela *, Krzysztof Kaczmarski #*, Krzysztof Stencel *+, Kazimierz Subieta * * Polish-Japanese

More information

query Form and Comprehension in Expressible Lisp

query Form and Comprehension in Expressible Lisp A New Advanced Query Web Page and its query language To replace the advanced query web form on www.biocyc.org Mario Latendresse Bioinformatics Research Group SRI International Mario@ai.sri.com 1 The Actual

More information

2667A - Introduction to Programming

2667A - Introduction to Programming 2667A - Introduction to Programming Table of Contents Introduction Audience At Course Completion Prerequisites Microsoft Certified Professional Exams Student Materials Course Outline Introduction Elements

More information

Why Your Job Search Isn t Working

Why Your Job Search Isn t Working Why Your Job Search Isn t Working 6 mistakes you re probably making and how to fix them I t s easy to think that your lack of success in finding a new job has nothing to do with you. After all, this is

More information

Automated Theorem Proving - summary of lecture 1

Automated Theorem Proving - summary of lecture 1 Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of

More information

CRISP-DM, which stands for Cross-Industry Standard Process for Data Mining, is an industry-proven way to guide your data mining efforts.

CRISP-DM, which stands for Cross-Industry Standard Process for Data Mining, is an industry-proven way to guide your data mining efforts. CRISP-DM, which stands for Cross-Industry Standard Process for Data Mining, is an industry-proven way to guide your data mining efforts. As a methodology, it includes descriptions of the typical phases

More information

Sofware Requirements Engineeing

Sofware Requirements Engineeing Sofware Requirements Engineeing Three main tasks in RE: 1 Elicit find out what the customers really want. Identify stakeholders, their goals and viewpoints. 2 Document write it down (). Understandable

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

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

UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling

UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling PATHS TO DOMAIN-SPECIFIC MODELING... 1 UML PROFILING... 2 The Origin of the UML Profiling Specifications... 2 The Vision...

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

Use Case Modeling. Software Development Life Cycle Training. Use Case Modeling. Set A: Requirements Analysis Part 3: Use Case Modeling

Use Case Modeling. Software Development Life Cycle Training. Use Case Modeling. Set A: Requirements Analysis Part 3: Use Case Modeling Software Development Life Cycle Training Set A: Requirements Analysis Part 3: Use Case Modeling Use Case Modeling There are several ways to capture and organize software system requirements. The first

More information

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

TOGAF usage in outsourcing of software development

TOGAF usage in outsourcing of software development Acta Informatica Pragensia 2(2), 2013, 68 76, DOI: 10.18267/j.aip.25 Section: Online: aip.vse.cz Peer-reviewed papers TOGAF usage in outsourcing of software development Aziz Ahmad Rais 1, Rudolf Pecinovsky

More information

ABET General Outcomes. Student Learning Outcomes for BS in Computing

ABET General Outcomes. Student Learning Outcomes for BS in Computing ABET General a. An ability to apply knowledge of computing and mathematics appropriate to the program s student outcomes and to the discipline b. An ability to analyze a problem, and identify and define

More information

Cloud: It s not a nebulous concept

Cloud: It s not a nebulous concept WHITEPAPER Author: Stuart James Cloud: It s not a nebulous concept Challenging and removing the complexities of truly understanding Cloud Removing the complexities to truly understand Cloud Author: Stuart

More information

Why do you want to launch a business analyst career? Some possibilities include:

Why do you want to launch a business analyst career? Some possibilities include: YOUR BUSINESS ANALYSIS CAREER GOALS WHY BUSINESS ANALYSIS? Why do you want to launch a business analyst career? Some possibilities include: Enjoy my work more; Leverage my skills as part of a profession;

More information

6 A/B Tests You Should Be Running In Your App

6 A/B Tests You Should Be Running In Your App 6 A/B Tests You Should Be Running In Your App Introduction Everyone in mobile believes in A/B testing. But if you re wasting your days testing nothing more than various colors or screen layouts: you re

More information

7 Insider Secrets For Selecting the Perfect Web Designer For Your Next Project. By Bruce Spiher & Tarun Gehani

7 Insider Secrets For Selecting the Perfect Web Designer For Your Next Project. By Bruce Spiher & Tarun Gehani 7 Insider Secrets For Selecting the Perfect Web Designer For Your Next Project By Bruce Spiher & Tarun Gehani Table of Contents Introduction Page 3 Secret #1 Be clear what you want before you contact a

More information

Undergraduate Basics for Systems Engineering (SE), using The Principles, Measures, Concepts and Processes of

Undergraduate Basics for Systems Engineering (SE), using The Principles, Measures, Concepts and Processes of Undergraduate Basics for Systems Engineering (SE), using The Principles, Measures, Concepts and Processes of Planguage. Copyright 2007-9 by Tom Gilb. Abstract. There are some very basic things that systems

More information

G C.3 Construct the inscribed and circumscribed circles of a triangle, and prove properties of angles for a quadrilateral inscribed in a circle.

G C.3 Construct the inscribed and circumscribed circles of a triangle, and prove properties of angles for a quadrilateral inscribed in a circle. Performance Assessment Task Circle and Squares Grade 10 This task challenges a student to analyze characteristics of 2 dimensional shapes to develop mathematical arguments about geometric relationships.

More information

SOFTWARE DEVELOPMENT MAGAZINE: MANAGEMENT FORUM December, 1999. Vol. 7, No. 12 Capturing Business Rules. By Ellen Gottesdiener,

SOFTWARE DEVELOPMENT MAGAZINE: MANAGEMENT FORUM December, 1999. Vol. 7, No. 12 Capturing Business Rules. By Ellen Gottesdiener, SOFTWARE DEVELOPMENT MAGAZINE: MANAGEMENT FORUM December, 1999. Vol. 7, No. 12 Capturing Business Rules By Ellen Gottesdiener, [Editor's Intro] With our noses to the software development grindstone, it

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

Learning to Delegate

Learning to Delegate Learning to Delegate Overview Tips for managers on how to delegate Why is delegation necessary? Why do many managers have a hard time delegating? What to delegate What not to delegate How to delegate Give

More information

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code 1 Introduction The purpose of this assignment is to write an interpreter for a small subset of the Lisp programming language. The interpreter should be able to perform simple arithmetic and comparisons

More information

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2 BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than

More information

Rigorous Software Engineering Hoare Logic and Design by Contracts

Rigorous Software Engineering Hoare Logic and Design by Contracts Rigorous Software Engineering Hoare Logic and Design by Contracts Simão Melo de Sousa RELEASE (UBI), LIACC (Porto) Computer Science Department University of Beira Interior, Portugal 2010-2011 S. Melo de

More information

Lecture 9: Requirements Modelling

Lecture 9: Requirements Modelling A little refresher: What are we modelling? Lecture 9: Requirements Modelling Requirements; Systems; Systems Thinking Role of Modelling in RE Why modelling is important Limitations of modelling Brief overview

More information

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Challenges and Opportunities for formal specifications in Service Oriented Architectures ACSD ATPN Xi an China June 2008 Challenges and Opportunities for formal specifications in Service Oriented Architectures Gustavo Alonso Systems Group Department of Computer Science Swiss Federal Institute

More information

Generating Enterprise Applications from Models

Generating Enterprise Applications from Models Generating Enterprise Applications from Models Vinay Kulkarni, R Venkatesh, Sreedhar Reddy Tata Research Development and Design Centre, 54, Industrial estate, Hadapsar, Pune, 411 013, INDIA { vinayk, rvenky,

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

Minimizing code defects to improve software quality and lower development costs.

Minimizing code defects to improve software quality and lower development costs. Development solutions White paper October 2008 Minimizing code defects to improve software quality and lower development costs. IBM Rational Software Analyzer and IBM Rational PurifyPlus software Kari

More information

VHDL Test Bench Tutorial

VHDL Test Bench Tutorial University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory VHDL Test Bench Tutorial Purpose The goal of this tutorial is to demonstrate how to automate

More information

IBM Rational Asset Manager

IBM Rational Asset Manager Providing business intelligence for your software assets IBM Rational Asset Manager Highlights A collaborative software development asset management solution, IBM Enabling effective asset management Rational

More information

The role of integrated requirements management in software delivery.

The role of integrated requirements management in software delivery. Software development White paper October 2007 The role of integrated requirements Jim Heumann, requirements evangelist, IBM Rational 2 Contents 2 Introduction 2 What is integrated requirements management?

More information

Software Engineering Reference Framework

Software Engineering Reference Framework Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of

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

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

Representing Exceptional Behaviour at the earlier Phases of Software Development

Representing Exceptional Behaviour at the earlier Phases of Software Development Representing Exceptional Behaviour at the earlier Phases of Software Development Rogério de Lemos Computing Laboratory University of Kent at Canterbury, CT2 7NF, UK r.delemos@ukc.ac.uk Exception handling

More information

IUPUI Online Mathematics Academy Summer 2014 Student Questionnaire Report

IUPUI Online Mathematics Academy Summer 2014 Student Questionnaire Report IUPUI Online Mathematics Academy Summer 2014 Student Questionnaire Report Indiana University Purdue University, Indianapolis (IUPUI) Report Completed by: Office of Student Data, Analysis, and Evaluation

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

Developing Mobile Apps for the Enterprise: The Three Rs

Developing Mobile Apps for the Enterprise: The Three Rs Developing Mobile Apps for the Enterprise: The Three Rs Recorded April 12, 2013 Discussion Transcript* Click here to download or listen to the audio podcast version of this discussion. Larry Hettick Editorial

More information

Sequential Program Execution

Sequential Program Execution Sequential Program Execution Quick Start Compile step once always g++ -o Realtor1 Realtor1.cpp mkdir labs cd labs Execute step mkdir 1 Realtor1 cd 1 cp../0/realtor.cpp Realtor1.cpp Submit step cp /samples/csc/155/labs/1/*.

More information

Chapter 1: Key Concepts of Programming and Software Engineering

Chapter 1: Key Concepts of Programming and Software Engineering Chapter 1: Key Concepts of Programming and Software Engineering Software Engineering Coding without a solution design increases debugging time - known fact! A team of programmers for a large software development

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

HOW TO USE DATA VISUALIZATION TO WIN OVER YOUR AUDIENCE

HOW TO USE DATA VISUALIZATION TO WIN OVER YOUR AUDIENCE HOW TO USE DATA VISUALIZATION TO WIN OVER YOUR AUDIENCE + TABLE OF CONTENTS HOW DATA SUPPORTS YOUR MESSAGE 1 Benefits of Data Visualization WHEN TO USE DATA VISUALIZATION HOW TO FIND THE STORY IN YOUR

More information

How to Design a Web Site

How to Design a Web Site Planning Your Site Prepared by Joseph Lowery 4-6-09 Excerpt from the Dreamweaver 8 Bible by Joseph Lowery, published by Wiley Publishing, Inc. Produced by Joseph Lowery i Planning Your Site Planning in

More information

Chapter 4 Software Lifecycle and Performance Analysis

Chapter 4 Software Lifecycle and Performance Analysis Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and

More information

(BA122) Software Engineer s Workshop (SEW)

(BA122) Software Engineer s Workshop (SEW) Training for the Business Analyst (BA122) Software Engineer s Workshop (SEW) Duration: 4 days CDUs (Continuing Development Units): 28 Description: A practical workshop covering the role of the Business-Systems

More information

CHAPTER 11 REQUIREMENTS

CHAPTER 11 REQUIREMENTS Lecture Software Engineering CHAPTER 11 REQUIREMENTS Lecture Software Engineering Topics Determining What the Client Needs Overview of the Requirements Workflow Understanding the Domain The Business Model

More information

Lecture 3 Topics on Requirements Engineering

Lecture 3 Topics on Requirements Engineering Lecture 3 Topics on Requirements Engineering Some material taken from the Tropos project at U of T Copyright Yijun Yu, 2005 Course information Let s vote Course Project/Final Exam 50-50 or 60-40? Midterm/Final

More information

Web Services - Consultant s View. From IT Stategy to IT Architecture. Agenda. Introduction

Web Services - Consultant s View. From IT Stategy to IT Architecture. Agenda. Introduction Web Services - A Consultant s View From IT Stategy to IT Architecture Hans-Peter Hoidn, Timothy Jones, Jürg Baumann, Oliver Vogel February 12, 2003 Copyright IBM Corporation 2002 Agenda Introduction I.

More information

Introduction to Formal Methods. Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm

Introduction to Formal Methods. Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm Introduction to Formal Methods Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm Outline Introduction Formal Specification Formal Verification Model Checking Theorem Proving Introduction Good papers to

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

Data Modeling Basics

Data Modeling Basics Information Technology Standard Commonwealth of Pennsylvania Governor's Office of Administration/Office for Information Technology STD Number: STD-INF003B STD Title: Data Modeling Basics Issued by: Deputy

More information

Introduction. Book Structure

Introduction. Book Structure Fundamentals of Project Management, 4 th Edition Simple Solutions for Busy People By Joseph Heagney (A Book review by R. Max Wideman, FPMI) The views expressed in this article are strictly those of Max

More information

Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC

Secrets to Automation Success. A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC 5 Secrets to Automation Success A White Paper by Paul Merrill, Consultant and Trainer at Beaufort Fairmont, LLC 5 Secrets to Automated Testing Success 2 Secret #1 Practice Exceptional Leadership If you

More information