| |||
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 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. The penalties are as follows:
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 | Tuesday | Thursday | |
Week 1 | 06/24/2003
Introduction -- the software process, Software Capability Maturity Model Reading:
Introduction notes (in RTF, so you may have to download them to view them) Project: form and organize teams of 3-4 by Thursday, pick a team leader and choose a topic (due next Thursday)
|
06/26/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:
Project
|
|
Week 2 | 7/1/2003
Risk management Risk management notes Reading: Definition Principles User interface design/user guide User Interface Design introduction notes Reading:
|
7/3/2003
Finish user interface/guide material 2nd half of class: project meeting period |
|
Week 3 | 7/8/2003
Prototyping Programming: coding standards, style, metrics, documentation Reading: Sommerville, ch. 8 slides End of Add/Drop period |
7/10/2003
Testing Reading:
Project: SRS due via drop box, 4pm, sharp-- make sure to include answers to the quiz and to send a copy to your reviewers |
|
Week 4 | 7/15/2003
Developer requirements, data design, entity-relationship model Reading: Informix E-R model tutorial Software Architecture I, Model-View-Controller architectural pattern Reading: Steve Burbeck's original article on the Model-View-Controller architecture |
7/17/2003
Finish MVC 2nd half of class for group meeting Project: Review of SRS due via drop box-- make sure to include answers to the quiz and to send a copy of the review to the team you are reviewing |
|
Week 5 | 7/22/2003
Software Architecture II, software layers Object-oriented analysis, UML class diagrams Reading: James Martin on UML class diagrams in C++ Report Holub's example (read the rest) |
7/24/2003
Object-behavior model, UML state transition diagrams Reading: James Martin on UML finite state machine diagrams in C++ Report Project: Test plan + tutorial due at 4pm sharp via digital drop box |
|
Week 6 | 7/29/2003
Data flow diagrams 2nd half -- review Reading: Data flow diagram article |
7/31/2003
midterm Project: Review of tutorial+test plan due by Friday, 4pm, via drop box-- make sure to send a copy of the review to the team you are reviewing |
|
Week 7 | 8/5/2003
Introduction to design, UML sequence diagrams 2nd half -- project group meeting Reading James Martin on UML sequence diagrams in C++ Report |
8/7/2003
Collaboration diagrams Inheritance of interface (start) Reading: James Martin on UML collaboration diagrams in C++ Report Last day to withdraw without approval is Monday, Aug. 11 Project SDS deadline extended to next Tuesday |
|
Week 8 | 8/12/2003
Inheritance of interface (continued) UML example Reading: Example from Martin and Newkirk Project: Software Design Specification due at 4pm sharp via digital drop box |
8/14/2003
Introduction to design patterns 2nd half -- project group meeting Project: Review of SDS due via drop box-- make sure to send a copy of the review to the team you are reviewing |
|
Week 9 | 8/19/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 |
8/21/2003
Maintenance Reviewing/revising the software process |
|
Week 10 | 8/26/2003
Presentations |
8/28/2003
Presentations Project: Code due, 4pm, via drop box |
|
Week 11 | 09/04/2003
Final exam, 4 PM-5: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 have been adapted from his assignments, 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.