Software Architecture and User Interface Design Principles
What is Software Architecture?
Software architecture refers to the fundamental structure of a software system. It comprises software components, the externally visible properties of those components, and the relationships between them.
What Does Software Architecture Enable for the Software Engineer?
- Analyze the effectiveness of the design in meeting the stated requirements.
- Consider architectural alternatives at a stage where making design changes is relatively easy.
- Reduce the risks associated with the construction of the software.
What Describes an Architectural Style and What Types Can Be Classified?
An architectural style describes a system category that encompasses:
- A set of components that perform a function required by the system.
- A set of connectors that enable communication, coordination, and cooperation between components.
- Constraints that define how components are integrated to form the system.
- Semantic models that allow a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.
The types that can be classified are:
- Data-centric architecture
- Dataflow architecture
- Call and return architecture
- Object-oriented architecture
- Layered architecture
How is Architectural Design Performed?
Architectural design is typically performed through several steps:
- Represent the system in context, defining external entities that interact with the software and the nature of these interactions.
- Define higher-level abstractions (archetypes) that represent elements of behavior or function of the system.
- Identify components and represent them within an architecture that supports them.
- Create specific instances to test the design in the real world.
What are the Golden Rules When Designing a User Interface?
Give the User Control: Create an interface that responds to the user’s needs and helps them accomplish tasks. The user should control the computer through the interface, not the other way around.
Reduce the Load on User Memory: The more a user has to remember, the higher the likelihood of errors. A good user interface minimizes the amount of data the user needs to remember.
Ensure that the Interface is Consistent: All visual information should be organized according to a design standard that is maintained across all screen displays.
What Four Models Come into Play When Analyzing and Designing an Interface?
- A human engineer establishes a user model.
- A software engineer creates a design model.
- The end-user develops a mental image, often called the user’s mental model or perception of the system.
What are the Four Different Activities in User Interface Analysis and Design?
- Analysis and modeling of users, tasks, and environments.
- Design of the interface.
- Construction (implementation) of the interface.
- Validation of the interface.
What Does Interface Validation Focus On?
Interface validation primarily focuses on:
- The ability of the interface to correctly implement all user tasks, accommodate all task variations, and meet all general user requirements.
- The ease of use and learning of the interface.
- The user’s acceptance of the interface as a useful tool.
What are the Steps for Interface Design?
While various models exist for user interface design, they generally suggest some combination of these steps:
- Based on information developed during analysis, identify interface objects and actions (operations).
- Define events (user actions) that change the state of the interface. Model this behavior.
- Represent each state of the interface as it will appear to the end-user.
- Indicate how the user interprets the system’s state from the information provided through the interface.