1 Dr. Tom Hicks Sotware Engineering CSCI-3321 Computer Science Department Trinity University.

Slides:



Advertisements
Similar presentations
How to validate in Budget Manager Hopefully now you have reached this stage you will have downloaded the inpatient and outpatients excel files for you.
Advertisements

Access 2007 ® Use Databases How can Microsoft Access 2007 help you to get and stay organized?
How To Start A Blog on Livejournal.com Navigation Creating an Account Naming Your Blog/Editing User Info Customizing Your Blog Updating Your Blog Adding.
EDW647 Internet For Educators Setting Up a Gmail Account Roger W. Webster, Ph.D. Department of Computer Science Millersville University (717)
1.
Creating And Maintaining A Database. 2 Learn the guidelines for designing databases When designing a database, first try to think of all the fields of.
There is a certain way that an HTML file should be set up. The HTML section declares a beginning and an ending. Within the HTML, there should be a HEAD.
Access 2007 ® Use Databases How can Microsoft Access 2007 help you to enter and organize information?
Customizing Forms and Writing QuickBooks Letters Lesson 15.
EProcurement Job Aid Requisitions & Receipts. Table of Contents Creating a Requisition Define Requisition Vendor.
ADVANCED MICROSOFT POWERPOINT Lesson 6 – Creating Tables and Charts
Adobe Forms THE FORM ELEMENT PANEL. Creating a form using the Adobe FormsCentral is a quick and easy way to distribute a variety of forms including surveys.
Designing a Classroom Web Site Using NVU Beginning Level.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
Advanced Tables Lesson 9. Objectives Creating a Custom Table When a table template doesn’t suit your needs, you can create a custom table in Design view.
Customizing forms and writing QuickBooks Letters Lesson 15.
XP New Perspectives on Microsoft Access 2002 Tutorial 41 Microsoft Access 2002 Tutorial 4 – Creating Forms and Reports.
Basic Navigation in SAP For the Windows Graphical User Interface (GUI) Click your mouse anywhere or select “Page Down” to scroll through the pages.
Microsoft Word 2010 Lesson 10. Learning Objectives 1 Understand and Use Mail Merge 2 Select and Edit a main document 3 Create a source document 4 Preview,
 Basic.  Punch-Out Supplier – The punch-out suppliers are available on the main Home/Shop screen. These are vendors with which RPI has pricing agreements.
