![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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081615/5fdcc2d9429201735a485622/html5/thumbnails/26.jpg)
OOSC - Summer Semester 2004
26
Chair of Software Engineering
End of lecture 2