CS 425 – F ALL 09 C ORY L EHAN T IM M EYER J ARROD C APPS J ONATHAN B RIDGES F INAL P RESENTATION.
-
Upload
barrie-thornton -
Category
Documents
-
view
214 -
download
1
Transcript of CS 425 – F ALL 09 C ORY L EHAN T IM M EYER J ARROD C APPS J ONATHAN B RIDGES F INAL P RESENTATION.
CS 425 - Team Neurotic 3
Participants
Manager
Dr. Fujinoki
Manager
Dr. Fujinoki
Client/User
Dr. Watson
Client/User
Dr. Watson
Members
Tim Meyer
Jarrod Capps
Jonathan Bridges
Members
Tim Meyer
Jarrod Capps
Jonathan Bridges
Team Leader
Cory Lehan
Team Leader
Cory Lehan
CS 425 - Team Neurotic 4
Team Roles
Cory Lehan• Team Leader• Customer Interface• Support
Tim Meyer
• Test Manager• Process Manager
Jarrod Capps
• Implementation Manager• Plan Manager
Jonathan Bridges
• Design Manager• Quality Manager
CS 425 - Team Neurotic 5
Ethical Considerations
Client Relations Bi-weekly meetings at client’s discretion.
Individual Accomplishments Author and Co-author tags.
Academic Awareness Put forth best effort, due to the sharing of a group
grade.
CS 425 - Team Neurotic 6
Background
Cognitive Dissonance A cognition can be a belief or attitude a person holds. Dissonance occurs when cognitions contradict each
other. Very uncomfortable feeling in humans.
Responsibility
Cognition 2
Cognition 1 BeliefDissonance
Reduction occurs to reduce the unpleasant feeling.
CS 425 - Team Neurotic 7
Background
Neural Networks Two main groups: A.I. & Cognitive Modeling.
Artificial Intelligence with Neural Networks Problem solving. Pattern recognition. Can be trained or learn.
Cognitive Modeling in Neural Networks Models biological neural systems. Heavy use of mathematical models.
CS 425 - Team Neurotic 8
Background
Neural Network for this project Concerned with modeling, not problem solving. Based off the Consonance Model from “Connectionist
Models of Social Reasoning And Social Behavior”. Will attempt to simulate dissonance reduction.
CS 425 - Team Neurotic 9
Background
The Consonance Model. Cognitions
Two nodes at polar ends. Resistance to change
Nodes contain an activation level. Firing rate of neuron. Represents direction and strength of the
attitude or belief (the cognition).
+
-
Cognition
CS 425 - Team Neurotic 10
Background
The Consonance Model. Cognitions are connected through their nodes bi-
directionally. Connections are weighted positively or negatively. Cognitions are related positively or negatively.
+
-
+
-
Cognition 2
Cognition 1
CS 425 - Team Neurotic 12
Hardware Environment
What They Are Windows Environment (XP, Vista, 7) Minimum disk storage ~50mb 1 GHz Pentium III, or greater, processor.
How We Know Based off requirements of similar software the client
runs.
CS 425 - Team Neurotic 13
Software Requirements
Requirements Gathering Repeated meetings with the client. Use Cases Interface Mock-up to gather features for.
CS 425 - Team Neurotic 14
Software Requirements
Feature Priority List Generated from gathering phase. Priority assigned based off client need, and risk
assessment. Estimates are conservative, and based off previous
experience.
Priority Item# DescriptionEst. (days)
Very High Neural network components with attributes -
1 Cognitions, Nodes 22 Connections 23 Update algorithm for iterations 44 Neural network creation wizard 3
Feature Priority List Example:
CS 425 - Team Neurotic 15
Software Requirements
Key Features User created neural network. Ability to load/save past creations. Ability to edit properties of a created neural network. Start/Pause the neural network simulation. Graphical representation of the neural network. Graph output of dissonance.
CS 425 - Team Neurotic 17
Programming Language
What is it? Java
Why? Helpful Neural Network books with Java. JFreeChart and JOGL Java libraries. Java SWING provides interface creation.
CS 425 - Team Neurotic 18
Libraries
JFreeChart Allows dynamically created charts. Meets requirements based off tested code in High-
Fidelity prototype.
JOGL (Java OpenGL) Allows the graphical representation of the neural
network. Certain it meets required needs based off previous
experience.
CS 425 - Team Neurotic 19
Software Tools
Subversion Used with all documents and code.
NetBeansIDE Java support. JUnit Subversion support.
Doxygen For generating software reference documentation.
CS 425 - Team Neurotic 20
Coding & Documentation Standards
Code Comments Javadoc style comments
Indentation Standard 4 space “hanging paragraph” style.
Naming Camel Casing (e.g. camelCasing) Noun phrases for class names. Verb phrases for method names.
CS 425 - Team Neurotic 22
Software Engineering Methodology
Based off certain agile “Best Practices” Customer Involvement Test Before Code Code Review and Refactor Stand-up Meetings Problem Solving with Patterns
CS 425 - Team Neurotic 23
Developed in iterations.
Gather Requirements
Design - System Structure
Incremental Development
System Testing
Review & Release
Software Process
CS 425 - Team Neurotic 24
Software Process
Incremental Development Begins by converting features to tasks.
Design
Implementation &
Unit Testing
System TestingReview
Feature-to-Task
CS 425 - Team Neurotic 25
Software Process
Reasons for Process Choice Adaptability to changing requirements. Iterative nature gives an early working build. Allows for a lot of testing. Keeps client involved through iteration reviews.
CS 425 - Team Neurotic 26
Risk Analysis
RISK MITIGATION TACTIC
Dissonance reduction algorithm doesn’t work.
•Design pseudo-code of algorithm.•Priority of first iteration.
Interface and Graph Output don’t interact with one another correctly.
•Extensive documentation purchased on JFreeChart. •Implemented chart in high-fidelity prototype.
No working product early enough for client to begin research.
•The first iteration will contain only the bare and highest-priority items.
CS 425 - Team Neurotic 27
Project Plan
Iteration #1 – Very High Priority Features
ID Task Name Start Finish DurationDec 20 2009 Dec 27 2009
19 29 225 26 312220 51 3302818 423 272421
2 2d12/22/200912/21/2009Components: Nodes & Cognitions
3 2d12/23/200912/22/2009Components: Connections
4 4d12/30/200912/25/2009Algorithm
5 6d12/28/200912/21/2009Wizard Creation
6 1d12/21/200912/21/2009Menu Creation
7 1d12/23/200912/22/2009Control Implementation
8 1d12/24/200912/24/2009Graphical Labeling
9 2d12/22/200912/21/2009Save: State gathering
10 2d12/25/200912/24/2009Save: File I/O
11 2d12/24/200912/23/2009Load: File I/O
12 1d12/28/200912/28/2009Load: Network creation
13 4d1/1/201012/29/2009Real-time graphical output
14
1 1d12/18/200912/18/2009Design
Jan 3 2010
5d1/8/20101/4/2010Testing & Review
6 7 8 9
CS 425 - Team Neurotic 28
Project Plan
Iteration #2 – High Priority Features
ID Task Name Start Finish DurationJan 24 2010Jan 10 2010
13 29 11914 1811 15 262220178 9 31302510 2
2 16d2/1/20101/11/2010Graph: Dynamic creation
3 4d1/14/20101/11/2010Graph: Cognition & Nodes
4 4d1/21/20101/15/2010Graph: Node connections
5 10d1/29/20101/18/2010Graph: Update upon change
6 2d1/12/20101/11/2010Timeline: cross section
7 2d1/15/20101/13/2010Timeline: Controls & Zoom
8 6d1/21/20101/13/2010Graph: Item selection
9 6d2/1/20101/22/2010Graph: Pop-ups
Jan 17 2010
21 2416 282712 23
10
1 1d1/8/20101/8/2010Design
5d2/5/20102/1/2010Testing & Review
Jan 31 2010
3 4 5
CS 425 - Team Neurotic 29
Project Plan
Iteration #3 – Moderate Priority Features
ID Task Name Start Finish DurationFeb 14 2010Feb 7 2010
12 2113 19148 10 229 2320117 15 175 6 1816
2 3d2/10/20102/8/2010Storage of previous states
3 4d2/11/20102/8/2010Timeline – Graph interaction
4 4d2/19/20102/16/2010Access to previous states
5 4d2/18/20102/15/2010Attribute manipulation
6 3d2/12/20102/10/2010Consonance output
7
1 1d2/5/20102/5/2010Design
Feb 21 2010
24 25 26
5d2/26/20102/22/2010Testing & Review
CS 425 - Team Neurotic 30
Project Plan
Iteration #4 – Low Priority Features (Optional)
ID Task Name Start Finish DurationFeb 28 2010 Mar 14 2010
828 219 231412 20102 65 1927 13 26
2 4d3/4/20103/1/2010Real time graphical updates
3 15d3/19/20103/1/2010Brain Graphic
4 10d3/12/20103/1/2010Microsoft Excel compatability
Mar 7 2010 Mar 21 2010
18 2426 15 253 4 2217161 7 11
5
1 1d2/26/20102/26/2010Design
5d3/26/20103/22/2010Testing & Review
CS 425 - Team Neurotic 31
Testing Plan
Testing will be done in 3 phases: Phase 1: Functionality Testing. Done by individual
programmer. Phase 2: Requirements testing. Done by majority of
the team including Client. Phase 3: Final testing of Program. Done by the
majority of the team.
Unit testing will be done in all Phases.
CS 425 - Team Neurotic 33
Static class diagram of system structure
+registerObserver()+removeObserver()+notifyObservers()
«interface»Subject
+update()
«interface»Observer
-subject
1
-observers
*
+getInstance()+registerObserver()+removeObserver()+notifyObservers()+addIteration()
-uniqueInstance : NeuralNetworkData-observerList : ArrayList<Observer>
NeuralNetworkData
+initializeComponents()+update()
-networkData : Subject
NeuralNetworkDisplay
+initializeComponents()+update()
-networkData : Subject
DissonanceGraphDisplay
+addCognition()+connectCognitions()+calculateDissonance()+updateToNextIteration()
NeuralNetwork
+addConnectionToPositiveNode()+addConnectionToNegativeNode()
-positiveNode : Node-negativeNode : Node
Cognition
-weight : float
Connection
+addConnection()
-activation : float
Node
-network 1
-dataset
1
«interface»JPanel
1
2..*
1 2
1
*
-cognitions : ArrayList<Cognition>-dissonance : float
NeuralNetworkIteration
-dataset1
-iterations*
+createNeuralNetwork() : NeuralNetwork
NeuralNetworkCreator -creates -generates
Observer Pattern• Displays are updated when new data is available.• Allows dynamic addition or remove of observing displays.
Singleton Pattern• Only one instance of the network data can exist.• Gives a global access point to the data.
CS 425 - Team Neurotic 34
Graphics
Displays the Neural Network in a graphical, user-friendly way
Takes mouse input for easily modifying the network
Tasks are divided into separate classes for expandability
Algorithm
CS 425 - Team Neurotic 35
Current algorithms are rather simple Formulas contained in texts
Client may need more advanced algorithms Dynamic connection weights are desired Both client and team will work together to develop a
more advanced algorithm to simulate these changes
ai(t + 1) = ai(t) + neti[ceiling – ai(t)]i when neti ≥ 0ai(t + 1) = ai(t) + neti[ai(t) - floor]i when neti< 0consonancei = ∑iwijaiaj
consonancen = ∑i∑jwijaiaj
neti = resisti ∑iwijajdissonance = -consonancen/r
CS 425 - Team Neurotic 36
Algorithm
Pseudo-code created of simple dissonance reduction algorithm, and calculating consonance/dissonance.
calculateConsonance {float consonance;for(... Node i) {
for(... Connection j) {consonance += Node[i].con[j].weight *Node[i].activation *Node[j].activation;
}}
}
Sample of calculating consonance: