week 1 summary
Gergő Pintér, PhD
gergo.pinter@uni-corvinus.hu
program is like a recipe
- executing a program is following a recipe
- programming is like creating a recipe
- software development is like running a restaurant
- come up with recipes,
- cook the food,
- ingredient logistics and preparation,
- food serving,
- marketing,
- cleaning
software development often compared to house building
- because it is an engineering discipline
- but software does not have to obey the laws of physics
- software design should focus only on the data structures and the
connection between the modules
- not the implementation details
(e.g., hardware)
software development is more like gardening
- a garden might be planned
- external factors influence the result
- garden needs constant care to bloom
- sometimes also experimentation
- garden is like an art (with function)
software growth
- number of lines of code is increasing
- which increases complexity
- “every line of code written comes at a price: maintenance” [1]
- larger garden, more gardening
- software development processes to handle the complexity
evolution of software life cycle models (incomplete)
- software life cycle models
- waterfall
- V model
- iterative
- agile
- regarding to change management
waterfall model
- sequential, rigid model
- (originally) not possible to step back to a previous phase
- testing is after the implementation, errors are found late in the
process
- not possible to make changes during the development
- could take years
V model
- still rigid
- each phase has output and a review process
- errors are found at early stage
- decreases the risk of failure
- large to small: testing is done in a hierarchical perspective
iterative model
- software is built incrementally,
- with each iteration adding new features or refining existing
ones
- possible to get feedback after each iteration
- can be rigid within an iteration
agile model
- continuous collaboration and fast response to change, while the
iterative model takes a more gradual approach, building up the final
product over multiple iterations
- scrum is an agile methodology