department of computer science university of …rolecoll/role-collddspring.pdfdepartment of computer...

29
Department of Computer Science University of Nevada, Reno Role-Coll Role Based Collaboration Software Design Documentation CS 425 3/30/2007 Software Team: Harold De Armas, Erik Hanchett, Raymond Lee, Zack Norcross Business Team: Mark Tyman, Max Volger Internal Advisors: Sergiu Dascalu, PhD., Gary Valiere PhD.

Upload: haminh

Post on 22-May-2018

220 views

Category:

Documents


2 download

TRANSCRIPT

     

Department of Computer Science University of Nevada, Reno

Role-Coll Role Based Collaboration Software

Design Documentation

CS 425

3/30/2007 Software Team: Harold De Armas, Erik Hanchett, Raymond Lee, Zack Norcross

Business Team: Mark Tyman, Max Volger

Internal Advisors: Sergiu Dascalu, PhD., Gary Valiere PhD.

   

Role-Coll Design Documentation

  2 of 29 pages

Table of Contents 1 Introduction .................................................................................................................................. 3 2 High-Level and Medium-Level Design ....................................................................................... 4

2.1 System Level Design ............................................................................................................. 4 2.1.1 Login Frame subsystem .................................................................................................. 4 2.1.2 Administrative Role implementation ............................................................................. 4 2.1.3 User Information and Document subsystem .................................................................. 4 2.1.4 Menu and Main Frame subsystem .................................................................................. 4 2.1.5 User Interface (GUI) Music module ............................................................................... 4

2.2 Class Diagram ....................................................................................................................... 5 2.3 Class Descriptions ................................................................................................................. 6

2.3.1 Login Frame Class .......................................................................................................... 6 2.3.2 Main Frame Class ........................................................................................................... 7 2.3.3 Admin Frame Class ........................................................................................................ 9 2.3.4 User Bean Class ............................................................................................................ 10 2.3.5 User Tree Node Class ................................................................................................... 11

2.4 Database Diagram ............................................................................................................... 12 2.5 Hardware Design Diagram .................................................................................................. 13

3 Detailed Design .......................................................................................................................... 14 3.1 Engineering Considerations ................................................................................................ 18

3.1.1 IEEE 802.11 ................................................................................................................. 18 3.1.2 EIA RS-232 .................................................................................................................. 18 3.1.3 FCC Part 15 – Radio Frequency Devices ..................................................................... 18 3.1.4 USB 2.0 ........................................................................................................................ 18 3.1.5 RoHS ............................................................................................................................ 18

4 User Interface Design ................................................................................................................ 19 4.1 Hardware related screenshots .............................................................................................. 22

5 Annotated References ................................................................................................................ 23 5.1 Music Notation (Berklee Guide) (Paperback) ..................................................................... 23 5.2 E-Stand Music ..................................................................................................................... 23 5.3 Imagionation Cubed ............................................................................................................ 23 5.4 Sibelius ................................................................................................................................ 23 5.5 Finale ................................................................................................................................... 24 5.6 C# White Board ................................................................................................................... 24 5.7 Open-Xchange ..................................................................................................................... 24 5.8 Babylon Java Chat ............................................................................................................... 24 5.9 Java USB API ...................................................................................................................... 24 5.10 IR Prox Logic .................................................................................................................... 25 5.11 8051 Microcontroller FAQ ................................................................................................ 25

6 Glossary of Terms ...................................................................................................................... 26 7 Design Document Revisions ...................................................................................................... 28 Contributions of team members .................................................................................................... 29

Harold De Armas ...................................................................................................................... 29 Erik Hanchett ............................................................................................................................. 29 Raymond Lee ............................................................................................................................ 29 Zack Norcross ........................................................................................................................... 29 

Role-Coll Design Documentation

  3 of 29 pages

1 Introduction The objective of Role-Coll is to be an interactive collaboration product for use in the music industry. Role-Coll will allow multiple parties to view and make changes to a piece of music to help enhance the performance setting. The key advantage is the product will allow users to create changes to a piece of music based on their role in the orchestra. In this environment, users can freely make changes to their own music, and propose changes to leaders of specific groups, who can then share these changes to everyone in their section.

Collaborative software is a powerful tool because it facilitates the creation and dissemination of information. Collaboration can currently be improved in the following ways; by adding roles to each of the users viewing a document, allowing users to annotate their document separately from the world, and allowing a variety of the types of documents that are collaborated on.

