Skip to content

Project Proposal

Josh edited this page Mar 11, 2018 · 4 revisions

Software development Project NES-NN

Project Plan

1 Introduction

The NES-NN project is designed as a two part project to put all of our skill and teamwork abilities to the test. This project focuses on Neural Networks and sets us up to challenge ourselves to build a Neural Network and integrate it into a Nintendo Entertainment System Classic Edition Emulator. This project will allow us to use that AI as a second player in Super Mario Bros.

2 Project organization

The team is made up of three members: Loic Nyssen, Joshua Beemster, Jasim Schluter.

The three members have not been assigned unique roles in the team. Instead the team creates a backlog of work-items, and assigns the items for the two week sprint at the beginning of the sprint.

We are documenting work on GitHub as well as on CSU Interact. Communication will be via email and Discord.

The GitHub repository can be found at https://github.com/orgs/NES-NN/.

The main project wiki page (home) can be found at: https://interact2.csu.edu.au/webapps/Bb-wiki-BBLEARN/wikiView?course_id=_33735_1&group_id=_36295_1

3 Project practices and measurements

We will be following the Unified Process of iterative development. We will be planning the work into 2 week sprints. Starting the sprints with a planning meeting and ending with a review meeting.

We will be running continuous integration tests via AppVeyor integration with GitHub.

4 Deployment

All members of the team will have an identical Virtual Machine installed on their hosts for development purposes - avoiding the "but it works for me" discussion.

Code will be submitted to an online CI service for automated cloud testing using AppVeyor.

For production and demoing purposes we will be provisioning an online Windows Server which we will configure to run the binaries that we produce. The release process will involve:

  1. Building final versions of all required binaries
  2. Committing these files to Interact
  3. Pushing assets to production windows server
  4. Launching application via PowerShell script

5 Project milestones and objectives

Subject Phase Iteration Dates Primary objectives (risks and use case scenarios)
ITC303 – Software Development Project 1 Inception Phase I-0 26/02 – 11/03 Establish Major Project ThemeEstablish Team MembersEstablish Version ControlEstablished Push Communication MediumEstablished Documentation ManagementInception-level Research on Prior Art
ITC303 – Software Development Project 1 Inception Phase I-1 12/03 – 26/03 Establish VisionEstablish Initial Use Case ModelComplete Preliminary Non-functional Requirement AnalysisIdentify/Document Candidate Architectures
I-2 27/03 – 9/04 Establish Risk ListComplete Full Description for Critical Core Risky Difficult (CCRD)Use CaseImplement Technical Competency DemonstratorCreate Test PlanEstablish Initial Project PlanDeliver Life Cycle Objectives Milestone (LCOM)Complete Inception Phase Project Assessment
Elaboration Phase E-1 10/04 – 23/04(Session Break) Mitigate Highest Priority Risk(s)Implement Highest Priority Architectural Element(s) to Support CCRD Use CaseComplete Development Testing for Highest Priority Architectural Element(s)
E-2 24/4 – 7/05 Mitigate 2nd Highest Priority Risk(s)Implement 2nd Highest Priority Architectural Element(s) to Support CCRD Use CaseComplete Development and Integration Testing for 2nd Highest Priority Architectural Element(s)
E-3 8/05 – 21/05 Mitigate 3rd Highest Priority Risk(s)Implement 3rd Highest Priority Architectural Element(s) to Support CCRD Use CaseComplete Development and Integration Testing for 3rd Highest Priority Architectural Element(s)Deploy Executable Architecture in Trial EnvironmentComplete Internal User Acceptance Testing for CCRD Use Case in Trial Environment
E-4 22/05 – 4/06 ContingencyDeliver Life Cycle Architecture Milestone (LCAM)Complete Elaboration Phase Project Assessment

Mid-year Semester Break

Subject Phase Iteration Dates Primary objectives (risks and use case scenarios)
ITC309 – Software Development Project 2 Construction Phase C-1 10/07 – 23/07 Implement 2nd Highest Priority Use Case(s)Complete Development and Integration Testing for 2nd Highest Priority Use Case(s)Complete Internal User Acceptance Testing for 2nd Highest Priority Use Case(s)
C-2 24/07 – 6/08 Implement 3rd Highest Priority Use Case(s)Complete Development and Integration Testing for 3rd Highest Priority Use Case(s)Complete Internal User Acceptance Testing for 3rd Highest Priority Use Case(s)
C-3 7/0 – 20/08 Implement 4th Highest Priority Use Case(s)Complete Development and Integration Testing for 4th Highest Priority Use Case(s)Complete Internal User Acceptance Testing for 4th Highest Priority Use Case(s)
C-4 21/08 – 3/09(Session Break) ContingencyDeliver Initial Operation Capability Milestone (IOCM)Complete Construction Phase Project Assessment
Transition Phase T-1 4/09 – 17/09 Deploy Application in Trial EnvironmentComplete 1st Round External User Acceptance TestingResolve Any Identified Issues
T-2 18/09 – 1/10 Complete 2nd Round External User Acceptance TestingResolve Any Identified Issues
T-3 2/10 – 13/10 ContingencyDeliver Product Release Milestone (PRM)Complete Final Project Assessment