Original PDF Flash format scoop-in-practice-project-plan  


Scoop In Practice Project Plan

SCOOP in Practice

PROJECT PLAN


Project Type:
Research in Computer Science II (5 credits)
Project period:
15 June 2009 – 15 December 2009
Student name:
Mohammad Seyed Alavi
Status:

2nd semester
Email address:
malavi@student.ethz.ch
Supervisor name: Sebastian Nanz
1. PROJECT DESCRIPTION
Overview
Concurrent programming has traditionally been used in a number of classical application domains such as
networking, high-performance computing, and operating systems. The recent availability of cheap multi-
core processing hardware is expected to make concurrency also relevant for mainstream programming
outside these classical domains. Therefore programming models are sought that provide abstractions to aid
programmers write concurrent programs correctly and effortlessly. SCOOP − Simple Concurrent Object-
Oriented Programming − is a practical framework for the development of high-quality concurrent software
that carries the advantages of object technology and Design by Contract to the concurrent context. Due to
its full support for advanced O-O mechanisms SCOOP claims to have the potential to address a wide range
of concurrency problems.
Scope of the work
In this project SCOOP is evaluated with respect to expressivity and performance. For the expressivity
study, the goal is to investigate a broad range of concurrent applications and to develop an understanding
for which types of applications SCOOP is suited best. Application domains for this study might include but
are not limited to the following:
• Classical synchronization problems
• Distributed applications
• Multi-threaded graphical user interfaces (GUI)
• Grid computing
• Numerical applications
For reusability, every positive result of the study is turned into a well-written program that will be available
for download, with good documentation, and whenever possible can be used as a library component; or,
when the example is too specific, the more general parts are isolated, made into reusable components, and
the example is rewritten using these components.
The performance study should provide a first impression of how the performance of SCOOP programs
compares with that of other concurrent programming paradigms such as threaded Eiffel. The study should
include a justified choice of a simple methodology for such comparisons. This methodology might for
example involve selecting a set of benchmark programs of solutions already implemented in SCOOP and
reimplementing them using the programming paradigms to be compared against.

Intended results
The result of this research should be a more precise understanding of the applicability of SCOOP in
practice. As part of the study a library of substantial SCOOP programs is produced that demonstrates
SCOOP’s expressivity and that can be reused in further developments and as part of other studies, e.g.
profiling. Furthermore, first results with respect to SCOOP’s performance will be obtained and
documented.
2. BACKGROUND MATERIAL
Reading list
• [2]-[5]
3. PROJECT MANAGEMENT
Objectives and priorities
In summary, the project has the following main objectives, in order of priority:
1. Implementation of substantial SCOOP programs in a few important application domains
2. Building a well-documented collection of reusable SCOOP programs and library components
3. Performance evaluation of SCOOP
Criteria for success
SCOOP solutions for case studies should be substantial programs, well-tested, and reusable. All the
evaluation results should be clearly documented.
Method of work
Weekly meetings will be held to report the progress of the project and to make decisions about next steps.
Quality management
Documentation
The documentation of solutions and all source code will be available at http://scoop.origo.ethz.ch/.
Validation steps
• All source code will be tested.
• Bug reports concerning the reimplemented version of SCOOP will be filed.
4. PLAN WITH MILESTONES
Project steps
1. Learning to program well in SCOOP: implementation of classical synchronization problems
2. Selection of concurrent applications to be implemented across a variety of domains
3. For each selected application: specification, implementation, testing, refactoring for code reuse, and
documentation
4. Decision on a methodology for SCOOP performance evaluation
5. Performance evaluation

Deadline
December 15th, 2009
Tentative schedule
The following schedule is tentative. The performance evaluation tasks could also be performed earlier, but
should in any case wait for the SCOOP reimplementation to be completed.

Step
June
July
August
September
October
November
December
1













2













3













4













5














REFERENCES
[1] Chair of Software Engineering: Semester-/Diplomarbeiten; Online at:
http://se.inf.ethz.ch/projects/index.html.
[2] Bertrand Meyer: Object-Oriented Software Construction, 2nd edition, Prentice Hall, 1997.
[3] Piotr Nienaltowski: Practical framework of contract-based concurrent object-oriented programming.
2007.
[4] Allen. B. Downey: The Little Book of Semaphores, second edition, Green Tea Press, 2005.
[5] Maurice Herlihy, Nir Shavit: The Art of Multiprocessor Programming, Morgan Kaufman, 2008.