Computing Studies Higher

Size: px
Start display at page:

Download "Computing Studies Higher"

Transcription

1 ALL SAINTS RC SECONDARY SCHOOL FACULTY OF BUSINESS EDUCATION & ICT Computing Studies Higher Software Development

2

3 OUTCOME 1 INTRODUCTION Your only experience of programming is from classroom programs, Software Development Theory is about real-life programs. So first of all think about some of the differences: (table from Scholar ) Real-life Programs...are large and complex. It is difficult to hold their details in your mind. Because of this you have to specify them formally. The main difficulty is with (a) understanding the problem; (b) ensuring that your understanding actually matches the users' requirements; (c) designing a solution. Classroom programs...are small and simple. They can be described in a few sentences and probably understood in minutes. The main difficulty you have is with writing the solution in a programming language which you are just learning, and getting your program to work correctly. Development time is long. Maybe as long as 5 Development time is short. You should be able years. It is impossible to remember all aspects of a to get the core of the solution working in a few program for this length of time, so you have to hours. Consequently you can hold details of all document the design decisions and all your aspects of the program in your head. changes. Documentation is skimpy or non-existent. Testing is going to be long, intensive and exhaustive. It will be done by a separate team whose function is solely to test programs and find faults. Your testing is likely to be fairly basic. A program's lifetime may be decades, and it may The life of the program is short - only long undergo changes (called 'maintenance'). The enough for you to pass! Similarly, the maintenance is probably going to be done by documentation only has to stand up to the someone who has not written the original program examiner's scrutiny. and knows nothing about the original design decisions unless they have been documented. Programs are written for use by other people who might have little understanding of computers. The programs are not intended to be used. All Saints Secondary School Page 1

4 The Software Development Process is all about organisation, planning and documentation. If it all seems burdensome, consider some real life software projects: (List from Scholar) 1. Ariane on the 4th June 1996 Ariane 501 exploded 40 seconds after takeoff due to a software bug. This was an incidence of data conversion of a too large number! 2. Y2K Problem - The Millennium Bug - problems with the way the date was stored on computers 3. NASA Mars Lander - problems in software occurred when different measurement units were used - there was confusion between pounds and kilograms 4. Home Office Immigration System - Ordered in 1996 and supplied eighteen months late by Siemens in 1999 at a cost of 80 million. It was supposed to speed the processing of asylum claims up but could not cope with the backlog and did the very opposite. It was finally scrapped in Government ministers were blamed for ordering the "over-complex" system in the first place 5. London Ambulance Service - in 1992 they took on a despatch system that failed calamitously. Ambulances were sent to the wrong place, did not arrive when expected and the system generally caused major disruption to patient care and services 6. Passport Agency - in 1999 a new system (Siemens again) that worked much less efficiently than the system it replaced. Delays went up from two weeks to seven, with a backlog of more than half a million passports. This cost the taxpayers 12 million and forced many people to cancel holidays. The Government increased passport charges to recoup wasted money from this system 7. Post Office swipecard system - a one billion pound project that ICL were to install in throughout Britain. It began in 1996 and was stopped in 1999, having been, as the official report said, "blighted from the outset" 8. French national library - received a new system (two years late and 40% over budget) which worked so badly that librarians walked out 9. ATMs in Germany - during the changeover from Marks to Euros in 2002 a programming error in the banking system allowed people to withdraw any amount cash by typing in an arbitrary PIN code. 10. London Millennium Bridge - in 2000 the newly built Millennium Bridge wobbled when pedestrians attempted to walk over it. In the computer simulation the programmers had used the wrong estimates for pedestrian forces. Note number 7: A BILLION POUND PROJECT. Software projects can cost even more than the Scottish Parliament (and still not work the software that is). So the theory we are looking at is to do with large scale projects, with hundreds, perhaps even thousands employed as systems analysts, project managers, programmers, designers, testers and trainers. However, it still applies to small scale projects and yes, even a classroom program. We know about as much about software quality problems as they knew about the Plague in the 1600s. We've seen the victims' agonies and helped burn the corpses. We don't know what causes it; we don't really know if there is only one disease. We just suffer -- and keep living alongside the rats. -- Tom Van Vleck All Saints Secondary School Page 2

5 TOPIC1: SOFTWARE DEVELOPMENT PROCESS Analysis Design Implementation Testing Documentation Evaluation Maintenance All Saints Secondary School Page 3

6 Someone, somewhere dreams up an idea that leads to a software project. Often the people who generate the ideas have no expertise in building the final product. We don t really expect managers and directors of companies to be expert programmers. So how then do these ideas become a reality? There has to be some method of transforming these ideas into a form and a structure that can map onto a computer system. The software development process is a set of 7 stages that are gone through in order to take an original idea and turn it into a working program. You cannot just barge in and start writing code. It has to be carefully planned and then tested and documented. It is an iterative process, which means that you might have to back to previous stages because something goes wrong at a later stage. 7 stages: Analysis Iterative Development THE PROCESS OF REVISITING A STAGE IN THE SOFTWARE DEVELOPMENT PROCESS TO MODIFY IT IN THE LIGHT OF EXPERIENCE GAINED AT A LATER STAGE. Design Implementation Testing Documentation Evaluation Maintenance Abraham Lincoln reportedly said that, given eight hours to chop down a tree, he'd spend six sharpening his axe. All Saints Secondary School Page 4

7 1. SYSTEMS ANALYSIS - THE TOOLS AND TECHNIQUES Suppose you have to write a program that will teach five-year-olds about how the body works. You need to find out lots more about the system that they have in mind. What do you know about the best ways of presenting information to learners of this age? How much do you teach etc? You may start asking questions such as: How should I teach about the body? Should I use diagrams? What will a child of this age already be familiar with? Should I use text to describe bits of the body? Will animation and sound capture their interest? What level of language should I build into the program? Should I provide some interaction and if so what devices are most suitable? You will have started to ANALYSE. You will have taken the first steps away from being a programmer and towards becoming an analyst. A systems analyst observes, clarifies and models an existing system to assess its suitability for computerisation. All Saints Secondary School Page 5

8 All Saints Secondary School Page 6

9 If you don't understand it, you can't program it. Skills and Techniques of a Systems Analyst Systems analysts need to have a very sound technical background. It is likely that they were once themselves programmers, highly skilled in coding, testing and debugging software. They will be knowledgeable in a variety of hardware platforms and operating systems. As analysts they will also have acquired new and quite different skills, the most important of which is the ability to communicate well with their clients. It is fundamentally important that a system is developed which meets the needs of the client. Anything less is simply useless. The client will be dissatisfied, with money and time misspent. If we bear in mind that the clients are not usually technically skilled, then we can see that the analyst must develop ways of extracting their needs, documenting these needs in some formalised way and, finally, communicating them to the team of designers and programmers who will build the system. We can consider the analyst as an intermediary between the client and the development team. Systems Analyst All Saints Secondary School Page 7

10 Extracting the client s needs This is formally called requirements elicitation. It can be a long task, because, at the start, the client may not be fully aware of the possibilities of a computerised system, and the systems analyst will probably not be fully familiar with the client s business operations. The analyst might begin by interviewing the client s management personnel to get a clear statement of what needs to be done. Then the analyst could make observation notes of the operations of the client s business to find out what actually happens in the workplace. They might issue questionnaires. The end result of the requirements elicitation process is a written statement of what the client wants the design team to do - the software specification. This document is the basis for everything the design team goes on to make, so it is extremely important to get it right. This software specification is a very important document. It is like a legal contract spelling out exactly what the software must do. If there are any disputes over the completed program, it is this document that will be referred to. It will also be used to test the software. A program is correct if it does what the specification says it should do. Communication isn t a clear-cut, single event. There may be several meetings which have to take place between the client and the analyst. The need to clarify what has been said, and what is meant by what has been said will often arise. There may also be technical and/or financial limitations which will require changes to the original ideas. Sometimes ideas are too costly to implement, and compromises may have to be made. We have already said the whole process is iterative -- you have to revisit previous stages. Also each stage can be iterative as well. The analyst has to go back to the client to clarify or agree things. Summary: The analysis stage is about coming to a complete understanding of the problem knowing exactly what the client wants. The client is the person / company that is commissioning the software. The systems analyst models the existing system, communicates between client and programmers and draws up the software specification. The software specification is a legal document that spells out in detail what the software must do and how it will do it. It will be used for testing that the program does what it is supposed to do. All Saints Secondary School Page 8

11 EXERCISE 1 1. What are the main difficulties with real life programs compared to classroom programs? 2. When you look at the list of software disasters on page 3, why does Abraham Lincoln s quote on page 5 sound so appropriate? 3. What is the first stage in the software development cycle? 4. In a simple sentence, what is the job of a systems analyst? 5. What skills should a systems analyst possess? 6. Who or what is the client? 7. The analyst acts as a bridge between the client and the programmers, how do they enable this communication? 8. What techniques does the analyst employ to extract the client s needs? 9. Which document is produced at the end of this process? 10.What is the nature of this document that makes it so important? 11.In what way can the analysis stage itself be described as an iterative process? Think of a product or a piece of software. Write down about 6 things you require for your product. For example: An mp3 player. I want: It will be no larger than 4 by 3 It can store 1000 tunes It comes in a wide range of colours / covers It can play tunes in random order You can search for a particular tune It can attach to external speakers Your product could be a phone / games machine / hair dryer / anything. It could be a piece of software for / messaging / a game etc. Once you have your product specified, get together with one, or preferably two other people. Each person takes it in turn to be the client, the others are the analysts, they ask what the product is, then asks questions about what characteristics the client wants. The object is to find out exactly what the client wants. The fact is, an analysts job is very difficult, yet if they don t do their job correctly, the client never gets exactly what they wanted. All Saints Secondary School Page 9

12 2. SYSTEMS DESIGN Once the needs of the user are clearly understood and documented, software development can move onto the next stage, involving the DESIGN of the system. We are now moving from asking what needs to be done to asking how are we going to do it. We need to use a structured and methodical approach to the planning of our solution. In the design we would first of all consider the HCI. 2.1 The User Interface Design of a good user interface is one of the most important indicators of a high quality piece of software, and should be given much consideration. It is, after all, the link between those intricate sections of code that you have laboured on for months, and the end user. It doesn t matter how clever you have been in optimising the speed of your code, or minimising the memory overheads of your program, if it is too complex, or unintelligible in its interaction with your user. 2.2 Design of the Structure and Detailed Logic You will already have encountered in your programming courses the structured, top-down design approach of an algorithm with stepwise refinement. There are many ways of representing the design; we shall concentrate on two methods. The first is the representation of the structure of the software, using a structure chart. The second is the representation of the logic of the software, using pseudocode (which is what you do). Structure diagrams are good for giving an overall picture of the program s structure. Pseudocode is good because the design then matches the program code line by line. All Saints Secondary School Page 10

13 The important point is that there must be some documented evidence of this stage of the design. It is far easier to correct logical mistakes, or to upgrade a piece of software, by using the structure charts or pseudocode listings, than by referring to the actual program code, because the structure charts or pseudocode listings make it easier to understand how the software was built in the first place. The structured design approach of stepwise refinement also allows you to manage a very large project, by sub-dividing it into modules or procedures. Each module can be further refined, producing a hierarchical structure. These structures are much simpler to develop, to understand and to maintain. Hierarchical Software Structure Modular programming, where the program is divided into separate modules and each module can be further sub-divided is a very important concept:- Teams of programmers can then have the work divided between them. Each module can be tested separately before they are joined together in the complete program. The design using structure diagrams gives a clear picture of the program and algorithm and stepwise refinements gives the coding. The project manager will run the team of programmers and liaise with the systems analyst. They will work on the overall design and decide which programmer will work on which module. They will keep overall control and manage the entire project. The programmers will of course write the code, but they will also be responsible for writing pseudo code, internal commentary and generally documenting everything they do. Look at and click on Software Designs to see some of the different methods of charting designs. All Saints Secondary School Page 11

14 PROGRAM DESIGN Here are some examples of Pseudocode and structured diagrams: Problem: Calculate the area of a rectangle Pseudo-code: 1. Get sizes 2. Calculate 3. Display answer 1.1Ask for length 1.2Get length 1.3Ask for breadth 1.4Get breadth 2.1 Area = length * breadth 3.1 Clear screen 3.2 Set colour blue 3.3 Display message and answer Structure Diagram: Area of rectangle Get sizes Calculate area Display area Find out length Find out breadth Area = length x breadth All Saints Secondary School Page 12

15 LOOPs Let s say you had to work out the area of five rectangles. The design in pseudo-code would become: 1. Do 5 times 2. Get sizes 3. Calculate 4. Display answer 5. End loop Top down design 2.1 Ask for length 2.2 Get length 2.3 Ask for breadth 2.4 Get breadth 3.1 Area = length * breadth 4.1 Clear screen 4.2 Set colour blue 4.3 Display message and answer The structured diagram would become: Area of rectangle Do 5 times Get sizes Calculate area Display area Find out length Find out breadth Area = length x breadth All Saints Secondary School Page 13

16 A quiz question: 1. Ask question 2. Get answer 3. IF answer correct THEN 4. display well done message 5. ELSE 6. display fail message and correct answer 7. END IF Structure diagram: Quiz question Ask question Get answer Answ er yes no Display well done Display you plonker, give correct answer Exercise 2 Draw a structure diagram for 1 & 3, do pseudo-code for 2 & 4, do both for 5: 1. Calculate the area of three circles. 2. Ten questions, with the score at the end. 3. Too hot to be displayed if temp over 25, ok otherwise. 4. Check a number is between 1 and 10, display error if it is not, keep asking until it is. 5. Ask for a %mark, give grade: A if 70+, B 60-70, C 50-60, else F All Saints Secondary School Page 14

17 3. Implementation This is the third stage of the software development process and involves the changing of the design plans that you have constructed, in the form of screen layouts, structured charts and pseudocode, into a form that the computer can understand, i.e. a program. Choosing a Programming Language In considering the development environment we will be trying to decide what is the most effective language in which to program, what environment does the program and the translator need to operate in, and what hardware is needed to support them. Some problems can be solved by using more than one programming language. Often there are situations where the developer will need to select from a list of many. For example, there are many general purpose high level programming languages such as Pascal, Comal, Fortran etc. that can all provide solutions to the same problem. Modern problems might require HTML for a web interface with some Java programming plus Visual Basic or SQL for background applications. In order to decide upon a suitable programming environment, you need to be quite clear about the nature of the data objects, their types and the operations which need to be carried out on the data. If your problem requires an operation on a string data type, then you need a language which supports strings. If you need to carry out arithmetic or logical operations, then you need a language which supports these. If your solution needs to process sound or graphics, then you need a language which can support these data types. Criteria for choosing a programming language: 1. Consider the general application area (Multimedia, Information processing including databases, expert systems, Numerical analysis etc.) 2. Consider the algorithmic or computational complexity of the problem. Does the language have the required features to support this? 3. What environment will the software run within? Does it need particular operating system capability such as multitasking? What file handling will it need etc.? All Saints Secondary School Page 15

18 4. What are the performance requirements of the solution? Speed? Response time? 5. What data types does the language need to support? Graphics? Sound? Video? Numeric? Textual? 6. What are the capabilities of the development team? What knowledge and experience do they have of the languages available? Types of Languages Programming Languages divide into a number of certain types. There is scripting which is built into a package, used to write macros or even build entire applications. There are procedural languages that allow problems to be solved using modularity. There are declarative languages which are built round facts (called the knowledge base) and rules. Finally there are event driven languages that do not have a specific start and end but depend on users clicking or choosing something. There will be more about language types later. When writing the actual code the programmer should ensure that : Meaningful variable names are used. Clear user prompts for input are used Input is validated. There is internal commentary, explaining each section of the code. The code is modular. They avoid using machine specific code. They avoid using unnecessary resources. They produce a structured listing This will ensure that their programs are: Reliable -- free of programmer errors Robust -- doesn t crash easily because of user error Portable -- can be made to work on different computer systems Efficient and -- doesn t use up unnecessary Ram / disk space / paper etc. Maintainable -- easy to make future changes. All Saints Secondary School Page 16

19 EXERCISE 3 1. What is the advantage of using structure diagrams to illustrate the design of a program? 2. Which method of programming design has the advantage of matching directly to the actual programming code? 3. What is the big advantage of using modular programming techniques? 4. What is the job of the project manager? 5. What is the software specification? 6. Give three examples of the criteria that might be employed in deciding which programming language to use. 7. What is meant by internal commentary? 8. What should programmers do to ensure their programs are portable? 9. What makes a program efficient? 10.What is the difference between reliable and robust? 11.What are the four types of computer language? Get the Intermodeller worksheets from your teacher. On the network is a sample of a declarative language. It is in MCHM03 / Computing / Higher Grade / Intermodeller Double click on the IM icon to start it. When finished Intermodeller, get the Macros & Scripting worksheets. All Saints Secondary School Page 17

20 4. Testing If you are building a bridge, it is not a good idea to wait until the final construction phase before realising that the bridge cannot support the expected load, or that the structure is so unstable that under adverse weather conditions it is likely to collapse! Engineers are constantly monitoring their design solutions using prototype models, blueprints and simulation programs. These tests are performed well in advance of construction. The same principles apply to the development of software. The longer you delay checking that your design solution meets the original requirements the more costly the design errors will be to remedy. We should therefore build monitoring and review into every stage of the software development process, and not merely leave it to the end to find out that we have made mistakes. The fact that each stage of the process generates its own documentation, makes this review a lot simpler. However, once the actual program has been written, there then follows the main testing stage. The most crucial aspect is to test that the program does what the software specification says it should do. So the software specification is used to create test data that will be used to test the program does what it should. Test Data In earlier courses, you should have come across the idea of creating sets of test data to feed to your software to find out how it behaves. Here are some of the important points about making up such sets: The expected results from a test data set must be known in advance, so that they can be checked against the actual results. One set should test normal operation of the software, to make sure that there are no unexpected results in ordinary work. One set should test the operation limits ( extremes )of the software, to make sure that the boundary conditions identified in the design stage are being handled properly. One set should test exceptions to the normal operating conditions. This set will show whether or not the software can react to unexpected inputs in an effective way, without crashing. This set of test data provides useful evidence about the robustness of the software. All Saints Secondary School Page 18

21 There are three main types of error in a program: 1. LOGIC ERROR: when the program works, but doesn t do what it is supposed to do. e.g. IF age < 18 THEN PRINT You can vote 2. SYNTAX ERROR: where the program won t work because of a mistake in the code. e.g. PRANT Hello 3. RUN-TIME ERROR: when the program crashes because of a fault e.g. Division by zero (Average = total / howmany and howmany has the value 0). Testing must be systematic and comprehensive. It is systematic when you plan a table of test data with expected outcomes and then test the program with that data. It is comprehensive when you test as many eventualities as possible. In particular the extremes (limits), exceptions and normal data. For example if you were testing a program that took in marks out of 100 in a test you must test: Normal : e.g. 45, 78, 26, 97 Extremes: 0 and 100 Exceptions: -5, 109, 34.75, x Testing can only convince us of the presence of errors, and not of their absence. All Saints Secondary School Page 19

22 Testing can never prove conclusively that a program is correct. No matter how exhaustive the testing, it will always be possible for the system to contain errors which have not been detected. Testing - Who Does It? Developing a piece of software is a creative task. Being a creative activity, the programmer will naturally take some pride in his/her creation, and will not necessarily wish to show that it doesn t in actual fact work properly! The programmer s approach of demonstrating through selective test cases that his/her software works is unsatisfactory and this approach to testing is unhelpful. Test cases should be destructive in their objective and aim to show the presence of errors One approach is to involve outsiders from other areas of the development team, known as Independent Test Groups, (ITGs). These groups work with the programmer to ensure that thorough testing is carried out. Any errors uncovered are recorded and the software is returned to the programmer for correction. Stages of Testing Procedure (Component) Testing Here the programmer will test their own procedure and probably swap with other programmers to cross-check their work. This will be rather unstructured testing, but any faults found can save a great deal of time later. Module Testing (Integration) Modules consist of integrated groups of procedures which communicate with each other. After each procedure has been tested it will be necessary to test how procedures in a module work together. Given that they each work well on their own - proven by testing described above - do any faults occur when they are integrated and forced to communicate and share information? All Saints Secondary School Page 20

23 This testing will be more systematic and comprehensive Sub-System Testing As modules are designed to co-operate and communicate they are put together to form sub-systems. The testing strategy is the same as that for module testing. System Testing The sub-systems are systematically put together to form the overall system. At this stage the software will have been fully integrated. Test cases are devised to test the complete system, and validated against the user requirements. Tests must ensure that the entire system meets the functional, behavioural and performance criteria detailed in the software specification. Testing by the Software company is called Alpha Testing. Giving the program to users to try out is called Beta Testing. Acceptance Testing ( Beta Testing) Thus far testing has been carried out by the development team and Independent test Groups. Acceptance testing will be undertaken by the client in situ under the auspices of the developers. The users should be permitted unrestricted access to the system, i.e. they should be allowed to supply arbitrary and unpredictable input values to verify the behaviour of the system. Beta test results are often used to make the final changes to an application just before publication. Testing is of huge importance and takes up a great deal of time and effort in the software development cycle. To see how serious a subject this is, look at the article in Wikipedia on this subject: All Saints Secondary School Page 21

24 5. DOCUMENTATION Software companies vary in the nature and quality of documentation that they provide. However, two essential pieces of documentation that need to be developed are the User Guide and a Technical Guide. The User Guide This document should describe how to use the software. Ideally there should also be tutorial files which can take the user through examples of a piece of work, and allow them to become familiar with the commands, and the various sections of the software. Nowadays it is becoming more common for developers to provide this documentation in electronic form, as an on-line reference system, with interactive help and tutorial displays. This saves in the cost of producing paper-based documents, and also allows upgrades to be reflected in the help system upon subsequent releases of new software versions. The Technical Guide This document should provide information on how to install the software, its memory and processor requirements, the version number of the software and any associated help files or systems extensions that may also need to be installed. The guide should also contain a reference section on troubleshooting, that will help the user to get around any system problems that they may have encountered. EXERCISE 4 1. What are the three types of test data? 2. A procedure has been written which inputs the prices of components. The cheapest is a 5p, the dearest Devise a set of test data for this procedure. 3. What is an Independent Test Group? 4. What is Alpha testing? 5. What is Acceptance testing? 6. Name and describe the two pieces of documentation that are produced for a piece of software. 7. There is documentation at every stage of the Software Development Cycle. Give examples of documents that are produced at the i) Analysis, ii) Design, iii) Implementation and iv) Testing stages. All Saints Secondary School Page 22

25 6. Evaluation To evaluate a completed application, the developers are mainly concerned with answering the question: Does this software meet the user requirements? Does it do what the software specification says it should do? In addition the software should be evaluated in terms of: Robustness Reliability Portability Efficiency Maintainability Robust means the program does not crash easily due to user error. Reliable means the program does not crash easily due to design or programmer error. Portable means the software can be made to run on other types of computer (without too much effort). Efficient means the software does not use up computer resources unnecessarily. (From using more memory that it has to, to using a whole sheet of paper to print 1 line). Maintainable means the software is easily understood and well documented so that programmers in the future will be able to make changes. (see next page). All Saints Secondary School Page 23

26 7. MAINTENANCE Often when the client uses the software on a regular basis and is able to test it to its limits in a real-world situation, errors can emerge. The company that commissioned the original software will change over time, the program might not meet its present requirements. The software might be fine, but in use the company would like it to do something else, or do something in a simpler way These three scenarios lead to the need for maintenance. 7.1 Maintenance Activities 1. Corrective maintenance During the use of the system, errors emerge which were undetected during system testing. These should be reported to the developer and corrective action taken to remove them from the original code. 2. Adaptive Maintenance The software environment of the system, such as the operating system or the hardware environment of the system, such as peripheral devices, processor etc., have altered since the code was originally developed and these have caused the original code either to fail, or to operate less effectively. The system must be altered in order to adapt to these new surroundings. 3. Perfective Maintenance This is a response to a user s request to change the existing system by adding new or altering existing functions, or catering for general enhancements to the system. 7.2 Maintenance Costs It may come as quite a surprise to learn that, during the 1970 s, maintenance accounted for between 35% and 40% of the software budget for a typical information system project. This number jumped to 60% during the 1980s. Most programmers actually spend their time on existing software rather than developing new programs. All Saints Secondary School Page 24

27 7.3 Design Factors Affecting Maintainability There are also program design factors which can affect a system s maintainability. Meaningful variable names are used. This makes a program more readable and understandable. It is therefore easier for a programmer who has to make changes in the future to understand the code. There is internal commentary, explaining what each section of the code does. As above. The code is modular. Then only a section has to be worked on at a time A structured listing Indenting loops and structures, lower case for variables. Makes the program more readable. All Saints Secondary School Page 25

28 EXERCISE 5 1. Name and describe the three types of software maintenance. 2. What does it mean to say a program is correct? 3. What is meant by these terms: a) Robustness b) Reliability c) Portability d) Efficiency e) Maintainability 4. Which design factors assist in making a program maintainable? 5. What techniques might a systems analyst employ when trying to understand a client s needs? 6. What does it mean to say the software development process is iterative? 7. What two design notations are you familiar with. What advantage is their in using each of these? 8. Why do you need systematic and comprehensive testing? All Saints Secondary School Page 26

29 Topic 2: LANGUAGES AND ENVIRONMENTS There are four main types of programming languages: 1. Procedural True Basic is a typical example. The program runs from start to end and is divided into separate procedures or subroutines. It uses typical variables types like string and various numeric types like integer and real. Arrays of variables are also used. 2. Declarative Prolog is a typical example. This is used for Expert Systems that can be queried to give answers. An example would be in medicine where the program asks you a series of questions about yourself, sex, weight, height, etc., etc., symptoms and in the end gives a diagnosis. These languages work by being fed facts and rules, the programs work by applying the rules to the answers given. 3. Event Driven Visual Basic is a typical example. Programs are very similar to procedural but they have no specific beginning or end, routines run when an object is clicked or something is chosen. 4. Scripting Visual Basic for Applications (VBA) or ActionScript for Flash are typical examples. This is again similar to event driven and procedural, but is included as part of an Application Package. Programs written in a scripting language only work inside that package and are used to extend the capabilities of the program.. It is mostly used to create macros. Scripting languages are again similar to procedural. Scripting languages let users automate tasks from something as simple as inserting a header to formatting an entire spreadsheet. They let users individualise a package, tailor the menus, add their own menu bars, start up in a certain way. They also let users extend the capabilities to add features not in the original package. They allow the building of entire packages custom made for themselves without having to write an entire program (Access is a particular example). All Saints Secondary School Page 27

30 CALL get_mark_routine(mark) CALL calculate_grade((mark)) Procedural: Here is a True Basic example. The program starts when you RUN it. It runs through the code line by line from the beginning to the end when it stops. SUB get_mark_routine(mark) DO PRINT"Please enter your mark-"; INPUT number IF number<0 OR number>100 THEN PRINT"Please re-enter your mark." END IF LOOP UNTIL number>=0 AND number<=100 LET mark=number END SUB SUB calculate_grade(mark) SELECT CASE mark CASE 70 TO 100 PRINT "Your grade is - ";1 CASE 60 TO 69 PRINT "Your grade is - ";2 CASE 50 TO 59 PRINT "Your grade is - ";3 CASE 40 TO 49 PRINT "Your grade is - ";4 CASE 0 TO 39 PRINT "Your grade is - ";5 END SELECT END SUB END Declarative: Here is a Prolog example of FACTS, then RULES which form the program. Then you run a query and get an answer. parents(william, diana, charles). parents(henry, diana, charles). parents(charles, elizabeth, philip). parents(diana, frances, edward). parents(anne, elizabeth, philip). parents(andrew, elizabeth, philip). parents(edwardw, elizabeth, philip). married(diana, charles). married(elizabeth, philip). married(frances, edward). married(anne, mark). parent(c, M) <= parents(c, M, D). parent(c, D) <= parents(c, M, D). equal(x, X). sibling(x, Y) <= parents(x, M, D), parents(y, M, D), not equal(x, Y). aorudirect(c, A) <= parent(c, P), sibling(p, A). aorumarr(c, A) <= aorudirect(c, X), married(x, A). aorumarr(c, A) <= aorudirect(c, X), married(a, X). aoru(c, A) <= aorudirect(c, A). aoru(c, A) <= aorumarr(c, A). Query to find William s aunts and uncles:?aoru(william, A) All Saints Secondary School Page 28

31 --- running --- aoru(william, anne) yes aoru(william, andrew) yes aoru(william, edwardw) yes aoru(william, mark) yes Event Driven Here you click on buttons, or select with the mouse and it makes something happen. When you run the program it just sits there waiting on you clicking on something. The program never ends unless you click on Quit. All program code is activated by an event. Scripting ActionScript in Flash lets you write quite complicated programs to control all the elements. All Saints Secondary School Page 29

32 You can write macros in any Office product using Visual Basic for Applications or just record them and it automatically creates the code in VBA. Translation Once the program has been written in a High-Level Language, it will need to be translated. There are two methods: COMPILER: Takes the source code and translates it into object code. The source code is the program and the object code the machine code commands (in binary). Once translated it never needs translated again, you don t need the compiler again. It is running machine code and will be fast in its execution. However, things never go smoothly, what actually happens is :- The source code is compiled and an error report is issued. This error report can be huge and finding the errors very difficult. Once these errors have been dealt with, you compile again and get another error report (not quite as long). And so on until the whole program compiles into object code. Compiling takes some time to do as it is a very complex task. INTERPRETER: This translates the program line by line every time it is run. So you always need the Interpreter present. You are always running highlevel language code so it does not execute very quickly as it always need translating. However, it does tell you immediately of any mistakes and which lines they are in and so errors can be dealt with as they occur instead of waiting until the entire program has been written. Another difference is portability. Once compiled the program is in the machine code for that chip it cannot run in a machine with a different processor. Interpreters on the other hand are portable. If you have a True Basic interpreter on a Mac and one on a PC then the same program will run on both. All Saints Secondary School Page 30

33 However you can get compilers for different computers and as long as you recompile for the other machine then the source code is portable. DIFFERENT PLATFORMS REQUIRE DIFFERENT COMPILERS. COMPILER VS INTERPRETER Advantages Don t need compiler present Program runs quickly Compiler Disadvantage s Difficult to deal with errors Slow to compile Not portable, different platforms need different compiler. Advantages Good error handling More userfriendly, easier to learn Portable if interpreter present. Interpreter Disadvantages Must have interpreter present Programs run slowly Module Library A collection of pre-written routines which can be used within a program. These routines have already been tested and are regarded as being robust and reliable. The use of module libraries can significantly reduce the development time of a piece of software. Library modules must be written closed, so that they cannot interact with the remainder of the program in an unexpected way. They are always well documented so that the programmer knows exactly how to implement the module or procedure. When using a popular programming language, everything you want to do will have been written by someone else at some time. If common procedures can be stored in a library then that is going to save a lot of future programming time. An example of a procedure in a module library might be to sort a list of names. The array of names will be passed into the procedure and a sorted array will come out. On the next few pages is an example of how a module library lets you add to your program using HTML. All Saints Secondary School Page 31

34 HTML The structure of an HTML document: < > contains the tag that that turns something on </ > contains the tag that turns something off. <HTML> <HEAD> This section does not display anything </HEAD> <BODY> This section contains the web page content that is displayed </BODY> </HTML> Use Notepad (or Wordpad) to enter this HTML code: <HTML> <HEAD> <TITLE> Home page </TITLE> </HEAD> <BODY TEXT = #FF0000 BGCOLOR = #00FF00> <BODY> <H1>My Home Page </H1> <BR> <BR> <H2> <FONT FACE = ALGERIAN size = 20>I hope you find it interesting. </font> </H2> <BR> <BR> You can click on these links: <BR> <H2> <A href = MyPics.htm> Pictures Page </A> <BR> <A href = MyFavs.htm> My Favourites Page </A> <BR> </H2> </BODY> </HTML> All Saints Secondary School Page 32

35 Save as home.htm YOU MUST SAVE AS TEXT ONLY (not RTF) from Wordpad, Notepad is automatically text. Go to where you saved home and double click it to see that it worked. There is no point in clicking on the hyperlinks unless you save pages called MyPics.htm and MyFavs.htm Now to see the benefit of MODULE LIBRARIES. Open your homepage in Notepad(Wordpad). You have your basic homepage and would like to spice it up. First of all we ll give it a mouse trail. Go to the site : Scroll right down the page until you see Code generators on the right hand side. Click on Mouse Trails Carefully read the four bullet points at the top. Fill in the boxes. Make the size about 12px and click generate. Your background is green, so choose a colour you will see. Carefully read the instructions. You don t copy anything with <!--** etc. Section 1 copies and pastes into the head section, section 2 into the body section. For 3 you have to replace the <BODY> tag. Save your page and see if it works. Go back to the code generators and try a marquee (this is a scrolling banner). This should give you an idea of the benefits of module libraries. They save you a great deal of time coding. They are guaranteed to work and be error free. However they must be well documented so that you know exactly how to integrate them into your program. You also want them closed i.e. their variables are all local and so self contained so that they don t interfere with anything in the rest of the program. All Saints Secondary School Page 33

36 EXERCISE 6 1. Describe what is meant by an event driven programming language. 2. Compare a declarative language to a procedural language. 3. Which type of language is used to create a macro? 4. What are the benefits of scripting languages? 5. If a program is to be written quickly, is it better to use a compiled or interpreted language? 6. What if the program is to run as fast as possible, which would be better? 7. Compare the two types of program translators. 8. What are the benefits of module libraries? All Saints Secondary School Page 34

37 TOPIC 3: Programming Language Constructs This is covered by the Programming you do, however here is a summary of the main points you should know. Variables: are used to store values. Different languages have different types; here is a list of common ones: String: stores data in ASCII, names, addresses and so on are string types. Numeric: Integer: holds positive and negative whole numbers & Real: holds any value in floating point. Boolean: is just one bit to store TRUE and FALSE. Variables can also be put in ARRAYS. This is when you have a group of values of the same type. Examples of the use of variables: DIM length as single, breadth as single, area as single Length = INPUTBOX( Enter length ) Breadth = INPUTBOX( Enter breadth ) Area = length * breadth Msgbox The area = & area Create real variables : length, breadth, area Ask for and take in length Ask for and take in breadth Area = length x breadth Display area DIM name(20) as STRING DIM found as BOOLEAN DIM person as INTEGER.... Found = false Person = 1 DO WHILE NOT found AND person <= 20 IF name(person) = John THEN found = true Person = person + 1 LOOP.. Create string array of 20 names Create Boolean variable found Create integer variable person Set found to false Set person to 1 While not found and person < 21 IF name(person) is John then set found to true Add 1 to person End while All Saints Secondary School Page 35

38 Arithmetic can be performed on numeric variables using +, -, *, /, ^. There are also operations for string variables. When you use + (or &) it joins two strings together (called concatenation). DIM fname, sname, name AS STRING Fname = INPUTBOX ( Enter first name ) Sname = INPUTBOX ( Enter second name ) Name = fname + + sname Msgbox Your name is & name Create string variables fname, sname, name Ask for and take in firstname Ask for and take in secondname Name = firstname, space, second name Display name If you run this program and enter Ann for first name and Jones for second name, then it would say : Your name is Ann Jones You can also extract parts of a string: DIM name AS STRING name = "Scotland" FORM1.PRINT name FORM1.PRINT LEN(name) FORM1.PRINT LCASE(name) FORM1.PRINT UCASE(name) FORM1.PRINT RIGHT(name, 3) FORM1.PRINT LEFT(name, 2) FORM1.PRINT MID(name, 2, 3) FORM1.PRINT MID(name, 4, 2) RESULT Scotland 8 scotland SCOTLAND and Sc cot tl Len gives you how many characters are in the string. Lcase and Ucase give lower or upper case letters. Right (name,3) gives the last 3 characters. Left(name,2) gives the first 2 Mid(name,2,3) means start at position 2 and give the next 3 characters. Putting two strings together is called COCATENATION. If a$ = Mearns, b$ = and c$ = Castle then d$ = a$ + b$ + c$ gives d$ as Mearns Castle All Saints Secondary School Page 36

39 Formatting INPUT / OUTPUT This is the way prompts and displays appear on screen. There are various ways of formatting input: The way you display labels and text boxes (colour / font / appearance etc.) INPUTBOXes can be given screen co-ordinates and captions. Likewise for output: Msgboxes can be given co-ordinates and captions as well as different options. Again labels and text boxes can be formatted. In addition you can use the PRINT command with semi-colons, commas and tab. You can use the FORMAT function to change the way numbers are displayed Example: FORMAT(number, 0.00) will give 2 decimal places LOOPS A major construct in any programming language is looping. There are two types: fixed and conditional. With a fixed loop you know exactly how many times something will be done. For instance a routine to enter 20 names into a program: DIM name(20) AS STRING DIM person AS INTEGER FOR person = 1 TO 20 Name(person) = INPUTBOX( Enter name ) NEXT person Create string array of 20 names Create integer variable person DO 20 times Ask for and take in name Next With a conditional loop you do not know how many times the loop will be executed, it depends on a condition. You can have the condition at the beginning or the end. If it is checked at the beginning it is possible the loop will never be executed. All Saints Secondary School Page 37

