WPI Suite TNG

39
WPI Suite TNG Advisor: Prof. Gary F. Pollice Core Michael Della Donna Brian Gaffey Ryan Hamer Tyler Wack Exemplar Christopher Casola Andrew Hurle Jennifer Page

Transcript of WPI Suite TNG

Page 1: WPI Suite TNG

WPI Suite TNG

Advisor: Prof. Gary F. Pollice

Core

Michael Della Donna

Brian Gaffey

Ryan Hamer

Tyler Wack

Exemplar

Christopher Casola

Andrew Hurle

Jennifer Page

Page 2: WPI Suite TNG

Problem

• A project for software engineering students

• Lack of tools for software engineering

students

Page 3: WPI Suite TNG

Previous Solution

• Mainly written by students

• Lacked comprehensive unit tests

• Performance issues

• Lack of Security

• No Client-Server architecture

Page 4: WPI Suite TNG

Goals

Well-defined module framework

Configurable

Client-server

Excellent documentation

Exemplar module(s) with documentation

Open source availability

Page 5: WPI Suite TNG

Approach

Core TeamCreates Framework

Exemplar TeamLeverages Framework

Designs

Feedback /

Requirements

Page 6: WPI Suite TNG

Core

Page 7: WPI Suite TNG

Goals

Flexible

Avoid Complexity

Comprehensive Documentation

Robust and Maintainable

Page 8: WPI Suite TNG

Flexible

• Client-Server architecture

– Client agnostic

• Module System

• HTTP REST API

– Using JSON for communication

Page 9: WPI Suite TNG

Avoid Complexity

• Abstraction

– Network Communication

– Persistent Storage

– Login Security

Page 10: WPI Suite TNG

Avoid Complexity

Network Communication

Page 11: WPI Suite TNG

Avoid Complexity

Persistent Storage Interface

Page 12: WPI Suite TNG

Avoid Complexity

Login Security

Page 13: WPI Suite TNG

Comprehensive Documentation

• Well-documented components

– Apache Tomcat

– Db4o

– Google GSON

• As well as

maintaining

our own

Page 14: WPI Suite TNG

Robustness

• Creating a module only requires 7 methods

• Descriptive Error Handling

• Server side logging

Page 15: WPI Suite TNG

Architecture Diagram

Page 16: WPI Suite TNG

Code Metrics

• 6,192 lines of code

• 52% code coverage

• 37.3% comment ratio

• 40 Classes

Page 17: WPI Suite TNG

Code Metrics

Page 18: WPI Suite TNG

Looking Forward

• Dynamic Module Loading

• Increased Test Coverage

• Stronger Web Admin Console

Page 19: WPI Suite TNG

Exemplar Module

Defect Tracker

Page 20: WPI Suite TNG

Goals

• Extensible desktop client

• Example module for students to learn from

• Simple network communication

• Good documentation and design

Page 21: WPI Suite TNG

Design Decisions

• Defect tracking

• Java and Swing

• Dynamic module loading

• Modules provide tabs and toolbars

• Cross-platform look & feel

• Modeless editing

• Network library

Page 22: WPI Suite TNG

Desktop Client

Page 23: WPI Suite TNG

Desktop Client

Page 24: WPI Suite TNG

Architecture

Defect Tracker Module

Page 25: WPI Suite TNG

Code Base Metrics

• 6,836 SLOC

• 17.6% Comment Ratio

• 150 classes

• 28.1% Testing Coverage

– Server-side code: 93%

– Network library: 70%

Page 26: WPI Suite TNG

Documentation

Page 27: WPI Suite TNG

Future Goals

• More testing, especially of the GUI

• HTTPS support, including certificates

• Conflict resolution

• Dashboard screen

• Filters on defect search tab

Page 28: WPI Suite TNG

Results

• Studied D Term Software Engineering

• Teams developed a Requirements

Management module

• Three MQP team members were coaches

Page 29: WPI Suite TNG
Page 30: WPI Suite TNG
Page 31: WPI Suite TNG

D Term

761 commits

16,705 Physical SLOC

3,287 more commits

42,039 more SLOC

A Term 5 weeks later

Team 2

Team 1

Team 4

Team 3

Team 5

Page 32: WPI Suite TNG

D Term Software Engineering

Page 33: WPI Suite TNG

D Term Software Engineering

Page 34: WPI Suite TNG
Page 35: WPI Suite TNG

Survey Results

0%

45%

55%

Usefulness of Defect Tracker

Not useful Somewhat useful Very useful

5%

71%

24%

Confidence in Team’s Ability to Deliver

Not confident Confident Very confident

Page 36: WPI Suite TNG

Survey Results

24%

60%

16%

Ease of Setting Up Development Environment

Difficult Moderate Easy

3%

71%

26%

How Helpful was the Documentation

Unhelpful Helpful Very helpful

Page 37: WPI Suite TNG

Overall Future Goals

• Virtual machine for development, and/or a

bootstrap script

• Pagination

• Database migration

• Email support

• Consistent code style and CodePro audit

rules

Page 38: WPI Suite TNG

Open Source Community

Repo: github.com/fracture91/wpi-suite-tng

• Governance policy established

• Alumni have expressed interest in

contributing

• Will be presented to education community,

other schools

• Pull requests welcome!

Page 39: WPI Suite TNG

github.com/fracture91/wpi-suite-tng

Questions?