issues to be addressed when defining the problem
performance requirements
list of requirements for the solution
- can become more specific set of specification under which the final product can be evaluated
main aspects of defining the problem
how to structure inputs and outputs
context diagram: level 0 data flow diagram which shows all external inputs + outputs
how to structure steps of a solution
IPO diagrams: input –> processing –> output
- shows all inputs, processes, and outputs and decides nature of processing
how to decide nature of processing
how to plan + design software solutions
abstraction
taking away/separating part of the problem/solution so that it can be considered in isolation
done through: breaking up solution into manageable modules
why is abstraction good
refinement
the process of developing a hierarchy of sub-routines
why is refinement good
system modelling tools
system model: representation of system; specifications to developers, structure + functionality
system flowcharts
data flow diagrams
structure charts
data types
raw material, stored in binary
binary
common predefined data types
integer
floating point
string
boolean
what is a subroutine
a set of statements that performs a single logical task
what is a module
a group of subroutines that achieve a subtask