Welcome to Software Engineering!
CS 4310 Spring 2003 Home Page
CS 4310 Spring 2003 - Software Engineering - 4 Credits 

Instructor: David Yang (Science South 433, dyang@csuhayward.edu)
Time: Tuesdays, Thursdays 4:00-5:50 PM
Location: Science South 105 

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:
Various web pages and web sites. The most important of these are as follows:


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)

  • to develop an understanding of the concepts and techniques of software engineering
  • to gain an understanding of the process and management of a substantial software product
  • to learn to work in a team 
  • to practice software development principles
  • to learn how to effectively present your ideas, in an oral and written context
  • to develop habits and methods appropriate to the discipline and to scholarly inquiry in general
  • to learn how to evaluate the work of others

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
Initial project proposal 0% (but must be approved)
Software Requirements 25%
Tutorial/test plan 25%
Software Design 25%
Implementation 10%
Group Presentation 15%

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
Another important component of the project is your evaluation of the work of others. This part of the work is to be done individually. You are to critically, (but politely) evaluate the work of one other group. You should not spend much time evaluating spelling and grammar -- the content is the focus of our concern. They will get to see your evaluation. It is important that you point out both what you feel the other group has done well and what it has done not-so-well, and why. The evaluation will be required for every deliverable besides the implementation. 10% of your grade for each of these deliverables will come from your evaluation. And just as you should write politely, you should learn to accept criticism politely.

Calculation of your grade: 
The project will count for 50%.
The midterm will count for 25%.
The comprehensive final exam will count for 25%.

[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:
Remember that standard policy dictates that students who do not attend can be removed in favor of students on the waiting list who do show up.

IMPORTANT: attendance is mandatory for the project meeting days. The penalties are as follows:

  • -5% for the first meeting missed (modifies your grade for the next deliverable)
  • -15% for the next deliverable
  • Zero for the project if you miss more than 2 inclass meeting periods.
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 parts of 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: 

  • Tuesday, Thursday 1:30 PM - 3:30 PM 


I will also be available at other times by appointment. 

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:
    The Software Engineering Institute at Carnegie-Mellon Univ. Read this intro
    Summary of the Capability Maturity Model for software
    Standish Group's top 6 reasons for software project failure


    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) 
    Turn in your "type" via Blackboard -- take a brief Briggs-Meyers test and share it with your teammates

    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:
    13 arguments against user requirements analysis and responses
    Alan Holub's simple case study (Read up to "Submit a mockup to a real user")

    Project
    1. Suggestions regarding topics
    2. Grading guidelines
    3. Randy Pausch's advice on teamwork in a class
    4. Software Requirements Specification assignment (due July 10, 4pm, via digital drop box)
    Note that individual logs will be due at the same time

    Week 2 7/1/2003 
    Risk management
    Risk management notes

    Reading: Definition Principles


    User interface design/user guide
    User Interface Design introduction notes

    Reading:
    Deborah Mayhew on usability
    Alternate article on usability (Mayhew article has become unreachable)

    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:
    SEI article on test plans
    Adapted version of IEEE Standard 829 (Applied Computer Technology) (IEEE standards homepage requires subscription)
    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:
    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. 

    References for other texts used in preparing notes: