CSC 550 - Software Engineering
TR 5:00-6:15pm, Congdon Hall 1012
Spring 2023 - 3 credits


Instructor:

Dr. Ron Vetter, Email: vetterr@uncw.edu, Cell Phone: (910) 538-3523, Office Hours: (Congdon Hall, Room 2033): TR 10:00am-11:00am and by appointment.


Text and Supplemental Material:

·         Text: Engineering Software Products: An Introduction to Modern Software Engineering, by Ian Sommerville, Pearson, 2020.

·         Link to author online resources is here.

·         Selected Readings: The text will be supplemented by research articles from software engineering related journals and conference proceedings.

·         IEEE Computer Society Software Magazine's Software Engineering Radio

·         CMU Software Engineering Institute's: Podcasts


Course Objectives:

·         Comprehension: The student should understand: (1) the software engineering process; (2) the activities and aspects of the process; (3) the issues (software crisis) that are motivating the growth and evolution of the software engineering discipline; (4) the differences between academic or personal programming and software engineering; (5) a reasonable set of principles, models, representations, methods, and tools; (6) the role of analysis and evaluation in software engineering.

·         Application: The student should be able to: (1) apply fundamental principles in the performance of the various activities; (2) apply appropriate formal methods to achieve results; (3) use appropriate tools covering all activities of the software process; (4) execute a plan (e.g., test plan), apply documentation standards in the production of software engineering documents.

·         Analysis: The student should be able to: (1) participate in technical reviews and inspections of various software work products, including documents, plans, designs, and code; (2) analyze the needs of customers.

·         Synthesis: The student should be able to: (1) perform the activities leading to various software products, including requirements specifications, designs, code, and documentation; (2) develop plans (project plan, quality assurance plans, test plans etc.); (3) design data for and structures of software tests; (4) prepare oral presentations, and plan and lead software technical reviews and inspections.

·         Evaluation: The student should be able to: (1) evaluate software products for conformance to standards; (2) use appropriate qualitative and quantitative measures in evaluate software products; (3) perform verification and validation of software.


Course Description:

An introduction to software life cycle models; size estimation; cost and schedule estimation; project management; risk management; formal technical reviews; analysis, design, coding, and testing methods; configuration management and change control; and software reliability estimation. Emphasis on large development projects. Individual project following good software engineering practices required during the semester.

 


Grading:

1.     Homework Assignments - 20%

2.     Two Exams - 40%

3.     Final Course Project - 40%

Note 1: Material for the exams will be drawn from lectures, readings, and assignments.
Note 2: Pluses/minuses are awarded at the discretion of the instructor.


Homework:

Homework assignments will be given normally a week ahead of their due dates.


Course Project:

This course will entail completing a 15-week, group-oriented software engineering project. Each team will consist of four to five students. System deliverables, documentation, and team participation count toward the grade.


Course Attendance:

You are expected to attend all lectures. Absence does not relieve you from meeting all course requirements. You are responsible for all reading, assignments, and exams. Keep up with the day-to-day reading requirements of the class.

All students are expected to attend and participate in person at an assigned day/time – determined by instructor within assigned class schedule. Some course content may be delivered online asynchronously. See Course Schedule below.


Health and Safety Considerations:

Students who experience COVID-19 symptoms should immediately contact the Abrons Student Health Center at (910) 962-3280.


Students with Special Needs:

Students with diagnosed disabilities should contact the Disability Resource Center. If you require accommodation for test-taking, please make sure you have registered with the Disability Resource Center no fewer than three days before the test.


Code of Academic Responsibility and Conduct:

Students are responsible for submitting their own work. Students who cooperate on oral or written examinations or work without authorization share the responsibility for violation of academic principles, and the students are subject to disciplinary action even when one of the students is not enrolled in the course where the violation occurred.

 

Copyright Notice:

