Python Checker. Computer Science Department



Similar documents
Software Project Management Plan (SPMP)

How to use Microsoft Project? Basic Training to Help You during the BYI challenge

Last Revised: 2/16/2010. Microsoft Office SharePoint 2007 User Guide

MITRE Baseline Configuration System Implementation Plan

Systems Analysis and Design

GCE APPLIED ICT A2 COURSEWORK TIPS

Mastering Microsoft Project 2010

Lab 1 Introduction to Microsoft Project

ECDL / ICDL Project Planning Syllabus Version 1.0

5. Creating a Gantt Chart

Project management. Organizing, planning and scheduling software projects. Objectives. Chapter 3. Chapter 3 Project Management. Learning Objective

Mastering Microsoft Project 2013

Software Requirements. Specification. Day Health Manager. for. Version 1.1. Prepared by 4yourhealth 2/10/2015

Project Time Management

NE-50413B Mastering Microsoft Project 2010

Mastering Microsoft Project 2013 Course: 55054A Course Length: 3 Days

Project Management Planning

Operationalise Predictive Analytics

CRITICAL PATH METHOD (CPM) SCHEDULES

The work breakdown structure can be illustrated in a block diagram:

The management of the projects with MS Project

WORK PROGRAM GUIDELINES

LECTURE 5: SOFTWARE PROJECT MANAGEMENT. Software Engineering Mike Wooldridge

Project Management Dr. James A. Bednar

Power Tools for Pivotal Tracker

Course 10777A: Implementing a Data Warehouse with Microsoft SQL Server 2012

Software Development & Education Center. Microsoft Office (Microsoft Project 2010)

Implementing a Data Warehouse with Microsoft SQL Server 2012

Key Stage 3. Scheme of Work. Written by Heaton Moor Digital

Contents. iii. ix xi xi xi xiii xiii xiii xiv xv xvi xvii xix

IBM Campaign and IBM Silverpop Engage Version 1 Release 2 August 31, Integration Guide IBM

High Level Design Distributed Network Traffic Controller

ECDL / ICDL Project Planning Project Management Software Level 2. Syllabus Version 1.0 (UK)

Performance Optimization Guide

Mastering Microsoft Project B; 3 days, Instructor-led

Implementing a Data Warehouse with Microsoft SQL Server 2012

Project management. Objectives. Topics covered. Organizing, planning and scheduling software projects DISCUSSION

Project management. Organizing, planning and scheduling software projects

CSE 544 Principles of Database Management Systems. Magdalena Balazinska (magda) Winter 2009 Lecture 1 - Class Introduction

Roadmap. Software Engineering. Software Engineering. Project Life Cycle. Database. Project Lifecycle

Chapter 3 Managing the Information Systems (IS) Project

PROJECT SCHEDULING AND TRACKING

IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, Integration Guide IBM

Software Requirements Specification

CloudFTP: A free Storage Cloud

The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform

THE BCS PROFESSIONAL EXAMINATIONS Certificate in IT. October Examiners Report. Information Systems

Assignment 2: Microsoft Project Toolset. Eric Palmer & Mahindra Bheodari. Kennesaw State University. IS 8100 Spring 2015

COURSE 20463C: IMPLEMENTING A DATA WAREHOUSE WITH MICROSOFT SQL SERVER

GUIDE FOR APPLICANTS

COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida

Importance of Project Schedules. matter what happens on a project. projects, especially during the second half of projects

Application Notes for Configuring Dorado Software Redcell Enterprise Bundle using SNMP with Avaya Communication Manager - Issue 1.

Oracle Fusion Middleware User s Guide for Oracle Approval Management for Microsoft Excel 11gRelease 1 ( )

Architecture Workshop

Bradley University College of Liberal Arts and Sciences Department of Computer Sciences and Information Systems

Scheduling Glossary Activity. A component of work performed during the course of a project.

This is the software system proposal document for the <name of the project> project sponsored by <name of sponsor>.

ESKIPM2(SQA Unit Code- F9CX 04) Project management software

International Monetary Fund. The Integrated Correspondence System. Using the ICS Information Framework Template

Project management Project Management

Software Requirements Specification. Online Scheduler for Tutoring Center. for. Version 1.0 approved

ESKIPM3 Project management software

QuantStudio 3D AnalysisSuite Server System

Software Application: Information System Elements. Project Management in Information Technology (IT) Projects. Project Scheduling basics

Project Management. 03/02/04 EPS 2004 Bjørn Engebretsen

MICROSOFT OFFICE PROJECT - SYLLABUS

Design and Functional Specification

MIS 460 Project Management

Project Management Tools

Implement a Data Warehouse with Microsoft SQL Server 20463C; 5 days

