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

Size: px
Start display at page:

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

Transcription

1 1 Last update: 15 October 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout

2 2 Lecture 1: Issues of software quality

3 Agenda for today 3 Introduction Some statistics Quality criteria Quality approaches Components

4 Course overview 4 Three visible ideas that can help advance software quality: Components Contracts Patterns Goal of this course: Present each concept Explain how to combine them

5 Textbooks 5 Karine Arnout: From Patterns to Components, Ph.D. thesis, Download it here. Bertrand Meyer: Object-Oriented Software Construction, 2 nd edition, Prentice Hall, Recommended: Erich Gamma, et al. Design Patterns: Elements of Reusable Object-Oriented Software, Addison- Wesley, Richard Mitchell, Jim McKim: Design by Contract, by example, Addison-Wesley, 2001.

6 Grading 6 Exam (2h): 40% 2 February 2005 Project: 60% Deadline: 4 February 2005 Extension of a Pattern Wizard

7 Pattern Wizard 7 Automatically generates code from patterns. To be extended. Generated code

8 Contacts 8 Responsible assistants: Dr. Karine Arnout, Karine.Arnout@inf.ethz.ch, RZ-J4 Till G. Bay, Till.Bay@inf.ethz.ch, RZ-J22 Course web page: Course address: tc@se.inf.ethz.ch (To join Prof. Dr. Bertrand Meyer, Dr. Karine Arnout and Till Bay)

9 Registration 9 Please send an To: tc@se.inf.ethz.ch Subject: TC 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

10 Agenda for today 10 Introduction Some statistics Quality criteria Quality approaches Components

11 A sad story 11 Standish Group Research Study CHAOS, 1995 Fully successful (on-time, on-budget, with all features as initially specified) 16% 53% Unsuccessful (late, over-budget, or fewer features than originally specified) 31% Failure (cancelled prior to completion) On average, unsuccessful projects are: Over time: 222% longer than planned Over budget: by 189% over budget Incomplete functionality: 61% of planned features.

12 which is not improving over years 12 NIST report on testing, 2002 Estimated costs resulting from bad-quality software: 22.2 to 59.5 billion dollars! Financial industry: 3.8 billion dollars Auto/aerospace industry: 1.8 billion dollars

13 Not only figures 13 But also money Ariane 5 Year security attacks Buffer overflow and loss of human lives London Ambulance System Therac-25

14 Agenda for today 14 Introduction Some statistics Quality criteria Quality approaches Components

15 What is software quality? 15 Defining the attributes of software quality and determining the metrics to assess the relative value of each attribute are not formalized processes. Not only is there a lack of commonly agreed upon definitions of software quality, different users place different values on each attribute depending on the product s use. NIST report on testing, May 2002.

16 Software quality model, McCall et al Product operation criteria Correctness, reliability, integrity, usability, efficiency Product revision criteria Maintainability, flexibility, testability Product transition criteria Interoperability, reusability, portability

17 Software quality factors, Meyer External factors: perceptible to the users Efficiency, ease-of-use, Internal factors: only perceptible to programmers Modularity, readability Without internal factors, no external ones!

18 Other external factors 18 Reliability: Correctness + Robustness SPECIFICATION Correctness Robustness Correctness: Software performs according to specification, in cases defined by its specification Robustness: Software reacts reasonably to cases not covered by its specification. Other external factors: Integrity, extendibility, portability, reusability

19 Software reusability: A definition 19 Reusability is the ability of software elements to serve for the construction of many different applications. Bertrand Meyer, Object-Oriented Software Construction, 2 nd edition, 1997

20 Agenda for today 20 Introduction Some statistics Quality criteria Quality approaches Components

21 Approaches to software quality 21 A priori Build software right from the start. A posteriori Test, test, and retest.

22 Technical answers 22 Formal specification and verification Fully formal: Z, B,... Partly formal: Design by Contract Programming language support Static typing Garbage collection No goto Information hiding Clear syntax Style standards

23 Managerial answers 23 Capability Maturity Model ISO 9001 Buy from market leaders Get software in source from Code reviews

