This course's stance on software design is that starting from the ideal UX leads to a task-oriented analysis and top-down design of the solution. Not surprisingly, this is the exact opposite of the approach that has been taken for decades and that now is often giving more pain than gain. In this course, UX-driven Software Design, you'll learn a new way to design software. First, you'll discover the evidence of what makes software development an unpredictable science. Next, you'll explore how to turn requirements into visual artifacts for customers. Then, you'll cover abstract visual artifacts to input and view models. Finally, you'll learn how to use those models rather than domain and data to drive design and development. By the end of this course, you'll be familiar with a top-down methodology for building most cost-effective software.