40 Here is a validation subroutine that checks the condition at the beginning. The program is taking in 20 marks in a test out of 100: DIM mark(20) AS INTEGER DIM pupil AS INTEGER FOR pupil = 1 TO 20 Mark(pupil) = INPUTBOX( Enter mark ) CALL validate(mark(pupil)) NEXT pupil 1. Create integer array of 20 marks 2. Create integer variable pupil 3. Do 20 times 4. Ask for and take in mark 5. Validate mark 6. Next SUB validate (number) DO WHILE number < 0 OR number > 100 Number = INPUTBOX( Out of range, re-enter please ) LOOP END SUB 5.1 While not in range 5.2 Ask to re-enter and take in number 5.3 End while If the user keeps entering numbers like 56, 87, 23 etc. then the while loop will never be executed. If they enter 105, then they will be asked to re-enter. If they keep entering such numbers then the loop will keep executing. We do not know how many times. The condition can also be at the end of the loop. This simple example only accepts a number between 0 and 100, although it doesn t give an error message if it isn t. DIM mark AS INTEGER DO Mark = INPUTBOX( Enter mark ) LOOP UNTIL mark >= 0 AND mark <= 100 Mark > = 0 AND mark <= 100 is called a COMPLEX CONDITION. This just means there is more than one condition to test. Complex conditions are joined by AND or OR. All Saints Secondary School Page 38

Software Development. Topic 1 The Software Development Process

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

More information

Programming in Access VBA

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

More information

Software Development Unit

Software Development Unit Software Development Unit me Topic 1 THE SOFTWARE DEVELOPMENT PROCESS Computing Studies Department Whitburn Academy Page 2 INTRODUCTION Most computerised systems that we use in every day life we take for

More information

Higher Computing. Software Development. LO1 Software Development process

Higher Computing. Software Development. LO1 Software Development process Software Development LO1 Software Development process Ian Simpson Inverurie Academy 2006 Software Development The candidate must demonstrate knowledge and understanding, practical skills and problem solving

More information

SQA Higher Computing Unit 2 Software Development

SQA Higher Computing Unit 2 Software Development SCHOLAR Study Guide SQA Higher Computing Unit 2 Software Development David Bethune Heriot-Watt University Andy Cochrane Heriot-Watt University Tom Kelly Heriot-Watt University Ian King Heriot-Watt University

More information

GCE APPLIED ICT A2 COURSEWORK TIPS

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

More information

Chapter 13: Program Development and Programming Languages

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

More information

Hypercosm. Studio. www.hypercosm.com

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

More information

Stage 5 Information and Software Technology

Stage 5 Information and Software Technology Stage 5 Information and Software Technology Year: Year 9 Teacher: Topic: Option 8: Software Development and Programming Time: This option involves students undertaking a range of activities that will lead

More information

Introduction to Python

Introduction to Python WEEK ONE Introduction to Python Python is such a simple language to learn that we can throw away the manual and start with an example. Traditionally, the first program to write in any programming language

More information

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

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

More information

18 Software. design. Learning outcomes. Credit value: 10

18 Software. design. Learning outcomes. Credit value: 10 Credit value: 10 18 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

More information

Chapter 7: Software Development Stages Test your knowledge - answers

Chapter 7: Software Development Stages Test your knowledge - answers Chapter 7: Software Development Stages Test your knowledge - answers 1. What is meant by constraints and limitations on program design? Constraints and limitations are based on such items as operational,

More information

Chapter 12 Programming Concepts and Languages

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

More information

University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python

University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python Introduction Welcome to our Python sessions. University of Hull Department of Computer Science Wrestling with Python Week 01 Playing with Python Vsn. 1.0 Rob Miles 2013 Please follow the instructions carefully.

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

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,

More information

13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES

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

More information

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools In this Lecture you will Learn: Implementation Chapter 19 About tools used in software implementation How to draw component diagrams How to draw deployment diagrams The tasks involved in testing a system

More information

Tips and Tricks SAGE ACCPAC INTELLIGENCE

Tips and Tricks SAGE ACCPAC INTELLIGENCE Tips and Tricks SAGE ACCPAC INTELLIGENCE 1 Table of Contents Auto e-mailing reports... 4 Automatically Running Macros... 7 Creating new Macros from Excel... 8 Compact Metadata Functionality... 9 Copying,

More information

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

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

More information

Chapter 13: Program Development and Programming Languages

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

More information

Visual Logic Instructions and Assignments

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.

More information

USC Marshall School of Business Marshall Information Services

USC Marshall School of Business Marshall Information Services USC Marshall School of Business Marshall Information Services Excel Dashboards and Reports The goal of this workshop is to create a dynamic "dashboard" or "Report". A partial image of what we will be creating

More information

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference

More information

How To Understand Programming Languages And Programming Languages

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

More information

PloneSurvey User Guide (draft 3)

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

More information

A system is a set of integrated components interacting with each other to serve a common purpose.

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

More information

Add an Audit Trail to your Access Database

Add an Audit Trail to your Access Database Add an to your Access Database Published: 22 April 2013 Author: Martin Green Screenshots: Access 2010, Windows 7 For Access Versions: 2003, 2007, 2010 About This Tutorial My Access tutorials are designed

More information

Working with the Ektron Content Management System

Working with the Ektron Content Management System Working with the Ektron Content Management System Table of Contents Creating Folders Creating Content 3 Entering Text 3 Adding Headings 4 Creating Bullets and numbered lists 4 External Hyperlinks and e

More information

SECTION 5: Finalizing Your Workbook

SECTION 5: Finalizing Your Workbook SECTION 5: Finalizing Your Workbook In this section you will learn how to: Protect a workbook Protect a sheet Protect Excel files Unlock cells Use the document inspector Use the compatibility checker Mark

More information

Teacher Notes Introduction

Teacher Notes Introduction Teacher Notes Introduction Why ICT 4 Life? Wouldn t it be great to have classes of enthusiastic, ICT-capable learners, performing and progressing well? Of course, we see fantastic examples of good practice

More information

Tips for clear websites

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

More information

EMC Publishing. Ontario Curriculum Computer and Information Science Grade 11

EMC Publishing. Ontario Curriculum Computer and Information Science Grade 11 EMC Publishing Ontario Curriculum Computer and Information Science Grade 11 Correlations for: An Introduction to Programming Using Microsoft Visual Basic 2005 Theory and Foundation Overall Expectations

More information

First Bytes Programming Lab 2

First Bytes Programming Lab 2 First Bytes Programming Lab 2 This lab is available online at www.cs.utexas.edu/users/scottm/firstbytes. Introduction: In this lab you will investigate the properties of colors and how they are displayed

More information

By the end of this workbook I should... What is a Website?

By the end of this workbook I should... What is a Website? By the end of this workbook I should... 1) know how to design the structure of a website 2) understand the importance of organising the website s media 3) know how to create new, linked web pages 4) know

More information

So you want to create an Email a Friend action

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;

More information

MICROSOFT ACCESS STEP BY STEP GUIDE

MICROSOFT ACCESS STEP BY STEP GUIDE IGCSE ICT SECTION 11 DATA MANIPULATION MICROSOFT ACCESS STEP BY STEP GUIDE Mark Nicholls ICT Lounge P a g e 1 Contents Task 35 details Page 3 Opening a new Database. Page 4 Importing.csv file into the

More information

Triggers & Actions 10

Triggers & Actions 10 Triggers & Actions 10 CHAPTER Introduction Triggers and actions are the building blocks that you can use to create interactivity and custom features. Once you understand how these building blocks work,

More information

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur Module 10 Coding and Testing Lesson 23 Code Review Specific Instructional Objectives At the end of this lesson the student would be able to: Identify the necessity of coding standards. Differentiate between

More information

A Comparison of Programming Languages for Graphical User Interface Programming

A Comparison of Programming Languages for Graphical User Interface Programming University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange University of Tennessee Honors Thesis Projects University of Tennessee Honors Program 4-2002 A Comparison of Programming