24 Technical & managerial answer: Components 24 New buzzwords : Reuse Components COTS (Commercial Off-The-Shelf) CBD (Component-Based Development) Different kinds of components: O-O libraries: Eiffel, C#, Java, STL,... Binary components: CORBA, COM, EJB,.NET

25 Agenda for today 25 Introduction Some statistics Quality criteria Quality approaches Components

26 Issues 26 Organizational and managerial issues Not covered in this course Technical issues What form of components? Quality of components

27 What form of component? (1/2) 27 The general pattern for a searching routine: has (t: TABLE; x: ELEMENT): BOOLEAN is -- Does item x appear in table t? local pos: POSITION do from pos := initial_position (t, x) until exhausted (t, pos) or else found (t, x, pos) loop pos := next (t, x, pos) end Result := found (t, x, pos) end

28 What form of components (2/2) 28 Reusability requirements Routine grouping Type variation Implementation variation Other requirements Representation independence Factoring out common behaviors

29 Factoring out common behaviors (1/3) 29 Example: the set of sequential table implementations TABLE has start after found forth SEQUENTIAL_ TABLE TREE_ TABLE HASH_ TABLE ARRAY_ TABLE LINKED_ TABLE FILE_ TABLE

30 Factoring out common behaviors (2/3) 30 before item after 1 back forth count start index

31 Factoring out common behaviors (3/3) 31 A common routine text for has: has (t: SEQUENTIAL_TABLE; x: ELEMENT): BOOLEAN is -- Does x appear in the table? do from start (t) until after (t) or else found (t, x) loop forth (t) end Result := not after (t) end

32 Software component: A definition 32 A software component is a reusable module with the following supplementary properties: It can be used by other modules (its clients ). The supplier of a component does not need to know who its clients are. Clients can use a component on the sole basis of its official information. (This is a broad view of component.)

33 Expected benefits 33 Benefits for the users Timeliness Maintainability Reliability Efficiency Interoperability Other qualities COMMON DESIRABLE Debugging Functionality Envisaged Early releases Benefits for the suppliers Interoperability Investment

34 Major software issues before components 34 Quality Correctness Robustness Extendibility Reusability Ease-of-use Productivity Time to market Number of developers

35 Major software issues after components 35 Quality Correctness Robustness Extendibility Reusability Ease-of-use Productivity Time to market Number of developers

36 Component quality 36 Bad-quality components are a major risk. Deficiencies scale up. The architecture of component-based systems is significantly more demanding than that of traditional monolithic integrated solutions. In the context of component software, full comprehension of established design reuse techniques is most important. Clemens Szyperski, Component Software, 1998

37 Perfectionism 37 Component design should be the Formula-1 racing of software engineering. Bertrand Meyer

38 Software reuse vs. design reuse 38 Reuse of architectural and design experience is probably the single most valuable strategy in the basket of reuse ideas Clemens Szyperski, Component Software, 1998, p 132. Seamless development reconciles design and implementation by covering the whole software lifecycle. From Patterns to Components

39 Complementary material 39 From Patterns to Components: Chapter 2: The benefits of reuse OOSC2: Chapter 3: Modularity Chapter 4: Approaches to reusability

40 40 End of lecture 1

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

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: 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

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

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

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

Object Oriented Programming

Object Oriented Programming Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer 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 7: Pattern Wizard, project presentation Agenda for today 3 Pattern Wizard

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

10. Software Testing Fundamental Concepts

10. Software Testing Fundamental Concepts 10. Software Testing Fundamental Concepts Department of Computer Science and Engineering Hanyang University ERICA Campus 1 st Semester 2016 Testing in Object-Oriented Point of View Error Correction Cost

More information

ITIL Managing Across the Lifecycle Course

ITIL Managing Across the Lifecycle Course ITIL Managing Across the Lifecycle Course Duration: 5 Days Course Delivery: Classroom Language: English Course Overview ITIL 2011 edition is comprised of five core publications: Service Strategy, Service

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

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

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University ITC213: STRUCTURED PROGRAMMING Bhaskar Shrestha National College of Computer Studies Tribhuvan University Lecture 03: Program Development Life Cycle Readings: Not Covered in Textbook Program Development

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

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

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

ITE 205 Software Design and Programming I

