Advanced Topics in Object Technology

Size: px
Start display at page:

Download "Advanced Topics in Object Technology"

Transcription

1 1 Advanced Topics in Object Technology Bertrand Meyer

2 Contact 2 : Course assistant: Karine Arnout

3 3 Lecture 1: Introduction, Quality issues, Lifecycle

4 Agenda for today 4 Introduction Quality issues Lifecycle

5 Agenda for today 5 Introduction Quality issues Lifecycle

6 Introduction 6 Course objectives Topics Technologies Guest lectures Textbook Grading Practical setup

7 Course objectives 7 Provide you with solid knowledge of: Object technology principles and methods The practice of object-oriented analysis, design and implementation Some open issues Some recent developments Two specific technologies

8 Topics 8 Quality issues Lifecycle Abstract Data Types Object model choices Inheritance techniques Design patterns Concurrent object-oriented computation Language mechanisms Persistence and O-O database Project management Genericity, typing issues, covariance

9 Technologies 9 Eiffel.NET

10 Guest lectures (tentative) 10 Philippe Lahire, University of Nice (France): Aspect-Oriented Programming (16 April 2003) ETH assistants Karine Arnout

11 Textbook 11 Bertrand Meyer: Object-Oriented Software Construction, 2 nd edition. Prentice Hall, Available from Ruth Bürkli, RZ-F8 Price: CHF Recommended: Erich Gamma et al.: Design Patterns. Addison- Wesley, 1995.

12 Grading 12 Exam (2h): 40% 2 July 2003 Project: 60% Development of a Pattern Wizard Deadline: 18 June 2003

13 Practical setup 13 Course page: Slides:

14 Practical setup (cont d) 14 Please send an To: Subject: ATOT course participant Content: Your name Preferred address Status Diplom student (semester), Ph.D. student, other. Taking the course for credit or not. Attach a picture (JPEG, GIF, PNG) if you wish

15 Practical setup (cont d) 15 If any questions / problems, contact: Karine Arnout Office: RZ-F7 Phone:

16 Before getting started 16 Please fill in the questionnaire: Anonymous! You have 10 minutes

17 Some words of warning 17 Steps in reacting to O-O (from the preface to Object-Oriented Software Construction): (1) It s trivial; (2) It s wrong; (3) That s how I did it all along anyway. Beware of the moozak phenomenon.

18 Some words of warning (cont d) 18 benefit_from_course is -- Make students succeed. require some_humility do all_exercises ensure OO_mastery_for_fun_and_profit end

19 Terminology 19 I will be strict about terminology: Endless confusions in the literature and in discussions. Basic concepts have precise definitions no justification whatsoever for such confusions. Object technology is (in part) about bringing rational, scientific principles to software. No excuse for sloppy terminology. Alternative conventions will be mentioned when necessary. CHF 5 fine for saying object when meaning class (after lecture 4)

20 Agenda for today 20 Introduction Quality issues Lifecycle

21 The goal: Software quality 21 REUSABILITY EXTENDIBILITY RELIABILITY (Correctness + Robustness) PORTABILITY EFFICIENCY INTEGRITY SPECIFICATION Correctness Robustness Correctness: The ability of a software system to perform according to specification, in cases defined by the specification. Robustness: The ability of a software system to react in a reasonable manner to cases not covered by the specification.

22 The challenge of software quality 22 Reliability [correctness + robustness]: It should be easier to build software that functions properly, and easier to guarantee what it does. Modularity [reusability + extendibility]: We should build less software! Software should be easier to modify.

23 Agenda for today 23 Introduction Quality issues Lifecycle

24 The waterfall model of the lifecycle 24 FEASIBILITY STUDY REQUIREMENTS ANALYSIS SPECIFICATION GLOBAL DESIGN DETAILED DESIGN IMPLEMENTATION VALIDATION & VERIFICATION PROJECT PROGRESS DISTRIBUTION

25 Arguments for the waterfall 25 (After B.W. Boehm: Software engineering economics) The activities are necessary. (But: merging of middle activities.) The order is the right one.

26 The waterfall model of the lifecycle 26 FEASIBILITY STUDY REQUIREMENTS ANALYSIS SPECIFICATION DESIGN AND IMPLEMENTATION GLOBAL DESIGN DETAILED DESIGN IMPLEMENTATION VALIDATION & VERIFICATION PROJECT TIME DISTRIBUTION

27 Problems with the waterfall 27 Late appearance of actual code. Lack of support for requirements change and more generally for extendibility and reusability. Lack of support for the maintenance activity (70% of software costs?). Division of labor hampering Total Quality Management. Impedance mismatches. Highly synchronous model.

28 Quality control? 28 Analysts Designers Implementers Testers Customers

29 Impedance mismatches 29 As Management requested it. As the Project Leader defined it. As Systems designed it. As Programming developed it. As Operations installed it. What the user wanted. (Pre-1970 cartoon; origin unknown)

30 The escherfall (Spiral) 30 M.C Escher: Waterval

31 Tasks 31 Analysts Designers Implementers Testers

32 Seamless development 32 Specification TRANSACTION, PLANE, CUSTOMER, Example classes

33 Seamless development 33 Specification Design TRANSACTION, PLANE, CUSTOMER, STATE, USER_COMMAND, Example classes

34 Seamless development 34 Specification Design Implementation TRANSACTION, PLANE, CUSTOMER, STATE, USER, HASH_TABLE, LINKED_LIST Example classes

35 Seamless development 35 Specification Design Implementation V & V TRANSACTION, PLANE, CUSTOMER, STATE, USER, HASH_TABLE, LINKED_LIST TEST_DRIVER, Example classes

36 Seamless development 36 Specification Design Implementation V & V TRANSACTION, PLANE, CUSTOMER, STATE, USER, HASH_TABLE, LINKED_LIST TEST_DRIVER, Generalization Example classes

37 Analysis classes 37 deferred class VAT inherit TANK feature in_valve, out_valve: VALVE fill is require deferred ensure end -- Fill the vat. in_valve.open out_valve.closed in_valve.closed out_valve.closed is_full Precondition -- i.e. specified only. -- not implemented. Postcondition empty, is_full, is_empty, gauge, maximum,... [Other features]... invariant is_full = (gauge >= 0.97 * maximum) and (gauge <= 1.03 * maximum) end Class invariant

38 Reversibility 38 Specification Design Implementation V & V Generalization

39 Seamless development 39 Use consistent notation from analysis to design, implementation and maintenance. Advantages: Smooth process. Avoids gaps (improves productivity, reliability). Direct mapping from problem to solution, i.e. from software system to external model. Better responsiveness to customer requests. Consistency, ease of communication. Better interaction between users, managers and developers.

40 Single model principle 40 Use a single base for everything: analysis, design, implementation, documentation... Use tools to extract the appropriate views.

41 The cluster model 41 Feasibility study Division into clusters Cluster 1 Specification Design Implementation Cluster 2 Specification V & V Generalization Design Implementation V & V Generalization Cluster n Specification Design Implementation V & V Generalization PROJECT TIME

42 The cluster model: extreme variants (1) 42 Feasibility study Division into clusters Cluster 1 Cluster 2 Cluster 3 Cluster 4 Cluster 5 Specification Specification Specification Specification Specification Design Design Design Design Design Implementation Implementation Implementation Implementation Implementation V & V V & V V & V V & V V & V Generalization Generalization Generalization Generalization Generalization Clusterfall

43 The cluster model: extreme variants (2) 43 Feasibility study Division into clusters Cluster 1 Cluster 2 Cluster n The Trickle model

44 Quality goals: the Osmond curves 44 Other qualities DESIRABLE Debugging COMMON Functionality Envisaged Early releases

45 Cluster development 45 Bottom-up development: from the most general clusters (providing utility functions) to the most application-specific ones. Flexible scheduling of clusters depending on resources, team experience, customer and management demands. Waterfall is one extreme; trickle is the other. Sub-lifecycle sequencing: specification, design and implementation, validation, generalization. Relations between clusters: each cluster may be a client of lower-level ones.

46 Reading assignment 46 For Monday 7 April 2003: OOSC2 chapters Chapter 1: Software quality Chapter 28: The software construction process

47 47 End of lecture 1

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

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

The software lifecycle and its documents

The software lifecycle and its documents The software lifecycle and its documents Supplementary material for Software Architecture course B. Meyer, May 2006 Lifecycle models Origin: Royce, 1970, Waterfall model Scope: describe the set of processes

More information

Software Architecture

Software Architecture Chair of Software Engineering Software rchitecture Bertrand Meyer, Carlo. Furia, Martin Nordio ETH Zurich, February-May 2011 Lecture 2: The software lifecycle Software lifecycle models escribe an overall

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

Contract Wizard II: Developing a GUI

Contract Wizard II: Developing a GUI Contract Wizard II: Developing a GUI PROJECT PLAN Diploma project Project period 2004-04-26 2004-08-25 Student name Petra Marty Status 9 th semester Email address martypet@student.ethz.ch Supervisor name

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

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

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

AE Computer Programming for Aerospace Engineers

AE Computer Programming for Aerospace Engineers AE 030 - Computer Programming for Aerospace Engineers Instructor Information: Credit: Professor Long Lu Long.Lu@sjsu.edu 2 units Class Times & Locations: Section 01 (Lecture): M 16:30-17:20 in CL 226 Section

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Primary object-oriented language concepts dynamic lookup encapsulation inheritance subtyping Program organization Organize concepts into objects and relationships between them

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

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

Software Requirements Engineering

Software Requirements Engineering Software Requirements Engineering Material for for Outsourced & Offshore Development Bertrand Meyer Bernd Schoeller Chair of, ETH Zurich Fall 2005 Statements about requirements: Brooks Source*: Brooks

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

Can you name one application that does not need any data? Can you name one application that does not need organized data?

Can you name one application that does not need any data? Can you name one application that does not need organized data? Introduction Why Databases? Can you name one application that does not need any data? No, a program itself is data Can you name one application that does not need organized data? No, programs = algorithms

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

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering

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 8: Design by Contract (1/2) Agenda for today 3 Design by Contract: definition

More information

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering

More information

v. T_visit (Current) t.accept (v) CLIENT t v The Visitor pattern

v. T_visit (Current) t.accept (v) CLIENT t v The Visitor pattern 608 INHERITANCE 16.14 The Visitor pattern The Visitor pattern is an architectural technique enabling you to define arbitrary facilities applicable to instances of existing classes. The idea is very simple:

More information

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics Zarqa University Faculty: Information Technology Department: Computer Science Course title: Programming LAB 1 (1501111) Instructor: Lecture s time: Semester: Office Hours: Course description: This introductory

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

Introduction to Programming System Design CSCI 455x (4 Units)

Introduction to Programming System Design CSCI 455x (4 Units) Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,

More information

EECE.2160: ECE Application Programming Spring 2019

EECE.2160: ECE Application Programming Spring 2019 Course Meetings Section 201: MWF 8-8:50, Kitson 305 Section 202: MWF 12-12:50, Kitson 305 Course Website Main page: http://mjgeiger.github.io/eece2160/sp19/ Schedule: http://mjgeiger.github.io/eece2160/sp19/schedule.htm

More information

CSCI 201L Syllabus Principles of Software Development Spring 2018

CSCI 201L Syllabus Principles of Software Development Spring 2018 L Syllabus Principles of Software Development Spring 2018 Instructor: Jeffrey Miller, Ph.D. Email: jeffrey.miller@usc.edu Web Page: http://www-scf.usc.edu/~csci201 Office: SAL 342 Phone: 213-740-7129 Lectures:

More information

San Jose State University - Department of Computer Science

San Jose State University - Department of Computer Science San Jose State University - Department of Computer Science CS 151, Section 4 - Object-Oriented Design Instructor:Cay S. Horstmann Email: cay.horstmann@sjsu.edu Telephone: +1-408-924-5060 Office Hours:

More information

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS: College of San Mateo Official Course Outline 1. COURSE ID: CIS 278 TITLE: (CS1) Programming Methods: C++ C-ID: COMP 122 Units: 4.0 units Hours/Semester: 48.0-54.0 Lecture hours; 48.0-54.0 Lab hours; and

More information

Lecture 2: Software Engineering (a review)

Lecture 2: Software Engineering (a review) Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is

More information

INFSCI 1017 Implementation of Information Systems Spring 2017

INFSCI 1017 Implementation of Information Systems Spring 2017 INFSCI 1017 Implementation of Information Systems Spring 2017 Time: Thursdays 6:00 8:30 Location: Information Science Building, Room 406 Instructor: Alexander Nolte Office Hours: Monday, 1-2PM Thursdays,

More information

COS 333: Advanced Programming Techniques. Robert M. Dondero, Ph.D. Princeton University

