SE3BB4: Software Design III

 

SOFTWARE DESIGN III - CONCURRENT SYSTEM DESIGN

Winter 2015

Course Outline

Created: 6 January 2015


Note: This course outline contains important information that may affect your grade. You should retain it throughout the semester as you will be assumed to be familiar with the rules specified in this document.


Instructor: Dr Tom Maibaum

Teaching Assistants:

Akhil Krishnan: akhil4490@gmail.com

Eden Burton: burtonre@mcmaster.ca


Schedule:

Lectures: Tue, Thu, Fri @ 11:30-12:20 in T13/125Y

Tutorials: Mon @ 12:30-14:20 in ITB139, Tue @ 15:30-17:20

NOTE: The first tutorial sessions will begin on Monday, 12 Jan, at the scheduled time.


Calendar Description

“Processes, threads, concurrency; Synchronization mechanisms, resource management and sharing; Objects and concurrency; Design, architecture and testing of concurrent systems. ”

Mission

“The mission of this course is to give students an understanding of the basic techniques of concurrent system design and to introduce students to the appropriate modelling and analysis techniques.”

COURSE DETAILS

1: Introduction

2: Processes and Threads

3: Concurrent Execution

3a: Labelled Transition Systems  (4up)

4: Shared Objects and Mutual Exclusion

5: Monitors and Condition Synchronization

6: Deadlock

7: Safety and Liveness Properties

8: Model Based Design

9: Dynamic Systems

10: Message Passing

11: Concurrent Architectures

12: Timed Systems

13: Program Verification

14: Logical Properties


Course Materials

Further material will be added later, including journal articles, tutorial exercises and solutions.

Tutorial 1: Questions Solutions

Tutorial 2: Questions Solutions

Tutorial 3: Questions Solutions

Tutorial 4: Questions Solutions

Tutorial 5: Questions Solutions

Tutorial 6: Questions Solutions

Tutorial 7: Questions Solutions

Tutorial 8: Questions Solutions


ASSIGNMENTS


Assignment 1 Solutions to assignment 1

Assignment 2 Solutions to assignment 2

Assignment 3 Solutions to assignment 3

Assignment 4 Solutions to assignment 4

Midterm and solutions



Texts

MAIN TEXT

Jeff Magee and Jeff Kramer, Concurrency: State Models & Java Programming, 2nd edition, Wiley, 2006, ISBN-13: 978-0-470-09356-6

RECOMMENDED

Abraham Silberschatz, Peter Baer Galvin and Greg gagne, Operating System Concepts, 8th edition, John Wiley and Sons, 2009, ISBN 978-0-12872-5.

ADDITIONAL READING

Roger S Pressman, Software Engineering: A Practitioner’s Approach (5th or 6th edition), McGraw Hill, 2004. -

Ian Sommerville, Software Engineering (7th edition), Addison Wesley, 2004.-

Carlo Ghezzi, Mehdi Jazayeri and Dino Mandrioli, Fundamentals of Software engineering (2nd edition), Pearson Education, 2002.-


Software Tools

You will have to obtain the LTSA tool from http://www.doc.ic.ac.uk/~jnm/book/.


Grading

Your course grade will be based on your performance on the tutorial exercises (not all of which will be collected and marked), some of which will involve programming in Java, the midterm test and the final examination, as follows:


Assignments

30%

Midterm examination

20%

Final examination

50%

TOTAL

100%


The final grade will be calculated as above, but you must pass the final examination in order to pass the course. If you fail the final examination, the final grade will be that obtained on your final examination.

 

The midterm test will be 60 mins long and will be scheduled in in late February.

The exam will be 2 hours long, will be open book and take place on the date specified by the University.-


Policy Statements

1. Missed deliverable or exam: You must submit appropriate documentation (e.g. note from physician) to the Associate Dean’s office. It is your responsibility to follow-up with the instructor. A zero will be entered for the missed work unless the instructor receives a Course of Action for Missed Work form delivered by the Associate Dean Office before submitting the final grades to the faculty.

2. Tutorials: The class will be split into two groups. Each group will have a two hour tutorial per week. Attendance at tutorials is compulsory. You MUST attend your assigned session of the tutorial. More information on the schedule and the organization of the tutorial will be posted very soon on the course website.

3. The instructor reserves the right to adjust the grades for a deliverable, or the final exam by decreasing every score by a fixed number of points.

4. The instructor reserves the right to increase by a fixed number of points the final scores of all the students who handed in all the deliverables and attended all the tutorial sessions (except if the student misses a tutorial for a justifiable reason).

5. The instructor reserves the right to assign extra grades for extra work done by willing students. However, the work subject to extra grades should be advertised during the lectures.

6. A remarking request of a deliverable is considered by the TAs and the instructor only if it is made within the two weeks that follow the return date of the majority of the concerned deliverable.

7. The instructor reserves the right to require a deferred exam to be oral.

8. No responsibility for loss of deliverables can be assumed by either the instructor or the Teaching Assistants. Keep copies of your own contributions to the project, your reports, and your email exchanges with your team members.

9. Calculators are not needed for this course and their use will not be permitted during exams.

10. The lectures will not necessary follow the order in which the topics are presented in the detailed course outline. Regular class attendance is required.

11. Significant study, reading, and group discussions outside of class and tutorials are required.

12. Suggestions on how to improve the course and the instructor’s teaching methods are always welcomed.


Important warning

The instructor and university reserve the right to modify elements of the course during the term. The university may change the dates and deadlines for any or all courses in extreme circumstances. If either type of modification becomes necessary, reasonable notice and communication with the students will be given with explanation and the opportunity to comment on changes. It is the responsibility of the student to check their McMaster email and course websites weekly during the term and to note any changes.

Discrimination

The Faculty of Engineering is concerned with ensuring an environment that is free of all adverse discrimination. If there is a problem that cannot be resolved by discussion among the persons concerned, individuals are reminded that they should contact their Chair, the Sexual Harassment Office of the Human Rights Consultant, as soon as possible.

Academic Integrity

Students are reminded that they should read and comply with the Statements on Academic Ethics and the Senate Resolutions on Academic Dishonesty as found in the Senate Policy Statements distributed at registrations and available in the Senate Office.

“Academic dishonesty consists of misrepresentation by deception or by other fraudulent means and can result in serious consequences, e.g., the grade of zero on an assignment, loss of credit with a notation on the transcript (notation reads: ”Grade of F assigned for academic dishonesty”), and/or suspension or expulsion from the university.”

It is your responsibility to understand what constitutes academic dishonesty. For information on the various kinds of academic dishonesty please refer to the Academic Integrity Policy, specifically Appendix 3, located at http://www.mcmaster.ca/senate/academic/ac integrity.htm.

The following illustrates only three forms of academic dishonesty:

1.Plagiarism, e.g., the submission of work that is not one’s own or for which other credit has been obtained.

2.Improper collaboration in group work.

3.Copying or using unauthorized aids in tests and examinations.