CS 361: Software Engineering I

Fall 2007

 

 

Class meetings: Rogers Hall 230, TR 4:00-5:20

Instructors: Mark Van Patten & Mark Clements

Office: BEXL 100

Email: mark.vanpatten@bus.oregonstate.edu / clementsm@bus.oregonstate.edu

Phone: 737-6009 / 737-9530

Office Hours: M-F 9-5 by appointment or drop-in.

Our offices are in BSG, lower level of Bexell Hall. Please come by at any time. You might want to call or email first to be sure we're there.

Teaching Assistant: Chris Bogart (bogart [at] eecs)

Phone:

Office Hours: 12-2 Tuesday, 2-4 Friday - Batchellor Hall 349

 

Class website: http://classes.engr.oregonstate.edu/eecs/fall2007/cs361/

 

Course Description

This class is (in theory) the first class of the pro-program, and the first of two required Software Engineering classes you will take here. The goal of the class is to give you hands-on introduction to what software engineering is, what software engineering processes are, and how to work effectively on a team. This is not a programming class, and you are not required to do any development work as part of your coursework. That said, you should be very familiar with programming concepts and practices, including Object-Oriented Programming, basic testing and debugging methodologies, and basic code documentation practices. This is a writing intensive class with a major project component.

 

Course Objectives

The purpose of this course is to teach you the basic software engineering methods, focusing especially on the first half of the software engineering lifecycle. After completion of this course you should be able to:

  1. Describe process models of software life cycle and discuss their phases, advantages and disadvantages.
  2. Synthesize requirements for a realistic software system by interacting with a user or user group, and write a requirements specification document
  3. Model system requirements using one or more semi-formal notations such as UML, dataflow diagrams, entity-relationships diagrams, state diagrams.
  4. Design software systems at architectural level, and at lower levels, using one or more techniques such as object-oriented design or structured design. Express designs in design specification documents.
  5. Validate requirements and designs by reviewing specification with user or user group; adjust the specification or design as necessary.
  6. Describe several methods of estimating the cost and developing a schedule for a programming project.
  7. Participate effectively in a team environment.
  8. Produce professional-quality software related documents.

 

Because this is a course in the CS pro-program, we make certain assumptions about you, and your abilities to work independently. I expect you to be responsible and keep up with the reading and complete your assigned work on time. Lectures will not necessarily cover the material assigned in the reading. Given limited lecture-time I will focus class-time on explaining material which is particularly difficult, or which is not well-explained in the book, etc. If something is explained well in the book, I may not spend time on it in class. You are still responsible for said material for exams and your work.

 

 

Textbook

 

Additional Resources

 

 

Course Assignments and Grading

This class is meant to be writing-intensive and hands-on. This means that you will be required to work on group projects and class-work (in addition to doing readings) outside of class time. This class will also be very interactive. Participation will count towards your final grade - healthy discussion in each class session is encouraged and expected.

 

You will form 3-4 -person teams. Written work produced by the teams will indicate which team member wrote each section. Each team member will periodically, and anonymously, evaluate the other team members. The team assignments will receive an overall grade, which will then be distributed according to the teams internal evaluation, adjusted by the instructor. In extreme cases, a team can decide to fire a team member with just cause at week four. To do this, the team members must contact the instructor and make their case for why the team member should be fired.

 

Participation                               15%

Midterm 1                                  15%

Midterm 2                                  15%

Final exam                                  20 %

Project                                        35%

            Requirements     25%

            Design Doc        25%

            Project Plan        20%

            User Manual       20%

            Presentation       10%

 

 

Academic Dishonesty

The rules regarding Academic Dishonesty will be strictly enforced. Note that the penalties are quite severe and that the instructor has no discretion once a case of cheating is detected. Please see the OSU web-page for more details.

 

 

Schedule

 

Tue

Thu

Week 1

9/25 & 9/27

Introduction & The Basics - Problem Solving, Systems, Roles, the Process, the Team, History, the Discipline

Pfleeger & Atlee, Chapter 1

Slide Stack

The Basics Continued... - The Team Revisited, Quality, Professional Responsibility (discussion), Team Activity, Process

Pfleeger & Atlee, Chapters 1 & 2

Slide Stack

Week 2

10/2 & 10/4

Lifecycle/Models Overview, Project Team Selection, Project Overview

P & A, Chapter 2

Slide Stack

Project Management

P & A, Chapter 3

Slide Stack

Week 3

10/9 & 10/11

Class Projects Revisited w/ Project Components & PM (cont.), Brainstorm Projects

P & A, Chapters 3 & 4

Slide Stack

No Class - Field Trip - HTAH

 Special Assignment

Week 4

10/16 & 10/18

Cost Estimation

Review

Slide Stack

Midterm I

 

 

Week 5

10/23 & 10/25

Requirements (1)

P & A, Chapter 4

Slide Stack

Requirements (2)

Library Observation Assignment

P & A, Chapter 4

Week 6

10/30 &11/1

NO CLASS - Library Assignment

 

 

Project Proposal Presentations (10 min)

-General Scope/Functionality

-Stakeholders identified (Benefits for...)

-Process Model w/ Justification

Library Observation Due

Week 7

11/6 &11/8

Risk Management

Discussion: "Waltzing with Bears"

Review

Class Visitor/Lecture

Steve Grow, Vice President - Server Logic

Week 8

11/13 & 11/15

UML & Specifications

http://www.info.ucl.ac.be/Research/Publication/2001/RE01.pdf

Slide Stack

Midterm 2 Review

CASE Tools & Documentation

Goal Oriented Requirements

Week 9

11/20 & 11/22

Open Source Development Guest Lecturer North Krimsly

The Cathedral and the Bazaar

Thanksgiving

Week 10

11/27 & 11/29

Project presentations

Final projects due

Final review session

 

Final exam: TBD.