Discuss the waterfall method, its pros and cons, and present a scenario where it might be preferable over Agile. Waterfall Method PROS • Plan-oriented and linear • Finds error in early stages Pros and Cons • PREFERABLE: for software products with stable product definition with well known CONS domain, technologies • Not flexible • Upfront planning can be a liability Describe and compare the MVC and MVVM patterns. Background: Architecture • Fundamental organization of a system • Difficult to change once established • Type: Layered • Organizes system into layers • Group each layer by similar functionalities • Each layer dependent on layers beneath it • MVC and MVVM patterns both Differences Model-View-Controller (MVC) • Model: manages system data • Controller: manages user interaction • View: manages how data is presented to users Model-View-ViewModel • Derived from MVC • Model and view NOT connected • ViewModel: interacts with both model and view Explain the differences between, and give examples of, functional and nonfunctional requirements. Comparison Functional Requirements Nonfunctional Requirements • Specify how a system should behave • What a system does • Describe qualities/attributes of the system • Game example: player movement • How well a system performs • Game example: performance, number of Domain Model