Object-Oriented Software...

26
OOSC - Summer Semester 2004 1 Chair of Software Engineering Object-Oriented Software Construction Bertrand Meyer

Transcript of Object-Oriented Software...

Page 1: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

1

Chair of Software Engineering

Object-Oriented Software Construction

Bertrand Meyer

Page 2: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

2

Chair of Software Engineering

Lecture 2:

EiffelStudio and project presentation

Page 3: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

3

Chair of Software Engineering

Agenda for today

EiffelStudio: The ISE Eiffel environment

Project presentation

Page 4: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

4

Chair of Software Engineering

Agenda for today

EiffelStudio: The ISE Eiffel environment

Project presentation

Page 5: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

5

Chair of Software Engineering

EiffelStudio

Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo

Page 6: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

6

Chair of Software Engineering

Material available online

Guided tour:

http://se.inf.ethz.ch/teaching/ss2004/0250/readings/eiffel_studio_presentation.pdf

Page 7: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

7

Chair of Software Engineering

EiffelStudio

Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo

Page 8: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

8

Chair of Software Engineering

Introduction to the IDE

One development window divided into four panels: Editor Context tool Clusters pane Features pane+ Search and Favorites

Toolbar customization

Pick-and-drop mechanism

Page 9: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

9

Chair of Software Engineering

The editor

Syntax highlighting Syntax completion (CTRL+Space) Class name completion (SHIFT+CTRL+Space) Smart indenting Block indent or exdent Block commenting or uncommenting Infinite level of Undo/Redo (reset after a save) Quick search features (F3 and SHIFT+F3)

Page 10: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

10

Chair of Software Engineering

The compiler

Fast Produces efficient code Supports .NET Project Settings Tool

Page 11: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

11

Chair of Software Engineering

EiffelStudio

Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo

Page 12: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

12

Chair of Software Engineering

Class types:

Cluster:

A quick run through BON

*DEFERRED

+EFFECTIVE

●PERSISTENT

▲INTERFACED REUSED ROOT_CLASS

ROOT_CLUSTER

▲INTERFACED

Page 13: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

13

Chair of Software Engineering

A quick run through BON (cont’d)

Inheritance link:

Client links:+

EFFECTIVE

*DEFERRED

ROOT_CLASS REUSED

ROOT_CLASS REUSED

f

expanded_f

Page 14: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

14

Chair of Software Engineering

The Diagram tool

Provides “Real time” roundtrip reverse engineering Synchronized at each compilation Allows for different views

Page 15: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

15

Chair of Software Engineering

EiffelStudio

Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo

Page 16: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

16

Chair of Software Engineering

Documentation generation

Multiple predefined formats Extendible formats Extremely powerful HTML generation with

clickable diagrams

Page 17: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

17

Chair of Software Engineering

Metrics

Hundreds of different metrics available Can be publicized on web sites for future

comparison

Page 18: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

18

Chair of Software Engineering

EiffelStudio

Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo

Page 19: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

19

Chair of Software Engineering

Getting started with the debugger

The system must be melted/frozen (finalizedsystems cannot be debugged)

Use the Project Settings Tool to specify commandline arguments

Click the launch button

Page 20: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

20

Chair of Software Engineering

Setting breakpoints

Use the flat formats to add breakpoints Tip: An efficient way of adding breakpoints

consists in dropping a feature in the context tool Click in the margin to enable/disable single

breakpoints Use the toolbar debug buttons to enable or

disable all breakpoints globally

Page 21: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

21

Chair of Software Engineering

Running the application

New display of the Development Window to includedebugging information about: The current object (Object Tool) The arguments to the function being debugged (local

variables)

Possibility to control the number of elements the debuggerdisplays for special objects (Arrays, Strings)

Once on a breakpoint: possibility to step over / into / outnext statement

Possibility to interrupt the application at anytime (PauseApplication button or SHIFT+CTRL+F5)

Page 22: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

22

Chair of Software Engineering

EiffelStudio

Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo

Page 23: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

23

Chair of Software Engineering

Agenda for today

EiffelStudio: The ISE Eiffel environment

Project presentation

Page 24: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

24

Chair of Software Engineering

The project

Project To Be Announced

Documentation User guide: how to use the tool Developer guide: description of the

architecture, main classes, limitations, how toextend the tool

Test suite Thorough set of test cases

Page 25: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

25

Chair of Software Engineering

Grading criteria

Design (30 points) Soundness (5 points) Extendibility (5 points) Ease of use (5 points) Minimal requirements (15 points)

Quality of contracts (20 points) Documentation (20 points)

User guide (10 points) Developer guide (10 points)

Test (10 points) Quality of test suite (5 points) Correctness of the tool (5 points)

Quality of code (10 points) Style guidelines (5 points) Quality of code (5 points)

Effort devoted to the project (10 points)

Page 26: Object-Oriented Software Constructionse.inf.ethz.ch/old/teaching/ss2004/0250/lectures/oosc_02_eiffel_stud… · Chair of Software Engineering Object-Oriented Software Construction

OOSC - Summer Semester 2004

26

Chair of Software Engineering

End of lecture 2