CS401 | sw engineering
  • outline
  • projects
  • syllabus
  • links

Project 2: Android (using a Mobile OOP framework) + Agile Teamwork

Group Project, see projects page for group work policy and teamwork eval considerations

Due 11pm April 26 (extended from 23), Live presentations at the start of class April 30, Peer Reviews Due May 2 at 11AM.

******Peer Evaluated--how to do this******* (rubric on Canvas)

**************UNDER CONSTRUCTION ************************

  • Goals - Practice professional team-based software engineering

  • Peer Reviewed - you will be assigned to review 3 other groups' projects. You will be graded in part on doing peer reviews. Part of being a good software engineer is the ability to read other developers' code, find issues and give critique.

     

Points approximately --under construction ---415 points + 45 peer review (see breakdown of items and points below)


 

 

Project Description & Requirements

 

Your team will be responsible for implementing an Android Application (ideally someone in your group will have an Android device or you will be forced to use the reduced speed/capabilities of the simulator AVD). The application must have some real functionality and have some kind of interactive interface and its purpose can NOT BE TRIVIAL. :

  • The purpose of your application can be in any sector BUT CAN NOT be trivial like a quiz or question/answer game. Your application MUST include database storage.

  • Check out the Google play store for a listing of many currently availalbe apps.

  • Check out developer.android.com which is the main entrance site for all things Android

ORIGINALITY:   It is fine to look at publically available code to get ideas and to use ONLY BASIC code to get started, but, you should NOT copy code. You should also design your own GUI's. If found copying code, you will at the very least receive 0 points on this project.

NOTE: YOU NEED TO quote!!! the references you used in creating your code.!!!!!

 

 

The Process:

  • STEP 1: Create Design document + Present it
    STEP 2: Get feedback and improve Design document until it is instructor approved (
    this will involve needing to come to office hours)
    STEP 3: Implementation - Test Driven (or at least concurrent co-development of Test Cases + running of JUnit Test Cases) -
    STEP 4: Creation of Documentation As you Go-
    update design document, create JavaDoc for code, create videos (detailed below)
    STEP 5: System Level Testing
    STEP 6: Presentation
    STEP7: Peer Reviews

DATA Requirements

  • UNDER CONSTRUCTION ******* exploring options

    Required- to use a Database in a non-trivial fashion where the data is observable by the user -

    - SQLite(on device) OR Google Firebase ???

 

 

TOOLS

  • Required Tools: Git & GitHub, JUnit Test , GitHub Issues+Project+Milestone planning & Tracking, Slack/Discord, JavaDoc generative tool, GitHub Wiki&Readme , GithubPages site for JavaDoc pages.
    NOTE: w/Travis Ci integration is extra credit

 

DETAILS - "ITEMS" (with tentative evaluation points)

  • ITEM 1: Wiki Documentation on GitHub: (keep the section titles ITEM1.A Team, etc for ease in understanding and peer reviewing)

    • ITEM1.A Team (10 points) - list first and last name of all team members (as they appear in Canvas). Under each team member's name discuss their contribution.

      ITEM1.B: Updated Design Document (10 points):- updated Design Document -updated as necessary to show any changes since approval. Specifically highlight those changes.

      ITEM 1.C: Completion Discussion (10 points): discuss the state of completion or if there were changes from the approved design document, show the final Scrum/Kanban board (GitHub Project w/Issues + Milestones-for dates) which gives when and who did what tasks

      ITEM 1.D: CODE Design: UML Class Hierarchy Diagram (20 points): showing Hierarchy and Cardinality and Object Associations for this project.

       

      ITEM 1.E: JUnit Test Cases (20 points): show the results of running each JUnit Test Case and if errors discuss them. You should have JUnit test cases for each class in Java with the exception of any GUI/Interface class.

      ITEM 1.F: Issues Tracking Screen Shots + Presence on GitHub (20 points): using GitHub Project for your responsitory with Issues+Milestones(dates) create a Scrum/Kanban board and show screenshots of this board as it changes over time ---show towards the beginning of the project, the middle and the end.

      • NOTE you should create an Issue for Every Class in your code (and assign different group members to work on them), an issue for every deliverable of the project (javadoc, github pages, various video recordings, so on), and for every weekly meeting you have and to JUnit and Integration testing, and to any content you need to create for the app
      • You should make milestones for each week and associate these due dates with you issues you choose to do that week
      • You can also make milestones for each major deliverable like documentation, testing, etc. that you assign to your issues.
      • In your weekly meeting issue (which represents for your group 1 Scrum Cycle) you will want to add to it the following description AND RUN YOUR Meeting in this fashion.By doing this you are combining a Scrum "Standup"(item 1) and a Scrum "Code Review"(item 2+4) with a Scrum "Cycle Planning"(item 3) meeting in one. SEE EXAMPLE
        1. (10 minutes) Scrum Meeting Standup (each person quickly discusses what they did last week)
        2. Scrum Cycle/Code Review - Part A : Discuss/Present issues that are proposed for closure (meaning completed) by showing the code working, demoing or showing documentation of testing, etc. If approved move related issue to the "cLosed" column.
        3. Scrum Cycle Planning - Discuss what issues from the backlog should be worked on next week (next Scrum Cycle)
        4. Scrum Cycle/Code Review - PartB : Quickly have people who need help with something find someone to help (adjust anything necessary like reassignment of work on the issue board)


    • ITEM 1.G: System Level Testing:

      • ITEM 1.G.1 App Testing (15 points): Work Instance 1-X: Show screenshots of using the application COMPLETELY.

      • ITEM 1.G.2 Database Testing (30 points) Shows the results of the database before and after changes from the Work Instance 1-X (from ITEM 1.F.1) that alter the database. It is required to do database as discussed in class (Firestore).


  • ITEM 2: Code Documentation & commenting of code. (30 points): You should host your JavaDoc in your GitHub repository’s /docs folder and create a GitHub Pages site from it (read details here). Then post the Github Pages link inside your wiki in this section. Commenting should include:

    • JavaDoc comments: before each class, before each class variable, before each method
      "In-code" comments: within each method to describe what is going on inside the methods



  • ITEM 3:JUnit Testing Code(40 points)

    • Unit testing code for EVERY class in your project except for GUI classes. Testing should be as rigorous as the class allows. Points evaluations per class = 40 points/#classes in your project. See ITEM1.C for how to provide the required documentation.

      NOTE: System level testing is demonstrated in ITEM 7.B

       

  • ITEM 4: Code Styling (20 points)

    • Follow Code Styling guidelines stipulated in class and in Google Styling guide for Java

  • ITEM 5: Collaboration (40 points)

    • Create a YouTube video showing a Scrum/Agile focused team meeting --where everyone does a standup and ALSO there is a code review session. Turn in URL here.

  • ITEM 6: Functionality (100 points)

    • Points for completion of design + the application is currently fully functioning. Partial credit for lack of completion or run-time issues.

  • ITEM 7: Presentation

    • ITEM 7.A Class Presentation (25 points) :Your group will be called to present your work live
      ITEM7.B YouTube Presentation(25 points): YouTube video presentation of the application working with Audio narration discussing how the system runs and if there were any changes from design document or if there are any run-time issues.

       

  • ITEM 8: Peer Evaluation (45 points)

    • peer evaluation of other groups performed. You will be assigned 3 groups to review. You earn up to 15 points per review depending on how complete and accurate your review is this will be evaluated by INSTRUCTOR.

       

       

 

 

 

 

TeamWork


All members of your team will receive the same score. However, the instructor reserves the right to give different grades to team members if there are serious imbalances in the work produced.

If there are problems in your team you MUST resolve them because a key feature of this SW Engineering course is to practice Agile Teamwork and this project is the primary experience for this in this class. (see projects page for group policy)

 

 

 

Extra Credit


 

Extra Credit (30 pnts towards THIS project score only): Use either the GPS, Camera, Microphone or GyroScope and the corresponding Android API in your application ---the results should be observable by a user and NOT something trivial --it must make sense in the scope of your applications purpose (use cases) --this needs to be preapproved by the instructor to garnish extra credit.

Extra Credit (20 pnts towards THIS project score only): Use Travis CI - continuous integration and demonstrate its use by providing a document showing its use. Be prepared to show the live use.

 

 

 


 

  Deliverables: 

 


Proposal / Design Document via Exercise=your proposed Application through your Design Document that you created with your group via your OOP Design group exercise (see due date on exercise statement)which was turned in at BB->Exercises->Exercise 3 -Project 2 - Proposals . One posting per group. This is evaluated separately and not part of this project's points.

 

ITEM 1-7   11pm April 26 One posting for your group where you Upload URL to your GitHub OpenSource repository's wiki page WITH the list of the names of everyone in your group to the following TWO locations:

  • Canvas->Discussion Board->Project 2
    Canvas->Assignments->Project 2

Peer Evaluation: due 11 AM May 2 - using the Canvas Rubric create reviews for all of the groups assigned to you.

  • ******Peer Evaluated--how to do this******* (rubric on Canvas)

cs401:sw engineering

  • home
  • outline
  • projects
  • syllabus
  • links