submitted to: dr. lawrence chung associate professor, department of computer science, the university...
TRANSCRIPT
S U B M I TT E D T O :
D R . L AW R E N C E C H U N GA S S O C I AT E P R O F E S S O R ,
D E PA R T M E N T O F C O M P U T E R S C I E N C E ,T H E U N I V E R S I T Y O F T E XA S AT D A L L A S ,
R I C H A R D S O N, T X - 7 5 0 8 0
S U B M I TT E D B Y:
S T E V E N F O R DG I L B E R T I S L A S
PA U L WA S I L E W S K IO B I O G B A N U F E
M I C H A E L M U R P H Y
T E A M W E B S I T E : HTTP : / /WWW. IND IGOMARK . COM / ALPHA /
Schedule360
Agenda
Problem DefinitionScenarioGoalVision StatementProject SpecificationBudget / Scope CreepProcess SpecificationRequirements and WRS refinementTraceabilityTest CasesMock-up
Problem Statement
The problem of multiple schedules without a source to consolidate into a single form of
media affects Business Professionals with lives outside of work. The impact of which is an
unawareness of all appointments and various other commitments.
Scenario
Steven is the Sales Director of a startup of 20 employees and a devoted husband and father of 2.
Steven has important meeting with a possible customer that is rescheduled after he has already left for the day.
Steven did not receive the reschedule notification due to family commitments outside of work.
Steven is late to the meeting the next morning and misses out on a big opportunity for new business.
The startup’s success is now in jeopardy due to the missed opportunity.
Goal
Consolidate all schedules into one location and allow user to modify them at their
convenience.
Project Specification
The project spec for the creation of Schedule360
Using NFR Framework
SIG (Softgoal Interdependency Graph) – Star UML FR Framework
UML – Visual Paradigm for UML
Project Specification (NFR)
req Schedule 360 Functional Req
Text = "The application shall allow users to synchronize information between the application and all other existing electronic calendars (personal, work, etc.)."ID = "2.2.1"kind = "Functional"verifyMethod = "Test"risk = "High"status = "Proposed"
<<requirement>>2.2.1 Interface
Text = "The application shall allow the user to create appointments."ID = "2.2.2"kind = "Functional"verifyMethod = "Test"risk = "High"status = "Proposed"
<<requirement>>2.2.2 Create Appts
Text = "The user shall be able to select the display for all appointments as a List, Daily, Weekly, or Monthly view"ID = "2.2.15"kind = "Functional"verifyMethod = "Test"risk = "High"status = "Proposed"
<<requirement>>2.2.15 View Appts
Text = "The user shall be able to specify which calendar is updated."ID = "2.2.17"kind = "Functional"verifyMethod = "Test"risk = "High"status = "Proposed"
<<requirement>>2.2.17 Update Calendar
Text = "The application shall provide a warning if a scheduling conflict exists."ID = "2.2.18"kind = "Functional"verifyMethod = "Test"risk = "High"status = "Proposed"
<<requirement>>2.2.18 ID Conflicts
Text = "The software shall be updateable"ID = "2.2.23"source = ""kind = "Functional"verifyMethod = "Test"risk = "High"status = "Proposed"
<<requirement>>2.2.23 Update Software
Text = "The application shall allow users to interface with it on the Apple iPhone and iPad."ID = "2.2.16"kind = "Functional"verifyMethod = "Test"risk = "High"status = "Proposed"
<<requirement>>2.2.16 Interface - Apple Iphone Ipad
Text = "The application shall have a search function"ID = "2.2.19"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.19 Interface - Search
Text = "The application shall allow the user to sort it by location, start date, end date, start time, and end time."ID = "2.2.20"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.20 Interface - Sort
Text = "The application shall allow users to modify or edit the fields of an existing appointment."ID = "2.2.21"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.21 Interface - Modify
Text = "The application shall allow users to delete appointments"ID = "2.2.22"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.22 Interface - Delete
Text = "The calendar shall allow registration online from www.360schedule.com."ID = "2.2.24"kind = "Functional"verifyMethod = "Test"risk = "Low"status = "Proposed"
<<requirement>>2.2.24 Interface - Registration
Text = "The appointment shall allow the creator to specify the subject of the appointment."ID = "2.2.3"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.3 Create Appts - Subject
Text = "The appointment shall allow the creator to specify the location of the appointment."ID = "2.2.4"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.4 Create Appts - Location
Text = "The appointment shall allow the creator to specify the start date of the appointmen...ID = "2.2.5"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.5 Create Appts - Start Date
Text = "The appointment shall allow the creator to specify the end date of the appointment."ID = "2.2.6"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.6 Create Appts - End Date
Text = "The appointment shall allow the user to specify the start time of the appointment in hours and minutes."ID = "2.2.7"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.7 Create Appts - Start Time
Text = "The appointment shall allow the user to specify the end time of the appointment in hours and minutes."ID = "2.2.8"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.8 Create Appts - End Time
Text = "The appointment shall allow the creator to place notes in the appointment."ID = "2.2.9"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.9 Create Appts - Notes
Text = "The appointment shall allow the creator to set a reminder alarm."ID = "2.2.10"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.10 Create Appts - Reminder
Text = "The appointment shall allow the creator the ability to invite others via email."ID = "2.2.11"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.11 Create Appts - Invitation
Text = "The appointment shall allow the creator to set future reoccurrences."ID = "2.2.12"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.12 Create Appts - Reoccurrences
Text = "The appointment shall allow the creator to set their availability as Busy, Free, Tentative, and Out of the Office."ID = "2.2.13"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.13 Create Appts - Availability
Text = "The appointment shall allow the creator to attach files to the appointment."ID = "2.2.14"kind = "Functional"verifyMethod = "Test"risk = "Medium"status = "Proposed"
<<requirement>>2.2.14 Create Appts - Attachments
Text = "Schedule 360 Software"ID = "2.2"source = ""kind = "Functional"verifyMethod = "Demonstration"risk = "High"status = "Approved"
<<requirement>>2.2 Schedule 360
Project Specification (FR)
Schedule / Budget
Team Quantity Hourly Rate Start Finish Work Days Hours CostProject Manager 1 55$ 1/14/2012 4/28/2012 75 600 33,000$ Software Engineer 2 50$ 1/14/2012 4/28/2012 75 1200 60,000$ Web Designer 1 45$ 1/14/2012 4/28/2012 75 600 27,000$ Systems Engineer 1 50$ 1/14/2012 4/28/2012 75 600 30,000$
Totals: 3,000 150,000$
Core Project Schedule/Budget
Identified roles for each of the 5 team members and based their hourly rates on industry standards
Multiplied that rate at 5 days/wk 8 hrs/day over course of semester leaving slack in schedule
Core budget came out to be $150,000
Slack Time / Scope Creep
Team Quantity Hourly Rate Start Finish Work Days Hours CostProject Manager 1 55$ 4/29/2012 5/19/2012 15 120 6,600$ Software Engineer 2 50$ 4/29/2012 5/19/2012 15 240 12,000$ Web Designer 1 45$ 4/29/2012 5/19/2012 15 120 5,400$ Systems Engineer 1 50$ 4/29/2012 5/19/2012 15 120 6,000$
Totals: 600 30,000$
Slack Schedule/Scope Creep/Project Issues
Projected Start Projected Finish Hard Deadline Slack Days Team Members Slack Hours Project Hours Scope Creep Max1/14/2012 4/28/2012 5/19/2012 15 5 600 3000 17%
Measured budget needed to continue project to the end of semester
Given the schedule for the project the maximum allowable amount of scope creep was measured to 17%
Process Specification
The process for the creation of Schedule360Using
NFR Framework SIG (Softgoal Interdependency Graph)
FR Framework IDEFO Class Diagram
Process Specification (NFR)
Process Specification (FR)
Process Specification (FR)
Requirement (FR)
The application shall allow the user to create appointments
The application shall allow users to synchronize information between the application and all other existing electronic calendars (personal, work, etc.).
WRS Requirement Refinement (FR)
Functional Refinement There is no definition of what fields need to be in
the appointment. Issue description: A problem exists creating the
appointments because there are currently no functional requirements defining what fields are required for an appointment.
Options: An option is to define the common fields required when creating the appointment.
Decision and Rationale: Create additional functional requirements to clearly define the field required.
Revised functional requirement The appointment shall allow the creator to specify the
subject of the appointment, location, start time, end time, etc.
Requirement (NFR)
The software shall be compatible with the following calendars: Outlook, Google, Yahoo, and Lotus Notes.
The software shall be compatible as an application on the Apple iPhone version 3GS and newer.
WRS Requirement Refinement (NFR)
Non-Functional Refinement The software shall be available for download
from a database containing the Schedule 360 smartphone application. Issue description: How can availability be defined better
to ensure users have easy access to the application. Options: Keep or modify the current requirement. Decision and Rationale: Need to be specific on the term
“available for download” or describe where it is available.
Revised non-functional requirement The software shall be available for download from the
iPhone App Store.
Traceability
Functional ExampleNon-Functional Example
Test Cases
Synchronizing the Device
Select ‘Synchronize Devices’ to Sync.
Home
Calendar
Settings
Help
More
Synchronize Devices
Viewing Calendar
Select ‘Calendar’
Home
Calendar
Settings
Help
More
Synchronize Devices
Editing Appointments
Select the appointment you would like to edit from your calendar.
Select which fields to edit.
Select ‘Delete Event’ to remove it from the calendar.
Select ‘Cancel’ to return to the calendar.
Vision Document
Consolidated overall plan for developing Schedule 360 application in one document. Product Positioning Stakeholder and User Descriptions Product Overview Functional/Non-Functional Requirements Product Features and Constraints Quality Ranges Precedence and Priorities Product Requirements Documentation Requirements
Summary Project Development
Defined a Problem Illustrated using a scenario Developed a goal of solving the problem
Created a Vision of how to achieve goalRefined vision into project and process
specification Defined scope of what project plans to achieve (Project Spec) Developed & organized process to solve the problem (Process
Spec)Defined requirements and refined them
Tracked and Tested these requirementsUsed information to develop application and
achieved goal