+ All Categories
Home > Documents > Final Presentation

Final Presentation

Date post: 22-Feb-2016
Category:
Upload: cassie
View: 32 times
Download: 0 times
Share this document with a friend
Description:
Final Presentation. CS673 Software Engineering Dan Spuches Grace Hopkins Craig Cato. Topics. Software Engineering Phases Planning Requirements Design Implementation/Demo Testing End-of-Project Analysis. SE Phase 1 - Planning Choosing the Project. Choosing the Project: Several ideas - PowerPoint PPT Presentation
Popular Tags:
56
Final Presentation CS673 Software Engineering Dan Spuches Grace Hopkins Craig Cato
Transcript
Page 1: Final Presentation

Final PresentationCS673 Software Engineering

Dan SpuchesGrace Hopkins

Craig Cato

Page 2: Final Presentation

Topics

Software Engineering Phases• Planning • Requirements

Design• Implementation/Demo• Testing

End-of-Project Analysis

Page 3: Final Presentation

SE Phase 1 - PlanningChoosing the Project

Choosing the Project:• Several ideas

o Curling scheduling systemo Recipe collectiono Travel and weather tracking systemo Weight tracking

• Selected YAWPo Yet Another Weight-Tracking Programo According to www.dictionary.com:

yawp (verb) - to utter a loud harsh cry; to yelp, squawk, or bawl

Page 4: Final Presentation

SE Phase 1 - PlanningMotivation

Page 5: Final Presentation

SE Phase 1 - PlanningRelated Work

• Google Code

• SourceForgeBMI Calc

iDiet

Page 6: Final Presentation

SE Phase 1 - PlanningRelated Work

• Others All OnlineWeightCharts

WeightWatchers

Page 7: Final Presentation

SE Phase 1 - PlanningRelated Work

• A Close ProductWeight Tracker

but it only runs onwindows...

We can be multiplatformwith Java

Page 8: Final Presentation

SE Phase 1 - PlanningDevelopment Model

Choosing a Development Model:• First selection: Waterfall• Second selection: Modified Unified Process

Image source: http://upload.wikimedia.org/wikipedia/commons/0/05/Development-iterative.gif

Page 9: Final Presentation

SE Phase 1 - PlanningProject Management - Risk Analysis

• Lack of experience with toolso Likelihood - 10; Impact - 7; Retirement cost - 3o Priority - 12o Retirement plan - Learn toolso Status - Resolved 3/20

• Work limiting team member availabilityo Likelihood - 4; Impact - 10; Retirement cost - 10o Priority - 70o Retirement plan - Close team communicationo Status - Active risk for entire project

Page 10: Final Presentation

SE Phase 1 - PlanningProject Management - Risk Analysis

• Deficient Java skillso Likelihood - 5; Impact - 8; Retirement cost - 7o Priority - 126o Retirement plan - Review prior to coding phaseo Status - Resolved 3/20

• Overly ambitious scopeo Likelihood - 5; Impact - 9; Retirement cost - 1o Priority - 12o Retirement plan - Prioritize requirementso Status - Resolved 3/21 with effective prioritization

Page 11: Final Presentation

SE Phase 1 - PlanningProject Management - Risk Analysis

• Small teamo Likelihood - 10; Impact - 5; Retirement cost - 7o Priority - 42o Retirement plan - Work together efficientlyo Status - Active risk for entire project

Page 12: Final Presentation

SE Phase 1 - Quality Assurance

• Quality metricso Defects per thousand lines of code (KLOC)

Goal - No more than 3 per KLOC• Overly ambitious, but no previous data to base goal on

o Time spent per task Track time on all work effort in minutes

o Self assessment on project deliverables Scale of 1 (poor) to 10 (exceptional)

o Defects per document Goal - No more than 15 defects filed per

document

Page 13: Final Presentation

SE Phase 2 - RequirementsThe Napkin Drawing

Getting Started...

What we realized:• We have some

screens/states.• The lines look like

events

Page 14: Final Presentation

SE Phase 2 - RequirementsState Transition Diagram

Page 15: Final Presentation

SE Phase 2 - RequirementsUse Cases

2.2.5 Set PreferencesActor: User of YAWPUse case description:

1. User selects the Set Preferences option.2. System presents the Preferences window

with fields for entering data.3. User enters data in the fields.4. User selects Save Data.5. System Saves Data.6. Settings take effect immediately.

2.2.1 "User Identification" use caseActor: User of YAWPUse case description:

1. User enters name to the system.2. System determines if user has previously

used the system and that their profile exists.

3. If profile can not be found System gets needed profile information from the User and creates a new profile.

Page 16: Final Presentation

SE Phase 2 - RequirementsFunctional Requirements

Functional•Create User•Enter Weights•Show Chart(s)•Enter Journal•Set Preferences•Export Data•Change User•Set Data Entry View

Page 17: Final Presentation

SE Phase 2 - RequirementsNonfunctional Requirements

• Reliabilityo YAWP will not fail more than once in 1000 weight

entries

• Portability & Availabilityo Run on any PC running Java 1.6o Windows, Mac, Linux

• Usabilityo Preferences

Any data defined at user creation can be modified at the preferences screen

Page 18: Final Presentation

SE Phase 2 - RequirementsOrganizing Requirements

Each requirement is assigned an identifier3.2.XX.#

XX - GUI componentMW - Main WindowPW - Preference WindowJW - Journal WindowCW - Chart WindowEW - Enter Weights Window...

# - Requirement number

Page 19: Final Presentation

SE Phase 2 - RequirementsPrioritizing Requirements

From text page 338: 100 * [T - |T/3 – essential| - |T/3 – desirable| - |T/3 – optional|] / TE=Essential, D=Desirable, O=Optional, T=TotalInitial E = 38 D = 8 O = 1 T = 47100 * [47 - |16 – 38| - | 16 – 8| - |16 – 1| ] / 47100 * [47 – 22 – 8 – 15] / 47100 * [2] / 47 = 4.25 % 0 is the worst; 100 is the best.

Initial - RevisitedE= 29 D = 8 O = 10 T=47

