Project Overview

Students in teams of 4-5 will apply the knowledge of software engineering methodology and the skills learnt in this course to develop a course project dudring an academic semester. Although the project deliverables include a working demo, the particular project is not the only goal. Rather, it servers as a vehicle to practice the knowledge and develope the skills. The course project also privode a good experience to work in teams. Teamwork including within-team collaboration and project management plays a critical role in large-scale software development.

In this course, I encourage you to consider a project scenario of facilitating and promoting online social networking activities among students in KU. You can develope a web application or a mobile application that involves interaction and socialization among a group of users. You can connect your application with exiting social networking services with customized information management or enhanced user experiences. You can also pursue your own idea for a project, which should be suitable to apply the software developement methods and require effort equivalent to the recommended project ideas.

Idea Description for Team Projects

  1. Team 1: User-driven Internet Radio
    • This project develops a Web application that enables users to create and manage their own Internet radio stations and podcast programs.
    • Members: David Gier, Kendal Harland, Adam Smith and Ryan Scott

  2. Team 2: BAC SAFE
    • This project develops an Android application to connect groups of people and show individual safety-related information such as blood alcohol content (BAC) and current locations to reduce drunk driving.
    • Members: Shannon Bisges, Josh Collins, Zach Flies, David Menager, and Alec White

  3. Team 3: Social Event Map
    • This project builds a Web application to display a map of geo-located social media posts within a given area.
    • Members: William Carey, Ethan Christian, Eric Groves and Christian Warner

  4. Team 4: My KU Social Dashboard
    • This project develops a Web interface that keeps up to date on current events and daily tasks.
    • Members: Kellie Amott, Cassandra Post, Colby Soden, Gianfranco Villagomez Saldana and Angela Wright

  5. Team 5: Social Nexus
    • This project developes a Web-based social aggregator to provide a unified interface to access all of a user's social media.
    • Members: Gordon Busing, Daniel Collins, Niko Colom, Greg Ervin and Lee Wu

  6. Team 6: Social Network Aggregation Program (SNAP)
    • This projects develops a categorized and integrated website with customizable “snaps” or windows to combine websites of one category for users.
    • Members: Justin Anguiano, Angela Benway, Michelle Perz, and Ian Tait

  7. Team 7: Website for flash games
    • This project develops a website that would let developers upload flash games to it, and anyone could play these flash games.
    • Members: Hayden Carothers, Nick Gilliland, Alex Gustafson, Zane Ralston and Monica Shafii

  8. Team 8: GameFace
    • This projects develops a social networking site to connect fans of the same video games. Gamers with similar favorite game are shown in a live feed. An interactive event coordinator or a game meetup planner will be provided to organize events on and around campus.
    • Members: Kyle Heeney, Christopher Hogan, Austin Werner, and Katherine Wu

  9. Team 9: Web-based Social Aggregator
    • This project develops a Web-based application to connect with multiple existing social media sites and provides user a unified interface to access, post, and mange feeds at multiple sites.
    • Members: Greg Pregulman, Larson Troy, Drew Wallace, Eric Wenski

  10. Team 10: KUVille Game
    • This project is to develope a social media game to allow people to build landmarks/famous buildings on the Map of KU and socialize with friends.
    • Members: Derrick Harms, Jiaxiang Li, Brent Mitchell, Jamie Robinson and Tyler Yoder

Project Deliverables

Proposal

Software engineering proposal is the first document a software developer/team submits to a business customer for acceptance. You need to extend the idea description with a more detailed description about the problem to be solved and the resulting benefits to the customer, an exploration of feasible solution (and/or alternatives), and a work plan, in the form of formal writing.

Proposal Format

  • Project title, team number, team member list, date
  • Proposed project description: a detailed explanation of the proposed project with the below required content
    • Describe the problem: motivation/difficulty/challenge/business initiation/...
    • Define the problem domain: what are the issues in current practice that you would like to address
    • Describe the customer for the proposed project: who will be interestd in the project
    • Describe a high-level solution (with major functions and features) that you want to adopt to address the above diagnosed problem.
    • Discuss business benefits the proposed solution would provide to customer.
    • Provide detailed example/scenarios to decribe how the proposed software will work, how it is better than exisitng practice, and how the expected benefits will be provided.
    • Provide a step-by-step plan for the high-level solution, and give a coarse estimate about the project duration for each step.
    • List the software language, tools, enviroments that will be used in the proposed project.
    • Note: remember to start adding all related references into the report from this point.
  • Team profile:
    • Individual capabilities and strengths (e.g., design, coding, management, presentation, documentation, etc.): this is not to assign sole role/responsibity to each member, but to facilitate understanding of your team
    • Team leader: to organize team meetings and track team activities.
      • Note that all members are equally responsible for all aspects of the project, so please be proactive instead of waiting for assignements from the team leader.
  • An individual breakdown of responsibilities
    • For each report, use a single page to decribe the breakdown of individual contributions. Divide the tasks/responsibilities in shares that are equal to your member number.
Please submit the proposal to Blackboard project submission box by Sept 27 at 11:59 pm.

1st Report

Report Format

  • Project title, team number, team member list, date
  • Cover Page and Individual Contributions Breakdown
  • Table of Contents
  • Customer Statement of Requirements (2-3 pages)
    • High-level narrative about collected requirements. Put yourself into the customer role, instead of developer role, and describe the features expected in the system-to-be.
  • System Requirements
    • You may write a few user stories (as in agile development)
    • Enumerate functional and non-functional system requirements (Artifacts 1-3)
  • Functional Requirements Specification:
    • Stakeholders, Actors and Goals (Artifacts 4-6)
    • Use Cases (Artifacts 7-8)
      • casual description for all the use cases
      • full description for the most important use cases
      • the traceability matrix for requirements and use cases mapping
    • Use Case Diagram (Artifact 9)
    • System Sequence Diagrams (you don't need to include all, but the most important use cases)
  • Domain Model
    • Definitions of concepts, associations, attributes.
    • Describe the analysis classes
  • Sequece Diagrams (with necessary interaction frames)
    • describe how you assign responsibilites to object for each diagram
  • References (include references and URLs of related materials)
Please submit the report to Blackboard project submission box by Oct 21 at 11:59 pm.

2nd Report

Report Format

Please submit the report to Blackboard project submission box by Nov 18 at 11:59 pm

Demo

Project Grading

The course project constitutes 30% of the final grade. The grading element consists of a proposal (10%), 2 reports (30% each), a in-class demo & presentation (25%), and a well-archived project documentation (5%).

Resources

The EECS department provides useful tools and support for software developement practices, including:

Besides the development tools provided by EECS, there are some free online tools useful for software development.