Sisense. Product Highlights.

603: Enhancing mobile device experience with NetScaler MobileStream Hands-on Lab Exercise Guide

Project Management Development Scheduling Plan: Data Mart. By Turell Makins

Organising, planning and scheduling software projects. Software management distinctions

Easy Data Centralization with Webster. User Guide

ISB 205 Management Software Fall 2014 Semester

Business Application Services Testing

Microsoft Project Exam Study Guide

Introduction to Microsoft Project 2010

Content Management Using the Rational Unified Process By: Michael McIntosh

Mobile Maker. Software Requirements Specification

<Company Name> <Project Name> Software Development Plan. Version <1.0>

Software Engineering CSCI Lesson 9 Project Management Part 1- Planning & Estimating. February 23, 2015

Project management using Excel spreadsheets: The case of Jules Event Planning Company

Week 13. Uploading Files to Web Hosting

Mobilization Tracking Information System (MTIS) Agency Contact User Manual

Smart Business Architecture for Midsize Networks Network Management Deployment Guide

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

Site Maintenance. Table of Contents

Enterprise Site Manager (ESM) & Administrator Console Installation / Uninstall

Team Builder Project

Project Report s Synopsis On behalf of

Manual on Training Preparation

Transcription:

Python Checker University of Mary Washington Computer Science Department PROJECT PLAN Prepared by Chris Zimmerman, Eric Phung, Shehan Rajapakse University of Mary Washington February 23, 2015

ii Table of Contents Table of Contents... ii Revision History... iii 1. Project Overview... 1 1.1. Purpose... 1 1.2. Document Conventions... 1 1.3. Intended Audience and Reading Suggestions... 1 1.4. Remainder of the Document... 1 2. Project Scope... 2 2.1. Goals...2 2.2. Deliverables... 2 2.3. Deadlines... 3 2.4. Major Software Functions... 3 2.5. Performance... 3 2.5.1. Increased Site Traffic... 3 2.6. Limitations... 4 2.6.1. Cost Limitations... 4 2.6.2. Software/Hardware Limitations... 4 2.7 Constraints... 4 2.7.1. Technical Constraints... 4 2.7.2. Time Constraints.... 4

iii 2.7.2 Specification Constraints... 5 3. Project Schedules... 5 3.1.1. Estimates... 5 3.1.2 Resource Acquisition... 5 3.2 Work Plan... 5 3.2.1 Work Breakdown Structure... 6 3.2.2 Schedule Allocation...... 7 3.2.3 Resource Allocation.... 9 3.2.4 Budget Allocation...... 9 4. Roles and Responsibilities... 9 5. Appendix...... 10 Revision History Name Date Reason for Changes Version Version 1 2/23 v1.0

1 1. Project Overview 1.1 Background Python Checker is a web application that allows students to validate their python code their output against expected output from an administrator s test case program. Users will upload their.py files to run their code against the server s test cases; when their output is the expected output of the test case, they will receive a token letting an administrator know that their program was successful and met the requirements of the test cases. The overall goal is to automate the process of checking homework and to provide students a tool to check their work. 1.2 Purpose Python Checker is being developed for two main purposes. The first is so that Adjunct Professor Gusty Cooper may acquire a software program that will assist him in grading his computer science student s work. The second reason is so that our development team will get a good grade on a software engineering assignment that requires the team to develop a remarkable piece of software for use by the University of Mary Washington. 1.2 Document Conventions Each section of this document begins with a heading noting the contents of that section as well as a section number (1. Project Overview). The subjects are then broken down into subsections, each of which have a subsection number (1.2 Document Conventions). For a further breakdown of the information located in each section, consult the index at the beginning of this document. 1.3 Intended Audience and Reading Suggestions Python Checker is being produced for adjunct professor Dr. Cooper to use with his computer science students. While the intended audience is the teacher and his students, this application may be used by anyone who would like to verify their python scripts against test cases. 1.4 Remainder of the Document Section two provides an overview of the project description, including the product scope, the major functions of the software, performance, limitations and constraints of the software.

2 Section three goes over the entire project schedule and how the implementation team plans to approach the problem. The section includes list of tasks; each of which is defined, has a time estimation, and is justified for the time estimate and resource requirements. A gantt chart and task dependency diagram are provided to help explain the schedule. Section four explains the division of duty of the development team. This includes how tasks are divided between members, and who is ultimately responsible for each task. Section five, the final section, contains an appendix where technical terms are defined. The defined terms are italicized within the document. This section also includes team member contributions toward the production of this document. 2. Project Scope Python Checker is a small scale software development project. Although small, there are many features that must be implemented in order for the project to be considered functional. Below are the many goals, functions, deliverables, and deadline that must be upheld to and carried out. 2.1 Goals Python Checker must provide functionality in order to be considered useful. By breaking down the project into goals, Python Checker may be completed more effectively. Below are goals for the Python Checker: Allow students to upload their python code to be compared by the server program Allow administrators to upload their test cases to be used by the server Allow for administrators to recognize acceptable code submissions from students to be used for grading purposes These goals are described in greater detail in section 3.2 of the document. 2.2 Deliverables Python Checker will have one deliverable; that is the completed program. There will be no other deliverables. This final and only deliverable is due on. The functionality of Python Checker will be complete as to its requirements by this date.

