Contract Wizard II: Developing a GUI

Size: px
Start display at page:

Download "Contract Wizard II: Developing a GUI"

Transcription

1 Contract Wizard II: Developing a GUI PROJECT PLAN Diploma project Project period Student name Petra Marty Status 9 th semester address martypet@student.ethz.ch Supervisor name Karine Arnout

2 1. PROJECT DESCRIPTION Overview When thinking of new software development methods and tools, many people tend to view productivity as the major expected benefit. In object technology and especially in Eiffel, productivity benefits follow not just from the immediate benefits of the approach but from its emphasis on quality. [2] To be sure that our object-oriented software will perform properly, we need a systematic approach to specifying and implementing object-oriented software elements and their relations in a software system. Under the Design by Contract theory, a software system is viewed as a set of communicating components whose interaction is based on precisely defined specifications of the mutual obligations and benefits that are involved in those communications. The specifications are called contracts. [3] Regrettably Design by Contract is still a specificity of the Eiffel programming language. It is not directly supported in most programming languages based on.net. With the Contract Wizard II tool it is possible to add contracts like preconditions, postconditions and invariants to an arbitrary.net assembly, even if it was not written in Eiffel. The contracted assemblies will contribute developing better quality software. Scope of the work Dominik Wotruba developed in his diploma thesis the business logic of the Contract Wizard II tool. [4] The existing work includes among other things: a parser to parse a.net assembly or XML files to produce an abstract syntax tree (ADT) a code generator for generating XML files where the contracts are stored and for generating Eiffel proxy classes with contracts a simple command line user interface for adding contracts The main work of my diploma thesis is to implement a GUI (Graphical User Interface) for the Contract Wizard II. Currently the contracts are added to an assembly through a command line user interface which is not user-friendly. I will also briefly discuss the possibility of adding Design by Contract support into the CLI (Common Language Infrastructure). [6] Intended results The idea is to have a usable product in the end, meaning usable by end-users. It is meant to provide the widest range of people with the power of Design by Contract. Therefore it is important to design a user-friendly and intuitive graphical user interface together with an understandable and helpful documentation. 1

3 The work consists of the following parts: Implementation GUI Test cases A graphical user interface will be implemented, allowing the user to add contracts to an arbitrary.net assembly, providing help where necessary. The GUI will be built with the EiffelVision2 library provided by ISE Eiffel. The functionality of the GUI and the Contract Wizard II in general will be shown with the bank account application, included in [4]. Furthermore the Contract Wizard II will be tested on the.net library 'mscorlib.dll' and if possible on other.net libraries. Documentation Developer manual User manual Thesis report The developer manual documents the software architecture, main classes and limitations of the tool. It describes the difficulties encountered during the implementation and explains how to extend the current version. The user manual describes how to use the Contract Wizard. The thesis report consists of the final developer manual, the final user manual and a theoretical part about adding Design by Contract support into the CLI. 2. BACKGROUND MATERIAL Reading list Chapters in OOSC2 [2] in particular: o Chapter 1: Software quality o Chapter 11: Design by Contract: building reliable software o Chapter 23: Principles of class design o Chapter 26: A sense of style o Chapter 28: The software construction process The.NET Contract Wizard [5] Software Source code of Contract Wizard II [4] 2

4 3. PROJECT MANAGEMENT Objectives and priorities Objective Priority* Software architecture 1 GUI 1 Test cases 2 Optimization 3 Developer manual 2 User manual 2 Thesis report 1 * 1 means highest priority, 3 means lowest priority Criteria for success The goal of the project is a usable GUI, the criteria for success is the quality of the software and the documentation. The result may be a partial implementation of the objectives without implying any penalty on the success of the project. Quality of software: Use of Design by Contract o Routine pre- and post conditions o Class invariants o Loop variants and invariants Careful design o Design patterns o Extendibility o Reusability o Careful abstraction Core principles of OOSC2 [2] o Command / query separation o Simple interfaces o Uniform access o Information hiding o etc. Style guidelines Correct and robust code Readability of source code Ease of use Quality of documentation: Completeness Understandable documentation Usefulness Structure 3

