CS 3704: Intermediate Software Design and Engineering |
Spring 2016 |
Instructor: | |
Instructor office hours: | After class, or by email appointment |
Teaching Assistant (TA): | Mohammed Seyam [seyam@vt.edu] |
TA office hours: | By email appointment |
Lectures: | Monday and Wednesday, 2:30-3:45PM, 350 Lavery Hall (WLH) |
Software engineering is concerned with developing and maintaining software systems that behave reliably and efficiently, and satisfy all requirements that customers have defined for them. In this course, we will first introduce software process and then go over every phase in the process: requirements analysis, software design, implementation, testing, and maintenance. Finally, we will briefly introduce some advanced concepts in software engineering.
We will learn-by-doing to strengthen our understanding of materials covered in lectures. Class attendance and participation are highly encouraged to improve critical thinking and communication skills of students. Students will do a group project (4 people per group) following all the stages of the software development lifecycle. Students will: document software requirements, design software, implement code, and test the functionality of a software project.
Prerequisites
CS 3114 (Minimum grade of C).
The textbook for the course concentrates on the tasks of specification, requirements and object-oriented design. The supplemental texts listed here are NOT REQUIRED for the course, but contain a broader set of materials about software engineering. Hard or electronic copies of these books are available at VT library. Class lectures and the books will provide the material to use as you build your projects. Some of the material will be in your textbook; some will not. Additional materials will be available online.
Distribution of points:
Attendance | 10 % |
Midterm (in class) | 20 % |
Group Project | 50 % |
Final Exam | 20 % |
Grading scale:
A | 93% or higher |
A- | 90% or higher |
B+ | 87% or higher |
B | 83% or higher |
B- | 80% or higher |
C+ | 77% or higher |
C | 73% or higher |
C- | 70% or higher |
D+ | 67% or higher |
D | 63% or higher |
D- | 60% or higher |
F | 0% or higher |
Assignments will be turned in electronically through Canvas. Unexcused late assignments are penalized 25% per 24-hour period.
Lecture notes will be posted in Canvas after lectures. Reference materials for the lecture, either from the textbooks or relevant articles, are listed in the Textbook section (see above).
Week | Date | Topic | Reference Materials | Meeting Type | Assignment |
1 | Jan 18 | Martin Luther King Holiday. No class. | |||
Jan 20 | Introduction to Software Engineering | PRE Ch 1, 2 Fred Brooks, "No Silver Bullet - essence and accident in Software Engineering" | Lecture | ||
2 | Jan 25 | Group projects | Lecture | ||
Jan 27 | Project management | PRE Ch 6 | Lecture | ||
3 | Feb 1 | Project management | PRE Ch 6 | Lecture | |
Feb 3 | Requirements | LAR Ch 2, 5, 6, 9 | Lecture Submission by 8pm | ||
4 | Feb 8 | Requirements | LAR Ch 2, 5, 6, 9 | Lecture | |
Feb 10 | Requirements | LAR Ch 2, 5, 6, 9 | Lecture | ||
5 | Feb 15 | Class canceled due to snow storm. | |||
Feb 17 | Software Process | PRE Ch 3, 4 SOM Ch 4 | Lecture Submission by 8pm | Assignment 1 - Requirements | |
6 | Feb 22 | Professor on travel. Class canceled. | Submission by 8pm | Assignment 1 - Requirements | |
Feb 24 | Software Process | PRE Ch 3, 4 SOM Ch 4 | Lecture | ||
7 | Feb 29 | High-level Design | PRE Ch 10, 12 SOM Ch 11 | Lecture | |
March 2 | Midterm | Evaluation | Midterm | ||
8 | March 7 | Spring Break. No class. | |||
March 9 | Spring Break. No class. | ||||
9 | March 14 | High-level Design | PRE Ch 10, 12 SOM Ch 11 | Lecture | |
March 16 | Detailed Design | LAR Ch 14, 15, 17, 19 | Lecture | ||
10 | March 21 | Detailed Design | LAR Ch 16 | Lecture | |
March 23 | Detailed Design | Beginning Database Design Solutions Ch 1, 9 | Lecture | ||
11 | March 28 | Detailed Design | Beginning Database Design Solutions Ch 1, 9 | Lecture Submission by 8pm | Assignment 1 - Use Cases part (2nd chance, optional) Assignment 2 - High-level Design |
March 30 | Detailed Design | PRE Ch 15 | Lecture | ||
12 | April 4 | Guest lecture: Software Engineering research by Dr. Na Meng | Lecture | ||
April 6 | Detailed Design | LAR Ch 26 | Lecture Submission by 8pm | Assignment 3 - Detailed Design | |
13 | April 11 | Testing | PRE Ch 22 | Lecture | |
April 13 | Testing | PRE Ch 22 | Lecture | ||
14 | April 18 | Testing | PRE Ch 23 | Lecture | |
April 20 | Testing | PRE Ch 24 | Lecture | ||
15 | April 25 | Refactoring | Refactoring: Improving the Design of Existing Code | Lecture Submission by 8pm | Assignment 4 - Implementation Assignment 5 - Tests |
April 27 | Assignment 6 - Project Presentations | Presentation | |||
16 | May 2 | Assignment 6 - Project Presentations | Presentation | ||
May 4 | Assignment 6 - Project Presentations | Presentation | |||
Exams week | May 9 | Exam in class (350 Lavery Hall) 2:05pm-4:05pm | Evaluation | Final Exam |
Virginia Tech Honor Code applies. The work you turn in must be your own. Consequences of cheating in this class: a letter in your academic file, and the course grade is lowered, most likely to F. Material that is copied from books or Web pages needs to be quoted and the source must be given. If you plagiarize, you run the severe risk of failing the class, in a most disgraceful manner.
Accommodations: If you need special accommodations because of a disability, please contact the instructor during the first week of classes.