CSCI

profileemey.b
teamfoursports_sdd_final.doc

TeamFourSports Teammate Pro SDD

Teammate Pro v.1.0

Interactive Team Management Web Application

Software Design Description

February 19, 2007

Prepared for:

TeamFourSports

Prepared By:

Jonathan Allen

Vic Beach

Nick Gavin

Jeromey Lewis

Approvals

Title

Printed Name

Signature

Date

Client Representative

Professor Jeffrey Appel

Project Manager

Jeromey Lewis

Systems Engineering

Jonathan Allen

Quality Manager

Vic Beach

Software Engineer

Nick Gavin

Revision Change Record

Revision

Date

Description

Author

Initial Draft

02/19/2007

First Draft

Vic Beach

Update 0.2

02/24/2007

Added CSCI, CSC, CSU Diagrams

J. Lewis

Update 0.2

02/25/2007

Added CSC Descriptions

J. Lewis

Update 0.5

03/01/2007

Added Detailed, ERD, Web Object, DB tables

Vic Beach

Release

03/03/2007

Released to Professor

Vic Beach

Table of Contents

11 1 Scope

11 1.1 System Overview

13 1.2 Glossary

13 1.1.1 Definitions, Acronyms and Abbreviations

15 1.3 Document Overview

15 2 References

17 3 CSCI Overview

18 3.1 CSCI Architecture

18 3.1.1 Teammate Pro Team Home Page (CSCI)

19 3.1.2 Manage Team Information (CSC)

23 3.1.3 Access Team Information (CSC)

27 3.1.4 Mobile Team Information Manager (CSC)

28 3.2 General Constraints

29 3.3 Assumptions and Dependencies

30 3.4 Non-Functional Scenarios and Tactics

30 3.4.1 Quality Attribute Scenarios

37 3.4.2 Quality Tactics

42 4 Detailed Design

42 4.1 Screen Display Samples

42 4.1.1 Mobile

45 4.1.2 Web

45 4.2 Detailed Web Object Model

45 4.2.1 Mobile

46 4.2.2 Web

49 4.3 Detailed Dynamic Model

53 4.4 Functional Diagram

55 4.5 Manage Team Information (CSC)

55 4.5.1 CSC Structure Chart Diagrams

55 4.6 Manage Team Home Page (Sub-CSC)

55 4.6.1 CSC Structure Chart Diagrams

56 4.6.2 Detailed Software Design –Add Home Page (CSU)

58 4.6.3 Detailed Software Design -Edit Home Page (CSU)

59 4.7 Manage Coach Information (Sub-CSC)

59 4.7.1 CSC Structure Chart Diagrams

59 4.7.2 Detailed Software Design -Add Coach (CSU)

62 4.7.3 Detailed Software Design -Edit Coach Information (CSU)

65 4.7.4 Detailed Software Design -Remove Coach (CSU)

66 4.8 Manage Roster (Sub-CSC)

66 4.8.1 CSC Structure Chart Diagrams

67 4.8.2 Detailed Software Design -Add Player (CSU)

69 4.8.3 Detailed Software Design -Edit Player (CSU)

71 4.8.4 Detailed Software Design -Remove Player (CSU)

73 4.9 Manage Player Bios (Sub-CSC)

73 4.9.1 CSC Structure Chart Diagrams

73 4.9.2 Detailed Software Design -Add Player Bio (CSU)

75 4.9.3 Detailed Software Design -Edit Player Bio (CSU)

77 4.10 Manage Schedule (Sub-CSC)

77 4.10.1 CSC Structure Chart Diagrams

77 4.10.2 Detailed Software Design -Add Scheduled Game (CSU)

79 4.10.3 Detailed Software Design -Edit Scheduled Game (CSU)

80 4.10.4 Detailed Software Design -Cancel Scheduled Game (CSU)

81 4.11 Manage Lineup (Sub-CSC)

81 4.11.1 CSC Structure Chart Diagrams

81 4.11.2 Detailed Software Design -Create Lineup (CSU)

84 4.11.3 Detailed Software Design -Load Default Lineup (CSU)

87 4.12 Manage Statistics (Sub-CSC)

87 4.12.1 CSC Structure Chart Diagrams

87 4.12.2 Detailed Software Design -Update Statistics (CSU)

89 4.12.3 Detailed Software Design –Get Batter Statistics (CSU)

91 4.13 Manage Team Discussion Board (Sub-CSC)

91 4.13.1 CSC Structure Chart Diagrams

91 4.13.2 Detailed Software Design -Create Message (CSU)

93 4.13.3 Detailed Software Design -View Message (CSU)

95 4.13.4 Detailed Software Design -Delete Message (CSU)

98 4.13.5 Detailed Software Design -Allow/Deny User Access (CSU)

101 4.14 Access Team Information (CSC)

101 4.14.1 CSC Structure Chart Diagrams

101 4.15 View Team Information (Sub-CSC)

101 4.15.1 CSC Structure Chart Diagrams

101 4.15.2 Detailed Software Design -View Coach Information (CSU)

104 4.15.3 Detailed Software Design -View Roster (CSU)

106 4.15.4 Detailed Software Design -View Player Bios (CSU)

108 4.16 View Schedule (Sub-CSC)

108 4.16.1 CSC Structure Chart Diagrams

108 4.16.2 Detailed Software Design -Select Game (CSU)

111 4.17 View Lineup (Sub-CSC)

111 4.17.1 CSC Structure Chart Diagrams

111 4.17.2 Detailed Software Design -Select Game (CSU)

114 4.18 View Statistics (Sub-CSC)

114 4.18.1 CSC Structure Chart Diagrams

114 4.18.2 Detailed Software Design -View Team Statistics (CSU)

117 4.18.3 Detailed Software Design -View Game Statistics (CSU)

118 4.18.4 Detailed Software Design -View Player Statistics (CSU)

120 4.19 View Game Tracker (Sub-CSC)

120 4.19.1 CSC Structure Chart Diagrams

121 4.19.2 Detailed Software Design -Select Game (CSU)

123 4.20 Access Team Discussion Board (Sub-CSC)

123 4.20.1 CSC Structure Chart Diagrams

123 4.20.2 Detailed Software Design -View Message (CSU)

125 4.20.3 Detailed Software Design -Create Message (CSU)

127 4.20.4 Detailed Software Design -Edit Message (CSU)

129 4.20.5 Detailed Software Design -Delete Message (CSU)

132 4.21 Mobile Team Information Manager (CSC)

132 4.21.1 CSC Structure Chart Diagrams

132 4.22 Record Game Statistics (Sub-CSC)

132 4.22.1 CSC Structure Chart Diagrams

132 4.22.2 Select Game

132 4.22.3 Enter Batting Statistics

132 4.22.4 Enter Pitching Statistics

132 4.23 Modify Lineup (Sub-CSC)

132 4.23.1 CSC Structure Chart Diagrams

132 4.23.2 Detailed Software Design -Select Game (CSU)

134 4.23.3 Detailed Software Design -Add Player to Lineup (CSU)

137 4.23.4 Detailed Software Design -Remove Player From Lineup (CSU)

139 4.23.5 Detailed Software Design -Assign Position to Player (CSU)

141 5 CSCI Data

146 6 CSCI Data Files

146 6.1 Data File to CSC/CSU cross-reference

152 7 Requirements Traceability Appendixes

153 Appendix A Requirements Traceability Web Functions

161 Appendix B Requirements Traceability Mobile Functions

Table of Figures

18 Figure 1 Teammate Pro CSCI

19 Figure 2 Manage Team Home Page

20 Figure 3 Manage Coach Information

20 Figure 4 Manage Roster

21 Figure 5 Manage Player Bios

21 Figure 6 Manage Schedule

22 Figure 7 Manage Lineup

22 Figure 8 Manage Statistics

23 Figure 9 Manage Team Discussion Board

24 Figure 10 View Team Information

24 Figure 11 View Schedule

25 Figure 12 View Lineup

25 Figure 13 View Statistics

26 Figure 14 View Game Tracker

26 Figure 15 Access Team Discussion Board

27 Figure 16 Record Game Statistics

28 Figure 17 Modify Lineup

30 Figure 18 Performance Quality Attribute Scenarios

31 Figure 19 Security Quality Attribute Scenarios

32 Figure 20 Security two Quality Attribute Scenarios

32 Figure 21 Maintainability Quality Attribute Scenarios

33 Figure 22 Correctness Quality Attribute Scenarios

34 Figure 23 Testability Quality Attribute Scenarios

34 Figure 24 Usability Quality Attribute Scenarios

35 Figure 25 Portability Quality Attribute Scenarios

36 Figure 26 Modifiability Quality Attribute Scenarios

36 Figure 27 Availability Quality Attribute Scenarios

37 Figure 28 Performance Quality Tactics

38 Figure 29 Security Quality Tactics

39 Figure 30 Maintainability Quality Tactics

39 Figure 31 Correctness Quality Tactics

40 Figure 32 Testability Quality Tactics

40 Figure 33 Usability Quality Tactics

41 Figure 34 Portability Quality Tactics

41 Figure 35 Modifiability Quality Tactics

42 Figure 36 Availability Quality Tactics

43 Figure 37 Select Game Page on Openwave™ Simulator

43 Figure 38 Select Game Screen on Openwave™ Simulator

44 Figure 39 Begin Game Play Panel

44 Figure 40 Batter Up Panel

44 Figure 41 Batter is Out Panel

45 Figure 42 Batter Gets a Hit Panel

46 Figure 43 Mobile Web Object

47 Figure 44 Initial Web Interface

47 Figure 45 Manage Team Info View

48 Figure 46 Access Team Information View

49 Figure 47 Sequence Diagram 1 for Team Administrator

50 Figure 48 Sequence Diagram 2 for Team Administrator

51 Figure 49 Mobile Sequence Diagram for Team Administrator

52 Figure 50 Sequence Diagram for User

54 Figure 51 Teammate Pro ERD

120 Figure 52 Game Tracker Structure

Table of Tables

56 Table 1 Team Admin Manage Team Home Page –Add Home Page Input Data Elements

56 Table 2 Team Admin Manage Team Home Page –Add Home Page Data Elements

58 Table 3 Team Admin Manage Team Home Page – Edit Home Page Input Data Elements

58 Table 4 Team Admin Manage Team Home Page – Edit Home Page Data Elements

60 Table 5 Manage Coach Information Page –Add Coach Input Data Elements

60 Table 6 Manage Coach Information Page –Add Coach Output Data Elements

62 Table 7 Manage Coach Information Page –Edit Coach Input Data Elements

63 Table 8 Manage Coach Information Page – Edit Coach Output Data Elements

65 Table 9 Manage Coach Information Page –Edit Coach Input Data Elements

65 Table 10 Manage Coach Information Page – Edit Coach Output Data Elements

67 Table 11 Manage Roster Page –Manage Roster Input Data Elements

67 Table 12 Manage Roster Page –Manage Roster Output Data Elements

69 Table 13 Manage Roster Page –Manage Roster Input Data Elements

69 Table 14 Manage Roster Page –Manage Roster Output Data Elements

71 Table 15 Team Admin Modify Lineup – Remove Input Data Elements

71 Table 16Team Admin Modify Lineup – Remove Player Output Data Elements

73 Table 17 Manage Player Bios Page –Add Player Bio Input Data Elements

73 Table 18 Manage Player Bios Page –Add Bio Output Data Elements

75 Table 19 Manage Player Bios Page –Edit Player Bio Input Data Elements

75 Table 20 Manage Player Bios Page –Edit Bio Output Data Elements

77 Table 21 Manage Schedule Page –Manage Schedule Input Data Elements

77 Table 22 Manage Schedule Page –Manage Schedule Output Data Elements

81 Table 23 Team Admin Manage Lineup – Create Lineup Input Data Elements

81 Table 24 Team Admin Manage Lineup – Create Lineup Output Data Elements

84 Table 25 Team Admin Manage Lineup – Load Default Lineup Input Data Elements

84 Table 26 Team Admin Manage Lineup – Load Default Lineup Output Data Elements

87 Table 27 Manage Statistics – UpdateBatterStats Input Data Elements

87 Table 28Manage Statistics – GetBatterStats() Output Data Elements

89 Table 29 Manage Statistics – GetBatterStats() Input Data Elements

89 Table 30 Manage Statistics – GetBatterStats() Output Data Elements

91 Table 31 Access Team Discussion Board Page –Send Message Input Data Elements

91 Table 32 Access Team Discussion Board Page –View Message Output Data Elements

93 Table 33 Access Team Discussion Board Page –View Message Input Data Elements

93 Table 34 Access Team Discussion Board Page –View Message Output Data Elements

95 Table 35 Team Admin Manage Discussion Board – Delete Message Input Data Elements

95 Table 36 Team Admin Manage Discussion Board – Delete Message Output Data Elements

98 Table 37 Team Admin Manage Discussion Board – Delete Message Input Data Elements

98 Table 38 Team Admin Manage Discussion Board – Delete Message Output Data Elements

101 Table 39 View Coach Information Page –View Coach Information Input Data Elements

101 Table 40 View Coach Information Page –View Coach Information Input Data Elements

104 Table 41 View Roster Page –View Roster Input Data Elements

104 Table 42 View Roster Page –View Roster Input Data Elements

106 Table 43 View Bios Page –View Bios Input Data Elements

106 Table 44 View Bios Page –View Bios Input Data Elements

108 Table 45 User View Lineup – Select Game Input Data Elements

108 Table 46 User View Lineup – Select Game Output Data Elements

111 Table 47 User View Lineup – Select Game Input Data Elements

111 Table 48 User View Lineup – Select Game Output Data Elements

114 Table 49 Manage Statistics – GetBatterStats() Input Data Elements

114 Table 50 Manage Statistics – GetBatterStats() Output Data Elements

118 Table 51 View Statistics – GetBatterStats() Input Data Elements

118 Table 52 View Statistics – GetBatterStats() Output Data Elements

121 Table 53 Manage Statistics – ControlGamePlay() Input Data Elements

121 Table 54 Manage Statistics – ControlGamePlay() Output Data Elements

123 Table 55 Access Team Discussion Board Page –View Message Input Data Elements

123 Table 56 Access Team Discussion Board Page –View Message Output Data Elements

125 Table 57 Access Team Discussion Board Page –Send Message Input Data Elements

125 Table 58 Access Team Discussion Board Page –View Message Output Data Elements

127 Table 59 Access Team Discussion Board Page –Send Message Input Data Elements

127 Table 60 Access Team Discussion Board Page –View Message Output Data Elements

129 Table 61 UserManage Discussion Board – Delete Message Input Data Elements

129 Table 62 User Manage Discussion Board – Delete Message Output Data Elements

133 Table 63 Team Admin Modify Lineup – Select Game Input Data Elements

133 Table 64 Team Admin Modify Lineup – Select Game Output Data Elements

134 Table 65 Team Admin Modify Lineup – Add Player Input Data Elements

135 Table 66 Team Admin Modify Lineup – Add Player Output Data Elements

137 Table 67 Team Admin Modify Lineup – Remove Input Data Elements

137 Table 68 Team Admin Modify Lineup – Remove Player Output Data Elements

139 Table 69 Team Admin Modify Lineup – Assign Position Input Data Elements

139 Table 70 Team Admin Modify Lineup – Assign Position Output Data Elements

141 Table 71 User

141 Table 72 Player

142 Table 73 Team

142 Table 74 Game

143 Table 75 Lineup

143 Table 76 Position

143 Table 77 GameScore

144 Table 78 BattingStats

145 Table 79 PitchingStats

145 Table 80 Message

146 Table 81 User cross-reference

146 Table 82 Player cross-reference

147 Table 83 Team cross-reference

148 Table 84 Game cross-reference

148 Table 85 Lineup cross-reference

149 Table 86 Position cross-reference

149 Table 87 GameScore cross-reference

149 Table 88 BattingStats cross-reference

150 Table 89 PitchingStats cross-reference

151 Table 90 Message cross-reference

1 Scope

1.1 System Overview

Teammate Pro is a proposed baseball team management, application targeting recreational baseball teams for children’s age groups under age 18 and for adults. Teammate Pro would strive to solve problems evident within the current software solutions. This team management web-enabled application would provide true innovation with primary components that have never been delivered within a single application.

The first component that the product will provide is the intuitive automation of all team management aspects, including team information, lineup, scheduling, and statistical administration. By providing these essential capabilities, the “Teammate Pro” system can deliver an integrated solution for the fundamental tasks required by all individuals managing a team.

Teammate Pro will provide dynamic access to team information via the internet. This component of the system will provide significant innovation to a product line that has historically been relegated to a desktop computer. Management of team data becomes much more efficient by enabling a user of the system to perform activities remotely, a feature that is enhanced by specifically targeting internet enabled mobile devices.

This capability also utilizes a much more convenient mode of communication that shifts a tremendous amount of the responsibility from the coach or team manager, to the individuals on the team, to take accountability for being up to date with the team information. By providing this access from any internet-capable device, it effectively increases the ability of a wider audience to track the real-time progress of the team throughout the season.

The product shall also tap into a diverse market that provides the possibility of a vast array of different users, including people of varying ages. Specifically, the application should be just as accessible and usable by a younger individual, as it is by an older person.

The final aspect of the Teammate Pro application that makes the product viable is its integration of newer technologies. By adding the capability of the product to support cutting-edge web, development and media technologies, the overall experience is enhanced for each user of the system.

1.2 Glossary

1.1.1 Definitions, Acronyms and Abbreviations

Term

Definition

AJAX

Asynchronous JavaScript and XML

BIO

Biography

Broadband

A telecommunications signaling method that handles a relatively wide range of frequencies. Specifically referencing an internet connection that provides a great bandwidth

Browser

A user interface that allows the navigation of objects or files in a computer or internet environment

CSC

Computer Software Component

CSCI

Computer Software Component Integrated

CSU

Computer Software Unit

Database

An electronic collection of records stored systematically in a computer system or application

FK

Foreign Key

GB

Gigabyte

GHz

Gigahertz

GUI

Graphical User Interface

