Design software application modifications to meet client requirements Introduction 2 Table design 3 Defining the data structures 3 Determine the primary keys 5 Form design Form design guidelines. 8 Get practice 10 Report design 11 Queries 11 Design guidelines 12 Toolbar design 13 Navigation design 14 Summary 15 Check your progress Design software application modifications to meet client requirements 2005 6 16 1 Introduction It is crucial that when you are developing new systems you fully understand what it is that your client requires. After reviewing the needs analysis and other materials, you can commence your design. With careful design and planning you can build a solid foundation for your application, reduce development time, and produce an efficient solution for your client. This principal is the same for small or larger systems and is known as the systems development lifecycle (SDLC). Customising existing packaged software involves analysing the chosen software package and its features, and building a solution within the scope of that program. The program may be spreadsheet, database or another type of application. 2 Design software application modifications to meet client requirements 2005 Table design Planning your database design on paper is a good way to start. This allows you to focus on the main task which is to define the database structure — independent of the software you’ll later use to implement the design. Remember, the way you structure your data now will have a significant impact on the operations your database will be able to perform. Changing the database structure after implementation can require the costly redesign of the queries, forms and reports used in the application. So it’s crucial that you spend time developing and refining your design before you sit down at the computer. Defining the data structures A database is essentially a collection of data tables, so your first task in the design process is to identify and describe those data structures. This includes defining the: tables fields primary and foreign keys relationships. 1 Identify the entities Each table in a database should represent a single, distinct subject or item of information, often referred to as an ‘entity’. You’ll need to examine the information you’ve gathered in your analysis, and identify the entities relevant to the requirements of your database. For example, in a design for a library catalogue, the entities would include the: book author publisher category, and so on. The entities that you identify at this early stage will later be mapped to separate tables in the database. Design software application modifications to meet client requirements 2005 3 2 Identify the attributes The next step is to identify the attributes of each entity that will form the fields in your table design. In the case of a library catalogue, the attributes of the entity ‘book’ might include the: book title author price date of publication, and so on. This level of information should be fairly clear from your analysis, but you’ll need to keep in mind some basic relational design principles when mapping attributes to table fields. Relational design principles Each field should contain the smallest useful piece of data, ie it shouldn’t be possible to break a field down further into smaller constituent parts. For example, a customer’s address should be split into separate fields for the street address, suburb, state and postcode. Each of these fields contains one single item of information that cannot be usefully divided further. Each field in a table should represent a specific attribute of the entity it describes. In a table about books for example, ‘author’ is an attribute of the book, but ‘author’s address’ is an attribute of the author and so belongs in a separate author table. Each field should store only one type of data. This may be text, numeric, date, etc. No field in a table should duplicate the purpose of another field in the table. For example, if you find a table structure that contains repeating fields, such as ‘Product1’, ‘Product2’ and so on, it’s a sure sign that you need to rethink your design. In most cases, this problem can be resolved by removing the repeating fields from the current table, and placing them in a new table designed to store just that type of information. You just need to create a relationship between the current table and the new table. Do not create fields to store the results of calculations. For example, while it may be tempting to include a field that stores a calculated value such as an invoice total, it’s actually more efficient to perform the calculation ‘on the fly’ in a query or calculated form control, at the time you need it. By doing so, you also ensure that your calculations are based on the most up-to-date data. Designing a database according to these principles usually results in breaking the information down into more tables than you may have initially 4 Design software application modifications to meet client requirements 2005 expected. You can then use relationships and queries to re-integrate information from the separate tables. This process can initially appear to make the database design more complicated, but from a relational perspective, it ensures the design is efficient, logical and easy to understand. Creating the optimal table structures for a relational database is called normalisation. Determine the primary keys When you have established the data structures, your next task is to determine the primary keys that will be used to create relationships between the tables. Each table should have a primary key field that uniquely identifies each record. Assigning a primary key ensures that: no two records in a table contain the same value in the field defined as the primary key records are ordered (or indexed) by the entries in the primary key field data in the table can be retrieved and processed quickly. In some cases it will be obvious from the data which field is a suitable candidate for the primary key, such as a unique invoice or product number. Where this is not the case, you’ll need to add a primary key field. The process of designing a relational database can be complex and challenging. Creating the best design for a particular application requires a thorough understanding of your client’s needs, strong analytical skills and above all, patience. Remember, a good design is rarely achieved in the first pass. Be prepared to rework and refine your design several times until you get it right. Try also to avoid getting buried in the details too soon-items such as field properties are best left until a bit later. Design software application modifications to meet client requirements 2005 5 Form design As for the table design, planning your forms on paper is a good way to start. The forms or user interfaces are a very important aspect when we design our customised application. They provide the users with a way to add, view, and edit data, as well as providing ways to navigate the system. Designing user interfaces that are easy to use and understand is very important for a successful application. If you have done your initial planning and research thoroughly then designing the forms is simpler because you would have determined client requirements such as corporate colours, logos, and style guides that can be incorporated into the design. It is also a good idea to collect copies of current forms that the client uses. By doing this you are able to keep the new design similar, making it easy for the end users to understand and learn. On the other hand, a poorly designed user interface will be hard to understand and use and can lead to distraction and frustration. The look of your database is as important as its structure, because it’s the interface that affects how people work with it. Aim for a cleanly structured, consistent look with complimentary colours and few distractions, as in the sample main menu on the next page. Exactly how you design your forms will depend on which database program you’re using and the requirements of the end user. Even if you’re designing a database purely for your own use it’s still worth carefully planning and designing your forms. After all, why make life harder for yourself when a little initial effort in the design phase will make using your database easier for all time? 6 Design software application modifications to meet client requirements 2005 Figure 1: Main Menu form Investigate design features Have a look at some of the software applications, websites and games you have installed on your computer. Make a list of the features you like and dislike — such as such as colours, font styles, layout, alignment of text columns and fields etc, and whether or not the screen looks cluttered. This will help when designing your own forms. Good features _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ Design software application modifications to meet client requirements 2005 7 Poor features _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ Form design guidelines. Don’t clutter the screen. Too much information on the screen makes it difficult for the end user to find what they are looking for. Group and align objects together where possible. If there is too much on your screen, consider using a command button to open another form. Another effective method is using a tab control to align text and fields. Try to avoid making users have to scroll down the screen. Often end users won’t notice the scroll bars and tend to get frustrated because they can’t find what they are looking for. Using sub forms, tab controls and buttons to access other forms, are all great ways to avoid this. Use minimal different fonts. Decide on a style guide before you start actually creating your screens. Sit down and decide what font style, colours and sizes you will use for different parts of your application. By writing them down and referring to the style guide as you create the forms, you will save a lot of development time. Avoid using too many different font styles as it starts to look unprofessional and the document will be difficult to read as: it looks too busy the heading hierarchy becomes unclear. Choose standard fonts such as Arial, Verdana and Times New Roman, especially if your database will be used on a variety of computers. Make sure all text is of a readable size. This could be different on different systems. Consideration should be made for different screen resolutions and monitors. Keep colours simple and effective. Make sure your colour contrasts look good. For example use dark and light colours and avoid using very bright colours. Keep in mind your end users — some may have vision impairments that are affected by different colours. Look at some websites or forms in existing applications for more ideas on what colours work best together. You can also consult your client for their opinion, or your client may require you to use their company colours. 8 Design software application modifications to meet client requirements 2005 Organise fields logically. Organise fields in a logical manner ensuring the flow of data entry is not broken. If you have existing documentation or forms that your client uses, it’s a good idea to order fields in the same way. Check the tab order of the fields. During data entry, many people move from field to field using the Tab key. It’s important you ensure the tab order is consistent, so that the insertion point moves from the first field on the screen to the last without jumping about. Incorrect tab order will not only frustrate your users, but it may cause them to enter data into the wrong field. Be consistent across the entire application — create uniformity. Make sure you keep colours, fonts, positioning of logos and buttons consistent in all areas of the application. For example, don’t have the Close button in different places on each form. If you decide the Close button will be in the upper right hand corner of the screen then make sure it is the same on every form or menu. Include help — descriptive labels, help menus, tool tips and status bar messages. Most applications have built in help menus. You can use these or create your own help files. If a field is a required field in the database, add a label which stipulates that it is a required field so that it is obvious to the users. You can also use features such as tool tips and status bar messages to help the users. Consult the built in help menus to find out how to do this. Provide keyboard shortcuts. Not all end users can use a mouse, and some simply prefer not to! Make sure wherever possible in your application, you include keyboard shortcuts. In many applications, such as Microsoft Access, this can be done by using the ampersand (&) symbol before the letter you wish to use as the short cut. For example: &Close will appear on a button as Close. The user can activate the button by holding down the ALT key and C. Use data validation and default values wherever possible. Use combo boxes and lists wherever possible to reduce the risk of human error during data entry. If you had a field to show a person’s title you could create a drop down list with the values MR, MRS, MISS, MS, DR, so that the end user could simply select from the list rather than typing it in. If you have a form for entering orders you may put the current date in as the default value for a field called OrderDate. Most database applications have sophisticated ways of conducting data validation to ensure integrity of data being entered. You should plan for data validation when designing your forms. Design software application modifications to meet client requirements 2005 9 Figure 2: Using tabs to minimise clutter Get practice Each database application has different tools and features available for designing forms. It is important to practise and familiarise yourself with them. Have a look at the Research section of this Learning Pack for Internet sites and forums to help you practice with your own database application. As well as doing the practice activities in this Learning Pack, you can use the standard form created by your database and then experiment with it. Note that all of the database applications have Design View or Properties options that allow you to change the way the form appears and behaves. 10 Design software application modifications to meet client requirements 2005 Report design Most software applications allow you to print data from just about any view. In a database you can print a table or query ‘as is’ in a datasheet view. But usually when we present information we would like it to look professional. Reports do this, and they can organise the data so that it is read in a more meaningful way for the end user. Reports can also include features such as sorting data by category or summarising the information, rather than just presenting all of the data as a list in a ‘table’ format. Most businesses like to see their company logo, name and header and footers included. Reports can present information found in tables or queries in a format that looks great when printed out. Reports let you customise the display of information from the database. You can select the data you want to include and then select the report layout from a variety of design and formatting options, depending on which application you are using. You can insert pictures such as company logos, change the background colours, add headers, footers, group the information, and perform calculations on your data. Reports can contain data from just a single table, or you can join tables and queries to display a wide range of data in your report. During the design phase of your reports it is important to decide upon your layout. As with forms, decide upon a style guide and keep all forms and reports consistent. Remember you can modify the design and layout of the report by going to the Design view, or Properties, depending on the application you are using. Queries Reports can be based on one or more tables or on queries. A query is a request for specific information you present to the database, and the database displays its response to you. The whole purpose of creating a query depends on how you formulate that request. The purpose of a query is to isolate data; this is done for various reasons. For example, when a user is performing data entry such as hiring contractors for various projects, the information is typed into the database as it becomes available. Later on, if they want to get a specific list of contractors based on their job functions, they might ask the database to extract from the database Design software application modifications to meet client requirements 2005 11 a list of contractors who are painters. This is the role of queries. When building a query, your must first decide where data will come from because a query depends on existing information. This data could come from one table, one query, or a combination of various objects. It is very important in the design phase of your reports to work out exactly what information needs to be displayed in a report. Once you have done that you can start working out how to get that information through tables or queries. Design guidelines Follow the same design guidelines as for forms when designing the layout of reports. Additional guidelines for report design Minimise excessive use of blocks of colour (eg background colours). Remember that your client may not be using a colour printer and the printout still needs to look good, be clear and easy to read, and not waste ink. Determine what data is required in the report. Do you need to create queries or calculated fields? Figure 3: A well-designed report 12 Design software application modifications to meet client requirements 2005 Toolbar design Depending on which application you are using, you can make changes to the toolbars and create special customised toolbars for particular projects. Most users never make any changes to the toolbars provided. However, it’s very easy to remove toolbar buttons which you never use and replace them with buttons for commands which you do use. Also, if you develop your own macros, you might like to run these from your own personally-designed toolbar buttons. You can even develop your own toolbars — you can have several, if you like, each with a set of buttons for specific tasks. You can also decide which toolbars you want displayed at any time and can change their position on the screen. You can tailor the user environment with customised toolbars by: adding new toolbars to the taskbar adding new buttons to toolbars changing the order in which the buttons appear removing buttons and toolbars that you don’t need. By creating customised toolbars you can remove unnecessary features and add additional features to enhance the application. This has several benefits such as: being easier for the end user to learn end users are less likely to access features of the program that they do not require (and that the developer would rather they didn’t!) better navigation through the system. You will need to understand the way the end users use software programs to best design toolbars to suit their needs. Remember that not all end users can use a mouse, and some simply prefer not to. Make sure wherever possible in your application you include keyboard shortcuts. In many applications such as Microsoft Office applications, this can be done by using the ampersand (&) symbol before the letter you wish to use as the short cut. Below is an example of a customised toolbar containing only buttons and commands necessary to using the customised application. Figure 4: Customised toolbar Design software application modifications to meet client requirements 2005 13 Navigation design Planning your application’s navigation system on paper is a good way to start. Deciding on how your client will navigate the new customised application is a very important part of the initial design phase. The main menu is usually the first screen that your end users see when they open the application. It should provide a simple, easy to understand navigation structure to provide access to different features and parts of the application. Once style guidelines for the customisation are established, develop the required menus. When designing a menu system, keep in mind that these forms will be used for a long period of time by people with varying computer skills. A badly designed form will increase the difficulty for new users learning how to navigate the application. Designing a user interface involves many issues and should follow our established design guidelines (refer to Form Design or the Summary section for guidelines). Specifically for navigation/interface design, make sure: It is simple. All fields are clearly identified. All information is organised into clearly defined sections — forms, report menus. Each section is clearly identified. Automatic actions (such as command buttons) are clearly identified Use only a limited range of colours. Use only a limited range of fonts. Unnecessary features are removed. Particular attention needs to be taken when designing user interface components of an application. Consistent use of all features throughout the whole application is essential. Rather than having a cluttered main menu, if you have many buttons, consider using several menus, such as the example in Figure 1 which shows a main menu with a button leading to a separate reports menu. 14 Design software application modifications to meet client requirements 2005 Summary Using the following guidelines will help to ensure your database design is optimal. Your design should: accommodate all expected data avoid redundant (duplicate) storage of data items provide efficient access to data support the maintenance of data integrity (the accuracy and reliability of data) be clean, consistent, and easy to understand. Using the following guidelines will help to ensure your form and report design is effective: Don’t clutter the screen. Try to avoid making users have to scroll down the screen. Use minimal different fonts. Keep colours simple and effective. Organise fields logically. Check the tab order of the fields. Be consistent across the entire application — create uniformity. Include help — descriptive labels, help menus, tool tips and status bar messages. Provide keyboard shortcuts. Use data validation and default values wherever possible. As well, for reports: Minimise excessive use of blocks of colour (eg background colours). Remember that your client may not be using a colour printer and the printout still needs to look good, be clear and easy to read, and not waste ink. Determine what data is required in the report. Do you need to create queries or calculated fields? Using the following guidelines will help to ensure your toolbar design is effective: Design software application modifications to meet client requirements 2005 15 Remove unnecessary features Include links to all essential application areas Remember to use keyboard shortcuts where possible Organise tasks logically Using the following guidelines will help to ensure your navigation/interface design is effective: Navigation and interface is simple. All fields are clearly identified. All information is organised into clearly defined sections — forms, report menus. Each section is clearly identified. Automatic actions (such as command buttons) are clearly identified Use only a limited range of colours. Use only a limited range of fonts. Unnecessary features are removed. Check your progress Now you should try and do the Practice activities in this topic. If you’ve already tried them, have another go and see if you can improve your responses. When you feel ready, try the ‘Check your understanding’ activity in the Preview section of this topic. This will help you decide if you’re ready for assessment. 16 Design software application modifications to meet client requirements 2005