Software Engineering Administrivia September 5, 2001 Joseph Conron Computer Science Department New York University jconron@cs.nyu.edu Adminstrivia • You must be registered in G22-2440-001 to receive a grade • How to reach me: jconron@cs.nyu.edu • Office hours: Wednesdays 6:00 – 6:50 but PLEASE make an appointment! Class Mailing List • All students should register themselves with the class list, which is used for all technical discussions concerning the course. To register, go to the following web page, and follow the instructions: cs.nyu.edu/mailman/listinfo/g22_2440_001_fa01 • You can also subscribe by sending an e-mail message to Majordomo@cs.nyu.edu. The contents of the message should be the single line: subscribe g22_2440_001_fa01 • You will be notified in return that you are a list participant. Please send all of your questions to this list (not to the instructor) so that everyone can participate. Computer Accounts • Students that do not already have a CIMS Sun network account should apply for one in either of the following two ways: 1. Fill out a Sun account request form available from Don Freda, administrative aide, in the department office (room 405) and return it to the department office or to Don Freda's mailbox in the lobby of Warren Weaver Hall. - OR 2. Send email to csgrad@cs with Sun Account Request as the subject. In the body of the message, type family name, given name, student ID number (SSN or assigned NYU SID) and the course number of at least one course you have already registered for. • Information on the status of requested accounts will be posted on the bulletin board outside WWH. Grading • Homework problems – 75% – We will have 5 (perhaps 6) homework assignments – Weight of each assignment depends on difficulty • Final Exam 25% – In class – Open book How to hand in Assignments + Late Assignments • All homework MUST be handed in as HARD COPY in class on the due date. NO EMAIL! • If you cannot come to class when an assignment is due, either have a classmate submit it, or MAIL it by US Post to me at NYU. Any assignments received by may MUST BE POSTMARKED no later than the assignment due date • All answers must be typewritten. If diagrams are required, you may draw them by hand. • DO NOT COPY your answers verbatim from the book (or ANY book for that matter). You must express your answers in YOUR OWN WORDS. • Homework handed in up to one week late will receive a 10% penalty. • NO credit will be given for ANY assignment submitted later than one week from the due date. Books • Required texts – Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Bernd Buegge & Allen H. Dutoit, 2000, Prentice Hall • Recommended texts The following texts are not required for this course, but are excellent references for Software Engineering, and may be of use to you in future research or work. • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns, Addison-Wesley, 1996, ISBN 0-201-63361-2 • Ivar Jacobson, M. Christerson, P. Jonsson, G. Övergaard, Object-Oriented Software Engineering, Addison Wesley, 1992 • Ian Sommerville: Software Engineering, 6th edition, Addison Wesley 2000 • Shari Lawrence Pfleeger: Software Engineering: Theory and Practice, Second Edition, Prentice Hall 2001 UML Books • UML Distilled: A Brief Guide to the Standard Object Modeling Language; Martin Fowler, Kendall Scott; Addison-Wesley Object Technology Series • The Unified Modeling Language User Guide; Grady Booch, Ivar Jacobson, James Rumbaugh; The Addison-Wesley Object Technology Series What We Will Cover The Software Life Cycle Modeling with UML Defining requirements Analysis of requirements System design Class design Testing Configuration management Project management Prerequisites • Programming Languages (G22.2110) • You must understand object oriented programming! • You must be able to think about software systems in the abstract (conceptually) Objectives of this course • Acquire technical knowledge (main focus) – Understand difference between program and software product – Be able to reconstruct the analysis and design of an existing software system – Be able to design and implement a subsystem that will be part of a larger system • Acquire managerial knowledge – produce a high quality software system within budget & time – while dealing with complexity and change