Presentation is loading. Please wait.

Presentation is loading. Please wait.

INFO 330 Forward Engineering Project From User To Info.

Similar presentations


Presentation on theme: "INFO 330 Forward Engineering Project From User To Info."— Presentation transcript:

1 INFO 330 Forward Engineering Project From User To Info

2 Logical Design 1.User studies 2.Info model 1.Logical Design 1.User to type 2.User to access structure 2.Physical Design 1.Data model 2.Queries 3.Some logic 3.Funnel design 4.Page design

3 User to Info Type

4 Michelle What’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

5 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 name street1 street2 (o) city state zip phone email facebookURL (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 ? name shortDescription (basic rt) longDescription (full rt) features extras (o) personalityTraits bestUses whoOwnsOne (o) media stories (o) price Basic Rich Text p b i u 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 Full Rich Text p ul ol media b, i, u, Inline link (e or i) in p, li

6 Requirements for your Info Type Model 1.At least 2 info types 2.At least one rich text attribute in each type 3.At least 3 controlled vocabs 4.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?

7 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

8 User to Access Structure

9 Hierarchies

10 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

11 Indexes

12 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

13 Associations

14 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

15 Sequence

16 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.

17 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 Hierarchy Index (car) Sequence Association 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

18 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

19 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 function Data 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.

20 Access Structure Questions Hierarchy 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”

21 Info Access Association 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?

22 Info Model Physical Design

23 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 name street1 street2 (o) city state zip phone email facebookURL (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 ? name shortDescription (basic rt) longDescription (full rt) features extras (o) personalityTraits bestUses whoOwnsOne (o) media stories (o) price Basic Rich Text p b i u 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 Full Rich Text p ul ol media b, i, u, Inline link (e or i) in p, li

24 Info Types Physical Design

25 Dealer

26 Car

27 Car-Dealer

28 Access Structures Physical Design

29 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 Hierarchy Index (car) Sequence Association 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

30 Access Structure Physical Design Hierarchy 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.parentId FROM 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.id WHERE (dbo.carTypeTaxonomy.parentId IS NULL) 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.parentId FROM 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.id WHERE (dbo.carTypeTaxonomy.parentId IS NULL) Query Logic 1.Use query above to find root category 2.Use a recursive function to find child levels 1.Use query above to find root category 2.Use a recursive function to find child levels

31 Feature Index Types: Standard Optional Types: Standard Optional SELECT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.feature.name AS featureName, dbo.feature.shortDesc AS Expr3 FROM 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.id ORDER BY featureName SELECT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.feature.name AS featureName, dbo.feature.shortDesc AS Expr3 FROM 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.id ORDER BY featureName

32 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 Expr3 FROM 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.id ORDER BY personalityName 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 Expr3 FROM 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.id ORDER BY personalityName

33 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 Expr3 FROM 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.id ORDER BY usesName 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 Expr3 FROM 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.id ORDER BY usesName

34 Owner index SELECT TOP (100) PERCENT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.owner.name AS ownerName, dbo.owner.shortDescription FROM 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.id ORDER BY ownerName SELECT TOP (100) PERCENT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.owner.name AS ownerName, dbo.owner.shortDescription FROM 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.id ORDER BY ownerName

35 Price Index SELECT TOP (100) PERCENT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.car_dealer.price, dbo.car_dealer.shortDesc AS Expr1 FROM dbo.coolCar INNER JOIN dbo.car_dealer ON dbo.coolCar.id = dbo.car_dealer.carId ORDER BY dbo.car_dealer.price SELECT TOP (100) PERCENT dbo.coolCar.name, dbo.coolCar.shortDesc, dbo.car_dealer.price, dbo.car_dealer.shortDesc AS Expr1 FROM dbo.coolCar INNER JOIN dbo.car_dealer ON dbo.coolCar.id = dbo.car_dealer.carId ORDER BY dbo.car_dealer.price

36 Car Title Index SELECT TOP (100) PERCENT name, shortDesc FROM dbo.coolCar ORDER BY name SELECT TOP (100) PERCENT name, shortDesc FROM dbo.coolCar ORDER BY name

37 Dealer name, zip and city indexes SELECT TOP (100) PERCENT name, zip, city, shortDesc FROM dbo.dealer ORDER BY name SELECT TOP (100) PERCENT name, zip, city, shortDesc FROM dbo.dealer ORDER BY name SELECT TOP (100) PERCENT name, zip, city, shortDesc FROM dbo.dealer ORDER BY zip SELECT TOP (100) PERCENT name, zip, city, shortDesc FROM dbo.dealer ORDER BY zip SELECT TOP (100) PERCENT name, zip, city, shortDesc FROM dbo.dealer ORDER BY city SELECT TOP (100) PERCENT name, zip, city, shortDesc FROM dbo.dealer ORDER BY city

38 Assoc: Similar cars Logic 1.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 Logic 1.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

39 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 dealerId FROM 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.id WHERE (dbo.coolCar.id = 3) AND (dbo.car_dealer.dealerId <> 4) ORDER BY dbo.car_dealer.price 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 dealerId FROM 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.id WHERE (dbo.coolCar.id = 3) AND (dbo.car_dealer.dealerId <> 4) ORDER BY dbo.car_dealer.price

40 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.carId FROM dbo.dealer INNER JOIN dbo.car_dealer ON dbo.dealer.id = dbo.car_dealer.dealerId WHERE (dbo.car_dealer.carId = 3) OR (dbo.car_dealer.carId = 4) SELECT TOP (100) PERCENT dbo.dealer.name, dbo.dealer.city, dbo.dealer.state, dbo.dealer.zip, dbo.dealer.rating, dbo.car_dealer.carId FROM dbo.dealer INNER JOIN dbo.car_dealer ON dbo.dealer.id = dbo.car_dealer.dealerId WHERE (dbo.car_dealer.carId = 3) OR (dbo.car_dealer.carId = 4) Logic 1.Retrieve all dealers 2.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) Logic 1.Retrieve all dealers 2.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)

41 Seq: Ordering search results All algorithm, will cover in the code spec


Download ppt "INFO 330 Forward Engineering Project From User To Info."

Similar presentations


Ads by Google