chapter 4 Flashcards
issues to be addressed when defining the problem
- requirements of the solution
- possible/cost-efficient??
- constraints vs resources available
- similar existing solutions
- team’s skill level
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
- understanding crucial details
- inputs + outputs + processing
- steps the solution must have
- specifications of solution from client
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
- consider a smaller version of the problem
- related/similar problems
- breaking down the problem
- brainstorming possibilities
how to plan + design software solutions
- systematic breakdown
- think of nature of data + data structures
- design solution + algorithms
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
- encourages reusable modules of code
- simplifies testing process
refinement
the process of developing a hierarchy of sub-routines
why is refinement good
- 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
system modelling tools
system model: representation of system; specifications to developers, structure + functionality
system flowcharts
- demonstrates logic = flow of data through system
- high-level, provides overview of the whole system
data flow diagrams
- 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
structure charts
- 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