COS 333: Advanced Programming Techniques. Robert M. Dondero, Ph.D. Princeton University COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions General Information Topics Assignments Project (briefly) Schedule Policies The Programming

More information

EECE.2160: ECE Application Programming Spring 2017

EECE.2160: ECE Application Programming Spring 2017 Course Meetings Section 201: MWF 8-8:50, Ball 314 Section 202: MWF 12-12:50, Kitson 305 Course Website Main page: http://mjgeiger.github.io/eece2160/sp17/ Schedule: http://mjgeiger.github.io/eece2160/sp17/schedule.htm

More information

CSC 1052 Algorithms & Data Structures II: Introduction

CSC 1052 Algorithms & Data Structures II: Introduction CSC 1052 Algorithms & Data Structures II: Introduction Professor Henry Carter Spring 2018 Programming This course... We will investigate a series of data structures and algorithms designed to solve common

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

Principles of Software Construction: Objects, Design and Concurrency. Introduction to Design. toad

Principles of Software Construction: Objects, Design and Concurrency. Introduction to Design. toad Principles of Software Construction: Objects, Design and Concurrency Introduction to Design 15-214 toad Christian Kästner Charlie Garrod School of Computer Science 2012-14 C Kästner, C Garrod, J Aldrich,

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

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST) Programming Concepts & Algorithms Course Syllabus Course Title Course Code Computer Department Pre-requisites Course Code Course Instructor Programming Concepts & Algorithms + lab CPE 405C Computer Department

More information

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics  csci2600/ Outline Principles of Software (CSCI 600) Spring 018 http://www.cs.rpi.edu/academics/courses/spring18/csci600/ Konstantin Kuzmin, kuzmik@cs.rpi.edu Office hours: Monday and Thursday 4:00 pm - 5:30 pm Mailing

More information

Data Communications & Computer Networks

Data Communications & Computer Networks Data Communications & Computer Networks ACOE312 Course Overview Fall 2008 1 Agenda Instructor & class details General comments Course objectives Students assessment Course outline Textbook(s) 1 Instructor

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

COLLEGE OF THE DESERT

COLLEGE OF THE DESERT COLLEGE OF THE DESERT Course Code CS-009 Course Outline of Record 1. Course Code: CS-009 2. a. Long Course Title: Data Structures and Algorithms b. Short Course Title: DATA STRUCTURES 3. a. Catalog Course

More information

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject Cat-nbr Class Term Mode Units Campus CSC 2402 30366 1, 2004 ONC 1.00 TWMBA Academic group:

More information

w3.ualg.pt/~jvo/poo

w3.ualg.pt/~jvo/poo POO - Programação Orientada por Objetos OOP - Object-oriented programming 2015/2016 José Valente de Oliveira jvo@ualg.pt 1 www.ualg.pt w3.ualg.pt/~jvo/poo 1 http://www.fct.ualg.pt/gcal?curso=lei What is

More information

Distributed Operating Systems Spring Prashant Shenoy UMass Computer Science.

Distributed Operating Systems Spring Prashant Shenoy UMass Computer Science. Distributed Operating Systems Spring 2008 Prashant Shenoy UMass Computer Science http://lass.cs.umass.edu/~shenoy/courses/677 Lecture 1, page 1 Course Syllabus CMPSCI 677: Distributed Operating Systems

More information

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus Course Personnel: Instructor Name: Jovan Ilić Office: TBD Phone: TBD e-mail: TBD Teaching Assistants Name: TBD Office: TBD

More information

Model 4.2 Faculty member + student Course syllabus for Advanced programming language - CS313D

Model 4.2 Faculty member + student Course syllabus for Advanced programming language - CS313D Model 4.2 Faculty member + student Course syllabus for Advanced programming language - CS1D 1. Faculty member information: Name of faculty member responsible for the course Dr. Myriam Hadjouni Office Hours

More information

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968) San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968) Course and Contact Information Instructor: Office Location: Vidya Rangasayee MH229

More information

Object-Oriented Software Construction

Object-Oriented Software Construction 1 Object-Oriented Software Construction Bertrand Meyer 2 Lecture 21: Typing issues, covariance The America Conjecture 3 (Pierre America at TOOLS Europe 1990) One can have at most two of the three properties

More information

Software Construction

Software Construction Software Construction Bertrand Meyer University of Zurich September-December 2017 Lecture 5: Requirements analysis Statements about requirements: Brooks Source*: Brooks 87 The hardest single part of building

More information

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017 San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017 Course and Contact Information Instructor: Dr. Kim Office Location:

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

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject CSC Cat-nbr 2402 Class 40341 Term 1, 2005 Mode ONC Units 1.00 Campus Toowoomba Academic

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

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

Course specification

Course specification The University of Southern Queensland Course specification Description: Object-Oriented Programming in C++ Subject CSC Cat-nbr 2402 Class 35101 Term 2, 2004 Mode ONC Units 1.00 Campus WIBAY Academic group:

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

Distributed Systems Intro and Course Overview

Distributed Systems Intro and Course Overview Distributed Systems Intro and Course Overview COS 418: Distributed Systems Lecture 1 Wyatt Lloyd Distributed Systems, What? 1) Multiple computers 2) Connected by a network 3) Doing something together Distributed

More information

Software Engineering for Outsourcing and Offshoring

Software Engineering for Outsourcing and Offshoring Software Engineering for Outsourcing and Offshoring Bertrand Meyer Peter Kolb ETH course, Winter 2006-2007 Part 2: Requirements engineering Requirements engineering topics 1: Overview 2: Standards & methods

More information

Eiffel: Analysis, Design and Programming

Eiffel: Analysis, Design and Programming Eiffel: Analysis, Design and Programming Bertrand Meyer (Nadia Polikarpova) Chair of Software Engineering - 8 - Inheritance 2 Overview Basics Redefinition Polymorphism and dynamic binding Inheritance and

More information

MSO Lecture 1. Wouter Swierstra (adapted by HP) September 11, 2017

MSO Lecture 1. Wouter Swierstra (adapted by HP) September 11, 2017 1 MSO Lecture 1 Wouter Swierstra (adapted by HP) September 11, 2017 So you think you can program... 2 From nrc.nl 3 Question: why do ICT-projects fail so often? 4 5 Question: why do ICT-projects fail so

More information

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015 Course and Contact Information San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015 Instructor: Aikaterini Potika Office Location: MacQuarrie Hall 215

More information

SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University SWE3004: Operating Systems Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Introduction Schedule 16:30 17:45 (Monday), 13:30 14:45 (Wednesday) Lecture

More information

PC Applications IT102 estart Fall 2014

PC Applications IT102 estart Fall 2014 PC Applications IT102 estart Fall 2014 3 credits No prerequisites Instructor Information Debbi Remillard, IT Department NHTI full time faculty member for 16 years as PC Applications Coordinator Email address:

More information

Object-Oriented Programming for Managers