By focusing on the music aspect of collaborative software, we enter a market that is relatively free from competition. The current state-of-the-art in collaborative music software includes the ability for users to share a document among an orchestra, however annotations are limited to pen strokes and changes to the music are generally not allowed. Role-Coll has been designed from the bottom up to stand out from its competition. Role-Coll will have the ability for users to open, make changes to a document, and have others be able to view these changes in real time. Role-Coll will also include many other features that will help during the actual performance as well.

Along with the software implantation for Role Coll, there will be hardware components used to enhance the music performance function of the software. The hardware component will be used when a user is in the performance mode to advance and go back pages. There are two options that can be implemented. The optimal solution is to build a step pad where the user can step to the right or left to advance or go back a page. This Role-Coll Role Based Collaboration Software would involve making a step pad and using a keyboard circuit. The step pad would act like a switch, similar to a key stroke. The switch would be connected to a keyboard circuit where the input would be decoded and sent to the tablet pc. A future improvement on the step pad would be turning it into a wireless device that talks to the tablet pc rather than using a USB connection.

The second option is to use two infrared sensors in front of the tablet and detect if the user waves their hand in front of it. The two infrared sensors would be attached to a microcontroller where it will have a program to detect if both sensors are triggered and in what order. The microcontroller will send a signal to the tablet PC through the USB port, where the software application is to handle the appropriate command.

With the combination of software and hardware Role-Coll will be the premier music performance product for the future. With that said there is one issue that must be addressed. A patent for a product similar to Role-Coll was recently discovered however the Role-Coll product is sufficiently different from the patent. The patent describes a system where the conductor/composer is working on a piece of music and is creating and modifying it on the fly. Role-Coll is not a music composition tool; it is a music performance tool. Role-Coll also adds roles to the orchestra members which are not present in the patent. Role-Coll provides users with the ability to changes pages during a performance via foot controls or hand sensors depending on accessibility of the instrument. This addition is not present in the patent. The patent does not describe an overall interface for the music but does describe an input scheme via keyboard and pen input. Since Role-Coll is not dependent on either, there is no conflict with the patent.

Role-Col

 

2 High

2.1 Sys

2.1.1 LoThe loginstarting f

2.1.2 AThe admuser’s ideappropria

2.1.3 UsThe user and user informati

2.1.4 MThese sumain framscreen. T

2.1.5 UsThe GUIthe systemusing the

ll

h-Level

stem Lev

ogin Framn frame subsfrom initial l

dministrainistrative roentity is conate permissio

ser Informinformationinformationion and mak

Menu and Mubsystems come. The meThe main fra

ser InterfaI music modum and intera

e Java Swing

and Med

vel Design

me subsyssystem is theogin to docu

ative Role ole impleme

nfirmed, this ons to the lo

mation andn and documn are stored inke changes.

Main Framontrol the eveenu drop dowame consists

ace (GUI) ule will be thact with the ug library.

dium-Le

n

Figure 1. S

stem e main systemument retriev

implemenntation dealsimplementa

ogin frame su

d Documement subsyste

n a database

me subsysents and look

wn triggers cs of several s

Music mohe front-enduser. The pr

evel Des

System Level D

m that initiatval and subs

ntation s with all ad

ation opens thubsystem.

ent subsyem deals withe and is inter

stem k and feel of

certain eventsmaller pane

odule d of the systerimary imple

sign

Design

tes and contequent editin

dmin and rolehe correct in

ystem h data storag

rfaced throug

f the drop dots to occur tos that show

em. It will bementation o

Design

rols programng.

e assignmennterface and

ge and retriegh this subsy

own menus ao be displayethe tools and

be involved wof the GUI w

n Document

4 of 29 p

 

m execution

nts. After a grants the

eval. Documystem to get

and panes oned on d tree hierarc

with all partswill be made

tation

pages

ments

n the

chy.

s of

Role-Coll Design Documentation

  5 of 29 pages

2.2 Class Diagram  

UserBean (from rolecoll::beans)

-userFirstName:String= null -userLastName:String= null -userLogin:String= null -userID:String= null -rolePriority:int= 0 -roleName:String= null -superiorID:String= null -password:String= null -admin:boolean= false << create >>+UserBean():UserBean +getPassword():String +getRoleName():String +getRolePriority():int +getSuperiorID():String +getUserID():String +getUserFirstName():String +getUserLastName():String +getUserLogin():String +setPassword(password:String):void +setRoleName(roleName:String):void +setRolePriority(rolePriority:int):void +setSuperiorID(superiorID:String):void +setUserID(userID:String):void +setUserFirstName(userFirstName:String):void +setUserLastName(userLastName:String):void +setUserLogin(userLogin:String):void +isAdmin():boolean +setAdmin(admin:boolean):void

UserTreeNode (from rolecoll::beans)

<< create >>+UserTreeNode():UserTreeNode << create >>+UserTreeNode(userObject:Object):UserTreeNode << create >>+UserTreeNode(userObject:Object,allowsChildren:boolean):UserTreeNode +getUserInfo():UserBean +setUserInfo(userInfo:UserBean):void

LoginFrame (from rolecoll::ui::frames)

<< create >>+LoginFrame():LoginFrame -initComponents():void -themeComboBoxItemStateChanged():void -loginActionPerformed():void -showLoginError():void -tryLogin():void +setMainFrame(mf:MainFrame):void +getmLoginField():JTextField +main(args:String[]):void

GUIBean (from rolecoll::beans)

-lfMap:HashMap +THEME_LIST:String[]= new String[] {"Acryl", "Aero", "Aluminium", "Bernstein",ı "Fast", "HiFi", "Luna", "McWin", "Mint", "Noire", "Smart"} +PLAF_METAL:String= "javax.swing.plaf.metal.MetalLookAndFeel" +PLAF_WINDOWS:String= "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" +PLAF_MOTIF:String= "com.sun.java.swing.plaf.motif.MotifLookAndFeel" +PLAF_MAC:String= "com.sun.java.swing.plaf.mac.MacLookAndFeel" +PLAF_OTHER:String= "com.jgoodies.looks.plastic.PlasticXPLookAndFeel" +PLAF_ACRYL:String= "com.jtattoo.plaf.acryl.AcrylLookAndFeel" +PLAF_AERO:String= "com.jtattoo.plaf.aero.AeroLookAndFeel" +PLAF_ALUMINIUM:String= "com.jtattoo.plaf.aluminium.AluminiumLookAndFeel" +PLAF_BERNSTEIN:String= "com.jtattoo.plaf.bernstein.BernsteinLookAndFeel" +PLAF_FAST:String= "com.jtattoo.plaf.fast.FastLookAndFeel" +PLAF_HIFI:String= "com.jtattoo.plaf.hifi.HiFiLookAndFeel" +PLAF_LUNA:String= "com.jtattoo.plaf.luna.LunaLookAndFeel" +PLAF_MCWIN:String= "com.jtattoo.plaf.mcwin.McWinLookAndFeel" +PLAF_MINT:String= "com.jtattoo.plaf.mint.MintLookAndFeel" +PLAF_NOIRE:String= "com.jtattoo.plaf.noire.NoireLookAndFeel" +PLAF_SMART:String= "com.jtattoo.plaf.smart.SmartLookAndFeel" -lookAndFeel:String= PLAF_ACRYL -theme:String= "Default" << initializer >>-__initializer():void << create >>+GUIBean():GUIBean +setLookAndFeel(aLookAndFeel:String):void +getLookAndFeel():String +setTheme(aTheme:String):void +getTheme():String +isMetalLook():boolean +isWindowsLook():boolean +isMotifLook():boolean +isMacLook():boolean +isOtherLook():boolean +isFastLook():boolean +isSmartLook():boolean +isAcrylLook():boolean +isAeroLook():boolean +isBernsteinLook():boolean +isAluminiumLook():boolean +isMcWinLook():boolean +isMintLook():boolean +isHiFiLook():boolean +isNoireLook():boolean +isLunaLook():boolean +updateLF(lf:String):void +updateLF(lf:String,comp:JComponent):void

MainFrame (from rolecoll::ui::frames)

-yAdjustment:int= 12 -xAdjustment:int= 1 -heightAdjustment:int= 13 -widthAdjustment:int= 2 -inComponent:boolean -isMousePressed:boolean= false << create >>+MainFrame():MainFrame -initComponents():void -createTextNote():void -buttonOpenEvent(evt:ActionEvent):void -menuOpenEvent(evt:ActionEvent):void -openAction():void -createMusicPage():View -createUsersTab():View -createToolsTab():View ~createMenu():void -removeInternalWindow(e:MouseEvent):void -createNote(noteClass:String):void

AdminFrame (from rolecoll::ui::frames)

<< create >>+AdminFrame():AdminFrame -initComponents():void -menuAddUserEvent(evt:ActionEvent):void -menuEditUserEvent(evt:ActionEvent):void -menuDeleteUserEvent(evt:ActionEvent):void -loadUserInfoEvent(evt:FocusEvent):void +main(args:String[]):void

EditUserFrame (from rolecoll::ui::frames)

<< create >>+EditUserFrame():EditUserFrame -initComponents():void +main(args:String[]):void

NewUserFrame (from rolecoll::ui::frames)

<< create >>+NewUserFrame():NewUserFrame -initComponents():void +main(args:String[]):void

Figure 2. Class Diagram

Role-Coll Design Documentation

  6 of 29 pages

2.3 Class Descriptions

2.3.1 Login Frame Class The login frame class will display the login prompt and accept the username and password input from user. The login frame class will also call the functions to help validate the input from user. Login Frame Class

Method: loginActionPerformed Visibility: private

Return Type: void Parameters: Description: Calls tryLogin method which checks the password and authenticated user. If user passes

password check admin frame is opened else error is shown.  Login Frame Class

Method: showLoginError Visibility: private

Return Type: void Parameters: Description: Displays error message that incorrect password was used.

 Login Frame Class

Method: tryLogin Visibility: private

Return Type: void Parameters: Description: Checks password and authenticates user. If user passes password check admin frame is

opened else an error is shown.  Login Frame Class

Method: initComponents Visibility: private

Return Type: void Parameters: Description: Initializes all the panels, buttons and all other GUI elements to the LoginFrame.

   

Role-Coll Design Documentation

  7 of 29 pages

2.3.2 Main Frame Class The main frame class handles the GUI elements in the normal view of the program. It will handle button click events and other click events. Main Frame Class

Method: openAction Visibility: private

Return Type: void Parameters: Description: When user selects to open a file this class is called and the file open user pane is

displayed.  Main Frame Class

Method: createMusicPage Visibility: private

Return Type: void Parameters: Description: After a file is opened a music user pane is created for the file to be displayed on.

 Main Frame Class

Method: createUsersTab Visibility: private

Return Type: void Parameters: Description: Creates a jscrollpane on the left side of the application that displays all the users of the

program in the associated tree hierarchy.  Main Frame Class

Method: createToolsTab Visibility: private

Return Type: void Parameters: Description: Creates a jscrollpane on the right side of the application that displays all possible tools

the application can use.  Main Frame Class

Method: createToolsTab Visibility: private

Return Type: void Parameters: Description: Creates a jscrollpane on the right side of the application that displays all possible tools

the application can use.    

Role-Coll Design Documentation

  8 of 29 pages

Main Frame Class Method: createMenu

Visibility: private Return Type: void

Parameters: Description: Creates a menu bar at the top of the program, including File, Open, Close.

 Main Frame Class

Method: createTextNote Visibility: private

Return Type: void Parameters: Description: Calls createNote method that allows for notes to be dragged on to the music and be

displayed.    

Role-Coll Design Documentation

  9 of 29 pages

2.3.3 Admin Frame Class The admin frame class is used to control the GUI elements in the admin view. It will handle the click events and button click events for the admin view. Admin Frame Class

Method: menuAdduserEvent Visibility: private

Return Type: void Parameters: Description: Creates add user frame when admin logins in and chooses add user.

 Admin Frame Class

Method: initComponents Visibility: private

Return Type: void Parameters: Description: Initializes all jpanels and gathers all information for the admin frame.

 Admin Frame Class

Method: menuEditUserEvent Visibility: private

Return Type: void Parameters: Description: Allows for editing of selected users from menu.

 Admin Frame Class

Method: menuDeleteUserEvent Visibility: private

Return Type: void Parameters: Description: Event is triggered when delete users is select from admin frame. Deletes user info.

 Admin Frame Class

Method: loadUserInfoEvent Visibility: private

Return Type: void Parameters: Description: Loads all the user info into the panels and frames on screen for the admin.

   

Role-Coll Design Documentation

  10 of 29 pages

2.3.4 User Bean Class The user bean class is used to store information about specific users to be used when calling up available documents and permissions. User Bean Class

Method: getRolePriority Visibility: public

Return Type: int Parameters: Description: Returns the RolePriority

 User Bean Class

Method: getSuperiorID Visibility: public

Return Type: string Parameters: Description: Returns the string user Id

 User Bean Class

Method: getUserID Visibility: public

Return Type: string Parameters: Description: Returns the User Id

 User Bean Class

