1 / 10

Software Architecture & Design Essentials

Learn to design large software systems with an emphasis on formal knowledge and hands-on experience. Explore industry best practices and tools. Enhance your software engineering skills!

blairp
Download Presentation

Software Architecture & Design Essentials

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSC407S / 2103S Software Architecture & Design Prof. Penny Bahen 5228 penny@cs.toronto.edu Office hours: Wednesdays 10:00 – 11:00 (or by appointment) CSC407

  2. Important Information for Graduate Students in CSC2103 • Starting this term, this course is moved to Area Ia (Programming: Languages and Methodology) • It was previously in Area Ib (Systems: Hardware and Software) CSC407

  3. My Qualifications • B.Sc. / M.Sc. / Ph.D. in CS (UofT) • Specializing in Software Engineering • Visual Architecture Description Languages • Major projects: MiniTunis, OOT, Polyx,CE 68000 Kernel, PUMA robot arm controller • Industry Experience • 2 years architecting C++ at IBM Toronto Labs • C++ development environment • C++ & OODB across groups in Toronto, Texas, & Tokyo • 5 years architecting C++ at Algorithmics • >1MLoc C++ program, CORBA, RDBMS, Java, Web, … • 10 related products, multiple releases of each • VP, Software Dev., managing team of >100, revenues >$80M/yr. • Ongoing Consulting CSC407

  4. Learning to Design/Architect Software • Formal (book) knowledge (20%) • Experience (80%) • Characteristics: • Large system (> 300 KLoc) • Arms-length folk trying to get work done using it • Associated revenue stream • Maintenance of multiple releases over several years • Understand the mistakes that are made and try to fix them CSC407

  5. Grades • Term (60%) • Assignment 1 (20%) • OOA (10%) • OOD + OOP (Java) (10%) • doc + UML + working Java • Assignment 2 (20%) • OOD + OOP (Java) w/ patterns • Assignment 3 (20%) • Systems architecture • Diagrams and written English • Final Exam (40%) • open book (but it won’t help) • Final Grade rawGrade = exam * 0.4 + term * 0.6; return (exam < 40% ? min(49%,rawGrade):rawGrade); Late policy: see info sheet Work alone CSC407

  6. Texts • Design Patterns • Gamma, Helm, Johnson, & Vlissides • Acquire some book on • Object Oriented Analysis • UML for OOA and OOD • See recommendations on course info sheet CSC407

  7. Resources • Home page • http://www.cs.toronto.edu/~penny/teaching/csc407 • Handouts, lecture notes, links • Newsgroup • ut.cdf.csc407h • Office hours CSC407

  8. Tutorials • Each Friday, starting Jan.17 • Assignments to rooms/groups will be posted • Worked-out examples • Group discussion • Discussion of assignments • Individual TAs will mark your assignments CSC407

  9. Computing • Assignments require • Written documentation • Printed Java code • UML diagrams • Other diagrams • Any computer w/ Java (any jdk) • I use Microsoft Visio for UML and other diagrams, and Word for docs. Use what you want. CSC407

  10. Topics CSC407

More Related