Requirements as User Stories and UI Design
-
Upload
vuongduong -
Category
Documents
-
view
213 -
download
0
Transcript of Requirements as User Stories and UI Design
Requirements as User Stories and UI Design
CS 370 SE Practicum, Cengiz Günay
(Some slides courtesy of Eugene Agichtein and the Internets)
Did your spring break?
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 1 / 17
Agenda
Due after Spring Break:
Project interface mock-up and object-data model designs(see class #8 notes from 2/18)Details in Project tab on class websiteDeadline moved to Thursday, 3/20 :)
Today:
User stories, use cases, state diagrams, scenario-based designBefore that: WebIdol winner!
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 2 / 17
Agenda
Due after Spring Break:
Project interface mock-up and object-data model designs(see class #8 notes from 2/18)Details in Project tab on class websiteDeadline moved to Thursday, 3/20 :)
Today:
User stories, use cases, state diagrams, scenario-based designBefore that: WebIdol winner!
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 2 / 17
Dim the lights, here we go!
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 2
Requirements Analysis Requirements analysis
specifies softwareʼs operational characteristics indicates software's interface with other system elements establishes constraints that software must meet
Requirements analysis allows the software engineer (called an analyst or modeler in this role) to: elaborate on basic requirements established during earlier
requirement engineering tasks build models that depict user scenarios, functional
activities, problem classes and their relationships, system and class behavior, and the flow of data as it is transformed.
Know Your Domain
(c) earthonlinemedia.com
Günay (Emory) Requirements Modeling Fall 2013 4 / 9
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 6
Domain Analysis Define the domain to be investigated. Collect a representative sample of applications
in the domain. Analyze each application in the sample. Develop an analysis model for the objects.
(c) dreamstime.com
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 11
Use-Cases a scenario that describes a “thread of usage” for
a system actors represent roles people or devices play as
the system functions users can play a number of different roles for a
given scenario
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman. 13
Use-Case
Diagram
homeowner
Access camera
surveillance via the
Internet
Conf igure SafeHome
system parameters
Set alarm
cameras
SafeHome
From a �use case� to �user stories�
Use case diagram shows all things an actor can do
Can be broken down to individual user stories
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 4 / 17
User Stories
Templates & Examples
Estimation & Planning
User Stories are the central focus for developersEach User Story should imply an acceptance testComplexity is estimated in Story Points
Arbitrary measure of relative complexity We use modified Fibonacci Sequence (0, 1, 2, 3, 5, 8, 13, 21) Estimates are collaborative to uncover assumptions Based on Staffing we estimate how many Story Points we can
accomplish in a 2 week Iteration (Velocity)
User Story Template
Example from Template
Other Example User Stories*
These were excerpted from http://www.westborosystems.com/2010/02/user-story-examples/ Also see http://agile.csc.ncsu.edu/SEMaterials/tutorials/coffee_maker/ for a great set of examples and
tutorials
Key Points
Cards: physical (or virtual) medium where the story is recordedConversation:Discussion and clarification, modification of the story via communication with the userConfirmation:Tests to verify the user story
I.N.V.E.S.T.
I = independent. Not requiring other features.N = negotiable. Can be excluded, revised, etc.V = valuable. Clearly contributing to product usefulnessE = estimable. Reasonable development estimates can be made from the story.S = small. Stories that are too big tend to be vague and to miss the other points, too.T = testable. Stories need to have a means of verifying functionality.
So how to maintain user stories?
Use online tool: Pivotal TrackerI To create, assign, and maintain user stories for your project
Mandatory: We will track your progress through it.I your points for �rst iteration (due 3/20) depend on it!
I own an academic account, we will send invites to teams.
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 5 / 17
So how to maintain user stories?
Use online tool: Pivotal TrackerI To create, assign, and maintain user stories for your project
Mandatory: We will track your progress through it.I your points for �rst iteration (due 3/20) depend on it!
I own an academic account, we will send invites to teams.
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 5 / 17
User Interface Design
(c) thedailywtf.com
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 2!
Interface Design!
(c) COBE Design
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 3!
Interface Design!
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 4!
Golden Rules!
! Place the user in control!! Reduce the userʼs memory load!! Make the interface consistent!
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 5!
Place the User in Control!
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 6!
Reduce the Userʼs Memory Load!
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 7!
Make the Interface Consistent!
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman. 15
Interface Design Steps
Using information developed during interface analysis, define interface objects and actions (operations).
Define events (user actions) that will cause the state of the user interface to change. Model this behavior.
Depict each interface state as it will actually look to the end-user.
Indicate how the user interprets the state of the system from information provided through the interface.
These slides are designed to accompany Software
Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill,
2009). Slides copyright 2009 by Roger Pressman.
14
Activity Diagram enter password
and user ID
select major funct ion
valid passwor ds/ ID
prompt for reent ry
invalid passwor ds/ ID
input t r ies r em ain
no input
t r ies r em ain
select surveillance
ot her f unct ions
m ay also be
select ed
t hum bnail views select a specif ic cam er a
select camera icon
prompt for
another v iew
select specif ic
camera - thumbnails
exit t his f unct ionsee anot her cam er a
view camera output
in labelled window
Supplements the use
case by providing a
graphical representation
of the flow of interaction
within a specific scenario
These slides are designed to accompany Software
Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill,
2009). Slides copyright 2009 by Roger Pressman.
15
Swimlane
Diagrams
Allows the modeler to represent the flow of activities described by the use-case and at the same time indicate which actor (if there are multiple actors involved in a specific use-case) or analysis class has responsibility for the action described by an activity rectangle:
•Actors
•Timing
•Flow
enter password
and user ID
select m ajor funct ion
valid p asswo r d s/ ID
prom pt for reent ry
in valid
p asswo r d s/ ID
in p u t t r ies
r em ain
n o in p u t
t r ies r em ain
select surveillance
o t h er f u n ct io n s
m ay also b e
select ed
t h u m b n ail views select a sp ecif ic cam er a
select cam era icon
generate video
output
select specif ic
cam era - thum bnails
exit t h is
f u n ct io n
see
an o t h er
cam er a
h o m e o w n e r c a m e ra i n t e rf a c e
prom pt for
another v iew
view cam era output
in labelled window
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 16!
Design Issues!! Response time!! Help facilities!! Error handling!! Menu and command
labeling!! Application accessibility!! Internationalization!
Usability Testing
De�ne tasks
I user storiesI use cases
De�ne users
I TestersI Regular users
Test and collect measurements
I Time to complete taskI Common errorsI ComplaintsI Bugs
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 13 / 17
Facebook in 1997...
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 17!
WebApp Interface Design!! Where am I? The interface should !
! provide an indication of the WebApp that has been accessed !! inform the user of her location in the content hierarchy.!
! What can I do now? The interface should always help the user understand his current options!! what functions are available?!! what links are live?!! what content is relevant?!
! Where have I been, where am I going? The interface must facilitate navigation. !! Provide a “map” (implemented in a way that is easy to understand)
of where the user has been and what paths may be taken to move elsewhere within the WebApp.!
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 18!
Effective WebApp Interfaces!! Bruce Tognozzi [TOG01] suggests…!
! Effective interfaces are visually apparent and forgiving, instilling in their users a sense of control. Users quickly see the breadth of their options, grasp how to achieve their goals, and do their work.!
! Effective interfaces do not concern the user with the inner workings of the system. Work is carefully and continuously saved, with full option for the user to undo any activity at any time.!
! Effective applications and services perform a maximum of work, while requiring a minimum of information from users.!
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 23!
Mapping User Objectives!
objective #1objective #2objective #3objective #4objective #5
objective #n
List of user objectives
Home page text copy
graphic
graphic, logo, and company name
Navigationmenu
Menu barmajor functions
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 25!
Aesthetic Design!! Donʼt be afraid of white space.!! Emphasize content.!! Organize layout elements from top-left to
bottom right. !! Group navigation, content, and function
geographically within the page.!! Donʼt extend your real estate with the scrolling
bar.!! Consider resolution and browser window size
when designing layout.!
These slides are designed to accompany Software Engineering: A Practitionerʼs Approach, 7/e (McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.! 26!
Design Evaluation Cycle!
12 Techniques for UI Design
From: �12 Useful Techniques For Good User Interface Design�by Dmitry Fadeyev
1 Highlight important changes2 Enable keyboard shortcuts in your Web application3 Upgrade options from the account page4 Advertise features of the application5 Use color-coded lists6 O�er personalization options7 Display help messages that attract the eye8 Design feedback messages carefully9 Use tabbed navigation10 Darken background under modal windows11 Lightboxes and Slideshows12 Short sign-up forms
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 15 / 17
Joel Spolsky on Software Requirements
Highly recommended reading from Joel Spolsky's blog:
Painless Functional Speci�cations
Part 1: Why Bother?
Part 2: What's a Spec?
* �Functional speci�cations� in Joel's words is equivalent to our �functionalrequirements.�
CS 370, Günay (Emory) User Stories and UI Design Spring 2014 16 / 17
Happy Spring Break!