3 2.3 Deadlines Python Checker is due to be completed on April XX, 2015. The reasons for this deadline are that the development team is required to submit a completed and working version of the program on this date as required by Component deadlines are detailed below: Web Infrastructure (February XX, 2015) Database Schema (February XX, 2015) 2.4 Major Software Functions Below are the many functions that Python Checker will provide. upload test cases upload user python code create administrative users run test cases run user submitted python code check submitting python code for errors check submitted python code against test cases report on test case failures where student code failed generate and submit verification token to student upon successfully passing test cases 2.5 Performance Python Checker will be used by users with a variety of computer aptitudes. Users who are less experienced with computers will likely expect results to be output in real time; for this reason, the application will work in real time. By being in real time, users will not confuse the possible unresponsiveness of the website to with their infinite loops. Furthermore, by operating in real time, students cannot give the excuse that the slowness of the website is the cause of their incomplete homework. To make sure that the application meets this type of performance, the back end algorithm will be optimized to a significant degree. 2.5.1 Increased Site Traffic While the final system (database schema, Python algorithm, etc.) will not necessarily be optimized for speed, it should work at an appropriate speed that should be able to be factored in

4 by both students and administrators. One real world expectation of this system is that the system will receive a tremendous amount of traffic from students at one time such as the night before an assignment is due. We will have to make sure that this will not crash the site and ensure that students will receive the proper tokens for their submissions. 2.6 Limitations 2.6.1 Cost Limitations It has been determined that will be no funds allocated for the development of this project which severely limits where the application can be hosted. The development team has decided to use Cloud9, a site where the server can be hosted for free. Additionally, as there will be no available budget for this project, the development team will be limited to a free account on the Cloud9 hosting site which appropriates 1GB of disk space and 512MB of RAM. 2.6.2 Software/Hardware Limitations The application will be developed in an online IDE (Integrated Development Environment) built into Cloud9 so there will be no individual software/hardware limitations for the developers. To use Cloud9, however, the developer s internet browser will have to meet the requirements of the site. 2.7 Constraints 2.7.1 Technical Constraints Since there is no existing code for the development group to expand upon/modify, the various components of the system will be written from scratch. Because of this, members of the development group will have to take some time to learning to use the various languages including Python and HTML/CSS, the hosting framework Cloud9, as well as the relational databases. Each member of the team will experience this constraint to an individual degree; while this will not throw the project off schedule, it will certainly add some overhead to the time needed to satisfy the requirements. 2.7.2 Time Constraints As mentioned earlier in the document, the final code for this project is due April 15 and must be delivered to the testing team on April 2. These due dates are fixed, leaving no possibility to add time to the project schedule. Due to this fact, the development team must be sure to follow the

5 project schedule as closely as possible, especially in the event that changes need to be made to the schedule. 2.7.3 Specification Constraints As the project progresses and the client is periodically shown the application, he may want to make changes to the way the application is being implemented (differing from the originally agreed requirements) or he may choose to add different features to the application. Changes to the way the application functions or the addition of features may prove cumbersome for the development team and may violate the time constraints, which are inalterable. In this case, the team will have to meet with the client and determine what requirements are most crucial that can be satisfied before the deadline. 3. Project Schedules 3.1 Start up Plan In order effectively complete Python Checker, our team has broken down the project into smaller and more manageable tasks. These tasks will be worked on concurrently whenever possible. Some tasks, however, are dependent on others, so their dependencies must be finished first. Besides parallelizing duty, the team will utilize Model View Controller architecture. When designing the website, we will code with the developer s, student s and administrator's perspective in mind. 3.1.1 Estimates The estimated cost of the project is $0 dollars since there is no allotted budget. The estimated time to complete the project is five weeks and three days, which is specified in section 3.2. The tools used to specify an estimated schedule is Microsoft Project 2010. The schedule for re estimation of the subtasks will be done roughly once a week, of after the completion of each subtasks. If re evaluation is necessary, the Gantt Chart will be updated. 3.1.2 Resource Acquisition Acquisition of all of the necessary resources will not be a problem since they are all free online. The project scheduler software will be available free via Microsoft DreamSpark for students. 3.2 Work Plan // INSERT TEXT HERE ya

