| |||
CS 4310 Fall 2003 Home Page | |||
CS 4310 Fall 2003 -
Software Engineering - 4 Credits
Instructor: David Yang (Science South 433, dyang@csuhayward.edu)
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 which will provide a sample of Sommerville's presentation of material. 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: Cooper wrote up 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 3 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 C- or better in order to get at least a C- 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 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 South 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 | 09/22/2003
Intersession -- no classes |
09/24/2003
Intersession -- no classes |
09/26/2003
Introduction -- the software process, Software Capability Maturity Model Introductory notes (in RTF, so you may have to download them to view them) Reading:
Project
|
Week 2 | 09/29/2003
Customer Requirements, use cases Customer requirements notes (in RTF) 13 arguments against user requirements analysis and responses Alan Holub's simple case study (sections 1, 2.6, 2.7, 3 and 4) |
10/01/2003
Risk management Risk management notes Reading: Intro to risk management (for students, from Arizona State U.) |
10/03/2003
Project meeting period |
Week 3 | 10/06/2003
Project management Programming: coding standards, style, metrics, documentation Project management notes |
10/08/2003
User interface design/user guide User Experience Design (Design section) (from IBM) |
10/10/2003
Prototyping Reading: Sommerville, ch. 8 slides Project:Software Requirements specification + logs due |
Week 4 | 10/13/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 |
10/15/2003
Data design, entity-relationship model Reading: Informix E-R model tutorial |
10/17/2003
Project meeting period Project:Evaluation of Software Requirements Specification due |
Week 5 | 10/20/2003
Software Architecture I, Model-View-Controller architectural pattern Reading: Steve Burbeck's original article on the Model-View-Controller architecture |
10/22/2003
Software Architecture II, software layers Link for information about the ISO Network model and TCP/IP |
10/24/2003
Object-oriented analysis, UML class diagrams Reading: James Martin on UML class diagrams in C++ Report Holub's example (read the rest) |
Week 6 | 10/27/2003
review for midterm Project:Tutorial + test plan + logs due |
10/29/2003
Midterm |
10/31/2003
Project meeting period Project: Evaluation of tutorial + test plan due |
Week 7 | 11/03/2003
Inheritance of interface |
11/05/2003
Introduction to design patterns |
11/07/2003
UML example Reading: Example from Martin and Newkirk (read first 10 pages) |
Week 8 | 11/10/2003
Object-behavior model, UML state transition diagrams Reading: James Martin on UML finite state machine diagrams in C++ Report |
11/12/2003
UML sequence diagrams Reading James Martin on UML sequence diagrams in C++ Report Last day to withdraw |
11/14/2003
Collaboration diagrams Reading: James Martin on UML collaboration diagrams in C++ Report |
Week 9 | 11/17/2003
A non-object-oriented approach: Data flow diagrams Reading: Data flow diagram article |
11/19/2003
Maintenance Project: Software design specification + logs due |
11/21/2003
Project meeting period |
Week 10 | 11/24/2003
Law, ethics -- Data Mining and Terrorist (nee Total) Information Awareness Readings: Carlton Vogt of InfoWorld Heather MacDonald of The Weekly Standard A paper by 2 computer scientists TIA home page |
11/26/2003
Reviewing/revising the software process Project: evaluation of SDS due |
11/28/2003
Thanksgiving |
Week 11 | 12/01/2003
Review for final |
12/03/2003 Group presentations |
12/05/2003
Group presentations, continued Project: prototype code, test reports + logs due |
Week 12 | 12/08/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.