Skip to content

Latest commit

 

History

History
77 lines (52 loc) · 4.71 KB

capstone-outline.md

File metadata and controls

77 lines (52 loc) · 4.71 KB

Course Information

Taught by: Bill Laboon ([email protected])

Room: A221 Langley

Time: Fridays 1:00 - 1:50 (internship and research), 1:00 - 2:50 (project and project studio)

Professor's Office Hours: A221 Langley

  • Wednesday 1:30-4:30 PM
  • or by appointment.

NOTE: For those of you heading to Project Studio, you will also be meeting with representatives from the company with whom you are working (NetApp or General Dynamics). This may or may not be at the same time as the capstone class!

Attendance during presentations is REQUIRED. If you will miss a class, it must be cleared with me first unless it is an emergency. In the event of an emergency, let me know as soon as possible.

All students will give a presentation and submit an 8-12 page paper on their internship or project, as well as give a 5-10 minute presentation on what they have done. This presentation will be given during a week that there is not a tech talk.

In general, the classes will rotate between tech talks from industry and

Project students will also need to submit other assignment

Project Students

Details on Assignments:

Proposal Paper (Due 23 Sep 2016) - This should include:

  • A brief description of the project you are working on
  • A prioritized listing of user stories to be implemented
  • A broad outline of the design of the software
    • Architecture?
    • Language?
    • Supported systems?
    • Testing?
    • A UML diagram would be nice, but not strictly necessary
    • Note that this subject to change as the semester continues!
  • 5 - 8 pages

Additionally, a "walking skeleton" version of the software should be completed at this point.

Sprint Retrospective Notes:

These are personal updates which will be emailed to me at the end of each sprint (every two weeks). These should answer the following questions:

  1. What is your opinion of the work done by you over the last sprint (pluses, minuses)?
  2. What is your opinion of the work done by your group over the last sprint (pluses, minuses)?
  3. Is there anything you would like to modify going forward?

Final Project Presentation (Due 9 Dec 2016)-

  • A five to ten-minute demo of the software you developed
  • Include features and technical decisions
  • Especially discuss trade-offs made

Final Project Paper

  • An 8 to 12 page paper discussing:
    • Challenges developing the software
    • Features added
    • Prioritization
    • Defects found and fixed
    • Design (modifications from initial design?)
    • Trade-offs made
    • Environment (how did you meet? communicate? discuss? assign work? etc.)

Details on Project Development:

The goal of this course is to develop a project, from start to finish, using modern software engineering tools and techniques. The final project should be well-written, well-tested, and well-documented.

Unless dictated otherwise by the customer, work should be done using git and GitHub or GitLab. Work should be done in a private repository, and I should be added as a collaborator (username is "laboon" on both sites). Please sign up for a student developer pack (which includes free private repositories, along with other free software) here: https://education.github.com/pack

Unless dictated otherwise by the customer, the project will be developed using the Agile/Scrum software design methodology. We will discuss this more in class. One of the key tenets is that there is always some "working" version of the software, even if it does not include all of the features. This means that at any point, you should have a working version of the software to show customers (and professors)!

We will consider each class meeting the end of each sprint. During this time, we will spend some time doing a retrospective in your groups - meeting for twenty minutes or so, in-person, to determine what went well with the last sprint and what could go better. You will also come up with a plan for the next sprint. Professor Laboon will be available at the end of each lecture to discuss the path forward with each group.

Since student schedules are often hard to reconcile, I recommend you use a chat application such as Slack or HipChat to stay in touch with each other, even when you cannot meet in person.

As this is a capstone course, you are expected to be self-motivated and independent. This may mean learning a new language, framework, architecture, etc. Professional software engineers are often expected to learn these things independently, and you should be prepared to do so as well. If you are unfamiliar with where to find training materials or information for a particular subject, you may discuss it with Professor Laboon, but the onus is entirely on you to learn anything additional you need to know to complete the project.