ITE 205 Software Design and Programming I Computer Science Department cs.salemstate.edu ITE 205 Software Design and Programming I 4 cr. Catalog description: This course introduces a set of fundamental design principles and problem-solving techniques

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

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

Software Architectures

Software Architectures Software Architectures 2 SWS Lecture 1 SWS Lab Classes Hans-Werner Sehring Miguel Garcia Arbeitsbereich Softwaresysteme (STS) TU Hamburg-Harburg HW.Sehring@tuhh.de Miguel.Garcia@tuhh.de http://www.sts.tu-harburg.de/teaching/ss-05/swarch/entry.html

More information

C-QM: A PRACTICAL QUALITY MODEL FOR EVALUATING COTS COMPONENTS

C-QM: A PRACTICAL QUALITY MODEL FOR EVALUATING COTS COMPONENTS C-QM: A PRACTICAL QUALITY MODEL FOR EVALUATING COTS COMPONENTS Soo Dong Kim, Ji Hwan Park Department of Computer Science Soongsil University 1-1 Sangdo-5-Dong, Dongjak-Ku, Seoul South Korea, 156-743 want

More information

Software Engineering

Software Engineering CSC40232: SOFTWARE ENGINEERING Professor: Jane Cleland Huang : Introduction Wednesday, January 18 th sarec.nd.edu/courses/se2017 Department of Computer Science and Engineering Software Engineering Software

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

Course 7. Reusability, interoperability. S. Motogna - Software Quality

Course 7. Reusability, interoperability. S. Motogna - Software Quality Course 7 Reusability, interoperability Reusability Reusability Definition: Extent to which a program can be used in other applications - related to the packaging and scope of the functions that programs

More information

Next-Generation Architecture for Virtual Prototyping

Next-Generation Architecture for Virtual Prototyping Next-Generation Architecture for Virtual Prototyping Dr. Bipin Chadha John Welsh Principal Member Manager Lockheed Martin ATL Lockheed Martin ATL (609) 338-3865 (609) 338-3865 bchadha@atl.lmco.com jwelsh@atl.lmco.com

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

Spring 2017 FRE-GY 6883 Financial Computing Song Tang, Ph.D

Spring 2017 FRE-GY 6883 Financial Computing Song Tang, Ph.D Spring 2017 FRE-GY 6883 Financial Computing Song Tang, Ph.D. st290@nyu.edu, 646-283-4578 Overview: This course covers programming applications to financial engineering, including C++ and Java and the various

More information

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

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

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

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

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

Software Architecture and Engineering Introduction Peter Müller

Software Architecture and Engineering Introduction Peter Müller Software Architecture and Engineering Introduction Peter Müller Chair of Programming Methodology Spring Semester 2018 1. Introduction Software Failures 2 1. Introduction 1.1 Software Failures 1.2 Challenges

More information

EXAMINATION [The sum of points equals to 100]

EXAMINATION [The sum of points equals to 100] Student name and surname: Student ID: EXAMINATION [The sum of points equals to 100] PART I: Meeting Scheduling example Description: Electronic meeting Scheduling system helps meeting initiator to schedule

More information

QUALITY METRICS IMPLEMENTATION IN COMPONENT BASED SOFTWARE ENGINEERING USING AI BACK PROPAGATION ALGORITHM SOFTWARE COMPONENT

QUALITY METRICS IMPLEMENTATION IN COMPONENT BASED SOFTWARE ENGINEERING USING AI BACK PROPAGATION ALGORITHM SOFTWARE COMPONENT I.J.E.M.S., VOL.3(2) 2012: 109-114 ISSN 2229-600X QUALITY METRICS IMPLEMENTATION IN COMPONENT BASED SOFTWARE ENGINEERING USING AI BACK PROPAGATION ALGORITHM SOFTWARE COMPONENT Sidhu Pravneet SPCET, Mohali,

More information

Human Computer Interaction Lecture 14. HCI in Software Process. HCI in the software process

Human Computer Interaction Lecture 14. HCI in Software Process. HCI in the software process Human Computer Interaction Lecture 14 HCI in Software Process HCI in the software process Software engineering and the design process for interactive systems Usability engineering Iterative design and

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

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

Human Computer Interaction Lecture 06 [ HCI in Software Process ] HCI in the software process

Human Computer Interaction Lecture 06 [ HCI in Software Process ] HCI in the software process Human Computer Interaction Lecture 06 [ HCI in Software Process ] Imran Ihsan Assistant Professor www.imranihsan.com aucs.imranihsan.com HCI06 - HCI in Software Process 1 HCI in the software process Software

More information

Individual Project. Agnieszka Jastrzębska Władysław Homenda Lucjan Stapp

Individual Project. Agnieszka Jastrzębska Władysław Homenda Lucjan Stapp Individual Project Individual Project Target: 1. Improvement of software development skill 2. to industrial method of building application in practical way Individual Project Slide 2/50 Individual Project

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

Object-Oriented Analysis and Design

Object-Oriented Analysis and Design 0. Object Orientation: An Subject/Topic/Focus: over this lecture Summary: Lecturer, lecture, rooms, assistants, lab classes, credit points... Need for systems analysis and software engineers Literature

More information

Verification and Validation

Verification and Validation Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Verification and Validation 1 Verification and Validation

More information

Lecture 4: Observer Pattern, Event Library and Componentization

Lecture 4: Observer Pattern, Event Library and Componentization Software Architecture Bertrand Meyer & Till Bay ETH Zurich, February-May 2008 Lecture 4: Observer Pattern, Event Library and Componentization Program overview Date Topic Who? last week Introduction; A

More information

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015 ****************************************************************************** YEAR COURSE OFFERED: 2015 SEMESTER COURSE OFFERED: SPRING DEPARTMENT: COMPUTER SCIENCE COURSE NUMBER: 20019 Room and Time:

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

TEL2813/IS2820 Security Management

TEL2813/IS2820 Security Management TEL2813/IS2820 Security Management Security Management Models And Practices Lecture 6 Jan 27, 2005 Introduction To create or maintain a secure environment 1. Design working security plan 2. Implement management

More information

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology Software Reengineering P1: Intro & Organization Martin Pinzger Delft University of Technology Greenfield software development 2 Non-greenfield software development? 3 How often did you...... encounter

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

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 3: Dealing with Objects II Programming languages The programming language is

More information

Department of Computer & Information Sciences. CSCI-342: Introduction to Information Security Syllabus

Department of Computer & Information Sciences. CSCI-342: Introduction to Information Security Syllabus Department of Computer & Information Sciences CSCI-342: Introduction to Information Security Syllabus Course Description This course provides an introduction to the various basic technical and administrative

More information

Proposed Unified ility Definition Framework. Andrew Long October 2012

Proposed Unified ility Definition Framework. Andrew Long October 2012 Identify, Innovate Explore, Engineer - Execute 1 1 Proposed Unified ility Definition Framework Andrew Long October 2012 Identify, Innovate Explore, Engineer - Execute 2 2 Motivation Increased interest

More information

CPSC 427a: Object-Oriented Programming

CPSC 427a: Object-Oriented Programming CPSC 427a: Object-Oriented Programming Michael J. Fischer Lecture 1 September 2, 2010 CPSC 427a 1/54 Overview Course information Goals Learning C++ Programming standards Comparison of C and C++ Example

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 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

Static program checking and verification

Static program checking and verification Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness

More information

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques 1 CPSC2620 Advanced Programming Spring 2003 Instructor: Dr. Shahadat Hossain 2 Today s Agenda Administrative Matters Course Information Introduction to Programming Techniques 3 Course Assessment Lectures:

More information

Course title: WEB DESIGN AND PROGRAMMING

Course title: WEB DESIGN AND PROGRAMMING Course title: WEB DESIGN AND PROGRAMMING Lecturers Full Prof. Dragutin Kermek, Ph.D., Matija Novak, M.Inf., Matija Kaniški, M.Inf. Language of Croatian and English instruction: Schedule: 75 teaching hours

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

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

CS 241 Data Organization. August 21, 2018

CS 241 Data Organization. August 21, 2018 CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

HCI in the software process

