chapter 4 Flashcards

1
Q

issues to be addressed when defining the problem

A
  • requirements of the solution
  • possible/cost-efficient??
  • constraints vs resources available
  • similar existing solutions
  • team’s skill level
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

performance requirements

A

list of requirements for the solution
- can become more specific set of specification under which the final product can be evaluated

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

main aspects of defining the problem

A
  1. understanding crucial details
  2. inputs + outputs + processing
  3. steps the solution must have
  4. specifications of solution from client
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

how to structure inputs and outputs

A

context diagram: level 0 data flow diagram which shows all external inputs + outputs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

how to structure steps of a solution

A

IPO diagrams: input –> processing –> output
- shows all inputs, processes, and outputs and decides nature of processing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

how to decide nature of processing

A
  • consider a smaller version of the problem
  • related/similar problems
  • breaking down the problem
  • brainstorming possibilities
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

how to plan + design software solutions

A
  • systematic breakdown
  • think of nature of data + data structures
  • design solution + algorithms
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

abstraction

A

taking away/separating part of the problem/solution so that it can be considered in isolation
done through: breaking up solution into manageable modules

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

why is abstraction good

A
  • encourages reusable modules of code
  • simplifies testing process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

refinement

A

the process of developing a hierarchy of sub-routines

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

why is refinement good

A
  • each high-level routine can access/call one or more low-level sub-routines
  • code may not be reusable, but tailored to the specific problem
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

system modelling tools

A

system model: representation of system; specifications to developers, structure + functionality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

system flowcharts

A
  • demonstrates logic = flow of data through system
  • high-level, provides overview of the whole system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

data flow diagrams

A
  • describes the flow data takes through the system
  • no timing of events indicated
  • data stores: repositories for data, can be physical or digital
  • external entities: = terminators, starting + ending points
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

structure charts

A
  • used to model hierarchy of subroutines + sequence in which they take place
  • flow of data + data movements for clarity
  • top-down design most popular, with decisions + repetitions included
  • primary functions: top to bottom, left to right describing sequence
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

data types

A

raw material, stored in binary

17
Q

binary

A
  • base 2, 0 + 1
  • yes or no, on or off
  • based off transistors with only two states; on and off
  • 8 bits = byte
  • meaning dependant on context
18
Q

common predefined data types

A
  • integer
  • floating point
  • string
  • boolean
  • date
  • currency
19
Q

integer

A
  • positive or negative
  • WHOLE NUMBER!!
  • no fractional values
  • no. of bytes indicate range of integers which can be stored
  • if a value outside the range is stored, will be mistype error
  • calculations = fast + accurate
20
Q

floating point

A
  • real numbers: fractional + large values
  • the larger the number, the slower the processing + more storage needed
  • single precision: 32 bits
  • double precision: 64 bits
  • possible inaccuracies + high processing demands
21
Q

string

A
  • text data
  • fixed length string: a string with a max. length
  • dynamic length string: a string with no max. length
  • unicode: universal code with everything
22
Q

boolean

A
  • logical data
  • true or false(yes or no)
  • only two possible states
  • 1 bool = 1 bit
  • commonly used to signal whether section of code has been executed or not
23
Q

what is a subroutine

A

a set of statements that performs a single logical task

24
Q

what is a module

A

a group of subroutines that achieve a subtask

25
Q

what is a program

A

all the modules required to perform required task