100 * [47 - [|16 - 29| - |16 - 8| - |16 - 10|] / 47100 * [47 - 13 - 8 - 6] / 47 = 42.56%

FinalE=33 D=8 O=10 T=51100 * [51 -[|17 - 33| - |17 - 8| - |17 - 10|] / 51100 * [51 - 16 - 9 - 7]/51 = 37.25%

Ended Fairly Balanced, Still a bit heavy focused on Essentials...

Page 20: Final Presentation

SE Phase 2 - RequirementsRequirements Status

• Why the change in number of requirements?o Consolidated requirements

Combined change user & new user Raw data area in weight entry window was integrated into adding

weights

o Some were no longer needed due to design decisions Decided to save data when entered instead of on demand Charts selector window - behavior was integrated into chart

window, no need for separate window No clear button in weight entry window, delete satisfied the

behavior

Page 21: Final Presentation

SE Phase 3 - DesignArchitecture - MVC

Model-View-Controller

Figure 3-1. “A Common MVC Implementation” from http://www.oracle.com/technetwork/articles/javase/index-142890.html

Page 22: Final Presentation

SE Phase 3 - DesignDetailed Design - Design Patterns

• Singletono Database creation

• Observero Messaging/updates between model/view/controllero View observes Modelo Controller observes View

• Templateo Abstraction in Model

WeightEntry & DataEntry Model & DatabaseModel

• Facadeo Single interface for View

View manages interactions to individual windows

Page 23: Final Presentation

SE Phase 3 - DesignArchitecture - Database

Third party database interface - SQLite• No installation• No dedicated database server• Integrates with Java• Works on target platforms• Database files are compatible cross-

platform• Existed for a while (since 2000)• Large amount of information available on

the Internet

Page 24: Final Presentation

SE Phase 3 - DesignArchitecture - Charts

Third party chart interface: JFreeChart• Craig saw it used on another project at work• GNU Lesser General Public Licence

(LGPL)• "JFreeChart is a free 100% Java chart

library that makes it easy for developers to display professional quality charts in their applications."

• Fairly easy to use - way over powered for our use in YAWP

Page 25: Final Presentation

Detailed Design: View + Model Description

• Prototype to evaluate JFreeChart and event processing

• Observer design pattern to update from the modelo When user changes all views updateo Leveraging major benefit of the design pattern

• View uses Swing ActionListener (an Observer pattern) to manage button presses and similar actions

• No Controller registration needed (view only window)

Page 26: Final Presentation

Detailed Design: View + Model Diagram

Page 27: Final Presentation

Detailed Design: View + Controller

• Controllero Needed due to data changingo Does not directly handle view displayo Implements Observer in order to apply business

logic to user actions

• View o View uses Swing ActionListener (an Observer

pattern) to manage button presses and similar actions

o Observable (MVC) Higher Level Messages to its observer (aka the controller)

Page 28: Final Presentation

SE Phase 3 - DesignDetailed Design - Model

• Collection of classes to manage data and pass data between Model, View, and Controller classes

• Database (SQLite) part of the Model• Singleton design pattern to limit class

loading from jar file and database connection

Page 29: Final Presentation

Transition Grace

• Implementation• Testing• Deployment

Page 30: Final Presentation

SE Phase 4 - ImplementationIntroduction

Introduction

• Transition from planning to actual code

• Implemented in Java using Eclipse IDE

• JavaDoc to document methods

• Runs on Windows, Mac, Linux

Page 31: Final Presentation

SE Phase 4 - ImplementationCode Organization

• Three packages to match MVC

Page 32: Final Presentation

SE Phase 4 - ImplementationThird Party Libraries

• Third-party librarieso Charting (jcommon and jfreechart)o Database (sqlitejdbc)

Import into Eclipse project

Page 33: Final Presentation

SE Phase 4 - ImplementationMVC Methods and Notifications

Page 34: Final Presentation

SE Phase 4 - ImplementationDemo

Demo• Start simple, introduce each window

o Preferences. visible / disabled for futureo Enter weights (think about how db looks)o Chart - weight and changeo Change user

• Show interactiono Open chart window for several months, value & changeo Open weight windowo Delete weight / add weights - highlight changeso Change weight units - highlight changeso Change user - highlight changes

Page 35: Final Presentation

SE Phase 5 - TestingEarly Days

Early Testing• Prototype Code• Initial Coding• Main method in class• Quick and sufficient for the time being

Page 36: Final Presentation

SE Phase 5 - TestingUnit Testing

Unit Testing• More formal approach• JUnit for non-GUI

o Getting Started wtih Tdd in Java Using Eclipseo Needed to add some database support

• Allowed for quick regression testing• Manual Test for GUI

o could not find tool that worked

Page 37: Final Presentation

SE Phase 5 - TestingIntegration Testing

Integration Testing• Earlier parts of coding, stubs and drivers• As connections were made among the major

components, transitioned to top-down testing• For regression testing, each developer ran

unit tests and manual UI tests after making changes

Page 38: Final Presentation

SE Phase 5 - TestingSystem Testing

System Testing• As a group, compared final product with

Requirements Tracker• Verified the product ran on all three target

platforms• CodePro static code analyzer

o questionable syntax (= to compare strings)o unnecessary import declarationso comparison with false

Page 39: Final Presentation

SE Phase 5 - TestingAcceptance Testing

Acceptance TestingCraig's wife (Deborah) tested

• Run 1 (late at night, tired)o Found typo right awayo Thought calendar was a calculatoro Could not overwrite weight for a dateo Issue with focus (select date, should be weight)

• Run 2o Went bettero Liked change in weighto Questions about placeholders for future (target weight and

height)

Page 40: Final Presentation

SE Phase 5 - TestingDocumenting Test Efforts

• Software Test Document - not yet

• Defect Trackingo Used code.google.com Issues Trackero 43 Issues Filed

Page 41: Final Presentation

Deployment• Project Hosted

http://code.google.com/p/yawp/

• User Manual: http://code.google.com/p/yawp/wiki/UserManual

• Single download:http://code.google.com/p/yawp/downloads/list

Version 1.0

• JavaDocso Working on setting up

properly in Eclipse to generate files that work on code.google.com

Page 42: Final Presentation

Transition Craig

• Tools• Estimations• Metrics• Future• Conclusion

Page 43: Final Presentation

Tools, Tools, and Yet More ToolsTool Use Benefit

Google Code Website, Repository, Issues Generally good, fairly structured sometimes hard to do figure out how to do some simple tasks.

Google Groups Team Mailing List Worked good well for general communications.

Eclipse Code Development Central tool for coding - worked good, though some odd quirks at times.

SVN (Subeclipse, Subversion)

Repository Worked well as a repository though some odd quirks at times.

Mylyn Connector Issues Tracking Good for issue tracking via eclipse. Bit of a challenge to set up

Google Docs Collaborative Documentation Great for collaborative document development. (used with phone bridge)

ArgoUML UML Diagrams Cumbersome for UML, could be good but very rough yet.

UMLet UML Diagrams Good for doing simple drawing.

Page 44: Final Presentation

Tools, Tools, and Yet More ToolsTool Use Benefit

JUnit Unit Testing Great for unit testing (No GUI testing ability)

TestNG Unit Testing Seems to have more features then JUnit (was to use with Fest).

Fest GUI Testing Could not get it working.

Metrics Metrics Failed to work.

Metrics (StateOfFlow) Metrics Got it working but doesn't seem to even sum lines-of-code across modules, etc.

JDepend Metrics Interesting (Instability vs. Abstractness). No report or easy export.

CodePro Metrics Good. Audit feature was also helpful in suggesting areas to fix.

Trello Planning Great for kick-off planning. Team information and reference.

Page 45: Final Presentation

Where are we to Plan Estimate?

Estimated Implementation:

Hours CodeLow: 144 2.88 KLOC

High:288 5.76 KLOC

2.98 KLOC156 hours

Page 46: Final Presentation

Hours Breakdown

General Estimate 15 week x 8 hr = 120 hr

Member Planning Requirements Design Implementation Testing Grand Total

Craig 37.25 21.75 50 44 24 177

Dan 49.75 13.5 18 77 158.25

Grace 38 16.5 24 35 113.5

Grand Total 125 51.75 92 156 24 448.75

Page 47: Final Presentation

Quality Estimations

Defects in Documentation Goal: 15 defects / Document, or 15/1 or 15Actual: 23/(SPMP, SRS, SDD,...) or 23/3 or 7.7

- but... more defects / clean up / rework coming

Defects in CodeGoal: 3 defects / 1 KLOC, or 3Actual: 43 / 2.98 KLOC, or 14.43

Page 48: Final Presentation

Requirement Estimations

Requirements BalanceGoal: 33 Esential, 8 Desirable, 10 OptionalActual: 32 Essential Met

- missed chart type histogram & line- only did line (xy-scatter graph)

5 of 8 Desirable Met1 of 10 Optional Met

Page 49: Final Presentation

Metrics, Metrics...

Page 50: Final Presentation

Metrics - Comments

Page 51: Final Presentation

Metrics - Number of Method Parameters

Page 52: Final Presentation

Metrics - Type Visibility

Page 53: Final Presentation

Metrics - MVC

Page 54: Final Presentation

Future Direction

• Add BMI Calculations• Add Trending Calculations• Add In Upgrade Converter (for DB Format)• Add In Advertising• Create Better Packaging• Add More Color• Add Projections• …

Page 55: Final Presentation

Conclusions

• Project was a good choice, enough complexity and scale to fit the class.

• Process of doing the documentation for each phase, though cumbersome, did fit and work to hold team on track.

• Open Source tools were a bit of a distraction.• Good experience especially if you want to do

another open source project in the future.• Good End-to-End Software Engineering

Experience

Page 56: Final Presentation

Questions & Thank You

Come visit us at:

http://code.google.com/p/yawp


Recommended