CS 530 - Advanced Software Engineering Course Project - Fall 2020
Objective: design and implement a complex software system utilizing the skills acquired in this course
All grades are calculated out of 100 pts maximum
Project phases, deliverables, and due dates
This project must be completed by teams of three or four students using
an agile process model.
Each deliverable must be submitted on or before the indicated
due date. Teams will not be allowed to proceed to a subsequent project
phase without submitting a satisfactory deliverable for the previous
phase.
Each deliverable document must have a title page indicating the
project title, deliverable name, team name and membership, and submission
date.
The following will always be considered when grading your work in this course:
- Presentation: the report is well formatted, easy to read, and easy to navigate;
- Quality of writing: language, grammar, clarity, professionalism;
- Consistency: all required points are addressed in the same order as listed in each section below.
Get to know your team and make decisions about your own rules. Submit a PDF document containing the following:
- Introduce your team: give your team a unique name and provide a group picture of the entire team.
Given that this is a 100% online class, your the group picture should be a screenshot of video conference session (via Zoom/WebEx/whatever) showing the camera feed of each team member.
What are the strengths of your team as a whole? (1 pt)
- Introduce each team member: include a picture and a 100 word biography of each team member.
A biography should be professional as if you were introducing yourself to a prospective employer.
Identify one team member who will serve as the main contact for the instructor (3 pts)
- Hold your first virtual meeting: include a picture showing your camera feeds in a video conferencing software of your choice (1 pt)
- Discuss every aspect of the team agreement in detail and describe all your decisions in the writeup (5 pts)
Your team agreement must include the guidelines for the following
(but feel free to add any other items you believe are important):
- methods of communication (email, phone, messenger, text, ...)
- communication response times (email, phone, messenger, text, ...)
- meeting attendance (when to meet, whether all meetings are mandatory, ...)
- running meetings (when, where, face-to-face vs. online, who takes minutes/notes, ...)
- meeting preparation (whether preparation is needed, what to prepare, ...)
- version control (what to/not to commit, content of log messages, ...)
- division of work (how to divide work, who will decide who does what, ...)
- submitting assignments (when to submit, who will submit, who will review the submission, ...)
- contingency planning (what if a team member drops out, what if a team member consistently misses
meetings, what if a team member is academically dishonest, ...)
- Each team member needs to create GitHub account. Include each member's GitHub account name in the writeup (0 pts)
Submit a detailed prioritized product backlog document (PDF, no page limit) as described below:
- Begin with a narrative to give a general overview of the system's functional requirements (2 pts)
- Break down your
product backlog
into logical sections. Organize your user stories
as a numbered list within each section (2 pts)
- Each user story must be written using the following format: (2 pts)
As a user role, I want goal so that reason:
- The user role represents an actor or a developer who benefits from this story;
- The goal of the story is a feature or function in the system, a tool, or a part of a production pipeline;
- The reason describes the benefit to the customer or user when this feature or function is used.
- Provide a separate list of any relevant nonfunctional requirements written as user stories (2 pt)
- Include a glossary that defines all relevant terms that may have
a special meaning in the context of the system (2 pts)
At the end of each sprint, submit a report (PDF, no page limit) containing the following:
- Attach the updated sprint backlog (1 pt)
- What functionality does the system have at the end of this sprint? (1 pts)
- Did you end up making any changes to any of the user stories? Did you break down any of the user stories? Did you identify any new user stories during this sprint and, if so, did you add them to the product backlog or decide to implement them right away? Explain (1 pts)
- What are the "lessons learned" at the end of this sprint? What would you do differently next time? Explain (1 pt)
- What was you team velocity at this sprint? How did you calculate it? What was the number of story points that you a) planned for this sprint and b) actually completed during this sprint? How does your team velocity compare with that from the previous sprint (if applicable)? What does it tell you with regard to reaching the project goal on time? Provide a burndown chart illustrating the team's current trajectory along with the ideal trajectory. (1 pts)
All software developed within this project must be successfully
demonstrated in class. Each demonstration must be accompanied by
a brief presentation explaining the nature/specifics of the project.
Submit the user manual document (PDF, 2 pages minimum not including the screenshots) as described below:
- Detail all necessary steps needed to deploy/install your system. Provide all necessary technical specifications (2 pts)
- Explain the main features of the system to a potential user who may not be familiar with it (3 pts)
- Provide a walkthrough for the main scenario of using your system; include screenshots as necessary (3 pts)
- Provide walkthroughs for at least two additional scenarios with additional/alternative functionality; include screenshots as necessary (2 pts)
Grading and teamwork survey
All deliverables will be graded as a result of work of the entire
team. However, individual students may receive different grades
based on the degree and quality of their involvement in the project.
To facilitate the objectivity in grading, each student will be required
to complete one or more confidential survey about the involvement of other
members of his or her team in the project. These surveys will be
strictly confidential. Students who fail to complete this survey
will receive a grade of 0 for the entire course project.