Showing posts with label design. Show all posts
Showing posts with label design. Show all posts

11/29/16

User Interface Design

User Interfaces, or UIs, are what the user utilizes to interact with a piece of software, it often is graphical and displayed in a screen, but it can also be hardware, like a controller. They are the most important part of the software for end users.

For a UI to be useful and likeable by the user or customer, it must be easy to use, must attract the attention, easy and intuitive to use, consistent and responsive. There are two main user interface categories: Command-line interface and graphical interfaces.

Command-line interface (CLI)

It is the most basic interface and consists only of text characters on lines. The first computers used CLIs to interact not particularly for the ease-of-use, but for the minimal resources consumed by it and the simpleness that it has. The main input method for the CLI is the keyboard.
Advanced users often prefer command lines to execute some tasks, as a graphical interface would be too bulky and impractical.
Embedded and remote systems often use CLIs because of the low data rates that they produce and the fact that they can be channeled through a variety of protocols, from serial to over-the-internet SSH connections.

Source
Graphical User Interface

GUIs are what most common users today know to interact with a computer, they are graphical frameworks to interact with a program often in more simple and intuitive ways than CLIs, the disadvantage of graphical interfaces is that they consume more resources, and often require a graphics processor to generate what is on screen. The main input methods for GUIs are mouse and keyboard.

They are often comprised of "windows" that represent a particular instance of a program that is executing, they provide buttons, sliders and tabs that make navigation a breeze, and change and adapt in order to fit what the user wants to do at a particular moment, responsiveness is crucial for the computing experience to be good when using GUIs.

Source
Lastly, the GOLDEN RULES for GUI design are:

  • Consistency: same commands and access methods used everywhere.
  • Shortcuts: Users sould be able to use hotkeys or commands to navigate faster.
  • Feedback: Even the click of a button should acknowledge the action that is made.
  • Defined sequences: opening, usage and closing of a window should be well defined. 
  • Simple error handling: Avoiding user errors and if they happen, handle them adequately. 
  • Easy reversal: Allow for Ctrl-z
  • Support user control: Make the user feel in control of the actions they execute.
Source: https://www.tutorialspoint.com/software_engineering/software_user_interface_design.htm


11/28/16

Software Design & Software Architecture

These two parts are essential to software-making, they are sequential steps that ensure a program meets the specifications needed and solves a particular problem, let's start with Architecture.


Source

Software architecture deals with the abstraction part of design, it analyzes the problem and sets a methodolgy to solve it, commonly using blocks. The software architect must be very acquainted with the challenge that he is facing, along with the technologies that can be used to solve it. Nonetheless, the SA doesn't do coding, he gives the product owner a thorough analysis and the underlying structure of the program that must be made, including a design blueprint and the attributes and connections of each part that has to be implemented later.

Software Architecture is, in essence, delivering a structured solution to a problem.

Software Design, on the other hand, deals with the technical details of the implementation of the system. They take into account the environment, adapting the development process to it, incluiding software and hardware constraints. They design and guide the coding process, including testing and debugging, in order for the process to be orderly and ensure success.

Software Design creates the functional part of the archutecture plan.