Any dissemination of class notes, lecture slides, recordings, handouts, copies of exams, or any other course materials without permission of the instructor is prohibited by UNCW policy.  UNCW Copyright Use and Ownership Policy http://www.uncw.edu/policies/documents/01210.copyrightpolicy.pdf) specifies that class notes and related materials are considered derivative of original intellectual property of the course instructor. Therefore, the instructor (not the student) owns the copyright and must provide specific permission to distribute and/or reuse those materials for anything other than personal use and scholarship by the student. Commercial use, display, or dissemination of such notes, copies, or recordings—as well as posting to websites--will generally constitute an infringement of copyright and the Honor Code.  Materials that qualify as student-owned are listed in the policy.


Course Schedule:

·         Week 1: Software Products – Chapter 1 (.pptx).  Watch: The History of Software Engineering, Grady Booch, ACM Learning Webinar, April 25, 2018.

·         Week 2: Agile Software Engineering – Chapter 2 (.pptx). Readings: The End of Programming, CACM, Vol. 66, No. 1, January 2023, pp. 34-25.  See also, GitHub CoPilot Project.

·         Week 3: Features, Scenarios, and Stories – Chapter 3 (.pptx).  Readings: Managing IT Professional Turnover, CACM, Vol. 64, No. 9, September 2021, pp. 72-77.  Deliverable #1 Due, Feb 7th.

·         Week 4: Software Architecture – Chapter 4 (.pptx). Readings: Static Analysis at GitHub, CACM, Vol. 65, No. 2, February 2022, pp. 44-51.

·         Week 5: Cloud-based Software – Chapter 5 (.pptx).  Readings: The Software Industry is Still the Problem, CACM, Vol. 65, No. 6, June 2022, pp. 42-43.  Deliverable #2 Due, Feb 21st.

Exam #1 – Thursday, February 23, 2023

·         Week 6: Microservices Architecture – Chapter 6 (.pptx). Readings: The SPACE of Developer Productivity, CACM, Vol. 64, No. 6, June 2021, pp. 46-53.

·         Week 7: Security and Privacy – Chapter 7 (.pptx).  Readings: The Four Horsemen of an Ailing Software Project, CACM, Vol. 65, No. 12, December 2022, pp. 22-23. 

·         Week 8: Reliable Programming – Chapter 8 (.pptx).  Readings: The Time I stole $10,000 from Bell Labs, CACM, Vol. 64, No. 2, February 2021, pp. 44-46.

·         Week 9: Spring Break – March 5-11, 2023

·         Week 10: Testing – Chapter 9 (.pptx). Readings: Software Engineering A Profession in Waiting, Computer, May 2021, pp. 62-64. Deliverable #3 Due, March 16th.  

Ψ  The Complete Guide for Writing a Software Test Plan

Ψ  What is Software Testing and Why is it so Important? (video)

Ψ  What is a Test Plan (video)

·         Week 11: DevOps and Code Management – Chapter 10 (.pptx). Readings: Not Teaching Software Engineering Standards to Future Software Engineers — Malpractice?, Computer, May 2021, pp. 81-88.

March 28 – Business Week – No Class!

March 30 – Work on Group Projects!

·         Week 12: Prepare for Group Presentations

Exam #2 – Tuesday, April 4, 2023

Deliverable #4 Due, April 4, 2023

·         Week 13: Easter Holiday - Thursday, April 6, 2023

·         Week 14: Project Presentations:

Ψ  Prepare for presentations – April 11th – No Class

Ψ  WITX Event – April 13th – No Class; register and attend WITX

·         Week 15: Project Presentations:

Ψ  Team Honeybadger – 3D Model Companion (April 18, 2023)

Ψ MHA Prototype Project with PowerBI (April 20, 2023)

·         Week 16: Project Presentations:

Ψ  CheckMate: To Do List Project (April 25, 2023)

Ψ  Multiplayer Video Game (April 25, 2023)

Ψ  See Shell Project (April 27, 2023)

 


FINAL PROJECT REPORTS DUE: Thursday, May 4th @ 7:00pm.


Last Updated: April 25, 2023