INFO 330

41
INFO 330 Forward Engineering Project From User To Info

description

INFO 330. Forward Engineering Project From User To Info. Logical Design. User studies Info model Logical Design User to type User to access structure Physical Design Data model Queries Some logic Funnel design Page design. User to Info Type. - PowerPoint PPT Presentation

Transcript of INFO 330

Page 1: INFO 330

INFO 330

Forward Engineering ProjectFrom User To Info

Page 2: INFO 330

Logical Design

1. User studies2. Info model

1. Logical Design1. User to type2. User to access structure

2. Physical Design1. Data model2. Queries3. Some logic

3. Funnel design4. Page design

Page 3: INFO 330

User to Info Type

Page 4: INFO 330

MichelleWhat’s the coolest car for me?

Info need: - What kinds of cars are there?- How do you buy a car?- What do my friends think?- What car suits my personality?- What can I afford ?

Info behavior: - Ask my friends & family- Look at a lot of cars and think- Google for certain cars- Look at lots of pictures/videos

Info type: Cool Car - Only most basic car facts- Lots of info on styling - Lots of media- Stories and anecdotes- Make it easy to share- Logistics not statistics - Chatty and friendly style

Page 5: INFO 330

Info Type Model

Info type: Cool Car Content- Only most basic car facts- Lots of info on styling - Lots of media- Stories and anecdotes- Logistics not statistics

Controlled vocab

Cool Car

namestreet1street2 (o)citystatezipphoneemailfacebookURL (o)rating (0)shortDescription (basic rt)longDescription (full rt)

Dealer

Info need: - What kinds of cars are there?- How do you buy a car?- What do my friends think?- What car suits my personality?- What can I afford ?

nameshortDescription (basic rt)longDescription (full rt)featuresextras (o)personalityTraitsbestUseswhoOwnsOne (o)mediastories (o)price

Basic Rich Text• p

• b• i• u

Full Rich Text• p • ul• ol• media• b, i, u,• Inline link (e

or i) in p, li

Page 6: INFO 330

Requirements for your Info Type Model

1. At least 2 info types2. At least one rich text attribute in each type3. At least 3 controlled vocabs4. At least 12 tables in the data model

Notice the difference between an info type and an entity

How will you keep the scope under control?

Page 7: INFO 330

Deliverables for your info Type Model

• Notes that link the model to the info persona• Diagram that

– Shows all the attributes of each type– Flags attributes that are

• rich text• controlled vocabs• optional

• Logical design of rich text attributes– Account for inline links for sure– Account for other stuff as needed

• Physical design: Data model – Showing only the info types modeled (no access structures– Relationships – Keys

• Be able to discuss and justify your choices

Page 8: INFO 330

User to Access Structure

Page 9: INFO 330

Hierarchies

Page 10: INFO 330

Why would you use a hierarchy?

The information• The information has categories and sub-

categories• You want to show the proper names for your

information• Some pieces of info “inherit” from others

The user• Wants to know, “What is in here?”• Wants an overview of a lot of info• Is trying to learn about the information

Page 11: INFO 330

Inde

xes

Page 12: INFO 330

When do you need an index?

When the information has• Common attributes (like title or date)• Some attributes that clearly divide it (author,

keywords, etc.)

When the user wants• To know “Is it in here?”• Quick access to the middle of the information• The info sliced by attributes they care about

Page 13: INFO 330

Associations

Page 14: INFO 330

When do you need associations?

When the info• Natural paths from one item directly to another• Is organized like a web

When the user• Might need to be in one place when she is

presently in another place• Might be following a scent toward the right info

Page 15: INFO 330

Sequence

Page 16: INFO 330

When do you need a sequence?

When the information• Has a natural order• Is like a story• Is like a procedure• Has prerequisites or post-requisites

When the user• Does not know where to start• Is trying to do something or learn• Needs to see what you want to show them• “Needs to see an ad for another item within the current item.

Page 17: INFO 330

Info need: - What kinds of cars are there?- How do you buy a car?- What do my friends think?- What car suits my personality?- What can I afford ?

Info behavior: - Ask my friends & family- Look at a lot of cars and think- Google for certain cars- Look at lots of pictures/videos

Hierarchy

Index

Association

Sequence

Index

Sequence

Index

Association

Association

Association

Hierarchy

Index (car)

SequenceAssociation

• Cars by type

• Cars like this one• Other dealers with

this car

• Features• Personality trait• Uses• Owners• Price• Car name

• Steps to buying a car• Cars we want you to see• Top Dealers• Index search results

Index (dealer)

• Zip• City• Name

Full text Index

• Car.longDesc• Dealer.longDesc

Page 18: INFO 330

To keep in mind

• Beware scope creep– I did not model the user on purpose– I did not model steps to buying on purpose

• You WILL revise this work– Every new thing you do influences all the stuff you have done

• Might be useful to do some early page sketch's to help you think.– But don’t enslave yourself to them– This is about the info and the user, not the presentation. That

comes later

Page 19: INFO 330

Access structure info model requirements

Info Model• Answers to the AS questions• At least one AS of each type• Notes and diagrams that link your persona and AS answers to AS chosen• Named structures that show their functionData model• Add to data model to implement AS• Separate data model diagram for each AS

– For indexes with no extra tables, show the existing tables that are needed for the index

– Include queries if there are one or two key ones– Include a BRIEF logic description if it will take more than a query to work with

the data that is retrieved.

Page 20: INFO 330

Access Structure QuestionsHierarchy• Are there natural categories?• Are there a lot of items?• Do items behave sometimes as a family (have siblings and parents?)• Is the user trying to learn something?• Will the user ever want to know what’s in here?

Index• Are there a lot of items?• Are there short attributes (e.g., title and author) that all items of the type have?• Are items naturally thought about by the user based on these common

attributes (e.g., it is natural to think of articles by author)• Are there words that people use to describe items of this type that don’t

actually appear in the items (e.g., someone might think “cat” but the items always say “feline”

Page 21: INFO 330

Info AccessAssociation• Are there natural paths from one item to others that are related

to it?• Are there prerequisites to items that should be shown• Are there next steps that should be shown• Are there words or phrases in the text that should be links?Sequence• Is there a natural order to the items of this type?• Do some or all items form a sort of story?• Do items come together to form procedures?• Are there items that you definitely want users to see?

Page 22: INFO 330

Info Model Physical Design

Page 23: INFO 330

Info Type Model

Info type: Cool Car Content- Only most basic car facts- Lots of info on styling - Lots of media- Stories and anecdotes- Logistics not statistics

Controlled vocab

Cool Car

namestreet1street2 (o)citystatezipphoneemailfacebookURL (o)rating (0)shortDescription (basic rt)longDescription (full rt)

Dealer

Info need: - What kinds of cars are there?- How do you buy a car?- What do my friends think?- What car suits my personality?- What can I afford ?

nameshortDescription (basic rt)longDescription (full rt)featuresextras (o)personalityTraitsbestUseswhoOwnsOne (o)mediastories (o)price

Basic Rich Text• p

• b• i• u

Full Rich Text• p • ul• ol• media• b, i, u,• Inline link (e

or i) in p, li

Page 24: INFO 330

Info Types Physical Design

Page 25: INFO 330

Dealer

Page 26: INFO 330

Car

Page 27: INFO 330

Car-Dealer

Page 28: INFO 330

Access Structures Physical Design

Page 29: INFO 330

Info need: - What kinds of cars are there?- How do you buy a car?- What do my friends think?- What car suits my personality?- What can I afford ?

Info behavior: - Ask my friends & family- Look at a lot of cars and think- Google for certain cars- Look at lots of pictures/videos

Hierarchy

Index

Association

Sequence

Index

Sequence

Index

Association

Association

Association

Hierarchy

Index (car)

SequenceAssociation

• Cars by type

• Cars like this one• Other dealers with

this car

• Features• Personality trait• Uses• Owners• Price• Car name

• Steps to buying a car• Cars we want you to see• Top Dealers• Index search results

Index (dealer)

• Zip• City• Name

Full text Index

• Car.longDesc• Dealer.longDesc

Page 30: INFO 330

Access Structure Physical DesignHierarchy

SELECT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.car_carTypeTax.shortDesc AS Expr1, dbo.carTypeTaxonomy.name AS Expr2, dbo.carTypeTaxonomy.shortDesc AS Expr3, dbo.carTypeTaxonomy.parentIdFROM dbo.car_carTypeTax INNER JOIN dbo.carTypeTaxonomy ON dbo.car_carTypeTax.carTaxid = dbo.carTypeTaxonomy.id INNER JOIN dbo.coolCar ON dbo.car_carTypeTax.carId = dbo.coolCar.idWHERE (dbo.carTypeTaxonomy.parentId IS NULL)

Query

Logic

1. Use query above to find root category2. Use a recursive function to find child levels

Page 31: INFO 330

Feature Index Types: • Standard• Optional

SELECT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.feature.name AS featureName, dbo.feature.shortDesc AS Expr3FROM dbo.car_feature INNER JOIN dbo.coolCar ON dbo.car_feature.carId = dbo.coolCar.id INNER JOIN dbo.feature ON dbo.car_feature.featureId = dbo.feature.idORDER BY featureName

Page 32: INFO 330

Personality Index

SELECT TOP (100) PERCENT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.car_personality.shortDesc AS Expr1, dbo.personalityTrait.name AS personalityName,

dbo.personalityTrait.shortDesc AS Expr3FROM dbo.coolCar INNER JOIN dbo.car_personality ON dbo.coolCar.id = dbo.car_personality.carId INNER JOIN dbo.personalityTrait ON dbo.car_personality.personalityId = dbo.personalityTrait.idORDER BY personalityName

Page 33: INFO 330

Use Index

SELECT TOP (100) PERCENT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.car_use.shortDesc AS Expr1, dbo.uses.name AS usesName, dbo.uses.shortDesc AS Expr3FROM dbo.coolCar INNER JOIN dbo.car_use ON dbo.coolCar.id = dbo.car_use.carId INNER JOIN dbo.uses ON dbo.car_use.useId = dbo.uses.idORDER BY usesName

Page 34: INFO 330

Owner index

SELECT TOP (100) PERCENT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.owner.name AS ownerName, dbo.owner.shortDescriptionFROM dbo.coolCar INNER JOIN dbo.car_owner ON dbo.coolCar.id = dbo.car_owner.carId INNER JOIN dbo.owner ON dbo.car_owner.ownerId = dbo.owner.idORDER BY ownerName

Page 35: INFO 330

Price Index

SELECT TOP (100) PERCENT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.car_dealer.price, dbo.car_dealer.shortDesc AS Expr1FROM dbo.coolCar INNER JOIN dbo.car_dealer ON dbo.coolCar.id = dbo.car_dealer.carIdORDER BY dbo.car_dealer.price

Page 36: INFO 330

Car Title Index

SELECT TOP (100) PERCENT name, shortDescFROM dbo.coolCarORDER BY name

Page 37: INFO 330

Dealer name, zip and city indexes

SELECT TOP (100) PERCENT name, zip, city, shortDescFROM dbo.dealerORDER BY name

SELECT TOP (100) PERCENT name, zip, city, shortDescFROM dbo.dealerORDER BY zip

SELECT TOP (100) PERCENT name, zip, city, shortDescFROM dbo.dealerORDER BY city

Page 38: INFO 330

Assoc: Similar cars

Logic1. For the current car,

find all the terms that describe it in each index (personality, features, etc.)

2. For each other car, find the term overlap with the current car

3. All overlapping cars are related

4. Order the list of related cars by

1. The number of overlaps

2. The importance of each index

Page 39: INFO 330

Assoc: Dealers with the Same Car

SELECT TOP (100) PERCENT dbo.dealer.name, dbo.car_dealer.price, dbo.car_dealer.shortDesc, dbo.coolCar.name AS Expr1, dbo.coolCar.id, dbo.dealer.id AS dealerIdFROM dbo.car_dealer INNER JOIN dbo.coolCar ON dbo.car_dealer.carId = dbo.coolCar.id INNER JOIN dbo.dealer ON dbo.car_dealer.dealerId = dbo.dealer.idWHERE (dbo.coolCar.id = 3) AND (dbo.car_dealer.dealerId <> 4)ORDER BY dbo.car_dealer.price

Page 40: INFO 330

Seq: Dealers for you

SELECT TOP (100) PERCENT dbo.dealer.name, dbo.dealer.city, dbo.dealer.state, dbo.dealer.zip, dbo.dealer.rating, dbo.car_dealer.carIdFROM dbo.dealer INNER JOIN dbo.car_dealer ON dbo.dealer.id = dbo.car_dealer.dealerIdWHERE (dbo.car_dealer.carId = 3) OR (dbo.car_dealer.carId = 4)

Logic1. Retrieve all dealers2. Order the results

1. Use city, state, zip to compare against what we know of the user’s location

2. Use what we know of the cars the user has searched for

3. Use rating with a high weight (that’s how we market certain dealers)

Page 41: INFO 330

Seq: Ordering search results

• All algorithm, will cover in the code spec