department of computer science university of nevada, reno

33
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: others

Post on 09-May-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Department of Computer Science University of Nevada, Reno

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.

Page 2: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

2 of 33 pages

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

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

2.2 Class Diagram ....................................................................................................................... 7 2.3 Class Descriptions ................................................................................................................. 9

2.3.1 Login Frame Class.......................................................................................................... 9 2.3.2 Main Frame Class......................................................................................................... 10 2.3.3 Admin Frame Class ...................................................................................................... 12 2.3.4 User Bean Class............................................................................................................ 13 2.3.5 User Tree Node Class................................................................................................... 14

2.4 Database Diagram ............................................................................................................... 15 2.5 Hardware Design Diagram.................................................................................................. 16

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

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

4 User Interface Design ................................................................................................................ 23 4.1 Hardware related screenshots.............................................................................................. 26

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

6 Glossary of Terms...................................................................................................................... 30 7 Design Document Revisions...................................................................................................... 32 Contributions of team members.................................................................................................... 33

Harold De Armas ...................................................................................................................... 33 Erik Hanchett............................................................................................................................. 33

Page 3: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

3 of 33 pages

Raymond Lee ............................................................................................................................ 33 Zack Norcross ........................................................................................................................... 33

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

Page 4: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

4 of 33 pages

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.

Page 5: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

5 of 33 pages

2 High-Level and Medium-Level Design

2.1 System Level Design

Figure 1. System Level Design

2.1.1 Login Frame subsystem The login frame subsystem is the main system that initiates and controls program execution starting from initial login to document retrieval and subsequent editing.

2.1.2 Administrative Role implementation The administrative role implementation deals with all admin and role assignments. After a user’s identity is confirmed, this implementation opens the correct interface and grants the appropriate permissions to the login frame subsystem.

2.1.3 User Information and Document subsystem The user information and document subsystem deals with data storage and retrieval. Documents and user information are stored in a database and is interfaced through this subsystem to get information and make changes.

2.1.4 Menu and Main Frame subsystem These subsystems control the events and look and feel of the drop down menus and panes on the main frame. The menu drop down triggers certain events to occur to be displayed on screen. The main frame consists of several smaller panes that show the tools and tree hierarchy.

Page 6: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

6 of 33 pages

2.1.5 User Interface (GUI) Music module The GUI music module will be the front-end of the system. It will be involved with all parts of the system and interact with the user. The primary implementation of the GUI will be made using the Java Swing library.

Page 7: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

7 of 33 pages

2.2 Class Diagram

Figure 2. Class Diagram

Page 8: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

8 of 33 pages

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

Page 9: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

9 of 33 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.

Page 10: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

10 of 33 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.

Page 11: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

11 of 33 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.

Page 12: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

12 of 33 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.

Page 13: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

13 of 33 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.

Page 14: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

14 of 33 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.

Page 15: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

15 of 33 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

Page 16: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

16 of 33 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

Figure 4. High Level step pad schematic

Page 17: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

17 of 33 pages

tablet PC. The software will read the input and act on it accordingly. Figure 6 contains a low level schematic of the implementation.

Page 18: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

18 of 33 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 } }

Page 19: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

19 of 33 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

Page 20: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

20 of 33 pages

Situation: Login Role Procedures

Event: When user verification is successful, begin the process to load interface and documents.

Description: The flow chart describes the actions that need to be taken to load the correct view and file tree view based on user’s role in the organization.

Flow-Chart Diagram:

Page 21: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

21 of 33 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 t he

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 docu ment. And

the notes are updated to rejected in the requests d atabase.

Page 22: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

22 of 33 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.pd f 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/environment al_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.

Page 23: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

23 of 33 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

Page 24: Department of Computer Science University of Nevada, Reno

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

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

Page 25: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

25 of 33 pages

Figure 13. Open skin menu

Figure 14. One of the 11 available skins

Figure 15. Open document dialog

Figure 16. Quit dialog

Page 26: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

26 of 33 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

Page 27: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

27 of 33 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.

Page 28: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

28 of 33 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-a nd-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.

Page 29: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

29 of 33 pages

5.10 IR Prox Logic http://www.schursastrophotography.com/robotics/irpr oxlogic.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.

Page 30: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

30 of 33 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.

Page 31: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

31 of 33 pages

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.

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.

Page 32: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

32 of 33 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.

Page 33: Department of Computer Science University of Nevada, Reno

Role-Coll Design Documentation

33 of 33 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