Object-Oriented Software...
Transcript of Object-Oriented Software...
OOSC - Summer Semester 2004
1
Chair of Software Engineering
Object-Oriented Software Construction
Bertrand Meyer
OOSC - Summer Semester 2004
2
Chair of Software Engineering
Lecture 2:
EiffelStudio and project presentation
OOSC - Summer Semester 2004
3
Chair of Software Engineering
Agenda for today
EiffelStudio: The ISE Eiffel environment
Project presentation
OOSC - Summer Semester 2004
4
Chair of Software Engineering
Agenda for today
EiffelStudio: The ISE Eiffel environment
Project presentation
OOSC - Summer Semester 2004
5
Chair of Software Engineering
EiffelStudio
Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo
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
OOSC - Summer Semester 2004
7
Chair of Software Engineering
EiffelStudio
Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo
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
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)
OOSC - Summer Semester 2004
10
Chair of Software Engineering
The compiler
Fast Produces efficient code Supports .NET Project Settings Tool
OOSC - Summer Semester 2004
11
Chair of Software Engineering
EiffelStudio
Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo
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
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
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
OOSC - Summer Semester 2004
15
Chair of Software Engineering
EiffelStudio
Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo
OOSC - Summer Semester 2004
16
Chair of Software Engineering
Documentation generation
Multiple predefined formats Extendible formats Extremely powerful HTML generation with
clickable diagrams
OOSC - Summer Semester 2004
17
Chair of Software Engineering
Metrics
Hundreds of different metrics available Can be publicized on web sites for future
comparison
OOSC - Summer Semester 2004
18
Chair of Software Engineering
EiffelStudio
Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo
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
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
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)
OOSC - Summer Semester 2004
22
Chair of Software Engineering
EiffelStudio
Introduction to the IDE The Diagram Tool Documentation generation Debugging Demo
OOSC - Summer Semester 2004
23
Chair of Software Engineering
Agenda for today
EiffelStudio: The ISE Eiffel environment
Project presentation
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
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)
OOSC - Summer Semester 2004
26
Chair of Software Engineering
End of lecture 2