CSCI 5801: Software Engineering

Instructor:

Dr. John R. Sullins

Office hours: MWF MW 1:30 – 3:00, TTh 10:00 – 11:00, or by appointment

Office: 314 Meshel Hall

Phone: 941-1806

Email: john@cis.ysu.edu

Web site: http://cis.ysu.edu/~john/

   Check the web site regularly, as assignments and announcements will be posted here.


Objectives:

                                          

Prerequisite:

CSIS 3701: Advanced Object-Oriented Programming or equivalent. It is assumed that you are familiar with object-oriented programming in Java, and that you can design and implement reasonably large programs involving those concepts. We will be using Java NetBeans as a platform for this project, as it contains useful version control tools.

Textbook:

Software Engineering, Eighth Edition, Ian Sommerville, Addison-Wesley, ISBN 0-321-31379-8
Note: If you already have the seventh edition, that is ok also.

 

Team Organization and Communication:

This project will be centered around a major team software project, which will continue throughout the entire semester. The software teams will consist of 5 to 8 students each.

Details about the project will be given at the “kickoff meeting” in the first couple of  weeks. There will be a number of client meetings during the initial stages on the course, in which “customers” (played by me) will present the problem to be solved and allow you to ask questions.

Class time will be provided (usually all or part of one lecture per week) for team meetings to discuss, plan, and evaluate the current or next stage of the project. I will be available during those meetings to answer questions, as well as to help guide the team decision-making process.

Note that meeting attendance is extremely important! Failure to attend meetings will slow down the entire team, and absences without a verifiable and acceptable excuse will result in losing points in the “Team Meetings” portion of your grade.

 

 

Project Stages:

The project will involve the following major stages:

o       Analysis:
After the basic nature of the project is explained, the team will have time to meet with the “customers” in order to ask detailed questions about the requirements. The result of this will be a set of requirements describing what will be done in order to produce a product satisfactory to the customer. A requirements analysis document will be produced as a result, and the results of the analysis will be presented to the customer(s) for approval.

o       Design:
The team will create a design document for the final system, describing how the project is decomposed into modules and classes, what each module is responsible for, how modules will communicate, how modules will be tested, and who is responsible for each module. This design will also be presented to the “supervisor” (that is, the instructor) for approval. A separate testing plan will also be created as part of this process.

o       Implementation and Testing:
Once the design has been completed and approved, team members will implement and test the individual models of the system, and then the final overall system. Milestones for testing will be established, and regular meetings will be held to re-evaluate design and evaluate progress.

o       Delivery:
The final system will be presented to the “customers” at the end of the semester. This presentation will demonstrate all of the major system features, and act as a tutorial for their use.

General Education Requirements Credit:

This is an Oral Communication Intensive course. Oral communication activities will involve the following:

 

Graduate Students:

Graduate students in swing courses are required to perform additional work. In this course, you will be expected to take a leadership role in one of the groups, coordinating the decision-making process (under my supervision). More details will be provided later in the course.

 

Grading:

Exam 1

15%

Date TBA

Exam 2

15%

Date TBA

Project Analysis

15%

10%

Correctness of specifications based on discussions with customers* (team grade)

5%

Quality of overall analysis document (team grade)

Project Design

15%

15%

Quality of overall design and testing plans (team grade)

Project Delivery

15%

7.5%

Overall correctness of final software (team grade)

7.5%

Individual correctness of specific modules (individual grade)

Team Meetings

15%

10%

Attendance and participation* (individual grade)

5%

Participation as team leader/minute taker* (individual grade)

Presentations

10%

2.5%

Presentation of specification document to customers* (individual grade)

7.5%

Presentation of final implementation to customers* (individual grade)

no final exam                 

*denotes oral communication content

            Last day to withdraw with a "W": Thursday, March 27

The course grade will be based on the required material:

 


Tentative Course Outline:
 

WEEK

TOPICS

TEAM ACTIVITY

TEXT

DELIVERABLE

1/14

Software Engineering process models, goals, and ethics

Formation of development teams

1, 2, 4

 

1/21

Project management, meeting structures

Introduction to project requirements, initial client kickoff meeting

5

 

1/28

Software Requirements

Meetings to develop requirements, followup client meetings

6

Followup questions for client

2/4

Requirement Engineering

Meetings to develop requirements, followup client meetings

7

Further questions for client

2/11

System Modeling

Meetings to formalize requirements

8

 

2/18

Architectural Design                    

Meetings to run through presentation

11

Presentation of proposed specifications

2/25

Object Design

Meetings to finalize requirement analysis document based on customer feedback

12

Requirement Analysis Document

3/3

User Interface Design

Meetings to begin design

16

 

3/10

Spring Break

3/17

Verification and Validation

Meetings to develop design document

22

 

3/24

Software Testing

Meetings to finalize design document and establish milestones

23

Design Document and Test Plan

3/30

Configuration Management

Status meetings to evaluate progress

Individual development and testing of modules

Integration of modules into system at established milestones

Testing of overall system

Final presentation runthroughs

29

 

4/7

Critical Systems

3, 9, 20

 

4/14

Fault-tolerant Systems, Quality Management

24, 27

 

4/21

 

 

 

4/28

 

 

Final Implemented System

5/5

Finals Week

Presentation of final system to customers