Software Architecture - PowerPoint PPT Presentation

1 / 62
About This Presentation
Title:

Software Architecture

Description:

ID10T jokes are good examples of the differences between how the end user and developer think ... Users don't approach new software with a completely clean slate. ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 63
Provided by: frankd1
Category:

less

Transcript and Presenter's Notes

Title: Software Architecture


1
Software Architecture
  • WUC 2006

2
Software Architecture
  • RulesHow many pico seconds does it take to
    execute my application
  • ConstraintsProgram can only be run on a 32 bit
    computer under mod-perl 2.0.2
  • ComponentsThe www_readMyMind function in WebGUI
  • ConnectorsPutting funcreadMyMind in your URL to
    call the function

3
Ancient Philosophy
The software architecture of a system describes
the components of a system and how those
components interact at a high level
4
The Facts
  • Hardware is Cheaper and Faster
  • Vast Libraries of Tools and Components Exist
  • People have Evolved

5
The Dotcom Bust
Riches to Rags 2001 - 2002
6
Internet Usage Today
7
(No Transcript)
8
The Internet(By Al Gore)
  • Provides a familiar working environment
  • Facilitates Communication

9
Gathering the REAL Requirements
10
(No Transcript)
11
Deciphering Toddler Talk
12
Software Design Axiom 1
Clients know what they want but it's up to us to
tell them what it is
13
Project Activity Organizer
  • Description This is a tool we'd use to let
    local users sign up to participate in an upcoming
    activity. It would let a visitor search for
    activities in his area, and if none exist, he
    could sign up to organize his own.The tool
    needs to do the following
  • Allow our staff to create new activities and
    enter basic information about the activity
  • Visitors would be able to register to host the
    activity in their area. They would need to enter
    their name, location, time of the event, etc.
  • Other visitors would be able to visit the page
    and search for activities in their area. They
    could do so by searching through a list of all
    activities that have been entered. Entering
    their zip code and seeing a list of activities
    happening nearby. Viewing a map with the
    locations of all the activities marked.
  • If the visitor finds an activity in their area
    and wants to join it, they would be able to
    register for it. Theyd need to enter their name
    and info. This info should be stored and
    forwarded to the person who registered that
    event.
  • Our staff should be able to log into the site
    and access a list of all events and volunteers
    who have signed up
  • Thats the basic summary. Let me know if you
    have any follow up questions.

14
Project Activity Organizer
Description This is a tool we'd use to let
local users sign up to participate in an upcoming
activity.
Description This is a tool we'd use to let
local users sign up to participate in an upcoming
activity.
Description This is a tool we'd use to let
local users sign up to participate in an upcoming
activity. It would let a visitor search for
activities in his area, and if none exist, he
could sign up to organize his own.
  • Visitors to the site are to be presented
    activities local to them
  • Content Profiling?
  • Nothing to do with users relative location to
    the web server
  • Project involves coordinating the same activity
    in multiple locations
  • Project is 3 dimensional (date, time, and
    location)
  • Strong possibility that dimensions are variable

What the hell are local users!?
15
Key Step
  • Identify missing pieces based on the existing
    requirements
  • Validate without insulting

Mr. Jones, what the hell do you mean by local
users, you idiot
Mr. Jones, which profile field should be used to
identify activities in the users area
  • Leading Questions
  • Clarifies what the user wants
  • Confirms our assumptions
  • Proposes and idea that the client may not have
    thought of
  • Filtering activities based on profile information

ReadingBetweenTheLines
16
Project Activity Organizer
Description This is a tool we'd use to let
local users sign up to participate in an upcoming
activity. It would let a visitor search for
activities in his area, and if none exist, he
could sign up to organize his own.
  • The tool needs to do the following
  • Allow our staff to create new activities and
    enter basic information about the activity

What, exactly, is basic information!?
17
Key Step
  • Clients assume you will identify their data
  • They dont think its your job, they dont think
    about it at all!
  • Force the client to slow down and think about
    details that are crucial to the project
  • What if we are collecting secure data?
  • What if a document needs to be versioned?

Holding Hands and Talking Slowly
18
Project Activity Organizer
Description This is a tool we'd use to let
local users sign up to participate in an upcoming
activity. It would let a visitor search for
activities in his area, and if none exist, he
could sign up to organize his own.
  • The tool needs to do the following
  • Allow our staff to create new activities and
    enter basic information about the activity
  • Visitors would be able to register to host the
    activity in their area. They would need to enter
    their name, location, time of the event, etc.
  • Other visitors would be able to visit the page
    and search for activities in their area. They
    could do so by searching through a list of all
    activities that have been entered. Entering
    their zip code and seeing a list of activities
    happening nearby. Viewing a map with the
    locations of all the activities marked.

19
Key Step
  • Advanced functionality does not come cheaply
  • Suggest a different approach to solve the problem

Clients repeat what they hear, even if they
don't understand the meaning
20
Project Activity Organizer
Description This is a tool we'd use to let
local users sign up to participate in an upcoming
activity. It would let a visitor search for
activities in his area, and if none exist, he
could sign up to organize his own.
  • The tool needs to do the following
  • Allow our staff to create new activities and
    enter basic information about the activity
  • Visitors would be able to register to host the
    activity in their area. They would need to enter
    their name, location, time of the event, etc.
  • Other visitors would be able to visit the page
    and search for activities in their area. They
    could do so by searching through a list of all
    activities that have been entered. Entering
    their zip code and seeing a list of activities
    happening nearby. Viewing a map with the
    locations of all the activities marked.
  • If the visitor finds an activity in their area
    and wants to join it, they would be able to
    register for it. Theyd need to enter their name
    and info. This info should be stored and
    forwarded to the person who registered that event.
  • Our staff should be able to log into the site
    and access a list of all events and volunteers
    who have signed up

Thats the basic summary. Let me know if you
have any follow up questions.
21
Key Step
There are a hundred questions we need to ask,
with each answer spawning a new line of
questioning What do we really know?
Clients know what they want but it's up to us to
tell them what it is
Client assume you know what they are talking
about
22
Jumping Forward
  • Assume we have finished gathering requirements
  • How do we build software geared for your every
    day average person?
  • Take off your logical running shoes and take a
    stroll in the loafers of mediocrity

23
A Stroll Down Everyday Lane
24
Users are not morons
My software is so freaking great that people are
gonna just have to figure it out!
25
(No Transcript)
26
Design software for morons
Lowering the bar dramatically increases the
number of people who are able to use your
software, which translates into more customers
A sharp drop-off occurs each time you introduce
something that makes your software more difficult
to use
27
Thinking like the user
  • What the user expects typically doesnt make
    sense to the logical mind
  • ID10T jokes are good examples of the differences
    between how the end user and developer think

28
Software Design Axiom 2
Users dont have the manual, and if they did,
they wouldnt read it
29
User Expectations
  • Users dont approach new software with a
    completely clean slate.
  • Users assume your software works like similar
    software theyve used in the past
  • Users will have some preconceptions about how
    your software should work, and will make guesses
    based on them.

30
The User Model
The users mental understanding of what your
program is doing
31
Avoid Violating the User Model
  • The fastest, most reliable, time saving Internet
    applications go unused because they are difficult
    to use
  • Slower, unreliable, buggy software is used
    everywhere because users dont need to read the
    manual to figure it out.

Users dont have the manual, and if they did,
they wouldnt read it
32
Identifying the User Model
  • Who is this software intended for?
  • Invent some imaginary users

Keep it simple, stupid
33
Joe Johnson
  • Investment Banker
  • Works on Wall Street
  • Lives in NYC
  • Uses the internet to do his job
  • Typically uses the same financial sites
  • Single
  • No computer or internet connection at home
  • Spends his free time watching TV or going out to
    local bars and clubs

34
Sue Smith
  • Stay at home mom
  • Lives in Jefferson City, Missouri
  • Husband is a network admin at a local bank
  • Home has multiple networked computers
  • Handles all the finances in the home
  • Spends a good deal of time online while her kids
    are in school
  • Enjoys general surfing, online shopping, and
    perusing auction sites
  • She regularly buys things on Ebay

35
So what do your users expect?
  • Joe is used to entering symbols into text boxes,
    being presented with current data, and being able
    to drill down to find out more details.
  • Sue is a power user and expects to be able to
    enter phrases and/or logical symbols to help
    refine her search

36
Real People
I dont understand
How am I supposed to search?
financial
financial
  • This is a web page that allows you to find free
    financial seminars in your area and register for
    them
  • There is a text box on the screen which allows
    you to search, what would you first type into
    that text box to find a list of seminars?
  • Perhaps you need a key word search as well as a
    zip code search
  • You might need an entirely different user model

37
User Model Rule 1
  • Same principal applies to software
  • The more little inconveniences your software
    has, the grumpier your users will become
  • Well designed software behaves exactly how the
    user expects it to.

Broken Coffee Maker
Flat Tire
_________________
Grumpy You
Users like to be in control of their environment
38
User Model Rule 2
  • Your software should behave in the same way that
    more popular software similar to yours behaves
  • Someone else spent a lot of time and money
    identifying the user model, dont waste your
    own.
  • Dont try to go against convention just to be
    different. Use words and icons your users will
    be familiar with.

People like the wheel the way it is
39
User Model Rule 3
  • People use software to accomplish tasks
  • Register for an activity on the Internet
  • Download photos from their digital camera
  • Build a website with popular content
  • management software
  • People care about the task, so dont give them
    choices that are unnecessary or unrelated. It
    leads to frustration

Users dont want to make decisions they dont
care about
40
Gratuitous Microsoft Bashing Example
  • MS Office lets you drag the menu bar anywhere on
    the screen.
  • Grabbing a little too far to the left when trying
    to pull down the file menu places the menu in the
    last place you could want it to be.

41
  • Every time you provide an option, youre asking
    the user to make a decision
  • Try to ensure the decisions you present your user
    is a decision that they care about.

42
What Next?
With requirements nailed down and user model
defined, we need to determine how the software is
actually going to work.
43
Reality Bites
  • The reality is, its not always possible to give
    users everything they want
  • The software itself has a model encoded into
    bits and faithfully executed by the CPU
  • The Program Model is the LAW!

44
User Model vs Program Model
Example Its fairly common when building an
asset in WebGUI to want to choose an individual
user from a list of all users in the system What
does the user model suggest? A problem occurs
when the user base gets very large. A select box
with thousands of users takes a long time to
load. We have an unhappy marriage of user and
program model
Making the Program Model match the User Model
45
Change the User Model
Change the form field to a text box and make the
user type in the name of the person they would
like to select.
46
Change the Program Model
Force administrators to choose the users that are
available using groups, limiting the number
displayed to a maximum capacity.
47
User Model Program Model
  • As a general rule, you should change the program
    model to match the user model
  • If you have to change the user model, try to use
    another accepted user model.
  • In our example, we can use a pop up search and
    retrieve model.
  • When the program model corresponds to the user
    model, its time to get organized!

48
Organizing your Software
  • Many people do it the old-fashioned way
  • Write a functional outline detailing the
    requirements
  • Attempt to piece together requirements in a
    sensible manner
  • You usually wind up with software containing the
    right functionality, but with a flow that doesnt
    make sense.
  • Youve most likely violated the user model!
  • Lets try a more intuitive approach

49
Leading the Sheep
  • Focus on the activities the user will be doing,
    making it easy for them to be accomplished
  • Provides for better flowing software
  • Streamlines your application, eliminating
    unnecessary features
  • Lead your users to the desired result rather
    than making them figure out how to get there
    themselves.

50
Software Design Axiom 3
Users have better things to do with their lives
than use your software.
51
Activities Based Planning
  • Make it simple for users to accomplish tasks
  • Best illustrated with an example
  • Lets implement our Activates Organizer

52
Traditional Approach
  • Create new activities
  • Search for activity by zip code or text string
  • Return activity results
  • Allow user to add results to registration pool
  • Decide if user is registering or hosting for
    each activity
  • Collect user information
  • Register user for event
  • Send notifications
  • For lack of a better way of thinking about the
    problem, we create something resembling a
    shopping cart.
  • User searches for activities
  • Selects desired activities and adds them to a
    pool
  • User goes through a checkout process

TOO MANY DECISIONS!
There are bound to be support calls!
53
Activities Based Approach
  • Create activities (for administrators)
  • Find activities
  • Register for Activities
  • Host Activities
  • What conclusions do you come to?
  • Starting with a text box search may not be
    intuitive
  • Perhaps a menu of options would be more clear.

54
A Better Solution
What would you like to do?
  • Create a new activity
  • Search and register for activities in your area
  • Host an activity in your area

Much Easier!
55
Some New Features
  • What conclusions do you come to?
  • Starting with a text box search may not be
    intuitive
  • Perhaps a menu of options would be more clear.

56
No Pain, No Gain
57
Software Design Axiom 4
People dont read, and if they did they wouldnt
want to read what youve written anyway
58
The Functional Specification
  • Description
  • User Roles
  • Rules
  • External Processes
  • Future Considerations
  • Workflow Diagram
  • Screen Specifications

59
The Technical Specification
  • Data Structures
  • Relational Database Models
  • Choice of Programming Language
  • Third Party Tools
  • Algorithms

60
Imperfection is the Norm
61
Consistency is the Key
62
QA
Write a Comment
User Comments (0)
About PowerShow.com