Method: getUserFirstName Visibility: public

Return Type: string Parameters: Description: Returns the users first name

 User Bean Class

Method: setUserLogin Visibility: public

Return Type: void Parameters: string Description: Receives a string and sets userLogin to the string passed in.

 User Bean Class

Method: setAdmin Visibility: public

Return Type: void Parameters: boolean Description: Makes user admin if login was from admin.

   

Role-Coll Design Documentation

  11 of 29 pages

2.3.5 User Tree Node Class The user tree node class is used to store a hierarchy of users in order to determine the superiors and subordinates of a specific user. User Tree Node Class

Method: getUserInfo Visibility: public

Return Type: string Parameters: Description: Returns the user id

 User Tree Node Class

Method: setUserInfo Visibility: public

Return Type: void Parameters: string Description: Sets the userInfo variable to the string passed in.

 User Tree Node Class

Method: UserTreeNode (Constructor) Visibility: public

Return Type: UserTreeNode Parameters: object Description: Creates a tree node that has no children and no parent, later this used to create tree from

xml.    

Role-Coll Design Documentation

  12 of 29 pages

2.4 Database Diagram Figure 3 shows the database tables, relationships, keys and fields to be used in the database.

     

Users User_ID

− User_Name − Password_Hash

Memberships Membership_ID User_ID Role_ID

− StartDate − EndDate

Roles Role_ID

− RoleName − tid − pnt − lft − rgt

Performances Performance_ID Role_ID Document_ID

− Part_ID − StartDate − EndDate

Documents Document_ID

− DocumentName − DocumentURL − UploadDate − ModDate

Updates Note_ID Performance_ID

− NoteArgs − DateTime

Notes Note_ID User_ID Update_ID

− NoteArgs − isModified

Requests Request_ID Performance_ID

− NoteArgs − DateTime

Legend Primary Key Foreign Key

− Data Member

Figure 3. Database Diagram

Role-Coll Design Documentation

  13 of 29 pages

2.5 Hardware Design Diagram  

Figure 4 depicts a high level schematic of the step pad. The step pad will be about 3 feet wide. There will be three parts the user will deal with on the step pad; the stand, right step, and the left step. These parts are illustrated in the upper diagram in Figure 4. The user will be able to rest their feet in the middle during the performance. When they step on the right arrow, the page will advance. When they step on the left arrow, the page will go back. On the technical side, the left and right arrows will act like switches connected to a keyboard circuit board. The two signals will be unique to the keyboard decoder. The keyboard circuit board will relay an interrupt to the software. From the keyboard circuit board a USB connection will be required to talk to the tablet PC. For a future improvement on the step pad, a wireless connection to the tablet PC will complete the features required.

Figure 5. High level IR schematic

Figure 6. Low level IR schematic Figure 5 illustrates the infrared (IR) implementation for the page turning device. The circuit will require two light emitting diodes (LED) to detect a hand wave. The diodes will be able to detect a hand wave from left to right or right to left that will signal a page turn. Once the hand wave is detected, the IR sensors will send the data to a microcontroller, like an Intel 8051, where it will be processed and encoded. The 8051 will send the data to the tablet PC. There will be a conversion from the standard serial output from the 8051 to the standard USB connection on the tablet PC. The software will read the input and act on it accordingly. Figure 6 contains a low level schematic of the implementation.    

Figure 4. High Level step pad schematic

Role-Coll Design Documentation

  14 of 29 pages

3 Detailed Design

Situation: Login Validation Event: When user first opens program.

Description: The pseudocode describes the actions taken when the user first opens the program and is prompted for a username and password. The function will look in the database for the username and password and see if the input was correct.

Pseudocode: Login(int password, int name) { pass = md5(password) query = “SELECT pw FROM users WHERE ” + “login = ‘name’ and password =pass” if(!result = @mysql_query (query, result)) print “Error Database is down try again” if(mysql_num_rows(result) != 1) { print “Wrong user name or password } else { print “Conratulations your logged in!” continue on with program loginvariable = 1 } }

 

Role-Coll Design Documentation

  15 of 29 pages

Situation: Edit-Submit Changes Event: When user saves changes to the document.

Description: The data-flow diagram illustrates the flow of data when a user is saving changes to a document. It starts with the user requesting a save and goes through the process that occurs when the save is accepted and how it is pushed through the database to other users.

Data-Flow Diagram:

   

Permissions Validator

User’s Roles 

Requested Document Name

Database 

Document Request