More information

EKT150 Introduction to Computer Programming. Wk1-Introduction to Computer and Computer Program

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

More information

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1 Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the SAI reports... 3 Running, Copying and Pasting reports... 4 Creating and linking a report... 5 Auto e-mailing reports...

More information

Visual Basic Programming. An Introduction

Visual Basic Programming. An Introduction Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides

More information

Excel macros made easy

Excel macros made easy IT Training Excel macros made easy Jane Barrett, IT Training & Engagement Team Information System Services Version 1.1 Scope Learning outcomes Understand the concept of what a macro is and what it does.

More information

Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide

Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide Open Crystal Reports From the Windows Start menu choose Programs and then Crystal Reports. Creating a Blank Report Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick

More information

GUIDE TO SEARCH ENGINE OPTIMISATION

GUIDE TO SEARCH ENGINE OPTIMISATION GUIDE TO SEARCH ENGINE OPTIMISATION How to drive more traffic to your website 2 April 2012 Version 1.0 Contents Contents 2 Introduction 4 Skill Level 4 Terminology 4 Video Tutorials 4 What is Search Engine

More information

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the Sage MAS Intelligence Reports... 3 Copying, Pasting and Renaming Reports... 4 To create a new report from an existing report...

More information

Content Author's Reference and Cookbook

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

More information

ACCESS 2007. Importing and Exporting Data Files. Information Technology. MS Access 2007 Users Guide. IT Training & Development (818) 677-1700

ACCESS 2007. Importing and Exporting Data Files. Information Technology. MS Access 2007 Users Guide. IT Training & Development (818) 677-1700 Information Technology MS Access 2007 Users Guide ACCESS 2007 Importing and Exporting Data Files IT Training & Development (818) 677-1700 training@csun.edu TABLE OF CONTENTS Introduction... 1 Import Excel

More information

RIT Installation Instructions

RIT Installation Instructions RIT User Guide Build 1.00 RIT Installation Instructions Table of Contents Introduction... 2 Introduction to Excel VBA (Developer)... 3 API Commands for RIT... 11 RIT API Initialization... 12 Algorithmic

More information

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0

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

More information

Week 2 Practical Objects and Turtles

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

More information

Testing, What is it Good For? Absolutely Everything!

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

More information

OKLAHOMA SUBJECT AREA TESTS (OSAT )

OKLAHOMA SUBJECT AREA TESTS (OSAT ) CERTIFICATION EXAMINATIONS FOR OKLAHOMA EDUCATORS (CEOE ) OKLAHOMA SUBJECT AREA TESTS (OSAT ) FIELD 081: COMPUTER SCIENCE September 2008 Subarea Range of Competencies I. Computer Use in Educational Environments

More information

Excel & Visual Basic for Applications (VBA)

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,

More information

Making the Right Choice

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

More information

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) 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

More information

VHDL Test Bench Tutorial

VHDL Test Bench Tutorial University of Pennsylvania Department of Electrical and Systems Engineering ESE171 - Digital Design Laboratory VHDL Test Bench Tutorial Purpose The goal of this tutorial is to demonstrate how to automate

More information

Decision Logic: if, if else, switch, Boolean conditions and variables

Decision Logic: if, if else, switch, Boolean conditions and variables CS 1044 roject 3 Fall 2009 Decision Logic: if, if else, switch, Boolean conditions and variables This programming assignment uses many of the ideas presented in sections 3 through 5 of the Dale/Weems text

More information

Hands-on Exercise 1: VBA Coding Basics

Hands-on Exercise 1: VBA Coding Basics Hands-on Exercise 1: VBA Coding Basics This exercise introduces the basics of coding in Access VBA. The concepts you will practise in this exercise are essential for successfully completing subsequent

More information

Developing a Load Testing Strategy

Developing a Load Testing Strategy Developing a Load Testing Strategy Michele Ruel St.George Bank CMGA 2005 Page 1 Overview... 3 What is load testing?... 4 Scalability Test... 4 Sustainability/Soak Test... 4 Comparison Test... 4 Worst Case...

More information

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share. LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.

More information

ESP MARKETING TEACHER S NOTES

ESP MARKETING TEACHER S NOTES Teacher s notes: Level 2 (Upper Intermediate Advanced) ESP MARKETING TEACHER S NOTES Worksheet A Pre-reading 1: Discussion Get students to discuss ideas as a class or in groups and then note their suggestions

More information

This white paper is an introduction to SEO principles, with a focus on applying those principles using your SiteSuite website management tools

This white paper is an introduction to SEO principles, with a focus on applying those principles using your SiteSuite website management tools Level 3 / 1 Bay Street, Broadway Shopping Centre, NSW 2007, Australia How to Use Your SiteSuite Content Management System to Apply Search Engine Optimisation (SEO) Techniques & Principles (or how to get

More information

#include <Gamer.h> Gamer gamer; void setup() { gamer.begin(); } void loop() {

#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

More information

Good FORTRAN Programs

Good FORTRAN Programs Good FORTRAN Programs Nick West Postgraduate Computing Lectures Good Fortran 1 What is a Good FORTRAN Program? It Works May be ~ impossible to prove e.g. Operating system. Robust Can handle bad data e.g.

More information

COMPUTER SCIENCE (5651) Test at a Glance

COMPUTER SCIENCE (5651) Test at a Glance COMPUTER SCIENCE (5651) Test at a Glance Test Name Computer Science Test Code 5651 Time Number of Questions Test Delivery 3 hours 100 selected-response questions Computer delivered Content Categories Approximate

More information

Small Business SEO Marketing an introduction

Small Business SEO Marketing an introduction Small Business SEO Marketing an introduction Optimax May 2012 www.optimaxads.com 1 CONTENTS Introduction 3 On Page Optimisation 3 How Google views your Web Site 5 How to check your web page code for SEO

More information

File Management Where did it go? Teachers College Summer Workshop

File Management Where did it go? Teachers College Summer Workshop File Management Where did it go? Teachers College Summer Workshop Barbara Wills University Computing Services Summer 2003 To Think About The Beginning of Wisdom is to Call Things by the Right Names --

More information

CS 106 Introduction to Computer Science I

CS 106 Introduction to Computer Science I CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper

More information

User Testing for Pre-Phase 2, Search 360 Janifer Holt and Barbara DeFelice

User Testing for Pre-Phase 2, Search 360 Janifer Holt and Barbara DeFelice User Testing for Pre-Phase 2, Search 360 Janifer Holt and Barbara DeFelice Charge To test the usability of the search box display format (including, terminology where to add help ) and the subject categories

More information

ScoMIS Encryption Service

ScoMIS Encryption Service Introduction This guide explains how to install the ScoMIS Encryption Service Software onto a laptop computer. There are three stages to the installation which should be completed in order. The installation

More information

WHO STEPS Surveillance Support Materials. STEPS Epi Info Training Guide

WHO STEPS Surveillance Support Materials. STEPS Epi Info Training Guide STEPS Epi Info Training Guide Department of Chronic Diseases and Health Promotion World Health Organization 20 Avenue Appia, 1211 Geneva 27, Switzerland For further information: www.who.int/chp/steps WHO

More information

Databases in Microsoft Access David M. Marcovitz, Ph.D.

Databases in Microsoft Access David M. Marcovitz, Ph.D. Databases in Microsoft Access David M. Marcovitz, Ph.D. Introduction Schools have been using integrated programs, such as Microsoft Works and Claris/AppleWorks, for many years to fulfill word processing,

More information

Welcome to Introduction to programming in Python

Welcome to Introduction to programming in Python Welcome to Introduction to programming in Python Suffolk One, Ipswich, 4:30 to 6:00 Tuesday Jan 14, Jan 21, Jan 28, Feb 11 Welcome Fire exits Toilets Refreshments 1 Learning objectives of the course An

More information

Isle Abbotts Village Hall

Isle Abbotts Village Hall Isle Abbotts Village Hall Accounting Procedures Owner: - Isle Abbotts Village Hall Management Committee Author: - D.C. Bradshaw Version: - 1.30 Release date: - January 1st, 2013 Revision History January

More information

Candidate A Exemplar Work

Candidate A Exemplar Work Candidate A Exemplar Work Part 1of 2 GCE in Applied ICT OCR Advanced GCE in Applied ICT: H515/H715 Unit G053: Developing and creating websites OCR 2011 Contents Contents 2 Introduction 3 Moderator s Commentary:

More information

Quick Guide. Passports in Microsoft PowerPoint. Getting Started with PowerPoint. Locating the PowerPoint Folder (PC) Locating PowerPoint (Mac)

Quick Guide. Passports in Microsoft PowerPoint. Getting Started with PowerPoint. Locating the PowerPoint Folder (PC) Locating PowerPoint (Mac) Passports in Microsoft PowerPoint Quick Guide Created Updated PowerPoint is a very versatile tool. It is usually used to create multimedia presentations and printed handouts but it is an almost perfect

More information

MEAP Edition Manning Early Access Program Hello! ios Development version 14

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

More information

HOUR 3 Creating Our First ASP.NET Web Page

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

More information

C A R I B B E A N E X A M I N A T I O N S REPORT ON CANDIDATES S WORK IN THE CARIBBEAN SECONDARY EDUCATION CERTIFICATE EXAMINATION MAY/JUNE 2012

C A R I B B E A N E X A M I N A T I O N S REPORT ON CANDIDATES S WORK IN THE CARIBBEAN SECONDARY EDUCATION CERTIFICATE EXAMINATION MAY/JUNE 2012 C A R I B B E A N E X A M I N A T I O N S COUNCIL REPORT ON CANDIDATES S WORK IN THE CARIBBEAN SECONDARY EDUCATION CERTIFICATE EXAMINATION MAY/JUNE 2012 INFORMATION TECHNOLOGY GENERAL PROFICIENCY EXAMINATION

More information

The Everyday Guide to Medical Data Archiving and Retrieval using Microsoft Access

The Everyday Guide to Medical Data Archiving and Retrieval using Microsoft Access Total Solution Packages for Today s Small Business The Everyday Guide to Medical Data Archiving and Retrieval using Microsoft Access Chapter 1 Introduction to Medical Data Archiving and Retrieval Data

More information

NHA. User Guide, Version 1.0. Production Tool

NHA. User Guide, Version 1.0. Production Tool NHA User Guide, Version 1.0 Production Tool Welcome to the National Health Accounts Production Tool National Health Accounts (NHA) is an internationally standardized methodology that tracks public and

More information

Email Basics. For more information on the Library and programs, visit www.bcpls.org BCPLS 08/10/2010 PEMA

Email Basics. For more information on the Library and programs, visit www.bcpls.org BCPLS 08/10/2010 PEMA Email Basics Email, short for Electronic Mail, consists of messages which are sent and received using the Internet. There are many different email services available that allow you to create an email account

More information

The first program: Little Crab

The first program: Little Crab CHAPTER 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,

More information

Switching from PC SAS to SAS Enterprise Guide Zhengxin (Cindy) Yang, inventiv Health Clinical, Princeton, NJ

Switching from PC SAS to SAS Enterprise Guide Zhengxin (Cindy) Yang, inventiv Health Clinical, Princeton, NJ PharmaSUG 2014 PO10 Switching from PC SAS to SAS Enterprise Guide Zhengxin (Cindy) Yang, inventiv Health Clinical, Princeton, NJ ABSTRACT As more and more organizations adapt to the SAS Enterprise Guide,

More information

Introduction to Open Atrium s workflow

Introduction to Open Atrium s workflow Okay welcome everybody! Thanks for attending the webinar today, my name is Mike Potter and we're going to be doing a demonstration today of some really exciting new features in open atrium 2 for handling

More information

Code Kingdoms Learning a Language

Code Kingdoms Learning a Language codekingdoms Code Kingdoms Unit 2 Learning a Language for kids, with kids, by kids. Resources overview We have produced a number of resources designed to help people use Code Kingdoms. There are introductory

More information

I m Miss Smith, and I teach English and German. Today I ll show you how I use NetSupport School to plan, prepare and conduct my classes.

I m Miss Smith, and I teach English and German. Today I ll show you how I use NetSupport School to plan, prepare and conduct my classes. 1 I m Miss Smith, and I teach English and German. Today I ll show you how I use NetSupport School to plan, prepare and conduct my classes. Before I take my first class, I ll guide you through the basics

More information

An Introduction to MPLAB Integrated Development Environment

An Introduction to MPLAB Integrated Development Environment An Introduction to MPLAB Integrated Development Environment 2004 Microchip Technology Incorporated An introduction to MPLAB Integrated Development Environment Slide 1 This seminar is an introduction to

More information

Budget Main Window (Single Bank Account) Budget Main Window (Multiple Bank Accounts)

Budget Main Window (Single Bank Account) Budget Main Window (Multiple Bank Accounts) Budget Main Window (Single Bank Account) Budget Main Window (Multiple Bank Accounts) Page 1 of 136 Using Budget Help Budget has extensive help features. To get help use Budget's Help > Budget Help menu

More information

Creating Custom Crystal Reports Tutorial

Creating Custom Crystal Reports Tutorial Creating Custom Crystal Reports Tutorial 020812 2012 Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or mechanical,

More information

Spreadsheet software for linear regression analysis

Spreadsheet software for linear regression analysis Spreadsheet software for linear regression analysis Robert Nau Fuqua School of Business, Duke University Copies of these slides together with individual Excel files that demonstrate each program are available

More information

Use Case: Tax system extracts tax payments from company database which is the actor in this company system?

Use Case: Tax system extracts tax payments from company database which is the actor in this company system? Use Case: Tax system extracts tax payments from company database which is the actor in this company system? 1. Company manager. 2. Employee 3. Tax System. 4. Company database. 1 Which of the following

More information

How to Use Excel for Law Firm Billing

How to Use Excel for Law Firm Billing How to Use Excel for Law Firm Billing FEATURED FACULTY: Staci Warne, Microsoft Certified Trainer (MCT) (801) 463-1213 computrainhelp@hotmail.com Staci Warne, Microsoft Certified Trainer (MCT) Staci Warne

More information

The Elective Part of the NSS ICT Curriculum D. Software Development

The Elective Part of the NSS ICT Curriculum D. Software Development of the NSS ICT Curriculum D. Software Development Mr. CHEUNG Wah-sang / Mr. WONG Wing-hong, Robert Member of CDC HKEAA Committee on ICT (Senior Secondary) 1 D. Software Development The concepts / skills

More information

White Paper. The Power of Siebel escripting at Runtime. Bringing Siebel Developer Closer to Rapid Application Development

White Paper. The Power of Siebel escripting at Runtime. Bringing Siebel Developer Closer to Rapid Application Development White Paper The Power of Siebel escripting at Runtime Bringing Siebel Developer Closer to Rapid Application Development A Simple Technique to Boost Productivity and Improve the Quality of Scripting in

More information

Microsoft Word 2010 Mail Merge (Level 3)

Microsoft Word 2010 Mail Merge (Level 3) IT Services Microsoft Word 2010 Mail Merge (Level 3) Contents Introduction...1 Creating a Data Set...2 Creating the Merge Document...2 The Mailings Tab...2 Modifying the List of Recipients...3 The Address

More information