HTML

Hyper-Text Markup Language The predominant development language utilized for the creation of internet pages

HTTP

Hypertext Transfer Protocol

IDE

Integrated Development Environment

Int

Integer

LLB

Little League Baseball The traditional non-profit youth baseball organization that organizes leagues world-wide

NVARCHAR

Variable length character, unicode

Operating System

The primary program that manages the hardware and software resources of a computer

PC

Personal Computer

PDA

Personal Digital Assistants were originally designed as electronic personal organizers, but have become much more technologically advanced over the years. Current PDA’s can be considered handheld computers that run a variety of operating systems, with a number of capabilities such as touch-screen interfaces, internet web browsing, multimedia playback, and high capacity data storage

PK

Primary Key

SQL

Structured Query Language – SQL is a language used for database applications

SRS

Software Requirements Specification – The SRS is a document that describes a proposed system in terms of the necessary functionality of the software

TCP/IP

Transport Control Protocol/Internet Protocol – A computer protocol used to connect Computers to one another through an addressing scheme

URI

Uniform Resource Identifier

VarChar

Variable Length Character

Web Application

Web application is a software application that is accessed with a browser over the internet. Also known as a thin-client application

Wiki

A site on the internet that allows the visitors themselves to easily add, remove, and otherwise edit and change available content, often without a registered account

XHTML

eXtensible HyperText Mark-up Language Mobile Profile

XML

Extensible Markup Language

1.3 Document Overview

The Teammate Pro Software Development Document (SDD) is comprised of seven sections. Section 1 provides the introduction to SDD document and the background information regarding the project it is referencing. Section 2 provides references used in the composition of this document. Section 3 is the Computer Software Component Interface (CSCI) Overview, which includes the CSCI Architecture, Constraints, Assumptions and Dependencies. Section 4 is the Detailed Design, which includes detailed information about each Computer Software Component (CSC) and Computer Software Unit (CSU). Section 5 is the CSCI Data section and Section 6 is the CSCI Data Files section.

2 References

Allen, J., Beach, V., Gavin, N., Lewis, J. (2007) Teammate Pro Interactive Team Management Web Application Research Paper. National University.

Allen, J., Beach, V., Gavin, N., Lewis, J. (2007) Teammate Pro v.1.0 Interactive Team Management Web Application Software Requirements Specification. National University.

Allen, J., Beach, V., Gavin, N., Lewis, J. (2007) Teammate Pro v.1.0 Interactive Team Management Web Application Operational Concept Document. National University.

Allen, J., Beach, V., Gavin, N., Lewis, J. (2007) Teammate Pro v.1.0 Interactive Team Management Web Application Software Development Plan. National University.

Allen, J., Beach, V., Gavin, N., Lewis, J. (2007) Teammate Pro v.1.0 Interactive Team Management Web Application Software Requirements Specification. National University.

IEEE Standard 1016-1998. Recommended Practice for Software Design Descriptions.

Pressman, Roger S., Software Engineering: A Practitioner’s Approach, Fifth Edition, McGraw Hill, 2001.

3 CSCI Overview

The CSCI overview provides a high-level illustration of the significant Computer Software Components of the system. The Teammate Pro is a web application that provides a single point of access to all system functionality from the Team Home Page. This lone CSCI is comprised of three primary CSC’s that properly segregate the broad functionality of the application. Each CSC that is identified in the high level diagram is further decomposed into Sub-CSC’s and CSU’s in order to fully elaborate upon the functional system architecture. The following sections describe the properties of the CSCI, as well each CSC, and their respective Sub-CSC’s, and CSU’s.

3.1 CSCI Architecture

image1.wmf

Manage Team

Information

(

CSC

)

Manage Team

Home Page

(

Sub

-

CSC

)

Manage Coach

Information

(

Sub

-

CSC

)

Manage Player

Bios

(

Sub

-

CSC

)

Manage Schedule

(

Sub

-

CSC

)

Manage Lineup

(

Sub

-

CSC

)

Manage Statisitics

(

Sub

-

CSC

)

Manage Team

Discussion Board

(

Sub

-

CSC

)

Teammate Pro

Team Home Page

(

CSCI

)

Access Team

Information

(

CSC

)

View Team

Information

(

Sub

-

CSC

)

Access Team

Discussion Board

(

Sub

-

CSC

)

View Game

Tracker

(

Sub

-

CSC

)

View Schedule

(

Sub

-

CSC

)

View Lineup

(

Sub

-

CSC

)

Manage Roster

(

Sub

-

CSC

)

View Statistics

(

Sub

-

CSC

)

Mobile Team

Information Mgr

(

CSC

)

Record Game

Statistics

(

Sub

-

CSC

)

Modify Lineup

(

Sub

-

CSC

)

Figure 1 Teammate Pro CSCI

3.1.1 Teammate Pro Team Home Page (CSCI)

The Teammate Pro Team Home Page will provide users with the ability to securely login with a valid username and password that has been pre-registered. The team home page will serve as the initial access point for the application and present users with their available functionality. Upon successful login, the user will be presented with the customized team logo and page layout. If the user is a Team Admin, the customized page will display both the Manage Team Information and Access Team Information links. If the user is a standard user, the customized page will only display the Access Team Information link.

3.1.2 Manage Team Information (CSC)

The Manage Team Information CSC provides team admin users with a centralized method of accessing all administrative functions of the Teammate Pro application. This page displays each of the administrative Sub-CSC’s so that managing the team information is organized, easily accessed and efficiently maintained.

3.1.2.1 Manage Team Home Page (Sub-CSC)

image2.wmf

Manage Team

Home Page

(

Sub

-

CSC

)

Add Home Page

(

CSU

)

Edit Home Page

(

CSU

)

Figure 2 Manage Team Home Page

The Manage Team Home Page Sub-CSC provides the necessary functionality to create and edit the customizable team home pages. The Add Home Page CSU enables team admin users to create an initial team home page with a custom logo and page layout. The Edit Home Page CSU expands upon the customization of the team home page by allowing further modifications of all aspects after the page has been created and posted.

3.1.2.2 Manage Coach Information (Sub-CSC)

image3.wmf

Manage Coach

Information

(

Sub

-

CSC

)

Add Coach

(

CSU

)

Edit Coach

Information

(

CSU

)

Remove Coach

(

CSU

)

Figure 3 Manage Coach Information

The Manage Coach Information Sub-CSC provides the ability for team admin users to create background and contact information records for each coach on the team. This information that is stored for each coach record can be edited to accommodate necessary changes, or the entire coach record can be deleted from the system, should the need arise to remove a particular coach from the team. The Add, Edit, and Remove Coach CSU’s provide these functional capabilities.

3.1.2.3 Manage Roster (Sub-CSC)

image4.wmf

Manage Roster

(

Sub

-

CSC

)

Add Player

(

CSU

)

Edit Player

(

CSU

)

Remove Player

(

CSU

)

Figure 4 Manage Roster

The Manage Roster Sub-CSC enables team admin users of the system to manage the team roster changes that are sometimes necessary throughout the course of a season. The Add Player, Edit Player, and Remove Player CSU’s provide the functionality to keep the roster of players up to date, be allowing the easy adding of new players to the roster, editing of existing player information, and deleting of players that are no longer with the team.

3.1.2.4 Manage Player Bios (Sub-CSC)

image5.wmf

Manage Player

Bios

(

Sub

-

CSC

)

Add Player Bio

(

CSU

)

Edit Player Bio

(

CSU

)

Figure 5 Manage Player Bios

The Manage Player Bios Sub-CSC provides team admin users with the ability to create detailed player biography information for each player that is currently configured on the active team roster. The player bios present the capability to add background information, personal attributes and player photos, which will be shared with family members and other fans of the team. These player bios can also be updated or modified at any time after they have been created. The Add Player Bio and Edit Player Bio CSU’s provide these functional capabilities.

3.1.2.5 Manage Schedule (Sub-CSC)

image6.wmf

Manage Schedule

(

Sub

-

CSC

)

Add Scheduled

Game

(

CSU

)

Edit Scheduled

Game

(

CSU

)

Cancel Scheduled

Game

(

CSU

)

Figure 6 Manage Schedule

The Manage Schedule Sub-CSC provides team admin users of the system with the ability to create, modify, and post the important team schedule information so that it may be shared with the players, family members and fans of the team. The schedule is managed by the Add Scheduled Game, which enables the input of the specific game information such as location and time, the Edit Scheduled Game, which enables the modification of this specific game information that has been added, and the Cancel Scheduled Game CSU’s, which provides the functionality to completely remove scheduled games that may have been cancelled.

3.1.2.6 Manage Lineup (Sub-CSC)

image7.wmf

Manage Lineup

(

Sub

-

CSC

)

Create Lineup

(

CSU

)

Load Default

Lineup

(

CSU

)

Figure 7 Manage Lineup

The Manage Lineup Sub-CSC provides team admin users of the system with the ability to create a specific batting and fielding lineup for each scheduled game. The Create Lineup CSU allows the team admin to set a unique lineup for a game that requires specific batting and pitching assignments, or to save the current lineup as the default to be selected for future games. The Load Default Lineup CSU provides the capability to utilize the existing default lineup successfully, when setting the lineup for a particular game.

3.1.2.7 Manage Statistics (Sub-CSC)

image8.wmf

Manage Statistics

(

Sub

-

CSC

)

Add Statistics

(

CSU

)

Edit Statistics

(

CSU

)

Figure 8 Manage Statistics

The Manage Statistics Sub-CSC provides team admin users of the system with the ability to effectively establish and modify the statistical categories that will be available for recording statistics against during a scheduled game and pre-configured lineup. The Add Statistics CSU enables the simple selection of existing batting and pitching statistics that will be tracked for a particular game. The Edit Statistics CSU enables the modification of these pre-selected statistical categories, if it becomes necessary to change them.

3.1.2.8 Manage Team Discussion Board (Sub-CSC)

image9.wmf

Manage Team

Discussion Board

(

Sub

-

CSC

)

Create Message

(

CSU

)

View Message

(

CSU

)

Delete Message

(

CSU

)

Allow

/

Deny

User Access

(

CSU

)

Figure 9 Manage Team Discussion Board

The Manage Team Discussion Board Sub-CSC provides team admin users of the system with the ability to monitor, contribute to, and manage the existing content posted on the team discussion board. The Create Message CSU enables the creation and posting of message to the board. The View Message CSU enables the viewing of all current messages on the discussion board so that may be reviewed for acceptable content. The Delete Message CSU enables the deletion of messages that are posted by both the team admin, and any user that may have created an unacceptable message. The Allow/Deny User Access CSU enables the administration of a user’s ability to successfully post to the team discussion board.

3.1.3 Access Team Information (CSC)

The Access Team Information CSC provides team admin and standard users with a centralized method of accessing all informational functions of the Teammate Pro application. This page displays each of the identified viewing and accessing Sub-CSC’s, so that obtaining the team information is organized, easily accessed and efficiently communicated to coaches, players, parents and fans throughout the season.

3.1.3.1 View Team Information (Sub-CSC)

image10.wmf

View Team

Information

(

Sub

-

CSC

)

View Roster

(

CSU

)

View Coach

Information

(

CSU

)

View Player Bios

(

CSU

)

Figure 10 View Team Information

The View Team Information Sub-CSC provides users with three separate informational viewing options that provide coaches, players, parents and fans with all of the currently stored team information. The View Coach Information CSU displays all of the stored background and contact information for each coach. The View Roster CSU displays all of the basic player and contact information for all individuals on the active team roster. Lastly, the View Player Bios CSU displays all of the existing expanded background information, personal attributes and uploaded photos that have been stored for each player.

3.1.3.2 View Schedule (Sub-CSC)

image11.wmf

View Schedule

(

Sub

-

CSC

)

Select Game

(

CSU

)

Figure 11 View Schedule

The View Schedule Sub-CSC provides users with the ability to view detailed information regarding team games that have been scheduled throughout the season. The Select Game CSU enables users to select a single game from the list that is presented, after which the pertinent detail such as the location of the game, the time and the opponent is displayed.

3.1.3.3 View Lineup (Sub-CSC)

image12.wmf

View Lineup

(

Sub

-

CSC

)

Select Game

(

CSU

)

Figure 12 View Lineup

The View Lineup Sub-CSC provides users with the ability to view detailed information regarding the team lineup that has been established for scheduled games throughout the season. The Select Game CSU enables users to select a single game from the list that is presented, after which the associated lineup is displayed, identifying the players assigned batting order and fielding positions for the game.

3.1.3.4 View Statistics (Sub-CSC)

image13.wmf

View Statistics

(

Sub

-

CSC

)

View Game

Statistics

(

CSU

)

View Player

Statistics

(

CSU

)

View Team

Statistics

(

CSU

)

Figure 13 View Statistics

The View Statistics Sub-CSC provides users with the ability to view detailed statistical information that has been recorded for the performance of players in the lineup during the team’s scheduled games that have been played. These statistics are viewable by three different categories. The View Team Statistics CSU displays the aggregate statistics for all of the categories that have been recorded for the entire team’s performance. The View Game Statistics CSU displays only the statistics for a selected game, broken down by inning and player. Finally, the View Player Statistics CSU, displays the aggregate statistics throughout the season for a selected player.

3.1.3.5 View Game Tracker (Sub-CSC)

image14.wmf

View Game

Tracker

(

Sub

-

CSC

)

Select Game

(

CSU

)

Figure 14 View Game Tracker

The View Game Tracker Sub-CSC provides users with the ability to view live detailed game and statistical information as the statistics are being recorded by a team admin. This functionality enables individuals unable to attend the game to access the up to date game information, so that they may track what is happening with the players. The Select Game CSU enables users to select a single game from the list that is presented, after which a Game Tracker dialogue is presented to the user with real-time game information. A user may also choose to view the recorded game tracker information for games that have already been completed.

3.1.3.6 Access Team Discussion Board (Sub-CSC)

image15.wmf

Access Team

Discussion Board

(

Sub

-

CSC

)

Create Message

(

CSU

)

View Message

(

CSU

)

Delete Message

(

CSU

)

Edit Message

(

CSU

)

Figure 15 Access Team Discussion Board

The Access Team Discussion Board Sub-CSC provides users of the system with the ability to effectively view, contribute to, and modify discussion messages that have been posted on the team discussion board. The View Message CSU enables the viewing of all current messages on the discussion board. The Create Message CSU enables the creation and posting of messages to the board. The Edit Message CSU enables the modification of messages that are posted by the current user. The Delete Message CSU enables the deletion of messages that are posted by the current user.

3.1.4 Mobile Team Information Manager (CSC)

The Mobile Team Information Manager CSC provides team admin users who have a web-enabled device, with efficient mobile access to the live management of the team’s statistical game information, as well as the modification of pre-configured team lineups that are available for scheduled games. This CSC automatically presents users with the two aforementioned options upon successful login to the mobile web page.

3.1.4.1 Record Game Statistics (Sub-CSC)

image16.wmf

Record Game

Statistics

(

Sub

-

CSC

)

Enter Batting

Statistics

(

CSU

)

Enter Pitching

Statistics

(

CSU

)

Select Game

(

CSU

)

Figure 16 Record Game Statistics

The Record Game Statistics Sub-CSC provides team admin users with the necessary functionality to successfully record detailed game statistics against the established lineup for the selected team game. The Select Game CSU presents the user with a list of all available games that have yet to be played. Once the desired game is selected, the pre-configured lineup for the game will initiate the following two CSU’s. The Enter Batting Statistics CSU enables the successful entry of the established offensive statistical categories through a mobile device browser. The Enter Pitching Statistics CSU enables the successful entry of the established pitching & defensive statistical categories through a mobile device browser.

3.1.4.2 Modify Lineup (Sub-CSC)

image17.wmf

Modify Lineup

(

Sub

-

CSC

)

Add Player to

Lineup

(

CSU

)

Remove Player

From Lineup

(

CSU

)

Select Game

(

CSU

)

Assign Position to

Player

(

CSU

)

Figure 17 Modify Lineup

The Modify Lineup Sub-CSC provides team admin users with the necessary functionality to successfully modify and update the existing team lineup in real-time for a selected game. The Select Game CSU presents the user with a list of all selectable games, which effectively displays the pre-configured lineup after the desired game selection is made. The Add Player to Lineup CSU enables the user to add any player currently displayed in the reserves section, into any spot in the team lineup. The Remove Player From Lineup CSU enables the successful removal of any player currently assigned a spot in the team lineup. Finally, the Assign Position to Player CSU allows the user to assign any fielding position to player that exists in a spot in the team lineup.

3.2 General Constraints

The application is to be utilized on handheld devices. Because of this limitation, and to allow for an enhanced user interface, the application shall make use of the eXtensible HyperText Mark-up Language Mobile Profile (XHTML-MP) version 1.0.

The application shall use Microsoft® ASP.NET Mobile Controls for development for the handheld environment.

Safety is considered very important to the TeamFourSports team. Both adults and children will use the application being built. As such, the TeamFourSports team shall follow all current “Child Protection Laws” enacted in any state for any computer media; therefore, the following items shall not be used on any Teammate Pro website: Alcohol, Tobacco, Pornography or Obscene material, Gambling, Lotteries, Illegal Drugs, Firearms, Prostitution, Materials harmful to minors and Vehicle advertisements.

3.3 Assumptions and Dependencies

The successful implementation and use of the Teammate Pro interactive team management web application assumes that the following product & system dependencies are fulfilled:

· An application and database server, providing continuous SQL database service for Teammate Pro interactive team management web application users

· Proper system database backup, archiving, and disaster recovery processes

· Continuous internet access of PC’s and mobile devices

· Network connectivity and security

· Installed and managed virus protection software

· Secure login & authentication to the desktop PC’s

The W3C has written a white paper on the best practices for use of Mobile devices on the Internet titled Mobile Web Best Practices 1.0. TeamFourSports shall use these best practices in developing the application.

The application server will be hosted on a third party internet service provider’s network. This tier is primarily responsible for providing the necessary connectivity between the web application and the system’s database system. In addition, the application server fulfills the user requests provided from the web application, and executes the developed business logic, to retrieve and supply the proper data from the database.

The database will also reside on the third party internet service provider’s network, and utilize the storage capacity provided to the application. In addition, the database will be continuously available and allow multiple user-initiated connections concurrently.

3.4 Non-Functional Scenarios and Tactics

3.4.1 Quality Attribute Scenarios

3.4.1.1 Performance

The response time, utilization, and throughput behavior of the system are concerned within the performance quality attribute scenarios. Team Administrators, Coaches, Players and Fans provide sources of stimulus to the system. Sporadic events can occur when the users request services from the system. Under normal operations, the transactions should be processed in the system and a reasonable response should be provided to the users. Every process should complete with average latency of three seconds, and the data contained in the response should be complete and accurate.

image18.wmf

Source

:

Team Admins

Coaches

Players

Fans

Response

Measure

:

With average

latency of

three

seconds

Completeness and

correctness of

data

Artifact

:

Teammate Pro Web

Application

Stimulus

:

I

nitiate

s

service

request

transactions

Response

:

Transactions

are processed

Environment

:

Under normal

operations

Figure 18 Performance Quality Attribute Scenarios

3.4.1.2 Security

There are two components of concern within the security quality attribute scenario. The first component is regarding the login procedure, while the other component is related to data storage. In the first part of security scenario, when a user tries to log into the system, the system has to identify the user and record the event in its access history. After the successful identification and authentication process, the system should correctly assign the user to one of two user classes: Team Administrators and Standard Users. Team Administrator users have a greater privilege set that allows access to the team management functionality of the system, while the Standard User is allowed only the access and view the team information. If the user is not successfully authenticated, the system shall deny the user access to the system.

image19.wmf

Source

:

Users

Response

Measure

:

Correctly identify

individual

(

Team

Admin or

Standard User

)

Denial

of

un

authenticated

User

Artifact

:

Login

to Team Home

Page

Stimulus

:

Tries to

log into

the system

Response

:

System

records

access history

Environment

:

Under normal

operations

Figure 19 Security Quality Attribute Scenarios

Regarding the second component of the security scenario, the system shall only allow Team Administrators to create or modify the existing system data. If a user attempts to modify the information of the system, whether or not they have the privileges to do so, the database system logs the activity and maintains an audit trail. If unauthorized access occurs, the system needs to restore correct data within 24 hours. image20.wmf

Source

:

Correctly identify

individual

(

Team Admin

)

Response

Measure

:

Activity is logged

Data is modified

Artifact

:

Edit Roster

Information

Stimulus

:

Tries to modify

information

Response

:

System maintains

audit trail

Environment

:

Under normal

operations

Figure 20 Security two Quality Attribute Scenarios

3.4.1.3 Maintainability

When a software or hardware failure of a server occurs, such that the web server shuts down, the system should connect to the fail-over redundancy server to continue to provide services to all users. Services should be re-supplied and fixed on the affected server within 24 hours.

image21.wmf

Source

:

Users

Response

Measure

:

Affected server is

re

-

supplied within

24

hours

Artifact

:

System

Stimulus

:

Software

or

hardware failure

of

a

server occurs

Response

:

System

connects

to fail

-

over

server

Environment

:

Under normal

operations

Figure 21 Maintainability Quality Attribute Scenarios

3.4.1.4 Correctness

This quality attribute is concerned with the extent to which the software and system conforms to its requirements. As a system that will be required to provide accurate information for all users to utilize the features effectively, correctness can be considered as one of the most significant attributes. All users of the system are the source of and provide a stimulus to the system by attempting to access data. This stimulus is provided under normal conditions and the response is expected to occur by providing the information that is being requested. This information is then evaluated for correctness by determining its accuracy.

image22.wmf

Source

:

Users

Response

Measure

:

Desired data is

accurate

Artifact

:

System

Stimulus

:

Accessing of data

such as team

information

,

schedule

,

lineup

,

and statistics

Response

:

System provides

information

Environment

:

Under normal

operations

Figure 22 Correctness Quality Attribute Scenarios

3.4.1.5 Testability

This quality attribute is concerned with the relative effort for which software can be made to demonstrate its faults, or provide the necessary interface controls to utilize the system. In this scenario, developers or testers are the sources that provide the stimulus of performing application actions/tests on the system or system component. After the stimulus is provided under normal conditions, the response can be characterized as the system providing the necessary interface control to carry out the action or test. The method of measuring the response involves determining if the desired action or test is successfully carried out or completed.

image23.wmf

Source

:

Developers

Testers

Response

Measure

:

Test

/

action is

successfully

completed

Artifact

:

At completion of

system component

/

system

Stimulus

:

Perform

application action

Perform test

Response

:

Desired test has

interface control

Environment

:

Under normal

operations

Figure 23 Testability Quality Attribute Scenarios

3.4.1.6 Usability

The usability quality attribute is mostly concerned with the relative ease of using software, learning the software and building confidence with the software. This particular scenario’s source is the end-users of the system who provide the stimulus of minimizing errors to the system under normal conditions. The desired response in this case involves the need of the user to cancel the current operation and the measure of this response includes the criteria that the operation cancel request occurs within 1 second.

image24.wmf

Source

:

Users

Response

Measure

:

Cancel takes

within

1

second

to process

Artifact

:

System

Stimulus

:

Minimize Errors

Response

:

Wish to cancel

current operation

Environment

:

At runtime

Figure 24 Usability Quality Attribute Scenarios

3.4.1.7 Portability

The portability quality attribute is mostly concerned with the relative effort to adapt the software to a different environment. In this scenario, the platform dependency of the system is tested by administrators, and in the long run users. The administrator in this case is seen from the implementation perspective. The response desired is to have a system that is easy adaptable to cross platform configuration with ‘ease of installation’ being the response measure. The system involved the software as well as the hardware that is to be used.

image25.wmf

Source

:

Administrator

Users

Response

Measure

:

Ease of

installation

Artifact

:

System

Stimulus

:

Minimize

Platform

Dependency

Response

:

Cross Platform

Configuration

Environment

:

At installation

Figure 25 Portability Quality Attribute Scenarios

3.4.1.8 Modifiability

The modifiability quality attribute is the relative effort in which a software system can accommodate changes to its software. In this scenario, users need to change data that they interact with in the system. The operation happens at runtime and the desire response is edit and save changes made to the data in a speedy and reliable way so they can extract that data in the future if necessary.

image26.wmf

Source

:

Users

Response

Measure

:

Speed and

Reliability to

write to database

Artifact

:

System

Stimulus

:

Changing Data

Response

:

Wish to edit and

save changes

made

Environment

:

At runtime

Figure 26 Modifiability Quality Attribute Scenarios

3.4.1.9 Availability

The availability quality attribute is concerned with the amount of time that the system is up and running correctly; the time between failure and the time that is needed to resume operation after failure. In this scenario, a software or hardware failure occurs during normal operations. The system connects to a fail-over server that takes over the responsibility of the downed server; in that way, operations continue to be available with no downtime. Then the downed server is restored by first fixing the software or hardware problem within a time frame of 2 to 5 hours.

image27.wmf

Source

:

External

Response

Measure

:

Affected server is

re

-

supplied within

2

-

5

hours

Artifact

:

Process

Stimulus

:

Software

or

hardware failure

of

a

server occurs

Response

:

System

connects

to fail

-

over

server

Environment

:

Under normal

operations

Figure 27 Availability Quality Attribute Scenarios

3.4.2 Quality Tactics

3.4.2.1 Performance

The appropriate tactics to apply to the Performance quality attribute include resource demand, which is primarily affected by the system’s computational efficiency and the size of the data queues. Resource Management is also considered, so that the necessary available resources are increased or fully utilized. Lastly, resource arbitration is a tactic that can control the scheduling policies on the system to limit user loads at critical times.

image28.wmf

Performance

Resource demand

:

increase computation efficiency

bound queue sizes

Resource management

:

increase available resources

Resource arbitration

:

scheduling policy

Multiple User

Requests

System Response

Figure 28 Performance Quality Tactics

3.4.2.2 Security

The appropriate tactics to apply the Security quality attribute have already been alluded to in the scenarios illustrated in the section above. One of the primary tactics that should be considered is resisting attacks by utilizing the proper security technology to authenticate and authorize users upon login. The other primary tactic focuses on the recovery of the system after a security breach is detected. The only way to enable this sort of tactic is to enforce the constant identification and logging of activities by all users to create a complete audit trail.

image29.wmf

Security

Resisting Attacks

:

authenticate users

authorize users

Recovering from an Attack

:

identification

-

audit trail

Stimulus

Response

Figure 29 Security Quality Tactics

3.4.2.3 Maintainability

The appropriate tactics to apply to the Maintainability quality attribute include maintaining the software, hardware, tools and the texts describing the aforementioned attributes. Maintaining software involves configuration management and change management. Maintaining hardware is focused on keeping the hardware functional and operational maintenance agreements. The quality attribute for tools may involve keeping the Integrated Development Environment for each build of the software, or for the tools used for configuration management or record keeping. For texts involves keeping the records of maintenance. In addition, keeping the documentation that was involved with building the application current.

image30.wmf

Maintainability

Maintain existing interface

Maintain Software

Maintain Hardware

Maintain tools

Maintain texts

Stimulus

Response

Figure 30 Maintainability Quality Tactics

3.4.2.4 Correctness

The appropriate tactics to apply to the Correctness quality attribute include data entry specifications, which consider the enforcement of required data formats being followed upon data entry. The other factor that is considered is the enforcement of data retrieval specification upon obtaining data from the database. The final tactic that must be considered is the uniform representation of data when it is displayed throughout the system.

image31.wmf

Correctness

Data entry specifications

:

enforce required data format

Data retrieval specifications

:

enforce routine access

Standardized data representation

:

follow uniform display requirements

Users request

data

Correct data is

provided

Figure 31 Correctness Quality Tactics

3.4.2.5 Testability

In order to ensure the achievement of the testability quality attribute within the system, the two major factors that must be considered are “Managing Input/Output” and “Internal Monitoring.” These two factors are further elaborated with their respective activities of record/playback, separate interfaces provided to developers and testers, and specialized access routines that allow the bypassing of the application to effectively test. In addition, by utilizing built-in monitors, faults can be more efficiently detected.

image32.wmf

Testability

Manage Input

/

Output

:

record

/

playback

separate interface from implementation

specialized access routines

/

interfaces

Internal Monitoring

:

built

-

in monitors

Completion of

component

/

System

Faults detected

Figure 32 Testability Quality Tactics

3.4.2.6 Usability

In order to ensure the usability quality attribute, we must consider three major factors: a separate user-interface for the user to utilize, supporting the user initiative and supporting the system initiative. To support the user initiative, the system should provide the ability to cancel and undo actions at all times. For support of the system initiative, the system must provide the user, system and task models.

image33.wmf

Usability

Separate user

-

interface

Support user initiative

:

cancel action

undo action

Support system initiative

:

user model

system model

task model

User request

Appropriate

feedback

provided

Figure 33 Usability Quality Tactics

3.4.2.7 Portability

In order for portability to be assured during design time, they system must be thought with cross platform design in mind. Another way to put it is to have an open design that is adaptable to different environments. When distributing an installation, it shall run on different platforms. The goal is ease and adaptability of installation.

image34.wmf

Portability

Manage Installation

different platforms

Open Design

adaptability

Cross Platform

Design

Ease

/

adaptability of

Installation

Figure 34 Portability Quality Tactics

3.4.2.8 Modifiability

In order for a system to assure modifiability, the system should be able to localize (anticipate) changes. Managing modifications will assure that negative ripple effects do not occur. Polymorphism can be used to make changes more easily taken by the system. The ultimate goal is to have the system accept the changes requested with minimal disruptions.

image35.emf

Modifiability

Localize Changes

anticipate

limit options

Prevention of Ripple Effects

hide information

maintain existing interface

Defer Binding Time

polymorphism

Configure

Changes

Accept Changes

Figure 35 Modifiability Quality Tactics

3.4.2.9 Availability

When an external problem is introduced, the system shall provide for fault detection, ability to recover and accommodate for fast repairs, easy resynchronization after rollover, and monitoring of resources to prevent the same problems to occur again. The main goal is fast recovery of system with minimal downtime when a problem is introduced.

image36.wmf

Availability

Fault Detection

exception

Recovery

/

Repair

redundancy

Reintroduction

resynchronization

Prevention

monitor for reoccurance

External Problem

Introduced

Recovery of

System with

minimal

downtime

Figure 36 Availability Quality Tactics

4 Detailed Design

4.1 Screen Display Samples

The following sections have prototype mock user interface that should be used to design the Teammate Pro application. There are two distinct interfaces: Mobile and Web.

4.1.1 Mobile

The following screenshots illustrate the graphical user interface for the mobile devices:

Mobile Login Page on Openwave™ Simulator

image37.png

Figure 37 Select Game Page on Openwave™ Simulator

image38.png

Figure 38 Select Game Screen on Openwave™ Simulator

image39.png

Figure 39 Begin Game Play Panel

image40.png

Figure 40 Batter Up Panel

image41.png

Figure 41 Batter is Out Panel

image42.png

Figure 42 Batter Gets a Hit Panel

4.1.2 Web

4.2 Detailed Web Object Model

The proceeding diagrams illustrate the Web objects used for the detailed design of Teammate Pro. Normally there would be class diagrams in the Object model, because the application is web-based the object oriented class diagram will not work, therefore TeamFourSports elected to view the project as web objects. Since there are two distinct interfaces into Teammate Pro, there are partitioned as such: Mobile and Web.

4.2.1 Mobile

The figure below represents the Web object model for the Mobile interface of Teammate Pro.

image43.wmf

Login

MobTeamInfo

Page

MobRecStats

Page

MobModLineup

Page

Figure 43 Mobile Web Object

4.2.2 Web

For the Web interface, it was necessary to break the Web objects into partitions. Below are three figures that represent the Web interface Web Object view.

image44.emf

Login

TeamPage

ManTeamInfo

Page

AccessTeamInfo

Page

Figure 44 Initial Web Interface

image45.emf

ManTeamHome

Page

ManCoachInfo

Page

ManRoster

Page

ManPlayerBios

Page

ManSched

Page

ManLineup

Page

ManStats

Page

ManDiscBoard

Page

ManTeamInfo

Page

Figure 45 Manage Team Info View

image46.emf

AccessTeamInfo

Page

ViewTeamInfo

Page

ViewSchedule

Page

ViewLineup

Page

ViewStats

Page

ViewGameTrack

Page

DiscBoard

Page

Figure 46 Access Team Information View

4.3 Detailed Dynamic Model

The dynamic model chosen for Teammate Pro are sequence diagrams. The Figures below contain four separate Sequence Diagrams: 

image47.emf

valid

:TeamHomePage:ManageTeamInfoManageTeamPageLoginControllerPageController:UserAccountDatabase

Submit Login Information

[Valid] Display Manage Team Information Page

[Not Valid] Display Error

Verify Account Information

Select Manage Team Information Feature

Add/Edit/Delete Records

Boundary Objects

Control ObjectsEntity Objects

Sequence Diagram 1 for Team Administrator

Top Package::Team Admin

ManageCoachInfoManagePlayerBiosManage Roster

Display Manage Team Home Page

Submit Home Page Changes

Display Manage Coach Information

Submit Coach Information Changes

Display Manage Roster Page

Submit Roster Changes

Display Manage Player Bio Page

Submit Player Bio Changes

Figure 47 Sequence Diagram 1 for Team Administrator

image48.emf

valid

:TeamHomePage:ManageTeamInfoManage ScheduleLoginControllerPageController:UserAccountDatabase

Submit Login Information

[Valid] Display Manage Team Information Page

[Not Valid] Display Error

Verify Account Information

Select Manage Team Information Feature

Add/Edit/Delete Records

Boundary Objects

Control ObjectsEntity Objects

Sequence Diagram 2 for Team Administrator

Top Package::Team Admin

Manage LineupManage Discussion BoardManage Statistics

Display Manage Schedule Page

Submit Schedule Changes

Display Manage Lineup Page

Submit Lineup Changes

Display Manage Statistics Page

Submit Statistics Changes

Display Manage Discussion Page

Submit Discussion Changes

Figure 48 Sequence Diagram 2 for Team Administrator

image49.emf

valid

:MobileTeamHomePage:ManageTeamInfoModify LineupLoginControllerMobilePageController:UserAccountDatabase

Submit Login Information

[Valid] Display Manage Team Information Page

[Not Valid] Display Error

Verify Account Information

Select Manage Mobile Team Information Feature

Add/Edit/Delete Records

Boundary ObjectsControl Objects

Entity Objects

Mobile Sequence Diagram for Team Administrator

Top Package::Team Admin

Record Game Statistics

Display Manage Team Home Page

Submit Home Page Changes

Display Manage Player Bio Page

Submit Player Bio Changes

Figure 49 Mobile Sequence Diagram for Team Administrator

image50.emf

valid

:TeamHomePage:ViewTeamInfoViewScheduleLoginControllerPageController:UserAccountDatabase

Submit Login Information

[Valid] Display View Team Information Page

[Not Valid] Display Error

Verify Account Information

Select View Team Information Feature

Boundary Objects

Control ObjectsEntity Objects

Sequence Diagram for User

Top Package::User

ViewLineupViewGameTrackerView Statistics

Display Team Schedule

Display Lineup Information

Display Team Statistics

Display Game Tracker

Return Data

ViewDiscussion

Display Discussion Board

Retrieve Data

Display Team Information Page

Figure 50 Sequence Diagram for User

4.4 Functional Diagram

The Figure below is a Entity Relationship Diagram that represents the Teammate Pro application database.

image51.emf

User

PKUserKey

Email

Password

IsRegistered

CreatedDate

CreatedBy

CreatedByIP

Team

PKTeamKey

TeamName

LeagueName

SeasonStartDate

City

State

IsMinorLeague

TeamPage

CreatedDate

CreatedBy

CreatedByIP

Player

PKPlayerKey

FK1UserKey

FK2TeamKey

FirstName

LastName

Nickname

CanManageTeam

Number

CreatedDate

CreatedBy

CreatedByIP

PlayerPage

Game

PKGameKey

FK1TeamKey

GameDate

OpposingTeam

Location

IsHomeGame

CreatedDate

CreatedBy

CreatedByIP

BattingStats

PK,FK2PlayerKey

PK,FK1GameKey

Singles

Doubles

Triples

HomeRuns

RunsScored

RunsBattedIn

Strikeouts

Popouts

Flyouts

Lineouts

Groundouts

FieldersChoice

Walks

IntentionalWalks

HitByPitch

ThirdStrikePastBall

OnByError

PitchingStats

PK,FK1PlayerKey

PK,FK2GameKey

Stirkeouts

Popouts

Flyouts

Lineouts

Groundouts

FieldersChoice

Walks

IntentionalWalks

Singles

Doubles

Triples

HomeRuns

HitBatters

ThirdStrikePastBall

RunsScored

OnByError

Position

PKPositionKey

PositionName

Abbreviation

GameScores

PK,FK1GameKey

PKInning

HomeScore

HomeHits

HomeErrors

AwayScore

AwayHits

AwayErrors

Lineup

PKLineupKey

BattingOrder

InningIn

FK1GameKey

FK2PlayerKey

FK3PositionKey

FK4TeamKey

Figure 51 Teammate Pro ERD

4.5 Manage Team Information (CSC)

4.5.1 CSC Structure Chart Diagrams

4.6 Manage Team Home Page (Sub-CSC)

4.6.1 CSC Structure Chart Diagrams

4.6.2 Detailed Software Design –Add Home Page (CSU)

4.6.2.1.1 Narrative:

The newHome method allows the coach to create a team page with customizable logo and page layout.

4.6.2.1.2 Input Data Elements:

Table 1 Team Admin Manage Team Home Page –Add Home Page Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

Logo

Picture

(.jpeg, .gif, .png)

N/A

PageKey

Parameter (By Value)

Color

Colors

Int

5-10 characters

PageKey

Parameter (By Value)

SiteTemplate

Html file

String

N/A

PageKey

Parameter (By Value)

4.6.2.1.3 Output Data Elements

Table 2 Team Admin Manage Team Home Page –Add Home Page Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayPage

Message

Bool

0 = False

1 = True

TeamWebPage

GUI Dialogue/Message

4.6.2.1.4 Processing Characteristics
4.6.2.1.5 Algorithms

Get Logo selection,

get Color selection,

get SiteTemplate selection

save

4.6.2.1.6 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.6.2.1.7 Utilization of Other Elements

The newHome method requires direct interaction with the Team Home Page GUI, as well as an active connection to the TeamMate Pro database.

4.6.2.1.8 Limitations

The newHome will have predefined Logos, Colors and Site Templates.

4.6.3 Detailed Software Design -Edit Home Page (CSU)

4.6.3.1 Team Admin ManHomePage Method – editHome ()
4.6.3.2 Narrative:

The newHome method allows the coach to create a team page with customizable logo and page layout.

4.6.3.3 Input Data Elements:

Table 3 Team Admin Manage Team Home Page – Edit Home Page Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

Logo

Picture

(.jpeg, .gif, .png)

N/A

PageKey

Parameter (By Value)

Color

Colors

Int

5-10 characters

PageKey

Parameter (By Value)

SiteTemplate

Html file

String

N/A

PageKey

Parameter (By Value)

4.6.3.4 Output Data Elements

Table 4 Team Admin Manage Team Home Page – Edit Home Page Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayPage

Message

Bool

0 = False

1 = True

TeamWebPage

GUI Dialogue/Message

4.6.3.5 Processing Characteristics
4.6.3.6 Algorithms

Get Logo selection,

get Color selection,

get SiteTemplate selection

save

4.6.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.6.3.8 Utilization of Other Elements

The editHome method requires direct interaction with the Team Home Page GUI, as well as an active connection to the TeamMate Pro database.

4.6.3.9 Limitations

The editHome will have predefined Logos, Colors and Site Templates.

4.7 Manage Coach Information (Sub-CSC)

4.7.1 CSC Structure Chart Diagrams

4.7.2 Detailed Software Design -Add Coach (CSU)

4.7.2.1 Team Admin ManCoachInfo Method – addCoach()
4.7.2.2 Narrative:

The addCoach method allows new coaches to be added to a team in the database.

4.7.2.3 Input Data Elements:

Table 5 Manage Coach Information Page –Add Coach Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

TeamKey

Team id

int

n/a

Session

Parameter (By Value)

FirstName

Coach's First Name

varChar

50

Coach Information Page

Parameter (By Value)

LastName

Coach's Last Name

varChar

50

Coach Information Page

Parameter (By Value)

NickName

Coach's Nick Name, optional

varChar

50

Coach Information Page

Parameter (By Value)

EmailAddress

Coach's Email Address, optional

varChar

50

Coach Information Page

Parameter (By Value)

IsCoach

Indicates if the team member is a coach or player

bit

1 = coach

0 = player

Coach Information Page

Parameter (By Value)

CanManageTeam

Indicates if the team member can edit the team website

bit

0 = Restricted user

1 = Full rights

Coach Information Page

Parameter (By Value)

4.7.2.4 Output Data Elements:

Table 6 Manage Coach Information Page –Add Coach Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

PlayerKey

New Player's id

int

n/a

Database

SQL

Success

Message

Bool

0 = False

1 = True

Coach Information Page

GUI Dialogue/Message

4.7.2.5 Processing Characteristics

Chained row insert

4.7.2.6 Algorithms

SEARCH for EmailAddress IN User table

If Found, Fetch UserKey

Else Create new row in User table, save new UserKey

SEARCH for UserKey/TeamKey in PlayerKey

If Found, throw error

Else Create new row in Player table, returning PlayerKey

Display success message

4.7.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights
· Network communication error
· Database connection error
· Invalid/Incomplete Fields
4.7.2.8 Utilization of Other Elements

The addCoach method requires interaction with the ManageCoachInfo page, as well as an active connection to the Teammate Pro database.

4.7.3 Detailed Software Design -Edit Coach Information (CSU)

4.7.3.1 Team Admin ManCoachInfo Method – editCoach()
4.7.3.2 Narrative:

The editCoach method allows new players and coaches to be added to a team in the database.

4.7.3.3 Input Data Elements:

Table 7 Manage Coach Information Page –Edit Coach Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

TeamKey

Team id

int

n/a

Session

Parameter (By Value)

FirstName

Coach's First Name

varChar

50

Coach Information Page

Parameter (By Value)

LastName

Coach's Last Name

varChar

50

Coach Information Page

Parameter (By Value)

NickName

Coach's Nick Name, optional

varChar

50

Coach Information Page

Parameter (By Value)

EmailAddress

Coach's Email Address, optional

varChar

50

Coach Information Page

Parameter (By Value)

IsCoach

Indicates if the team member is a coach or player

bit

1 = coach

0 = player

Coach Information Page

Parameter (By Value)

CanManageTeam

Indicates if the team member can edit the team website

bit

0 = Restricted user

1 = Full rights

Coach Information Page

Parameter (By Value)

4.7.3.4 Output Data Elements:

Table 8 Manage Coach Information Page – Edit Coach Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

PlayerKey

Coach's id

int

n/a

Database

SQL

Success

Message

Bool

0 = False

1 = True

Coach Information Page

GUI Dialogue/Message

4.7.3.5 Processing Characteristics

Chained row insert

4.7.3.6 Algorithms

SEARCH for EmailAddress IN User table

If Found, Fetch UserKey

Else Create new row in User table, save new UserKey

SEARCH for UserKey/TeamKey in PlayerKey

If Found, throw error

Else Create new row in Player table, returning PlayerKey

Display success message

4.7.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.7.3.8 Utilization of Other Elements

The editCoach method requires direct interaction with the ManCoachInfo page, as well as an active connection to the Teammate Pro database.

4.7.4 Detailed Software Design -Remove Coach (CSU)

4.7.4.1 Team Admin ManCoachInfo Method – remCoach()
4.7.4.2 Narrative:

The remCoach method allows coaches to be removed (virtually) from a team in the database. The database retains the information; however, the coach will not be displayed on the team pages.

4.7.4.3 Input Data Elements:

Table 9 Manage Coach Information Page –Edit Coach Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

PlayerKey

Coach’s id

int

n/a

Database

SQL

4.7.4.4 Output Data Elements:

Table 10 Manage Coach Information Page – Edit Coach Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

IsRemoved

Removal bit

bit

0 = not set

1 = set

Coach Information Page

Parameter (By Value)

4.7.4.5 Processing Characteristics

Chained row insert

4.7.4.6 Algorithms

SEARCH for PlayerKey IN Player table

If Found, set IsRemoved key to 1

Display removal message

4.7.4.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.7.4.8 Utilization of Other Elements

The remCoach method requires direct interaction with the ManCoachInfo page, as well as an active connection to the Teammate Pro database.

4.8 Manage Roster (Sub-CSC)

4.8.1 CSC Structure Chart Diagrams

4.8.2 Detailed Software Design -Add Player (CSU)

4.8.2.1 Team Admin Manage Roster Method – AddPlayer()
4.8.2.2 Narrative:

The AddPlayer method allows new players and coaches to be added to a team in the database.

4.8.2.3 Input Data Elements:

Table 11 Manage Roster Page –Manage Roster Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

TeamKey

Team id

int

n/a

Session

Parameter (By Value)

FirstName

Player's First Name

varChar

50

Add Player Page

Parameter (By Value)

LastName

Player's Last Name

varChar

50

Add Player Page

Parameter (By Value)

NickName

Player's Nick Name, optional

varChar

50

Add Player Page

Parameter (By Value)

EmailAddress

Player's Email Address, optional

varChar

50

Add Player Page

Parameter (By Value)

IsCoach

Indicates if the team member is a coach or player

bit

1 = coach

0 = player

Add Player Page

Parameter (By Value)

CanManageTeam

Indicates if the team member can edit the team website

bit

0 = Restricted user

1 = Full rights

Add Player Page

Parameter (By Value)

4.8.2.4 Output Data Elements:

Table 12 Manage Roster Page –Manage Roster Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

PlayerKey

New Player's id

int

n/a

4.8.2.5 Processing Characteristics

Chained row insert

4.8.2.6 Algorithms

SEARCH for EmailAddress IN User table

If Found, Fetch UserKey

Else Create new row in User table, save new UserKey

SEARH for UserKey/TeamKey in PlayerKey

If Found, throw error

Else Create new row in Player table, returning PlayerKey

4.8.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.8.2.8 Utilization of Other Elements

The AddPlayer method requires direct interaction with the GUI, as well as an active connection to the database.

4.8.3 Detailed Software Design -Edit Player (CSU)

4.8.3.1 Team Admin Manage Roster Method – EditPlayer()
4.8.3.2 Narrative:

The EditPlayer method allows new players and coaches to be added to a team in the database.

4.8.3.3 Input Data Elements:

Table 13 Manage Roster Page –Manage Roster Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

TeamKey

Team id

int

n/a

Session

Parameter (By Value)

FirstName

Player's First Name

varChar

50

Edit Player Page

Parameter (By Value)

LastName

Player's Last Name

varChar

50

Edit Player Page

Parameter (By Value)

NickName

Player's Nick Name, optional

varChar

50

Edit Player Page

Parameter (By Value)

EmailAddress

Player's Email Address, optional

varChar

50

Edit Player Page

Parameter (By Value)

IsCoach

Indicates if the team member is a coach or player

bit

1 = coach

0 = player

Edit Player Page

Parameter (By Value)

CanManageTeam

Indicates if the team member can edit the team website

bit

0 = Restricted user

1 = Full rights

Edit Player Page

Parameter (By Value)

4.8.3.4 Output Data Elements:

Table 14 Manage Roster Page –Manage Roster Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

PlayerKey

Player's id

int

n/a

4.8.3.5 Processing Characteristics

Chained row insert

4.8.3.6 Algorithms

SEARCH for EmailAddress IN User table

If Found, Fetch UserKey

Else Create new row in User table, save new UserKey

SEARCH for UserKey/TeamKey in PlayerKey

If Found, throw error

Else PlayerKey in Player table,

Update * by PlayerKey

4.8.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.8.3.8 Utilization of Other Elements

The EditPlayer method requires direct interaction with the GUI, as well as an active connection to the database.

4.8.4 Detailed Software Design -Remove Player (CSU)

4.8.4.1 Team Admin Manage Roster Method – removePlayer ()
4.8.4.2 Narrative:

The removePlayer method allows Team Admins to specify the player they would like to remove from the Roster. This method shall check for the IsCanceled value in the Player table and set to 1. That Player will no longer be visible for that team; however, the Player will not be removed from the database.

4.8.4.3 Input Data Elements:

Table 15 Team Admin Modify Lineup – Remove Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

IsCanceled

Removal Bit

Bit

0 = not set, 1 = set

Player Table

Parameter (By Value)

playerID

Player Identifier

Char

1-6 Chars

playerID

Parameter (By Value)

4.8.4.4 Output Data Elements

Table 16Team Admin Modify Lineup – Remove Player Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

Success Message

Success

Popup

Na

Display

Show

4.8.4.5 Processing Characteristics
4.8.4.6 Algorithms

Search Player Table by PlayerKey

Fetch IsCanceled

IsCanceled = 1

4.8.4.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.8.4.8 Utilization of Other Elements

The removePlayer method requires inclusion in the classes utilized within the ManRoster, as well as an active connection to the Teammate Pro database.

4.8.4.9 Limitations

The playerID and lineupID cannot be passed in as a NULL value, as the database cannot successfully query tblPlayer or tblLineup with this invalid input. Constraints placed upon the field input of the ModifyLineup Page shall prevent this occurrence.

4.9 Manage Player Bios (Sub-CSC)

4.9.1 CSC Structure Chart Diagrams

4.9.2 Detailed Software Design -Add Player Bio (CSU)

4.9.2.1 Team Admin ManPlayerBio Method – addBio()
4.9.2.2 Narrative:

The addBio method allows players bios to be added to the players information in the Teammate Pro database in the Player table. A team and player must exist in the database prior to adding the bios information.

4.9.2.3 Input Data Elements:

Table 17 Manage Player Bios Page –Add Player Bio Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

TeamKey

Team id

int

n/a

Session

Parameter (By Value)

PlayerKey

Player's id

int

n/a

Manage Player Bios Page

SQL

4.9.2.4 Output Data Elements:

Table 18 Manage Player Bios Page –Add Bio Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

Bios

Player Bio for written description of player

String

500 char

Database

SQL

Success

Message

Bool

0 = False

1 = True

Manage Player Bios Page

GUI Dialogue/Message

4.9.2.5 Processing Characteristics

Chained row insert

4.9.2.6 Algorithms

Get PlayerKey and Bios information from Manage Player Bios Page

SEARCH for PlayerKey IN Player table

If Found, Bios = Bios

Display success message

4.9.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.9.2.8 Utilization of Other Elements

The addBios method requires interaction with the ManagePlayerBio page, as well as an active connection to the Teammate Pro database.

4.9.3 Detailed Software Design -Edit Player Bio (CSU)

4.9.3.1 Team Admin ManPlayerBio Method – editBio()
4.9.3.2 Narrative:

The editBio method allows players bios to be changed in the players information in the Teammate Pro database in the Player table. A team and player must exist in the database prior to adding the bios information.

4.9.3.3 Input Data Elements:

Table 19 Manage Player Bios Page –Edit Player Bio Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

TeamKey

Team id

int

n/a

Session

Parameter (By Value)

PlayerKey

Player's id

int

n/a

Manage Player Bios Page

SQL

4.9.3.4 Output Data Elements:

Table 20 Manage Player Bios Page –Edit Bio Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

Bios

Player Bio for written description of player

String

500 char

Database

SQL

Success

Message

Bool

0 = False

1 = True

Manage Player Bios Page

GUI Dialogue/Message

4.9.3.5 Processing Characteristics

Chained row insert

4.9.3.6 Algorithms

Get PlayerKey and Bios information from Manage Player Bios Page

SEARCH for PlayerKey IN Player table

If Found, Bios = Bios

Display success message

4.9.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.9.3.8 Utilization of Other Elements

The editBios method requires interaction with the ManagePlayerBio page, as well as an active connection to the Teammate Pro database.

4.10 Manage Schedule (Sub-CSC)

4.10.1 CSC Structure Chart Diagrams

4.10.2 Detailed Software Design -Add Scheduled Game (CSU)

4.10.2.1 Team Admin manSchedule Method – AddGame ()
4.10.2.2 Narrative:

The AddGame method allows new players and coaches to be added to a team in the database.

4.10.2.3 Input Data Elements:

Table 21 Manage Schedule Page –Manage Schedule Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

TeamKey

Team id

int

n/a

Session

Parameter (By Value)

GameDate

Date and time of game

datetime

n/a

Team Calendar Page

Parameter (By Value)

OpposingTeam

Name of other team

varChar

100

Team Calendar Page

Parameter (By Value)

Location

Address of playing field

varChar

1,000

Team Calendar Page

Parameter (By Value)

IsHomeGame

Flag indicating game location

bit

1= home

0 = away

Team Calendar Page

Parameter (By Value)

4.10.2.4 Output Data Elements:

Table 22 Manage Schedule Page –Manage Schedule Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

GameKey

New Game's id

int

n/a

4.10.2.5 Processing Characteristics

Chained row insert

4.10.2.6 Algorithms

SEARCH for EmailAddress IN User table

If Found, Fetch UserKey

Else Create new row in User table, save new UserKey

SEARCH for UserKey/TeamKey in PlayerKey

If Found, throw error

Else Create new row in Player table, returning PlayerKey

4.10.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.10.2.8 Utilization of Other Elements

The AddGame method requires direct interaction with the GUI, as well as an active connection to the database.

4.10.3 Detailed Software Design -Edit Scheduled Game (CSU)

4.10.4 Detailed Software Design -Cancel Scheduled Game (CSU)

