SDD

    Cards (31)

    • Iterative Vs agile software development - Client interaction 

      Iterative

      Client is involved in the initial analysis stage and at the end of development to see if the software meets their needs

      Agile

      Client is involved throughout, giving constant feedback. |
      Feedback is quickly acted upon, changing goals during the process can be positive in terms of final client satisfaction
    • Iterative Vs Agile software development - Teamwork
      Iterative
      Team of programmers work independently on each phase of development, mainly work in isolation with some communication required between phases
      Agile
      Team of programmers collaborate rather than teams working independently, face to face communication between people with different skills is important in progressing the project quickly
    • Iterative Vs Agile software development - Documentation
      Iterative
      A detailed project specification is created at the start of the development process, time is spend during the project on design, program commentary and test plans
      Agile
      Focuses on reducing documentation, spends time on small cycles of coding, testing and adapting to change, any documentation produced should focus purely on progressing the project
    • Iterative Vs Agile software development - Measurement of progress
      Iterative
      Follows a strict plan with progress measured against timescales set at the beginning of the progress

      Agile
      Breaks a project into a series of short development goals. This involves cross-functional teams working on: planning, analysis, design, coding, unit testing and acceptance testing
      Agile focuses on delivering software as quickly as possible
    • Predictive Vs Adaptive
      Predictive
      Rely on effective early phase analysis and if this goes wrong, the project may have difficulty changing direction. 
      Institute a change control board to ensure they consider only the most valuable changes. 
      Adaptive
      An adaptive team has difficulty describing exactly what they will do next week but could report on which features they plan for next month. 
      The further away a date is, the vaguer an adaptive method is about what will happen on that date.
    • Iterative Vs Agile software development - Testing
      Iterative
      Testing is carried out when the implementation phases has been completed
      Agile
      There is no recognised testing stage, testing is carried out throughout the development
    • Analysis
      • Purpose: a general description of the purpose of the software. 
      • Scope: a list of the deliverables that the project will hand over to the client and/or end- user, e.g., design or completed program. It can also include any time limits for the project. 
      • Boundaries: the limits that help to define what is in the project and what is not. It can also clarify any assumptions made by the software developers regarding the client’s requirements. 
      • Functional requirements: the features and functions that must be delivered by the system in terms of inputs, processes and outputs. 
       
    • Design
      PSUEDOCODE
      • Top level design — the major steps of the design.
      • Data flow — shows the information that must flow In or Out from the sub-programs.
      • Refinements — break down the design from the top level when required.
      You can also use a flowchart or structure diagram to implement these steps
    • 1-D Array
      1-D Arrays allow programmers to store data in a list (provided that the data is of the same data type). 
      For example, to store a list of Scottish cities you could create a 1-D array. 
      A programmer can define the number of variables held in a list when they create a 1-D array. 
    • Index
      An index is created to identify each variable in the list . The index will start at 0
      It is the same as a counter
    • Number of elements
      it is common to identify the number of elements that need to be stored in the array when you use software development langugages. 
      E.g. a 1-D array for Scottish cities held in Visual Basic could be represented as: 
      Dim scottish_cities (7) as String 
       
      The value shown in brackets determines the number of elements that are held within the 1-D array. 
    • Records
      1-D arrays can only store data of the same data type. It is not possible to use a 1-D array to store multiple data types at the same time. 
      If you want to hold related data of different data types it is practical to use a record type. 
      This is known as using parallel arrays. 
      Alternatively, a record structure could be used.
      A record type to store information on each city would look like this when created using reference language
      RECORD cityData IS {STRING cityName, INTEGER population, INTEGER area km, BOOLEAN capital
    • Array of records
      Instead of using four arrays with four data types (name, population, area, capital): 
      • Use of a record could allow the program to store all of the desired information for each city within an array called scottish_cities 
      • The data type for the array of records would be the name of the record type, in this case cityData 
      DECLARE scottish_cities AS ARRAY OF cityData  
       
    • Local Variables
      A local variable is declared within one specific sub-program of a larger main program. 
      During the execution of this sub-program, the values of local variables will be held in RAM. 
      Upon completion of the execution of this sub-program the variable is no longer retained in RAM. This is more efficient in terms of demands on system resources. 
      The scope of a local variable is the sub-program where it has been declared.
    • Global Variables
      A global variable places greater demand on system resources - it needs to be retained in memory (RAM) throughout the entire execution of a program. 
      This ensures that the value of the global variable is accessible to each part of the program at all times.
      Errors in code can leave the value itself susceptible to accidental or unintentional change that can have a knock on effect elsewhere in the program.
      The scope of a global variable is the entire program.
    • Parameter Passing
      Parameter passing allows the values of local variables within a main program to be accessed, updated and used within multiple sub-programs without the need to create or use global variables. 
      • a main program is set up with local variables 
      • either the address of the local variable in RAM, or a copy of the value of the local variable can be passed to subprograms and functions when needed 
    • Data Flow
      The term data flow  is used to describe how data moves between sub-programs in a software development language. Data flow is often identified during design and implemented using parameter passing. 
      Data either flows out of a sub-program or into a sub-program. 
      IN- Data is passed into a sub-program 
      OUT - Data is passed out of a sub-program 
    • Input Validation
      DO 
      RECEIVE numStudents FROM KEYBOARD 
      IF (numStudents < 1) OR (numStudents > 5) THEN 
      SEND “Invalid Input -Try Again” TO DISPLAY 
      END IF 
      REPEAT UNTIL (numStudents >= 1) AND (numStudents <= 5)       ‘validating input in range 1 to 5 inclusive 
    • Finding Maximum
      SET maximum TO testscore [0] 
      FOR counter FROM 1 TO 9 DO 
      IF testscore[counter] > maximum THEN 
      SET maximum TO testscore[counter] 
      END IF 
      END FOR  
      SEND "The maximum value was " & maximum TO DISPLAY 
    • Finding Minimum
      SET minimum TO testscore [0] 
      FOR counter FROM 1 TO 9 DO 
      IF testscore[counter] < minimum THEN 
      SET minimum TO testscore[counter] 
      END IF 
      END FOR  
      SEND "The minimum value was " & minimum TO DISPLAY 
       
    • Count Occurences
      SET occurrence TO 0  
      RECEIVE desired_value FROM (INTEGER) KEYBOARD 
      FOR counter FROM 0 TO 9 DO 
      IF age [counter] = desired_value THEN 
      SET occurrence TO occurrence + 1 
      END IF 
      END FOR 
      SEND "There were " & occurrence & " occurrences of " & desired_value TO DISPLAY 
       
       
    • Linear Search
      SET item_found TO FALSE 
      SET counter TO 0 
      RECEIVE desired_item FROM (STRING) KEYBOARD 
      REPEAT 
      IF desired item = nation[counter] THEN 
      SET item found TO TRUE  
      SEND "The program found " & desired item & " at position " & counter & “ of the nation array.” TO DISPLAY 
      ELSE 
      SET counter TO counter + 1 
      END IF 
      UNTIL counter = 10 OR item found = TRUE 
      IF item_found = FALSE THEN 
      SEND “The program did not find a match for “ & desired_item & “ within the nation array.” TO DISPLAY 
      END IF 
       
       
    • Comprehensive Testing
      Your comprehensive plan could include: 
      • Test every process that is listed in the functional requirements (with various inputs) 
      • That the output of the process  is correct 
      • That data is passed into the process correctly 
      • That data is passed out (if applicable) of the process correctly 
      • The program produces the overall output you expected 
      • The program reads from/writes to files correctly 
      • The program runs in a reasonable period of time 
      • The program has a reasonable user interface 
    • Syntax Errors
      Syntax errors are (essentially) things like spelling mistakes, words in the wrong order, symbols in the wrong place, or any other time that your code breaks the rules of the language 
    • Logic Errors
      Logic errors are flaws in the designer’s or programmer’s logic, not in the program code itself. A logic error doesn’t produce an error message; this makes them hard to track down. Common logic errors would be mixing up > and <, or confusing AND and OR.
    • Execution Errors
      Execution errors happen when the program is running; the program “crashes” because of some input from the user. As an example, the program asks for a number. The user types “three” (in words), and the program crashes. A robust program (see evaluation) is more likely to cope with/avoid execution errors. 
      One type of execution error is the end-of-file (EOF). This happens if you are reading, say, 100 lines from a file. If you loop 101 times, and try to read the 101st line, your program will experience an end-of-file execution error.
    • Evaluation
      This reflects whether the software carries out all the tasks required of the software specification. 
       
      Your evaluation should identify any discrepancies between the software specification and the completed software. 
    • Coding constructs
      This reflects whether the software writers have used their knowledge of constructs to help them create efficient code. For example, using: 
       
      • suitable data types or structures 
      • conditional or fixed loops 
      • arrays 
      • nested selection 
      • procedures or functions with parameter passing 
       
      Your evaluation should identify where your coding has been efficient. 
    • Usability
      This reflects how intuitive the software is from a user’s perspective and should include: 
       
      • the general user interface 
      • the user prompts 
      • the screen layout 
      • any help screens 
       
      Your evaluation should identify features of the software that have enhanced usability for the user. 
       
    • Maintainability
      This reflects how easy it is to alter the software. The factors affecting maintainability include: 
       
      • readability of the code — made easier by using meaningful variable names, comments, indentation and whitespace 
      • amount of modularity — using functions and procedures effectively 
       
      Your evaluation should identify how your code helps with the maintainability of the software. 
       
    • Robustness
      This reflects how well the software copes with errors during execution including: 
       
      • exceptional data, e.g. the computer crashing if “out of range” 
      • incorrect data entered 
       
      Your evaluation should reflect the testing that has been undertaken to meet the specification, as well as to demonstrate some degree of robustness. 
       
    See similar decks