Software Requirements Specification for SILO – Student Information Life Organizer Version 2.0 approved Prepared by Elliot Whaley & Nathan Hower CSC 4700 April 21, 2008 Silo by Elliot Whaley and Nate Hower Last Edited 4/22/08 Software Requirements Specification for Silo Page ii Table of Contents Table of Contents .......................................................................................................................... ii Revision History ............................................................................................................................ ii 1. Introduction ..............................................................................................................................3 1.1 1.2 1.3 1.4 1.5 Purpose ........................................................................................................................................ 3 Document Conventions ............................................................................................................... 3 Intended Audience and Reading Suggestions.............................................................................. 3 Product Scope .............................................................................................................................. 3 References ................................................................................................................................... 3 2. Overall Description ..................................................................................................................3 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Product Perspective ..................................................................................................................... 3 Product Functions ........................................................................................................................ 4 User Classes and Characteristics ................................................................................................. 4 Operating Environment ............................................................................................................... 4 Design and Implementation Constraints...................................................................................... 4 User Documentation .................................................................................................................... 4 Assumptions and Dependencies .................................................................................................. 4 3. External Interface Requirements ...........................................................................................5 3.1 3.2 3.3 3.4 User Interfaces ............................................................................................................................. 5 Hardware Interfaces..................................................................................................................... 5 Software Interfaces ...................................................................................................................... 5 Communications Interfaces ......................................................................................................... 5 4. System Features .......................................................................................................................5 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Organizer Saving ......................................................................................................................... 5 Organizer Loading ....................................................................................................................... 6 New Organizer Creation .............................................................................................................. 6 Events .......................................................................................................................................... 6 Changing view properties ............................................................................................................ 7 Search .......................................................................................................................................... 7 Event Notification ....................................................................................................................... 7 Help ............................................................................................................................................. 8 5. Other Nonfunctional Requirements .......................................................................................8 5.1 5.2 5.3 5.4 5.5 Performance Requirements.......................................................................................................... 8 Safety Requirements .................................................................................................................... 8 Security Requirements................................................................................................................. 9 Software Quality Attributes ......................................................................................................... 9 Business Rules ............................................................................................................................. 9 Appendix A: Analysis Models .....................................................................................................99 Revision History SILO Date Reason For Changes Version Elliot Whaley 4/17/08 Needed to be updated and corrected 1.1 Nate Hower 4/19/08 Spelling and grammar corrections 1.2 Elliot / Nate 4/22/08 Graphs and final improvements 2.0 Software Requirements Specification for Silo 1. Introduction 1.1 Purpose The purpose of this Software Requirements Specification is to identify the functions and features of SILO. 1.2 Document Conventions In this document, the abbreviation GUI will be used to represent ‘graphical user interface.’ 1.3 Intended Audience and Reading Suggestions This Software Requirements Specification is intended for all users of the software, which are primarily students and programmers. It is organized into several sections to be used as a reference for interested parties to learn about the original version, or modify and create their own versions. 1.4 Product Scope The SILO software will provide students with one place to keep all their important assignments, events and other things. The object is to create a calendar type organizer where a student can add their classes, and events. The days that school is not in session will be highlighted and important dates like move-in or deadlines can be added. Students can add the schedules of their favorite sports teams (basketball, soccer etc.) They can ask for reminders when a test or homework assignment is due. Student will be alerted when conflicts arise, like a paper due the same day as an intramural game or a test. Also the user will have the options of customizing their organizer’s background. 1.5 References The project development web page is located at http://www.csc.villanova.edu/~ewhaley/index.html 2. Overall Description 2.1 Product Perspective The SILO software is intended to be a student-oriented scheduler. It is unique from existing scheduling software because it provides functionality specific to a student’s academic and social life. Page 3 Software Requirements Specification for Silo 2.2 Product Functions This software allows a user to create a schedule with: Classes Social Events Sporting Events Homework and assignment due dates Test dates Alerts for important deadlines Customizable user interface Accessible from wireless devices or other computers connected to the internet 2.3 User Classes and Characteristics This software is aimed towards students at all levels of education to create and manage their schedule. It can also be utilized by teachers and professors to provide updates about the class schedule and assignments. No technical skills will be needed to operate the software. 2.4 Operating Environment This software is compatible with all major operating systems (Windows, Mac, Linux.) Internet access must be available for many of the functions, but basic schedules are viewable offline. 2.5 Design and Implementation Constraints The user assumes any and all responsibility for the use, installation, and removal of the software. This software is free for users to download and use and the underlying code may be modified or edited under GPL. 2.6 User Documentation See website…. http://www.csc.villanova.edu/~ewhaley/index.html 2.7 Assumptions and Dependencies This software is dependent on access to a course information database. It assumes that it is compatible with Java 1.5 and any future updates. Page 4 Software Requirements Specification for Silo 3. External Interface Requirements 3.1 User Interfaces The user interface will contain three main GUIs. Initially a login screen will be presented to the user with textboxes for a username and password. After logging in, the main GUI will be displayed. This consists of basic menu bar at the top and the basic calendar overview. There will also be a button panel which has items for viewing different schedule variations (classes only, monthly schedule, weekly schedule, etc.) and for editing any of the schedules. When the user wishes to edit, a third GUI with advanced editing options will be displayed. This will have a similar appearance to the basic schedule but with increased functionality. See Appendix A for images of the interfaces. 3.2 Hardware Interfaces This product is capable of using hardware devices such as a PC, notebook, iphone and other internet capable devices. 3.3 Software Interfaces All software interfaces will be implemented using the Java 1.5 SDK components 3.4 Communications Interfaces An internet connection will be needed for certain functionality, as well as an email address for alerts and updates. 4. System Features 4.1 Organizer Saving 4.1.1 Description and Priority An organizer can be saved to the local desktop and if connected to the internet will be capable of being viewed via wireless devices i.e. iphone or laptop. 4.1.2 Stimulus/Response Sequences A organizer can be saved editing any day or month where SILO will prompt the user if he/she wants to save and continue, cancel, or continue without saving. 4.1.3 Functional Requirements To carry out this feature a connection to the internet must be present or the organizer will only be saved to the local machine with no capability of being seen elsewhere. REQ-1: If the specified changes are invalid, user will not be able to save. Page 5 Software Requirements Specification for Silo REQ-2: If there is no connection to the internet SILO will notify the user of this. 4.2 Organizer Loading 4.1.1 4.1.2 Description and Priority SILO will be capable of loading a previously create organizer. SILO will have under file an open option that will allow users to open previous organizers. Stimulus/Response Sequences To access a previous organizer the user will be required to either 1) click file then click open to find their organizer 2) under file a list of previous used organizers will be at the bottom and can be clicked. 4.1.3 Functional Requirements REQ-1: The user will not be allowed to open a file that does not exist 4.3 New Organizer Creation 4.1.1 Description and Priority In SILO multiple organizers can be created. A user can have separate schedules, or if there are multiple users on the same system, they can each create individual organizers. 4.1.2 Stimulus/Response Sequences A new organizer can be created by selecting File and then New. A user will be able to select a premade template, or choose their own custom settings. 4.1.3 Functional Requirements REQ-1: If another calendar is open, the user will be asked to save before creating the new calendar. REQ-2: If the user tries to create a calendar, any incomplete settings will be highlighted and the user prompted to enter the information before continuing. 4.4 Events 4.1.1 4.1.2 Description and Priority If a user enters an event that occurs repeatedly, it can be set to occur at a specified frequency. For example, if a user has a weekly group meeting, they can enter the information as an event and set it to occur every week at that time. A user can also select from various premade event schedules; i.e. sporting events, sorority meetings, etc. Any conflict in scheduling will be brought to the user’s attention. Stimulus/Response Sequences Page 6 Software Requirements Specification for Silo To add an even the user must first select the Events menu. A new event can be added by clicking New, which will display a menu with fields for the information. To add a premade event schedule, the user can select from a drop down menu the category and specific event and click to add it. 4.1.3 Functional Requirements REQ-1: If a user attempts to create an event without the required information, the needed fields will be highlighted and the user prompted to enter the information before continuing. 4.5 Changing view properties See images in Appendix A 4.1.1 4.1.2 Description and Priority A user can customize their organizer in many ways. The calendar can be viewed by week or month. The user can select a color scheme or create their own. Stimulus/Response Sequences To change the way the calendar is displayed, the user must first select the View menu. They can select whether they want to view their upcoming schedule by month or by week. By clicking on Color Scheme in the menu, a user will be able to select built in color schemes from a list or click to access a window where they can manually set their own preferences. 4.1.3 Functional Requirements REQ-1: If a user selects the view that is currently being displayed, no change will occur. REQ-2: If a user changes any settings, they will be asked if they want to save. 4.6 Search 4.1.1 4.1.2 Description and Priority The search function allows a user to search for events and classes by category or keyword. Stimulus/Response Sequences A search can be entered into the text box at the upper right side of the screen, with the option to perform advanced search functions. 4.1.3 Functional Requirements REQ-1: The search will use the term as entered by the user and similar variations to find any events that may be of interest to the user REQ-2: The user will be notified if there are no results returned. 4.7 Event Notification See images in Appendix B Page 7 Software Requirements Specification for Silo 4.1.1 4.1.2 Description and Priority For any upcoming event, a user can select from a variety of notification types. This can range from a pop up window while using the organizer, to external notifications through email. The user can specify the a suitable time for this notification, ranging from an hour before a meeting to several days before an upcoming test. Stimulus/Response Sequences A user can set a notification in two ways. First, the option to notify can be selected when the event is first created. The other method is to select the Notification menu. The user can then select from a list of all scheduled events which one they want to be notified about. There will also be a list of previously appointed notifications with the ability to modify the individual options for each. 4.1.3 Functional Requirements REQ-1: REQ-2: For email notifications, the user must have a valid email address. If a notification is set to display while another event or class is scheduled, the user will be notified of the conflict. 4.8 Help 4.1.1 4.1.2 Description and Priority If a user encounters a problem, they can access the help information. This is displayed as a separate document. There will also be a link to a website with additional guides and troubleshooting information. Stimulus/Response Sequences A user can access the help by clicking on the Help menu and selecting View. The user can also click on an option to go directly to the online help guide. 4.1.3 Functional Requirements REQ-1: Online guides cannot be viewed without an active internet connection. 5. Other Nonfunctional Requirements 5.1 Performance Requirements The only requirement is that the user and software can interact in a reasonable amount of time. 5.2 Safety Requirements There are no safety requirements. Page 8 Software Requirements Specification for Silo 5.3 Security Requirements The user’s information will be password protected and accessible only to them. 5.4 Software Quality Attributes This software is versatile through its open source capabilities to eliminate bugs and improve performance. 5.5 Business Rules The only user who may add official class updates is the instructor of that course Appendix A: Analysis Models Section 1: Interface images By clicking the scroll bar on the left a user can add a sporting or other premade event to their organizer. IMAGE 1 Page 9 Software Requirements Specification for Silo By clicking add event a user can create their own event that is not on the premade list. IMAGE 2 Page 10 Software Requirements Specification for Silo By clicking add new task a user can add a task such as daily reminders or classes to their organizer. IMAGE 3 Page 11 Software Requirements Specification for Silo Section 2: UML Diagrams Use Case Diagram State Diagram Page 12 Software Requirements Specification for Silo Activity Diagram Page 13