4.11 Manage Lineup (Sub-CSC)

4.11.1 CSC Structure Chart Diagrams

4.11.2 Detailed Software Design -Create Lineup (CSU)

4.11.2.1 Team Admin CreateLineup Method – setLineup ()
4.11.2.2 Narrative:

The setLineup method allows the team admin user to store the current lineup that has been created for selected game. This method shall check for the gameDate value and the lineupComplete value to determine if the submitted lineup has been properly created by the user before it is stored in the database. A lineup may not be created without an existing game date, or if the lineup has not successfully been completed prior to submission.

4.11.2.3 Input Data Elements:

Table 23 Team Admin Manage Lineup – Create Lineup Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

gameDate

Game Date

Date

N/A

gameID

Parameter (By Value)

lineupComplete

Lineup

Flag

Bool

0 = False

1 = True

lineupKey

Parameter (By Value)

4.11.2.4 Output Data Elements

Table 24 Team Admin Manage Lineup – Create Lineup Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayLineup

Created lineup successfully displayed

Bool

0 = False

1 = True

Create Lineup Page

GUI Dialogue/Message

4.11.2.5 Processing Characteristics
4.11.2.6 Algorithms

VERIFY lineupComplete IN tblLineup

IF gameDate EXISTS

AND

IF lineupComplete EQUALS 1

THEN STORE INTO tblLineup

RETURN displayLineup

ELSE

RETURN Error Message “Lineup Incomplete”

4.11.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.11.2.8 Utilization of Other Elements

The setLineup method requires inclusion in the classes utilized within the CreateLineupPage, as well as an active connection to the Teammate Pro database.

4.11.2.9 Limitations

The gameDate cannot be passed in as a NULL value, as the database cannot successfully query tblGame or tblLineup with this invalid input. Constraints placed upon the field input of the CreateLineup Page shall prevent this occurrence.

4.11.3 Detailed Software Design -Load Default Lineup (CSU)

4.11.3.1 Team Admin LoadDefaultLineup Method – getDefaultLineup ()
4.11.3.2 Narrative:

The getDefaultLineup method allows the team admin user to access the current stored default lineup that has been created for the team. This method shall check for the lineupID value and the isDefault value to retrieve the proper lineup in the database that has been identified previously as the default. A default lineup cannot be successfully loaded if no lineup currently exists with the status of default.

4.11.3.3 Input Data Elements:

Table 25 Team Admin Manage Lineup – Load Default Lineup Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

lineupID

Lineup Identifier

Char

N/A

lineupKey

Parameter (By Value)

isDefault

Default Lineup

Flag

Bool

0 = False

1 = True

lineupID

Parameter (By Value)

4.11.3.4 Output Data Elements

Table 26 Team Admin Manage Lineup – Load Default Lineup Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

setLineup

Sets values for lineup with the default values

dataTable

N/A

Create Lineup Page

GUI Dialogue/Message

4.11.3.5 Processing Characteristics
4.11.3.6 Algorithms

VERIFY lineupID IN tblLineup

IF lineupID EXISTS

AND

IF isDefault EQUALS 1

THEN setLineup = defaultLineup

RETURN displayLineup

ELSE

RETURN Error Message “No Default Lineup”

4.11.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.11.3.8 Utilization of Other Elements

The getDefaultLineup method requires inclusion in the classes utilized within the CreateLineupPage, as well as an active connection to the Teammate Pro database.

4.11.3.9 Limitations

The lineupID cannot be passed in as a NULL value, as the database cannot successfully query tblLineup with this invalid input. Constraints placed upon the field input of the Load Default Lineup Page shall prevent this occurrence.

4.12 Manage Statistics (Sub-CSC)

4.12.1 CSC Structure Chart Diagrams

4.12.2 Detailed Software Design -Update Statistics (CSU)

4.12.2.1 Record Game Statistics Method – UpdateBatterStats()
4.12.2.2 Narrative:

The function of the UpdateBatterStats method is to modify or insert batting statistics for a particular team player in the BattingStats table in the Teammate Pro database. The method shall utilize a player’s unique identifier and a game’s unique identifier to update or insert a unique row in the BattingStats table associated with that player and game.

4.12.2.3 Input Data Elements:

Table 27 Manage Statistics – UpdateBatterStats Input Data Elements

Identifier

Description

Data Type

Limit/

Range

Source(s)

Input Method

playerKey

The unique identifier for Player

Int

n/a

GUI List

Parameter

(By Value)

gameKey

The unique identifier for Game

Int

n/a

GUI List

Parameter

(By Value)

statName

The batting statistic to be updated

String

n/a

GUI List

Parameter (By Value)

statValue

The value of the statistic to be updated

Int

n/a

Calculated

Parameter

(By Value)

4.12.2.4 Output Data Elements:

Table 28Manage Statistics – GetBatterStats() Output Data Elements

Identifier

Description

Data Type

Limit/

Range

Destination(s)

Output Method

n/a

n/a

n/a

n/a

n/a

n/a

4.12.2.5 Processing Characteristics

The UpdateBatterStats method performs an indexed table search and performs an update on a specified column. If no matching row exists, a new row is created.

4.12.2.6 Algorithms

SEARCH playerKey AND gameKey IN BattingStats table

IF no matching rows

INSERT new row with playerKey and gameKey and values of zero

for all statistic columns

INCREMENT column [statName] by statValue

4.12.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.12.2.8 Utilization of Other Elements

The UpdateBatterStats method requires inclusion in the classes utilized within the ManageStatisticsPage, as well as an active connection to the Teammate Pro database.

4.12.2.9 Limitations

The playerKey and gameKey cannot be passed in as a NULL value or a value that doesn’t map to a row in the Player or Game table. Both of these cases should result in no rows updated or inserted in BattingStatistics table.

4.12.3 Detailed Software Design –Get Batter Statistics (CSU)

4.12.3.1 Manage Statistics Method – GetBatterStats()
4.12.3.2 Narrative:

The function of the GetBatterStats method is to retrieve batting statistics for a particular team player from the BattingStats table in the Teammate Pro database. The method shall utilize a player’s unique identifier to select all rows from the BattingStats table associated with that player and display the data in a GUI table.

4.12.3.3 Input Data Elements:

Table 29 Manage Statistics – GetBatterStats() Input Data Elements

Identifier

Description

Data Type

Limit/

Range

Source(s)

Input Method

playerKey

The unique identifier for Player

Int

n/a

GUI List

Parameter

(By Value)

4.12.3.4 Output Data Elements:

Table 30 Manage Statistics – GetBatterStats() Output Data Elements

Identifier

Description

Data Type

Limit/

Range

Destination(s)

Output Method

batterStats

Tablular data structure containing all of a player’s batting statistics

DataTable

n/a

Display Player Statistics Page

GUI

4.12.3.5 Processing Characteristics

The GetBatterStats method is an indexed table search.

4.12.3.6 Algorithms

SEARCH playerKey IN BattingStats table

STORE matching rows in batterStats

DISPLAY rows in batterStats

4.12.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.12.3.8 Utilization of Other Elements

The GetBatterStats method requires inclusion in the classes utilized within the ManageStatisticsPage, as well as an active connection to the Teammate Pro database.

4.12.3.9 Limitations

The playerKey cannot be passed in as a NULL value or a value that doesn’t map to a row in the Player table. Both of these cases should result in no rows stored in batterStats.

4.13 Manage Team Discussion Board (Sub-CSC)

4.13.1 CSC Structure Chart Diagrams

4.13.2 Detailed Software Design -Create Message (CSU)

4.13.2.1 Team Admin SendMessage Method – setMessage()
4.13.2.2 Narrative:

The setMessage method allows the Team Admin to be able to view the team discussion board. The discussion board messages will be stored in the Teammate Pro database by date. The IsRestricted bit must not be set otherwise the player or coach will not be able to access the Discussion board.

4.13.2.3 Input Data Elements:

Table 31 Access Team Discussion Board Page –Send Message Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

IsRestricted

Field used to restrict access to Discussion Board

bit

0 = not set, 1 = set

Player table

Parameter (By Value)

PlayerKey

Player Id

Int

N/A

Session

Parameter

(By Value)

MessageTxt

Text Box for Message

String

500 char

Discussion Board Page

Parameter

(By Value)

4.13.2.4 Output Data Elements:

Table 32 Access Team Discussion Board Page –View Message Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

Message

Message Text

varChar

500 char

Message Table

assignment

4.13.2.5 Processing Characteristics

Chained row insert

4.13.2.6 Algorithms

Get PlayerKey from Discussion Board Page

SEARCH for PlayerKey IN Player table

If Found, fetch IsRestricted

If IsRestricted Deny access

Else, fetch Discussion Board Message

setMessage = MessageTxt

Display Discussion Board

4.13.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.13.2.8 Utilization of Other Elements

The setMessage method requires interaction with the ViewMessage page, as well as an active connection to the Teammate Pro database.

4.13.3 Detailed Software Design -View Message (CSU)

4.13.3.1 Team Admin ViewMessage Method – getMessage()
4.13.3.2 Narrative:

The getMessage method allows the Team Admin to be able to view the team discussion board. The discussion board messages will be stored in the Teammate Pro database by date. The IsRestricted bit must not be set otherwise the player or coach will not be able to access the Discussion board.

4.13.3.3 Input Data Elements:

Table 33 Access Team Discussion Board Page –View Message Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

IsRestricted

Field used to restrict access to Discussion Board

bit

0 = not set, 1 = set

Player table

Parameter (By Value)

PlayerKey

Player Id

Int

N/A

Session

Parameter

(By Value)

4.13.3.4 Output Data Elements:

Table 34 Access Team Discussion Board Page –View Message Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

4.13.3.5 Processing Characteristics

Chained row insert

4.13.3.6 Algorithms

Get PlayerKey from Discussion Board Page

SEARCH for PlayerKey IN Player table

If Found, fetch IsRestricted

If IsRestricted Deny access

Else, fetch Discussion Board

Display Discussion Board

4.13.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.13.3.8 Utilization of Other Elements

The getMessage method requires interaction with the ViewMessage page, as well as an active connection to the Teammate Pro database.

4.13.4 Detailed Software Design -Delete Message (CSU)

4.13.4.1 Team Admin DeleteMessage Method – setMsgDelete ()
4.13.4.2 Narrative:

The setMsgDelete method allows the team admin user to remove messages that have been posted to the team discussion board. This method shall check for the messageID value for the selected message and modify the isDeleted value to prevent the message from displaying in the message board. The team admin may modify the isDeleted value for any message that is posted.

4.13.4.3 Input Data Elements:

Table 35 Team Admin Manage Discussion Board – Delete Message Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

messageID

Message Identifier

Char

6 Chars

messageID

Parameter (By Value)

isDeleted

Message Deleted

Flag

Bool

0 = False

1 = True

messageID

Parameter (By Value)

4.13.4.4 Output Data Elements:

Table 36 Team Admin Manage Discussion Board – Delete Message Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayMsg

Modifies the Current Display of Messages

dataTable

N/A

Manage Discussion Board Page

GUI Dialogue/Message

4.13.4.5 Processing Characteristics
4.13.4.6 Algorithms

VERIFY messageID IN tblMessage

IF messageID EXISTS

AND

IF isDeleted EQUALS 0

THEN SET isDeleted = 1

RETURN displayMsg

ELSE

RETURN Error Message “Message Does Not Exist”

4.13.4.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.13.4.8 Utilization of Other Elements

The setMsgDelete method requires inclusion in the classes utilized within the ManageDiscussionBoardPage, as well as an active connection to the Teammate Pro database.

4.13.4.9 Limitations

The messageID cannot be passed in as a NULL value, as the database cannot successfully query tblMsg with this invalid input. Constraints placed upon the field input of the ManageDiscussionBoardPage shall prevent this occurrence.

4.13.5 Detailed Software Design -Allow/Deny User Access (CSU)

4.13.5.1 Team Admin ModifyAccess Method – setAccess ()
4.13.5.2 Narrative:

The setAccess method allows the team admin user to modify a user’s privilege to allow or deny their access to create messages within the team discussion board. This method shall check for the userID value associated with a selected message and modify the msgAccess value within tblUser. The team admin may modify the msgAccess value for any user who has posted an inappropriate message.

4.13.5.3 Input Data Elements:

Table 37 Team Admin Manage Discussion Board – Delete Message Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

messageID

Message Identifier

Char

6 Chars

messageID

Parameter (By Value)

userID

User Identifier

Char

6-10 Chars

userID

Parameter (By Value)

msgAccess

User Access Flag

Bool

0 = False

1 = True

userID

Parameter

(By Value)

4.13.5.4 Output Data Elements:

Table 38 Team Admin Manage Discussion Board – Delete Message Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayUser

Displays User Profile with New Changes

dataTable

N/A

Manage Discussion Board Page

GUI Dialogue/Message

4.13.5.5 Processing Characteristics
4.13.5.6 Algorithms

VERIFY messageID, userID IN tblMessage, tblUser

IF messageID EXISTS

AND userID EXISTS

IF msgAccess EQUALS 0

THEN SET msgAccess = 1

RETURN displayUser

ELSE

IF msgAccess EQUALS 1

THEN SET msgAccess = 0

RETURN displayUser

ELSE

RETURN Error Message “User No Longer Exists”

4.13.5.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.13.5.8 Utilization of Other Elements

The setAccess method requires inclusion in the classes utilized within the ManageDiscussionBoardPage, as well as an active connection to the Teammate Pro database.

4.13.5.9 Limitations

The messageID and userID cannot be passed in as a NULL value, as the database cannot successfully query tblMsg and tblUser with this invalid input. Constraints placed upon the field input of the ManageDiscussionBoardPage shall prevent this occurrence.

4.14 Access Team Information (CSC)

4.14.1 CSC Structure Chart Diagrams

4.15 View Team Information (Sub-CSC)

4.15.1 CSC Structure Chart Diagrams

4.15.2 Detailed Software Design -View Coach Information (CSU)

4.15.2.1 User ViewTeamInfo Method – viewCoach ()
4.15.2.2 Narrative:

The viewCoach method allows a user to view on one page the coach’s first name, last name, email address, phone number and (optional) picture. The user will select a list of available coaches by checking the isCoach field of the Players table.

4.15.2.3 Input Data Elements:

Table 39 View Coach Information Page –View Coach Information Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

getCoach

Coach Name

String

256 characters

PlayerKey

Dropdown

4.15.2.4 Output Data Elements:

Table 40 View Coach Information Page –View Coach Information Input Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayCoach

Coach Information Page

DataTable

N/A

CoachInfoPage

GUI

4.15.2.5 Processing Characteristics
4.15.2.6 Algorithms

Get list from Player table

Check if isCoach

Populate list

On click:

Get Coach First Name from database,

Get Coach Last Name from database,

Get Coach Phone Number from database,

Get Coach email from database,

Get Coach picture from database,

display

4.15.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.15.2.8 Utilization of Other Elements

The viewCoach method requires inclusion in the classes utilized within the CoachInfoPage, as well as an active connection to the Teammate Pro database.

4.15.2.9 Limitations

The viewCoach will be populated by the Player table with check for isCoach field into a data table.

4.15.3 Detailed Software Design -View Roster (CSU)

4.15.3.1 User ViewRoster Method – getRoster ()
4.15.3.2 Narrative:

The getRoster method of the ViewRoster class allows a user to view on one page all the players information including first name, last name, email address, phone number. The getRoster will display in a table all the players’ information.

4.15.3.3 Input Data Elements:

Table 41 View Roster Page –View Roster Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

onSubmit

Listener for Button Click

Listener

N/A

ViewRosterPage

GUI click

4.15.3.4 Output Data Elements:

Table 42 View Roster Page –View Roster Input Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

getRoster

Roster Page

DataTable

N/A

RosterPage

GUI

4.15.3.5 Processing Characteristics
4.15.3.6 Algorithms

Get list from Player table

On click:

Populate Grid

4.15.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.15.3.8 Utilization of Other Elements

The getRoster method requires inclusion in the classes utilized within the RosterPage, as well as an active connection to the Teammate Pro database.

4.15.3.9 Limitations

The getRoster will be populated by the Player table into a data table and displayed.

4.15.4 Detailed Software Design -View Player Bios (CSU)

4.15.4.1 User ViewBios Method – getBios ()
4.15.4.2 Narrative:

The getBios method of the ViewBios class allows a user to view on one page a player’s information including first name, last name, email address, phone number, (optional) picture and player bio information.

4.15.4.3 Input Data Elements:

Table 43 View Bios Page –View Bios Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

BiosSubmit

Listener for Button Click

Listener

N/A

ViewBiosPage

GUI click

4.15.4.4 Output Data Elements:

Table 44 View Bios Page –View Bios Input Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

getBios

Player Bios Page

DataTable

N/A

RosterPage

GUI

4.15.4.5 Processing Characteristics
4.15.4.6 Algorithms

Get list from Player table

On click:

Populate Grid

4.15.4.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.15.4.8 Utilization of Other Elements

The getBios method requires inclusion in the classes utilized within the RosterPage, as well as an active connection to the Teammate Pro database.

4.15.4.9 Limitations

The getBios will be populated by the Player table into a data table and displayed.

4.16 View Schedule (Sub-CSC)

4.16.1 CSC Structure Chart Diagrams

4.16.2 Detailed Software Design -Select Game (CSU)

4.16.2.1 User ViewLineup Method – selectGame()
4.16.2.2 Narrative:

The selectGame method allows users to specify the scheduled game for which they would like to view the pre-configured team lineup. This method shall check for the gameDate value and the lineupComplete value to determine if the selected game has a lineup properly configured. If the game selected does not have a lineup configured, the user will not be presented with a lineup.

4.16.2.3 Input Data Elements:

Table 45 User View Lineup – Select Game Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

gameDate

Game Date

Date

N/A

gameID

Parameter (By Value)

lineupComplete

Lineup

Flag

Bool

0 = False

1 = True

lineupKey

Parameter (By Value)

4.16.2.4 Output Data Elements:

Table 46 User View Lineup – Select Game Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayLineup

Lineup successfully displayed flag

Bool

0 = False

