SOEN 343 Software Design

Fall 2006 Semester

Wednesday September 6, 2006 to Friday December 1, 2006

Section H

Lectures: Wednesdays & Fridays 13:15 to 14:30 in CL-220

Tutorial and Lab: Fridays 14:45 to 15:35 in H-929

Tutorial and Lab: additionally Fridays 16:45 to 17:35 in H-929

Office Hours: Wednesdays 15:00 to 16:00 in EV003.219


Instructor: Dr Greg Butler, gregb@cs.concordia.ca
Tutor: Asif Dogar
Tutor: Rajiv Abraham
Coordinator: Dr Patrice Chalin, chalin@cs.concordia.ca


Announcements

2007-01-03:
Final marks

2006-11-15:
Assignment 2 is due Friday November 24, 2006 at approximately midnight. Apologies for the confusion. Assignment 3 will be due Friday, December 1, 2006.

2006-11-10:
Quiz 2 marks

2006-11-03:
Assignment 1 can be found at http://stu.encs.concordia.ca/soen343/. Each person should do assignment 1, then as a team submit one attempt at the assignment. Do an electronic submission (see assignment description) on or before Friday November 10, 2006. Use "Programming Assignment 1" for the e-submission.

2006-11-02:
Midterm marks

2006-11-01:
Quiz 2 will take place on Wednesday November 8, 2006 from 14:10 to 14:25 in CL-220 (ie at the end of the lecture). You need to be able to do questions as in Exercise set 8a.
Assignment 1 will be out this week, and due Friday November 10, 2006. Submission will use the electronic submission system.
Final examination is scheduled for Tuesday, December 12, 2006 from 19:00 to 22:00 in H-435.

2006-10-11:
Midterm exam for section H is Wednesday 18 October 2006 starting promptly at 13:20. It is a 60 minutes closed-book examination. It covers Larman chapters 1-21, but the emphasis is on chapters 17, 13, 19, 18.

Quiz 1 marks

2006-10-06:
Revised the slides for week 5, so that SOEN 342 review material is listed as review, and slides for week 5 reflect what was actually covered in lectures of week 5.

2006-09-27:
Quiz 1 will take place on Wednesday October 4, 2006 from 14:10 to 14:25 in CL-220 (ie at the end of the lecture). You need to be able to do questions as in Exercise set 1, Exercise set 2 and Exercise set 3.

2006-09-19:
A mailing list has been set up for questions and information of concern to all people involved in SOEN 343 for this semester: Users should visit
https://mail.encs.concordia.ca:444/mailman/listinfo/soen343-f06
to subscribe. Please use your encs email. We will not accept hotmail, gmail, or other such addresses.

For matters specific to each section of the course, there are two other mailing lists:
https://mail.encs.concordia.ca:444/mailman/listinfo/soen343h-f06
https://mail.encs.concordia.ca:444/mailman/listinfo/soen343uu-f06
Please subscribe to the appropriate one (ie Section H).

2006-09-13:
Tutorials start week 2 (Friday 15 September 2006) in H-929. For the evening section we are scheduling a tutorial at Fridays 16:45 to 17:35 in H-929: students from Section H can also attend this tutorial if you prefer.

Current link to tutorials is here. Do Tutorials number 0 and 1 this week.

2006-09-06:
Tutorials start week 2 (Friday 15 September 2006) in a lab location to be announced.
Buy textbook; we follow it closely.
Do the tutorials and exercises each week.
Do the suggested reading each week.


Textbook

Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edition, Prentice-Hall, 2005.

We rely heavily on the textbook, so get a copy and read it thoroughly.

Background information resources for other topics will be provided. Tutorials will offer leraning material on Java, UML, XDE, Eclipse, JUnit. You should already know: Java, UML. You should learn yourself: XDE, Eclipse, JUnit.

See also Martin Fowler,Patterns of Enterprise Application Architecture [errata, pattern summary].


Evaluation

Assignments: 3-4 assignments, one every 2 weeks in second half of semester. Worth 5-15%.
There is a penalty for late submission of 50% per calendar day.

Midterms and quizzes: Midterm examination in week 7 worth 25-35%.
There will be 2-3 quizzes requiring about 15 minutes each during the term; worth 5-10%.
If you miss a midterm or quiz and you have a valid justification (documented), then the percentage for that exam will be added to the final examination's contribution to your total.

Final Examination: A formal three-hour examination worth 50-60% of the total. You must pass the final examination to pass the course.


Lecture Schedule

2006-09-06 Week 1: Course Introduction.

Lectures (slides): The components which make up the course. What the course is. What the course is not (not a course in Java or UML). What is design. Brief orientation: Larman's design process, GRASP principles, design patterns, Fowler's Enterprise Application patterns, etc.

Background reading: Chapters 1-3 of Larman.

2006-09-13 Week 2: Review of Object-Oriented Programming, UML and Java.

Lectures: Review of OOP. Review of UML (slides from Rational).

Background reading: Chapters 4-7 of Larman.

Further material: Introduction to OO. Advanced UML Modeling. UML homepage.

2006-09-20 Week 3: Responsibility Driven Design

Lecture (slides): Design, Test Driven Design, GRASP Principles: Information Expert, Creator, Polymorphism.

Reading: Chapter 17 of Larman. Scan chapter 21 of Larman.

2006-09-27 Week 4: More RDD; Layered Architecture.

Lecture (slides): Applying RDD; GRASP Principles: Cohesion, Coupling; Layered Architecture.

Reading: Chapters 17, 13 of Larman.

2006-10-04 Week 5: Use case realization. Design.

Lecture (revised slides): Requirements to Design. Use case realization. Traceability. Controller principle. Design for visibility.
Review (slides): Domain models ( SOEN 342review). Operation contracts ( SOEN 342review).
Review (Larman slides): Use cases ( SOEN 342review).

Background reading: Chapters 6, 9, 10, 11 of Larman.
Reading: Chapters 13, 18.1, 17.13, 19 of Larman.

Quiz 1 will take place on Wednesday October 4, 2006 from 14:10 to 14:25 in CL-220 (ie at the end of the lecture). You need to be able to do questions as in Exercise set 1, Exercise set 2 and Exercise set 3.

2006-10-11 Week 6: More design.

Lecture (revised slides): Encapsulation, Information Hiding. MVC in context of servlets and Fowler's EAA patterns.

Reading: Review material(slides) from weeks 1 to 6 in preparation for midterm.

2006-10-18 Week 7: Midterm and Review.

2006-10-25 Week 8:Enterprise Application Architecture of Fowler. More on Design.

Lecture(slides): Enterprise Application Architecture of Fowler.

Reading: Chapters 18-21 of Larman.
Reading: Fowler book or website.

2006-11-01 Week 9: More on architecture and EA patterns.

Lecture (slides): 4+1 Architectural Views. GRASP Polymorphism, Protected Variations. Fowler Domain Model, Active Record, Data Mapper.

Read: Chapters 39, 25, 13 of Larman. Fowler book or website.

2006-11-08 Week 10: More on EA patterns.

Lecture(slides): GRASP Controller; EA Page Controller, FrontController. GRASP Pure Fabrication, Indirection.

Read: Chapters 25, 26 of Larman. Fowler book or website.

Quiz 2 will take place on Wednesday November 8, 2006 from 14:10 to 14:25 in CL-220 (ie at the end of the lecture). You need to be able to do questions as in Exercise set 8a.

2006-11-15 Week 11: Design Patterns.

Lecture (slides): Design of Dice Game, Re-design of Dice Game. GoF Design Patterns: Factory, Singleton, Adapter, Composite.
Read Larman Chapter 26.

2006-11-22 Week 12: More patterns and their application.

Lecture (slides): GoF Design Patterns: Adapater, Facade, Strategy, Observer.
Read Larman Chapter 26.

2006-11-29 Week 13: Course Review.

Knowledge of specific design patterns (Command plus those in Chapter 26: Adapter, Factory, Singleton, Strategy, Composite, Facade, Observer) and specific GRASP principles (all of them). You need to know Larman Chapters 1-26, 33, 34, 39. You need to know material from tutorials and assignments.


Last modified on November 21, 2006 by gregb@cs.concordia.ca