Software Design And Development Flashcards
What is the agile design methodology
Each step can be revisited, copes well with unpredictability and rapid change
Client gives constant feedback throughout
Face to face communication, lots of collaboration
Small cycles of coding, testing and adapting, reduces documentation
Difficult to predict whats happening next, adaptive
Testing carried out while programming
What are 2 benefits of agile methodology over iterative methodology
- More communication with client, live and constant feedback
- Each step can be revisited throughout the process, adapts well to change
What is the role of the client in an agile methodology?
- Details requirements
- Outlines scope and boundaries
- Evaluates prototype/suggest changes
- Provides feedback/liaising with development team throughout process
What is the iterative design methodology?
Linear, client involved at analysis stage and end of development.
Teams work independently
Detailed project specs and legal contract
Predictable, difficulty changing direction
Testing done after implementation
What are 2 advantages of the iterative design methodology over adaptive design methodology?
- It’s easy to make and meet deadlines
- Everything is organised and straightforward
What is purpose in the analysis stage?
General description of the purpose of the software
What are functional requirements in the analysis stage?
Inputs, processes and outputs
What is scope in the analysis stage?
Deliverables that are handed over at the end of the project (e.g. completed program, test results, evaluation report)
What are boundaries in the analysis stage?
Limits of what the program can and can’t do, clarifies assumptions
List the 3 types of errors?
Syntax error
Logic error
Execution error
What are syntax errors?
Errors where the program wont run, usually caused by misspellings or missing symbols, lines of code etc
What are logic errors?
Errors where the program runs fine but outputs something unexpected, usually caused by using and instead of or (or vice versa), using < instead of > (or vice versa) or any other wrong symbol or logical operator
What are execution errors?
Errors where the program crashes unexpectedly
How to create record structure?
Record recordname is
(name as string, age as integer, height as real/single)
End record
How to find maximum? (construct)
Set max to array(0)
For counter 1 to (length of array - 1)
If array(counter) > max then
Set max to array(counter)
End if
Next loop
How to find minimum? (construct)
Set min to array(0)
For counter 1 to (length of array - 1)
If array(counter) < min then
Set min to array(counter)
End if
Next loop
How to do count occurence? (construct)
Receive target from keyboard
Set numFound to 0
For counter 1 to (length of array - 1)
If array(counter) = target then
Set numFound to numFound + 1
End if
Next loop
How to do linear search? (construct)
Receive target from keyboard
Set found to false
Set position to 0
For counter 1 to (length of array - 1)
If array(counter) = target then
Set found to true
Set position to counter
End if
Next loop
If found = true
Display target and position
Else
Display target not found
End if
How to write to file?
Create “filename.txt”
Loop through array
Send array(loop) to “filename.txt”
Next loop
Close “filename.txt”
How to read from file?
Open “filename.txt”
Loop through contents of file
Add to contents(loop)
Next loop
Close “filename.txt”
What are the predefined functions ASC and CHR?
ASC gives the ASCII code for a character
ASCIIvalue=ASC(Character)
CHR gives the character of an ASCII value
Character=CHR(ASCIIvalue)
What is the predefined function INT?
Converts floating point number to integer
Integer=INT(Decimal)
What is the predefined function MOD?
It returns the remained of a division
Remainder=7 MOD 2
Would return 1
What is the predefined function MID?
LEFT, RIGHT and MID are string functions that take part of the string either from the left, right or any point respectively.
What are the 2 scopes of variables?
Global - able to be accessed by the whole program
Local - only accessed hy the subprograms/functions they’re in
What is the difference between actual and formal parameters?
Actual parameters are the parameters in the main program
Formal parameters are the names of variables which link to the actual parameters but don’t need to have the same name
(Luna’s Analogy: actual parameters are the parameters as they are naturally, like being at home. Formal parameters are essentially at the work place)
What is the difference between a procedure/subprogram and a function?
A function is used only for input values and returns a single value
A procedure/subprogram can be used for input and output values and returns several values
What are 2 benefits of modularity?
- It allows sections of code to be self contained
- Different subprograms can be developed by different programmers without variable name clashes
- Subprograms can be reused without any extra coding which saves time
- It makes it easier to identify and solve any errors
What is the difference between passing parameters with by reference and by value
By ref - changes original value (the actual parameter)
By val - used when parameter is used but not changed
What are the different points of evaluation? (Name at least 3)
- Fitness for purpose
- Efficient use of coding constructs
- Suitable data types/structures
- Modularity/parameter passing (subprograms)
- Usability (user interface, prompts, help provided, visual layout)
- Maintainability (white space, comment lines, meaningful variable names)
- Robustness (doesn’t crash, input validation)
What are testing/debugging techniques?
- Dry run
- Watchpoint
- Breakpoint
What is a dry run?
Manually reading through each line of code using test data. Every change is recorded in a table (basically just looking through code)
What are watch points and break points?
Breakpoints stop the program ar a particular line of code allowed you to inspect and analyse variables
Watchpoints stop the programs when a variable value changes or meets a condition
How to design a user interface?
Inputs require buttons/input boxes and outputs require a listbox to display the information