Administrative Information SC/CSE SU10 -- Software Design
Course Information Title: SC/CSE SU10 -- Software Design Time/Location: Mon. 19:00-22:00, BC 215 Pre-requisites: General prerequisites; including SC/MATH ; SC/CSE ; SC/CSE Instructor: Faraz Torshizi – Administrative questions – Assignment/project questions Forum Office hours: Mondays 18:00-19:00, Software Engineering Lab, CSEB 2056
Course Information (2) Course website: sites.google.com/site/cse3311su10/ sites.google.com/site/cse3311su10/ Check the What’s new? and Lecture Schedule sections weekly Subscribe to the RRS feeds Forum: – groups.google.com/group/software-design-3311 groups.google.com/group/software-design-3311 An invitation will be sent to you by the end of this week (click on the link in that and you’ll be able to join) Join using your CS/Gmail account – Mention your name and CS number in the “send additional information to the manager” box Course directory: – slides, sample codes, assignment and solutions /cs/course/3311
Required and Suggested Readings Required Text (OOSC2): Bertrand Meyer, Object-Oriented Software Construction, second edition, Prentice Hall, ISBN Lecture Slides: located on the course directory together with the sample code Selected slides from “BigEiffel.pdf”: located on the course directory Suggested reading (on reserve in Steacie): – Pete Thomas, Ray Weedon, Object-Oriented Programming in Eiffel, 2nd edition, Addison-Wesley, 1998 – Gamma, E., Helm R., Johnson R., Vlisssides, J.: Design Patterns. Addison-Wesley, 1995 – Design Patterns and Contracts, Jean Marc Jezequel, et. al., Addison- Wesley, Design Patterns and Contracts
Evaluation Assignment [10%] – To be done individually Midterm Test [25%] Project Phase 1 [15%] Project Phase 2 [20%] – You may work individually or in a group of two (recommended) – All students must me the group information by May 19 to get access to the SVN repository of the project. – subject: “3311 project membership” – body: (if applicable) Final exam [30%]
Important dates Check the important dates section on the course website – May 3: Course start date – May 7: Last Date to add a course without permission of instructor – May 10: Assignment 1 out – May 14: Last Date to add a course with permission of instructor – May 19: group information to the instructor to get access to the SVN repository – May 20: Project (Phase 1) out – May 24: Victoria Day -- No class – May 31: Assignment 1 due – June 14: Midterm Test – June 21: Phase 1 due – June 28: Project (Phase 2) out – July 5: Last day to drop the course without receiving a grade – July 26: Phase 2 due – July 30: Last day of classes – Sometime in August 3 to 13: Exam
What this course is about Building software systems and components – small to medium size systems Object Oriented (OO) design Design by Contract (DbC) for quality software Documenting and testing software Applying OO programming Evaluating design decisions according to quality factors
What this course in not directly about Requirements analysis: figuring out what a customer wants Teaching algorithms, data structures, syntax Teaching programming – expect that you know how to program Teaching a programming language – use one language to explain and apply the concepts Just getting programs to work – a program that executes is one small piece of the solution.
Why Eiffel? Why not C++? Java? Smalltalk? This isn't a language course! You're here to learn about design Want a language that supports software engineering and production of quality software Eiffel has been used successfully on many large projects – AXA Rosenberg Investment Management, Boeing Co., etc. People who have learned Eiffel and OO have no trouble picking up – C++, Java, other design methods
Important Checkout the lecture slides regularly (posted on the course directory) It is expected that you familiarize yourself with Eiffel Language syntax and the EiffelStudio IDE on your own: – Start with the following introductions: Getting started A guided tour of EiffelStudio Introductory Videos