The document discusses several software life-cycle models:
1) Code-and-fix model - writing code without design or requirements, fixing as needed, which leads to maintenance issues.
2) Waterfall model - phases are completed sequentially with documentation and approval between phases.
3) Rapid prototyping - an initial prototype gets feedback before completing development.
4) Open-source model - an informal process where individuals voluntarily maintain software over time through corrective, perfective and adaptive changes based on user reports.