Welcome to Software Engineering!
[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)
Time: Mondays, Wednesdays, Fridays 1:20-2:30 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 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:
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. 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: 

  • Monday noon-1 PM, 2:45 PM-3:45 PM 
  • Wednesday 2:45 PM-3:45 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  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:
    The Software Engineering Institute at Carnegie-Mellon Univ. Read this intro

    Project: form and organize teams of 3-4 by Apr 4, pick a team leader and choose a topic (due Apr 11) 
    Turn in your "type" via Blackboard -- take a brief Briggs-Meyers test and share it with your teammates

    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:
    13 arguments against user requirements analysis and responses
    Alan Holub's simple case study (sections 1, 2.6, 2.7, 3 and 4)

    Project
    Suggestions regarding topics
    Grading guidelines

    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:
    Deborah Mayhew on usability

    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. 

    References for other texts used in preparing notes: