18 Software. design. Learning outcomes. Credit value: 10
|
|
|
- Sarah Hall
- 10 years ago
- Views:
Transcription
1 Credit value: Software design While not every IT practitioner is a programmer, an understanding of the process by which programs are written is important. Developing software is a complex process and so the design phase is very important. This unit looks at what is involved in the development process and the tools and techniques which can be used to create a design. For anyone considering a career in software development, understanding software design is clearly important. A job as a software designer is a senior position requiring many years of experience, but even a trainee programmer is expected to understand the principles of software design. The software designer must first of all understand what the program needs to do and then develop a design which will guide the programmers who will write the software. The creation of the design is therefore very important the design must be correct, otherwise it is unlikely that the software that will be produced from it will do what is required. Learning outcomes After completing this unit you should: 1. know the features of programming languages 2. know the software development process 3. be able to design software development solutions. 1
2 BTEC s own resources Assessment and grading criteria This table shows you what you must do in order to achieve a pass, merit or distinction grade, and where you can find activities in this book to help you. To achieve a pass grade the evidence must show that you are able to: P1 describe the characteristics of programming paradigms See Assessment activity 18.1 on page 18 P2 identify the factors influencing choice of programming language See Assessment activity 18.1 on page 18 P3 describe the stages of the software development life cycle See Assessment activity 18.2 on page 24 P4 outline a specification for a business requirement See Assessment activity 18.2 on page 24 P5 design a software solution to a business requirement using appropriate design tools See Assessment activity 18.3 on page 36 P6 review the design against the original requirement See Assessment activity 18.3 on page 36 To achieve a merit grade the evidence must show that, in addition to the pass criteria, you are able to: M1 describe the features of programming languages; including how sequence, selection and iteration are used See Assessment activity 18.1 on page 18 M2 select and justify the programming language to be used See Assessment activity 18.2 on page 24 M3 describe the data types and software structures used in a design solution See Assessment activity 18.3 on page 36 To achieve a distinction grade the evidence must show that, in addition to the pass and merit criteria, you are able to: D1 develop algorithms to represent a design solution See Assessment activity 18.3 on page 36 D2 evaluate the design tools used See Assessment activity 18.3 on page 36 2
3 Unit 18 Software design How you will be assessed This unit is internally assessed. You will provide a portfolio of evidence to show that you have achieved the learning outcomes. Your portfolio of evidence can be supplied in many formats including electronically as well as paper-based. The grading grid in the specification for this unit lists what you must do to obtain pass, merit and distinction grades. The Assessment activities in this unit will guide you through tasks that will help you to be successful in this unit. Your tutor will tell you exactly what form your assessments will take, but you could be asked to produce: presentations written documentation: o supporting documents o specification o design documentation an evaluation of your work. Amir Khalid, a 17-year-old Level 3 learner I studied this unit last year, and now I m on the Level 3 course. I was really interested in this unit, as software development is what I want to do. To be honest, design isn t the most interesting part of software development but now I realise how important it is. I think one thing that we found quite hard was relating the fairly simple examples of programs and designs that we looked at with real commercial software. The part I found most difficult was creating the structure and dataflow diagrams. To start with, I found this very hard and needed to practise it. I discovered that the best way to produce these diagrams was to have a very good understanding of what the software is supposed to do and then to follow the whole process through, using action lists and storyboards initially. As far as the assessments were concerned, the toughest parts were justifying my choice of programming language and evaluating the design tools I used. Of course, I also found producing the design hard too! Overall I think this was the most challenging unit we did, but I found it really interesting. Over to you Do you have an interest in software development? Have you ever wondered about how computer games are designed and created, for example? What sort of attitude or personality do you think makes a good programmer? Do you know anyone who has done programming, perhaps on a higher level course or at university, or as a job? Speak to them and find out how they find writing programs (easy or difficult, fun or challenging?). 3
4 BTEC s own resources 1. Know the features of programming languages Start Warm up Programming a robot Imagine you have to write a program that controls a robot. It might be an industrial robot that paints a car in a factory or a robot the army would use to search for roadside bombs. Working in a group, think about how you would design the program to control the robot. The first thing you would need to decide is what sort of robot it is and exactly what it will do. How would you split up the design and creation of the control program between the members of your group? What techniques could you use to design the way the robot works? You don t need to define this in a lot of technical detail, just think in general terms about how you could create a design. Case study: Working as a specialist software developer I run a small software company that writes specialist software for the building trade. We have created a program which is used to help builders estimate how much a particular job will cost. Over the years we have developed and added to the program so it now includes many different modules. It is used by over 250 different building companies around the country. We wrote the original version in Visual Basic because that s the language my partner and I knew best. Also, we wanted to use Microsoft Access as the database and these two link together well. We have built up expertise in these products in the company, so it would be difficult to change the programming language we use now, although we have considered it because it does restrict our customer base to those who run Microsoft Windows. The software is always being developed and, because we have lots of customers, we have to survey them all on the features they would like to see in the next version. In that way we create a wish list of new features. It s very important to understand the building trade and what they need from the program. Once we are clear on what new features we will add in the next version, we begin the design. Over the years we ve found that, although the design stage can be difficult and not as interesting or as exciting as writing the programs and getting them working, it is very important to get the design right. If it s not right, we hit problems when we come to write the programs. 1. What influenced the company s choice of programming language? 2. What must the company do before they start work on a new version of their software? 3. Why is the design stage so important? 4
5 Unit 18 Software design What is a computer program? A computer program is a series of instructions that tells the computer s processor what to do. Programs are what make computers powerful. Unlike typewriters or fax machines, which have only one function, computers must carry out many different tasks. Programs make this possible. Computers, however, can understand only machine code instructions in the form of binary codes. Programs for the very first computers were written using these binary codes, but they are very difficult for people to understand. Because of this, programming languages (sometimes called high-level languages) were developed. Programs consist of two important parts: instructions, which tell the computer what to do data, which the instructions act on. Data is often input by the user of the program. In the Windows Calculator program, the user enters the numbers that they want to do the calculation with this is input data. The program then carries out the instructions to do the calculation and displays the result this is the output data. The data varies depending on what the user inputs, but the instructions for a given calculation stay the same. 1.1 Programming paradigms Key terms Machine code the instructions that are executed directly by the computer s CPU, sometimes called the instruction set. These instructions are in the form of binary numbers. Programming language a defined set of English-like instructions which are used to create a program. These instructions are easier for people to understand than binary codes. The instructions are converted into the binary codes that the computer understands, using a piece of software called a compiler. Paradigm an approach, framework or way of doing something. Computer programs can be very complex indeed. Over the years a number of different paradigms have been developed to deal with this complexity and encourage the development of efficient and error-free programs. Procedural programming In this approach the programmer writes the instructions as a series of logical steps to produce the desired result. Different functions within the program are provided by different procedures (or subroutines). In the Windows Calculator, different procedures might be provided to do addition, subtraction, multiplication, etc. Procedures can be run from the main program to carry out their specified function or from within other procedures. One of the benefits of this approach is that where tasks need to be carried out several times within the program, the instructions do not need to be duplicated. Instead, the procedure runs as many times as required. This provides a better way to organise or structure a large, complex program. With the procedural approach the data in the program is shared between the procedures. Object-oriented Object-oriented (or OO) methods were developed as a response to the increasing complexity of software, which was difficult to handle with the procedural approach. 5
6 BTEC s own resources Object With the OO approach to programming, the things a procedure does (its functions) are put together with the data it needs in something called an object. The idea of an object is based on the real things the program is dealing with, for example: Key terms Attributes the name given to the data used within a class. Methods the functions of a class, i.e. the things a class can do. Encapsulation the technical term for the way in which the attributes (data) and the methods (functions) of a class are packaged together within a class, and the data of a class can only be accessed by the methods. LearnerName LearnerMarks setname showmarks updatemarks Learner Figure 18.1: Class diagram for the Learner Class. in a library system, the objects might include books, members and loans in a mail order system, the objects might include customers, orders and products. Objects in a software system can represent physical things like customers or books, or conceptual things like an order or a loan. Class A class is a template for an object and defines the data (or attributes in OO terminology) that each object of that class will have. For example, think of a library system which has a class for books. The data that the book class would define includes things such as the book title, author, ISBN number, etc. An object of the book class is created using the class template and has actual values for the data that the class defines, such as Harry Potter and the Goblet of Fire as the title and J. K. Rowling as the author. Methods Classes also have functions (things the class can do), which in OO terminology are called methods. A customer class might have a change of address method. A book class in a library system might have a go on loan method. Remember that a class is like a template for objects and defines the data and methods (functions) of the class. All the objects of that class have the same attributes and methods. Classes can be defined by a class diagram. This lists the name of the class, its attributes and methods. Figure 18.1 shows the class diagram for a learner class in a system for recording learners assignment marks. This simple class has just two attributes (name and marks) and three methods (set name, show marks and update marks). An OO system is made up of objects (created using the class as a template). These objects work together by one object requesting a service from another (using the methods of that class). For example, if there is also a Tutor class, then an object of the Tutor class might request an object of the Learner class to run its showmarks method, so it could find out the marks that the learner currently has. It is important to understand that the only way in which other objects can gain access to the attributes of a class is by the methods of that class. This is one of the key differences between the procedural approach to programming (where data is shared between procedures) and the OO approach (where the data is contained within the object and is only accessible via the object s methods). This concept is known as encapsulation. 6
7 Unit 18 Software design Event driven The event driven approach to programming refers to how the program responds to user input, not to how the program is structured. Therefore, event driven programs can be written using a procedural or an objectorientated approach. Event driven programming is used with the Windows user interface. Windows programs respond to user input for example, when you click a button or choose a menu option a particular function is carried out. Clicking buttons or choosing menu options are all considered events. Event driven programming therefore involves writing event procedures which respond to the actions the user takes. Key term Events inputs to the program that control what the program does. Events are often user inputs, such as mouse clicks or menu selections. Activity: Events in a Windows program What different events can a Windows program respond to? As well as left-clicking on a button or menu on the screen, there are several other events that popular Windows applications respond to. List as many as you can. 1.2 Program features To help you understand the features that programs have, we ll look at some simple examples of programs written using the Visual Basic programming language. This is not intended to be a tutorial on writing programs in Visual Basic the programs are shown to help you understand the features and structures of programs. As mentioned on page 5, a program consists of instructions and data. The data in a program is usually input by the user. It is then stored in the program in a memory area that the programmer creates called a variable. Variables have three properties: A name, which is given by the programmer. Variable names should give some clue as to what the variable is used for, but they cannot contain spaces. A data type, also defined by the programmer. This defines the sort of data the variable can hold. Typically a programming language will have data types for text and various numerical formats. A value, which is held in the variable. This may often be set as a result of user input. Let s look at a simple program, as shown in Figure 18.2 on page 8. Here we are using a console application, which does away with the visual side of the language and uses simple text input and output via a console window. Using a console application helps us to concentrate on Key terms Variable a storage area in a program for data. This data might come from user input or from a calculation done within the program. Console application a text-based application that runs in a command prompt window. Did you know? You can download Microsoft Visual Basic 2010 Express for free by going to Hotlinks and clicking on this unit. 7
8 BTEC s own resources These instructions define 3 variables, called input1, input2 and result all with a data type of integer (whole numbers). These instructions output messages to the user and then assign the input the user makes to the variables input1 and input2. This instruction adds together the values in Input1 and Input2 and assigns the result to the variable called result. These output instructions display the result variable and wait for the user to press any key before the console window closes. Figure 18.2: A simple Visual Basic console application. the key features of programming, rather than having to worry about the complexity that using a Windows application adds. This program takes two numbers input by the user, adds them together and outputs the result. Figure 18.3 shows the program running. In this simple example, the instructions in the program are followed in the order they appear in the program. However, programs can also select to carry out one set of instructions instead of another. The choice (selection) of which set of instructions to follow is usually made by the user. There are other sections of code which may be repeated a certain number of times or until some condition is met. These different situations give us three ways that the flow of program instructions can be arranged: Sequence: Instructions are followed one after the other, as in the example above. Selection: A choice is made as to which set of instructions to follow. 8
9 Unit 18 Software design Figure 18.3: The adding program running. Iteration: A set of instructions is repeated in what is sometimes called a loop. We will demonstrate selection and iteration by making some modifications to the simple program we looked at earlier. Sequence When the program needs to do things like calculations, accepting user input or outputting data, the program instructions are followed in sequence from top to bottom. But in many situations, a program needs to do different things, perhaps because of the input the user has made. In these situations selection is used. Selection In most programming languages selection is done using an if instruction. The instruction compares one value or variable with another and if the outcome is true, the instructions following the if statement are executed. If the outcome of the comparison is false, the following instructions are skipped and the program continues at the end of the if instructions. Several different comparisons can be done to take into account various different possibilities. Figure 18.4 (on page 10) shows a modified version of the program we looked at in Figure 18.2 (on page 8). The new instructions are in red. 9
10 BTEC s own resources Sub Main() Dim input1 As Integer Dim input2 As Integer Dim result As Integer Dim choice As String Console.WriteLine("Enter a number") input1 = Console.ReadLine() Console.WriteLine("Enter another number") input2 = Console.ReadLine() Console.WriteLine("Enter A to add or M to multiply") choice = Console.ReadLine() If choice = "A" Then result = input1 + input2 ElseIf choice = "M" Then result = input1 * input2 Else Console.WriteLine("Invalid choice") End If Console.WriteLine("The result is " & result) Console.WriteLine("Press any key to continue") Console.ReadLine() End Sub This new variable is named choice and has a data type of String (text). The user is requested to enter an A or an M and their input is placed in the choice variable. An if instruction checks the choice variable and carries out add or multiply based on what the user enters. If the user enters something other than an A or an M this part of the if instruction is executed. Figure 18.4: Program demonstrating selection. result = input1 + input2 Figure 18.5: This instruction is only executed if the choice variable contains an A. This type of instruction is sometimes called if... then... else. Notice how the instructions are indented following the if instruction. This shows which instruction is executed depending on the result of the if comparison. For example, the instruction in figure 18.5 is only executed if the choice variable contains an A. Where there are a number of different values to consider in a selection instruction block, the if instruction can be rather long and complex. A slightly simpler alternative is the Case instruction. Look at the modified version of the previous program shown in Figure This allows the Console.WriteLine("Enter A to add, M to multiply, ") Console.WriteLine("S to subtract or D to divide") choice = Console.ReadLine() Select choice Case "A" result = input1 + input2 Case "M" result = input1 * input2 Case "S" result = input1 - input2 Case "D" result = input1 / input2 End Select Console.WriteLine("The result is " & result) Figure 18.6: Program demonstrating the use of the Case instruction. 10
11 Unit 18 Software design user to carry out all four arithmetic operations (add, subtract, multiply and divide). Note that not all the program code has been included. The case instruction starts with the instruction Select, followed by the name of the variable which contains the value to be inspected. Then for each possible value you have a Case instruction followed by the value you are expecting. This is followed by the instructions which will be run if the variable contains that value. Iteration Iteration is when instructions are repeated. Let s look at a version of our program that includes a loop. As it stands the program will just run once, then finish. By putting the main part of the instructions in an iteration loop, it can run until the user ends it. Sub Main() Dim input1 As Integer Dim input2 As Integer Dim result As Integer Dim choice As String Dim EndIt As String = "Y" Do While EndIt = "Y" Console.WriteLine("Enter a number") input1 = Console.ReadLine() Console.WriteLine("Enter another number") input2 = Console.ReadLine() Console.WriteLine("Enter A to add or M to multiply") choice = Console.ReadLine() If choice = "A" Then result = input1 + input2 ElseIf choice = "M" Then result = input1 * input2 Else Console.WriteLine("Invalid choice") End If Console.WriteLine("The result is " & result) Console.WriteLine("Press Y to continue or any key to exit") EndIt = Console.ReadLine() Loop End sub Another new string variable, set to Y so the loop runs at least once. This is the start of the loop. It will keep looping while the EndIt variable is set to Y. At the end of the calculation the user inputs a Y, which is placed in the EndIt variable to keep the program looping. Any other input will end the loop. End of the loop. Figure 18.7: Program demonstrating a loop. In this example, a Do while loop continues while the EndIt variable contains a Y. If the user enters any other value, the loop (and therefore the whole program) ends. 11
12 BTEC s own resources Activity: Loops Do while loops are not the only types of loop there are also for loops and other types. Find out how these loops are coded and what they can be used for. Logical operators The logical operators AND and OR are used to create more complex comparisons in if, Do while and other selection and loop instructions. With these operators you can create comparisons which look at more than one value. For example, imagine you are writing a fantasy game program. You have decided that if a dragon character in the game has collected two swords and a golden key, they are awarded 200 extra bonus points. The instructions you write might look something like those shown in Figure If Swords = 2 AND Gkey = 1 Then BonusP = BonusP End if Figure 18.8: Instruction using the logical operator AND. Swords, Gkey and BonusP are all variables with a data type of integer (whole number). One problem with this code is if the dragon has already collected three swords when it gets the golden key. With this if instruction the bonus points would not be awarded. As well as using equals signs in comparisons, you can also use the symbols for greater than and less than. In this case we need to modify the code so if swords is equal to or greater than 2 then the bonus points are awarded, as shown in Figure If Swords> = 2 AND Gkey = 1 Then BonusP = BonusP End if Figure 18.9: Instruction using the symbol for greater than or equal to. The list of comparison operators are shown below in Table Table 18.1: Comparison operators. Operator Meaning Operator Meaning > greater than <= less than or equal to < less than!= not equal to (also <> depending on the language) = equal to >= greater than or equal to 12
13 Unit 18 Software design Using the AND logical operator means both values that you compare must be true, but there may be situations where you want to make comparisons where either one OR the other can be true. In these situations we use the OR logical operator. For example, using the same imaginary game, if a dragon has 400 bonus points or more OR they have two golden keys then they get an extra life. The if instruction would look something like that shown in Figure If BonusP >= 400 OR Gkey = 2 Then Lives = Lives + 1 End if Figure 18.10: Instruction using the logical operator OR. Local and global variables The simple programs we have looked at so far only contain a single procedure, so all the variables we have created are local to that procedure in other words, the variables are only used in that procedure. In more complex programs with lots of different procedures, some variables may be created which are global and can be used in all the procedures of the system. Global variables are generally created at the start of the instructions for the whole system, whereas local variables are created at the start of the individual procedure where they can be used, like the variables we have seen so far. It is good programming practice to avoid global variables where possible and stick to local variables, although sometimes the use of global variables may be unavoidable. The reason for this is that global variables can cause program errors if they are used improperly. For example, two different procedures may use the same global variable in a slightly different way or one procedure may modify a global variable that another procedure is using, and this may cause an unexpected result or even cause a program to crash. Assignment statements We have already seen a number of assignment statements. For example, let s start with the following instruction: Key term Assignment statements these carry out assignment operations, which consist of taking the value on the right side of the assignment operator (=) and storing it in the variable on the left. BonusP = 100 This can also be done as part of an arithmetic operation, such as: result = input1 + input2 You can also assign an initial value to a variable when you create it, such as: Dim EndIt As String = "Y" 13
14 BTEC s own resources Input and output statements In the example programs we ve looked at so far, input and output with a console (text-based) application can be done with instructions, such as ReadLine and WriteLine. Input and output with Windows programs are a little different. These programs normally use a form in Visual Basic Express this is created by using a forms editor which allows you to add controls, such as labels, text boxes and buttons to your form. Figure shows the Visual Basic forms editor. Figure 18.11: The Visual Basic forms editor. Windows applications like this are event driven, so input can be made via the mouse by clicking on controls such as buttons and check boxes. Text input can be made using text boxes, and text output can be made using a text box or label. 1.3 Types of languages Key term Visual languages languages designed to create Windows programs. There are a number of different general types of programming languages best known are visual, script and markup. Visual languages Because the Windows user interface is so widely adopted, many of the programming languages utilised today are known as visual languages. Visual languages come with many of the standard Windows features (such as dialog boxes, menus, buttons and scroll bars) already built into them, so the programmer does not have to create these from scratch. It obviously saves a lot of program development time if all these visual elements are already made for you. Visual languages normally support event driven procedures. As we have seen, the forms editor in 14
15 Unit 18 Software design Microsoft Visual Basic allows you to create buttons and other controls that the user can interact with. Event procedures are written to deal with these user interactions. Script languages Two common examples of script languages are macros and web page scripts. A macro is a small program that is written or recorded to carry out some task in another application. The best known examples of macros are the ones you can create in Microsoft Office applications, such as Word or Excel, to carry out a complex or repetitive task within a document or spreadsheet. You can learn more about macros in Unit 9: Customising software (page 165). Web page scripts are small programs, embedded within web pages, which are run by an Internet browser, such as Microsoft Internet Explorer and carry out a task related to the web page. Typical tasks a web page script might perform are validating a user s input into a web page form or opening a new browser window or pop-up window. One of the most common scripting languages is JavaScript, which is related to the Java programming language. Markup languages HTML is the best known example of a markup language it is used to format web pages. In many ways HTML is not really a true programming language, as it does not support many of the features associated with programs, such as selection structures and loops. HTML is really just a way of formatting text by using tags. These tags indicate how the text following the tag should be formatted when it is displayed by the web browser. HTML allows you to include graphic images, links and many other elements. You can learn more about HTML in Unit 17: Website development (pages ). Other types of languages It may seem that all the programs you use are Windows programs and that there isn t really any other type of program, but this is not the case. Windows programs are the ones that users interact with directly, but in the background there are many other programs running. A device driver is a good example of this. Every new piece of hardware, such as a printer or digital camera, needs to have a device driver program written for it which interfaces between the hardware and the Windows operating system. Device drivers are programs that run in the background. Because they don t interface directly with the user they would not be written using a visual or event driven programming language. Device drivers are often written using languages such as C. Key terms Script language a type of programming language which, rather than being standalone programs that run on their own, runs within some other application to carry out a specific task. Device driver a program that provides an interface between a piece of hardware (such as a graphics card or network interface) and the operating system. 15
16 BTEC s own resources 1.4 Choice of language Key terms Integrated development environment (IDE) a piece of software which lets you write code, test it and build it into an application or game. Bugs errors or mistakes in the program which prevent it from working properly. There are a very large number of different programming languages available. Most programs are written using a piece of software called an IDE (integrated development environment). This includes all the things a programmer needs to write the program, such as: an editor this often provides additional tools to help write the instructions, such as pop-up help a compiler this converts the instructions into machine code that the computer can understand a Windows forms editor to create Windows forms and add all the required controls (buttons, text boxes, check boxes, etc.) a debugger to help identify bugs in the program. Visual Basic Express edition is an example of a sophisticated IDE which includes all these tools. Activity: Programming languages There are many different programming languages. Find examples on the Internet of code written in the most popular ones, such as C++, Java or Pascal. Can you spot any similarities between them? With such a wide range of languages, the choice of which one to use to write a program may seem impossibly complex. In reality the choice is often quite simple and will depend on one or more of the following factors. Organisational policy An organisation that develops a lot of computer software will often have a policy to use a particular language. This may be for reasons such as consistency or to maintain compatibility with other software they have developed. It will also enable a company to develop expertise in that particular language. Suitability in terms of available features and tools Certain languages are better suited, in terms of the features and tools they have available, to particular tasks or hardware and software environments. For example, as discussed earlier, visual programming languages, such as Microsoft Visual Basic, may be best suited to a project to develop a Windows application. Visual Basic also has very good links to other Microsoft products, such as the Access database. So if you are developing a program which needs to interface to an Access database, then this may be a good choice. 16
17 Unit 18 Software design On the other hand, if you are developing a program that needs to be able to run on a wide range of different hardware and operating systems, then Visual Basic would be a poor choice as it only runs on PC hardware with the Microsoft Windows operating system. Java might be a much better choice as it is available for a wide range of hardware and operating systems. Availability of trained staff It takes a considerable amount of time to develop a good level of expertise in a particular programming language. This means that if a company already has staff who are experts in a particular programming language, then that language will be the obvious choice for any new project. Also, if a company is setting out on a new software development project it may need to employ new programmers. It will be easier for the company to find programmers with knowledge of the most popular languages rather than the lesser known ones, even if the less well-known languages are better suited to the project for other reasons. Reliability Some programming languages are specifically designed for applications where reliability is very important. These are sometimes called mission critical applications. They include things like aircraft or nuclear power plant control systems where failure would be catastrophic. Ada is an example of a language developed for these types of application. It was originally developed for the United States Department of Defense for use on military projects. Development and maintenance costs Some languages and software development approaches have a reputation for being able to create software systems in a shorter timescale than other approaches. This means they can provide systems at a lower cost. For example, rapid application development (RAD) is one approach which uses prototyping to speed up the development process. Prototypes are simple versions of the program under development with limited functionality. The prototypes are used to gain user feedback and develop improved versions. Equally, some languages have a reputation for being easier to maintain. Maintenance can include updates, bug fixes and additions to the original program. A company may, therefore, choose a particular language or development approach, because they hope to achieve lower development and maintenance costs. Expandability Some software systems may only be used by a small number of people, while others many need to be used in a large organisation by thousands of employees simultaneously. For example, a banking application that controls ATMs ( hole in the wall cash machines) will need to handle many thousands of simultaneous transactions from machines all around 17
18 BTEC s own resources the country (and world!). The choice of programming language and database systems to support such a huge system will need to consider how well they can cope with a large and growing number of users. Some programming and database systems are designed with such expandability in mind (sometimes called scalability), while others are better suited to single user or small multi-user applications. Activity: Popular programming languages What are the most popular programming languages at the moment? Take a look at programming job adverts on the Internet and see which languages are in the most demand. Please go to Hotlinks and click on this unit to access a good website to start you off on this activity. PLTS Assessment activity 18.1 P1 P2 M1 Investigating different programming approaches will provide evidence that you are an independent enquirer. Functional skills Preparing a presentation will provide evidence for your functional ICT skills find and select information and develop, present and communicate information. It will also provide evidence for your functional English skills in writing. You are working for a mobile phone company which is considering starting their first software development project. One of the managers has asked you to investigate the different approaches to programming (paradigms) and factors that might influence their choice of programming language. 1. Create a presentation for the manager describing the approaches to programming (paradigms) and identifying the factors influencing the choice of language. P1 P2 2. Add to the presentation you prepared for task 1 by describing the features of a programming language of your choice, including how sequence, selection and iteration are used. M1 Grading tip When completing question 2, you will need to describe the features of programming languages, including how sequence, selection and iteration are used. Check the unit content for learning outcome 1 and make sure you cover the features listed there. Just checking 1. What features does HTML not have that can be found in most programming languages? 2. What instruction is used in most programming languages to implement (write instructions to perform) selection? 3. Explain the difference between local and global variables. 4. What three attributes or properties does a variable have? 18
19 Unit 18 Software design 2. Know the software development process 2.1 Software development life cycle Like any large commercial project, there is a series of steps that must be completed when developing a software system. This is sometimes called the software development life cycle. It is represented by the diagram in Figure Gather user requirements Maintain system Create specification Test programs Create design Write programs Figure 18.12: The software development life cycle. We refer to this process as a life cycle because, even when the software is completed and has entered the maintenance phase, new requirements and developments are likely to be suggested, resulting in work starting on a new version of the software. In this way the development cycle begins and repeats again and again. Let s now look at each stage in detail. Gather user requirements Most commercial programs are written to solve some kind of problem or to take advantage of an opportunity. Clearly, you need to understand the nature of the problem or opportunity before you can write a program that will achieve what is required. This involves working with 19
20 BTEC s own resources Key term Systems analyst someone who operates at the design stage of systems development. They work closely with the people who will use the system being developed to identify exactly what it needs to do. the people who understand the problem and who will be using the new system. Since these people will probably not be computer experts, the discussions at this stage focus on the business aspects of the problem or opportunity. The work to gather user requirements is normally carried out by a systems analyst. As well as being an expert in systems development, a systems analyst is usually also an expert in the business area that the system is being developed for. For example, if the software is being developed for use in a bank, the systems analyst will need to be an expert in banking and finance systems. The gather user requirements stage is when information is collected about what the exact requirements of the system are. The information may be collected by a number of different methods including interviews, observation of current working practices and reviewing documentation. Case study: Requirements gathering for a learner grade tracking system A college needs some software to keep track of learners grades. The grade tracking records are currently kept using a paper-based system. At the requirements gathering stage, the system analyst speaks to the tutor who looks after the grade tracking records. He takes copies of the documents currently used and discusses with the tutor how the current system works so he is sure he fully understands it. He also discusses with the tutor the limitations of the current system and what improvements he hopes the new computerised system will provide. 1. What improvements do you think an electronic system is likely to provide over a paper-based one? 2. Is there anyone else you think the systems analyst should speak to, other than the tutor, about the new system? Key terms Specification a document describing what the system that will be developed will do in non-technical terms. Scope all the functions and facilities that are to be included in the system. Create specification At the end of the requirements investigation stage, the systems analyst will produce a specification document. This is an important document as it is often the basis of a contract between the company developing the software and the company who is paying for the software to be developed. There are a number of things which need to be described in the specification, and these are listed below. What is the scope of the system? To decide on the scope you need to ask the question What will the system do, and what won t it do? This may be an obvious question, but it is an important one. Computers are very powerful machines and, if you had endless time and money, there are many facilities you could include in the software you are developing. You may need to decide what the most important features are (referring back to the aims of the system) and develop the first version of the software with just those features, putting the rest on a wish list for future versions. 20
21 Unit 18 Software design Inputs and outputs The data that will be input to the system and the outputs that it will provide are clearly important. There are a number of possible sources of input data; they may come from a human user or from another computer system, for example. Outputs may also be in a number of different formats, such as on the computer screen, in a printed report or to another computer system. Case study: Identifying the scope of the learner grade tracking system The scope of the learner grade tracking system is quite straightforward. It will record the grades for learners on the CTEC Diploma course, which consists of three units only. Each unit can be graded as: Incomplete Pass Merit Distinction. The system should also calculate an overall grade for each learner. It should allow a tutor to input learner names and view, add and update their grades. All input and output should be via a Windows on-screen form. Possible future versions of the program might include the following additional features: dealing with multiple class groups dealing with other qualifications with different numbers of units printing class lists of grades. 1. Is writing a program the only solution to this problem? Are there other ways that this grade recording system could be implemented? What advantages and disadvantages would other approaches have? 2. Sketch out the main menu form for this system. Processing This aspect of the specification describes how the input data will be transformed, for example calculations may be carried out on the input data. In a system that calculates employees monthly salaries, the input data will probably be the number of hours worked by each employee plus any additional information, such as overtime hours or days off sick. This data will be used to calculate each employee s pay by multiplying it by their hourly rate and then subtracting things like tax and National Insurance contributions. User interface The specification will give details of how the user will interface with the system. Most commonly this will be by a standard Windows interface using a monitor, mouse and keyboard, but there may be other methods. Many applications these days use the Internet and so their user interface may be via a web browser, such as Microsoft Internet Explorer or Mozilla Firefox. Specialist applications may use a text-based interaction (like the console applications we looked at on pages 7 8). Touch screens are particularly well suited to applications where a keyboard is not convenient, such as mobile applications or in retail (for example, point of sale terminals in shops). 21
22 BTEC s own resources Constraints Most software is developed to a budget which will constrain (limit) the amount of time that can be spent developing the software. Estimating how long it will take to develop a software system and, therefore, how much it will cost is one of the most difficult aspects of software development. There are many examples of systems which have taken far too long and cost much more than originally estimated. The budget available may restrict the features that can be included in the system, and may mean some features have to be pushed onto the wish list for the next version. Other possible constraints include the hardware platform and software system that must be adopted. The new system may well have to be used on existing hardware and software, including a particular operating system. Case study: Learner grade tracking system processing, user interface and constraints Processing: The processing requirements of the learner grade tracking system are fairly simple. The system s main purpose is the storing and retrieval of learner grades, so there is not much processing involved. However, the calculation of the final grade does require some processing and this should be defined in the specification. The rules for deciding on the final grade are: for a pass a learner gets one point for a merit a learner gets two points for a distinction a learner gets three points. There are three units, so if a learner has less than three points they have failed. If they get three to five points they get a pass. If they get six to eight points they get a merit. Nine points achieves a distinction. User interface: The user interface of the system will be a standard Windows interface. Constraints: The system needs to work with standard PC hardware and the Windows 7 operating system. 1. Is any other information required to fully understand how the grade tracking system will work? 2. Create several imaginary sets of learner unit grades and work out what overall grade they achieve. Create design The design stage builds on the requirement and the specification. The requirement and the specification documents describe what the software will do, whereas the design considers how the software is going to work. The first step may be to break the problem down into components, particularly for large, complex software. Once the general structure of the solution has been decided (what the components are and how they interact), each component can be designed in detail. There are many different tools available to software designers: action lists, storyboards, structure diagrams, data flow diagrams, algorithms, and so on. These are discussed on pages of this unit. 22
23 Unit 18 Software design Write programs (coding) The coding (or implementation) stage is when the program is written. Programmers follow the design and refer back to the requirements to help them. If implementation highlights any problems with the requirements or design, then these documents should be updated appropriately. Test programs All but the simplest of programs contains bugs. In some ways, writing software is like writing a book try as you might to avoid spelling mistakes, poor grammar and factual errors, some inevitably slip through the net. Software developers use testing (just as publishers use editors and proofreaders) to minimise the severity and number of errors as much as possible. If the requirements have been written carefully, then many of the tests will be taken directly from these. For a large software project, each component is tested individually these tests are called unit tests. They may be run manually or written as extra software that can be run automatically. Further tests, called integration tests, check that the components work properly together. Documentation Each stage of the software development process results in the creation of one or more documents. The requirements investigation stage results in a formal requirements specification. During the design stage, various charts and documents are produced to record the design decisions that have been made. Even the implementation and testing stages need documentation in the form of program comments and test plans and logs. Often, additional time must be put aside to finalise the internal documentation (for example, to make sure that the design documents are up to date) and to prepare customer documentation, such as a user manual or help pages built into the software. Maintain system Software maintenance is rather like car maintenance. After a car has been manufactured, it still requires regular tune-ups to keep it performing efficiently. It may even be taken to a mechanic for an upgrade, such as fitting satellite navigation. In the same way, software bugs that are discovered after release will need to be fixed, and users may request that developers add new features to the software. One measure of the success of a software product is the length of time for which it remains in use. Some software in use today has gone through many versions over the course of years, or even decades. Because of this, over the lifetime of a software product, the maintenance stage is likely to last the longest and take the most effort. If the earlier stages have been rushed or performed carelessly (for example, if the design documentation is poor) then the maintenance Did you know? Software developers often find writing the code to be the most enjoyable stage of a project. When planning for, and working on, your own software development projects, make sure you allocate a generous proportion of your time to the requirements and design stages (which will save you time overall) and to the testing and documentation stages (which will improve the quality of your software product). Key term Integration the process of bringing together software components, perhaps written by different development teams, into a single piece of software. 23
24 BTEC s own resources stage will be heavy going, difficult, inefficient and boring. If care has been taken, though, the maintenance stage can be as interesting and productive as the implementation stage. PLTS Assessment activity 18.2 P3 P4 M2 By creating the outline specification and selecting and justifying the programming language, you will demonstrate that you are a creative thinker. Functional skills Creating the outline specification will provide evidence for your functional English skills in writing. 1. Following the work you have done for Assessment activity 18.1, your manager has asked you to add further slides to your presentation describing the stages of the software development life cycle. P3 2. Your manager has also asked you to produce an outline specification for the software they are thinking of developing. The program will be used in their shops so customers can see how much different mobile phone tariffs would cost them each month. You only need to produce a specification for the basic version of the system, which will allow customers to enter the number of minutes they think they will use each month at off-peak and peak times. They can choose three different tariffs: low usage 10 monthly fee, peak calls 5p a minute, off peak calls 1p a minute high usage 15 monthly fee, peak calls 3p a minute, off peak calls 1p a minute business usage 25 monthly fee, peak calls 2p a minute, off peak calls 1p a minute. Produce an outline specification for this mobile phone cost-estimator program. P4 3. Select a programming language to be used for the mobile phone cost-estimator program and provide written justification for your choice. M2 Grading tips Check the unit content for learning outcome 2 to make sure you have covered each stage of the software development life cycle. When justifying the choice of programming language you need to give reasons why you chose that language. You could also include the reasons why you didn t choose other languages. Just checking 1. List the main steps of the software development life cycle. 2. Explain the term scope of the system. 3. List the typical constraints that a development project might have. 4. What sorts of user interface may a program make use of? 24
25 Unit 18 Software design 3. Be able to design software development solutions Once the specification for the system has been completed and it has been agreed by the users, and whoever is paying for the system to be developed, the next stage is the detailed design. 3.1 Design The system design provides more detailed information about the internal working of the software. The work at this stage involves taking what has already been decided at the investigation stage and adding more detail to it. There are a number of things that need to be designed and planned for example, how the program will look to the user, what data the program will need to store and how that data will be processed. As you already know, programs take some kind of data as input, perform some kind of processing on that data (perhaps a calculation) and produce some kind of output. At the design stage, software developers must add more detail based on their research about what is to be input, how it will be processed and what will be output. Where the problem is large and complex, the developers also need to consider how it can be split into manageable sections. The key to this is to choose sections that can be as self-contained as possible. When dividing a system into different sections (called modules or procedures), these modules will need to communicate with each other to some extent (probably by passing values, often called parameters). However, this should be kept to a minimum, with each module having a clearly defined purpose and as little interaction with other modules as possible. When several programmers are working on the same software development project, dividing the system up into modules is necessary so that each programmer can work on an individual module. Dividing a program into modules also makes the testing easier, because developers can test each module as it is completed rather than having to wait until the whole program is complete. 3.2 Design tools Key terms Module or procedure a program that is part of a larger system. It normally carries out some specific function or task. Parameter data that is passed to a module or procedure. For example, if you create a procedure which calculates the area of a circle, it will need to be sent the radius of the circle as a parameter. Numerous different methods have been developed to help model the complexity that is often involved in a software system. Many of these involve creating diagrams to show the flow of data or the structure of the system (such as how it is split into different modules). Many of the methods also rely on a technique which is sometimes called functional decomposition. This involves creating a general overview model or diagram of the system which is then refined by creating more and more detailed diagrams. 25
26 BTEC s own resources Did you know? At this stage you don t need to worry too much about detail, although the procedures you define should be as self-contained as possible. Remember that you can always refine your design as it develops and it s quite acceptable to make many revisions to it as you work through. Later in the design process you may realise that what you had in mind at this early stage won t work well. That s fine all you need to do is return to this stage and update your design. Key terms Narrative a written description of how the system will interact with the user. Action list a list of user actions and inputs and the program s responses. Structure diagrams Structure diagrams are graphical tools which are used to split a system down into more detailed procedures or modules. As with many design tools, you can start with an overall structure diagram which shows how the whole system is split into different procedures and then draw a more detailed structure diagram for each procedure. With a really complex system, you may even draw further levels of structure diagrams, each one describing a smaller part of the system in more detail. A structure diagram is drawn with a box showing the main program or procedure name at the top and then each procedure or section presented in boxes below. Arrows show inputs or outputs for each box. A structure diagram for the learner grade tracking system is shown in Figure By looking at the specification, we can see what the main functions of the software should be. These main functions form the main procedures. Learner name Input new learner details Learner Grade Tracking System Learner name Grades View grades Grades Learner name Figure 18.13: Structure diagram for the learner grade tracking system. Narratives and action lists Update grades Another technique often used at the early stage in developing a design for a software system is to define the way that the system will interact with the user. The user requirements should have already defined what inputs and outputs the system will have in the form of a narrative. This is really just a written description of what the inputs and outputs are. But narratives are a rather long-winded way of describing the interaction the program will have with the user and the sequence of events. A simple action list is a more convenient way of designing the way the user will interact with the system. An example of an action list for the Update Grades procedure of the learner grade system is: 1. open Update Grades screen 2. enter learner name 3. if not found display an error message 4. if found display learner details and current mark 26
27 Unit 18 Software design 5. choose to update marks or exit 6. if updating marks, enter new mark 7. confirm update 8. exit. Storyboards From this simple list we can go on to create a more detailed design for the interaction using a storyboard. A storyboard is simply a series of drawings (which you can draw by hand or electronically) which demonstrate the stages of the interaction between the program and the user. They are like a cartoon story of the Windows forms the user will work through to complete a task. An example of a set of storyboards for the Update Grades procedure is shown in Figure Did you know? Storyboards were first used in the animated film industry and were developed by the Walt Disney studios. Figure 18.14: Storyboards for the Update Grades procedure. Storyboards are particularly important when developing software that has a strong visual element, such as a game. Data flow diagrams Another graphical technique you can use is data flow diagrams (DFDs). This is a series of diagrams drawn at different levels each level adds further detail to the system. Data flow diagrams, as the name suggests, are designed to help you figure out how data will flow between the various procedures within the system as such, they are better suited to a system which works in conjunction with a database. DFDs would not be of much use for designing a system such as a game, but would be more useful with a system like the learner grade tracking system we have been considering. The first step in creating a data flow diagram is to create the Level 0 diagram, which simply shows the system as a box. Oval shapes are drawn outside the box representing external people or systems (known as external entities) that have inputs or outputs to or from the system. Arrows are drawn and labelled indicating what those inputs or outputs are. Key term Entities real world things, such as customers, products or books, that need to be represented in the system that you are designing. 27
28 BTEC s own resources Figure shows an example Level 0 DFD for the Update Grades procedure. The tutor entity is shown twice only to make the diagram easier to read the same tutor would complete all the interactions involved in updating a learner s grade. Tutor Learner name Input new mark Tutor Current mark Learner class Confirm update Figure 18.15: Level 0 DFD for the Update Grades procedure. Having completed the Level 0 DFD, the next step is to create the Level 1 DFD. This keeps the same external entities as the Level 0 DFD and the same inputs and output, but includes details of the processes and data stores that exist within the system. As a general rule you will need a process to deal with each input and output you identified in the Level 0 DFD. Processes are drawn as a numbered box with the description of the process inside it. Where the system or procedure needs to store data (to be read or written to by the processes) it is shown as an open-ended rectangle, which is also given a number, starting with a letter D. Figure shows the Level 1 DFD for the Update Grades procedure. Tutor Learner name Input new grade Tutor Confirm update Confirm update Find learner Find learner Learner name New grade Grade D1 Learner name, grade Figure 18.16: Level 1 DFD for the Update Grades procedure. 28
29 Unit 18 Software design There are some rules for drawing the Level 1 DFD: 1. you must have the same external entities and data flows in the Level 1 diagram as in the Level 0 diagram 2. in a Level 1 diagram only processes can read or write to data stores 3. each input or output must be handled by a process in the Level 1 diagram. Like many of the design techniques we have looked at, creating DFDs is not easy and needs practice. It is also difficult to figure out the processing steps involved unless you have a good understanding of how programs are written. Entity relationship models Entity relationship models (ERMs) show the relationships between data items. When an analyst has used the DFDs to identify the processes and data stores in the system, the ERMs can be produced. There is no strict order in producing these diagrams; often the design evolves over some time, with DFDs, ERMs and other diagrams being refined through several versions. ERMs are used to model the relationships that exist between different entities in the system. Entities have attributes these are the elements that define a particular entity. Some simple examples are shown in Table An occurrence of the entity Customer might be: Name: John Smith Office Supplies Address: 10 Main Street, Watford Credit limit: 1,500 Primary and foreign keys One (or more) of the attributes of a particular entity is normally defined as the primary key attribute. To guarantee uniqueness, numbers are normally used for primary key attributes. So, for example, on a database recording details of the entity Learner, the attribute Learner number would be the primary key. The system would need to ensure that each learner received a unique number. Most systems have a number of entities within them, and entities often have relationships between them. For example, the entity Customers and the entity Orders are related, because every order a company receives comes from a customer. The relationship between two entities can normally be described by a verb. In this example, the verb is place, because customers place orders see Figure Table 18.2: Examples of entities and attributes. Entity Customer Product Book Key terms Possible attributes Name Address Credit limit Description Type Price Title Publisher Price Occurrence one complete set of values for each attribute for a particular entity. It is sometimes called a record. Primary key the attribute used to uniquely identify a particular occurrence of an entity. Customers Place Orders Figure 18.17: The ERM showing the relationship Customers place orders. 29
30 BTEC s own resources Key terms Foreign key an attribute that is a primary key in a different entity. Foreign keys are used to create links between entities. One-to-many relationship where one occurrence in an entity can be related to many occurrences in another entity. How could you know which orders were placed by a particular customer? One of the attributes of the entity Customer will be the customer number. This unique number identifies each customer and so is the primary key of that entity. When that customer places an order, an occurrence of the order s entity is created. We need to be able to tell which customer placed the order, so the customer number is inserted into that occurrence of the order s entity. This is known as a foreign key (foreign because the key value belongs to another entity); an example is shown in Figure Entity: CUSTOMER Entity: ORDERS Attributes: Customer number Primary key Name Address Credit limit Etc. Attributes: Order number Primary key Customer number Foreign key Date Total value Etc. Figure 18.18: Primary and foreign keys. Note that the fields used to create the relationship between the two entities must have the same data type in both entities. This is one of the reasons why you must choose data types with care. One-to-many relationships Each customer will have at least one order that they placed, and probably many more. So, for one customer there will be many occurrences of the order s entity. This type of relationship is called a one-to-many relationship. In an ERM, this is shown by a fork at the many end of the line that joins the two entities, as shown in Figure Customers Orders Figure 18.19: A one-to-many relationship. One-to-one relationships One-to-many relationships are the most common type of relationship between entities, but they are not the only type. Imagine a company that has a system to store data about its employees. The entity Employee will have attributes, such as name, address and salary, and the primary key will probably be Employee number. Some employees who work for the company are provided with a company car. That gives us another entity, Company car, which has attributes such as registration number, make, model, etc. There is a relationship between 30
31 Unit 18 Software design the two entities Employee and Company car, which can be described by the verb uses because an employee uses a company car. As each employee is assigned only one company car at a time, this is not a one-tomany relationship, but a one-to-one relationship. The ERM for this type of relationship is shown in Figure Key terms One-to-one relationship where one occurrence in an entity is related to only one occurrence in a different entity. Salesperson Figure 18.20: A one-to-one relationship. Uses Company car Structured English or pseudo code a method of representing programming code using English language rather than the strict syntax of a programming language. DFDs and ERMs are techniques used most often when designing software that works with a database. When designing programs which don t use a database, such as a game, then DFDs and ERMs would not be used. Activity: ERMs Create an ERM design for a doctors surgery appointments system. The surgery has several doctors and, of course, lots of patients. Algorithms An algorithm is a mathematical expression which defines how a complex calculation is done. As part of the design for a program, algorithms may be defined using techniques like structured English or pseudo code. Both these methods are a type of half-way house between writing a description of the calculation or processing and the actual program instructions. Rather than having to worry about the exact syntax (rules) of the programming language instructions, these methods allow you to concentrate on the workings of the algorithm. Structured English and pseudo code don t really have any rules as such; you just write the calculation in a way that resembles program code. But if you don t have much experience of writing program code, this is quite hard. Let s look at an example. The specification for the learner grade tracking system includes an explanation of how the overall grade is calculated. Written in pseudo code it might look like Figure This looks a bit like the code that will eventually be written, but it does not follow all the rules of if instructions in Visual Basic. 3.3 Data types If points < 3 then Fail If points >3 and <6 then Pass If points >6 and <9 then Merit If points = 9 then Distinction Figure 18.21: Pseudo code for the learner grade tracking system. We ve already seen a number of data types used for the variables in the example programs we ve looked at. Choosing the correct data type for 31
32 BTEC s own resources a variable is important because if you choose an unsuitable data type your program may not be able to manipulate the data in the variable in the way it needs to. For example, you cannot do calculations with variables that have a text data type. It s also very important that you do not allow your program to assign a text value to a variable with a numerical data type, as this will cause the program to crash. Various numerical data types are provided to store integers (whole numbers) and numbers with a decimal part of various sizes. Again, it is important that your program should not place a numerical value in a variable which cannot store a number of that size, otherwise your program will crash. The actual data types you have available will depend on the program language you use. The data types available in Visual Basic Express are listed in Table Table 18.3: Data types in Visual Basic Express. Type Used for Range of values Boolean Values that can be true or false True or false Byte Whole numbers 0 to 255 Integer Whole numbers 32,768 to +32,767 Long Very large whole numbers Approximately plus or minus 2 billion Currency Decimal numbers with 2 digits after the decimal Single Floating point numbers Up to 7 significant digits Double Large floating point numbers Up to 14 significant digits Date Variant String Date and time Any type of data Any type of text 3.4 Software structures Functions, procedures, classes and objects As mentioned on page 25, one of the benefits of breaking a large and complex system into different procedures is that different programmers can then work on the different procedures. However, a team of programmers working on the same system needs to follow the same rules and procedures to avoid problems. They must be aware of the structure of the system that is, the way it is divided into procedures and how the procedures interact. They must also follow certain rules and guidelines about how the code is written. 32
33 Unit 18 Software design Clearly the functions and procedures or classes and objects (if the object-orientated approach is used) must be well defined to ensure they can work together, even though they are being written by different people. The way the data in the system is used must also be clear to everyone. This point applies in particular to global variables which are used by more than one procedure. Abstraction of data In a complex software system, the abstraction of data can help deal with the complexity. Abstraction of data works well in large projects with many different programmers working on the system, each writing their own procedures. For example, programmer A creates a procedure which programmer B needs to use. All programmer B needs to know about is the functions of that procedure; she does not need to know anything about the internal workings of that procedure. If at some stage of the development project, programmer A needs to modify or rewrite his procedure, he can do that and, as long as he keeps the same functions, this won t have any impact on programmer B s use of that procedure. This is a concept related to object-orientated programming, where data and functions are encapsulated together in an object and global variables are not used. There are a number of other considerations when working on a large and complex project with many programmers. Pre-defined code Many different software systems share similar requirements and it may be possible for some functions to use procedures or code from previous projects. Using pre-defined code can save a lot of time as the procedures have already been written and tested. Readability The people running complex software projects will often set standards which the programmers must follow. These standards will include things like adding comments to the programming code they write. Comments Comments are ignored by the computer but make it much easier for other people to read the code. This is important on a large project, as other people may need to work on the program. In particular, during the maintenance phase, the person who carries out bug fixes or modifications will usually not be the programmer who originally wrote the code. Even on small software development projects, adding comments to the program instructions is regarded as good practice. Figure (on page 34) shows an example of a program with comments added. Key terms Abstraction of data when the way a procedure deals with data is hidden inside the procedure, but the interface with other procedures remains the same. This is useful in situations where a number of different procedures are using the same data. Pre-defined code programming code which has already been written and can be re-used in another software project. 33
34 BTEC s own resources Figure 18.22: Program with comments added. Using appropriate names for variables Using appropriate names for variables is another example of good practice. Variables can be given names, such as A or B or Data1, but this kind of name gives no clue as to the purpose of the variable. It s a much better idea to use names which describe what the variable is used for, such as LearnerName or Unit1Grade (note that variable names cannot contain spaces). Some programmers recommend prefixing the variable name with a code which indicates its data type. So a text variable called LrnName (shortened version of LearnerName) might be named TxtLrnName, while an integer variable called Points might be named IntPoints. This can help prevent the mistake of assigning an incorrect type of data to a variable, such as a text value to a numeric data type variable. Indentation A final example of good practice, which improves readability of code, is indenting loop or selection blocks of code, which makes it easier to see where they start and finish. In fact Visual Basic does this for you. Quality of code It takes a long time and a lot of practice to become a proficient programmer there are many pitfalls in writing programs that you really only discover with experience. Some attributes of a well-written program are listed below. Reliable and robust You might imagine users will exploit the program in the way it was intended, but sometimes they may misuse it. For example, users may make a text input where a numeric one is expected. A well-written, robust program will be able to cope with such a user error and display 34
35 Unit 18 Software design an error message rather than crashing. The best way to ensure a program is as robust as possible is by thoroughly testing it to ensure it works properly and can cope with being used incorrectly. Usable The best programs are easy to use and are intuitive. Ease of use is a subject of its own (sometimes called HCI human computer interface), but there are some simple things you can do when designing the user interface to make a program accessible to users. The following features all make it easier for the user to figure out how your program is to be used: clearly labelled controls (buttons, text boxes, etc.) logically arranged controls (i.e. arranged in the order they are likely to be used) controls grouped by function. Portable This is the ability of a program to run on different hardware or software platforms. This may be important for some systems. As mentioned earlier, some languages such as Java support many different types of hardware. Maintainable Every commercial software product needs to be maintained with updates, bug fixes and new features. There are a number of things that can be done to make software easier to maintain. These include: good, detailed technical documentation describing the design and implementation of the software well-written programs see pages 34 and 35 for discussion of several good practices, such as adding comments, using meaningful variable names and indenting loop and selection instructions. 3.5 Review Before the work on actually writing the program starts, it s wise to review the design produced and compare it to the specification to make sure it really matches what is required. Also, once the software is complete, you should review it against the requirements to see if it matches the original design. In a commercial software development project, the organisation that is paying for the development will often want to check that the completed software meets the requirements defined in the specification, using what is often called acceptance testing. The final payment for the development work will often not be made until the system passes its acceptance tests. Key term Intuitive when describing a person, intuitive refers to someone who can work out how to do something instinctively, without being told. An intuitive user interface is easy to use because the user can easily see how to achieve the desired effect. Key term Acceptance testing a defined set of tests which a completed software system must pass before it will be accepted by the customer. The tests are often defined early in the project development process and may be contractual (i.e. payment may depend on the software passing the acceptance tests). 35
36 BTEC s own resources PLTS By designing a software solution for a business requirement, you will show that you are an effective participator. By evaluating your design you will show that you are a reflective learner. Functional skills Developing an algorithm for calculating the different tariffs could provide evidence of your functional Maths skills (identify the situation or problem and the mathematical methods needed to tackle it). Assessment activity Following on from the work you did in Assessment activity 18.2, create a design for the mobile phone cost-estimator program. Describe the data types and software structures that will be used in the system. P5 M3 2. Develop algorithms to represent the processing needed to calculate the total month costs for any given tariff and number of off-peak and peak minutes. D1 3. Review the design you have produced against the original requirement. Evaluate the tools you have used to produce the design. P6 D2 Grading tips P5 P6 M3 D1 D2 To review your design against the original requirement, you will need to compare the design with the specification you produced for P4 in Assessment activity You need to consider how well your design matches the requirements. For example: o is there anything your design leaves out? o did you find that there are things missing from your requirements that you needed to know in order to produce the design? To help you evaluate the tools you used to produce the design (for example, action lists, structure diagrams, DFDs), you might find it helpful to make some notes when you use the tools. These could include observations of what you found difficult or didn t understand and what you found easy to do. You can then develop these notes into your review of the tools you used to create the design. Just checking 1. Explain the difference between a Level 0 and Level 1 data flow diagram. 2. What data type would you use for a variable which will store numbers that have a decimal part, such as 23.5? 3. List two ways you can make your program code more readable. 4. List two ways you can make a program more intuitive. 36
37 WorkSpace Louise Ashton Unit 18 Software design Junior Systems Analyst I m currently working on a project to provide an online enquiry system for a local council. I work for a software company which has the contract to provide the system for the council. I ve worked for the same company since I left university. I spent the first three years as a programmer before I was offered this post as a junior analyst. This is a big challenge for me as this is my first project as a systems analyst. Typical day At the moment we re having lots of meetings with our clients at the council. We re hoping to agree the details of the user interface for the system in the next week or two. Initially we presented the interface details to them using action lists to outline the process involved, and now we have to create a more detailed set of storyboards. I work in a small team of three people. I m the junior member of the team and sometimes it is hard to keep up with the others, but they are very supportive. We work to tight deadlines and at the moment we re behind schedule, so this has meant quite a few late nights in the office. Once the interface details are agreed we ll start work on the detailed design for the modules of the system. I will be allocated one of the smaller modules to work on and one of the more senior analysts will work closely with me, checking that I ve got it right. We ll also have lots of team meetings to make sure all our different modules will work together properly. Best things about the job I enjoy working with other people, so the team working is enjoyable. It s also interesting to get to know our clients and learn about their work. I like the challenge of the job. It s quite scary too, because I know if I get things wrong the whole project could be in trouble. On the other hand, the sense of achievement you get when things work out and the software works as it should and the client is happy with it, is really great. Think about it! 1. What skills other than those covered in this unit do you think you will require to work as a system designer or analyst? 2. Did you find this unit a challenge? Which parts were most difficult? How can you develop your knowledge and skills in those areas? 37
38 BTEC s own resources Just checking 1. What is the key difference between object-orientated and procedural programming? 2. What are the three different ways the flow of program instructions can be arranged? 3. List the factors that can influence the choice of programming language. 4. What is the purpose of a structure chart? 5. How can programming code be made easier to read? 6. What is a variable used for? When creating variables, what do you need to decide? 7. What are storyboards and how are they used? 8. When designing a software system which includes a database, what design tool are you most likely to use to model data relationships? 9. Software design often uses a technique called functional decomposition. What does this involve? 10. What sorts of tasks are completed during the maintenance phase of the software development life cycle? Assignment tips Learning how to use the different design tools such as structure charts, DFDs and ERMs is quite hard. Here are some tips: Make sure you understand the application that you are drawing the diagrams for. If you don t understand what is involved you won t be able to draw the diagrams. Start with very simple applications, then work up to more complex ones. Design the user interface with action lists and storyboards, then move on to tools like DFDs. You don t have to use every design tool. For example, for very simple programs you might not need a structure chart. ERMs are only required for programs that work with a database. Working in groups and discussing your ideas for the design usually makes it easier to arrive at a conclusion. Don t expect to draw the diagrams in one go. The design should evolve. You may need to redraft your diagrams and other design methods a number of times before you arrive at a final design. 38
Programming in Access VBA
PART I Programming in Access VBA In this part, you will learn all about how Visual Basic for Applications (VBA) works for Access 2010. A number of new VBA features have been incorporated into the 2010
GCE APPLIED ICT A2 COURSEWORK TIPS
GCE APPLIED ICT A2 COURSEWORK TIPS COURSEWORK TIPS A2 GCE APPLIED ICT If you are studying for the six-unit GCE Single Award or the twelve-unit Double Award, then you may study some of the following coursework
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System
Making the Right Choice
Tools & Automation Making the Right Choice The features you need in a GUI test automation tool by Elisabeth Hendrickson QUICK LOOK Factors to consider in choosing a GUI testing tool Treating GUI test automation
InfoPath 2010 Essentials. Corporate Training Materials
InfoPath 2010 Essentials Corporate Training Materials TABLE OF CONTENTS Preface...1 What is Courseware?... 1 How Do I Customize My Course?... 1 Materials Required... 3 Maximizing Your Training Power...
Content Author's Reference and Cookbook
Sitecore CMS 6.2 Content Author's Reference and Cookbook Rev. 091019 Sitecore CMS 6.2 Content Author's Reference and Cookbook A Conceptual Overview and Practical Guide to Using Sitecore Table of Contents
MEAP Edition Manning Early Access Program Hello! ios Development version 14
MEAP Edition Manning Early Access Program Hello! ios Development version 14 Copyright 2013 Manning Publications For more information on this and other Manning titles go to www.manning.com brief contents
Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION
539752 ch01.qxd 9/9/03 11:38 PM Page 5 SESSION 1 Introduction to Microsoft Access and Programming Session Checklist Understanding what programming is Using the Visual Basic language Programming for the
Chapter 13: Program Development and Programming Languages
15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning
Chapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
NJCU WEBSITE TRAINING MANUAL
NJCU WEBSITE TRAINING MANUAL Submit Support Requests to: http://web.njcu.edu/its/websupport/ (Login with your GothicNet Username and Password.) Table of Contents NJCU WEBSITE TRAINING: Content Contributors...
Project Planning With IT
Unit 17: Project Planning With IT Unit code: QCF Level 3: Credit value: 10 Guided learning hours: 60 Aim and purpose Y/601/7321 BTEC National The aim of this unit is to ensure learners understand the processes
Kids College Computer Game Programming Exploring Small Basic and Procedural Programming
Kids College Computer Game Programming Exploring Small Basic and Procedural Programming According to Microsoft, Small Basic is a programming language developed by Microsoft, focused at making programming
27 Spreadsheet. modelling. Learning outcomes. Credit value: 10
Credit value: 10 27 Spreadsheet modelling The spreadsheet and the word processor were the business applications that started the personal computer revolution, and they remain the most popular and useful
A Real Time, Object Oriented Fieldbus Management System
A Real Time, Object Oriented Fieldbus Management System Mr. Ole Cramer Nielsen Managing Director PROCES-DATA Supervisor International P-NET User Organisation Navervej 8 8600 Silkeborg Denmark [email protected]
Software Design and Development
Unit 6: Software Design and Development Unit code: QCF Level 3: Credit value: 10 Guided learning hours: 60 Aim and purpose L/601/6585 BTEC Nationals To enable learners to understand the principles of software
Chapter 14: Links. Types of Links. 1 Chapter 14: Links
1 Unlike a word processor, the pages that you create for a website do not really have any order. You can create as many pages as you like, in any order that you like. The way your website is arranged and
13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES
LESSON 13 Managing Devices OBJECTIVES After completing this lesson, you will be able to: 1. Open System Properties. 2. Use Device Manager. 3. Understand hardware profiles. 4. Set performance options. Estimated
Microsoft Office Access 2007 Training
Mississippi College presents: Microsoft Office Access 2007 Training Course contents Overview: Fast, easy, simple Lesson 1: A new beginning Lesson 2: OK, back to work Lesson 3: Save your files in the format
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World
Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify
Software Development. Topic 1 The Software Development Process
Software Development Topic 1 The Software Development Process 1 The Software Development Process Analysis Design Implementation Testing Documentation Evaluation Maintenance 2 Analysis Stage An Iterative
So you want to create an Email a Friend action
So you want to create an Email a Friend action This help file will take you through all the steps on how to create a simple and effective email a friend action. It doesn t cover the advanced features;
OCR LEVEL 3 CAMBRIDGE TECHNICAL
Cambridge TECHNICALS OCR LEVEL 3 CAMBRIDGE TECHNICAL CERTIFICATE/DIPLOMA IN IT EXPLORING COMPUTER APPLICATIONS M/505/5403 LEVEL 3 UNIT 36 GUIDED LEARNING HOURS: 60 UNIT CREDIT VALUE: 10 EXPLORING COMPUTER
A system is a set of integrated components interacting with each other to serve a common purpose.
SYSTEM DEVELOPMENT AND THE WATERFALL MODEL What is a System? (Ch. 18) A system is a set of integrated components interacting with each other to serve a common purpose. A computer-based system is a system
Mobile Game and App Development the Easy Way
Mobile Game and App Development the Easy Way Developed and maintained by Pocketeers Limited (http://www.pocketeers.co.uk). For support please visit http://www.appeasymobile.com This document is protected
How To Understand Programming Languages And Programming Languages
Objectives Differentiate between machine and and assembly languages Describe Describe various various ways ways to to develop develop Web Web pages pages including including HTML, HTML, scripting scripting
EKT150 Introduction to Computer Programming. Wk1-Introduction to Computer and Computer Program
EKT150 Introduction to Computer Programming Wk1-Introduction to Computer and Computer Program A Brief Look At Computer Computer is a device that receives input, stores and processes data, and provides
Introduction to Software Paradigms & Procedural Programming Paradigm
Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,
Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage
Outline 1 Computer Architecture hardware components programming environments 2 Getting Started with Python installing Python executing Python code 3 Number Systems decimal and binary notations running
MICROSOFT ACCESS 2003 TUTORIAL
MICROSOFT ACCESS 2003 TUTORIAL M I C R O S O F T A C C E S S 2 0 0 3 Microsoft Access is powerful software designed for PC. It allows you to create and manage databases. A database is an organized body
by Jonathan Kohl and Paul Rogers 40 BETTER SOFTWARE APRIL 2005 www.stickyminds.com
Test automation of Web applications can be done more effectively by accessing the plumbing within the user interface. Here is a detailed walk-through of Watir, a tool many are using to check the pipes.
PureEdge Viewer Training Guide
Table of Contents Introduction PureEdge e-forms 3 Course Objectives 3 PureEdge Viewer Overview What is a PureEdge e-form? 4 The PureEdge Viewer 5 What You See in the Viewer 6 The PureEdge Toolbar 7 Toolbar
Software: Systems and Application Software
Software: Systems and Application Software Computer Software Operating System Popular Operating Systems Language Translators Utility Programs Applications Programs Types of Application Software Personal
Managing Projects. With. MinuteMan Project Management Software
Managing Projects With MinuteMan Project Management Software Copyright 2011 by MinuteMan Systems Introduction This is a brief introduction to the use of Project Management Software to help you organize
Catalog Creator by On-site Custom Software
Catalog Creator by On-site Custom Software Thank you for purchasing or evaluating this software. If you are only evaluating Catalog Creator, the Free Trial you downloaded is fully-functional and all the
Programming LEGO NXT Robots using NXC
Programming LEGO NXT Robots using NXC This text programming language derived from C language is bended together with IDE BricxCC on standard firmware LEGO Mindstorms. This can be very convenient for those,
Excel & Visual Basic for Applications (VBA)
Excel & Visual Basic for Applications (VBA) The VBA Programming Environment Recording Macros Working with the Visual Basic Editor (VBE) 1 Why get involved with this programming business? If you can't program,
WHITEPAPER. Managing Design Changes in Enterprise SBM Installations
WHITEPAPER Managing Design Changes in Enterprise SBM Installations By Tom Clement Serena Software, Inc. October 2013 Summary This document explains how to organize your SBM maintenance and development
VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0
VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 UX Software - 2009 TABLE OF CONTENTS INTRODUCTION... ii What is this book about?... iii How to use this book... iii Time to start...
HOUR 3 Creating Our First ASP.NET Web Page
HOUR 3 Creating Our First ASP.NET Web Page In the last two hours, we ve spent quite a bit of time talking in very highlevel terms about ASP.NET Web pages and the ASP.NET programming model. We ve looked
Search help. More on Office.com: images templates
Page 1 of 14 Access 2010 Home > Access 2010 Help and How-to > Getting started Search help More on Office.com: images templates Access 2010: database tasks Here are some basic database tasks that you can
Generating lesson plans with. Adobe Acrobat
Generating lesson plans with Adobe Acrobat Introduction Being a teacher requires so many non-teaching administrative tasks that sometimes just teaching gets lost in the paper shuffle. You can automate
Using Karel with Eclipse
Mehran Sahami Handout #6 CS 106A September 23, 2015 Using Karel with Eclipse Based on a handout by Eric Roberts Once you have downloaded a copy of Eclipse as described in Handout #5, your next task is
Testing, What is it Good For? Absolutely Everything!
Testing, What is it Good For? Absolutely Everything! An overview of software testing and why it s an essential step in building a good product Beth Schechner Elementool The content of this ebook is provided
#include <Gamer.h> Gamer gamer; void setup() { gamer.begin(); } void loop() {
#include Gamer gamer; void setup() { gamer.begin(); void loop() { Gamer Keywords Inputs Board Pin Out Library Instead of trying to find out which input is plugged into which pin, you can use
by Geoff Blake TenTonOnline.com
by Geoff Blake TenTonOnline.com TenTonOnline.com 1 Hey there! Thanks a lot for checking out this WordPress Guide I ve put together. I ve been using and teaching WordPress for a long, long time and use
Finding and Opening Documents
In this chapter Learn how to get around in the Open File dialog box. See how to navigate through drives and folders and display the files in other folders. Learn how to search for a file when you can t
One of the fundamental kinds of Web sites that SharePoint 2010 allows
Chapter 1 Getting to Know Your Team Site In This Chapter Requesting a new team site and opening it in the browser Participating in a team site Changing your team site s home page One of the fundamental
The Computing Curriculum at Coston Primary
Years Year 1 Year 2 1 and 2 Autumn We are learning about programming and computational thinking and in We are learning about programming and computational thinking and in Year 1 Food and farming Year 2
Staying Organized with the Outlook Journal
CHAPTER Staying Organized with the Outlook Journal In this chapter Using Outlook s Journal 362 Working with the Journal Folder 364 Setting Up Automatic Email Journaling 367 Using Journal s Other Tracking
PloneSurvey User Guide (draft 3)
- 1 - PloneSurvey User Guide (draft 3) This short document will hopefully contain enough information to allow people to begin creating simple surveys using the new Plone online survey tool. Caveat PloneSurvey
Week 2 Practical Objects and Turtles
Week 2 Practical Objects and Turtles Aims and Objectives Your aim in this practical is: to practise the creation and use of objects in Java By the end of this practical you should be able to: create objects
Government buyer user manual System Requirements and Administration Version 2.0
Queensland Government etendering website Government buyer user manual System Requirements and Administration Version 2.0 July 2011 etender Help Desk phone 07 3836 0141 Table of contents 1 Introduction...
Visual Logic Instructions and Assignments
Visual Logic Instructions and Assignments Visual Logic can be installed from the CD that accompanies our textbook. It is a nifty tool for creating program flowcharts, but that is only half of the story.
Tips for clear websites
Plain English Campaign: Tips for clear websites Copyright Plain English Campaign Tips for clear websites This is only a basic guide. If you have any suggestions, corrections or improvements, please contact
DELTA COMMUNITY ONLINE AND MOBILE BANKING CONVERSION USER GUIDE
DELTA COMMUNITY ONLINE AND MOBILE BANKING CONVERSION USER GUIDE Learn more at DeltaCommunityCU.com/Upgrade TABLE OF CONTENTS Customizable Username & Password...4 New Look & Feel...5 Account Display & Setup...6
Operating Systems. and Windows
Operating Systems and Windows What is an Operating System? The most important program that runs on your computer. It manages all other programs on the machine. Every PC has to have one to run other applications
EasyC. Programming Tips
EasyC Programming Tips PART 1: EASYC PROGRAMMING ENVIRONMENT The EasyC package is an integrated development environment for creating C Programs and loading them to run on the Vex Control System. Its Opening
Planning user documentation - a guide for software project managers
Planning user documentation - a guide for software project managers By Carol Johnston. Introduction A Guide to the Project Management Body of Knowledge (PMBOK Guide) 2000 Edition is the main sourcebook
Word 2010: Mail Merge to Email with Attachments
Word 2010: Mail Merge to Email with Attachments Table of Contents TO SEE THE SECTION FOR MACROS, YOU MUST TURN ON THE DEVELOPER TAB:... 2 SET REFERENCE IN VISUAL BASIC:... 2 CREATE THE MACRO TO USE WITHIN
Microsoft Access Basics
Microsoft Access Basics 2006 ipic Development Group, LLC Authored by James D Ballotti Microsoft, Access, Excel, Word, and Office are registered trademarks of the Microsoft Corporation Version 1 - Revision
Introduction to Microsoft Access 2003
Introduction to Microsoft Access 2003 Zhi Liu School of Information Fall/2006 Introduction and Objectives Microsoft Access 2003 is a powerful, yet easy to learn, relational database application for Microsoft
Understanding the IEC61131-3 Programming Languages
profile Drive & Control Technical Article Understanding the IEC61131-3 Programming Languages It was about 120 years ago when Mark Twain used the phrase more than one way to skin a cat. In the world of
ECDL. European Computer Driving Licence. Project Planning Project Management Software BCS ITQ Level 2. Syllabus Version 1.0
ECDL European Computer Driving Licence Project Planning Project Management Software BCS ITQ Level 2 Using Microsoft Project 2013 Syllabus Version 1.0 This training, which has been approved by BCS, The
Dynamics CRM for Outlook Basics
Dynamics CRM for Outlook Basics Microsoft Dynamics CRM April, 2015 Contents Welcome to the CRM for Outlook Basics guide... 1 Meet CRM for Outlook.... 2 A new, but comfortably familiar face................................................................
Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.
C H A P T E R 4 Software: Systems and Application Software Software and Hardware Software can represent 75% or more of the total cost of an IS. Less costly hdwr. More complex sftwr. Expensive developers
Critical Path Analysis & PERT Charts (taken from www.business.com.
Critical Path Analysis & PERT Charts (taken from www.business.com. - Planning and scheduling more complex projects Critical Path Analysis and PERT are powerful tools that help you to schedule and manage
American Express @ Work Getting Started Guide: Norway
American Express @ Work Getting Started Guide: Norway American Express @ Work can help you to manage your Corporate Card Programme more efficiently online. With Standard and Customised Reports to track
Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.
Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce
Linear Motion and Assembly Technologies Pneumatics Service. Understanding the IEC61131-3 Programming Languages
Electric Drives and Controls Hydraulics Linear Motion and Assembly Technologies Pneumatics Service profile Drive & Control Understanding the IEC61131-3 Programming Languages It was about 120 years ago
How to test and debug an ASP.NET application
Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult
Every project requires communication and collaboration and usually a lot of
Collaborating on Projects with SharePoint CHAPTER 25 Every project requires communication and collaboration and usually a lot of both. With small project teams, you and your team members may interact in
System requirements 2. Overview 3. My profile 5. System settings 6. Student access 10. Setting up 11. Creating classes 11
Table of contents Login page System requirements 2 Landing page Overview 3 Adjusting My profile and System settings My profile 5 System settings 6 Student access 10 Management Setting up 11 Creating classes
Creating and Using Databases with Microsoft Access
CHAPTER A Creating and Using Databases with Microsoft Access In this chapter, you will Use Access to explore a simple database Design and create a new database Create and use forms Create and use queries
Qualtrics Survey Tool
Qualtrics Survey Tool This page left blank intentionally. Table of Contents Overview... 5 Uses for Qualtrics Surveys:... 5 Accessing Qualtrics... 5 My Surveys Tab... 5 Survey Controls... 5 Creating New
Learners will develop skills in planning and managing information to produce an interactive website.
Unit IT9: Website Design Level: 1 Unit type: IT Guided learning: 40 hours Unit in brief Learners will develop skills in planning and managing information to produce an interactive website. Unit introduction
Using The HomeVision Web Server
Using The HomeVision Web Server INTRODUCTION HomeVision version 3.0 includes a web server in the PC software. This provides several capabilities: Turns your computer into a web server that serves files
Module One: Getting Started... 6. Opening Outlook... 6. Setting Up Outlook for the First Time... 7. Understanding the Interface...
2 CONTENTS Module One: Getting Started... 6 Opening Outlook... 6 Setting Up Outlook for the First Time... 7 Understanding the Interface...12 Using Backstage View...14 Viewing Your Inbox...15 Closing Outlook...17
a) What is the major difference between a program that runs under a virtual machine vs. one that does not?
CS109 Midterm Exam, Total = 100 Points Name: Please write neatly and show as much of your work as possible for partial credit. Scan through all problems first, and attack the easiest problems first. Use
10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition
10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can
Lesson Overview. Getting Started. The Internet WWW
Lesson Overview Getting Started Learning Web Design: Chapter 1 and Chapter 2 What is the Internet? History of the Internet Anatomy of a Web Page What is the Web Made Of? Careers in Web Development Web-Related
Microsoft Migrating to Access 2010 from Access 2003
In This Guide Microsoft Access 2010 looks very different, so we created this guide to help you minimize the learning curve. Read on to learn key parts of the new interface, discover free Access 2010 training,
Introduction to MS WINDOWS XP
Introduction to MS WINDOWS XP Mouse Desktop Windows Applications File handling Introduction to MS Windows XP 2 Table of Contents What is Windows XP?... 3 Windows within Windows... 3 The Desktop... 3 The
14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë
14.1 bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë bî~äì~íáåö=oéñäéåíáçå=ñçê=emi=rkfui=~åç=lééåsjp=eçëíë This guide walks you quickly through key Reflection features. It covers: Getting Connected
Lesson 1 Introduction to Rapid Application Development using Visual Basic
Lesson 1 Introduction to Rapid Application Development using Visual Basic RAD (Rapid Application Development) refers to a development life cycle designed to give much faster development and higher-quality
Creating Tables ACCESS. Normalisation Techniques
Creating Tables ACCESS Normalisation Techniques Microsoft ACCESS Creating a Table INTRODUCTION A database is a collection of data or information. Access for Windows allow files to be created, each file
EXCEL VBA ( MACRO PROGRAMMING ) LEVEL 1 21-22 SEPTEMBER 2015 9.00AM-5.00PM MENARA PJ@AMCORP PETALING JAYA
EXCEL VBA ( MACRO PROGRAMMING ) LEVEL 1 21-22 SEPTEMBER 2015 9.00AM-5.00PM MENARA PJ@AMCORP PETALING JAYA What is a Macro? While VBA VBA, which stands for Visual Basic for Applications, is a programming
Conditionals: (Coding with Cards)
10 LESSON NAME: Conditionals: (Coding with Cards) Lesson time: 45 60 Minutes : Prep time: 2 Minutes Main Goal: This lesson will introduce conditionals, especially as they pertain to loops and if statements.
An Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
Mail Merge Tutorial (for Word 2003-2007) By Allison King Spring 2007 (updated Fall 2007)
Mail Merge Tutorial (for Word 2003-2007) By Allison King Spring 2007 (updated Fall 2007) What is mail merge? You've probably heard it mentioned around the office or at an interview (especially for a temp
Finance Reporting. Millennium FAST. User Guide Version 4.0. Memorial University of Newfoundland. September 2013
Millennium FAST Finance Reporting Memorial University of Newfoundland September 2013 User Guide Version 4.0 FAST Finance User Guide Page i Contents Introducing FAST Finance Reporting 4.0... 2 What is FAST
Microsoft Query, the helper application included with Microsoft Office, allows
3 RETRIEVING ISERIES DATA WITH MICROSOFT QUERY Microsoft Query, the helper application included with Microsoft Office, allows Office applications such as Word and Excel to read data from ODBC data sources.
OCR LEVEL 2 CAMBRIDGE TECHNICAL
Cambridge TECHNICALS OCR LEVEL 2 CAMBRIDGE TECHNICAL CERTIFICATE/DIPLOMA IN IT WEBSITE DEVELOPMENT A/601/3245 LEVEL 2 UNIT 9 GUIDED LEARNING HOURS: 60 UNIT CREDIT VALUE: 10 WEBSITE DEVELOPMENT A/601/3245
Operating Systems. Notice that, before you can run programs that you write in JavaScript, you need to jump through a few hoops first
Operating Systems Notice that, before you can run programs that you write in JavaScript, you need to jump through a few hoops first JavaScript interpreter Web browser menu / icon / dock??? login??? CPU,
Evaluator s Guide. PC-Duo Enterprise HelpDesk v5.0. Copyright 2006 Vector Networks Ltd and MetaQuest Software Inc. All rights reserved.
Evaluator s Guide PC-Duo Enterprise HelpDesk v5.0 Copyright 2006 Vector Networks Ltd and MetaQuest Software Inc. All rights reserved. All third-party trademarks are the property of their respective owners.
