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

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

If you can't read please download the document

description

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

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

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 dont 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 APIs 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 APIs 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 Dont 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 APIs 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 Wouldnt a combo box, or a spinner, which contained only the acceptable values be better for verifying the birthday? Wouldnt 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 dont 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 dont 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 APIs 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