Instructor: Dr Greg Butler, gregb@cs.concordia.ca
Tutor: Asif Dogar
Tutor: Rajiv Abraham
Coordinator: Dr Patrice Chalin, chalin@cs.concordia.ca
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.
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.
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].
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.
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.