Document Constructor 

File Server

Document Updates 

Document URL 

Document XML 

Document Display Final Document XML 

Screen

Start 

Finish 

Role-Col

 

SituationEve

Descripti

Flow-ChDiagra

 

ll

n: Login Roent: When uion: The flo

tree vie

hart am:

ole Proceduuser verificatiow chart descrew based on u

 

ures ion is successribes the actiouser’s role in t

sful, begin theons that need the organizati

e process to loto be taken toion.

Design

oad interface o load the cor

n Document

16 of 29 p

and documenrrect view and

tation

pages

nts. d file

Role-Coll Design Documentation

  17 of 29 pages

Situation: Edit-Submit Changes Event: “Save” button is clicked.

Description: The pseudocode describes the actions taken when the save button is clicked. Depending on the role of the user, the document save will perform different actions. It also shows how edited and submitted appendices are handled.

Pseudocode: IF user has privileges to add notes to a document. then the notes are saved to the updates table in the

database and pushed to all users the next time the connect ELSE the notes are saved to the requests table and the users

superior can accept or reject them. IF the superior accepts the notes. then the notes are moved to the updates table and all users

documents are updated the next time they connect. ELSE the notes are only visible on the users local document. And

the notes are updated to rejected in the requests database.

     

Role-Coll Design Documentation

  18 of 29 pages

3.1 Engineering Considerations 3.1.1 IEEE 802.11 http://standards.ieee.org/getieee802/802.11.html Refers to a family of specifications developed by the IEEE for wireless LAN technology. 802.11 specifies an over-the-air interface between a wireless client and a base station or between two wireless clients. The IEEE accepted the specification in 1997. 802.11g applies to wireless LANs and provides 20+ Mbps in the 2.4 GHz band.

3.1.2 EIA RS-232 http://en.wikipedia.org/wiki/RS232 Short for recommended standard-232C, a standard interface approved by the Electronic Industries Alliance (EIA) for connecting serial devices. In 1987, the EIA released a new version of the standard and changed the name to EIA-232- D. And in 1991, the EIA teamed up with Telecommunications Industry association (TIA) and issued a new version of the standard called EIA/TIA-232-E. Many people, however, still refer to the standard as RS-232C, or just RS-232.

3.1.3 FCC Part 15 – Radio Frequency Devices www.fcc.gov/oet/info/rules/part15/part15-8-14-06.pdf This standard is intended to regulate wireless devices using radio frequency. For the step pad device it must follow the following: 1. This device may not cause harmful interference 2. This device must accept interference received, including interference that may cause undesired operation.

3.1.4 USB 2.0 http://www.usb.org/developers/docs/ Short for Universal Serial Bus, an external bus standard that supports data transfer rates of 12 Mbps. A single USB port can be used to connect up to 127 peripheral devices, such as mice, modems, and keyboards. USB also supports Plug-and- Play installation and hot plugging. Also referred to as Hi-Speed USB, USB 2.0 is an external bus that supports data rates up to 480Mbps. USB 2.0 is an extension of USB 1.1. USB 2.0 is fully compatible with USB 1.1 and uses the same cables and connectors.

3.1.5 RoHS http://www.samtec.com/standard_products/environmental_compliance/requirements/rohs_req.asp The RoHS Directive stands for "the restriction of the use of certain hazardous substances in electrical and electronic equipment". This Directive bans the placing on the EU market of new electrical and electronic equipment containing more than agreed levels of lead, cadmium, mercury, hexavalent chromium, polybrominated biphenyl (PBB) and polybrominated diphenyl ether (PBDE) flame retardants.  

Role-Coll Design Documentation

  19 of 29 pages

4 User Interface Design This section contains screenshots of the current version of the Roll-Coll Music Stand.

