Software Engineering - NYU Computer Science Department

advertisement
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
Download