[Note that the room has changed to South Science 105] | |||
CS 4310 Spring 2003 Home Page | |||
CS 4310 Spring 2003 -
Software Engineering - 4 Credits
Instructor: David Yang (Science South 433, dyang@csuhayward.edu)
Blackboard -- notes, submitting work and grades: Lecture notes will be posted on Blackboard after each class. You will be submitting your work on Blackboard and will be able to check your grades there. If you have never used Blackboard before, note that you are automatically given an account. To get started, go to the Support Page . You should find the Getting Started page for Students especially helpful. Note that I do sometimes send information to your email address listed on Blackboard. If you should change email addresses, please update it on Blackboard (the FAQ tells you how). Text:
For those who want a text, the text the other sections are using (Sommerville, Software Engineering, Addison-Wesley, ISBN 0-201-39815-X.), one of the standard software engineering books. It's a "recommended" text, and the website for it has a nice collection of slides. I will cover the slides from chapter 8 for the topic of prototyping, and you may want to consult the slides on other topics as well. You can find all of Sommerville's slides in both Powerpoint and PDF format. Some of the lecture notes were developed from the texts by Roger Pressman and Eric Braude, for which you can find citations at the end of the syllabus. Pressman's is a more thorough text intended for professionals, while Braude is more directed towards students. Goals: (Much of the material from here until Calculating your grade is taken from the syllabus developed by Prof. Stephen Cooper of St. Joseph's University)
Project: During the beginning of the second week of class, you will be assigned to a small team with whom you will work on a project over the semester. There will be much further discussion about the deliverables for this project, as well as helpful hints about working on it. IMPORTANT NOTE OF WARNING: Not all members of a team will necessarily earn the same grade on a deliverable. Do not allow your teammates to do your work for you. There are presently scheduled to be 5 graded deliverables. Here is the breakdown: Segment Percentage Individual logs: A former colleague, Stephen Cooper, includes a nice explanation of why you should keep a log and what it should look like. I've modified it slightly and put it here. I will require a log for the first 4 deliverables. 5% of the grade for each will be based on your log. In particular, you will receive no credit for any deliverable for which you do not turn in a log. Document evaluation
Calculation of your
grade: [grading note: Your exams must average (using the relative weights above) out to a B or better in order to get at least a B in the course.] Final grades will be given according to the following scale: 93-100 A, 90-92 A-, 87-89 B+, 83-86 B, 80-82 B-, 77-79 C+, 73-76 C, 70-72 C-,67-69 D+, 60-66 D, 0-59 F Attendance:
IMPORTANT: attendance is mandatory for the project meeting days. I understand that it is difficult to regularly meet outside of class. Thanks to a suggestion from previous students in the Fall of 2002, I will be provisionally setting aside 4 class periods for group meetings. If you have a really good excuse for these dates (all marked in red in the schedule below), bring proper documentation (ex: signed doctor's note) the next day. Also, note that you still really need to set up meetings outside of class to work properly as a group. Academic Honesty: This course will follow the University's standard policy on academic dishonesty. In particular, note that regardless of whether you copy work from another student or allow another student to copy your work on an exam, you are both equally guilty and equally penalized. Copying text/files off the internet without properly giving credit is also cheating. Any cheating on an exam results in an F for the course. Cheating twice also results in an automatic F. All instances of cheating will be reported to the Dean's office. Remember that the University may inflict further penalties than listed here under the provisions of the published Academic Dishonesty Policy. Office Hours: My office is in room 433 of the North Science Building. My tentative schedule for office hours is:
Tentative Schedule All days in red are mandatory. Days in green are holidays | |||
Week | Monday | Wednesday | Fridays |
Week 1 | 03/01/2003
Cesar Chavez Day -- no classes |
04/02/2003
Introduction -- the software process, Software Capability Maturity Model Project management notes (in RTF, so you may have to download them to view them) Reading:
Project: form and organize teams of 3-4 by Apr 4, pick a team leader and choose a topic (due Apr 11)
|
04/04/2003
More on the software process and Project management Customer Requirements, use cases Project management notes (in RTF, so you may have to download them to view them) Customer requirements notes (in RTF) Readings:
|
Week 2 | 04/07/2003
Risk management Risk management notes Reading: Definition Principles |
04/09/2003
User interface design/user guide User Interface Design introduction notes Reading:
|
04/11/2003
Project meeting period Software requirements specification assignment (due Apr 18) |
Week 3 | 04/14/2003
Prototyping Reading: Sommerville, ch. 8 slides |
04/16/2003
Programming: coding standards, style, metrics, documentation |
04/18/2003
Testing Reading: Eric Raymond's "The Cathedral and the Bazaar" The whole article is enjoyable and informative, but at least read the first 5 sections, then "Necessary Preconditions", "Management and the Maginot Line", and the Epilog Project:Software Requirements specification + logs due |
Week 4 | 04/21/2003
Developer requirements, data design, entity-relationship model Reading: Informix E-R model tutorial |
04/23/2003 Software Architecture I, Model-View-Controller architectural pattern Reading: Steve Burbeck's original article on the Model-View-Controller architecture |
04/25/2003
Project meeting period Project:Evaluation of Software Requirements Specification due |
Week 5 | 04/28/2003
Software Architecture II, software layers |
04/30/2003
Object-oriented analysis, UML class diagrams Reading: James Martin on UML class diagrams in C++ Report Holub's example (read the rest) |
05/02/2003
Object-behavior model, UML state transition diagrams Reading: James Martin on UML finite state machine diagrams in C++ Report Project:Tutorial + test plan + logs due |
Week 6 | 05/05/2003
Data flow diagrams Reading: Data flow diagram article |
05/07/2003
Midterm |
05/09/2003
Project meeting period Project: Evaluation of tutorial + test plan due |
Week 7 | 05/12/2003
Introduction to design, UML sequence diagrams Reading James Martin on UML sequence diagrams in C++ Report |
05/14/2003
Reading: James Martin on UML collaboration diagrams in C++ Report |
05/16/2003
Inheritance of interface Project: Software design specification + logs due |
Week 8 | 05/19/2003
UML example Reading: Example from Martin and Newkirk Last day to withdraw |
05/21/2003 Introduction to design patterns |
05/23/2003
Project meeting period Project: evaluation of SDS due |
Week 9 | 05/26/2003
Law, ethics -- Data Mining and Total Information Awareness Readings: Carlton Vogt of InfoWorld Heather MacDonald of The Weekly Standard A paper by 2 computer scientists TIA home page |
05/28/2003
Maintenance |
05/30/2003
Reviewing/revising the software process |
Week 10 | 06/02/2003 Group presentations |
06/04/2003 Group presentations, continued |
06/06/2003 Group presentations, continued Project: prototype code, test reports + logs due |
Week 11 | 06/09/2003 Final exam, 2 PM-3:50 PM |
||
This webpage's layout is originally from Bill Parkinson, who used to teach in the evening program at St. Joseph's University. Much of the content is lifted from Steve Cooper's version of this course -- in particular, the project documents were designed by him, though parts are adapted from elsewhere. |
This is a fairly standard text, covers the material quite thoroughly, and has pointers to a lot of web-based resources. The main project example is a household security control center. This is a useful problem in that there are hardware and external considerations (the system is intended to be connected to a phone system that can automatically dialup the police, for example), but the application may seem a bit remote for students who are trying to get the hang of problems that only deal with software.
This book does not provide as thorough a coverage as Pressman (ex: nothing on risk analysis), but it has the advantage that it is written for students taking a course. It has a lot of good project-related advice, though the advice is only useful when applied, of course. The text also takes the approach that just as software process phases (see the 1st lecture :)) usually need to be repeated, the topics should be discussed again after all topics are covered once. The main project example is a small dungeon game, which is probably closer to what you might be working on in this course and CS 4311 and maybe CS 4320.