Software development slides

2,822 views

Published on

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,822
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
100
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software development slides

  1. 1. Software Development Mr Arthur
  2. 2. The Software Development Process <ul><li>The SDP Process is an Iterative process </li></ul><ul><li>This means that the stages are visited then revisited </li></ul><ul><li>When developing new software the developer would follow these steps </li></ul><ul><li>A Analysis </li></ul><ul><li>Dance Design </li></ul><ul><li>In Implementation </li></ul><ul><li>The Testing </li></ul><ul><li>Dark Documentation </li></ul><ul><li>Every Evaluation </li></ul><ul><li>Monday Maintenance </li></ul>
  3. 3. Analysis Stage <ul><li>Analysis = Deciding what type of software you want to create, and what features you want it to have. </li></ul><ul><li>At the Analysis stage the Customer, Systems Analyst and Programmer agree on the software required and create a Software Specification </li></ul><ul><li>Software Specification = a contract and legally binding document that outlines what the developer is going to create </li></ul>
  4. 4. Design Stage <ul><li>At the Design Stage the problem is broken down and a method of solving the problem is identified </li></ul><ul><li>Design Notations </li></ul><ul><ul><li>Algorithms – pseudocode (text based) </li></ul></ul><ul><ul><ul><li>Where you break the program up into steps in English </li></ul></ul></ul><ul><ul><li>Structure Diagrams </li></ul></ul><ul><ul><ul><li>Where you create a graphical representation of the steps </li></ul></ul></ul><ul><ul><ul><li>Linked boxes represent the difference subprograms </li></ul></ul></ul><ul><ul><ul><li>Links go left to right </li></ul></ul></ul><ul><ul><li>Flow Charts </li></ul></ul><ul><ul><ul><li>Use differently shaped boxes connected with arrows </li></ul></ul></ul><ul><ul><ul><li>Triangle may be if statement </li></ul></ul></ul><ul><ul><ul><li>Square may be use input </li></ul></ul></ul><ul><ul><ul><li>Circle may be output </li></ul></ul></ul>
  5. 5. Aims of Revision Lesson 2 <ul><li>Revise last lesson </li></ul><ul><ul><li>Analysis, Design, </li></ul></ul><ul><li>Continue with The Software Development Process </li></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Documentation </li></ul></ul><ul><ul><li>Evaluation </li></ul></ul><ul><ul><li>Maintenance </li></ul></ul><ul><li>Continue with peer teaching exercise on specified topic </li></ul><ul><li>Begin revision questions on the Shared Area on SDP </li></ul>
  6. 6. Implementation and Testing Stages <ul><li>Implementation </li></ul><ul><li>The programmer coding the algorithm into the chosen language </li></ul><ul><li>Testing </li></ul><ul><li>May involve an Independent Test Group to make sure the program meets the Program Specification </li></ul><ul><li>Program should accept 1-10 </li></ul><ul><li>Normal = data within the normal range (2-9) </li></ul><ul><li>Extreme = data at the boundaries of the normal range (1 and 10) </li></ul><ul><li>Exceptional = data outside the normal range (34, 56 etc) </li></ul>
  7. 7. Documentation Stage <ul><li>Documentation </li></ul><ul><li>User Guide = A set of instructions on how to install and use the software. May include tutorials and FAQs </li></ul><ul><li>Technical Guide = This document details the technical requirements i.e RAM, disk space. It may also info on previous versions and upgrades </li></ul>
  8. 8. Lesson Starter <ul><li>What is the difference between a User Guide and a Technical Guide </li></ul><ul><li>Describe 3 different types of Testing </li></ul><ul><li>What is the difference between Alpha and Beta Testing? </li></ul>
  9. 9. Aims of the Lesson <ul><li>Evaluation Stage of SDP </li></ul><ul><li>Complete SDP Past Paper Questions </li></ul>
  10. 10. Evaluation <ul><li>The client will receive an Evaluation Report outlining whether the software is Fit For Purpose (does it do what it is meant to do?) </li></ul><ul><li>Software is evaluated in terms of: </li></ul><ul><li>Robustness </li></ul><ul><ul><li>The ability of software to cope with input errors </li></ul></ul><ul><li>Reliability </li></ul><ul><ul><li>How well it operates without stopping due to design faults (How it copes with the correct input) </li></ul></ul><ul><li>Efficiency </li></ul><ul><ul><li>In terms of the amount of memory and processor time the software uses </li></ul></ul><ul><li>Portability </li></ul><ul><ul><li>The ability to run on different Operating systems </li></ul></ul>
  11. 11. Evaluation <ul><li>Maintainability </li></ul><ul><ul><li>This reflects how easy it is to make changes </li></ul></ul><ul><ul><ul><li>Readability = does it contain comments, white space, meaningful variable names, indented loops? </li></ul></ul></ul><ul><ul><ul><li>Modularity – does it uses functions (UCASE etc) and Subroutines (Call Getinfo) </li></ul></ul></ul><ul><ul><ul><li>Does it use a familiar programming language? </li></ul></ul></ul>
  12. 12. Aims of the Lesson <ul><li>To go over the Maintenance Stage of the SDP Process </li></ul>
  13. 13. Software Revision Quiz <ul><li>List the 7 stages of the Software Development Cycle </li></ul><ul><li>What document is created at the Analysis Stage </li></ul><ul><li>Give 2 Design notations that are used at the Design stage </li></ul><ul><li>A program asks for a number between 1 and 100. Name 3 tests that would be carried out to fully test the program. Give examples of the test data </li></ul><ul><li>Give 2 documents that are created at the Documentation stage of the SDP process </li></ul>
  14. 14. Aims of the Lesson 4 <ul><li>To exam in detail the Maintenance Stages of the SDP </li></ul><ul><li>To complete the baby programming task in pairs </li></ul>
  15. 15. Maintenance Stage <ul><li>Maintenance </li></ul><ul><li>Corrective </li></ul><ul><ul><li>Fixing errors in the program </li></ul></ul><ul><ul><li>Corrective Maintenance is not paid for by the customer as the software does not do what it is meant to and does not match the Software Specification </li></ul></ul><ul><li>Adaptive </li></ul><ul><ul><li>Changing the software to run on a different Operating System or environment </li></ul></ul><ul><li>Perfective </li></ul><ul><ul><li>Adding new features and improving the program in some way </li></ul></ul><ul><ul><li>The customer would pay for this as not in Software Spec </li></ul></ul>
  16. 16. SDP Keywords <ul><li>Top Down Design </li></ul><ul><ul><li>Where you break a programming problem down into simpler stages </li></ul></ul><ul><ul><li>Also known as Stepwise Refinement </li></ul></ul><ul><li>Bottom Up Design </li></ul><ul><ul><li>Where the programmer looks at current solutions available to solve a programming problem, possibly adapting existing modules </li></ul></ul><ul><li>Acceptance Testing </li></ul><ul><ul><li>Using Alpha and Beta testing to prove to Client that the software is working fully </li></ul></ul><ul><li>Exhaustive Testing </li></ul><ul><ul><li>Where you test a program with every possible input </li></ul></ul>
  17. 17. Aims of the Lesson 5 <ul><li>People involved in SDP Process </li></ul><ul><li>Documents created </li></ul>
  18. 18. People Involved in SDP <ul><li>Client </li></ul><ul><ul><li>The client commissions the software, describing the purpose of the software to the Analyst </li></ul></ul><ul><li>Systems Analyst </li></ul><ul><ul><li>The Systems Analyst, evaluates the problem statement, consults with the client and drafts the Software Specification </li></ul></ul><ul><li>Project Manager </li></ul><ul><ul><li>This person takes sole responsibility for keeping the development of software on track, managing time, budgets etc </li></ul></ul><ul><ul><li>The Project Manager liaises between the Systems Analyst and Programmer </li></ul></ul><ul><li>Programmer </li></ul><ul><ul><li>The programmer is responsible for converting the algorithm or flow chart into code </li></ul></ul>
  19. 19. Documents Created <ul><li>Analysis = Software Specification </li></ul><ul><li>Design = Algorithm, Structure Diagram, Flow Chart </li></ul><ul><li>Implementation = Structured Listing </li></ul><ul><ul><li>Print out of code </li></ul></ul><ul><li>Testing = Test Report </li></ul><ul><ul><li>Report outlining Normal, Extreme, Exceptional tests </li></ul></ul><ul><li>Documentation = User Guide/Technical Guide </li></ul><ul><li>Evaluation = Evaluation Report </li></ul><ul><ul><li>Document outlining Robustness, Reliability, Efficiency, Portability, Maintainability </li></ul></ul><ul><li>Maintentance = Maintenance Report </li></ul><ul><ul><li>Outline Correct, Adaptive, Perfective Maintenance if completed </li></ul></ul>
  20. 20. Type of Languages <ul><li>Procedural Language </li></ul><ul><ul><li>The most common kind of programming language </li></ul></ul><ul><ul><li>Sometimes referred to as Imperative languages </li></ul></ul><ul><ul><li>Use high level languages with commands that give instructions to the computer </li></ul></ul><ul><ul><li>Have clearly defined start and finish points </li></ul></ul><ul><ul><li>Pascal, C, True Basic </li></ul></ul>
  21. 21. Type of Languages <ul><li>Declarative Language </li></ul><ul><ul><li>In this type of language the programmer writes a series of facts and rules (knowledge base), for example </li></ul></ul><ul><ul><li>Mammal(monkey). </li></ul></ul><ul><ul><li>The user would then type in a Query to search the knowledge base </li></ul></ul><ul><ul><li>It would search the knowledge base by pattern matching </li></ul></ul><ul><ul><li>Prolog is an example </li></ul></ul><ul><ul><li>Used in Artificial Intelligence for Expert Systems, Vision Systems etc </li></ul></ul>
  22. 22. Type of Languages <ul><li>Scripting Language </li></ul><ul><ul><li>This type of language is used to embed in an Application, for example writing a piece of Scripting Code for a Macro </li></ul></ul><ul><ul><li>Macro = a stored list of actions that can be attached to a keypress </li></ul></ul><ul><ul><li>These simplify the use of frequently used instructions </li></ul></ul>
  23. 23. Type of Languages <ul><li>Event Driven Language </li></ul><ul><ul><li>These languages are similar to Procedural languages ,however, the code is attached to objects, such as buttons and are executed when an Event happens e.g. clicking on the Button or moving the mouse </li></ul></ul>
  24. 24. Aims of Revision Lesson 6 <ul><li>Software Development Process </li></ul><ul><ul><li>Analysis </li></ul></ul><ul><ul><li>Design </li></ul></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Documentation </li></ul></ul><ul><ul><li>Evaluation </li></ul></ul><ul><ul><li>Maintenance </li></ul></ul><ul><li>Top Down/Bottom Up </li></ul><ul><li>People Involved in SDP </li></ul><ul><li>Documents Created </li></ul><ul><li>Types of Languages </li></ul><ul><li>Today’s Lesson </li></ul><ul><li>Translation </li></ul><ul><ul><li>Interpreter V Compiler </li></ul></ul>
  25. 25. Translators <ul><li>A translator is used to convert high level languages to machine code </li></ul><ul><li>Interpreters </li></ul><ul><ul><li>An Interpreter translates programs one line at a time </li></ul></ul><ul><ul><li>The Interpreter must be present in RAM during the translation process </li></ul></ul><ul><ul><li>The Interpreter reports errors line by line rather than at the end = makes it easier for beginners to fix bugs </li></ul></ul><ul><ul><li>Interpreters are slower than Compilers as each line of code is translated each time the program is run </li></ul></ul>
  26. 26. Compilers <ul><li>A Compiler translates the HLL (Source code) into Machine Code (Object Code) </li></ul><ul><li>The Object Code runs very fast as it is in the Computers own language e.g. machine code </li></ul><ul><li>The object code can be saved and run without the Compiler which means you don’t need the Compiler present in RAM </li></ul><ul><li>Compilers do not identify errors line by line </li></ul><ul><li>If you have a loop which loops 100 times the Compiler would not go round the loop translating it 100 times </li></ul>
  27. 27. Module Libraries <ul><li>Module libraries contain prewritten and pretested sections of code. </li></ul><ul><li>Advantages </li></ul><ul><ul><li>You do not need to write code for problems that have already been solved </li></ul></ul><ul><ul><li>The code has already been checked for errors </li></ul></ul><ul><ul><li>The modules will already have well documented code </li></ul></ul>
  28. 28. SDP Quiz <ul><li>Name the document produced at the end of the Analysis Stage? </li></ul><ul><li>Explain why the SDP is often referred to as being an Iterative process? </li></ul><ul><li>Describe the purpose of a Flow Chart, use a diagram </li></ul><ul><li>Give 2 ways of improving the readability of a program </li></ul><ul><li>State the variable type that would be used to store a yes/no </li></ul>
  29. 29. SDP Quiz <ul><li>Name the type of programming language used to create macros </li></ul><ul><li>Name the type of programming language used in AI to represent facts and rules </li></ul><ul><li>Pseudocode should include data flow. State the purpose of data flow? </li></ul><ul><li>What is the difference between Alpha and Beta testing? </li></ul><ul><li>Several months after the software has been in use, the bank asks RightIT to include another option in a menu. What type of Maintenance is this, Justify your answer </li></ul>
  30. 30. SDP Quiz <ul><li>What is the difference between reliability and robustness? </li></ul><ul><li>A module library will save programmers times as they will not have to code or test these modules. State one other advantage of using modules </li></ul><ul><li>What type of programming language would be used with a GUI interface? Justify your answer </li></ul><ul><li>What is the difference between a Top Down and a Bottom Up approach to programming </li></ul><ul><li>Give 2 differences between a User Guide and a Technical Guide </li></ul>
  31. 31. SDP Quiz <ul><li>The options selected during the day are stored as a list. The bank would like the software to calculate the number of times the mobile top up option appears on the list. Use pseudocode to design the algorithm to carry out this calculation </li></ul><ul><li>1.1 For each option in the list </li></ul><ul><li>1.2 if current option equals “Mobile Top Up” then </li></ul><ul><li>1.3 add 1 to counter </li></ul><ul><li>1.4 end if </li></ul><ul><li>1.5 Close for loop </li></ul>
  32. 32. Aims of Revision Lesson 6 <ul><li>Software Development Process </li></ul><ul><ul><li>Analysis </li></ul></ul><ul><ul><li>Design </li></ul></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Documentation </li></ul></ul><ul><ul><li>Evaluation </li></ul></ul><ul><ul><li>Maintenance </li></ul></ul><ul><li>Top Down/Bottom Up </li></ul><ul><li>People Involved in SDP </li></ul><ul><li>Documents Created </li></ul><ul><li>Types of Languages </li></ul><ul><li>Compilers/Interpreters </li></ul><ul><li>Module libraries </li></ul><ul><li>Today’s Lesson </li></ul><ul><ul><li>Systematic </li></ul></ul><ul><ul><li>Comprehensive Testing </li></ul></ul>
  33. 33. Testing <ul><li>Systematic </li></ul><ul><ul><li>Systematic testing means that your testing follows a plan and it not haphazard </li></ul></ul><ul><ul><li>Use a Test Plan </li></ul></ul><ul><ul><ul><li>What program is being tested </li></ul></ul></ul><ul><ul><ul><li>What should the program do? </li></ul></ul></ul><ul><ul><ul><li>List suitable test data </li></ul></ul></ul><ul><ul><ul><li>Plan expected results or desired outcomes </li></ul></ul></ul><ul><li>Comprehensive Testing </li></ul><ul><ul><li>Test your program as thoroughly and completely as you can </li></ul></ul><ul><ul><li>Use alpha and beta groups </li></ul></ul><ul><ul><li>Use normal, extreme and exceptional tests </li></ul></ul><ul><ul><li>Try to complete exhaustive testing if possible </li></ul></ul>
  34. 34. Aims of Revision Lesson 7 <ul><li>Software Development Process </li></ul><ul><ul><li>Analysis </li></ul></ul><ul><ul><li>Design </li></ul></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Documentation </li></ul></ul><ul><ul><li>Evaluation </li></ul></ul><ul><ul><li>Maintenance </li></ul></ul><ul><li>Top Down/Bottom Up </li></ul><ul><li>People Involved in SDP </li></ul><ul><li>Documents Created </li></ul><ul><li>Types of Languages </li></ul><ul><li>Compilers/Interpreters </li></ul><ul><li>Module libraries </li></ul><ul><li>Systematic Testing </li></ul><ul><li>Comprehensive Testing </li></ul><ul><li>Today’s Lesson </li></ul><ul><li>Simple Variable types </li></ul><ul><li>String Manipulation </li></ul>
  35. 35. Variable Types <ul><li>String – used for storing text </li></ul><ul><li>Integer – used for storing positive and negative whole numbers </li></ul><ul><li>Single – used for storing real numbers (non whole) </li></ul><ul><li>Boolean – used for storing true/false </li></ul><ul><li>String Manipulation </li></ul><ul><ul><li>Concatenation </li></ul></ul><ul><ul><ul><li>This is where you add together strings </li></ul></ul></ul><ul><ul><ul><li>Use & key </li></ul></ul></ul><ul><li>Firstname = “Happy” </li></ul><ul><li>Surname = “Gilmour </li></ul><ul><li>Username = Firstname & Surname </li></ul>
  36. 36. String Manipulation <ul><li>Substrings </li></ul><ul><ul><li>This is where you slice strings and can manipulate certain parts </li></ul></ul><ul><ul><li>firstname = “happy” </li></ul></ul><ul><ul><li>substr = left(firstname, 1) </li></ul></ul><ul><ul><ul><li>This would store the h </li></ul></ul></ul><ul><ul><li>substr = right(firstname, 3) </li></ul></ul><ul><ul><ul><li>This would store the ppy </li></ul></ul></ul><ul><ul><li>substr = mid(firstname, 2,3) </li></ul></ul><ul><ul><ul><li>This would store the app </li></ul></ul></ul>
  37. 37. Aims of Revision Lesson 8 <ul><li>Software Development Process </li></ul><ul><ul><li>Analysis </li></ul></ul><ul><ul><li>Design </li></ul></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Documentation </li></ul></ul><ul><ul><li>Evaluation </li></ul></ul><ul><ul><li>Maintenance </li></ul></ul><ul><li>Top Down/Bottom Up </li></ul><ul><li>People Involved in SDP </li></ul><ul><li>Documents Created </li></ul><ul><li>Types of Languages </li></ul><ul><li>Compilers/Interpreters </li></ul><ul><li>Module libraries </li></ul><ul><li>Systematic Testing </li></ul><ul><li>Comprehensive Testing </li></ul><ul><li>Today’s Lesson </li></ul><ul><li>Simple Variable types </li></ul><ul><li>String Manipulation </li></ul><ul><li>Formatting of I/O </li></ul><ul><li>1 Dimensional Arrays </li></ul>
  38. 38. Formatting of Input/Output <ul><li>Arranging the appearance of the data on the screen during I/O </li></ul><ul><li>Example </li></ul><ul><ul><li>picDisplay.print “Hello”; tab(20); “Happy” </li></ul></ul><ul><li>You could also use functions to alter the colour, font style, alignment etc of the output </li></ul><ul><li>NewFont(fnt.Name, 12, FontStyle.Bold) </li></ul>
  39. 39. 1 Dimensional Arrays <ul><li>Where you store a list of data of the same data type </li></ul><ul><li>Each element of the array is identified by the variable name and index number </li></ul><ul><ul><li>Name(1) </li></ul></ul><ul><ul><li>Name(2) </li></ul></ul><ul><ul><li>Name(3) </li></ul></ul><ul><li>When declaring them at the start the user needs to state the name and size of the array </li></ul><ul><li>Dim name(1 to 5) as string </li></ul>
  40. 40. Aims of Revision Lesson 8 <ul><li>Software Development Process </li></ul><ul><ul><li>Analysis </li></ul></ul><ul><ul><li>Design </li></ul></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Documentation </li></ul></ul><ul><ul><li>Evaluation </li></ul></ul><ul><ul><li>Maintenance </li></ul></ul><ul><li>Top Down/Bottom Up </li></ul><ul><li>People Involved in SDP </li></ul><ul><li>Documents Created </li></ul><ul><li>Types of Languages </li></ul><ul><li>Compilers/Interpreters </li></ul><ul><li>Module libraries </li></ul><ul><li>Systematic Testing </li></ul><ul><li>Comprehensive Testing </li></ul><ul><li>Today’s Lesson </li></ul><ul><li>Simple Variable types </li></ul><ul><li>String Manipulation </li></ul><ul><li>Formatting of I/O </li></ul><ul><li>1 Dimensional Arrays </li></ul><ul><li>Local/Global Variables </li></ul>
  41. 41. Local/Global Variables <ul><li>Local Variables </li></ul><ul><ul><li>Local variables exist only within a subprogram and cannot be accessed from elsewhere in the code </li></ul></ul><ul><ul><li>Reduces the possibility of wrongly changing the contents of a variable </li></ul></ul><ul><ul><li>Teams of programmers can work independently as variables have limited scope and using different local variable names has not effect on other parts of the program </li></ul></ul><ul><li>Global Variables </li></ul><ul><ul><li>Global variables are created in the main part of the program and can accessed from any subprogram </li></ul></ul><ul><ul><li>The scope of a Global Variable is the entire program, including all subprograms </li></ul></ul>
  42. 42. Aims of Revision Lesson 8 <ul><li>Software Development Process </li></ul><ul><ul><li>Analysis </li></ul></ul><ul><ul><li>Design </li></ul></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Documentation </li></ul></ul><ul><ul><li>Evaluation </li></ul></ul><ul><ul><li>Maintenance </li></ul></ul><ul><li>Top Down/Bottom Up </li></ul><ul><li>People Involved in SDP </li></ul><ul><li>Documents Created </li></ul><ul><li>Types of Languages </li></ul><ul><li>Compilers/Interpreters </li></ul><ul><li>Module libraries </li></ul><ul><li>Systematic Testing </li></ul><ul><li>Comprehensive Testing </li></ul><ul><li>Today’s Lesson </li></ul><ul><li>Simple Variable types </li></ul><ul><li>String Manipulation </li></ul><ul><li>Formatting of I/O </li></ul><ul><li>1 Dimensional Arrays </li></ul><ul><li>Local/Global Variables </li></ul><ul><li>Parameter Passing </li></ul><ul><ul><li>By Value </li></ul></ul><ul><ul><li>By Reference </li></ul></ul>
  43. 43. Parameter Passing <ul><li>By Value </li></ul><ul><ul><li>When a parameter is passed by value into a subroutine, a copy is made of the variable </li></ul></ul><ul><ul><li>The contents of the original variable is not changed </li></ul></ul><ul><ul><li>In parameter </li></ul></ul><ul><ul><li>You pass byval if you want to use the variable but not make changes to its contents </li></ul></ul><ul><li>By Reference </li></ul><ul><ul><li>Passing by reference allows data to be passed into a subroutine, changed and then passed back out </li></ul></ul><ul><ul><li>It works by passing the address of the variable </li></ul></ul><ul><ul><li>2 way data transfer </li></ul></ul>
  44. 44. Aims of Revision Lesson 9 <ul><li>Software Development Process </li></ul><ul><ul><li>Analysis </li></ul></ul><ul><ul><li>Design </li></ul></ul><ul><ul><li>Implementation </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Documentation </li></ul></ul><ul><ul><li>Evaluation </li></ul></ul><ul><ul><li>Maintenance </li></ul></ul><ul><li>Top Down/Bottom Up </li></ul><ul><li>People Involved in SDP </li></ul><ul><li>Documents Created </li></ul><ul><li>Types of Languages </li></ul><ul><li>Compilers/Interpreters </li></ul><ul><li>Module libraries </li></ul><ul><li>Systematic Testing </li></ul><ul><li>Comprehensive Testing </li></ul><ul><li>Today’s Lesson </li></ul><ul><li>Simple Variable types </li></ul><ul><li>String Manipulation </li></ul><ul><li>Formatting of I/O </li></ul><ul><li>1 Dimensional Arrays </li></ul><ul><li>Local/Global Variables </li></ul><ul><li>Parameter Passing </li></ul><ul><ul><li>By Value </li></ul></ul><ul><ul><li>By Reference </li></ul></ul><ul><li>Multiple Selection </li></ul><ul><li>Sub routines </li></ul><ul><li>Functions </li></ul>
  45. 45. Multiple Selection <ul><li>You use If statements if you want to make decisions </li></ul><ul><li>If….then……elseif…….else etc </li></ul><ul><li>Case statements are used when there are multiple outcomes </li></ul><ul><li>Case “A” </li></ul><ul><li>picDisplay.print “Excellent Pupil” </li></ul><ul><li>Case “B” </li></ul><ul><li>picDisplay.print “Good Pupil” </li></ul><ul><li>Case “C” </li></ul><ul><ul><li>picDisplay.print “Ok Pupil” </li></ul></ul><ul><ul><li>Case “D” </li></ul></ul><ul><ul><li>picDisplay.print “Unhappy Teacher” </li></ul></ul>
  46. 46. Functions/SubRoutines <ul><li>Functions </li></ul><ul><li>Similar to SubRoutines but they can only return 1 value </li></ul><ul><li>answer = ucase(answer) </li></ul><ul><li>uname = left(answer,3) </li></ul><ul><li>SubRoutines </li></ul><ul><ul><li>Sections of code which do specific tasks </li></ul></ul><ul><ul><li>These are called from the Main Body of code </li></ul></ul><ul><ul><li>You pass parameters to and from these SubRoutines </li></ul></ul><ul><ul><li>They can return multiple values </li></ul></ul>
  47. 47. Prelim Revision Quiz <ul><li>State the number of bits required to represent 65,536 colours </li></ul><ul><li>State the number of bits required to represent 262,144 colours </li></ul><ul><li>State 2 methods of creating a Macro </li></ul><ul><li>Describe 2 benefits to the programmer of writing modular code </li></ul><ul><li>Explain why it is good practice to avoid the unnecessary use of Global variables? </li></ul><ul><li>Use a Diagram to describe the difference between serial and parallel data transmission </li></ul><ul><li>I have a 4 by 3 inch image with a Res of 650 dpi using 14 bit colour depth. Calculate the storage requirements </li></ul>
  48. 48. Standard Algorithms <ul><li>Counting Occurrences </li></ul><ul><li>5.1 Set the Counter to 0  </li></ul><ul><li>5.2 Loop round for all the positions in the array </li></ul><ul><li>5.3 If the current position is “Chips” </li></ul><ul><li>5.4 Add 1 to Counter </li></ul><ul><li>5.5 End If </li></ul><ul><li>5.6 Close loop </li></ul>
  49. 49. Standard Algorithms <ul><li>Find Maximum </li></ul><ul><li>3.1 Set the lowest place in the array to maximum </li></ul><ul><li>3.2 For the size of the array </li></ul><ul><li>3.3 If the current score is higher than maximum then set to maximum </li></ul><ul><li>3.4 End if </li></ul><ul><li>3.5 Loop </li></ul><ul><li>Linear Search </li></ul><ul><li>4.1 Ask user for the target golfer </li></ul><ul><li>4.2 loop for each item in the list </li></ul><ul><li>4.3 If current item = target value then </li></ul><ul><li>4.4 Display message showing their score </li></ul><ul><li>4.5 Else display an error message </li></ul><ul><li>4.5 end if </li></ul><ul><li>4.6 end loop </li></ul>
  50. 50. Standard Algorithms <ul><li>Input Validation </li></ul><ul><li>1.1 Get name of golfer and score for the round </li></ul><ul><li>1.2 Do while score < 55 and score > 120 </li></ul><ul><li>1.3 Display an error message, prompt user to re-enter </li></ul><ul><li>1.4 End loop </li></ul><ul><li>Find Minimum </li></ul><ul><li>2.1 Set the lowest place in the array to minimum </li></ul><ul><li>2.2 For the size of the array </li></ul><ul><li>2.3 If the current score is lower than minimum then set to minimum </li></ul><ul><li>2.4 End if </li></ul><ul><li>2.5 Loop </li></ul>
  51. 51. <ul><li>Software development process </li></ul><ul><li>♦ Explanation of the iterative nature of the software development process </li></ul><ul><li>♦ Description of the purposes of the software specification, and its status as a legal contract </li></ul><ul><li>♦ Explanation of the importance of each stage (analysis, design, implementation, testing, documentation, evaluation, maintenance) of the development process </li></ul><ul><li>♦ Identification of the personnel at each stage (client, systems analyst, project manager, programmer, independent test group) and brief description of their roles </li></ul><ul><li>♦ Description and exemplification of pseudocode and one graphical design notation (structure diagram or other suitable) including data flow </li></ul><ul><li>♦ Description and exemplification of top-down design and stepwise refinement </li></ul><ul><li>♦ Explanation of the need for systematic and comprehensive testing </li></ul><ul><li>♦ Explanation of the need for documentation at each stage </li></ul><ul><li>♦ Evaluation of software in terms of robustness, reliability, portability, efficiency and maintainability </li></ul><ul><li>♦ Description and exemplification of corrective, adaptive and perfective maintenance </li></ul>
  52. 52. <ul><li>Software development languages and environments </li></ul><ul><li>♦ Description and comparison of procedural, declarative and event-driven languages </li></ul><ul><li>♦ Comparison of the functions, uses and efficiency of compilers and interpreters </li></ul><ul><li>♦ Description of the features and uses of scripting language (including creating and editing a macro) </li></ul><ul><li>♦ Explanation of the need for and benefits of scripting languages </li></ul><ul><li>♦ Description of the use of module libraries </li></ul><ul><li>High level programming language constructs </li></ul><ul><li>♦ Description and exemplification of the following constructs in pseudocode and an appropriate high level language: string operations (concatenation and substrings), formatting of I/O, CASE (or equivalent multiple outcome selection) </li></ul><ul><li>♦ Description and exemplification of real, integer and boolean variables; and 1-D arrays </li></ul><ul><li>♦ Description and exemplification of procedures/subroutines/subprograms, user-defined functions, modularity, parameter passing (in, out, in/out), call by reference/value, local and global variables, scope </li></ul><ul><li>Standard algorithms </li></ul><ul><li>♦ Description and exemplification of the following standard algorithms in pseudocode and an appropriate high level language: </li></ul><ul><ul><li>- linear search </li></ul></ul><ul><ul><li>- counting occurrences </li></ul></ul><ul><ul><li>- finding min/max </li></ul></ul>

×