1 = True

View Lineup Page

GUI Dialogue/Message

4.16.2.5 Processing Characteristics
4.16.2.6 Algorithms

VERIFY lineupComplete IN tblLineup

IF gameDate EXISTS

AND

IF lineupComplete EQUALS 1

RETURN displayLineup

ELSE

RETURN Error Message “No Lineup Configured”

4.16.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.16.2.8 Utilization of Other Elements

The selectGame method requires inclusion in the classes utilized within the ViewLineupPage, as well as an active connection to the Teammate Pro database.

4.16.2.9 Limitations

The gameDate cannot be passed in as a NULL value, as the database cannot successfully query tblGame or tblLineup with this invalid input. Constraints placed upon the field input of the ViewLineup Page shall prevent this occurrence.

4.17 View Lineup (Sub-CSC)

4.17.1 CSC Structure Chart Diagrams

4.17.2 Detailed Software Design -Select Game (CSU)

4.17.2.1 User ViewLineup Method – selectGame()
4.17.2.2 Narrative:

The selectGame method allows users to specify the scheduled game for which they would like to view the pre-configured team lineup. This method shall check for the gameDate value and the lineupComplete value to determine if the selected game has a lineup properly configured. If the game selected does not have a lineup configured, the user will not be presented with a lineup.

4.17.2.3 Input Data Elements:

Table 47 User View Lineup – Select Game Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

gameDate

Game Date

Date

N/A

gameID

Parameter (By Value)

lineupComplete

Lineup

Flag

Bool

0 = False

1 = True

lineupKey

Parameter (By Value)

4.17.2.4 Output Data Elements:

Table 48 User View Lineup – Select Game Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayLineup

Lineup successfully displayed flag

Bool

0 = False

1 = True

View Lineup Page

GUI Dialogue/Message

4.17.2.5 Processing Characteristics
4.17.2.6 Algorithms

VERIFY lineupComplete IN tblLineup

IF gameDate EXISTS

AND

IF lineupComplete EQUALS 1

RETURN displayLineup

ELSE

RETURN Error Message “No Lineup Configured”

4.17.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.17.2.8 Utilization of Other Elements

The selectGame method requires inclusion in the classes utilized within the ViewLineupPage, as well as an active connection to the Teammate Pro database.

4.17.2.9 Limitations

The gameDate cannot be passed in as a NULL value, as the database cannot successfully query tblGame or tblLineup with this invalid input. Constraints placed upon the field input of the ViewLineup Page shall prevent this occurrence.

4.18 View Statistics (Sub-CSC)

4.18.1 CSC Structure Chart Diagrams

4.18.2 Detailed Software Design -View Team Statistics (CSU)

4.18.2.1 Manage Statistics Method – GetTeamStats()
4.18.2.2 Narrative:

The function of the GetTeamStats method is to retrieve batting statistics for a particular team player from the BattingStats table in the Teammate Pro database. The method shall utilize a player’s unique identifier to select all rows from the BattingStats table associated with that player and display the data in a GUI table.

4.18.2.3 Input Data Elements:

Table 49 Manage Statistics – GetBatterStats() Input Data Elements

Identifier

Description

Data Type

Limit/

Range

Source(s)

Input Method

playerKey

The unique identifier for Player

Int

n/a

GUI List

Parameter

(By Value)

4.18.2.4 Output Data Elements:

Table 50 Manage Statistics – GetBatterStats() Output Data Elements

Identifier

Description

Data Type

Limit/

Range

Destination(s)

Output Method

batterStats

Tablular data structure containing all of a player’s batting statistics

DataTable

n/a

Display Player Statistics Page

GUI

4.18.2.5 Processing Characteristics

The GetBatterStats method is an indexed table search.

4.18.2.6 Algorithms

Foreach Player in Team

SEARCH playerKey IN BattingStats table

STORE matching rows in batterStats

DISPLAY rows in batterStats

4.18.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.18.2.8 Utilization of Other Elements

The GetBatterStats method requires inclusion in the classes utilized within the ManageStatisticsPage, as well as an active connection to the Teammate Pro database.

4.18.2.9 Limitations

The playerKey cannot be passed in as a NULL value or a value that doesn’t map to a row in the Player table. Both of these cases should result in no rows stored in batterStats.

4.18.3 Detailed Software Design -View Game Statistics (CSU)

4.18.4 Detailed Software Design -View Player Statistics (CSU)

4.18.4.1 View Statistics Method – GetBatterStats()
4.18.4.2 Narrative:

The function of the GetBatterStats method is to retrieve batting statistics for a particular team player from the BattingStats table in the Teammate Pro database. The method shall utilize a player’s unique identifier to select all rows from the BattingStats table associated with that player and display the data in a GUI table.

4.18.4.3 Input Data Elements:

Table 51 View Statistics – GetBatterStats() Input Data Elements

Identifier

Description

Data Type

Limit/

Range

Source(s)

Input Method

playerKey

The unique identifier for Player

Int

n/a

GUI List

Parameter

(By Value)

4.18.4.4 Output Data Elements:

Table 52 View Statistics – GetBatterStats() Output Data Elements

Identifier

Description

Data Type

Limit/

Range

Destination(s)

Output Method

batterStats

Tablular data structure containing all of a player’s batting statistics

DataTable

n/a

Display Player Statistics Page

GUI

4.18.4.5 Processing Characteristics

The GetBatterStats method is an indexed table search.

4.18.4.6 Algorithms

SEARCH playerKey IN BattingStats table

STORE matching rows in batterStats

DISPLAY rows in batterStats

4.18.4.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.18.4.8 Utilization of Other Elements

The GetBatterStats method requires inclusion in the classes utilized within the ManageStatisticsPage, as well as an active connection to the Teammate Pro database.

4.18.4.9 Limitations

The playerKey cannot be passed in as a NULL value or a value that doesn’t map to a row in the Player table. Both of these cases should result in no rows stored in batterStats.

4.19 View Game Tracker (Sub-CSC)

4.19.1 CSC Structure Chart Diagrams

The following illustration is a structure diagram for the Game Tracker:

image52.emf

Begin Inning

Home

Game?

Record

Pitcher Stat

Three

Outs?

No

Record

Batter Stat

Yes

YesNo

Three

Outs?

No

End of

Inning?

Yes

No

End of

Game?

Yes

No

Stop

Yes

Start

Home

Game?

Yes

No

Figure 52 Game Tracker Structure

4.19.2 Detailed Software Design -Select Game (CSU)

4.19.2.1 Manage Statistics Method – ControlGamePlay()
4.19.2.2 Narrative:

The function of the ControlGamePlay method is to cycle through a game lineup for the input of game statistics during regular baseball game play. The flowchart in Figure 52 depicts the control structure required for the algorithm in the ControlGamePlay method.

4.19.2.3 Input Data Elements:

Table 53 Manage Statistics – ControlGamePlay() Input Data Elements

Identifier

Description

Data Type

Limit/

Range

Source(s)

Input Method

game

Contains the current status of a Game

Game

n/a

GUI List

Parameter

(By Value)

gameLineup

The team lineup

Lineup

n/a

Teammate Pro database

Parameter (By Value)

4.19.2.4 Output Data Elements:

Table 54 Manage Statistics – ControlGamePlay() Output Data Elements

Identifier

Description

Data Type

Limit/

Range

Destination(s)

Output Method

n/a

n/a

n/a

n/a

n/a

n/a

4.19.2.5 Processing Characteristics

The GetBatterStats method is an application control method.

4.19.2.6 Algorithms

WHILE the current game innning <= total innings in a Game

IF (Top of Inning and Home Game) or (Bottom of Inning and Not Home Game)

WHILE outs < 3

RECORD Pitching Statistic

INCREMENT current game inning by .5

ELSE

WHILE outs < 3

GET next batter from gameLineup

RECORD Batting Statistic

INCREMENT current game inning by .5

4.19.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.19.2.8 Utilization of Other Elements

The GetBatterStats method requires inclusion in the classes utilized within the ManageStatisticsPage, as well as an active connection to the Teammate Pro database.

4.19.2.9 Limitations

The playerKey cannot be passed in as a NULL value or a value that doesn’t map to a row in the Player table. Both of these cases should result in no rows stored in batterStats.

4.20 Access Team Discussion Board (Sub-CSC)

4.20.1 CSC Structure Chart Diagrams

4.20.2 Detailed Software Design -View Message (CSU)

4.20.2.1 User ViewMessage Method – getMessage()
4.20.2.2 Narrative:

The getMessage method allows the Team Admin to be able to view the team discussion board. The discussion board messages will be stored in the Teammate Pro database by date. The IsRestricted bit must not be set otherwise the player or coach will not be able to access the Discussion board.

4.20.2.3 Input Data Elements:

Table 55 Access Team Discussion Board Page –View Message Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

IsRestricted

Field used to restrict access to Discussion Board

bit

0 = not set, 1 = set

Player table

Parameter (By Value)

PlayerKey

Player Id

Int

N/A

Session

Parameter

(By Value)

4.20.2.4 Output Data Elements:

Table 56 Access Team Discussion Board Page –View Message Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

4.20.2.5 Processing Characteristics

Chained row insert

4.20.2.6 Algorithms

Get PlayerKey from Discussion Board Page

SEARCH for PlayerKey IN Player table

If Found, fetch IsRestricted

If IsRestricted Deny access

Else, fetch Discussion Board

Display Discussion Board

4.20.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.20.2.8 Utilization of Other Elements

The getMessage method requires interaction with the ViewMessage page, as well as an active connection to the Teammate Pro database.

4.20.3 Detailed Software Design -Create Message (CSU)

4.20.3.1 User SendMessage Method – setMessage()
4.20.3.2 Narrative:

The setMessage method allows the user to be able to view the team discussion board. The discussion board messages will be stored in the Teammate Pro database by date. The IsRestricted bit must not be set otherwise the player or coach will not be able to access the Discussion board.

4.20.3.3 Input Data Elements:

Table 57 Access Team Discussion Board Page –Send Message Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

IsRestricted

Field used to restrict access to Discussion Board

bit

0 = not set, 1 = set

Player table

Parameter (By Value)

PlayerKey

Player Id

Int

N/A

Session

Parameter

(By Value)

MessageTxt

Text Box for Message

String

500 char

Discussion Board Page

Parameter

(By Value)

4.20.3.4 Output Data Elements:

Table 58 Access Team Discussion Board Page –View Message Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

Message

Message Text

varChar

500 char

Message Table

assignment

4.20.3.5 Processing Characteristics

Chained row insert

4.20.3.6 Algorithms

Get PlayerKey from Discussion Board Page

SEARCH for PlayerKey IN Player table

If Found, fetch IsRestricted

If IsRestricted Deny access

Else, fetch Discussion Board Message

setMessage = MessageTxt

Display Discussion Board

4.20.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.20.3.8 Utilization of Other Elements

The setMessage method requires interaction with the ViewMessage page, as well as an active connection to the Teammate Pro database.

4.20.4 Detailed Software Design -Edit Message (CSU)

4.20.4.1 User SendMessage Method – setMessage()
4.20.4.2 Narrative:

The setMessage method allows the user to be able to view the team discussion board. The discussion board messages will be stored in the Teammate Pro database by date. The IsRestricted bit must not be set otherwise the player or coach will not be able to access the Discussion board.

4.20.4.3 Input Data Elements:

Table 59 Access Team Discussion Board Page –Send Message Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

IsRestricted

Field used to restrict access to Discussion Board

bit

0 = not set, 1 = set

Player table

Parameter (By Value)

PlayerKey

Player Id

Int

N/A

Session

Parameter

(By Value)

MessageTxt

Text Box for Message

String

500 char

Discussion Board Page

Parameter

(By Value)

4.20.4.4 Output Data Elements:

Table 60 Access Team Discussion Board Page –View Message Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

Message

Message Text

varChar

500 char

Message Table

assignment

4.20.4.5 Processing Characteristics

Chained row insert

4.20.4.6 Algorithms

Get PlayerKey from Discussion Board Page

SEARCH for PlayerKey IN Player table

If Found, fetch IsRestricted

If IsRestricted Deny access

Else, fetch Discussion Board Message

setMessage = MessageTxt

Display Discussion Board

4.20.4.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed. Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.20.4.8 Utilization of Other Elements

The setMessage method requires interaction with the ViewMessage page, as well as an active connection to the Teammate Pro database.

4.20.5 Detailed Software Design -Delete Message (CSU)

4.20.5.1 User DeleteMessage Method – setMsgDelete ()
4.20.5.2 Narrative:

The setMsgDelete method allows the user to remove messages that have been posted to the team discussion board. This method shall check for the messageID value for the selected message and modify the isDeleted value to prevent the message from displaying in the message board. The team admin may modify the isDeleted value for any message that is posted.

4.20.5.3 Input Data Elements:

Table 61 UserManage Discussion Board – Delete Message Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

messageID

Message Identifier

Char

6 Chars

messageID

Parameter (By Value)

isDeleted

Message Deleted

Flag

Bool

0 = False

1 = True

messageID

Parameter (By Value)

4.20.5.4 Output Data Elements:

Table 62 User Manage Discussion Board – Delete Message Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayMsg

Modifies the Current Display of Messages

dataTable

N/A

Manage Discussion Board Page

GUI Dialogue/Message

4.20.5.5 Processing Characteristics
4.20.5.6 Algorithms

VERIFY messageID IN tblMessage

IF messageID EXISTS

AND

IF isDeleted EQUALS 0

THEN SET isDeleted = 1

RETURN displayMsg

ELSE

RETURN Error Message “Message Does Not Exist”

4.20.5.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.20.5.8 Utilization of Other Elements

The setMsgDelete method requires inclusion in the classes utilized within the ManageDiscussionBoardPage, as well as an active connection to the Teammate Pro database.

4.20.5.9 Limitations

The messageID cannot be passed in as a NULL value, as the database cannot successfully query tblMsg with this invalid input. Constraints placed upon the field input of the ManageDiscussionBoardPage shall prevent this occurrence.

4.21 Mobile Team Information Manager (CSC)

4.21.1 CSC Structure Chart Diagrams

4.22 Record Game Statistics (Sub-CSC)

4.22.1 CSC Structure Chart Diagrams

4.22.2 Select Game

4.22.3 Enter Batting Statistics

4.22.4 Enter Pitching Statistics

4.23 Modify Lineup (Sub-CSC)

4.23.1 CSC Structure Chart Diagrams

4.23.2 Detailed Software Design -Select Game (CSU)

4.23.2.1 Team Admin ModifyLineup Method – selectGame ()
4.23.2.2 Narrative:

The selectGame method allows users to specify the scheduled game for which they would like to modify the pre-configured team lineup. This method shall check for the gameDate value and the lineupComplete value to determine if the selected game has a lineup currently available for modification. If the game selected does not have a lineup configured, the user will not be presented with a lineup to modify.

4.23.2.3 Input Data Elements:

Table 63 Team Admin Modify Lineup – Select Game Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

gameDate

Game Date

Date

N/A

gameID

Parameter (By Value)

lineupComplete

Lineup

Flag

Bool

0 = False

1 = True

lineupKey

Parameter (By Value)

4.23.2.4 Output Data Elements:

Table 64 Team Admin Modify Lineup – Select Game Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

displayLineup

Lineup successfully displayed flag

Bool

0 = False

1 = True

Modify Lineup Page

GUI Dialogue/Message

4.23.2.5 Processing Characteristics
4.23.2.6 Algorithms

VERIFY lineupComplete IN tblLineup

IF gameDate EXISTS

AND

IF lineupComplete EQUALS 1

RETURN displayLineup

ELSE

RETURN Error Message “No Lineup Configured”

4.23.2.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.23.2.8 Utilization of Other Elements

The selectGame method requires inclusion in the classes utilized within the ModifyLineupPage, as well as an active connection to the Teammate Pro database.

4.23.2.9 Limitations

The gameDate cannot be passed in as a NULL value, as the database cannot successfully query tblGame or tblLineup with this invalid input. Constraints placed upon the field input of the ModifyLineup Page shall prevent this occurrence.

4.23.3 Detailed Software Design -Add Player to Lineup (CSU)

4.23.3.1 Team Admin ModifyLineup Method – addPlayer ()
4.23.3.2 Narrative:

The addPlayer method allows users to specify the player they would like to add to the current pre-configured team lineup that has been established for a scheduled game. This method shall check for the lineupID value, and modify the playerID that is stored in the lineupNo that is specified by the team admin. The user may not add the same playerID to more than a single lineupNo.

4.23.3.3 Input Data Elements:

Table 65 Team Admin Modify Lineup – Add Player Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

lineupID

Lineup Identifier

Char

6-10 Chars

lineupKey

Parameter (By Value)

playerID

Player Identifier

Char

1-6 Chars

playerpID

Parameter (By Value)

lineupNo

Number in Lineup

Int

1-9

lineupID

Parameter

(By Value)

4.23.3.4 Output Data Elements

Table 66 Team Admin Modify Lineup – Add Player Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

modifyLineup

Lineup Modified to Add Player

dataTable

N/A

Modify Lineup Page

GUI Dialogue/Message

4.23.3.5 Processing Characteristics
4.23.3.6 Algorithms

VERIFY lineupID IN tblLineup

IF lineupID EXISTS

AND

IF playerID NOT EXISTS in lineupNo

SET lineupNo = playerID

RETURN modifyLineup

ELSE

RETURN Error Message “Player Already Assigned”

4.23.3.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.23.3.8 Utilization of Other Elements

The addPlayer method requires inclusion in the classes utilized within the ModifyLineupPage, as well as an active connection to the Teammate Pro database.

4.23.3.9 Limitations

The playerID and lineupID cannot be passed in as a NULL value, as the database cannot successfully query tblPlayer or tblLineup with this invalid input. Constraints placed upon the field input of the ModifyLineup Page shall prevent this occurrence.

4.23.4 Detailed Software Design -Remove Player From Lineup (CSU)

4.23.4.1 Team Admin ModifyLineup Method – removePlayer ()
4.23.4.2 Narrative:

The removePlayer method allows users to specify the player they would like to remove from the current pre-configured team lineup that has been established for a scheduled game. This method shall check for the lineupID value, and remove the playerID that is stored in the lineupNo that is specified by the team admin. The user may only remove a player that has been assigned to a number in the lineup.

4.23.4.3 Input Data Elements:

Table 67 Team Admin Modify Lineup – Remove Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

lineupID

Lineup Identifier

Char

6-10 Chars

lineupKey

Parameter (By Value)

playerID

Player Identifier

Char

1-6 Chars

playerID

Parameter (By Value)

lineupNo

Number in Lineup

Int

1-9

lineupID

Parameter

(By Value)

4.23.4.4 Output Data Elements:

Table 68 Team Admin Modify Lineup – Remove Player Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

modifyLineup

Lineup Modified to Remove Player

dataTable

N/A

Modify Lineup Page

GUI Dialogue/Message

4.23.4.5 Processing Characteristics
4.23.4.6 Algorithms

VERIFY lineupID IN tblLineup

IF lineupID EXISTS

AND

IF playerID EXISTS in lineupNo

SET lineupNo = NULL

RETURN modifyLineup

ELSE

RETURN Error Message “Player Not Assigned”

4.23.4.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.23.4.8 Utilization of Other Elements

The removePlayer method requires inclusion in the classes utilized within the ModifyLineupPage, as well as an active connection to the Teammate Pro database.

4.23.4.9 Limitations

The playerID and lineupID cannot be passed in as a NULL value, as the database cannot successfully query tblPlayer or tblLineup with this invalid input. Constraints placed upon the field input of the ModifyLineup Page shall prevent this occurrence.

4.23.5 Detailed Software Design -Assign Position to Player (CSU)

4.23.5.1 Team Admin ModifyLineup Method – setPosition ()
4.23.5.2 Narrative:

The setPosition method allows users to specify the fielding position for players that exist within the pre-configured team lineup that has been established for a scheduled game. This method shall check for the lineupID and playerID values, and modify the existing positionID that is specified by the team admin. The user may not assign the same positionID to more than a single player in the lineup.

4.23.5.3 Input Data Elements:

Table 69 Team Admin Modify Lineup – Assign Position Input Data Elements

Identifier

Description

Data type

Limit/

Range

Source(s)

Input Method

lineupID

Lineup Identifier

Date

N/A

lineupKey

Parameter (By Value)

playerID

Player Identifier

Char

1-6 Chars

playerID

Parameter (By Value)

positionID

Number in Lineup

Int

1-9

lineupID

Parameter

(By Value)

4.23.5.4 Output Data Elements:

Table 70 Team Admin Modify Lineup – Assign Position Output Data Elements

Identifier

Description

Data type

Limit/

Range

Destination(s)

Output Method

modifyLineup

Lineup Modified to Assign Position

dataTable

N/A

Modify Lineup Page

GUI Dialogue/Message

4.23.5.5 Processing Characteristics
4.23.5.6 Algorithms

VERIFY lineupID IN tblLineup

IF lineupID EXISTS

AND

IF playerID EXISTS

SET positionID = Selected positionID

RETURN modifyLineup

ELSE

RETURN Error Message “Position Not Assigned”

4.23.5.7 Error Handling

Upon any error, transfer control to error handling page where the appropriate error message will be displayed.  Errors that may occur include:

· Insufficient access rights

· Network communication error

· Database connection error

· Invalid/Incomplete Fields

4.23.5.8 Utilization of Other Elements

The setPosition method requires inclusion in the classes utilized within the ModifyLineupPage, as well as an active connection to the Teammate Pro database.

4.23.5.9 Limitations

The playerID and lineupID cannot be passed in as a NULL value, as the database cannot successfully query tblPlayer or tblLineup with this invalid input. Constraints placed upon the field input of the ModifyLineup Page shall prevent this occurrence.

5 CSCI Data

The following are the global data elements of the Teammate Pro application. These tables represent the entire database as all are used throughout different CSCs.

Table 71 User

Column

DataType

Options

UserKey

int

Primary Identity Clustered

Email

nVarChar(50)

Password

nVarChar(50)

IsRegistered

bit

Default(0)

CreatedDate

DateTime

Default(GetDate)

CreatedBy

int

FK(User) null

CreatedByIP

varChar(20)

Table 72 Player

Column

DataType

Options

PlayerKey

int

Primary Identity Clustered

UserKey

int

FK(User) null

TeamKey

int

FK(User)

First Name

nVarChar(50)

Last Name

nVarChar(50)

Nick Name

nVarChar(100)

CanManageTeam

bit

Number

int

null Constraint(0..99)

CreatedDate

DateTime

Default(GetDate)

CreatedBy

int

FK(User)

CreatedByIP

char(15)

PlayerPage

nVarChar(max)

Null

PlayerPhoto

varChar(255)

Null

IsCoach

bit

Default(0)

IsActive

bit

Default(1)

IsRestricted

bit

Default(0)

Table 73 Team

Column

DataType

Options

TeamKey

int

Primary Identity Clustered

TeamName

nVarChar(100)

Indexed

LeagueName

nVarChar(100)

Indexed

SeasonStateDate

smallDateTime

City

nVarChar(100)

State

char(2)

IsMinorLeague

bit

TeamPage

nVarChar(max)

CreatedDate

DateTime

Default(GetDate)

CreatedBy

int

FK(User)

CreatedByIP

varChar(20)

LogoImage

varChar(255)

Color

varChar(255)

SiteTemplate

varChar(255)

Table 74 Game

Column

DataType

Options

GameKey

int

Primary Identity Clustered

TeamKey

int

FK(Team)

GameDate

smallDateTime

OpposingTeam

nVarChar(100)

Location

nVarChar(500)

IsHomeGame

bit

CreatedDate

DateTime

Default(GetDate)

CreatedBy

int

FK(User)

CreatedByIP

varChar(20)

IsActive

bit

Default(1)

IsCanceled

bit

Default(0)

Table 75 Lineup

Column

DataType

Options

LineupKey

int

Primary Identity Clustered

BattingOrder

int

Inning

int

GameKey

int

FK(Game)

PlayerKey

int

FK(Player)

PositionKey

int

FK(Position)

Version

int

Table 76 Position

Column

DataType

Options

PositionKey

int

Primary Identity Clustered

PositionName

varChar(50)

Abbreviation

varChar(5)

Table 77 GameScore

Column

DataType

Options

GameScoreKey

int

Primary Identity Clustered

GameKey

int

FK(Game)

Inning

int

Constraint(1..99)

HomeScore

int

Constraint(0..999)

HomeHits

int

Constraint(0..999)

HomeErrors

int

Constraint(0..999)

AwayScore

int

Constraint(0..999)

AwayHits

int

Constraint(0..999)

AwayErrors

int

Constraint(0..999)

Table 78 BattingStats

Column

DataType

Options

BattingStatsKey

int

Primary Identity Clustered

PlayerKey

int

FK(Player)

GameKey

int

FK(Game)

Singles

int

Constraint(0..999)

Doubles

int

Constraint(0..999)

Triples

int

Constraint(0..999)

HomeRuns

int

Constraint(0..999)

RunsScored

int

Constraint(0..999)

RunsBattedIn

int

Constraint(0..999)

Strikeouts

int

Constraint(0..999)

Popouts

int

Constraint(0..999)

Flyouts

int

Constraint(0..999)

Lineouts

int

Constraint(0..999)

Groundouts

int

Constraint(0..999)

Walks

int

Constraint(0..999)

IntentionalWalks

int

Constraint(0..999)

HitByPitch

int

Constraint(0..999)

ThirdStrikePastBall

int

Constraint(0..999)

OnByError

int

Constraint(0..999)

Table 79 PitchingStats

Column

DataType

Options

PitchingStatsKey

int

Primary Identity Clustered

PlayerKey

int

FK(Player)

GameKey

int

FK(Game)

Strikeouts

int

Constraint(0..999)

Popouts

int

Constraint(0..999)

Flyouts

int

Constraint(0..999)

Lineouts

int

Constraint(0..999)

Groundouts

int

Constraint(0..999)

Walks

int

Constraint(0..999)

IntentionalWalks

int

Constraint(0..999)

Singles

int

Constraint(0..999)

Doubles

int

Constraint(0..999)

Triples

int

Constraint(0..999)

HomeRuns

int

Constraint(0..999)

HitBatters

int

Constraint(0..999)

ThirdStrikePastBall

int

Constraint(0..999)

OnByError

int

Constraint(0..999)

Table 80 Message

Column

DataType

Options

MessageKey

int

Primary Identity Clustered

Topic

varChar(200)

null

TopicKey

int

FK(Message) null

Message

text

Constraint(0..999)

PlayerKey

int

FK(Player)

Constraint (TopicKey Is Null XOR Topic Is Null)

6 CSCI Data Files

6.1 Data File to CSC/CSU cross-reference

The following tables represent the database files used for the Teammate Pro application with the reference to the CSC and CSU using each.

Table 81 User cross-reference

Column

DataType

Options

CSC

CSU

UserKey

int

Primary Identity Clustered

4.7

4.7.2

Email

nVarChar(50)

4.7, 4.8, 4.15

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.15.1

Password

nVarChar(50)

IsRegistered

bit

Default(0)

CreatedDate

DateTime

Default(GetDate)

CreatedBy

int

FK(User) null

CreatedByIP

varChar(20)

Table 82 Player cross-reference

Column

DataType

Options

CSC

CSU

PlayerKey

int

Primary Identity Clustered

4.7, 4.8, 4.9, 4.12, 4.13, 4.15, 4.18, 4.20

4.7.2, 4.7.3, 4.7.4, 4.8.2, 4.8.3, 4.8.4, 4.9.2, 4.9.3, 4.12.2, 4.12.3, 4.13.2, 4.13.3, 4.15.2, 4.18.2, 4.18.4, 4.20.2, 4.20.3, 4.20.4

UserKey

int

FK(User) null

4.7, 4.8

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.10.2,

TeamKey

int

FK(User)

4.7, 4.8, 4.9, 4.10

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.9.2, 4.9.3, 4.10.2

First Name

nVarChar(50)

4.7, 4.8, 4.15

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.15.2, 4.15.3

Last Name

nVarChar(50)

4.7, 4.8, 4.15

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.15.2, 4.15.3

Nick Name

nVarChar(100)

4.7, 4.8, 4.15

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.15.2, 4.15.3

CanManageTeam

bit

4.7, 4.8

4.7.2, 4.7.3, 4.8.2, 4.8.3,

Number

int

null Constraint(0..99)

4.7, 4.8, 4.15

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.15.2, 4.15.3

CreatedDate

DateTime

Default(GetDate)

CreatedBy

int

FK(User)

CreatedByIP

char(15)

PlayerPage

nVarChar(max)

Null

PlayerPhoto

varChar(255)

Null

IsCoach

bit

Default(0)

4.7, 4.8, 4.15

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.15.2

IsActive

bit

Default(1)

IsRestricted

bit

Default(0)

4.18, 4.20

4.13.2, 4.13.3, 4.20.2, 4.20.3, 4.20.4

Table 83 Team cross-reference

Column

DataType

Options

CSC

CSU

TeamKey

int

Primary Identity Clustered

4.7, 4.8, 4.9, 4.10

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.9.2, 4.9.3, 4.10.2

TeamName

nVarChar(100)

Indexed

LeagueName

nVarChar(100)

Indexed

SeasonStateDate

smallDateTime

City

nVarChar(100)

State

char(2)

IsMinorLeague

bit

TeamPage

nVarChar(max)

CreatedDate

DateTime

Default(GetDate)

CreatedBy

int

FK(User)

CreatedByIP

varChar(20)

LogoImage

varChar(255)

4.6

4.6.2, 4.6.3

Color

varChar(255)

4.6

4.6.2, 4.6.3

SiteTemplate

varChar(255)

4.6

4.6.2, 4.6.3

Table 84 Game cross-reference

Column

DataType

Options

CSC

CSU

GameKey

int

Primary Identity Clustered

4.10, 4.12

4.10.2, 4.12.2

TeamKey

int

FK(Team)

4.7, 4.8, 4.9, 4.10

4.7.2, 4.7.3, 4.8.2, 4.8.3, 4.9.2, 4.9.3, 4.10.2

GameDate

smallDateTime

4.10, 4.11, 4.16, 4.17, 4.23

4.10.2, 4.11.2, 4.16.2, 4.17.2, 4.23.2

OpposingTeam

nVarChar(100)

4.10

4.10.2

Location

nVarChar(500)

4.10

4.10.2

IsHomeGame

bit

4.10

4.10.2

CreatedDate

DateTime

Default(GetDate)

CreatedBy

int

FK(User)

CreatedByIP

varChar(20)

IsActive

bit

Default(1)

IsCanceled

bit

Default(0)

4.8

4.8.4

Table 85 Lineup cross-reference

Column

DataType

Options

CSC

CSU

LineupKey

int

Primary Identity Clustered

4.11, 4.16, 4.17, 4.23

4.11.2, 4.11.3, 4.16.2, 4.17.2, 4.23.2, 4.23.3, 4.23.4, 4.23.5

BattingOrder

int

4.19

4.19.2

Inning

int

4.19

4.19.2

GameKey

int

FK(Game)

4.10, 4.12

4.10.2, 4.12.2

PlayerKey

int

FK(Player)

4.7, 4.8, 4.9, 4.12, 4.13, 4.15, 4.18, 4.20

4.7.2, 4.7.3, 4.7.4, 4.8.2, 4.8.3, 4.8.4, 4.9.2, 4.9.3, 4.12.2, 4.12.3, 4.13.2, 4.13.3, 4.15.2, 4.18.2, 4.18.4, 4.20.2, 4.20.3, 4.20.4

PositionKey

int

FK(Position)

4.23

4.23.5

Version

int

Table 86 Position cross-reference

Column

DataType

Options

CSC

CSU

PositionKey

int

Primary Identity Clustered

4.23

4.23.5

PositionName

varChar(50)

4.23

4.23.5

Abbreviation

varChar(5)

Table 87 GameScore cross-reference

Column

DataType

Options

CSC

CSU

GameScoreKey

int

Primary Identity Clustered

GameKey

int

FK(Game)

4.10, 4.12

4.10.2, 4.12.2

Inning

int

Constraint(1..99)

4.19

4.19.2

HomeScore

int

Constraint(0..999)

HomeHits

int

Constraint(0..999)

HomeErrors

int

Constraint(0..999)

AwayScore

int

Constraint(0..999)

AwayHits

int

Constraint(0..999)

AwayErrors

int

Constraint(0..999)

Table 88 BattingStats cross-reference

Column

DataType

Options

CSC

CSU

BattingStatsKey

int

Primary Identity Clustered

4.19

4.19.2

PlayerKey

int

FK(Player)

4.7, 4.8, 4.9, 4.12, 4.13, 4.15, 4.18, 4.20

4.7.2, 4.7.3, 4.7.4, 4.8.2, 4.8.3, 4.8.4, 4.9.2, 4.9.3, 4.12.2, 4.12.3, 4.13.2, 4.13.3, 4.15.2, 4.18.2, 4.18.4, 4.20.2, 4.20.3, 4.20.4

GameKey

int

FK(Game)

4.10, 4.12

4.10.2, 4.12.2

Singles

int

Constraint(0..999)

Doubles

int

Constraint(0..999)

Triples

int

Constraint(0..999)

HomeRuns

int

Constraint(0..999)

RunsScored

int

Constraint(0..999)

RunsBattedIn

int

Constraint(0..999)

Strikeouts

int

Constraint(0..999)

Popouts

int

Constraint(0..999)

Flyouts

int

Constraint(0..999)

Lineouts

int

Constraint(0..999)

Groundouts

int

Constraint(0..999)

Walks

int

Constraint(0..999)

IntentionalWalks

int

Constraint(0..999)

HitByPitch

int

Constraint(0..999)

ThirdStrikePastBall

int

Constraint(0..999)

OnByError

int

Constraint(0..999)

Table 89 PitchingStats cross-reference

Column

DataType

Options

CSC

CSU

PitchingStatsKey

int

Primary Identity Clustered

PlayerKey

int

FK(Player)

4.7, 4.8, 4.9, 4.12, 4.13, 4.15, 4.18, 4.20

4.7.2, 4.7.3, 4.7.4, 4.8.2, 4.8.3, 4.8.4, 4.9.2, 4.9.3, 4.12.2, 4.12.3, 4.13.2, 4.13.3, 4.15.2, 4.18.2, 4.18.4, 4.20.2, 4.20.3, 4.20.4

GameKey

int

FK(Game)

4.10, 4.12

4.10.2, 4.12.2

Strikeouts

int

Constraint(0..999)

Popouts

int

Constraint(0..999)

Flyouts

int

Constraint(0..999)

Lineouts

int

Constraint(0..999)

Groundouts

int

Constraint(0..999)

Walks

int

Constraint(0..999)

IntentionalWalks

int

Constraint(0..999)

Singles

int

Constraint(0..999)

Doubles

int

Constraint(0..999)

Triples

int

Constraint(0..999)

HomeRuns

int

Constraint(0..999)

HitBatters

int

Constraint(0..999)

ThirdStrikePastBall

int

Constraint(0..999)

OnByError

int

Constraint(0..999)

Table 90 Message cross-reference

Column

DataType

Options

CSC

CSU

MessageKey

int

Primary Identity Clustered

4.13, 4.20

4.13.2, 4.13.3, 4.13.4, 4.13.5, 4.20.2, 4.20.3, 4.20.4, 4.20.5

Topic

varChar(200)

null

TopicKey

int

FK(Message) null

Message

text

Constraint(0..999)

4.13, 4.20

4.13.2, 4.13.3, 4.13.4, 4.13.5, 4.20.2, 4.20.3, 4.20.4, 4.20.5

PlayerKey

int

FK(Player)

4.7, 4.8, 4.9, 4.12, 4.13, 4.15, 4.18, 4.20