HCI in the software process chapter 6 HCI in the software process HCI in the software process Software engineering and the process for interactive systems Usability engineering Iterative and prototyping Design rationale the software

More information

HCI in the software. chapter 6. HCI in the software process. The waterfall model. the software lifecycle

HCI in the software. chapter 6. HCI in the software process. The waterfall model. the software lifecycle HCI in the software process chapter 6 HCI in the software process Software engineering and the process for interactive systems Usability engineering Iterative and prototyping Design rationale the software

More information

CS 241 Data Organization using C

CS 241 Data Organization using C CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

More information

Course Syllabus Internal Control And Auditing ACNT 2331

Course Syllabus Internal Control And Auditing ACNT 2331 Semester with Course Reference Number (CRN) Instructor contact information (phone number and email address) Office Location and Hours Course Location/Times Course Semester Credit Hours (SCH) (lecture,

More information

Security Engineering for Software

Security Engineering for Software Security Engineering for Software CS996 CISM Jia An Chen 03/31/04 Current State of Software Security Fundamental lack of planning for security Most security issues come to light only after completion of

More information

ANALYTICAL STUDY OF MAINTAINABILITY MODELS FOR QUALITY EVALUATION

ANALYTICAL STUDY OF MAINTAINABILITY MODELS FOR QUALITY EVALUATION ANALYTICAL STUDY OF MAINTAINABILITY MODELS FOR QUALITY EVALUATION Rimmi Saini Computer Science & Engineering Department,Greater Noida Institute of Engineering & Technology, Greater Noida,U.P., 201306,India

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

Review Software Engineering October, 7, Adrian Iftene

Review Software Engineering October, 7, Adrian Iftene Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)

More information

Cleveland State University

Cleveland State University Cleveland State University CIS 260/500 Introduction to Programming (4 credits). Spring 2015 Section 2/ 50 Class Nbr. 1810/1855 Tue, Thu 12:30 PM 2:20 PM Section 2/ 50 Class Nbr. 1813/1856. Tue, Thu 4:00

More information

Chapter 9 Quality and Change Management

Chapter 9 Quality and Change Management MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

Your Instructor. CSE Content. Notes. Notes. Notes. Summer May 4, 2010

Your Instructor. CSE Content. Notes. Notes. Notes. Summer May 4, 2010 Tools - Tools - Summer 2010 Department of Computer Science and Engineering York University Toronto May 4, 2010 1 / 45 Tools - Your Instructor (Pshemo) Lectures: Tuesday 6.00-8.00pm in CSE1006 Lab: Tuesday

More information

WHO SHOULD ATTEND? ITIL Foundation is suitable for anyone working in IT services requiring more information about the ITIL best practice framework.

WHO SHOULD ATTEND? ITIL Foundation is suitable for anyone working in IT services requiring more information about the ITIL best practice framework. Learning Objectives and Course Descriptions: FOUNDATION IN IT SERVICE MANAGEMENT This official ITIL Foundation certification course provides you with a general overview of the IT Service Management Lifecycle

More information

Pearson Education 2007 Chapter 9 (RASD 3/e)

Pearson Education 2007 Chapter 9 (RASD 3/e) MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

UNIT II Requirements Analysis and Specification & Software Design

UNIT II Requirements Analysis and Specification & Software Design UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they

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

Using ITIL to Measure Your BCP

Using ITIL to Measure Your BCP Using ITIL to Measure Your BCP 1 Agenda ITIL v3 Overview Why Use ITIL ITIL Continual Improvement Process Critical Success Factors and Key Performance Indicators Creating Metrics Scoring System Sample BCP

More information

The «SQALE» Models for assessing the Quality of Software Source Code

The «SQALE» Models for assessing the Quality of Software Source Code The «SQALE» Models for assessing the Quality of Software Source Code Quality Model and Analysis Model The need to assess and know the quality of the software one has required or payed for is not new. When

More information

Security Management Models And Practices Feb 5, 2008

Security Management Models And Practices Feb 5, 2008 TEL2813/IS2820 Security Management Security Management Models And Practices Feb 5, 2008 Objectives Overview basic standards and best practices Overview of ISO 17799 Overview of NIST SP documents related

More information

Interface (API) Design

