Abstract components from defined requirements
With abstract components, we can describe an application without necessarily needing to define how to write it. Abstraction also generalises the application to a high level of conceptualisation. Two major types of abstraction are procedural and data. In procedural abstraction, we separate what the procedure accomplishes from how it is executed. In data abstraction, the data to be stored is separated from the physical means of storing it.
Flow charts
With our abstract set of components, we use a flowchart to progress towards a software design. Flowcharts help us develop a sound understanding of the application flow by itemising the application into manageable parts. We do this for all applications from a website wireframe to a mobile abb.
Prototype of a user interface
Usually, the ideal time to prototype a user interface is when there is a transition from paper design to software. Prototyping a user interface enable us think through the design application and architecture requirements as we make the transition.