Lectures: | Tuesday and Thursday, 2:00pm – 3:15pm, WLH 340 |
Instructor: | Francisco Servant [fservant@vt.edu] |
Instructor Office hours: | After class, or by email appointment |
Teaching Assistants: | Joy Zhang [jjzhng@vt.edu], Nick Gill [nsgill1@vt.edu], Deepika Mulchandani [deepikak@vt.edu], Mohammad Shabbir Hasan [shabbir5@vt.edu] |
Teaching Assistant Office hours: | McBryde Hall 106, 110. Mon 11am – 1pm (Joy), Wed 12am – 2pm (Joy), Thurs 5pm – 7pm (Nick), Fri 11am – 1pm (Nick) |
Description
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 (5 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).
Textbook
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.
- Craig Larman, Applying UML and Patterns: An Introduction to Object-oriented Analysis and Design, Edition 3, Prentice Hall, 2005. (LAR)
- Roger S. Pressman, Software Engineering: A Practitioner’s Approach, McGraw Hill, 2005. SUPPLEMENTAL (PRE)
- Ian Sommerville, Software Engineering, Addison Wesley, 2007. SUPPLEMENTAL. (SOM)
- Rod Stephens, Beginning Database Design Solutions, Wrox, 2008. (STE)
- Eric Freeman, Elisabeth Robson, Kathy Sierra, and Bert Bates, Head First Design Patterns. SUPPLEMENTAL.
Grading and Evaluation
Distribution of points:
Midterm | 20% |
Final Exam | 30% |
Group Project | 50% |
Submission guidelines:
Assignments must be submitted as follows:
- through Canvas. Use the folder for the corresponding assignment.
- by 23:59pm Eastern time on the due date
Late submission policy:
Unexcused late assignments will be penalized 1% per 1-hour period.
Grading scale:
≥ 93% → A | ≥ 83% → B | ≥ 73% → C | ≥ 63% → D | |||
≥ 90% → A- | ≥ 80% → B- | ≥ 70% → C- | ≥ 60% → D- | |||
≥ 87% → B+ | ≥ 77% → C+ | ≥ 67% → D+ | ≥ 0% → F |
Schedule (tentative)
Week | Date | Topic | Reference Materials | Assignment |
---|---|---|---|---|
1 | 01/22 | Introduction to Software Engineering | * Standish Group Report 1995 * Fred Brooks, “No Silver Bullet” * They write the right stuff |
|
01/24 | Introduction to Software Engineering | |||
2 | 01/29 | Project Management | PRE Ch 6 | |
01/31 | Project Management | PRE Ch 6 | Group selections due before class | |
3 | 02/05 | Requirements | LAR Ch 2, 5, 6, 9 | |
02/07 | Requirements | LAR Ch 2, 5, 6, 9 | Assignment 1 - Group contract. Due by 23:59pm on Canvas | |
4 | 02/12 | Requirements | LAR Ch 2, 5, 6, 9 | |
02/14 | Requirements | LAR Ch 2, 5, 6, 9 | ||
5 | 02/19 | Software Process | PRE Ch 3, 4. SOM Ch4 | |
02/21 | Software Process | PRE Ch 3, 4. SOM Ch4 | Assignment 2 - Requirements. Due by 23:59pm on Canvas | |
6 | 02/26 | High-level Design | PRE Ch 10, 12. SOM Ch 11 | |
02/28 | High-level Design | PRE Ch 10, 12. SOM Ch 11 | ||
7 | 03/05 | Midterm review session | ||
03/07 | Midterm | Midterm exam | ||
8 | 03/12 | No class - Spring Break | ||
03/14 | No class - Spring Break | |||
9 | 03/19 | Detailed Design | LAR Ch 14, 15, 17, 19 | |
03/21 | Detailed Design | LAR Ch 16 | Assignment 3 - High-level Design. Due by 23:59pm on Canvas | |
10 | 03/26 | Detailed Design | STE Ch 1, 9 | |
03/28 | Detailed Design | PRE Ch 15 | ||
11 | 04/02 | Detailed Design | LAR Ch 26 | |
04/04 | Testing | PRE Ch 22 | ||
12 | 04/09 | Testing | PRE Ch 23 | |
04/11 | Testing | PRE Ch 24 | Assignment 4 - Detailed Design. Due 04/12 by 23:59pm on Canvas | |
13 | 04/16 | Refactoring | Refactoring: Improving the Design of Existing Code | |
04/18 | Continuous Integration | |||
14 | 04/23 | Final Exam Review Session | ||
04/25 | Project Presentations | Assignment 5 - Implementation and Testing. Due by 23:59pm on Canvas. Presentation Groups: Servant’s Servants, csGoons |
||
15 | 04/30 | Project Presentations | Presentation Groups: Group 3, Software Gurus, Intermed Software Group, Blacksburg Bad Boys | |
05/02 | Project Presentations | Presentation Groups: Temporary, Virginia Tech Lacrosse Team, TryHards | ||
16 | 05/07 | Project Presentations | Presentation Groups: Solvem Problers, SQL Injectors, Macrosoft, Dumpster Fire | |
05/09 | Reading Day. No class. | Assignment 6 - Presentation Slides. Due by 23:59pm on Canvas | ||
Exam | 05/13 | Exam in class 4:25pm – 6:25pm | Final exam |
Policies
Virginia Tech Honor Code:
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, please contact the instructor during the first week of classes.