6 3.2.1 Work Breakdown Structure Website Design and Implementation (1 week) Stylesheet (3 days) Choosing what template to use for our website and implementing it. Three days for style and design, to choose a template that will synergize well with our needs. Time is also allotted in order to implement our code with the website. Selection Page (Home) (1 day) Creating an HTML file and a route for the home page It will take one day to create and design the home page. The homepage will explain the website and provide links to the assignments for users to upload files. Test Cases Page (2 days) Create an HTML file to upload the test cases to the page The test case pages will take longer since they must integrate with the file upload feature. This page take in user input to insert into the database. Results Page (1 day) Create an HTML file to display the results on the results page. The results page should only take a day since we will just be fetching data from the database to display on the webpage. Relational Database Creation (3 days) Storage of.py Files (1 day) Create and design the table for storing all of the file uploads. The file uploads would include the user s.py files along with the admin s test cases and output files. Designing the table and thinking about the columns in the table should only take about one day. All of our group members already have the required software installed and prior database knowledge. Users Table (1 day) Create and design a table for all of the possible users. The users consists of the super admin and admins, but may include student users in the future. The user table should only take one day to design. There will only be two types of users: admins and super admins, so this table should not be very time consuming. Verification Tokens Table (1 day) Create and design a table for the output, or unique tokens that will be sent to the user and admin.

7 The verification token table should only take a day to create since it should only have a few fields. Business Logic (4 weeks) Test Case Implementation(1 week) Use test cases uploaded by the admin accounts. The test cases will take around one week since we will have to communicate back and forth with the client in order to get a few test cases to implement. We gave this task more padding in case the client will not be available. Output Comparisons (1 week) Run test cases from the admin and compare it with the student s output. This task will take at least a week since it is the main logic of your entire program. We will have to think of ways to compare the outputs without the student cheating. File Upload / Filename Management (1 week) Uploading and managing all of the files. Queries to take in the file inputs and store it in the file table in the correct columns. One week is given to this tasks due to its importance. The website depends on the files being uploaded to the website and inserted correctly into the database. Data Display (1 week) Display the output in the correct webpage, query and pull data from the database. One week is given to this tasks with some padding. The data will be displayed in the results page, but the team will have to manage if the correct output is being displayed, and how we want the display to look on the website. 3.2.2 Schedule Allocation Specify the scheduling relationships among the project work activities in a manner that depicts the time sequencing constraints and illustrates opportunities for concurrent work activities. Identify the critical path in the schedule. Indicate any constraints on the scheduling of particular work activities, that are caused by external factors. Identify appropriate schedule milestones to assess the scope and quality of project work products and of project achievement status. Techniques for depicting schedule relationships may include milestone charts, activity lists, activity Gantt charts, activity networks, critical path networks and PERT charts. //insert text here too //# INSERT INTO HERE VALUES ( MILESTONES) good edit mate //INSERT TEXT HERE

8

9 3.2.3 Resource Allocation Resources in terms of personnel would the three members assigned to the project. Software tools include PostgreSQL, flask, cloud9 server, and any online template used. Hardware resources could be computers in the lab. Administrative support would be our teacher who is overseeing the production of the project. 3.2.4 Budget Allocation There will be no budget to develop this project, all of the resources used will be either free or within the realm of the campus. 4. Roles and Responsibilities While the development team will be in communication and will be working in a shared workspace, responsibility over the various components of the systems should be placed with the individual team members to ensure that the project requirements will be satisfied. For the project, we have decided that the development team members will take on the following roles: Shehan Rajapakse : Application Front End The front end development involves the elements of a website that the customer sees and interacts with directly. This includes the styling of the website as well as the ways the users navigate the site, enter data, upload files, and receive data. Eric Phung : Application Back End The back end development involves the elements of a website that are invisible to user and is built with server side language. This will interact with the server and return results to the user. In the scope of this project, this will deal greatly with the algorithms to execute the.py files uploaded by users, handle logins, and return token or errors. Chris Zimmerman : Database Schema The database will serve a crucial role to the success of the application; this will allow information in the application to be preserved. The database will contain the login information for the various users as well as the test cases uploaded by the administrator.

10 5. Appendix 5.1 Dictionary Gantt Chart A type of bar chart that illustrates the starting and end dates of a project Microsoft Project 2010 a project management software developed by Microsoft designed to aid the planning stages of a project. Queries activity based planning 5.2 Member Contributions Eric Phung: 1, 2 Chris Zimmerman: 3, 5.1 Shehan Rajapakse: 2.5, 2.6, 2.6, 4