(Distributed Systems) Design Laboratory '10/'11
Notice
- Due to a meeting of the Faculty Advisory Council, office hours on
wednesday 13th of June will be at 2pm instead of 3pm as usual. I will
also be available later in the afternoon, after the meeting, but am
unable to set a fixed time.
- There will be no office hours on June 1st; starting the following
week, office hours will be on Wednesday at 3pm (instead of 5:45pm as
scheduled during the term). Assistance via e-mail and individual meetings
upon appointment will be available as usual.
- Due to travelling commitments undertaken prior to the latest change of
schedule, the lecture of Friday 1st of April at 11:00am has been canceled.
For the same reason, there will be no office hours on Wednesday 30th
of March.
Lectures timetable
Lectures are scheduled as follows:
- Friday 11:00-13:00 in room L, Polo Fibonacci
- Friday 16:00-18:00 in room L, Polo Fibonacci
Notes
- We will use the "academic quarter" to facilitate commuting from different campuses; lectures will thus start at 11:15 and 16:15 respectively.
- Due to previous travelling commitments, the lecture scheduled for Friday 1st of April at 11:00 has been cancelled.
Study material
- Slides
- Lecture 0: Introduction, logistics.
- Lecture 1: Requirements engineering. Definition, major hurdles, user roles, constraints for distributed systems.
- Lecture 2: The correctness problem. Definition of correctness; Jackson's model: domains, interfaces, phenomena; context diagrams.
- Lecture 3: The Problem Frames approach: Problem diagram, requirements, formality and informality. Examples.
- Lecture 4: A catalogue of basic frames: required behaviour, commanded behaviour, information display, simple workpieces, transformation. Correctness concerns, human concerns, distribution concerns. Examples and exercises.
- Workshop A: Reflections on the (extended) information display frame. Discussion of the exercises. Selection of case study.
- Lecture 5: Other concerns: domain flavours; standard, HCI and distribution concerns. Exercises.
- Lecture 6: Distributed systems: definition,
comparison of features. Architecture=Components+Connectors. Common
architectural styles: Monolithic, Client/Server, Two-Tier, Three-Tier,
- Lecture 7: Design patterns: definition, example. A famous pattern: Model-View-Controller. The Observer, Command and Memento patterns in a distributed application.
- Lecture 8: Network Programming essentials: Addressing; using raw sockets with TCP, UDP, multicast; using RPC via RMI; using Web services.
- Lecture 9: Distributed applications on the web: Basics, DOM, AJAX.
- Textbooks
- M. Jackson, "Software Requirements & Specifications", Addison-Wesley, 1995.
- M. Jackson, "Problem Frames: Analysing and Structuring Software Development Problems", Addison-Wesley, 2001.
- E. Gamma, R. Helm, R. Johnson, J. Vlissides, "Design Patterns:
Elements of Reusable Object-Oriented Software", Addison-Wesley, 1995.
Useful links