CSCI 250
Software Engineering

Fall Semester 2008


Welcome to CSCI 250. For this course, we will centralize the distribution of information on this course web page. This page can be found on the Clark web server at http://cs.clarku.edu/~jbreecher/Software_Engineering/


* Basic Information
* Course Description
* Textbook
* Lectures
* Your Evaluation
* Weekly Events
* The Projects

Basic Information

Professor: Professor Jerry Breecher, jbreecher at clarku dot edu

BP 343, (508)793-7396
Meeting Time: Lecture: Monday, Thursday 1:25 p.m. - 2:40 p.m.

Lab: Wednesday, 8:30 - 9:50
Office Hours: Monday, Thursday 9:00 - 11:00

By appointment; 24 hour response by email

Course Description

This is what the catalog says:

250 Software Engineering / Seminar

Students consider the life cycle of large software projects, beginning with the elicitation and definition of users' requirements, and continuing through software design, documentation, coding, testing, and maintenance. Topics include: modularity, coupling, cohesion, transformational and transactional structures, and testing strategies. Working in teams, students gain practical experience developing software to solve concrete problems. Prerequisites: CSci 160 and CSci 170. Staff / Offered periodically

Textbook

REQUIRED

Schach, Steven R., Object-Oriented & Classical Software Engineering, Seventh Edition 2007, McGraw Hill ISBN 0073191264.

If you can find the previoius Sixth Edition, that will work fine also.

Bennett, Skelton, Lunn, UML - Schaum's Outlines, 2nd Edition, McGraw-Hill, 2004 ISBN 0077107411

LOOKS GOOD!
Pooley Rob, Wilcox, Applying UML, Elsevier, 2004, ISBN 0 7506 56832

Lectures

In the Table below are pointers to the notes for the course. The formats available can be read by Microsoft Powerpoint (.ppt), or read by Apache (.pdf). Lectures generally will be from these notes. Feel free to print them out and use them during class to avoid extensive notetaking. You can simply annotate these notes rather than writing everything. But warning, don't be lulled into a false sense of security. What's talked about in the class will be in MUCH MORE DETAIL than is present on these slides. In the past students have been tempted into thinking they know what happens in class because of these notes - they were surprised!!

An added advantage of written out notes is that you know what to read in the text. In general, I follow the book fairly closely so you should have no trouble figuring out where to find material to amplify these course notes.

The following Notes are arranged in book order, not necessarily in the order we'll lecture on them.

Chapter Title PowerPoint
Day One Topics For Day One

Project Kickoff

The Scope of Software Engineering
Chapter01-Scope.ppt
Software Life-Cycle Models
Chapter02-Life-Cycle.ppt
The Software Process
Chapter03-Software-Process.ppt Agile_Methods1.ppt

 Agile_Methods2.ppt

Teams Chapter04-Teams.ppt
The Tools of the Trade
Chapter05-Tools.ppt

Metrics.ppt

Testing Chapter06-Testing.ppt
Inspections Chapter06-Inspections.ppt
From Modules To Objects
Chapter07-Modules.ppt
Reusability and Portability
Chapter08-Reuse.ppt
Planning and Estimating

Requirements Chapter10-Requirements.ppt

Reality!!

Extracting Requirements From Text

Classical Analysis
Chapter11-Classical_Analysis.ppt
Object-Oriented Analysis
Chapter12-OO-Analysis.ppt
Design Chapter13-Design.ppt
TestPlans Chapter13-TestPlan.ppt
Implementation Chapter14-Implementation.ppt
Maintenance Chapter15-Maintenance.ppt
UML Chapter16-UML.ppt




LABS: This is a chance for you to practice what will be done in the projects. Attendance is expected in these labs, but the main purpose is that you will see what is to happen in the projects. Small demonstrations will happen every week for your amusement and edification.

PROJECTS: These are programming assignments that you are expected to turn in. There's a schedule for these that's given later in this syllabus.

Your Evaluation

Your evaluation in this course is determined by:

15% Projects - Requirements
15% Projects - Functional Analysis
15% Projects - Design
15% Projects - Implementation

40% 5 Mini-Exams - The lowest of the 5 Mini-Exams will be dropped.


Weekly Events

Here's how the material and deliverables break down for the semester.

Date

Topic

Project Events

Sep 04

Chapter 1: The Scope of Software Engineering
The threads in this course

Sep 08

Chapter 10: Requirements


Sep 11

 

Customer Presentation

Sep 15

Chapter 2: Software Life-Cycle Methods

Requirements

Sep 18

Chapter 2: Software Life-Cycle Methods

Requirements

Sep 22

Chapter 10: MINIEXAM on Chapters 10, 1, 2


Sep 25

Chapter 3:  The Software Process


Sep 29

Chapter 16: UML - Also see Schaum's Outline


Oct 02

Chapter 4: Teams

Analysis

Oct 06

Chapter 11: Classical Analysis


Oct 09

Chapter 11:


Oct 13

FALL BREAK


Oct 16

Chapter 12: Object-Oriented Analysis   MINIEXAM on Chapters 10, 16


Oct 20

Chapter 12::


Oct 23

Chapter 12:

Oct 27

Chapter 13: Design


Oct 30

Chapter 7: From Modules To Objects Design

Nov 03

Chapter 13: MINIEXAM on Chapters 4, 11, 12


Nov 06

Chapter 13:


Nov 10

Chapter 14: Implementation:


Nov 03

Chapter 14:

Implementation

Nov 17

Chapter 14:


Nov 20

Chapter 8: Reuse


Nov 24

  Chapter 8: Reuse   MINIEXAM on Chapters 7, 13


Nov 27

THANKSGIVING

Dec 01

Chapter 5:The Tools of the Trade


Dec 04

Chapter 5:


Dec 08



Dec 09

A CLARK MONDAY


Dec 11

MINIEXAM on Chapters 14, 8, 5



No Final Exam


The Projects

The Project is obviously a major portion of this course. It's described in four separate documents:

1. The Project Description - gives the content of the project. This describes what it is you'll build.

2. The Project Mechanics - this talks about how you will work as groups to get this thing built.

3. What are the products in each phase?    TBD

4. What are the products in each workflow?   TBD

5.  Project Schedule    The Schedule

These are other documents for use in our Software Process:

Form for use in Product Inspection:

Form for use in Team Member Evaluation: