Prerequisite: CS 510. Study of the software lifecycle including requirements analysis, specification, design, coding, testing, and maintenance. Includes proofs of correctness and techniques of formal specification.
Textbook and other things you will need
- Software Engineering by Ian Sommerville, 10th edition.
Pearson, 2015, ISBN 0133943038
- In-class handouts
- Textbook supplements available at http://iansommerville.com/software-engineering-book/
- Instructor's web site available at http://www.cs.ccsu.edu/~stan/ and other web sites recommended by the instructor
- Course project document
Course learning outcomes
Upon a successful completion of this course, the students will be able to:
- CLO-1: Analyze a complex software problem and to apply modern software engineering techniques to identify solutions;
- CLO-2: Design, implement, and evaluate a software solution to meet a given set of functional, non-functional, and domain requirements;
- CLO-3: Communicate technical information orally and in writing;
- CLO-4: Understand and follow professional, ethical, and social responsibilities of a software engineering professional;
- CLO-5: Function effectively as a member or leader of a software development team;
- CLO-6: Apply fundamental and advanced software engineering principles to produce software solutions.
Important: self-care and safety
Please take care of yourselves and your loved ones. Your physical and mental well-being is the most important thing. It has always been (or should have been) so, even before the current pandemic. Please email/message me to check in if I won’t see you or hear from you on a day we have class or an assignment is due.
Reference: S - Sommerville, Software Engineering, 10th edition
Modality: OL - online, IC - in class
Week 1 (August 29 - September 2): Introduction
- Introduction (IC)
Project: course project kick-off (IC)
- Project: Project team info sheet is due Friday EOD (OL)
Week 2 (September 5-9): Inception
- September 5: Labor Day holiday (no classes)
- Project: Product backlog draft is due by Wednesday 1200 (OL)
- Project: Product backlog draft discussion (IC)
Week 3 (September 12-16): Inception
- Topic: Software Reuse (S 15, IC)
Reading: Software Reuse in the Era of Opportunistic Design (OL/IC)
- Project: Updated product backlog is due by Wednesday 1200 (OL)
Week 4 (September 19-23): Sprint 1
- Project: Sprint 1 planning (OL)
- Topic: Component-based Software Engineering (S 16, IC)
Reading: Component Stacks for Enterprise Applications (OL/IC)
Week 5 (September 26-30): Sprint 1
- Project: Sprint 1 weekly scrum (OL)
- Topic: Distributed Software Engineering (S 17, IC)
Reading: Distribution, Data, Deployment: Software Architecture Convergence in Big Data Systems (OL/IC)
Week 6 (October 3-7): Sprint 2
- Project: Sprint 1 review & retrospective (OL)
Project: Sprint 2 planning (OL)
Project: Sprint 1 report is due Wednesday 1200 (OL)
- Topic: Service-oriented Software Engineering (S 18, IC)
Reading: Infrastructure as a Service and Cloud Technologies (OL/IC)
Week 7 (October 10-14): Sprint 2
- Project: Sprint 2 weekly scrum (OL)
- Topic: Systems Engineering (S 19, IC)
Reading: Agile Systems Engineering (OL/IC)
Week 8 (October 17-21): Midterm point
- Project: Sprint 2 review & retrospective (OL)
Project: Sprint 2 report is due Wednesday 1200 (OL)
- Midterm exam
Week 9 (October 24-28): Sprint 3
- Project: Sprint 3 planning (OL)
- Topic: Systems of Systems (S 20, IC)
Reading: Service Orientation and Systems of Systems (OL/IC)
Week 10 (October 31 - November 4): Sprint 3
- Project: Sprint 3 weekly scrum (OL)
- Topic: Real-time Software Engineering (S 21, IC)
Reading: Embedded Software in Crisis (OL/IC)
Week 11 (November 1-5): Sprint 4
- Project: Sprint 3 review & retrospective (OL)
Project: Sprint 4 planning (OL)
Project: Sprint 3 report is due Wednesday 1200 (OL)
- Topic: Project Management (S 22, IC)
Reading: Agile and Software Project Management Antipatterns: Clarifying the Partnership (OL/IC)
Week 12 (November 14-18): Sprint 4
- Project: Sprint 4 weekly scrum (OL)
- Topic: Project Planning (S 23, IC)
Reading: Scaling Agile (OL/IC)
Week 13 (November 21-25): Sprint 5
- Project: Sprint 4 review & retrospective (OL)
Project: Sprint 5 planning (OL)
Project: Sprint 4 report is due Wednesday 1200 (OL)
- November 23-27: Thanksgiving Recess (no classes)
Week 14 (November 28 - December 2): Sprint 5
- Project: Sprint 5 weekly scrum (OL)
- Topic: Quality Management (S 24, IC)
Reading: Can We Really Achieve Software Quality (OL/IC)
Week 15 (December 5-9): Sprint 5
- Project: Sprint 5 review & retrospective (OL)
Project: Sprint 5 report is due Wednesday 1200 (OL)
Project: User manual is due Friday EOD (OL)
- Project: Final demo (IC)
Week of final exams
- Final exam: Wednesday, December 14, 1730-1930
This is a hybrid class, in which approximately one half of coursework will take place online. Online elements include:
- Sprint planning will be done using an online management tool, such as Trello, Asana, or GitHub Projects.
- All asynchronous communications need to take place in the Slack workspace that will be created for each team. This will provide a mechanism to verify that each team member is regularly and effectively communicating with the rest of the team.
- Video recordings (screencasts) of each weekly scrum, sprint planning session, and sprint retrospective will need to be posted on Slack.
- One student will be responsible for each reading. Narrated slides will need to be posted on Slack by Monday EOD of the corresponding week. All other students need to post on Slack one open-ended question each by Tuesday EOD of the same week. The student responsible for that week's reading will need to reply to a minimum of three questions by Thursday EOD of that week. Additionally, that student will need to make a 10-minute in-class presentation of the assigned reading.
Midterm and final exams
Each test will focus on the most recent material. However, each test will very likely include some questions aimed at the material covered by the earlier test(s). Make-up tests may only be given if a student can provide a written proof of a serious reason for missing a test (such as illness or accident).
During each discussion session, one students will present the paper from a trade publication identified in the corresponding reading section. All students are expected to actively participate in each discussion session by asking questions and expressing their opinions.
While working on the course project, students will use the knowledge and skills obtained in this course covering many if not all of the course topics. Working in teams, students will design, implement and document a software system.
Course project is described in detail in this document.
All students are expected to demonstrate integrity in the completion of their coursework. Academic integrity means doing one's own work and giving proper credit to the work and ideas of others. It is the responsibility of each student to become familiar with what constitutes academic dishonesty and plagiarism and to avoid all forms of cheating and plagiarism. Students who engage in plagiarism and other forms of academic misconduct will face academic and possibly disciplinary consequences. Academic sanctions can range from a reduced grade for the assignment to a failing grade for the course. From a disciplinary standpoint, an Academic Misconduct Report may be filed and a Faculty Hearing Board may impose sanctions such as probation, suspension or expulsion.
All students are expected to attend class sessions regularly. However, recognizing individual differences, each student is responsible for his/her own attendance and for making-up any missed study or work. Limited assistance will be offered to those with plausible reasons for absences; unexcused absences will result in the student being totally responsible for the make-up process.
Students with disabilities
Please contact me privately to discuss your specific needs if you believe you need course accommodations based on the impact of a disability, medical condition, or if you have emergency medical information to share. I will need a copy of the accommodation letter from Student Disability Services in order to arrange your class accommodations. Contact Student Disability Services if you are not already registered with them. Student Disability Services maintains the confidential documentation of your disability and assists you in coordinating reasonable accommodations with the faculty.
Here's a link to a document containing information about other policies and resources.
Grades and evaluation
Students will be evaluated regularly during the semester and should be aware of their progress continuously during the semester. The final course grade will be reported according to the stated University policy.
The final course grade will be calculated according to the following distribution of points:
Course letter grade will be determined as follows: