11University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. CSC302:Engineering Large Software SystemsProf Steve [email protected]://www.cs.toronto.edu/~sme/CSC302University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2About the Course Course website www.cs.toronto.edu/~sme/CSC302/ Textbooks Fowler: UML Distilled (3rd Edition) Lecture Notes Available on the course website prior to each lecture Coursework Carried out in teams of 6 (±1) Each team submits one report (per assignment) All team members receive the same grade (exceptions can be negotiated) Involves an ongoing open source project, using legacy code2University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 3About the Course Build on what you’ve learned in CSC301 How do these skills scale up to larger projects? What new techniques and processes are needed? Important Topics advanced modeling (UML) project management reverse engineering requirements analysis verification and validation software architecture (performance modeling and analysis)University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4Assessment 4 team assignments:1. Phase 0: Reverse Engineering / Familiarization (5%) 3 weeks. Generate models from the legacy code2. Phase 1: Select and implement change requests (10%) 3 weeks. Submit analysis of CRs, plus implemented and tested changes3. Phase 2a: Requirements analysis and test plan (15%) 4 weeks. Analyse requests for new features, and write test cases4. Phase 2b: Implement new features and review process (15%) 3 weeks. Submit implemented and tested features, plus lessons learned report 2 tests: Midterm test (20%) Final Exam (35%) Must obtain at least 30% on this exam to pass the course.3University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5Course Policies Assignment Deadlines Are very strict (use a U of T medical certificate if you are seriously ill) Assignments are due in the first 10 minutes of a tutorial (i.e. 11:20am) Daily penalties apply to late work Re-grading Will only be done by the professor (TAs will not re-grade your work) The whole report will be re-graded (not just individual sections) Your mark may go up or down Communication Ask questions in Lectures and Tutorials Announcements will appear on the course website. Please check it regularly. TAs and instructor will not answer any queries related to the assignments inthe 24 hour period prior to the deadline I will rarely respond to email Spam filter may kill email from non-UofT adddresses I will (try to) answer emailed questions in the next available lecture/tutorial.University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6Discussion1. Review of CSC3012. Your goals for this course3. Options: Bonus for changes accepted back into project base? Trade projects at end of phase 1: bonus for popular projects? Shorter iterations? TA’s as “on-site users”? TA’s as management consultants? Extra material on project management & Risk assessment? NASA Case studies? …4University of TorontoDepartment of Computer Science© 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7Summary This course addresses the challenge of big projects Working with legacy code Analyzing problem situations Deciding which features can be feasibly implemented Delivering quality software systems This course is different to most CS courses You will be contributing to a much larger project You will decide for yourself what is feasible to do You will manage your own project risks You will figure out how to work in a (large?) team You will learn think as an engineer Your mileage will vary The course evaluations will be extreme: “At last - a course that actually taught me something useful” “This course should be scrapped - it’s an embarrassment to
View Full Document