CS6704 -- Advanced Topics in Software Engineering
Course Syllabus

Instructor: Dr. Shawn A. Bohner
bohner@nvc.cs.vt.edu
Northern Virginia Center Room 311, Phone: 703-538-8374

Office Hours: Friday’s, 5:00-7:00pm, NVC Room 311

Description
As demand for information technology continues to grow, software is evolving and changing at an unprecedented rate. However, poorly engineered software exposes systems and the organizations they serve to risks ranging from innocent defects injected during maintenance to more sinister information assurance vulnerabilities. This course presents software principles that enable software engineers to develop and maintain software, and to manage software efforts effectively. Students will learn techniques for delivering software products on-time, on-budget, and on specification.

Prerequisites
Graduate or senior standing in the Computer Science, MIT, or MIS program; Ability to read and write English well and to program; Some software development and/or maintenance experience will make course more meaningful.

Course Description
Advanced Topics in Software Engineering: Software Architecture Prior to the mid-1980s, software engineering could be described as programming-in-thesmall” consisting of relatively small and simple programs crafted by individuals or small teams serving a technologically unsophisticated customer-base. Since then, the industry evolved towards software-engineering-in-the-large where large, complex software systems are developed on heterogeneous platforms by process-aware or even mature software organizations that manage portfolios of software products. Software architecture emerged as more than an extension to software design it became the framework for integrating technologies across the enterprise. This practicum-style course examines the theory and practice surrounding software architecture in the context of the enterprises they serve. The participant will learn about software architecture from the design and use perspective, and will be exposed to emergent software architecture principles.

Course Objectives:

Through basic texts and a series of directed readings, students will be exposed to a blend of classic techniques, latest research, and case studies to grasp a thorough understanding of key software architecture principles. As this is an advanced topics course, the students will be expected to participate and present material in class. Upon completing this course, a student will have been exposed to:

Required Textbook: Design and Use of Software Architectures, 1st Edition by Jan Bosch; (May 19, 2000) Addison Wesley; ISBN: 0201674947.

Optional Textbook: Documenting Software Architectures: Views and Beyond, 1st Edition by Paul Clements et al.; (September 26, 2002) Addison Wesley Professional; ISBN: 0201703726.

Other on-line material will be assigned.

Course Section Website: Some course materials are on the web at http://www.learn.vt.edu (Adv Topics S/W Spring-03). Students are responsible for regularly checking your Virginia Tech email and this website.

Homework: Homework is a necessary instrument for tracking progress of the students. When assigned, it will be collected but may not be returned every time. The average student will work approximately 9 hours outside of class each week on this course. Everyone must have access to email, the World Wide Web (WWW), and Microsoft Word or an HTML editor.

Team Project(s): Everyone is expected to be a productive team member. Poor performance can result in a student receiving a grade lower on their project than their team's grade. Students may choose to work alone, but the same level of performance is expected of teams and individuals.

Handouts: Normally placed on course website but when not available there, will have paper version available at class meeting.

Honor Code:

Graduate Honor Code at http://fbox.vt.edu/studentinfo/gradhonor/ governs class and performance. Joint study is allowed (even encouraged) on "Study" and "Read" items; however, each student must produce his or her solutions individually. Students must not collaborate on the tests. Please recognize that copyrighted sites/pages/contents on the Internet cannot be saved or printed without explicit permission.

Examinations: Mid-Term, Final, occasional quiz.

Grading: Homework/Projects/Reports (50%), Mid-term (25%), Final (25%).