4.7.2, 4.7.3, 4.7.4, 4.8.2, 4.8.3, 4.8.4, 4.9.2, 4.9.3, 4.12.2, 4.12.3, 4.13.2, 4.13.3, 4.15.2, 4.18.2, 4.18.4, 4.20.2, 4.20.3, 4.20.4

Constraint (TopicKey Is Null XOR Topic Is Null)

7 Requirements Traceability Appendixes

Appendix A Requirements Traceability Web Functions

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPW-001

3.1.1.1

The system shall provide a method to securely login to the Teammate Pro web application from the Team Home Page.

3.1.1

Teammate Pro Team Home Page

TPW-002

3.1.1.2

The system shall automatically determine the user type upon successful login.

3.1.1

Teammate Pro Team Home Page

TPW-003

3.1.1.3

The system shall only accept email addresses as valid usernames.

3.1.1

Teammate Pro Team Home Page

TPW-004

3.1.1.4

The system shall provide team admin users who have successfully logged in, with a link to "Manage Team Information" and "Access Team Information."

3.1.1, 3.1.2

Teammate Pro Team Home Page, Manage Team Information

TPW-005

3.1.1.5

The system shall provide standard users who have successfully logged in, with a link to "Access Team Information."

3.1.1

Teammate Pro Team Home Page

TPW-006

3.1.1.6

The Team Home Page shall display the customized team logo and page layout.

3.1.1

Teammate Pro Team Home Page

TPW-007

3.1.5.1

The system shall provide team admin users with a "Manage Team Information" page.

3.1.2

Team Information Page

TPW-008

3.1.5.2

The "Manage Team Information" page shall allow the team admin to access each of the administrative links identified in the success scenario of this use case.

3.1.2.1

Manage Team Home Page

TPW-009

3.1.6.1

The team admin shall be able to add a custom team logo to the Team Home Page.

3.1.2.1

Edit Home Page

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPW-010

3.1.6.2

The team admin shall be able to modify the team logo on the Team Home Page.

3.1.2.1

Edit Home Page

TPW-011

3.1.6.3

The team admin shall be able to modify the standard page layout of the Team Home Page.

3.1.2.1

Edit Home Page

TPW-012

3.1.7.1

The team admin shall be able to add coaches to the coach roster.

3.1.2.2

Add Coach

TPW-013

3.1.7.2

The team admin shall be able to edit information for existing coaches.

3.1.2.2

Edit Coach Information

TPW-014

3.1.7.3

The team admin shall be able to delete coaches from coach roster.

3.1.2.2

Delete Coach

TPW-015

3.1.7.4

The system shall display the coach's first name.

3.1.3.1

View Coach Information

TPW-016

3.1.7.5

The system shall display the coach's last name.

3.1.3.1

View Coach Information

TPW-017

3.1.7.6

The system shall display the coach's email address.

3.1.3.1

View Coach Information

TPW-018

3.1.7.7

The system shall display the coach's phone number.

3.1.3.1

View Coach Information

TPW-019

3.1.7.8

The system shall allow the coach' picture to be displayed

3.1.3.1

View Coach Information

TPW-020

3.1.7.9

The system shall provide a description field for background information

3.1.2.4

View Coach Information

TPW-021

3.1.7.11

The team admin shall be able to add players to the team roster.

3.1.2.3

Add Player

TPW-022

3.1.7.12

The team admin shall be able to edit existing player information on the roster.

3.1.2.3

Edit Player

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPW-023

3.1.7.13

The team admin shall be able to delete existing players from the roster.

3.1.2.3

Delete Player

TPW-024

3.1.7.14

The roster shall display the player's first name.

3.1.3.1

View Player Bios

TPW-025

3.1.7.15

The roster shall display the player's last name.

3.1.3.1

View Player Bios

TPW-026

3.1.7.16

The roster shall display the player's number.

3.1.3.1

View Player Bios

TPW-027

3.1.7.17

The roster shall display the player's email address.

3.1.3.1

View Player Bios

TPW-028

3.1.7.18

The roster shall display the player's phone number.

3.1.3.1

View Player Bios

TPW-029

3.1.8.1

The team admin shall be able to add player bios.

3.1.2.4

Edit Player Bio

TPW-030

3.1.8.2

The team admin shall be able to edit player bios.

3.1.2.4

Edit Player Bio

TPW-031

3.1.8.3

The player bio shall display the player's nick-name.

3.1.3.1

View Player Bios

TPW-032

3.1.8.4

The player bio shall display the player's number.

3.1.3.1

View Player Bios

TPW-033

3.1.8.5

The player bio shall display the player's position.

3.1.3.1

View Player Bios

TPW-034

3.1.8.6

The player bio shall display the player's batting preference.

3.1.3.1

View Player Bios

TPW-035

3.1.8.7

The player bio shall display the player's throwing preference.

3.1.3.1

View Player Bios

TPW-036

3.1.8.8

The player bio shall display the player's height.

3.1.3.1

View Player Bios

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPW-037

3.1.8.9

The player bio shall display the player's weight.

3.1.3.1

View Player Bios

TPW-038

3.1.8.10

The player bio shall allow the player's picture to be displayed.

3.1.3.1

View Player Bios

TPW-039

3.1.8.11

The player bio shall provide a description field for background information.

3.1.2.4

Add Player Bio

TPW-040

3.1.9.1

The team admin shall be able to add a scheduled practice.

3.1.2.5

Add Schedule

TPW-041

3.1.9.2

The team admin shall be able to add a scheduled game.

3.1.2.5

Add Schedule

TPW-042

3.1.9.3

The team admin shall be able to edit an existing scheduled practice.

3.1.2.5

Edit Schedule

TPW-043

3.1.9.4

The team admin shall be able to edit an existing scheduled game.

3.1.2.5

Edit Schedule

TPW-044

3.1.9.5

The team admin shall be able to delete an existing scheduled practice.

3.1.2.5

Edit Schedule

TPW-045

3.1.9.6

The team admin shall be able to delete an existing scheduled game.

3.1.2.5

Delect Scheduled Game

TPW-046

3.1.9.7

The schedule shall display the game/practice time.

3.1.3.2

Select Game

TPW-047

3.1.9.8

The schedule shall display the game/practice date.

3.1.3.2

Select Game

TPW-048

3.1.9.9

The schedule shall display the game/practice location.

3.1.3.2

Select Game

TPW-049

3.1.9.10

The schedule shall display the game opponent.

3.1.3.2

Select Game

TPW-050

3.1.9.11

The schedule shall display team's "Home" or "Away" status for each game.

3.1.3.2

Select Game

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPW-051

3.1.9.12

The schedule shall display the appropriate player's name if it is their responsibility to bring snacks to a scheduled game.

3.1.3.2

Select Game

TPW-052

3.1.9.13

The schedule shall display postponement information for each game.

3.1.3.2

Select Game

TPW-053

3.1.10.1

The team admin shall be able to create a team lineup for each scheduled game.

3.1.2.6

Create Lineup

TPW-054

3.1.10.2

The team admin shall be able to save a team lineup as the default.

3.1.2.6

Create Lineup

TPW-055

3.1.10.3

The team admin shall be able to load the current default team lineup.

3.1.2.6

Load Default Lineup

TPW-056

3.1.10.4

The Manage Lineup page shall provide a selectable list of all scheduled games.

3.1.3.3

Select Game

TPW-057

3.1.10.5

The Manage Lineup page shall provide a selectable list containing nine available spots to assign each starting player's batting order and field position.

3.1.2.6

Create Lineup

TPW-058

3.1.10.6

The Manage Lineup page shall provide a selectable list of all players on the team

3.1.2.6

Create Lineup

TPW-059

3.1.10.7

The Manage Lineup page shall provide a selectable list of all players on the team

3.1.2.6

Create Lineup

TPW-060

3.1.10.8

The Manage Lineup page shall provide a "Reserves" section to display all players not assigned to a spot in the lineup

3.1.2.6

Create Lineup

TPW-061

3.1.10.9

The Manage Lineup page shall display a graphical view of a baseball field with positions.

3.1.2.6

Create Lineup

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPW-062

3.1.10.10

The graphical view of the field shall display a player's name next to their assigned position.

3.1.2.6

Create Lineup

TPW-063

3.1.10.11

The system shall remove the name of a player from the selectable list once a player is assigned to a spot in the lineup.

3.1.2.6

Create Lineup

TPW-064

3.1.10.12

The system shall remove the position name from the selectable list once a position is assigned to a player in the lineup.

3.1.2.6

Create Lineup

TPW-065

3.1.11.1

The team admin shall be able to add statistics for team

3.1.2.7

Add Statistics

TPW-066

3.1.11.2

The team admin shall be able to edit statistics for team

3.1.2.7

Edit Statistics

TPW-067

3.1.12.1

The team admin shall be able to create a discussion board message.

3.1.2.8

Create Message

TPW-068

3.1.12.2

The team admin shall be able to view all discussion board messages.

3.1.2.8

View Message

TPW-069

3.1.12.3

The team admin shall be able to delete any discussion board message.

3.1.2.8

Delete Message

TPW-070

3.1.12.4

The team admin shall be able to allow user access to the discussion board.

3.1.2.8

Allow/Deny User Access

TPW-071

3.1.12.5

The team admin shall be able to deny user access to the discussion board.

3.1.2.8

Allow/Deny User Access

TPW-072

3.1.13.1

The system shall provide standard users with an "Access Team Information" page.

3.1.2.1

Edit Home Page

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPW-073

3.1.13.2

The "Access Team Information" page shall provide standard users with access to each of the links identified in the main success scenario above.

3.1.3.1

View Team Information

TPW-074

3.1.14.1

The user shall be able to view the existing Coach information.

3.1.3.1

View Coach Information

TPW-075

3.1.14.2

The user shall be able to view the existing Roster information.

3.1.3.1

View Roster

TPW-076

3.1.14.3

The user shall be able to view the existing Player Bios.

3.1.3.1

View Player Bios

TPW-077

3.1.15.1

The user shall be able to view the existing list of Scheduled Games.

3.1.3.2

Select Game

TPW-078

3.1.15.2

The user shall be able to view the detailed information of each game by selecting it from the list.

3.1.3.4

View Game Statistics

TPW-079

3.1.16.1

The user shall be able to view the existing Lineup if it has been created for selected games.

3.1.3.3

Select Game

TPW-080

3.1.17.1

The user shall be able to view the recorded Team Statistics that have been stored for the season.

3.1.3.4

View Team Statistics

TPW-081

3.1.17.2

The user shall be able to view the recorded Game Statistics that been have stored for the selected game.

3.1.3.4

View Game Statistics

TPW-082

3.1.17.3

The user shall be able to view the recorded Player Statistics that have been stored for the selected player.

3.1.3.4

View Player Statistics

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPW-083

3.1.18.1

The user shall be able to view the live game tracking information for games that are being actively scored from web enabled devices

3.1.3.5

Select Game

TPW-084

3.1.18.2

The user shall be able to view the game tracking information for games that have already been completed

3.1.3.5

Select Game

TPW-085

3.1.18.3

The live game shall be designated in the selectable game list

3.1.3.5

Select Game

TPW-086

3.1.18.4

Completed games shall be designated in the selectable game list

3.1.3.5

Select Game

TPW-087

3.1.18.5

The user shall be able to view discussion board messages.

3.1.3.6

View Message

TPW-088

3.1.18.6

The user shall be able to add a discussion board message.

3.1.3.6

Create Message

TPW-089

3.1.18.7

The user shall be able to edit their submitted discussion board messages.

3.1.3.6

Edit Message

TPW-090

3.1.18.8

The user shall be able to edit their submitted discussion board messages.

3.1.3.6

Edit Message

TPW-091

3.1.18.9

The message length shall be limited to 500 characters

3.1.3.6

Create Message

Appendix B Requirements Traceability Mobile Functions

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPM-003

3.1.3.3

The system shall allow team admin to select a pre-established game with an established lineup from a mobile device.

3.1.4.1

Select Game

TPM-004

3.1.3.4

The system shall allow team admin to enter batter statistics for players in the order of the game lineup.

3.1.4.1

Enter Batting Statistics

TPM-005

3.1.3.5

Batting statistics shall include number of hits by type.

3.1.4.1

Enter Batting Statistics

TPM-006

3.1.3.6

Hit types shall include singles.

3.1.4.1

Enter Batting Statistics

TPM-007

3.1.3.7

Hit types shall include doubles.

3.1.4.1

Enter Batting Statistics

TPM-008

3.1.3.8

Hit types shall include triples.

3.1.4.1

Enter Batting Statistics

TPM-009

3.1.3.9

Hit types shall include home runs.

3.1.4.1

Enter Batting Statistics

TPM-010

3.1.3.10

Batting statistics shall include player's runs batted in.

3.1.4.1

Enter Batting Statistics

TPM-011

3.1.3.11

Batting statistics shall include runs scored.

3.1.4.1

Enter Batting Statistics

TPM-012

3.1.3.12

Batting statistics shall include player's strikeouts.

3.1.4.1

Enter Batting Statistics

TPM-013

3.1.3.13

Batting statistics shall include player's fly-outs.

3.1.4.1

Enter Batting Statistics

TPM-014

3.1.3.14

Batting statistics shall include player's ground-outs.

3.1.4.1

Enter Batting Statistics

TPM-015

3.1.3.15

Batting statistics shall include player's line-outs.

3.1.4.1

Enter Batting Statistics

TPM-016

3.1.3.16

Batting statistics shall include player's pop-outs.

3.1.4.1

Enter Batting Statistics

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPM-017

3.1.3.17

Batting statistics shall include base-on-balls.

3.1.4.1

Enter Batting Statistics

TPM-018

3.1.3.18

Batting statistics shall include intentional base-on-balls.

3.1.4.1

Enter Batting Statistics

TPM-019

3.1.3.19

Batting Statistics shall include fielder's choice plays.

3.1.4.1

Enter Batting Statistics

TPM-020

3.1.3.20

Batting Statistics shall include hit-by-pitcher plays.

3.1.4.1

Enter Batting Statistics

TPM-021

3.1.3.21

Batting Statistics shall include reaching base on past-ball on third strike.

3.1.4.1

Enter Batting Statistics

TPM-022

3.1.3.22

The system shall allow team admin to enter pitcher statistics.

3.1.4.1

Enter Pitching Statistics

TPM-023

3.1.3.23

Pitching statistics shall include strikes.

3.1.4.1

Enter Pitching Statistics

TPM-024

3.1.3.24

Pitching statistics shall include balls.

3.1.4.1

Enter Pitching Statistics

TPM-025

3.1.3.25

Pitching statistics shall include hits by type.

3.1.4.1

Enter Pitching Statistics

TPM-026

3.1.3.26

Pitching statistics shall include walks.

3.1.4.1

Enter Pitching Statistics

TPM-027

3.1.3.27

Pitching statistics shall include hit batters.

3.1.4.1

Enter Pitching Statistics

TPM-028

3.1.3.28

Pitching statistics shall include strikeouts.

3.1.4.1

Enter Pitching Statistics

TPM-029

3.1.3.29

Pitching statistics shall include unearned runs.

3.1.4.1

Enter Pitching Statistics

TPM-030

3.1.3.30

Pitching statistics shall include earned runs.

3.1.4.1

Enter Pitching Statistics

TPM-031

3.1.3.31

Pitching statistics shall include hits allowed.

3.1.4.1

Enter Pitching Statistics

Requirement ID

SRS Reference No.

Requirement Description

SDD Reference No.

CSU Name

TPM-033

3.1.3.33

The system shall allow team admin to modify team lineup at any time during game play from a mobile device.

3.1.4.2

Add/Remove Player From Lineup

TPM-034

3.1.4.1

The mobile system shall allow team admin to remove any player from the team lineup.

3.1.4.2

Remove Player From Lineup

TPM-035

3.1.4.2

The mobile system shall allow team admin to assign any player to any slot in the lineup.

3.1.4.2

Add Player to Lineup

TPM-036

3.1.4.3

The mobile system shall allow team admin to assign a new position to any player in the team lineup.

3.1.4.2

Assign Position to Player

National University, San Diego, CA Page 15 of 169

_1234392516.vsd

valid

:MobileTeamHomePage

:ManageTeamInfo

Modify Lineup

LoginController

MobilePageController

:UserAccount

Database

Submit Login Information

[Valid] Display Manage Team Information Page

[Not Valid] Display Error

Verify Account Information

Select Manage Mobile Team Information Feature

Add/Edit/Delete Records

Boundary Objects

Control Objects

Entity Objects

Mobile Sequence Diagram for Team Administrator

Top Package::Team Admin

Record Game Statistics

Display Manage Team Home Page

Submit Home Page Changes

Display Manage Player Bio Page

Submit Player Bio Changes

_1234392597.vsd

valid

:TeamHomePage

:ViewTeamInfo

ViewSchedule

LoginController

PageController

:UserAccount

Database

Submit Login Information

[Valid] Display View Team Information Page

[Not Valid] Display Error

Verify Account Information

Select View Team Information Feature

Boundary Objects

Control Objects

Entity Objects

Sequence Diagram for User

Top Package::User

ViewLineup

ViewGameTracker

View Statistics

Display Team Schedule

Display Lineup Information

Display Team Statistics

Display Game Tracker

Return Data

ViewDiscussion

Display Discussion Board

Retrieve Data

Display Team Information Page

_1234392412.vsd

valid

:TeamHomePage

:ManageTeamInfo

Manage Schedule

LoginController

PageController

:UserAccount

Database

Submit Login Information

[Valid] Display Manage Team Information Page

[Not Valid] Display Error

Verify Account Information

Select Manage Team Information Feature

Add/Edit/Delete Records

Boundary Objects

Control Objects

Entity Objects

Sequence Diagram 2 for Team Administrator

_1234392242.vsd

valid

:TeamHomePage

:ManageTeamInfo

ManageTeamPage

LoginController

PageController

:UserAccount

Database

Submit Login Information

[Valid] Display Manage Team Information Page

[Not Valid] Display Error

Verify Account Information

Display Manage Team Home Page

Select Manage Team Information Feature

Add/Edit/Delete Records

Sequence Diagram 1 for Team Administrator