`  Figure 7. The login frame for Role-Coll

 

 Figure 8. Dialog frame shown if a user enters an incorrect user name or password

 

 Figure 9. Users panel is shown on the right

 

 Figure 10. Tools panel is shown on the left

 Figure 11. An open note is shown in the center of this document

 

 Figure 12. The same note without the edit frame around it

Role-Coll Design Documentation

  21 of 29 pages

 

 Figure 13. Open skin menu

 

 Figure 14. One of the 11 available skins

  

 Figure 15. Open document dialog

  

 Figure 16. Quit dialog

     

Role-Coll Design Documentation

  22 of 29 pages

4.1 Hardware related screenshots  

Figure 17. Goal of the final product for the step pad

Figure 18. Keyboard circuit used for step pad

Figure 19. A picture of a photodiode that will be used for the infrared sensor

Figure 20. An example of an 8051 microcontroller on a circuit board

    

Role-Coll Design Documentation

  23 of 29 pages

5 Annotated References

5.1 Music Notation (Berklee Guide) (Paperback) http://www.amazon.com/Music-Notation-Berklee-Guide McGrain/dp/0793508479/ref=pd_bbs_sr_1/103-5281432- 8149441?ie=UTF8&s=books&qid=1173318402&sr=8-1 Learn the essentials of music notation, from fundamental pitch and rhythm placement to intricate meter and voicing alignments. This book also covers the correct way to subdivide rhythms and notate complex articulations and dynamics. An excellent resource for both written and computer notation software!

5.2 E-Stand Music http://www.estandmusic.com/ Estand is a music performance assistant tool. It’s a software tool with an optional provided tablet pc that makes it easy to make music notations electronically. The current toolset for E-stand music is less than the ambitions offered by Roll-Coll. E-Stand offers basic text annotations and a pen tool without any pre-sets. It also includes a foot pedal attachment to allow for easy page turning. It can be used in live performances and has some emerging collaboration tools. It’s Role-Coll biggest competitor.

5.3 Imagionation Cubed http://www.imaginationcubed.com/ Imaginationcubed.com is a test site for GE’s latest web collaboration tool. It allows for multiple parties to share ideas in a real time whiteboard with others. Tools provided include a basic pen tool, text type tool, preset geometric shapes, and an assortment of stamps. Users can be invited to join via AOL instant messenger or by email. It also has the functionality of replaying or deleting what was drawn based on the real-time process undertaken while using the whiteboard.

5.4 Sibelius http://www.sibelius.com/ Sibelius is a software tool for writing, playing, printing and publishing musical compositions. It can be used by anyone, student and teacher alike, to make their music writing easier. It contains a set of tools to create a composition from scratch and to edit a composition once it has been created. While creating the composition, Sibelius keeps track of the different parts that are being edited and can dynamically update the view to reflect a complete score or a single part. It also includes several collections of sounds for MIDI playback as well as saving to MIDI.

Role-Coll Design Documentation

  24 of 29 pages

5.5 Finale https://www.finalemusic.com/ Finale is a line of products that cater towards the music creator. It allows for complete control over music notation and playback. It also supports both the Mac and PC line of computers. Finale supports integration with a wide variety of interfaces in order to make music creation easy. Basic input involves keyboard and mouse entry of each note. Input can also be captured from MIDI input provided by electronic instruments such as keyboard. Recent improvements allow OCR input where previously printed music can be scanned and automatically made into electronic versions with minor editing.

5.6 C# White Board http://www.codeproject.com/dotnet/csharpwhiteboard.asp The link above is a resource that can be used to develop the editing portion of a document in the application. The white board program allows drawings, for example with a pencil tool, and displays it to both people engaged in the session in real time. The code will help us with how to implement that part of the program. The code only handles a session of two users. Role-Coll will modify it and allow multiple users.

5.7 Open-Xchange http://www.open-xchange.com/EN/developer/ Open-Xchange is preexisting open source software that does online collaboration. It has a lot of code for setting up servers to handle different collaboration tasks. Some other features available include: calendars, e-mailing, and more advanced functions like forums and bulletin boards. This is a tool more geared towards project management that might help Role-Coll to get up to par with current available software.

5.8 Babylon Java Chat http://www.visopsys.org/andy/babylon/ The Babylon chat program is a java chat applet that allows conversations between people like other chat programs. The creator of Babylon released some of the code on this site to help developers. It also has a white board program that can help in the implementation of Role-Coll for our real time collaboration. The program also has some client-server code which will help the networking aspect of Role-Cole. It is written in java so it will not be directly ported over. It can be used as a model for the coding process.

5.9 Java USB API http://today.java.net/pub/a/today/2006/07/06/java-and-usb.html?page=2 This article is a reference on how to interface USB devices with a Java application. The article describes some of the basic library functions in the Java USB API. It will be the basis of getting the hardware devices to talk with the software application. Some modifications are required as the hardware devices for Role-Coll are custom devices that may require some tweaks.

Role-Coll Design Documentation

  25 of 29 pages

5.10 IR Prox Logic http://www.schursastrophotography.com/robotics/irproxlogic.html The webpage summarized a robotics project that used IR sensors to determine a path for a robot to take. The article will be helpful in learning how IR sensors work and how to implement them in the hardware component. The article also shows state diagrams that may help in programming the logic for the microcontroller.

5.11 8051 Microcontroller FAQ http://www.faqs.org/faqs/microcontroller-faq/8051/ This page will be used as a reference for quick questions about the 8051 microcontrollers. It has things for programming, compiling, and interface hardware with the chip. If there are problems that arise when implementing the hardware, this is a great source to find an answer to the basic questions when troubleshooting.

Role-Coll Design Documentation

  26 of 29 pages

6 Glossary of Terms Collaboration To work jointly with others or together especially in an intellectual endeavor

Concurrency The property of systems which consist of computations that execute overlapped in time, and permit the sharing of common resources between those overlapped computations

Database A usually large collection of data organized especially for rapid search and retrieval

Difference The element or factor that separates or distinguishes contrasting situations

Document A computer file containing information input by a computer user and usually created with an application

GUI Graphical User Interface; the front end of the program where users interact with to use the features in the program Role-Coll Role Based Collaboration Software

Key Signature The sharps or flats placed after a clef in music to indicate the key

Menu A list shown on the display of a computer from which a user can select the operation the computer is to perform

Measure A grouping of a specified number of musical beats located between two consecutive vertical lines on a staff

Module Different set of rules, tools, and pictures for a different situation.

Musical Note A written symbol used to indicate duration and pitch of a tone by its shape and position on the staff

Musical Staff The horizontal lines with their spaces on which music is written

Repository A place, room, or container where something is deposited or stored

Role A function or part performed especially in a particular operation or process. The predefined relative relation to other individuals in a system

Tool bar List of tools available to user to use in the program

Time Signature A sign used in music to indicate meter and usually written as a fraction with the bottom number indicating the kind of note used as a unit of time and the top number indicating the number of units in each measure

Use Case A use case is a methodology used in system analysis to identify, clarify, and organize system requirements

Whiteboard A hard smooth white surface used for writing or drawing on with markers

XML A markup language with use and design similar to HTML but employing tags that indicate the logical structure in addition to the display specifications of the coded data

Real Time The actual time during which something takes place

Photodiode - A semiconductor diode that functions as a light detector. Photodiodes are have a r a window or fiber connection, in order to let in the light to the sensitive part of the device.

Universal Serial Bus (USB) - A serial bus standard to interface devices. USB was devised to help replace all serial and parallel ports on PCs, since these were not standardized and required a large number of device drivers to be developed and maintained.

Role-Coll Design Documentation

  27 of 29 pages

Electric Current - The flow (movement) of electric charge. The SI unit of electric currents is the ampere (A).

Microcontroller (MCU)- A “computer-on-a-chip.” It is a type of microprocessor emphasizing self-sufficiency and cost-effectiveness, in contrast to a general-purpose microprocessor. Microcontrollers do not have an address bus or a data bus, because they integrate all the RAM and non-volatile memory on the same chip as the CPU. Because they need fewer pins, the chip can be placed in a much smaller, cheaper package.

Firmware - Software that is embedded in a hardware device, it is often provided on flash ROMs or as a binary image file that can be uploaded onto existing hardware by a user.

Intel 8051 – A Harvard architecture single chip microcontroller, which was, developed by Intel in 1980 for use in embedded systems. It was extremely popular in the 1980s and early 1990s, but today it has largely been superseded by a vast range of enhanced devices with 8051.

Role-Coll Design Documentation

  28 of 29 pages

7 Design Document Revisions

• Introduction re-written to include more focus on music functionality, hardware additions and patent dispute.

• Revised System Level Design and Class Diagram to reflect the latest software architecture.

• Hardware specifications added to conform to new addition of hardware component. • Engineering Standards added to conform to new addition of hardware components. • All new initial snapshots of user interface and hardware components. • Combined list of references across all versions. • Detailed Design, References, and Glossary were included from previous projects dur to

participation in the Governor’s Cup.    

Role-Coll Design Documentation

  29 of 29 pages

Contributions of team members

Harold De Armas • Table of contents & Introduction • Database diagram • Design document differences • Contributions of team members

Erik Hanchett • System level design and annotations • Class descriptions

o All of them o Really, there were a lot of them

Raymond Lee • Hardware diagrams • Engineering considerations • Hardware snapshots • Hardware related reference articles

Zack Norcross • Class Diagram • Class Diagram again • User interface screenshots • The bulk of the coding