Interface (API) Design Interface (API) Design Architect s Perspective R. Kuehl/J. Scott Hawker p. 1 What is an API? Exposes the public facing functionality of a software component Operations, inputs, and outputs Exposes functionality

More information

FIT3056 Secure and trusted software systems. Unit Guide. Semester 2, 2010

FIT3056 Secure and trusted software systems. Unit Guide. Semester 2, 2010 FIT3056 Secure and trusted software systems Unit Guide Semester 2, 2010 The information contained in this unit guide is correct at time of publication. The University has the right to change any of the

More information

ENERGY 211 / CME 211 Computer Programming in C++ for Earth Scientists and Engineers

ENERGY 211 / CME 211 Computer Programming in C++ for Earth Scientists and Engineers ENERGY 211 / CME 211 Computer Programming in C++ for Earth Scientists and Engineers Lecture 1 September 22, 2008 Why This Course? To help students improve or acquire the programming skills they need for

More information

Compulsory course in Computer Science

Compulsory course in Computer Science Compulsory course in Computer Science University of Macau Faculty of Science and Technology Department of Computer and Information Science SFTW241 Programming Languages Architecture I Syllabus 2 nd Semester

More information

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

More information

Lecturer: Sebastian Coope Ashton Building, Room G.18

Lecturer: Sebastian Coope Ashton Building, Room G.18 Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 http://www.csc.liv.ac.uk/~pbell/comp201.html Lecture 13 Design

More information

STEP Data Governance: At a Glance

STEP Data Governance: At a Glance STEP Data Governance: At a Glance Master data is the heart of business optimization and refers to organizational data, such as product, asset, location, supplier and customer information. Companies today

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

AP Computer Science AB

AP Computer Science AB AP Computer Science AB Dr. Tyler Krebs Voice Mail: 431-8938 Classroom: B128 Office: TV Studio Characteristics We Value in This Classroom: 1. Respect. (Show respect for everyone and everything.) 2. Integrity.

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

CSE Computer Security (Fall 2007)

CSE Computer Security (Fall 2007) CSE 543 - Computer Security (Fall 2007) Lecture 1 - Introduction Professor: Trent Jaeger URL: http://www.cse.psu.edu/~tjaeger/cse543-f07/ Some bedtime stories This course We are going to explore why these

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

Frequently Asked Questions

Frequently Asked Questions December 2001 Introduction International Standard ISO/IEC 17799:2000 Information Security Management, Code of Practice for Information Security Management Frequently Asked Questions The National Institute

More information

Intensive Introduction to Computer Science. Course Overview Programming in Scratch

Intensive Introduction to Computer Science. Course Overview Programming in Scratch Unit 1, Part 1 Intensive Introduction to Computer Science Course Overview Programming in Scratch Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Welcome to CS S-111! Computer science

More information

SYLLABUS. Computer Science

SYLLABUS. Computer Science SYLLABUS 1. Information regarding the programme 1.1 Higher education institution Babeş Bolyai University 1.2 Faculty Faculty of Mathematics and Computer Science 1.3 Department Department of Computer Science

More information

Lecture 21: Undo/Redo

Lecture 21: Undo/Redo Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer October 2006 February 2007 Lecture 21: Undo/Redo 2 Further reference Chapter 21 of my

More information

Object-Oriented Principles and Practice / C++

Object-Oriented Principles and Practice / C++ Object-Oriented Principles and Practice / C++ Alice E. Fischer January 23, 2018 OOPP / C++ Lecture 1... 1/16 OOPP / C++ Mechanics Programming Context Course Goals Course Goals OOPP / C++ Lecture 1... 2/16

More information

Quality Assurance = Testing? SOFTWARE QUALITY ASSURANCE. Meaning of Quality. How would you define software quality? Common Measures.

Quality Assurance = Testing? SOFTWARE QUALITY ASSURANCE. Meaning of Quality. How would you define software quality? Common Measures. Quality Assurance = Testing? SOFTWARE QUALITY ASSURANCE William W. McMillan Meaning of Quality Error-free How define an error? Client is happy (we get paid!). User is happy (we are loved!). Stable (we

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering Quality Management Main Message Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase 3 1. Overview

More information