CS 5704 Software Engineering -- Spring 2004

Virginia Tech - Computer Science Department

Prof. Frakes

Please send questions regarding this course to: Distance Learning Instructors:

Ernesto Guerrieri
Divyang Shah
Lecture Time: Friday 6:00 (via Centra)
If you having problems with Centra, please contact
    email:   support@iddl.vt.edu or call ( 540) 231-6079

This web page may change throughout the semester - please check it regularly

Course Description: This course covers methods and tools for building high quality industrial software on time and at minimal cost. It covers each phase of the software lifecycle--concept formation, requirements, design, coding, testing, and maintenance. The Unix system and C/C++ languages will be used as the software engineering environment for the course.

Texts

[FFN] Frakes, Fox, Nejmeh, Software Engineering in the Unix/C Environment, (Online Text)
Table of Contents
Index
Templates for lifecycle documents

[Gus]Schaum's Outline of Theory and Problems of Software Engineering by David Gustafson McGraw-Hill Trade; 1st edition (June 24, 2002)  ISBN: 0071377948

[OL] Programming With GNU Software by Andy Oram, Mike Loukides  O'Reilly & Associates;  (1996)  ISBN: 1565921127

Projects

Description will be given later

Grading 3 Projects @ 15 points each. Final 55 points, Total = 100

The final exam will be closed book and you will need to come to one of the testing sites to take it. The testing sites will be the NVGC, and at Blacksburg and Richmond if needed. If you are more than 100 miles from any of these sites, please send email to Tom Sheehan, director of the MIT program giving him your physical location, course number, and a proposed proctor for your exam. The proctor wil typically be a work supervisor, a previous instrictor, or in the case of the military a base education officer.

All coursework is governed by the Virginia Tech honors code

Announcements:

Course Evaluation Form

Topic Reading Viewgraphs Links
1. Introduction FFN1

Gus1

OL 1,2

Introduction
Free Software
Software Engineering Archives

Software Engineering Journals

Gnu - Gnu's not Unix

Linux

2. Concept Formation
Concept Formation - viewgraphs in introduction set above  
3. Requirements FFN2

Gus8

Requirements  
4. Design FFN3


Gus2,9,11

Design
Design2
Object Oriented Programming Concepts

O-O debate

Antipatterns Link

COTS Design Example

Introduction to use cases

5. Programming in the small FFN4

FFN5


OL4

Coding1 C#, C++, Java comparison

Notes on Programming in C

C for Java programmers

6. Programming in the large OL7
FFN6

FFN7 
Gus14

Coding2 Grasp project

Perlisisms

7. Maintenance FFN9 

OL8

Maintenance Linux Version Control & Configuration Management Tools

Subversion Configuration Management Tool

8. Metrics Gus 5,12

OL9

Metrics metrics tools
9. Project Management Gus3, 4, 6

Project Management xplan project management tool  
10. Testing FFN8

OL6

Gus7, 10, 13

Testing Junit
11. Reuse OL5 Reuse ReNews
12. SE Experimentation     SE Experimentation  
13. Software Economics     Software Economics Software Economics: A Roadmap - Boehm and Sullivan

Value based software reuse investment, J. Favaro et. al

14. Future of SE FFN10    Software Engineering Future  
Final Exam   May 7