5 Method of work The technologies involved are: ISE EiffelBuild is used for a first construction of the GUI ISE EiffelStudio 5.4 is used for an accurate implementation Programming language: Eiffel [3] Quality management Quality will be ensured by: Weekly progress reports sent to the supervisor, if necessary a meeting with the supervisor will take place. Detailed progress report for each milestone Review of each milestone by the supervisor concluded by a meeting Validation of each milestone after review (see validation steps below) Testing of the software by application of different test cases Documentation (see documentation below) Documentation Progress reports o Short weekly progress reports consisting of the main task completed o Detailed reports for each milestone consisting of: The main tasks Eventual encountered difficulties Implementation, scope of the implementation Developer report: This manual documents the software architecture and its limitations, describes the difficulties encountered during the implementation, explains how the software could be extended and contains a section discussing the test cases. User manual: The user manual describes the usage of the tool Contract Wizard II Thesis report: The thesis report consists of the final developer manual, the final user manual and a theoretical part discussing adding Design by Contract support into the CLI Validation steps The validation of each milestone comprises: Report: Sending a detailed report and the relevant parts of the work to the supervisor for review Meeting: Organizing a meeting with the supervisor for presentation and discussion of the conducted work Revision: Revising parts or all of the work for this milestone, depending on the conclusion of the supervisor 4

6 4. PLAN WITH MILESTONES Project steps Milestone M1 M2 M3 M4 M5 M6 Objective Basic design of the software architecture. Further design will be done incrementally. Implementation of the GUI Test cases on.net assemblies Developer manual User manual Thesis report Deadline Milestone Deadline M1 07-May-2004 M2 09-Jul-2004 M3: 23-Jul-2004 M4 13-Aug-2004 M5 20-Aug-2004 M6 20-Aug

7 Tentative schedule Start End 26-Apr May May May May May Jun Jun Jun Jun Jul Jul Jul Jul Aug Aug Aug Aug Aug Sep-2004 Task Diploma Project Presentation P1: Intermediary presentation P1 P2: Final presentation P2 Design M1: Software architecture M1 Implementation M2: GUI M2 Testing M3: Testing on.net assemblies M3 Optimizations Documentation M4: Developer manual M4 M5: User manual M5 M6: Thesis report M6 After having designed the basic software architecture, it may be possible that the GUI implementation will be divided into sub-milestones. 6

8 REFERENCES [1] Chair of Software Engineering: Semester-/Diplomarbeiten; Online at: consulted in April [2] Bertrand Meyer: Object-Oriented Software Construction, 2nd edition, Prentice Hall, [3] Eiffel Software, consulted in April [4] Dominik Wotruba, Contract Wizard II, consulted in April 2004 [5] Karine Arnout and Raphaël Simon: The.NET Contract Wizard: Adding Design by Contract to languages other than Eiffel, IEEE Computer Society, TOOLS 39, Santa Barbara, USA, July 2001, p [6] N. Tran, C. Mingins and D. Abramson: Design and implementation of assertions for the common language infrastructure, IEE Proc.-Softw.,Vol.150, No.5, October 2003, p

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 15 October 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 1: Issues of software quality Agenda for today 3 Introduction Some statistics

More information

EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan

EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan EIFFEL TEST STUDIO Locating faults in external code Master Thesis Project Plan Reto Ghioldi Department of Computer Science ETH Zürich September 6, 2005 Project period 8.September 2005-9.March 2006 Student

More information

Reflection Library for Eiffel PROJECT PLAN

Reflection Library for Eiffel PROJECT PLAN Reflection Library for Eiffel PROJECT PLAN Master thesis Project period: Monday, 2004-03-15 Wednesday, 2004-09-15 Student: Beat Fluri (fluribe@student.ethz.ch) Status: 9th semester Supervising Assistant:

More information

Adding Contracts to C#

Adding Contracts to C# Adding Contracts to C# Peter Lagace ABSTRACT Design by contract is a software engineering technique used to promote software reliability. In order to use design by contract the selected programming language

More information

Advanced Topics in Object Technology

Advanced Topics in Object Technology 1 Advanced Topics in Object Technology Bertrand Meyer Contact 2 : http://se.inf.ethz.ch Course assistant: Karine Arnout http://se.inf.ethz.ch/people/arnout 3 Lecture 1: Introduction, Quality issues, Lifecycle

More information

Master Thesis Project Plan. Reusable Mathematical Models

Master Thesis Project Plan. Reusable Mathematical Models Master Thesis Project Plan Reusable Mathematical Models Tobias K. Widmer widmer@id.ethz.ch Supervisors: Prof. Dr. B. Meyer B. Schoeller Chair of Software Engineering Department of Computer Science, ETH

More information

Concurrency Patterns in SCOOP

Concurrency Patterns in SCOOP Concurrency Patterns in SCOOP Master Thesis Project Plan Project period: 10. March to 8. September 2014 Student name: Roman Schmocker, 09-911-215 Status: 4. semester, Msc in Computer Science Email address:

More information

Object Oriented Program Correctness with OOSimL

Object Oriented Program Correctness with OOSimL Kennesaw State University DigitalCommons@Kennesaw State University Faculty Publications 12-2009 Object Oriented Program Correctness with OOSimL José M. Garrido Kennesaw State University, jgarrido@kennesaw.edu

More information

Spell Checker for EiffelStudio

Spell Checker for EiffelStudio Spell Checker for EiffelStudio Software Engineering Laboratory: Open-Source EiffelStudio Semester project by Benjamin Fischer Student number: 10-916-971 Supervised by Julian Tschannen ETH Computer Science

More information

Building Trust in Third-party Components using Component Wrappers in the.net Frameworks

Building Trust in Third-party Components using Component Wrappers in the.net Frameworks Building Trust in Third-party Components using Component Wrappers in the.net Frameworks Christine A. Mingins, Chee Y. Chan School of Computer Science and Software Engineering Monash University PO Box 197,

More information

Lecture 9 / Tutorial 8 Software Contracts

Lecture 9 / Tutorial 8 Software Contracts Lecture 9 / Tutorial 8 Software Contracts Design by contracts Programming by contracts Today 1. Sign a contract 2. Design by contract 3. Programming by contract 4. Summary 5. Questions and Answers Having

More information

Design by Contract in Eiffel

Design by Contract in Eiffel Design by Contract in Eiffel 2002/04/15 ctchen@canthink.com.com.tw.tw Reference & Resource Bertrand Meyer, Object-Oriented Oriented Software Construction 2nd,, 1997, PH. Bertrand Meyer, Eiffel: The Language,,

More information

Full Eiffel on.net. *ETH (Swiss Federal Institute of Technology), Zürich, Switzerland

Full Eiffel on.net. *ETH (Swiss Federal Institute of Technology), Zürich, Switzerland Full Eiffel on.net + Raphael Simon, + Emmanuel Stapf, + *Bertrand Meyer + Interactive Software Engineering, Santa Barbara, California *ETH (Swiss Federal Institute of Technology), Zürich, Switzerland http://www.eiffel.com/,

More information

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005 Wrapping a complex C++ library for Eiffel FINAL REPORT July 1 st, 2005 Semester project Student: Supervising Assistant: Supervising Professor: Simon Reinhard simonrei@student.ethz.ch Bernd Schoeller Bertrand

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns

More information

Object-Oriented Software Construction

Object-Oriented Software Construction 1 Object-Oriented Software Construction Bertrand Meyer Contact 2 Chair of Software Engineering: http://se.inf.ethz.ch Course assistant: Joseph N. Ruskiewicz http://se.inf.ethz.ch/people/ruskiewicz 3 Lecture

More information

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems 3 Draft 5.02.00-0, 15 August 2005 (Santa Barbara). Extracted from ongoing work on future third edition of Eiffel: The Language. Copyright Bertrand Meyer 1986-2005. Access restricted to purchasers of the

More information

Lecture Chapter 2 Software Development

Lecture Chapter 2 Software Development Lecture Chapter 2 Software Development Large Software Projects Software Design o Team of programmers o Cost effective development Organization Communication Problem Solving Analysis of the problem Multiple

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 7: Pattern Wizard, project presentation Agenda for today 3 Pattern Wizard

More information

Einführung in die Programmierung Introduction to Programming

Einführung in die Programmierung Introduction to Programming Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 4: The Interface of a Class Client, supplier Definitions A client of a software

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

Object-Oriented Software Construction

Object-Oriented Software Construction 1 Object-Oriented Software Construction Bertrand Meyer 2 Lecture 2: EiffelStudio and project presentation Agenda for today 3 EiffelStudio: The ISE Eiffel environment Project presentation Agenda for today

More information

Programming II. Modularity 2017/18

Programming II. Modularity 2017/18 Programming II Modularity 2017/18 Module? Lecture Outline Evolution and history of programming languages Modularity Example History of Programming Programming Paradigms How and why languages develop? How

More information

LIS 2680: Database Design and Applications

LIS 2680: Database Design and Applications School of Information Sciences - University of Pittsburgh LIS 2680: Database Design and Applications Summer 2012 Instructor: Zhen Yue School of Information Sciences, University of Pittsburgh E-mail: zhy18@pitt.edu

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR 603203 DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS QUESTION BANK (2017-2018) Course / Branch : M.Sc-CST Semester / Year : Even / II Subject Name

More information

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara CS189A - Capstone Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ Design by Contract Design by Contract and the language that implements the Design by Contract principles

More information

A comparative study of Programming by Contract and Programming with Exceptions

A comparative study of Programming by Contract and Programming with Exceptions Computer Science Jimmy Byström Leo Wentzel A comparative study of Programming by Contract and Programming with Exceptions Master s Thesis 2003:02 A comparative study of Programming by Contract and Programming

More information

Learning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli

Learning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli Identify and overcome the difficulties encountered by students when learning how to program List and explain the software development roles played by students List and explain the phases of the tight spiral

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 26: Component model: The.NET example Agenda for today 3 What is.net?

More information

2559 : Introduction to Visual Basic.NET Programming with Microsoft.NET

2559 : Introduction to Visual Basic.NET Programming with Microsoft.NET 2559 : Introduction to Visual Basic.NET Programming with Microsoft.NET Introduction Elements of this syllabus are subject to change. This five-day instructor-led course provides students with the knowledge

More information

Ensuring a Rigorous Curriculum: Practices and Goals

Ensuring a Rigorous Curriculum: Practices and Goals Ensuring a Rigorous Curriculum: Practices and Goals Allen B. Tucker Bowdoin College www.bowdoin.edu/~allen April 12, 2002 1 of 30 Goals of an Undergraduate Program To prepare graduates for the computing

More information

Defense Technical Information Center Compilation Part Notice

Defense Technical Information Center Compilation Part Notice UNCLASSIFIED Defense Technical Information Center Compilation Part Notice ADP023865 TITLE: Design by Contract: A Simple Technique for Improving the Quality f Software DISTRIBUTION: Approved for public

More information

Software Architecture 4. July 2005

Software Architecture 4. July 2005 Chair of Software Engineering Bertrand Meyer Software Architecture 4. July 2005 Name, First name:... I confirm with my signature, that I was able to take this exam under regular conditions and that I have

More information

Assertions. Assertions - Example

Assertions. Assertions - Example References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 11/13/2003 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,

More information

BANGLADESH UNIVERSITY OF PROFESSIONALS ACADEMIC CALENDAR FOR MPhil AND PHD PROGRAM 2014 (4 TH BATCH) PART I (COURSE WORK)

BANGLADESH UNIVERSITY OF PROFESSIONALS ACADEMIC CALENDAR FOR MPhil AND PHD PROGRAM 2014 (4 TH BATCH) PART I (COURSE WORK) BANGLADESH UNIVERSITY OF PROFESSIONALS ACADEMIC CALENDAR FOR MPhil AND PHD PROGRAM 2014 (4 TH BATCH) DAY Soci-Economic and Political History of Bangladesh PART I (COURSE WORK) 1 ST SEMESTER 2 ND SEMESTER

More information

CPSC 444 Project Milestone III: Prototyping & Experiment Design Feb 6, 2018

CPSC 444 Project Milestone III: Prototyping & Experiment Design Feb 6, 2018 CPSC 444 Project Milestone III: Prototyping & Experiment Design Feb 6, 2018 OVERVIEW... 2 SUMMARY OF MILESTONE III DELIVERABLES... 2 1. Blog Update #3 - Low-fidelity Prototyping & Cognitive Walkthrough,

More information

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an

More information

Saving Potential in Technical Documentation

Saving Potential in Technical Documentation Saving Potential in Technical Documentation Shorter time to market, increasingly complex products, and a growing variety of languages are challenges that enterprises which operate on an international scale

More information

PowerShell 10961: Automating Administration with Windows PowerShell. Upcoming Dates. Course Description. Course Outline

PowerShell 10961: Automating Administration with Windows PowerShell. Upcoming Dates. Course Description. Course Outline PowerShell 10961: Automating Administration with Windows PowerShell Learn how with Windows PowerShell you can remotely manage single or multiple Windows-based servers and automate day-to-day management

More information

Business Requirements Specification for the. Nomination and Matching Procedures. In Gas Transmission Systems (NOM BRS)

Business Requirements Specification for the. Nomination and Matching Procedures. In Gas Transmission Systems (NOM BRS) 27 May 2015 Rev14 1 2 3 4 for the In Gas Transmission Systems (NOM BRS) 5 6 Version 0 Revision 14 2015-05-27 7 8 ENTSOG AISBL; Av. de Cortenbergh 100, 1000-Brussels; Tel: +32 2 894 5100; Fax: +32 2 894

More information

AC System Monitoring Device

AC System Monitoring Device AC System Monitoring Device Andrew Jarrett Project Adviser: Professor Gutschlag Department of Electrical and Computer Engineering October 28, 2015 Executive Summary The alternating current (AC) system

More information

Object-Oriented Software Construction (Prentice-Hall International Series In Computer Science) By Bertrand Meyer

Object-Oriented Software Construction (Prentice-Hall International Series In Computer Science) By Bertrand Meyer Object-Oriented Software Construction (Prentice-Hall International Series In Computer Science) By Bertrand Meyer oriented Software Construction (Prentice Hall International Series In Computing Science)

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

The Eiffel language. Slides partly based on :

The Eiffel language. Slides partly based on : The Eiffel language Slides partly based on : http://se.inf.ethz.ch/courses/2015b_fall/eprog/english_index.html Eiffel, in brief Procedural, object-oriented programming language created by Bertrand Meyer

More information

Masters in Software Engineering

Masters in Software Engineering Masters in Software Engineering Programme Requirements Taught Element, and PG Diploma in Software Engineering: 120 credits: IS5101 CS5001 CS5030 CS5031 CS5032 or CS5033 up to 30 credits from CS4100 - CS4450,

More information

Java-MOP: A Monitoring Oriented Programming Environment for Java

Java-MOP: A Monitoring Oriented Programming Environment for Java Java-MOP: A Monitoring Oriented Programming Environment for Java Feng Chen and Grigore Roşu Department of Computer Science, University of Illinois at Urbana - Champaign, USA {fengchen, grosu}@uiuc.edu

More information

Article. FDT now talks.net. FDT Version 2.0 is on its way

Article. FDT now talks.net. FDT Version 2.0 is on its way Manufacturers and end-users alike can now benefit from the latest software trends with FDT 2.0 and they can, at the same time, rely on the backward compatibility to the predecessor version. The official

More information

Data Structures and Algorithms for Engineers

Data Structures and Algorithms for Engineers 04-630 Data Structures and Algorithms for Engineers David Vernon Carnegie Mellon University Africa vernon@cmu.edu www.vernon.eu Data Structures and Algorithms for Engineers 1 Carnegie Mellon University

More information

e-sens Nordic & Baltic Area Meeting Stockholm April 23rd 2013

e-sens Nordic & Baltic Area Meeting Stockholm April 23rd 2013 e-sens Nordic & Baltic Area Meeting Stockholm April 23rd 2013 Objectives of the afternoon parallel tracks sessions 2 Meeting objectives High level: Identification of shared interests with emphasis on those

More information

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 307: Software Engineering. Lecture 10: Software Design and Architecture CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office

More information

Software Architecture

Software Architecture Chair of Software Engineering Software Architecture Prof. Dr. Bertrand Meyer Lecture 7: Patterns, Observer, MVC Patterns in software development Design pattern: A document that describes a general solution

More information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout 1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 12: Componentization Agenda for today 3 Componentization Componentizability

More information

Object-Oriented Software Construction

Object-Oriented Software Construction 1 Object-Oriented Software Construction Bertrand Meyer Reading assignment 2 OOSC2 Chapter 10: Genericity 3 Lecture 4: Abstract Data Types Abstract Data Types (ADT 4 Why use the objects? The need for data

More information

Contract Prover Semester Thesis

Contract Prover Semester Thesis Semester Thesis 11th Februar 2005 Student: (kistlerd@student.ethz.ch) Student - No.: 01-917-244 Supervising Assistant: Bernd Schoeller Supervising Professor: Bertrand Meyer Contents 1 Introduction 3 2

More information

1. Quality issues (5 points)

1. Quality issues (5 points) ETH Zurich Computer Science Course: Advanced Topics in Object Technology, by Bertrand Meyer Summer semester 2003 Exam (prepared by Karine Arnout) 2 July 2003 10:00 to 12:00 Name:.. Id-Nr:.. No notes, computers,

More information

Grading: Test 1 25% ---- Test 2 25% ---- Best 2 Final Exam 25% ---- Project 25% Assignments/labs 25%

Grading: Test 1 25% ---- Test 2 25% ---- Best 2 Final Exam 25% ---- Project 25% Assignments/labs 25% 1 MIS 139: E-Business Project Fall 2014 Phone: 946-2627 Office Hours: MWF 11-1, Th 9-10 Jerry Post E-mail: Jerry@JerryPost.com 204B Weber Web: http://jerrypost.com class: MWF 2:00-3:15 Textbook: Web readings

More information

Runtime Checking and Test Case Generation for Python

Runtime Checking and Test Case Generation for Python Runtime Checking and Test Case Generation for Python Anna Durrer Master Thesis Chair of Programming Methodology D-INFK ETH Supervisor: Marco Eilers, Prof. Peter Müller 24. Mai 2017 1 Introduction This

More information

Readability [Skrien 4.0] Programs must be written for people to read, and only incidentally for machines to execute.

Readability [Skrien 4.0] Programs must be written for people to read, and only incidentally for machines to execute. Readability [Skrien 4.0] Programs must be written for people to read, and only incidentally for machines to execute. Abelson & Sussman Use a good set of coding conventions, such as the ones given in the

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, no. 4, September-October 2002 Eiffel Assertions and the External Structure of

More information

Software Architecture Bertrand Meyer. Lecture 3: Language constructs for modularity and information hiding

Software Architecture Bertrand Meyer. Lecture 3: Language constructs for modularity and information hiding Software Architecture Bertrand Meyer Last update: 3 April 2007 ETH Zurich, March-July 2007 Lecture 3: Language constructs for modularity and information hiding Ilinca Ciupa Overview Review of modularity

More information

Induction Guide for Casual Employees. Creating a University of Melbourne Account & Themis Account

Induction Guide for Casual Employees. Creating a University of Melbourne  Account & Themis Account The following user guide will assist all casual staff in setting up their University email address, the University preferred method of communication and their Themis Financials account to enable casual

More information

Platform-Independent UI Models: Extraction from UI Prototypes and rendering as W3C Web Components

Platform-Independent UI Models: Extraction from UI Prototypes and rendering as W3C Web Components Platform-Independent UI Models: Extraction from UI Prototypes and rendering as W3C Web Components Marvin Aulenbacher, 19.06.2017, Munich Chair of Software Engineering for Business Information Systems (sebis)

More information

ECSE 321 Assignment 2

ECSE 321 Assignment 2 ECSE 321 Assignment 2 Instructions: This assignment is worth a total of 40 marks. The assignment is due by noon (12pm) on Friday, April 5th 2013. The preferred method of submission is to submit a written

More information

Markets Gateway Roadmap

Markets Gateway Roadmap Markets Gateway Roadmap As of April 17, 2018 www.pjm.com Background Markets Gateway allows users to submit information and obtain data needed to conduct business in the Day-Ahead, Regulation and Synchronized

More information

QUESTIONS AND CONTACTS

QUESTIONS AND CONTACTS Contact: Jake Losinski, Management Analyst P.O. Box 2315 480 East Avenue North Ketchum, ID 83340 July 27, 2018 Telephone: (208) 727-5081 jlosinski@ketchumidaho.org SUBMITTAL DEADLINE The City of Ketchum,

More information

Contract-based Programming in Ada 2012 A Tutorial

Contract-based Programming in Ada 2012 A Tutorial Contract-based Programming in Ada 2012 A tutorial on how to use the Ada 2012 features for specifying detailed, checked contracts for types and subprograms 1. Contracts document constraints on how types

More information

The Contract Pattern. Design by contract

The Contract Pattern. Design by contract The Contract Pattern Copyright 1997, Michel de Champlain Permission granted to copy for PLoP 97 Conference. All other rights reserved. Michel de Champlain Department of Computer Science University of Canterbury,

More information

Assertions, pre/postconditions

Assertions, pre/postconditions Programming as a contract Assertions, pre/postconditions Assertions: Section 4.2 in Savitch (p. 239) Specifying what each method does q Specify it in a comment before method's header Precondition q What

More information

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms Standard Glossary of Terms used in Software Testing Version 3.2 Foundation Extension - Usability Terms International Software Testing Qualifications Board Copyright Notice This document may be copied in

More information

B.C.A (5 th Semester) Assessment Policy

B.C.A (5 th Semester) Assessment Policy Theory Parameters B.C.A (5 th Semester) 030010514: DSE6 Fundamentals of Web Application Development Policy Assessm ent Code Type Duration Number of questions Marks of each Weightage in CIE of 40 marks

More information

European Developments

European Developments European Developments Place your chosen image here. The four corners must just cover the arrow tips. For covers, the three pictures should be the same size and in a straight line. Transmission Workgroup

More information

ECE573 Introduction to Compilers & Translators

ECE573 Introduction to Compilers & Translators ECE573 Introduction to Compilers & Translators Tentative Syllabus Fall 2005 Tu/Th 9:00-10:15 AM, EE 115 Instructor Prof. R. Eigenmann Tel 49-41741 Email eigenman@ecn Office EE334C Office Hours Tu 10:15-11:30

More information

EUROPASS DIPLOMA SUPPLEMENT TO HIGHER TECHNICAL VOCATIONAL TRAINING

EUROPASS DIPLOMA SUPPLEMENT TO HIGHER TECHNICAL VOCATIONAL TRAINING EUROPASS DIPLOMA SUPPLEMENT TO HIGHER TECHNICAL VOCATIONAL TRAINING TITLE OF THE DIPLOMA (ES) Técnico Superior en Desarrollo de Aplicaciones Web TRANSLATED TITLE OF THE DIPLOMA (EN) (1) Higher Technician

More information

Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming

Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming i-tin Hu and ai-wei Lin Department of Computer Science and Information Engineering ational Chung Cheng University

More information

Course Administration

Course Administration CS 246: Software Abstraction and Specification (Software Engineering Section) Lecture 1 Course Administration http://www.student.cs.uwaterloo.ca/~cs247 Calendar Description CS 247 Software Engineering

More information

Design. Introduction

Design. Introduction Design Introduction a meaningful engineering representation of some software product that is to be built. can be traced to the customer's requirements. can be assessed for quality against predefined criteria.

More information

Stakeholder consultation process and online consultation platform

Stakeholder consultation process and online consultation platform Stakeholder consultation process and online consultation platform Grant agreement no.: 633107 Deliverable No. D6.2 Stakeholder consultation process and online consultation platform Status: Final Dissemination

More information

Self-checking software insert specifications about the intent of a system

Self-checking software insert specifications about the intent of a system Assertions Reading assignment A. J. Offutt, A Practical System for Mutation Testing: Help for the Common Programmer, Proceedings of the 12th International Conference on Testing Computer Software, Washington,

More information

M Introduction to Visual Basic.NET Programming with Microsoft.NET 5 Day Course

M Introduction to Visual Basic.NET Programming with Microsoft.NET 5 Day Course Module 1: Getting Started This module introduces Visual Basic.NET and explains how it fits into the.net platform. It explains how to use the programming tools in Microsoft Visual Studio.NET and provides

More information

Design by Contract: An Overview

Design by Contract: An Overview : An Overview CSCI 5828 Michael M. Vitousek University of Colorado at Boulder michael.vitousek@colorado.edu March 21, 2012 1 / 35 Outline 1 Introduction Motivation and Introduction Simple Example Contract

More information

375 SMITH STREET 384 SMITH STREET. TEL: 0860 CALL DCC ( ) FAX: (031) AGREEMENT BETWEEN

375 SMITH STREET 384 SMITH STREET. TEL: 0860 CALL DCC ( ) FAX: (031) AGREEMENT BETWEEN Durban Computer College (Pty) Ltd trading as DCC CAMPUS DCC FET INSTITUTION DCC MATRIC SCHOOL Registered by the Department of Education for the Qualifications shown on certificate No: 00HC01 (REGISTRATION

More information

UK EPR GDA PROJECT. Name/Initials Date 30/06/2011 Name/Initials Date 30/06/2011. Resolution Plan Revision History

UK EPR GDA PROJECT. Name/Initials Date 30/06/2011 Name/Initials Date 30/06/2011. Resolution Plan Revision History RP unique number: Page GI-UKEPR-RP-01-RP 0 30/06/2011 1 of 5 Approved for EDF by: A. PETIT Approved for AREVA by: C. WOOLDRIDGE Name/Initials Date 30/06/2011 Name/Initials Date 30/06/2011 Resolution Plan

More information

Informatics Spring Semester

Informatics Spring Semester Polytechnic Institute of Viseu Higher School of Technology and Management of Viseu International Semesters for Students Informatics Spring Semester Semester title Informatics Semesters Spring Person responsible

More information

DATE OF BIRTH SORTING (DBSORT)

DATE OF BIRTH SORTING (DBSORT) DATE OF BIRTH SORTING (DBSORT) Release 3.1 December 1997 - ii - DBSORT Table of Contents 1 Changes Since Last Release... 1 2 Purpose... 3 3 Limitations... 5 3.1 Command Line Parameters... 5 4 Input...

More information

Compilers for Modern Architectures Course Syllabus, Spring 2015

Compilers for Modern Architectures Course Syllabus, Spring 2015 Compilers for Modern Architectures Course Syllabus, Spring 2015 Instructor: Dr. Rafael Ubal Email: ubal@ece.neu.edu Office: 140 The Fenway, 3rd floor (see detailed directions below) Phone: 617-373-3895

More information

APNIC Status Report. ARIN VI Public Policy Meeting 2-44 October 2000

APNIC Status Report. ARIN VI Public Policy Meeting 2-44 October 2000 APNIC Status Report ARIN VI Public Policy Meeting 2-44 October 2000 Overview News Membership Growth Statistics Activities Priorities Total number of medals won - top 5 USA 97 RUSSIA 88 CHINA 59 AUSTRALIA

More information

Banner 9 Overview and Transition timeline August Edgar Coronel Paddy Wong

Banner 9 Overview and Transition timeline August Edgar Coronel Paddy Wong Banner 9 Overview and Transition timeline August 2018 Edgar Coronel Paddy Wong v1 Banner Basics Banner 9 Overview Single Sign On Begin Transition! Using Banner 9 Demo Agenda Banner Basics Banner Forms

More information

OCM ACADEMIC SERVICES PROJECT INITIATION DOCUMENT. Project Title: Online Coursework Management

OCM ACADEMIC SERVICES PROJECT INITIATION DOCUMENT. Project Title: Online Coursework Management OCM-12-025 ACADEMIC SERVICES PROJECT INITIATION DOCUMENT Project Title: Online Coursework Management Change Record Date Author Version Change Reference March 2012 Sue Milward v1 Initial draft April 2012

More information

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6 Trying to deal with something big all at once is normally much harder than dealing with a series of smaller things Separate people can work on each part. An individual software engineer can specialize.

More information

Mobile-Friendly Web Browsing. Dr. Jun Kong Department of Computer Science North Dakota State University

Mobile-Friendly Web Browsing. Dr. Jun Kong Department of Computer Science North Dakota State University Mobile-Friendly Web Browsing Dr. Jun Kong Department of Computer Science North Dakota State University 1 Motivation Not user friendly to browse regular Web pages on mobile devices Keeping two versions

More information

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. OBM 7 -draft 09/02/00 1 Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. Martin L. Griss, Laboratory Scientist, Hewlett-Packard Laboratories, Palo Alto, CA. Effective

More information

Automatic Verification of Computer Programs

Automatic Verification of Computer Programs Chair of Software Engineering Automatic Verification of Computer Programs these slides contain advanced material and are optional What is verification Check correctness of the implementation given the

More information

Eiffel: Analysis, Design and Programming. ETH Zurich, September-December Exception handling

Eiffel: Analysis, Design and Programming. ETH Zurich, September-December Exception handling Eiffel: Analysis, Design and Programming ETH Zurich, September-December 2008-6- Exception handling What is an exception? An abnormal event Not a very precise definition Informally: something that you don

More information

Graduate School of Library and Information Science Spring Document Processing (LIS 450 )

Graduate School of Library and Information Science Spring Document Processing (LIS 450 ) Graduate School of Library and Information Science Spring 2000 Document Processing (LIS 450 ) Section DP Wednesday, 8 10:50 AM Room 143, Henry Building David Dubin Office: LIS 222 Office hours: Tuesdays,

More information

Excel Functions & Tables

Excel Functions & Tables Excel Functions & Tables SPRING 2016 Spring 2016 CS130 - EXCEL FUNCTIONS & TABLES 1 Review of Functions Quick Mathematics Review As it turns out, some of the most important mathematics for this course

More information

A CLR Back-end for a FLOSS Eiffel

A CLR Back-end for a FLOSS Eiffel Final Year Project Final Report A thesis submitted in part fulfilment of the degree of BSc. (Hons.) in Computer Science with the supervision of Dr. Joseph Kiniry and moderated by Dr. Michael Walsh. School

More information

WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL

WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL Richard Wilson 1 & Daniel Lowes 2 1 Dept. of Computer Science and Software Engineering, University of Melbourne (Australia) 2 Dept.

More information

Motivation. ! Stop reinventing the wheel, try to reuse code! ! How do you organize code reuse? History: " Copy & Paste. " Collect useful files

Motivation. ! Stop reinventing the wheel, try to reuse code! ! How do you organize code reuse? History:  Copy & Paste.  Collect useful files Motivation 08 - Object-Oriented Libraries and Extensions! When you several systems, you notice that much of their code is similar.! Stop reinventing the wheel, try to reuse code!! How do you organize code

More information

From Eiffel and Design by Contract to Trusted Components

From Eiffel and Design by Contract to Trusted Components From Eiffel and Design by Contract to Trusted Components Bertrand Meyer ETH Zürich / Eiffel Software Budapest, December 2003 1 My background Since 1985: Founder (now Chief Architect) of Eiffel Software,

More information