Requirements+Gathering+and+Analysis+II

=**Requirements Gathering and Analysis II**= Tuesday, October 11, 2011 <>

** Topic overv ** In class today we will continue looking at requirements gathering and analysis techniques. Today we will focus on capturing and documenting //Quality Attribute// requirements. Quality attributes describe characteristics of the system as a whole, rather than specific functionality of the system. Common quality attributes include issues related to security, performance, fault-tolerance, and reliability, among many others.

We will explore the importance of capturing quality attribute requirements and why they are in many ways more challenging to capture and evaluate effectively. As in the previous class, there will be a significant emphasis on working through requirements specification exercises in class.

By the end of today's class you should be able to:
 * Explain the difference between a functional requirement and a quality attribute requirement (quality attributes are also known as non-functional Requirements)
 * Identify common categories of quality attribute requirements
 * Identify and explain some common techniques for capturing requirements, including interviews, document analysis, business process analysis (and re-engineering), use cases, and requirements workshops.
 * Write clear, effective, and unambiguous quality attribute requirements

**Preparation for class:** Today's class will build on the readings from the previous class. You will be responsible for the material in Chapter 5 of the book:
 * Alan Dennis, Barbara Haley Wixom, and David Tegarden, Systems Analysis and Design with UML Version 2.0, 2nd Edition, John Wiley and Sons, ISBN: 0-471-34806-6.

A digital reserve version of the chapter is available through a link in the Course Documents section of Blackboard

You should also review the following article on wikipedia regarding quality attributes:
 * Nonfunctional Requirements (aka Quality Attributes): http://en.wikipedia.org/wiki/Non-functional_requirements

Finally, we will begin today's class by looking at the example functional requirements from the previous class's slides. Please look through those and try to answer the questions of whether each one meets the criteria for being a well written requirement. If it does not meet all of the criteria, try to reword the requirement so that it is an effectively written requirement statement.

Reference materials:
Slides:

Pre-class exercise:
As an exercise prior to class, select an information system applications that you use regularly. For that application, precisely specify one Functional Requirement and one Quality Attribute Requirement. This can be the same system that you listed for the previous class, or a new system. As a general rule, the more you practice writing requirements the better you will get at doing so.

[Bob Monroe]
 * Application: Apple iTunes
 * Functional requirement: //After purchasing a song, an iTunes customer should be presented with a list of recommended songs available for purchase by the same artist.//
 * Quality Attribute requirement: //The iTunes web service should be offline for system maintenance no more than 2 minutes each week.//

[Hind Al Khulaifi]
 * Application: EasyInternet QNB
 * Functional requirement: EasyInternet should enable customers to transfer funds directly to other QNB customers.
 * Quality Attribute requirement: QNB should not take more than one day to process transfer of funds from the internet to another QNB account.

[Maryam Al-Subaie]
 * Application: iChat
 * Functional requirement: //iChat should enable users to have text, video or audio chats with one or more people.//
 * Quality Attribute requirement: //Mac's iChat should prevent disclosure of users' account information to unauthorized individuals or systems (Security Attribute).//

[Maryam Al-Thani]
 * Application Apple's FaceTime
 * Functional requirement: //Apple's FaceTime application should allow its users to have video chats with other FaceTime users.//
 * Quality Attribute: //Apple's FaceTime application should be unavailable for maintenance for no more than 5 minutes every 2 weeks.//

[Nasser Al-Khori]
 * Application: Qatar Airways online reservation
 * Functional requirement: //After purchasing a ticket, Qatari Airways allows the customer to choose his/her seat and other preferences (meals, air miles, etc. )//
 * Quality Attribute: //Qatar Airways online reservation should be offline for system maintenance no more than 5 minutes every 2 weeks.//

[Fatima Al-Khayat]
 * Application: Twitter
 * Functional Requirement: //Users should be able to post instant updates and view tweets of other users.//
 * Quality Attribute: //When Twitter experiences an outage, the down time should not be more than one hour. They should recover fast from the overcapacity (**Disaster recoverability**////)//

[Khadeejah Al-Husseiny]
 * Application: Blackberry App world
 * Functional Requirement: Users should be able to see a list of recommended apps or games under the same category of previously purchased items
 * Quality Attribute: (performance) The system should be readily available for use 24 hours a day

[Mohammed Kamal]
 * Application: Expedia
 * Functional Requirement: Users should be able to write a recommendation if they booked a trip via Expedia.
 * Quality Attribute: The system should charge the customer's credit card within 24 hours.

[Sara Al-Mannai]
 * Application: Qtel E-bills
 * Functional Requirement : users should be able to view their monthly phone bill online in full detail.
 * Quality Attribute: if you pay your bill, the system should take 24 hours to update your current bill status.

[Abdullrahman Al-Muftah]
 * Application: Blackberry Messenger
 * Functional Requirement: Users should be able to view people's updated statuses, and have the ability to update their own status
 * Quality attribute: When updating your bbm status, the update should appear to other users in less than 2 seconds upon updating the status.

[Al-Jawhra Al-Mana]
 * Application: wikispaces
 * Functional Requirement : users should be able to edit, preview, add images, videos, audio files and save
 * Quality Attribute: wikispaces should not take more than few seconds to save and update the page

[Nahan Arif]
 * Application: Facebook
 * Functional requirement: Users should be able to update their status anytime of the day.
 * Quality Attribute: It should not take more than a few second for an inbox message to be received by the other party.

[Hussain Hejji]
 * Application: MSN Messenger
 * Functional requirement: the users should be able to chat and change their statuses.
 * Quality Attribute: it only take few seconds to show your status after you update it

[Walied El Hag Ali]
 * Application: FedEx Tracking System
 * Functional requirement: The system should allow the users to view the exact location of their packages at any point of time.
 * Quality attribute: It should take at most 3 seconds to view the location of your package.

[Fatima Abdulla]:
 * Application: Schedule Man
 * Functional requirement: //Users should be able to create their semester schedule and easily share it with others.//
 * Quality attribute: It shouldn't take more than seconds to share the schedule with others.

[Amal Osman]
 * Application: Student information online
 * Functional requirement: //users should be able to view their grades and GPA for all semesters//
 * Stakeholder: it should take a maximum of 1 minutes to view the page

[Hamsa M Al-Massri]
 * Application: google scholar
 * Functional requirement: Users should get results for the search based on what's most relevant to the key terms inputted by users.
 * Quality attribute: when the site experiences an system outage, it should not take more than 30 minutes to fix the problem.

[Ayah Abujarbou]
 * Application: Facebook Messenger
 * Functional requirement: Users should be able to receive their Facebook chat messages and inbox on their smartphone.
 * Quality attribute: the application should show a popup within 30 seconds of receiving that message or inbox on Facebook.

[Mohammed Al-Rawahi]
 * Application: ebay
 * Functional Requirement: Users should be able to see a summary of the purchase including the price before final payment
 * Quality attribute: After purchase, it should take no more than couple of minutes to confirm the purchase (order)

[Ahmad Al-Sarraf]


 * // Application: // Traffic violation SMS
 * // Functional requirement: // users (drivers) should be able to know if they commit any traffic violation, as they receive an instant SMS message.
 * // Quality attribute: // After committing the traffic violation, it will take at most 48 hours to receive the SMS message about the violation.

[Mohammed Al Ahmadani]:
 * Application: Facebook wall post
 * Functional requirement: Users should be able to post comments and/or links on their friend's "wall"
 * Quality attribute: after posting the comment, it should appear within somewhere between twenty to 30 seconds top after the user clicks the the "post" icon.

[Orkhan Rustamzade]


 * Application: PayPal
 * Functional requirement: //After paying for the item the user should receive the invoice and confirmation about the payment.//
 * Quality Attribute requirement: //PayPal service should be offline for system maintenance no more than 10 minute each week to keep the network secured.//

[Mohammed Hadi Takiddin]


 * Application: Digital Drop Box
 * Functional requirement: //Students should be able to submit their assignments on the web.//
 * Quality Attribute requirement: //Students should receive a warning message saying that "are you sure this is the assignment you want to submit?" That is because students might upload the wrong file accidentally.//

[M Hammad Abbasi]


 * Application: Dropbox
 * Functional requirement: //Allows user to send file to online cloud storage.//
 * Quality Attribute requirement: //Users should be able to browse around in a file dialog box in order to send a file to Dropbox. [Ease of use or usability attribute]//

[ Noof Al-muzaffar]
 * Application: Hotmail sign in
 * Functional Requirement: Users should be able to type their email address and password.
 * Quality Requirement: The system should be able to check the validity of the email and password in less than 2 seconds.

[Firas Bata]
 * Application: Twitter
 * Functional requirement: Users should be able to post text provided it is within 140 characters
 * Quality attribute: upon refreshing the page, new posts should appear in no more than 20 seconds from when they were posted.

[Aisha Al-Zaman]
 * Application: TwitterApp
 * Functional requirement: Users should be able to mention any user in any tweet they write.
 * Quality attribute: The system should send a notification message to the mentioned user in no more than 10 seconds.

[Jevika Shetty] - Application: WhatsApp messenger - Funcional requirement: //Allows users to instantly message each other and also include photos, audio notes and videos within the conversation.// //-// Quality Attribute//: The application allows users to save up on their text messages charges by providing them with a platform to chat with much cheaper rates.//

[Anas Ali Chaudry]
 * Application: Google Search
 * Functional Requirement: Users are able to search the web regarding the text they have provided in the search bar.
 * Quality Attribute: Google provides millions of search results in a fraction of a second.

[MUGHEES AHMED]
 * Application: YOUTUBE
 * Functional requirement: Browsers can watch and share videos online. If you sign up for an account, Youtube keeps track of your views, subscribers and further recommends videos to you.
 * Quality attribute: Its quick, efficient, reliable and has pretty much everything online. [especially the stuff that goes viral]. Oh you will find it!

[Meshail Al Misnad]:
 * Application: Basecamp Sites
 * Functional Requirement: Listed users should be notified when progress is being made and messages have been posted.
 * Quality Attribute: Users can easily collaborate and share projects. It is easy to use and makes client discussions centralized.

[Fatima Fikree]:
 * Application: Wiki
 * Functional Requirement: Users should be able to edit information made accessible to them on the page
 * Quality Attribute: It is an easily accessible, customizable and flexible modern day internet encyclopedia.

[Jim Briggs]
 * Application: Free lancer
 * Functional requirement: //After posting project, a freelancer customer compares prices and select bidders, create payment for the project and approve payment.//
 * Quality Attribute requirement: The freelancer web service should be offline for maintenance for no more than 2 minutes in two weeks.

[Noor Al-Mohannadi]:
 * Application: Turnitin
 * Functional requirement: users should be able to enroll in classes, upload assignments and the website checks the originality of the assignment by detecting plagiarism.
 * Quality Attribute: The maintenance of the website should not be more than 3 minutes per week.

[Dua'a Althabatah] [Nijat Ibrahimov] [Patrick Steinhagen]
 * Application: Iphone App Store
 * Functional requirement: Users should be able to update their existing apps anytime they want.
 * Quality Attribute: It should not take more than a few second for an app to be updated and work instantly with the updated features.
 * Application: Google Calendar
 * Functional requirement: //Users can receive email notification reminding about the upcoming events.//
 * Quality Attribute requirement: It is an easily accessible, customizable and sharable modern day calendar in order to organise your tasks efficiently.
 * Application: QNB eazy banking
 * Functional requirement: Users should be able to transfer money to other accounts
 * Quality Attribute: The user's personal data should be secure.

[Dalia Saleh Hassan]
 * Application: HUB
 * Functional requirement: Users should be able to view their grades that their professors posted online.
 * Quality Attribute: Student must have privacy and shouldn't see each others grades.

[Ognjen Popovic]]
 * Application: Student Information Online [SIO]
 * Functional Requirement: Users should be able to view information about their finance, GPA and QPA, amd schedule information as separate batches
 * Quality Attribute: Students need to user name and password in order to access their personal information.