Event Manager Training Part 3.  Edit Event Options - Customize FY11 Sites  Edit Event Webpages  Sending s (Recruitment/Engagement)  Help and.
Create Database Tables
The ePortfolio and Student Evaluation A training presentation by: Amy Cannady Robin Drewry Bonnie Hicks.
Microsoft PowerPoint Getting Started Guide Prepared for Towson University Dr. Jeff M. Kenton Amy Chase Martin 2007.
Create your own template
Moodle (Course Management Systems). Assignments 1 Assignments are a refreshingly simple method for collecting student work. They are a simple and flexible.
Objective To create a professional, affordable, and easy to use website Create a user friendly interface with accessibility and effortless navigation.
Micro sites Basic training guide. Welcome to your Micro site. Here you can create your own personal page within the Countrywide website. When you first.
Microsoft Access Get a green book. Page AC 2 Define Access Define database.
PHP meets MySQL.
1 ADVANCED MICROSOFT EXCEL Lesson 9 Applying Advanced Worksheets and Charts Options.
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
You may place prompt over or to the left of the data-entry field; select one and be consistent. Name Tom PromptResponse Box Name Tom Prompt Response Box.
Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 2 Creating a User Interface.
XP New Perspectives on Microsoft Access 2002 Tutorial 21 Microsoft Access Tutorial 2 – Creating And Maintaining A Database.
CREATING TEMPLATES CREATING CUSTOM CHARACTERS IMPORTING BATCH DATA SAVING DATA & TEMPLATES CREATING SERIES DATA PRINTING THE DATA.
SIGNZ Mail Merge / Merge / Labels SIGNZ Mail Merge / Merge / Labels.
Microsoft ® Office PowerPoint ® 2003 Training Create your own template [Your company name] presents:
1 What to do before class starts??? Download the sample database from the k: drive to the u: drive or to your flash drive. The database is named “FormBelmont.accdb”
Basic Editing Lesson 2.
Microsoft Access. Microsoft access is a database programs that allows you to store retrieve, analyze and print information. Companies use databases for.
G063 - Human Computer Interface Design Designing the User Interface.
McGraw-Hill Technology Education © 2004 by the McGraw-Hill Companies, Inc. All rights reserved. Office Access 2003 Lab 2 Modifying a Table and Creating.
Microsoft Access 4 Database Creation and Management.
CSC 240 (Blum)1 Introduction to Access CSC 240 (Blum)2 Click on the Access desktop icon or go to Start/Programs/Microsoft Office/Microsoft Office.
Advanced Graphing Using Excel V.1 Part II: Giving your graph style Written and Created by: James Golen University of Michigan – Dearborn Science Learning.
Fall 2003Sylnovie Merchant, Ph.D. ACCESS Tutorial Note: The purpose of this tutorial is to provide an introduction to some of the functions of ACCESS in.
Build a database V: Create forms for a new Access database Overview: A window into your data So far in this series of courses, you’ve built tables, relationships,
McGraw-Hill/Irwin The Interactive Computing Series © 2002 The McGraw-Hill Companies, Inc. All rights reserved. Microsoft Excel 2002 Working with Data Lists.
CSC 240 (Blum)1 Introduction to Access CSC 240 (Blum)2 Click on the Access desktop icon or go to Start/All Programs/Microsoft Office/Microsoft Office.
Some Thoughts On PROTOTYPE Form Design. You may place prompt over or to the left of the data-entry field; select one and be consistent. Name Tom PromptResponse.
Chapter 3 Automating Your Work. It is frustrating when you have to type the same passage of text repeatedly. For example your name and address. Word includes.
LECTURE 18 16/11/15. MAKING THE INTERFACE CONSISTENT Consistency is one way to develop and reinforce the users conceptual model of applications and give.
I Am The Stakeholder! I Currently Own Seventeen Non- Franchised Block Buster Stores & I Hope To Purchase More!
Usability Olaa Motwalli CIS764, DR Bill – KSU. Overview Usability factors. Usability guidelines.  Software application.  Website. Common mistakes. Good.
Access Queries and Forms. Adding a New Field  To insert a field after you have saved your table, open Access, and open the table  It is easier to add.
Getting Started in Access 1 Using an existing Database Database Window Table Design View Parts of a Table Views in Access Navigating in Access Entering.
Access Test Questions Test Date: 05/05/16. Chapter 1 (Lynda.com) Question 1 An access database uses five main components (database objects). Which is.
1. Using word you can create the document and edit them later, as and when required,by adding more text, modifying the existing text, deleting/moving.
MS WORD INFORMATION TECHNOLOGY MANAGEMENT SERVICE Training & Research Division.
1 Customizing Forms and Writing QuickBooks Letters Lesson 15.
Stand-Alone Apps & Web Apps
GO! with Microsoft Office 2016
GO! with Microsoft Access 2016
Delete - Participate With Your Team - Business Plan
Intro To Design 1 Elementary School Library: User Sub-System Class Diagrams Software Engineering CSCI-3321 Dr. Tom Hicks Computer Science Department.
Intro To Design 2 Architecture Diagrams
MODULE 7 Microsoft Access 2010
Intro To Design 1 - Project Overview
Presentation transcript:

1 Dr. Tom Hicks Sotware Engineering CSCI-3321 Computer Science Department Trinity University

Participate With Your Team?  Decision Some Of You Might Choose To March To The Beat Of A Different Drummer

Far More Often Than Not: A Team Of 4 Has Become A Team Of 3 & A Team Of 1 Both Teams Doing The Entire Project

1 - Compton, Campbell B. Siegal, Jeremy A. Conner, Zachary T. Zhang, Timothy Y. 2- Steinbach, Peter A. Garrick, Daniel J. Kinahan, Sean P. Schrock, Bryan R. 3-Lamm, Allison R. Do, NamChi T. McCutchen, Sean E. Cruz, Matthew G. 4-James, Kendrick W. Bird, Alexa Kennedy, Rodney Miller, Hunter H. 5- Fisher, Kathleen M. Fisher, Corey S. Foster, Zane M. Peake, Caulan J. 6-Moden, Kylie J. Solcher, Zachary J. Ward, Joshua R. Simms, Woody

Suppose that, as the owner of “Trinity Internet & Database”, I want to hire a software development company to create a major piece of software!

6 I Check Around & Hear Positive Things About Six Software Companies. Team # 1 TN

7 I Check Around & Hear Positive Things About Six Software Companies. Team # 2 TN

8 I Check Around & Hear Positive Things About Six Software Companies. Team # 3 TN

9 I Check Around & Hear Positive Things About Six Software Companies. Team # 4 TN

10 I Check Around & Hear Positive Things About Six Software Companies. Team # 5 TN

11 I Check Around & Hear Positive Things About Six Software Companies. Team # 6 TN

The project is challenging. I need a company that is Excellent at Design! I need software that Requires Little or No Training! I need a company that Completes Things On Time! I need a company that Creates Software that is Extremely Easy to Use; it minimizes key I need a company that Creates Software for the Next Ten Years! I need a team I Can Work With Well!

When Employer's Call About A Prospective Employee (student) - What Do You Think Are The First Two Questions I Get Asked? Do They Turn All Of Their Assignments In On Time? WHY? Do They Attend All Of Their Classes With You? WHY? How Good Are They At Coding? How Do They Compare With Others In Their Class? How Well Do They Work In Teams? Tell Me About Their Social Skills? Do They Work In Leadership Roles Well?

?? System Will Have At Least 11 Sub-Systems. ?? Selecting the best team is Critical! Inventory I Decide To Select One Of The More Complex Entity Type Sub-Systems. I Hope To Have 3 Companies Design This Sub-System!

Maybe Useful If You Ever Go Over To Dark Side!

16 I Interview Companies One At A Time I Offer Each Company An Opportunity To Create Complete The Analysis & Design (with Prototype) For The Inventory Sub-System For ½ What It Is Worth! Choose Top 3

17 I Interview Companies One At A Time Best Analysis & Design For The Inventory Sub-System Gets Contract To Do Entire Systems Analysis & Design At X$ Take Top 3 That Choose To Participate!

18 I Interview Companies One At A Time I Own The Systems Analysis. Specifications/Requirements, Prototypes, etc. I Will Then Give All 3 Companies The Opportunity To Bid On The Final System! Take First 3

19 Why Might I Be Willing To Pay 150%Of What The System's Analysis Is Worth?

20 Why Would I Pay 50% More For The Design For The Inventory Sub-System Design? Why Might Your Software Company Do A Small Analysis & Design For 1/2 Price?

a Need Some Application For Discussion!

Suppose We Start With The Elementary School Library Design Considerations 22

a Your COmpany Would Do A System's Analysis!

24 Step 1 [Might Do Lots Of Things Including] 1.Talk to users & find out what they need 2.Go on site & observe them at work if possible 3.Get screen captures & observer current software (if any) 4.Discuss what they like/dislike about current software 5.What they need that they don’t have 6.Get copies of all written reports 7.Etc.

a Your Company Will Develop Professional Presentations

Vo ble! ™ SilverTuba Systems® 29

High-leveldiagram 30

Good Elementary Library Sub-Systems Users Check-Out Transactions Inventory Purchase Order Transactions Vendors Fines & Money Transactions Vo ble! ™ SilverTuba Systems® 31

a Your COmpany WILL Create Architecture Diagrams!

33 Step 2 [ Architecture Diagram] 1.Create an Architecture Diagram (AD) 2.Maybe put AD on Power Point 3.Go through with stakeholders Hopefully identifying things you missed Hopefully clarifying functionality 4.Send a copy of the Power Point with them Call us with suggestions/corrections 2 Rights! Are We Building The Right System? Are We Building The System Right?

34 Good Architecture Diagrams Increase The Probability That The Designer Will Construct An Acceptable Prototype!

35 Old Student Architecture Diagrams 10+ Years Ago AD Should Help Stakeholder Confirm What Functionality To Add To Each Sub-System AD Should Help Developer Include The Right Functionality In Each Sub-System 2 Hats - Stakeholder & Developer These Are Not Great AD's

Architectural Diagram

Customer Architecture Diagram

Customer & Employee Architecture Diagram

Architectural Diagram

a Your COmpany WILL Create CLass Diagrams!

44 Step 3 [ Class Diagrams] 1.Create Class Diagrams 2.Maybe put AD on Power Point 3.Go through with stakeholders Hopefully identifying things you missed Hopefully clarifying functionality 4.Send a copy of the Class Diagrams with them Call us with suggestions/corrections 2 Rights! Are We Building The Right System? Are We Building The System Right?

45 Old Student Class Diagrams 10+ Years Ago AD Should Help Stakeholder Confirm What Data To Add To Each Sub-System AD Should Help Developer Include The Right Data To Include In Each Sub-System 2 Hats - Stakeholder & Developer These Are Not Great Class Diagrams's

Users Class Diagrams [A]

User & User Support Class Diagrams [A]

a Your COmpany WILL Create Non-Functional Prototypes

50 I Have Found That The Best Way To Teach You To Develop Good Prototypes Is To Show You Some Bad Prototypes!

51 These Guidelines Should Be Things You Consider When Creating Data-Entry Forms For Stand-Alone Applications, Websites, etc.

About Data-Entry Forms 1.Select a form background that would be pleasant and easy to read for the person doing data-entry 8 hours at a time. White is pretty bland! 52

Some colors are not the best choices! 53

Some colors are not the best choices! 54

A better choice for background colors. Some colors are better choices! 55

About Data-Entry Forms 2.Select a font color that is compatible with your background. It should be an easy combination to read from a distance 56

About Data-Entry Forms 3.Select a font face, font size, and font color combination that would be easy to read for the person doing data-entry 8 hours at a time. 57

About Data-Entry Forms 4.Never make the prompt more bold or larger than the data entry. The data is more important than the prompt! 58

About Data-Entry Forms 5.Opt for font clarity over cuteness. 59

About Data-Entry Forms 6.The fact that some API’s contain a form generator that generate a starting Data-Entry form does not make that form professional or acceptable. 60 This form is a mess. It looks like someone just threw the prompts and textboxes onto the screen. Some of the prompts are not even entirely visible. This is way better than nothing, but serves as a starting point and not a destination!

About Data-Entry Forms 7.It is most often a good idea to lay out your form in such a way that it has one or two major columns. 8.It is most often a good idea to place the most important info at, or near, the top! ( There are certainly many exceptions). 61

Would Be Better done With Two Columns! 62

About Data-Entry Forms 9.It is generally a good idea to align all prompts and data horizontally. Many API’s have alignment tools to make this easier. 63

About Data-Entry Forms 10.It is not always possible, but try to avoid “void/blank” spaces in form. 64

About Data-Entry Forms 11.It is generally good idea to frame the form so that you have about the same amount of blank space around all four of the form borders 65 Don’t Always Need A Prompt For Textbox Message 65

About Data-Entry Forms 12.It is generally a good idea to try to make the space between rows consistent and not too large. 66

67 Data-Entry Form Prompt & Textbox Stand-Alone Applications, Websites, etc.

About Textbox Prompts 1.Every Prompt Should Be Clear & Concise Supplier ID# Minimum Quantity To Stock 68

About Textbox Prompts 1.Every Prompt Should Be Clear & Concise There will be times when forms are cluttered with lots of data entry containers. Arranging the various controls aesthetically and logically often prove challenging. Adding Mouse-Over Text to the prompt is one way to really help clarify the request. Many API’s provide mechanisms for this with some type of “Tool Tips”; use it when necessary. 69

About Textbox Prompts 2.The Prompt Should Not End With A Colon (:). 70

About Textbox Prompts 3.You may place prompt over or to the left of the data entry field; most of the time it is best to select one or the other and be consistent. Name Tom PromptResponse TextBox Name Tom Prompt Response TextBox 71

72 Data-Entry Form Controls Stand-Alone Applications, Websites, etc.

About Controls 1.It is generally a good idea to left-justify the data entry controls (textbox, radio button, drop-down list, checkbox, buttons, etc.) 73

74 More Data-Entry Form Text Prompts Stand-Alone Applications, Websites, etc.

About Textbox Prompts 4.If you are placing the prompt beside the data entry fields, it is best to right-justify the prompts. 5.If you are placing the prompt over the data entry fields, it is generally best to left-justify both the prompt and the field. 6.It is generally best to keep the distance between the prompt and the data entry fields consistent. 7.It is generally best to keep the prompts the same font and size. 75

About Textbox Prompts 8.It is generally a good idea to capitalize the first letter of each and every word in the prompt. 9.It is generally a good idea to try to avoid all upper case prompts (unless they are acronyms). 10.It is generally a good idea to keep the distance between the prompt and the data entry  small, readable, and consistent. 76

77 ID Field Searching/Matching Numerics Is Much Faster Than Searching/Matching Strings!

Numeric ID 1.Most Classes/Structs/Tables should have a unique ID which can be used to identify any one record. 2.Most databases have an auto incrementing field just for this purpose, but it can be implemented in any programming language. 3.It is best to use auto incrementing mechanisms for unique primary keys! 78

Numeric ID 4.If creating your own auto incrementing integer fields, these unique ID's should never change! 5.Since these auto incrementing integers are not going to change, then the user should not be able to change it. It will often be displayed on forms, but the user will not be able to change it. 6.A label often appropriate to display the value; if a textbox were used, the user would try, in vain, to change it. 7.These auto incrementing fields preserve relationships. 79

80 More Data-Entry Form Recommendations Stand-Alone Applications, Websites, etc.

About Data-Entry Forms 13.Each form should contain a clear statement of title in the title bar; the title should describe the form. (This is a great place for a commercial!) 81

About Data-Entry Forms 14.All of the forms in an application, or website, should have a common feel a)Consistent navigation and/or buttons b)Consistent fonts c)Compatible, or consistent, background colors 82

About Data-Entry Forms 15.The Data Entry should be sufficiently large to hold the maximum size value (current font). 16.If the largest Title is 70 characters big, the data entry field should be large enough to handle 70 characters; use multi-line if needed! 83

84 Complex Data-Entry Form Recommendations Stand-Alone Applications, Websites, etc.

About Data-Entry Forms 16.The use of lines, boxes, panels, and/or tables will enable you to place more information on a form. 17.Organize the information in some logical pattern. 85

About Data-Entry Forms 18.You may use multiple font faces and font sizes and font colors on a form; normally this will decrease the usability of the form. Have a reason for those changes. 86

About Data-Entry Forms 19.Consider using tab frames when your form has a lot of data. Organize it logically. Label the tabs. Use tab colorization to help user recognize each tab. 87

About Data-Entry Forms 20.Include enough duplicate information on each of the tabs to assure that the user never has to guess which record they are viewing. 88

About Data-Entry Forms 21.It is often a good idea to provide the user with a multi- line textbox in which to store information that may be needed later in the software life cycle; a database memo field might be used to store things that may not have even been considered during the analysis. 89 Note that the contact name

Wouldn’t a combo box, or a spinner, which contained only the acceptable values be better for verifying the birthday? Wouldn’t a drop-down combo box, containing only the acceptable abbreviations for the states be better than the user selection? About Data-Entry Forms 22.Use Drop-down Combo Boxes To Validate Data Entry Selections Whenever Possible; This Will Help Reduce Data Entry Errors.

About Data-Entry Forms 23.Do not select a background that forces one to strain to read/enter text and utilize the buttons. 24.Do not use too many colors on the same form. 25.Keep colors consistent throughout the many forms of an application. 91

92 Data-Entry Form Buttons/Menus Stand-Alone Applications, Websites, etc.

About Form Buttons/Menus 1.Button names should be extremely clear (btnExit) and the button face text should be as clear as you can make it within the space available. (Exit) 93

About Form Buttons/Menus 2.Button should generally be well organized in an orderly fashion. (Remember to frame the form). There will be lots of possible options. 94

About Form Buttons/Menus 3.We have found that Next works best on the bottom right and Previous works best on the bottom left. 4.There will be times when you make more frequently used buttons larger. 95

About Form Buttons/Menus 5.We have found that menus on the right are not nearly as effective as menus on the bottom. 96

About Form Buttons/Menus 6.Power Users often don’t want big buttons. 7.It is perfectly all right to have different button layouts for users with different skills. 97

About Form Buttons/Menus 8.Include mouse-over tool tips with graphical buttons. 98

About Form Buttons/Menus 9.The Navigation Buttons & Menus on all of the forms in an application, or website, should have a common feel/style. 99

All Of These Came From The Same Project! Do These Look Compatible/Complementary & Consistent?

102 Data-Entry Form About Edit-Add-View Stand-Alone Applications, Websites, etc.

About Edit-Add-View 1.Rather than create one form/prototype for an Edit Mode, one form/prototype for an Add Mode, and one for a Normal View Mode, it is often possible to design a system to use one format for all. 103

About Edit-Add-View 2.In the Normal View Mode, the user would enter the Edit Mode by selecting Add or Edit; buttons Save & Cancel buttons are disabled! 3.Add & Edit can often use the same form! 104

About Edit-Add-View 4.The Edit Mode (when either editing an existing record, or adding a new record) should be noticeably different. I don’t recommend this color combination. 105

About Data-Entry Forms 5.Note that only buttons Save & Cancel are enabled! When editing, or adding, the only two choices available to the user should be Save or Cancel! 106

About Data-Entry Forms 6.The Edit Mode should work with a copy of the data; this way the user can Cancel without destroying the original data. 107

Not An Acceptable Primary Data-Entry Form 7. The column-tablular style might be ok format to use as a second data entry form for power users. 108

109 Data-Entry Form Navigation Stand-Alone Applications, Websites, etc.

Navigation 1.Most of your High Level subsystems should have an option for the “novice users” to scan through the data with Next and Previous buttons. 110

Not An Acceptable Primary Navigation Form Student View User Form: “User Suppose To Enter Any Info They Know – with tabs – when they hit ENTER Key Shows Users” 111 Goal: “No Manual & No Training” Great to have a Secondary Navigation Form that is Search-Oriented for Power Users!

Argument Against Next-Previous We have 10,000 Items! Therefore : “This would take forever” “Not Useful” If this is the case, we need to bundle Next & Previous with other controls & options!

Navigation Quick Links We have 10,000 Users! Make it useful. “Divide & Conquer” 2.Use Quick-Link search buttons such as “A”, “B”, “C”, … 3.Select “B” to navigate to first User whose Name starts with an “A”

Navigation Quick Links We have 10,000 Users! Make it useful. “Divide & Conquer” 4.Most Sub-Systems should include Navigation Filters to reduce data sets.

Navigation Filters? Filters might be used, to partition or subdivide the data; what type of things might we use in an elementary school library application to subdivide the Users? Teachers Librarians Students First Grade Second Grade Third Grade Fourth Grade Fifth Grade Sixth Grade First Period Second Period … Miss Wilson Mr. Smith Ms. Jones …

Navigation Filters 5.Most Sub-Systems should take advantage of navigation filters to isolate traffic. 6.Filters should also be used to isolate printed data; the same report layout, with variable titles, can be used for multiple listings.

Navigation Filter Example

Order By 7.Most Sub-Systems should take advantage of an Order By combo box to provide logical order (as opposed to physical order).

Order By Example

High-Level Navigation 8.The user should always know where they are, where they need to go, & how to get there! (Many Systems Will Need More Than A Few Tab Frames!)

High-Level Navigation 9.Although not very clever or creative, you might have a set of controls that sit on the desktop to access each of your sub-systems.

High-Level Navigation 10.You can use.NET to create an application environment with upper level menu strip controls at the top; the forms beneath may be all button related.

High-Level Navigation 11.There are a number of API’s that provide menu-strip controls; you might have an upper level menu-strip control your sub-system forms (which also have menu strip controls)

High-Level Navigation 12. Continue To Ask Yourself  Why Did The User Get Here Example : Garage Application : User Is Looking At Customer Record : They Wanted To Do A Service Order For That Customer and then provide the user with the tools to get to where they need to go efficiently & quickly! Example : The Software Engineer Should A Button On The Customer Form  Maybe Create Service Order? Forcing the user to close the User Form  Select the Service Order Sub-System Select create new order Require the user to type in Name, ID, Address, etc. for a record that the user was just looking at is not unusual, but really lame!

The Navigation Choices Must Be Obvious! Obvious is not “Right Mouse Click On The Form & Select……

126 Each Of Your Major Sub-System Stand-Alone Application Forms Must Include The Following Navigation Buttons: Next Previous Each Of Your Major Sub-System Stand-Alone Application Forms Must Include The Following Controls: Select Order By