Object-Oriented Programming for Managers 95-807 Object-Oriented Programming for Managers 12 units Prerequisites: 95-815 Programming Basics is required for students with little or no prior programming coursework or experience. (http://www.andrew.cmu.edu/course/95-815/)

More information

HCI-4/631 Software Architectures for User Interfaces, Fall 2006

HCI-4/631 Software Architectures for User Interfaces, Fall 2006 HCI-4/6 Software Architectures for User Interfaces, Fall 2006 Place and Time: XXXXXX, Monday and Wednesday 9:00-10:30 Instructor: Vassilis Kostakos (vassilis@cmu.edu) Office: 2.91 Office Hours: Monday

More information

Windows Server 2008 Applications Infrastructure Configuration (ITMT 2322)

Windows Server 2008 Applications Infrastructure Configuration (ITMT 2322) Windows Server 2008 Applications Infrastructure Configuration (ITMT 2322) Credit: 3 semester credit hours (2 hours lecture, 4 hours lab) Prerequisite/Co-requisite: None Course Description A course in the

More information

Data Structures. Lecture 1: Introduction CSC212. Instructor: George Wolberg Department of Computer Science City College of New York

Data Structures. Lecture 1: Introduction CSC212. Instructor: George Wolberg Department of Computer Science City College of New York CSC212 Data Structures Lecture 1: Introduction Instructor: George Wolberg Department of Computer Science City College of New York George Wolberg, 2016 1 Outline of this lecture Course Objectives and Schedule

More information

Lecture 8 Requirements Engineering

Lecture 8 Requirements Engineering Lecture 8 Requirements Engineering Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 18, 2008 Lecture Overview

More information

CS 502 Introduction to Operating Systems. Fall 98 Waltham Campus

CS 502 Introduction to Operating Systems. Fall 98 Waltham Campus CS 502 Introduction to Operating Systems Fall 98 Waltham Campus Operating Systems Introduction Outline Course Introduction Administration Major components Homework Research Paper Presentation Exams Project

More information

Distributed Operating Systems Fall Prashant Shenoy UMass Computer Science. CS677: Distributed OS

Distributed Operating Systems Fall Prashant Shenoy UMass Computer Science.   CS677: Distributed OS Distributed Operating Systems Fall 2009 Prashant Shenoy UMass http://lass.cs.umass.edu/~shenoy/courses/677 1 Course Syllabus CMPSCI 677: Distributed Operating Systems Instructor: Prashant Shenoy Email:

More information

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits CSci 4211: Data Communications and Computer Networks Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits 1 Instructor David Hung-Chang Du Email: du@cs.umn.edu Office:

More information

CS 6371: Advanced Programming Languages

CS 6371: Advanced Programming Languages CS 6371: Advanced Programming Languages Dr. Kevin Hamlen Spring 2017 Fill out, sign, and return prereq forms: Course number: CS 6371 Section: 1 Prerequisites: CS 5343: Algorithm Analysis & Data Structures

More information

Metrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University

Metrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University and OO OO and OO SE 3S03 - Tutorial 12 Department of Computer Science McMaster University Complexity Lorenz CK Week of Apr 04, 2016 Acknowledgments: The material of these slides is based on [1] (chapter

More information

PC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.

PC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved. PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved. Programming Paradigms Software Engineering Exploratory Programming

More information

CSE 332: Data Abstractions. Ruth Anderson Spring 2014 Lecture 1

CSE 332: Data Abstractions. Ruth Anderson Spring 2014 Lecture 1 CSE 332: Data Abstractions Ruth Anderson Spring 2014 Lecture 1 Welcome! We have 10 weeks to learn fundamental data structures and algorithms for organizing and processing information Classic data structures

More information

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg 1 About Me Trent Jaeger (PhD, University of Michigan) Associate Professor, CSE -- after 9 years at IBM Research Research: Operating System Security Example Projects L4 Microkernel -- minimal, high performance

More information

ECE 3574: Applied Software Design

ECE 3574: Applied Software Design ECE 3574: Applied Software Design Chris Wyatt Spring 2018 Welcome to ECE 3574: Applied Software Design CRN 19016 Website: https://filebox.ece.vt.edu/~ece3574 Instructor: Chris Wyatt, clwyatt@vt.edu Today

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

CS Lecture 19: Loop invariants

CS Lecture 19: Loop invariants CS 1110 Lecture 19: Loop invariants Announcements Prelim 2 conflicts Today (April 2) is two weeks before the prelim, and the deadline for submitting prelim conflicts. Instructor travel This week and the

More information

Team-Based Collaboration in Simulink

Team-Based Collaboration in Simulink Team-Based Collaboration in Simulink Sonia Bridge 2015 The MathWorks, Inc. 1 Create tools that make it easy for teams to manage the full lifecycle of their Model-Based Design projects Collaborate Integrate

More information

L1: Introduction. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

L1: Introduction. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806 L1: Introduction Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806 8/15/2016 CSCI 445 Fall 2016 1 Acknowledgements Some pictures used in this presentation

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Web Page http://pdinda.org/ics Syllabus See the web page for more information. Class discussions are on Piazza We will make only minimal use of Canvas (grade reports, perhaps

More information

Distributed and Operating Systems Spring Prashant Shenoy UMass Computer Science.

Distributed and Operating Systems Spring Prashant Shenoy UMass Computer Science. Distributed and Operating Systems Spring 2019 Prashant Shenoy UMass http://lass.cs.umass.edu/~shenoy/courses/677!1 Course Syllabus COMPSCI 677: Distributed and Operating Systems Course web page: http://lass.cs.umass.edu/~shenoy/courses/677

More information

Instructor: Anna Miller

Instructor: Anna Miller Media Graphics ADV 3203 Fall 2016 Advertising Media Graphics - 81584 - ADV 3203 Mondays and Wednesdays 12:15 PM - 1:30 PM room 1011 And Advertising Media Graphics - 82354 - ADV 3203 Mondays and Wednesdays

More information

Polytechnic University of Puerto Rico Department of Electrical & Computer Engineering and Computer Science (ECECS) Master in Electrical Engineering

Polytechnic University of Puerto Rico Department of Electrical & Computer Engineering and Computer Science (ECECS) Master in Electrical Engineering Polytechnic University of Puerto Rico Department of Electrical & Computer Engineering and Computer Science (ECECS) Master in Electrical Engineering Course Syllabus Note : This is a major revision, the

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

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018 San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018 Course and Contact Information Instructor: Vidya Rangasayee Office Location: MH 213 Telephone:

More information

Frequently asked questions on the Exam Period

Frequently asked questions on the Exam Period Frequently asked questions on the Exam Period - Autumn 2018/2019-1. What can I do if I passed the exam, but I am not satisfied with my mark? You can take a grade improvement examination: retaking a successful

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 12: Introduction to inheritance and genericity On the menu for today (& next

More information

CMPT 354 Database Systems I. Spring 2012 Instructor: Hassan Khosravi

CMPT 354 Database Systems I. Spring 2012 Instructor: Hassan Khosravi CMPT 354 Database Systems I Spring 2012 Instructor: Hassan Khosravi Textbook First Course in Database Systems, 3 rd Edition. Jeffry Ullman and Jennifer Widom Other text books Ramakrishnan SILBERSCHATZ

More information

! Mon, May 5, 2:00PM to 4:30PM. ! Closed book, closed notes, clean desk. ! Comprehensive (covers entire course) ! 30% of your final grade

! Mon, May 5, 2:00PM to 4:30PM. ! Closed book, closed notes, clean desk. ! Comprehensive (covers entire course) ! 30% of your final grade Final Exam Review Final Exam Mon, May 5, 2:00PM to 4:30PM CS 2308 Spring 2014 Jill Seaman Closed book, closed notes, clean desk Comprehensive (covers entire course) 30% of your final grade I recommend

More information

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus 1. Course Objectives Welcome to MET CS342 Data Structures with Java. The intent of this

More information

CSE506: Operating Systems CSE 506: Operating Systems

CSE506: Operating Systems CSE 506: Operating Systems CSE 506: Operating Systems Introduction Today s Lecture Course Overview Course Topics Grading Logistics Academic Integrity Policy Key concepts from Undergrad Operating Systems Course Overview (1/3) Caveat

More information

Data Structures and Algorithms

Data Structures and Algorithms CS 3114 Data Structures and Algorithms 1 Trinity College Library Univ. of Dublin Instructors and Course Information 2 William D McQuain Email: Office: Office Hours: wmcquain@cs.vt.edu 634 McBryde Hall

More information

CS 326: Operating Systems. Lecture 1

CS 326: Operating Systems. Lecture 1 CS 326: Operating Systems Lecture 1 Welcome to CS 326! Glad to have you all in class! Lecture Information: Time: T, Th 9:55 11:40am Lab: M 4:45 6:20pm Room: LS G12 Course website: http://www.cs.usfca.edu/~mmalensek/cs326

More information

Requirements. Requirements. Types of Requirement. What Is a Requirement?

Requirements. Requirements. Types of Requirement. What Is a Requirement? Beatrice Åkerblom beatrice@dsv.su.se Everything else in software development depends on the requirements. If you cannot get stable requirements you cannot get a predictable plan... What Is a Requirement?!

More information

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design. Analysis vs. Design Why the distinction? Design Processes Logical vs. Physical Design System vs. Detailed Design Architectures System Architecture Software Architecture Architectural Patterns (next lecture)

More information

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus Carolyn England COD Main #: 942-4125 Voicemail Ext. 4125 Office: BIC1544B (Division Office TEC1034) Mailbox: BIC1E01 Office Hours: M 12:05 pm 1:45 pm Tu 12:05 pm 1:45 pm W 12:05 pm 1:45 pm Th 9:00 am 10:40

More information

How to set up your WildCat Account. For Concurrent Enrollment High School Students

How to set up your WildCat Account. For Concurrent Enrollment High School Students How to set up your WildCat Account For Concurrent Enrollment High School Students What In this presentation, you will be instructed on how to set up a wildcat account, which will enable you to access:

More information

C++ Programming Language Lecture 2 Problem Analysis and Solution Representation

C++ Programming Language Lecture 2 Problem Analysis and Solution Representation C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department Program Development Cycle Program development

More information